Переменные.

Именованные константы.

При объявлении используемым в программе объектам данных могут быть сообщены дополнительные свойства. Это выполняется путем задания атрибутов, в частности, атрибута PARAMETER, после которого объект данных воспринимается в программе как именованная константа (в частности, так объект данных защищается от изменений в процессе вычислений), например:

real(4), parameter :: pi=3.14159 ! Задание вещественной ! именованной константы pi integer(4), parameter :: n=10 ! Задание целой именованной ! константы n integer(4) :: k=n ! Используем именованную константу n при ! объявлении целой переменной k character(len=n) st ! Используем именованную константу n при ! объявлении символьной переменной st k=k-2*n*n ! Используем именованную константу n в выражении

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

Атрибут PARAMETER может быть задан объекту данных, как в операторе объявления типа (рекомендуемый способ), так и самостоятельным оператором PARAMETER.

logical(1), parameter :: c1=.false._1 ! Первый вариант задания ! атрибута PARAMETER объекту данных logical(2) c2 ! Второй способ задания – сначала parameter(c2=.true._2) ! объявляем тип константы, а затем ! используем оператор PARAMETER

Переменная, имя которой присутствует в программе, считается существующей. Существующая переменная может быть определенной и неопределенной. Переменная становится определенной после того, как она получит значение (например, в результате присваивания или выполнения ввода соответствующих данных). Рассмотрим объявление:

real(4) a, b, c ! Объявление вещественных переменных ! с именами a, b, c

Данный оператор объявляет три переменных вещественного типа. Такие переменные занимают по одной единице памяти. В рассматриваемом случае размер каждой единицы памяти составляет 4 байта.

Начальное значение переменной может быть установлено оператором объявления типа или оператором DATA. Начальные значения присваиваются переменным на этапе компиляции программы (этапе преобразования исходного текста программы, написанной на Фортране, в объектный код).

В случае задания начальных значений (посредством описания) или атрибутов оператор объявления типа должен содержать разделитель ::, например,

real(4) :: a=1.5, b, c ! Разделитель :: здесь необходим ! так как объявляется и задается начальное ! значение вещественной переменной a; ! также объявляются переменные b и c b=-0.83; c=10.1 ! Переменным b и c задаются значения ! буквальных констант -0.83 и 10.1соответственно

Синтаксис оператора DATA следующий:

DATA список имен/список значений/[, список имен/список значений/]...

где список имен представляет собой, в частности, список переменных, при этом элементы списка разделяются запятыми; список значений − это список констант или повторяющихся констант, разделенных запятыми (повторяющаяся константа − это элемент вида n*val, где n − целая положительная константа (буквальная или именованная), * − символ повторитель; такой элемент в списке значений означает, что n подряд расположенных переменных в списке имен получат в результате выполнения оператора DATA значение val). Приведем ниже пример использования оператора DATA:

integer(4), parameter :: m=10, n=20 real(4) x, y, z, a, b, c data x /1.2/, y /-2.4/, z /10.125/, a, b, c /3*0.8/

Нельзя дважды инициализировать одну и ту же переменную. Заметим также, что в последних версиях языка Фортран оператор DATA следует размещать перед исполняемыми операторами программной единицы.