自动和静态的ISO Fortran等价物

自动和静态的ISO Fortran等价物,fortran,Fortran,许多Fortran编译器提供了自动和静态语句和属性,以明确定义何时应在子例程调用之间共享变量,以及何时应在每次调用子例程时将变量分配给堆栈 ISO Fortran标准(其中任何一个)中是否有等效标准?Fortran,因为Fortran 77具有SAVE语句(以及自Fortran 90以来的SAVE属性),用于在调用之间共享变量。自动变量可以通过声明过程递归(Fortran 90)来强制执行。+1-只是为了让OP受益,这是一种非常Fortran-y的方法。即使提到堆栈的存在,Fortran也太依赖

许多Fortran编译器提供了
自动
静态
语句和属性,以明确定义何时应在子例程调用之间共享变量,以及何时应在每次调用子例程时将变量分配给堆栈


ISO Fortran标准(其中任何一个)中是否有等效标准?

Fortran,因为Fortran 77具有
SAVE
语句(以及自Fortran 90以来的
SAVE
属性),用于在调用之间共享变量。自动变量可以通过声明过程
递归
(Fortran 90)来强制执行。

+1-只是为了让OP受益,这是一种非常Fortran-y的方法。即使提到堆栈的存在,Fortran也太依赖于实现(对于一种已经使用了60年的语言来说,这是一种必要的方法),所以您永远不会看到指定堆与堆栈的语言特性。另一方面,关于您想要完成的任务的约束——应该保存一个变量,或者应该允许一个例程调用自己——非常适合Fortran。这是Fortran和更裸机的C语言在概念上最大的差异之一。谢谢概念上的解释。我所拥有的是一些为英特尔编译器编写的Fortran代码,我正试图用GFortran构建该编译器。有几个子例程具有作为局部变量的大型数组,这些数组的大小可能超过它们自动保存时的大小,因此有人将它们声明为
AUTOMATIC
。在这里,我最好的办法就是声明那些子例程
递归的