我有一个看起来像这样的函数:
PURE FUNCTION simulate(initial_state, time_specification)
TYPE(ocean), INTENT(IN) :: initial_state
TYPE(simulation_time), INTENT(IN) :: time_specification
TYPE(ocean) :: simulate
REAL :: t = 0.0
! etc
END FUNCTION simulate
gfortran 4.8.1告诉我
REAL :: t = 0.0
1
Error: Initialization of variable at (1) is not allowed in a PURE procedure
据我了解,只要它们没有SAVE属性,我就应该能够在纯函数中使用它们。那我在做什么错?
最佳答案
在现代的Fortran中,初始化意味着SAVE
。从F2008 5.2.3起
您可以使用局部变量,但仅
real t
t = 0
这不是初始化。
关于fortran - 在Fortran PURE FUNCTION中声明和初始化局部变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21418576/