2.3. Описание переменных, правила умолчания, операторы IMPLICIT, DATA, PARAMETER

Переменные в языке FORTRAN описываются в виде:

тип имяі , имя2 , ... Язык FORTRAN допускает использование нигде не описанных переменных, в этом случае их тип определяется правилами умолчания: идентификаторы, начи­нающиеся с I, J, K, L, M, N, имеют тип INTEGER, все остальные - тип REAL. Стандартные правила умолчания для неописанных переменных можно изменить с помощью оператора IMPLICIT:

IMPLICIT тип ( буквы ) , ...

Здесь тип - описание типа, буквы - список латинских букв. В списке букв можно использовать конструкцию буква - буква , задающую диапазон, например:

IMPLICIT REAL*8 (D,F-H,W-Z,A), INTEGER*1 (B,C,I-K)

Явное описание типа переменной во всех случаях отменяет правило умолчания для этой переменной. Правила умолчания можно полностью отменить операто­ром IMPLICIT NONE. Если в программе есть такой оператор, то каждая пере­менная должна быть явно описана.

Инициализировать переменные, т.е. присвоить им начальные значения мож­но в операторе DATA :

DATA список имен / список констант / список имен - это имена переменных, разделенные запятыми, список констант -константы, разделенные запятыми. Несколько повторяющихся значений можно записать в виде повторитель * значение , где повторитель - целая константа, например:

DATA a,b,i,j,k,c /1.2,3.141,2*5,-100,0/,x,y/2*0/

Операторы DATA должны располагаться в тексте программы после всех опера­торов описания и до первого исполняемого оператора. Переменные также могут инициализироваться непосредственно в операторе описания, например:

REAL a/1.2/, b/3.141/, c/0/, x/0/, y/0/

INTEGER i/5/, j/5/, k/-100/

но в этом случае нельзя инициализировать список имен, каждая переменная должна быть инициализирована отдельно (но повторители при инициализации массивов использовать можно).

Для определения именованных констант служит оператор PARAMETER, аналогичный оператору CONST в языке PASCAL:

PARAMETER ( имя = константное выражение , ... )

Можно предварительно описать тип константы в операторе описания типа, например:

LOGICAL*1 TRUE REAL*4 b,c

PARAMETER(TRUE=.TRUE.,b=-1.5353,c=2)

PARAMETER(Number=#FF)

Именованные константы могут использоваться точно так же, как и неименован­ные, в частности, при инициализации переменных в операторах DATA или опе­раторах описания.