Как сбросить вывод в файл после каждой записи с помощью программы gfortran Fortran 90? - PullRequest
9 голосов
/ 07 октября 2009

Я запускаю цикл в программе на Fortran 90, которая выводит числовые значения в выходной файл для каждой итерации цикла. Проблема в том, что вывод сохраняется не в файл, а через все этапы. Как мне заставить его очищать каждый шаг?

Пример кода:

open(unit=1,file='output')

do i = 1, 1000
 write(1,*) i
end do

close(unit=1)

Заранее спасибо.

Ответы [ 3 ]

12 голосов
/ 07 октября 2009

Вам нужно сделать вывод небуферизованным. Попробуйте установить для переменной среды GFORTRAN_UNBUFFERED_ALL значение 'y', 'Y' или 1.

6 голосов
/ 08 октября 2009

Другой способ, если gfortran реализует это, - вызывать нестандартную подпрограмму flush. Не все компиляторы реализуют это.

0 голосов
/ 26 декабря 2009

Когда мне нужно сбросить, я просто закрываю файл и открываю заново. Это неуклюже и медленно, но я не знаю лучшего способа в Фортране 90, который бы работал со всеми компиляторами.

...