何时分配静态数组,何时释放它们?

时间:2019-05-21 19:34:33

标签: arrays fortran

为清楚起见,让我们将静态数组定义为形状和边界在编译时已知的数组,并将自动数组定义为形状和边界在编译时未知但不是allocatable数组的数组Fortran。在Fortran中,自动数组只能出现在subroutine/function中。并且save不允许用于自动数组。

subroutine/function中,可以通过指定save在调用之间保留静态数组的值。考虑不为save中的静态数组指定subroutine的情况。然后,每次子例程返回时,静态数组都会自动释放吗?如果是这种情况,则静态数组的行为与自动数组相同,这意味着与自动数组相比没有性能优势。是否有可能在运行开始时就分配了所有静态数组,并且在程序结束之前永远不会释放它们?

0 个答案:

没有答案