Do while (.not. eof (n)

…..

enddo

Оператор Inquire ( оператор запроса )

Оператор предназначен для получения информации о характеристиках и текущем состоянии указанного устройства или внешнего файла.

В этом операторе можно получить либо информацию об устройстве, либо информацию о файле

Inquire ([unit=]<номер устройства>,

[,err=<метка>]

[,iostat=<целочисленная переменная>])

Или

Inquire(

[file=]<файл>,

[,err=<метка>]

[,iostat=<целочисленная переменная>]

[, exist=<логическая переменная>]

[,nextrec=<целочисленная переменная>]

Нельзя одновременно получать информацию и о файле и об устройстве.

Можно его использовать для проверки существования входного файла. Если файл входной и создается не программным путем, то можно проверять его наличие.

Параметр exist определяет существование указанного файла и принимает значение .true., если файл существует, и значение .false., если файла нет и он не может быть открыт. Тогда этот оператор должен размещаться до оператора open.

или

Inquire (file=]<файл>,

[,iostat=<целочисленная переменная>]

[, defaultfile=<спецификаторы>])

Последний вариант используется, если надо получить характеристики файла (возвращает значения атрибутов, с которыми файл был открыт.). Тогда он помещается после оператора open.

Если файл входной, то можно (желательно) написать процедуру проверки наличия файла (процедура control). Это надо сделать до оператора open.

subroutine control_1 (s)! проверка наличия файла

implicit none

character(*), intent(in)::s

logical f

inquire(file=s, exist= f)

if (f) then

print*, ‘ файл существует'

else

stop 'создайте файл'!конец работы, если нет файла

endif

End subroutine

или более универсальный вариант, который позволит открыть файл или для создания или для добавления:

Subroutine control_2 (s)

implicit none

character(*),intent(in)::s

logical f

inquire(file=s, exist=f)

if (f) then

print*, ‘ файл успешно открыт’

open(1, file=s)

else

print*, ‘ файл открыт для добавления’

open(1, file=s, access=’append’)

endif


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: