Por que há um atributo SAVE implícito no Fortran? [duplicado]

Esta questão já tem uma resposta aqui:

Atribuição de Fortran na declaração e pegadinha do atributo SAVE 2 respostas

Se eu inicializar uma variável em uma declaração de declaração Fortran, essa variável receberá implicitamente um atributo SAVE e a expressão de inicialização será executada apenas uma vez.

Por exemplo, o seguinte programa

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

vai imprimir

1
2

Como isso é diferente em muitos outros idiomas, fiquei me perguntando por que o comitê padrão do Fortran escolheu esse comportamento?

Muito obrigado! Mike

questionAnswers(1)

yourAnswerToTheQuestion