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