0
我想從文本文件中讀取我的測量數據。數據具有例如下面的表格:從文本文件中讀取測量數據並將它們放入Fortran陣列中
0 0.0531139
0.000157095 0.306123
0.000314191 0.133868
0.000471286 0.29799
0.000628381 0.0182098
0.000785477 0.121222
0.000942572 0.32111
0.00109967 0.0267326
0.00125676 0.49554
0.00141386 0.433729
我的代碼如下:
SUBROUTINE test(name)
implicit none
character :: name*(*)
real*8,allocatable, dimension(:,:) :: measMatrix
integer :: i,
& nrcols
nrcols = 2
nrrows = 10
allocate(measMatrix(nrcols,nrrows))
open(unit = 20, file = Dateiname, status = 'old', action = 'read')
do i = 1, nrrows
read(20,*) measMatrix(i,1:nrcols)
end do
close(20)
open(unit = 10, file = 'Test4.txt')
do i = 1,nrrows
write(10,777) (measMatrix(i,j), j = 1,nrcols)
end do
close(10)
777 format(F12.9,4X,F12.9)
deallocate(measMatrix)
END
但是,輸出是錯誤的:
0.000000000 0.000314191
0.000157095 0.000471286
0.000314191 0.000628381
0.000471286 0.000785477
0.000628381 0.000942572
0.000785477 0.001099670
0.000942572 0.001256760
0.001099670 0.001413860
0.001256760 0.495540000
0.001413860 0.433729000
我在做什麼錯? :(
在此先感謝您的幫助。
您的代碼不完整,您是否可以擴展以包含最少數量的更改以使其成爲工作示例(例如,您不會顯示'nrrow'的'nrrows'聲明)。你應該實際上也應該檢查放入'alloc_status'中的東西來檢查分配是否正常工作。 (注意你也可以定義第一維的長度爲'nrcols',但在循環中你說第一維是'nrrows'長,而第二維是'nrcols'長)。 –
當然,對不起。我更改了代碼。 – ingenium