1
我使用例程READ从文件中读取矩阵。实际上,我直接提取9个子矩阵(想象一个大的3x3表,每个表都是一个子矩阵)。确切的索引无关紧要,但每个子矩阵约为NY_INTxNY_INT,因此文件中的整个矩阵为3NY_INTx3NY_INT。从文件中读取矩阵时的索引
OPEN (91,file= 'inf/matrix_re.dat',form='formatted',status='old')
OPEN (92,file= 'inf/matrix_im.dat',form='formatted',status='old')
c
do i=0,NY_INT-1
READ(91,*) k11real(i,0:NY_INT-1)
READ(92,*) k11imag(i,0:NY_INT-1)
end do
c
do i=0,NY_INT
READ(91,*) k12real(i,NY_INT+1:2*NY_INT+1)
READ(92,*) k12imag(i,NY_INT+1:2*NY_INT+1)
end do
c
do i=0,NY_INT-1
READ(91,*) k13real(i,2*NY_INT+2:3*NY_INT+1)
READ(92,*) k13imag(i,2*NY_INT+2:3*NY_INT+1)
end do
C
C
do i=NY_INT+1,2*NY_INT+1
READ(91,*) k21real(i,0:NY_INT-1)
READ(92,*) k21imag(i,0:NY_INT-1)
end do
c
do i=NY_INT+1,2*NY_INT+1
READ(91,*) k22real(i,NY_INT+1:2*NY_INT+1)
READ(92,*) k22imag(i,NY_INT+1:2*NY_INT+1)
end do
c
do i=NY_INT+1,2*NY_INT+1
READ(91,*) k23real(i,2*NY_INT+2:3*NY_INT+1)
READ(92,*) k23imag(i,2*NY_INT+2:3*NY_INT+1)
end do
C
C
do i=2*NY_INT+2,3*NY_INT+1
READ(91,*) k31real(i,0:NY_INT-1)
READ(92,*) k31imag(i,0:NY_INT-1)
end do
c
do i=2*NY_INT+2,3*NY_INT+1
READ(91,*) k32real(i,NY_INT+1:2*NY_INT+1)
READ(92,*) k32imag(i,NY_INT+1:2*NY_INT+1)
end do
c
do i=2*NY_INT+2,3*NY_INT+1
READ(91,*) k33real(i,2*NY_INT+2:3*NY_INT+1)
READ(92,*) k33imag(i,2*NY_INT+2:3*NY_INT+1)
end do
c
此编码是否正确?在我看来,我没有正确使用循环。
我不明白READ语句中的索引是我目标矩阵中的位置还是来自我正在阅读的文件中的位置。
所以,我是为每一行,对吗? (91,*)) – Paul
是的,无论您在阅读什么内容,都应该阅读(91,*)。阅读(91,*)不会阅读独立。希望这可以帮助 :) – GoldenGenova