functions fortran fortran90

functions - double precision fortran 90



¿Hay alguna diferencia al declarar una variable con dos puntos (1)

En su primer ejemplo, el :: no es necesario y se puede omitir. La sintaxis general es:

type-spec [ [,attr-spec]... :: ] entities

En tu primer caso:

type-spec: real(8) entities: a and b

Los corchetes en la definición de sintaxis significan que esa parte es opcional. Sin embargo, si especifica una especificación attr-spec (como intent(in) o parameter ), entonces se requiere :: . Específicamente:

[ [, attr-spec] :: ]

significa que :: es opcional y attr-spec es opcional, pero si das y attr-spec también DEBES dar el :: .

Sospecho que las personas simplemente adquieren el hábito de proporcionar :: por cada declaración.

En el ejemplo:

real :: a=4.5

The =4.5 obliga a a SAVE ed que puede cubrir la segunda parte de su pregunta.

Al declarar variables, ¿hay alguna diferencia al usar un doble punto?

real(8) :: a real(8) b

Ambos aparentemente hacen lo mismo. ¿Hay alguna diferencia entre estos además del estilo?

Sé que podemos inicializar variables y agregar atributos de la siguiente manera

real(8), intent(in), parameter :: a = 4, b = 2

pero además de eso, ¿hay alguna diferencia cuando se acaba de declarar un real viejo simple o integer sin atributos y sin inicializar?

Además, ¿tiene esto algo que ver con el atributo SAVE ? Hace un tiempo, parte de mi código se comportaba inesperadamente y estaba guardando los resultados de una función entre llamadas, lo que me obligó a configurar explícitamente la variable a cero cada vez que se llamaba a la función, aunque el atributo SAVE no fue establecido por mí. .