------- Comment #1 from burnus at gcc dot gnu dot org 2008-12-03 16:49 ------- If you write:
OPEN(UNIT=OUTPUT_UNIT, FILE="foo.dat") then you want that all output to the OUTPUT_UNIT is written to the file "foo.dat". And a asterix UNIT=* in a PRINT or WRITE statement denotes the OUTPUT_UNIT. In many compilers, including gfortran, the standard output is unit 6, the standard error output is 0 (ERROR_UNIT) and the standard input unit is 5 (= INPUT_UNIT). (The constants such as OUTPUT_UNIT are defined in the intrinsic module "ISO_FORTRAN_ENV".) As a general advise, you should try not to use unit numbers smaller than 10 as some of them are likely to have a special meaning, depending on the compiler; especially the numbers 0, 5, 6 should be avoided (unless you want to redirect stdin/stderr/stdout). If a compiler prints "Hello" to the screen for the following program, it is invalid according to the Fortran 2003 standard, previous Fortran standard have not specified this. use iso_fortran_env ! Needs a (partially) Fortran 2003 supporting compiler open(unit=OUTPUT_UNIT, file="foo.txt") print *, "Hello" end -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38382