How do I flush output to file after each write with a gfortran Fortran 90 program?

phoganuci picture phoganuci · Oct 7, 2009 · Viewed 12.4k times · Source

I am running a loop in a Fortran 90 program that outputs numerical values to an output file for each iteration of the loop. The problem is that the output is not saved to the file but every so many steps. How do I get it to flush each step?

Example code:

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

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

close(unit=1)

Thanks in advance.

Answer

ire_and_curses picture ire_and_curses · Oct 7, 2009

You need to make the output unbuffered. Try setting the GFORTRAN_UNBUFFERED_ALL environment variable to 'y', 'Y' or 1.