¿Por qué hay un atributo SAVE implícito en Fortran? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Asignación de Fortran en la declaración y el atributo SAVE gotcha 2 respuestas

Si inicializo una variable en una declaración de declaración de Fortran, esa variable recibe implícitamente un atributo SAVE y la expresión de inicialización solo se ejecutará una vez.

Por ejemplo, el siguiente 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

imprimirá

1
2

Como esto es diferente en muchos otros idiomas, me preguntaba por qué el comité estándar de Fortran eligió este comportamiento.

¡Muchas gracias! Micro

Respuestas a la pregunta(1)

Su respuesta a la pregunta