5.1.2 Инициализация переменных старого стиля
GNU Fortran позволяет инициализацию переменных старого стиля в виде:
INTEGER i/1/,j/2/ REAL x(2,2) /3*0.,1./
Синтаксис инициализаторов такой же, как для оператора DATA, но в отличие от оператора DATA, инициализатор применяется только к переменной, непосредственно предшествующей инициализации. Другими словами, что-то вроде INTEGER I,J/2,3/ не является допустимым. Этот стиль инициализации разрешён только в объявлениях без двойных двоеточий (::); двойные двоеточия были введены в Fortran 90, который также ввёл стандартный синтаксис инициализации переменных в объявлениях типов.
Примеры кода, соответствующего стандарту и эквивалентного приведенному выше примеру:
! 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./
Обратите внимание, что переменные, явно инициализированные в объявлениях или в операторах DATA автоматически приобретают атрибут SAVE.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Old_002dstyle-variable-initialization.html