我做了一些虛擬代碼來學習打開和讀取文件。比方說,TEST.DAT讀取在fortran中打開並讀取一行數據90
1
2
3
4
5
6
7
8
9
10
我寫了下面的代碼來打開和讀取
subroutine readdata
implicit none
integer :: j
double precision :: test
open(unit = 100, file = 'test.dat', status = 'old', action = 'read')
do j = 1, 10
read(100,*) test
print *, 'N1=', test
end do
end subroutine
輸出如下所示的數據文件,我有以下的,符合市場預期
gfortran -g -I/usr/include -o main main.o subroutines.o -L/usr/lib64/liblapack -L/usr/lib64/libblas
test= 1.0000000000000000
test= 2.0000000000000000
test= 3.0000000000000000
test= 4.0000000000000000
test= 5.0000000000000000
test= 6.0000000000000000
test= 7.0000000000000000
test= 8.0000000000000000
test= 9.0000000000000000
test= 10.000000000000000
Main finished.
但是,如果數據按如下方式存儲在單行中:
1 2 3 4 5 6 7 8 9 10
那麼上面的代碼不能按需要工作。它只讀取該行中的第一個元素,然後提示錯誤
[email protected]:~/PHD_research/myCodes/data> ./runcase.sh
rm -f *.o *.mod *.MOD *.exe *.stackdump main
gfortran -g -I/usr/include -c main.f90
gfortran -g -I/usr/include -c subroutines.f90
gfortran -g -I/usr/include -o main main.o subroutines.o -L/usr/lib64/liblapack -L/usr/lib64/libblas
test= 1.0000000000000000
At line 9 of file subroutines.f90 (unit = 100, file = 'test.dat')
Fortran runtime error: End of file
所以,我的問題是,我有一個包含2879(1×2879)存儲在一個單一的行數的數據文件。我將如何打開並讀取數據文件中的所有數字?
請注意,非前進輸入需要明確的格式。 – IanH
謝謝@IanH,我編輯了我的答案。 –