我在看Fortran編寫的空氣質量模型的代碼,並且有一些關於fortran從do循環中傳遞變量的問題。爲什麼Fortran DO循環索引大於循環後的上限?
這個非常簡單的例子說明我的意思:
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),並且不斷增加...
有人可以給我一個hin T'
那麼你在循環之後看到的L和SOMA的值是什麼? – 2012-03-26 22:49:52
L = 25和SOMA = 41! – carla 2012-03-26 22:51:47