609
Управление подпрограммами. Оператор CALL используется для вызова подпро
грамм и задается в виде
CALL èìÿ_ïîäïðîãðàììû(ñïèñîê_ïàðàìåòðîâ)
где ñïèñîê_ïàðàìåòðîâ — это последовательность имен фактических параметров или
выражений.
Подпрограммыфункции — это подпрограммы, которые возвращают значение
и могут просто использоваться в выражениях, например 2 + myfun(1,23,.TRUE.). Зна
чение возвращается функцией простым его присваиванием имени функции перед
выполнением оператора RETURN:
MYFUN = 27
RETURN
Имя функции можно использовать в качестве локальной переменной в под
программе. Предыдущая версия языка FORTRAN имела статическую структуру рас
пределения памяти и не допускала рекурсии. Новая версия языка — FORTRAN 90 —
поддерживает рекурсию и динамическое распределение памяти.
Выполнение программы завершается оператором STOP.
Возвращение из подпрограммы в вызывающую программу происходит с помо
щью оператора RETURN.
Ввод и вывод
В языке поддерживаются как последовательные файлы, так и файлы прямого дос
тупа, а также предусмотрен широкий набор операций вводавывода. Для опера
ций вводавывода используется девять операторов: READ, WRITE и PRINT определяют
фактическое преобразование данных, операторы OPEN, CLOSE и INQUIRE позволяют
установить или запросить статус, метод доступа и другие свойства файла, а опера
торы BACKSPASE, REWIND и ENDFILE обеспечивают установку указателя позиции файла.
Текстовый файл (последовательность символов) в языке FORTRAN называет
ся форматированным файлом, остальные файлы — неформатированными. Во вре
мя передачи данных в форматированный файл операторы READ, WRITE и PRINT преоб
разуют значения данных из внутреннего представления в символьную форму.
Передача данных в неформатированный файл оставляет данные в их внутреннем
представлении. Ввод и вывод данных с помощью операторов READ, WRITE и PRINT
в форматированный файл может осуществляться под управлением списка. Это озна
чает, что явно не задается никакого определения формата, а, как видно из листинга П.6,
используется внутренний, определенный системой формат. Альтернативным спо
собом является задание программистом явного формата:
ìåòêà FORMAT (ïîñëåäîâàòåëüíîñòü_ñïåöèôèêàöèé_ôîðìàòà)
Метка используется в операторах READ, WRITE и PRINT. Например, чтение после
довательности целых чисел, отформатированных так, что в одной строке размеща
ется восемь чисел, каждое из которых занимает пять позиций, можно задать с по
мощью следующих операторов READ и FORMAT:
READ 200, N, (M(K), K=1,7)
200 FORMAT (8I5)
То же самое можно описать, поместив определения формата внутрь оператора READ:
READ "(8I5)" N, (M(K), K=1,7)
П.4. FORTRAN