爲了計算座標之間的距離,我需要從txt文件讀入三個數組。我已經看過其他答案,並將腳本拼湊在一起。輸入文件的列需要分別來到我的x,y和z陣列。每個條目有64行和16位小數位。指針將不勝感激。Fortran從fie讀入數組
數據格式:
0.8607595188703266 0.9252035918116585 0.4094258340665792
0.5246038490998378 0.9804633529144733 0.5325820695466118
0.6955271184611949 0.3304908806613460 0.7154502550542654
和我的劇本至今:
PROGRAM readtest
use, intrinsic :: iso_fortran_env
implicit none
integer, parameter :: ArrayLen = 64
real(real64), DIMENSION(ArrayLen) :: x
real(real64), DIMENSION(ArrayLen) :: y
real(real64), DIMENSION(ArrayLen) :: z
integer :: i, ReadCode, num
OPEN(1, FILE='contcar.txt', STATUS='old', ACTION='read')
OPEN(2, FILE='xyz.txt', STATUS='replace', ACTION='write')
num = 0
ReadLoop: do i=1, ArrayLen
read (1, '(A,F18.16)', iostat=ReadCode) x(i), y(i), z(i)
if (ReadCode /= 0) then
if (ReadCode == iostat_end) then
exit ReadLoop
else
write (*, '(/ "Error on read: ", I0)') ReadCode
stop
end if
end if
num = num + 1
end do ReadLoop
WRITE(3, 100) x, y, z
100 format (A,F18.16)
END PROGRAM readtest
的xyz.txt將該被顯示爲空白,我在這個階段沒有得到任何錯誤,什麼是錯在這裏那是停止數組填充和寫入文件? 對不起,如果這太麻煩了,任何幫助將不勝感激。 感謝
你發佈的內容非常有幫助,謝謝你,你回答了我還沒有問的問題。 –
是的,我發現幾分鐘前,並糾正。輸出文件現在已填充,但不完全正確。 –
好點。我認爲如果我明天重新開始這個問題並且解決問題可能是最好的。再次感謝。 –