Я смотрю в код модели качества воздуха, написанной на фортране, и у меня есть несколько вопросов относительно того, как фортран передает переменные из циклов 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) и продолжает увеличиваться ...
Может кто-нибудь дать мне подсказку?