Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fortran 90. ANSI Standard.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
861.18 Кб
Скачать

Оператор write

Оператор WRITE()имеет общую форму, подобную форме оператора READ():

WRITE(clist) список_вывода

где clist определен как:

[UNIT=] номер устройства,

[FMT=] спецификация формата

[,REC= номер записи]

[,IOSTAT=статус ввода-вывода]

[,ADVANCE=продвижение]

[,SIZE=целая переменная]

[,EOR=метка]

[,ERR=метка]

Снова заметим, что номер устройства и спецификация формата требуются именно в том порядке (когда ключевое слово не нужно), остальное не обязательно.

Большинство ключевых слов для особых манипуляций с файлом и не будут здесь обсуждаться.

IOSTAT остается одним из наиболее необходимых аргументов и работает так же для оператора WRITE() как и для оператора READ(). Например:

INTEGER :: n=10, ios=0

...

WRITE (*,*) a,b,c ! пишет на экран, format по умолчанию

WRITE (UNIT=6,*) i,j ! пишет на экран, format по умолчанию

WRITE (10,FMT=*) I ! пишет на устройство 10, format по умолчанию

WRITE (UNIT=n,FMT=*,IOSTAT=ios) data

Оператор open

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

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

Оператор OPEN() имеет общий вид такой:  

OPEN(номер_устройства, [список] )

Где номер_устройства это спецификация номера объявляемого устройства (с или без ключевого слова) и список есть список ключевых слов (рассмотрен ниже). Например, следующие операторы OPEN() открывают файл, ассоциированный с номером устройства 10:

INTEGER :: ifile=10

...

OPEN(10)

OPEN(UNIT=10)

OPEN(UNIT=ifile)

Следующие ключевые слова из специфицированных в стандарте языка Fortran 90 и могут специфицировать природу открываемого файла:

FILE=filename; где filename это правильная строка конкретной системы. Заметим, что .возможно, например, FILE='output.test'

STATUS=st; где st может быть одним из 'OLD', 'NEW', 'REPLACE', 'SCRATCH' или 'UNKNOWN'. Статус 'OLD' специфицирует файл, который уже должет существовать; при статусе 'NEW' создается новый файл; при статусе 'REPLACE' удаляется существующий файл прежде чем будет создан новый (с тем же именем); при статусе 'SCRATCH' создается временный файл, который существует только пока программа выполняется и исчезает по ее завершении. В общем случае используется 'OLD' для ввода и 'NEW' для вывода.

ERR=label; есть метка для оператора GOTO , когда обнаруживается ошибка при открытии файла. Если возможно, используют взамен IOSTAT .

IOSTAT=ios; где ios это целая переменная, устанавливается в нуль, если оператор выполняется успешно или в зависящую от реализации константу в противном случае

ACTION=act; где act может быть 'READ', 'WRITE' или 'READWRITE', специфицирующие разрешение режимов операций над файлом. По умолчанию зависит от процессора..

Некоторые примеры операторов открытия файла:

OPEN (UNIT=10,FILE='fibonacci.out')

OPEN (UNIT=11,FILE='fibonacci.out',STATUS='NEW',IOSTAT=ios)

IF( ios/=0) THEN

WRITE(6,*) 'Error opening file: fibonacci.out.'

STOP

ENDIF

OPEN (UNIT=12, FILE='student.records', STATUS='OLD', &

FORM='FORMATTED', IOSTAT=ios)

Если Вы несколько не доверяете значениям по умолчанию для некоторых полей оператора OPEN() специфицируйте требуемые значения. Комбинация условий возможных ошибок означает, что точный смысл будет дан спецификацией оператора OPEN() и ассоциирован с регулированием ошибки..

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]