我有一个看起来像这样的函数:

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/

10-12 15:56