Санкт-Петербургский государственный университет
Опубликован: 11.02.2010 | Доступ: свободный | Студентов: 530 / 93 | Оценка: 4.41 / 4.44 | Длительность: 08:19:00
Специальности: Программист
Лекция 4:

Фортран 90

Перечень операторов языка

Ниже дается перечень некоторых конструкций и операторов Фортрана. Необязательные элементы заключены в квадратные скобки []. Если символ пробела не окружен квадратными скобками, то он является обязательным.

Таблица 4.1 . Операторы программных компонент
Оператор Описание
PROGRAM имя_программы Оператор заголовка главной программы
MODULE имя_модуля Оператор заголовка модуля
END[ MODULE[имя_модуля]] Оператор завершения модуля
USE имя_модуля[, ONLY only_список] Оператор подключения модуля
[RECURSIVE ]SUBROUTINE имя_подпрограммы [([список_формальных_параметров] ) ] Оператор заголовка подпрограммы-процедуры
[тип][RECURSIVE ]FUNCTION имя_функции ([список_формальных_параметров]) [ RESULT(имя_результата)] Оператор заголовка подпрограммы-функции
INTERFACE[ родовое_описание] Оператор заголовка интерфейса
END[ ]INTERFACE Оператор завершения интерфейса
CONTAINS Оператор содержания
ENTRY
BLOCK[ ]DATA[ имя_блока_данных] Оператор заголовка блока данных
END [ ]BLOCK[ ]DATA[имя_блока_данных] Оператор завершения блока данных

Таблица 4.2 . Операторы описания и инициализации данных
Оператор Описание
MODULE PROCEDURE список_имен_модульных_процедур Оператор декларации модульных процедур

тип [ [, атрибут] [, атрибут...]....::] список_объектов где тип выбирается из списка:

INTEGER[(KIND=]параметр_разновидности_типа)]

REAL[(KIND=]параметр_разновидности_типа)]

LOGICAL[(KIND=]параметр_разновидности_типа)]

COMPLEX[(KIND=]параметр_разновидности_типа)]

CHARACTER[список_параметров_типа] DOUBLE[ ]PRECISION]

TYPE( имя_типа)

и атрибуты - совместимая комбинация из следующих значений:

PARAMETER, PUBLIC, PRIVATE, POINTER, TARGET, ALLOCATABLE, DIMENSION(список_экстентов) , INTENT(параметр_входа/выхода), EXTERNAL, INTRINSIC, OPTIONAL, SAVE

Оператор описания
TYPE[, атрибут_доступа ::] имя_производного_типа атрибут_доступа - PUBLIC или PRIVATE Оператор определения производного типа, заголовок
END[ ]TYPE[ имя_типа] Оператор определения производного типа: завершение
IMPLICIT список, где список - это тип (список-букв) [, тип (список_букв) ] ... или NONE Оператор определения правил неявной типизации
ALLOCATABLE [::] имя_массива[( список_экстентов)][, имя_массива [ (список_экстентов) ]...] Оператор назначения атрибута ALLOCATABLE
DIMENSION имя_массива( список_экстентов)[, имя_массива (список_экстентов)...] Оператор спецификации массивов
PARAMETER (список_определений_именованных_констант) Оператор определения именованных констант
EXTERNAL список_внешних_имен Оператор назначения атрибута EXTERNAL
INTRINSIC список_встроенных_имен Оператор назначения атрибута INTRINSIC
INTENT(параметр_входа/выхода) список_формальных_параметров Оператор назначения атрибута INTENT
OPTIONAL список_формальных_параметров Оператор назначения атрибута OPTIONAL
SAVE[[::] список_сохраняемых_объектов] Оператор назначения атрибута SAVE
COMMON /[имя_общего_блока]/список_переменных[, /имя_общего_блока/список_переменных.... ] Оператор описания блока общей памяти
DATA список_объектов/список_значений/[, список_объектов/список_значений/...] Оператор инициализации объектов
FORMAT([список_дескрипторов])* Оператор спецификации формата преобразования данных при операциях ввода/вывода

Таблица 4.3 . Операторы передачи управления
Оператор Описание
END[ PROGRAM[ имя_программы]] Оператор завершения главной программы
END[ подпрограмма[имя_подпрограммы]] где подпрограмма - SUBROUTINE или FUNCTION Оператор завершения подпрограммы
CALL имя_подпрограммы[(список_фактических_параметров) ] Оператор передачи управления подпрограмме-процедуре
RETURN Оператор возврата управления вызывающему компоненту программы
STOP[ сообщение] Оператор останова программы

Таблица 4.4 . Операторы присваивания
Оператор Описание
переменная = выражение Оператор присваивания для скалярных и массивоподобных объектов
ссылка => адресат Оператор прикрепления ссылки к адресату

Таблица 4.5 . Управляющие конструкции и условные операторы
Оператор Описание
IF(скалярное_логическое_выражение) исполняемый_оператор Условный оператор
WHERE( логическое_выражение_массив) массив_переменная = выражение_массив Условное присваивание для массивов
[ if_имя : ] IF( скалярное_логическое_выражение) THEN ELSE[[ ]IF(скалярное_логическое_выражение) THEN[ if_имя] END[ ]IF[ if_имя] Конструкция ветвления IF_THEN_ELSE
WHERE( логическое_выражение_массив) ELSEWHERE END[ ]WHERE Конструкция ветвления в присваивании массивов
[sе1есt_имя:] SELECT [ ] CASE ( скалярное_выражение) CASE ( список_возможных_значений)[ sе1есt_имя] CASE DEFAULT [ sе1еct_имя] END [ ] SELECT [ sе1еct_имя] Конструкция SELECT
GO[ ]TO метка Оператор перехода
[do_имя:] DO[ метка] переменная = скалярное_целое_выражение1, скалярное_целое_выражение2[, скалярное_целое_выражение3] Заголовок оператора цикла
[do_имя:] DO[ метка] [,] WHILE(скалярное_лог_выражение) Заголовок оператора цикла в альтернативной форме
CYCLE [ do_имя] Оператор перехода к оператору завершения цикла с именем
EXIT[ do_имя] Оператор выхода из цикла с именем do_имя
CONTINUE Оператор перехода к следующему шагу цикла
END[ ]DO[ do_имя] Оператор завершения цикла с именем do_имя

Таблица 4.6 . Операторы управления динамической памятью
Оператор Описание
ALLOCATE( список_выделяемых_объектов[, STAT=статус]) Оператор выделения динамической памяти для выделяемых объектов
DEALLOCATE( список_выделенных_объектов[, STAT=статус]) Оператор освобождения динамической памяти от выделенных объектов

Таблица 4.7 . Операторы ввода-вывода
Оператор Описание
READ( список_управления_вводом) [ список_ввода] READ формат[, список_ввода] Оператор чтения данных
WRITE(список_управления_выводом) [ список_вывода] Оператор записи данных
PRINT формат[, список_вывода] Оператор вывода данных на устройство стандартного вывода
OPEN( список_спецификаций) Оператор соединения файла с логическим устройством ввода-вывода
CLOSE(список_спецификаций) Оператор закрытия файла