使用没有列宽限制的fortran77将输出写入txt文件

时间:2014-02-25 13:38:11

标签: io fortran

我想使用f77将以下输出写入txt文件:

14  76900.56273 0.000077    -100000     1000000000   -0.769006

我用:

write(6,*) KINC, BM, R2, AF, BK, BM/AF

没有任何格式(在十进制数字方面效果很好)。但是在我的txt文件中,输出写为:

14  76900.56273 0.000077    -100000 
1000000000    -0.769006

因为我认为默认情况下有一个固定的列宽限制。我不知道是否可以更改它,以便我可以将其复制并粘贴到Excel中。

我看过FORTRAN 77 Language Reference,但我找不到办法。有任何想法吗?感谢

2 个答案:

答案 0 :(得分:2)

  1. 使用格式
  2. 或检查编译器的选项
  3. 如果您的编译器是dec / compaq / intel之一,请阅读此链接。

    http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-win/hh_goto.htm#GUID-C6A40AAC-81D8-4DD8-A792-62792B3AC213.htm#GUID-C6A40AAC-81D8-4DD8-A792-62792B3AC213

    列出定向输出(fmt = *):: 80列限制默认值。

    “列表定向顺序WRITE语句的属性称为右边距。如果未将RECL指定为OPEN语句说明符或环境变量FORT_FMT_RECL,则右边距值默认为80.当指定RECL时,右边距设置为RECL的值。如果列表定向顺序WRITE的长度超过右边距值的值,剩余的字符将换行到下一行。因此,写入100个字符将产生两行输出,写180个字符将产生三行输出。“

    在英特尔的手册中,蓝色表示Fortran标准的扩展。这些扩展(非标准功能)可能会或可能不会由符合语言标准的其他编译器实现。


    oracle(sun)F77

    http://docs.oracle.com/cd/E19957-01/805-4939/6j4m0vnbu/index.html#z400074369ac

    “尽可能避免使用超过80个字符的输出行”

答案 1 :(得分:1)

使用星号作为格式,您使用列出的IO。这是为了方便起见。它为程序员提供了最小的控制,对编译器和不完整的可移植性几乎没有限制。编译器可以自由确定诸如行长度之类的方面。如果要控制线路长度,请切换到使用实际格式。

P.S。为什么要使用FORTRAN 77? Fortran 90/95/2003更易于使用且功能更强大。 gfortran是一个开源编译器。