全局可分配数组和伪参数数组之间是否存在速度差异?

时间:2016-07-26 15:46:21

标签: fortran global-variables parameter-passing fortran90

假设我有一个非常大的数组a

第一种情况:a定义为局部变量,并将其传递给函数calculate()的参数。

real, dimension(:,:,:,:), allocatable :: a
...
real function calculate(a)
    real, dimension(100, 100, 100, 100), intent(in) :: a
    % some complicated calculations
    ...
end function calculate

第二种情况:a定义为全局变量,并将其用于函数calculate()中的计算。

real, dimension(:,:,:,:), allocatable, public :: a
...
real function calculate()
    % some complicated calculations
    ...
end function calculate

如果第一和第二种情况中的函数calculate()完全相同。这两个程序可以在运行时速度上有所不同吗?如果"可以"请一步一步向我解释为什么会这样。

0 个答案:

没有答案