我試圖從英特爾ifort轉移到IBM xlf,但在閱讀「未格式化的輸出數據」(未格式化,我的意思是它們不是相同的長度),有問題。這裏有一個例子:使用閱讀未格式化的數據,英特爾ifort vs ibm xlf
0.10640229631236
8.5122792850319D-02
ifort我得到的輸出:
program main
implicit none
real(8) a,b
open(unit=10,file='1.txt')
read (10,*) a
read (10,*) b
write(*,'(E20.14E2)'),a,b
close(10)
end program
的1.txt使用
0.10640229631236E+00
0.85122792850319E-01
XLF我得到的輸出:
' in the input file. The program will recover by assuming a zero in its place.e invalid digit '
0.10640229631236E+00
0.85122792850319E-01
由於1.txt中的數據是未格式化的,我不能使用固定的fo rmat讀取數據。劑量誰知道如何解決這個警告?
Windows字符是否有輸入文件撇號?或者數字,小數點和「D」以外的任何字符?您的閱讀是「列表導向」。 –
謝謝@ M.S.B。爲公共。是的,它似乎有0.10640229631236之後的一些字符,這會導致警告。當我手動將這些數字寫入一個新文件時(通過回車鍵在0.10640229631236之後更改行),此警告消失。我「貓-v」這兩個文件:有了預警文件,我得到 0.10640229631236^M 8.5122792850319D-02 而沒有任何警告的文件,我得到 0.10640229631236 8.5122792850319D-02你知道什麼是M代表和地方它來自? – xslittlegrass
http://stackoverflow.com/questions/64749/m-character-at-end-of-lines – agentp