如何在Fortran中声明变量中间例程

赖安迪永

我想根据另一个数组中满足特定条件的元素数量创建一个维度为数组的数组。这将要求我初始化一个数组中间例程,而Fortran不会让我这样做。

有办法解决吗?

例程示例:

subroutine example(some_array)

real some_array(50) ! passed array of known dimension

element_count = 0
do i=1,50
  if (some_array.gt.0) then
    element_count = element_count+1
  endif
enddo

real new_array(element_count) ! new array with length based on conditional statement

endsubroutine example

谢谢!

法国

您的问题不在于初始化数组,而是涉及设置其值。

但是,有一种方法可以执行您想要的操作。您甚至可以选择,这取决于它的通用性。

我假设在该循环中element_count具有a意思some_array(i)

您可以new_array allocatable

subroutine example(some_array)
  real some_array(50)
  real, allocatable :: new_array(:)

  allocate(new_array(COUNT(some_array.gt.0)))
end subroutine

或将其作为自动对象:

subroutine example(some_array)
  real some_array(50)
  real new_array(COUNT(some_array.gt.0))
end subroutine

仅当您的条件为“简单”时,后者才有效。这种allocatable情况更为普遍,例如,当您要使用完整循环而不是count固有循环时

在这两种情况下,您都满足在可执行语句之前具有所有声明的要求。

[作为一个旁注,在Fortran 2008中,block即使在可执行语句之后,构造也允许自动对象。]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Fortran中声明变量中间例程

来自分类Dev

在Fortran中声明变量

来自分类Dev

Fortran语法(子例程的声明)

来自分类Dev

如何在fortran 90中声明复杂类型数组

来自分类Dev

如何在Netezza中声明变量?

来自分类Dev

如何在PIG中显示声明的变量

来自分类Dev

如何在XSLT中声明变量?

来自分类Dev

如何在yacc中声明“结构”变量

来自分类Dev

如何在if条件中声明变量?

来自分类Dev

如何在SELECT中声明变量?

来自分类Dev

如何在python中声明变量?

来自分类Dev

如何在Scala中声明变量

来自分类Dev

如何在PIG中显示声明的变量

来自分类Dev

如何在bash -c中声明变量

来自分类Dev

如何在if条件中声明变量?

来自分类Dev

如何在 postgresql 中声明变量 INTERVAL?

来自分类Dev

如何在Fortran MPI数据传输子例程中解释<type> buf(*)

来自分类Dev

Fortran 90,如何在子例程中使用派生类型中定义的数组

来自分类Dev

fortran函数/子例程中的Arbitray变量/数组类型

来自分类Dev

fortran函数/子例程中的Arbitray变量/数组类型

来自分类Dev

如何在子例程中声明大小修改的数组?

来自分类Dev

如何在惰性变量声明Swift中访问实例变量

来自分类Dev

如何在与声明变量不同的文件中编辑变量?

来自分类Dev

如何在 Fortran 77 中交换虚拟变量?

来自分类Dev

如何使用C中的单位编号参数调用Fortran例程

来自分类Dev

如何在mysql中声明变量以及如何创建CURSOR

来自分类Dev

如何在不使用模块的情况下将我的Fortran例程(及其接口)放入DLL中?

来自分类Dev

如何在PHP函数中的查询中声明变量

来自分类Dev

如何在python中声明要在子类中实现的变量?

Related 相关文章

热门标签

归档