2012-11-03 49 views
1

我試圖從英特爾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讀取數據。劑量誰知道如何解決這個警告?

+0

Windows字符是否有輸入文件撇號?或者數字,小數點和「D」以外的任何字符?您的閱讀是「列表導向」。 –

+0

謝謝@ M.S.B。爲公共。是的,它似乎有0.10640229631236之後的一些字符,這會導致警告。當我手動將這些數字寫入一個新文件時(通過回車鍵在0.10640229631236之後更改行),此警告消失。我「貓-v」這兩個文件:有了預警文件,我得到 0.10640229631236^M 8.5122792850319D-02 而沒有任何警告的文件,我得到 0.10640229631236 8.5122792850319D-02你知道什麼是M代表和地方它來自? – xslittlegrass

+1

http://stackoverflow.com/questions/64749/m-character-at-end-of-lines – agentp

回答

0

(問題的意見回答見Question with no answers, but issue solved in the comments (or extended in chat)

@ M.S.B寫道:

是否有輸入文件撇號?或者數字,小數點和「D」以外的任何字符?您的閱讀是「列表導向」。

的OP寫道:

是的,它似乎0.10640229631236,成本這個警告後,有一些字符。當我手動將這些數字寫入一個新文件時(通過回車鍵在0.10640229631236之後更改行),此警告消失。我cat -v這兩個文件:與警告文件我得到0.10640229631236^M 8.5122792850319D-02而我沒有警告文件0.10640229631236 8.5122792850319D-02你知道M是什麼意思,它來自哪裏?

@agentp給的鏈接:

'^M' character at end of lines

這說明了^ M是回車