Почему в Фортране подразумевается атрибут SAVE? [Дубликат]

На этот вопрос уже есть ответ здесь:

Назначение Fortran при объявлении и сохранении атрибута gotcha 2 ответа

Если я инициализирую переменную в операторе объявления Фортрана, эта переменная неявно получает атрибут SAVE, и выражение инициализации будет выполнено только один раз.

Например, следующая программа

program test
implicit none

    call foo()
    call foo()

contains

    subroutine foo ()
        integer :: i = 0

        i = i + 1
        write(*,*) i
    end subroutine foo
 end program test

распечатает

1
2

Поскольку во многих других языках это отличается, мне было интересно, почему комитет по стандарту Фортрана выбрал такое поведение?

Большое спасибо! Майк

Ответы на вопрос(1)

Ваш ответ на вопрос