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í. .