1.15. ВВОД-ВЫВОД НА ФОРТРАНЕ

Операторы ввода и вывода по своей структуре близки и имеют следующий вид:

READ(n,m) <список переменных>

WRITE(n,m)< список переменных>

Здесь первый оператор ввода, а второй оператор вывода; n – номер канала ввода или вывода; m – строка, которая интерпретируется как формат, или целая константа, которая интерпретируется как метка оператора формата, определяющего порядок расположения данных в строке при вводе или выводе; <список переменных> – вводимые или выводимые переменные.

Ранее была описана простейшая система бесформатного ввода с клавиатуры и вывода на экран. Для этого в операторах READ или WRITE вместо номера устройства ввода-вывода и метки оператора FORMAT располагаются символы '*' (звездочка).

При решении практических задач часто необходимо осуществить вывод результатов в файл и задать входные данные в файле.

Опишем процедуру организации ввода-вывода с использованием файлов. В Фортране-90 различают два вида файлов: внешние файлы – это поименованная область во внешней памяти ЭВМ – и внутренние файлы.  Файлы Фортрана подразделяются на файлы последовательного и прямого (произвольного) доступа. Внутренние файлы считаются открытыми по умолчанию.

Закрыть

Внешние файлы могут быть:

  • форматными;
  • двоичными (бинарными);
  • неформатными.

Внешний файл, с которого будет осуществляться ввод-вывод, нужно связать с номером канала ввода-вывода. Для этого используется оператор открытия файла вида

Закрыть

Внутренние файлы являются файлами последовательного доступа. Внешние файлы могут быть открыты как для прямого, так и для последовательного доступа.

OPEN( n, FILE='<имя файла>'),

Закрыть

Оператор OPEN может содержать специальные опции, указывающие, является ли файл бинарным (form='BINARY' ) или неформатным (form='UNFORMATTED').

где n – целочисленное выражение, задающее номер канала,

Закрыть

Значением номера канала, например, в среде Compaq Visual Fortran может быть любое целое число, n < 2147483648, если значение n2147483648, оператор OPEN вызывает ошибку этапа компиляции. Например:

OPEN(7000000000,FILE='C:\STUD\RESULTAT.TXT')

Error: The decimal constant was too large when converting to an integer, and overflow occurred.   [7000000000]

FILE – служебное слово.

Строка '<имя файла>' указывает имя файла и подчиняется правилам задания имени файла и пути к нему в используемой операционной системе.

После выполнения оператора OPEN и устройство ввода/вывода, и файл считаются открытыми. Доступ к файлу после его открытия осуществляется по номеру устройства, к которому он присоединен. Устройство не может быть присоединено более чем к одному файлу. Файл может быть отсоединен от канала ввода-вывода с помощью оператора закрытия файла, который имеет вид:

CLOSE(n),

где n – целочисленное выражение значение, которое указывает номер закрываемого канала. Одновременно с закрытием канала файл может быть удален, если использовать оператор

CLOSE(n, STATUS='DELETE').

После закрытия канала его номер становится свободным и может быть использован при открытии нового канала с другим файлом.

Более подробно ознакомиться с использованием файлов в Фортране-90 можно по книге О.В. Бартеньева «Fortran для студентов».