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 respostasSe 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