我编译了一个程序,在fortran 90中按顺序执行(不是并行执行)。我正在尝试用print语句调试程序来检查生锈的gdb
fu。我用gfortran -c -O2 -ffast-math -ggdb
编译文件。但是,这些语句都没有打印任何内容:
print *, variablename1, variablename2
write(6,*) variablename1, variablename2
write(*,*) variablename1, variablename2
编译后的程序不打印任何内容并执行,就好像语句不存在一样。我可以错过一些简单而明显的东西吗?
在评论中,结果表明存在缓冲输出流的问题。这可以通过调用flush
语句,非标准flush()
内部子例程或编译器特定的环境变量(如GFORTRAN_UNBUFFERED_ALL
)来控制。