GNU Fortran allows old-style initialization of variables of the form:
INTEGER i/1/,j/2/ REAL x(2,2) /3*0.,1./
The syntax for the initializers is as for the DATA
statement, but unlike in a DATA
statement, an initializer only applies to the variable immediately preceding the initialization. In other words, something like INTEGER I,J/2,3/
is not valid. This style of initialization is only allowed in declarations without double colons (::
); the double colons were introduced in Fortran 90, which also introduced a standard syntax for initializing variables in type declarations.
Examples of standard-conforming code equivalent to the above example are:
! Fortran 90 INTEGER :: i = 1, j = 2 REAL :: x(2,2) = RESHAPE((/0.,0.,0.,1./),SHAPE(x)) ! Fortran 77 INTEGER i, j REAL x(2,2) DATA i/1/, j/2/, x/3*0.,1./
Note that variables which are explicitly initialized in declarations or in DATA
statements automatically acquire the SAVE
attribute.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gfortran/Old_002dstyle-variable-initialization.html