我正在研究一款用Fortran编写的空气质量模型代码,并对Fortran如何从do-loops传递变量有些疑问。
以下示例说明了我的意思:
PROGRAM carla
IMPLICIT NONE
!
INTEGER, PARAMETER :: LM = 24, DEZASSEIS = 16
INTEGER :: L, VARIAVEL, SOMA
!
DO L=1,LM
WRITE(*,*) 'L = ', L
END DO
!
WRITE(*,*) 'I am now ouside of the DO loop.'
WRITE(*,*) 'I would expect L=LM=24... And SOMA=40'
WRITE(*,*) 'L = ', L
SOMA = DEZASSEIS + L
WRITE(*,*) 'SOMA = ', SOMA
END PROGRAM carla
我希望L=LM=24,SOMA=40,但实际得到的结果是:
L = 25
SOMA = 41
我不明白为什么一旦我们跳出 DO 循环,L 就不再保留最后一个值(因此 SOMA 应该等于40),而是继续增加...
有人能给我一些提示吗?