2014-02-25 106 views
1

我想用F77中寫入以下輸出到一個txt文件:寫入輸出與FORTRAN77 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但我還沒有找到辦法。有任何想法嗎?謝謝

+1

你有沒有考慮指定一個「太大而不能永遠是一個問題」寬度來覆蓋默認值? – STLDeveloper

+0

我有,但我不知道該怎麼做.... :) – jpcgandre

+0

是不是固定在你的txt文件編輯器/查看器的列寬限制? – Peter

回答

2
  1. 使用格式
  2. 或檢查你的編譯器選項

如果你的編譯器是DEC /康柏/英特爾,請閱讀此鏈接。

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標準的擴展。這些擴展(非標準功能)可能會或可能不會被符合語言標準的其他編譯器實現。


甲骨文(太陽)F77

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

「輸出線長度超過80個字符都儘量避免使用」

+0

+ gfortran沒有這樣的問題。它的默認recl值是1073741824字節(1 GB)。 –

1

以星號作爲格式,您使用的是列表控制的IO。這是爲了方便。它給程序員最小的控制權,對編譯器和不完整的可移植性幾乎沒有限制。編譯器可以自由確定諸如行長等方面。如果您想要控制線路長度,請切換至使用實際格式。

P.S.爲什麼使用FORTRAN 77? Fortran 90/95/2003更易於使用,功能更強大。 gfortran是一個開源的編譯器。