1
私はファイルから行列を読むためにルーチンREADを使います。実際には、9つの部分行列を直接抽出します(3×3の大きな表を考えると、各部分行列です)。正確なインデックスは関係ありませんが、各サブマトリックスは約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文のインデックスが私の宛先マトリックス内の位置か、私が読んでいるファイルのインデックスであるかどうか分かりません。
だから、私は各行のために、そうですか?また、私はこのエラーを受け取ります:この文脈ではアスタリスクは無効です(read(91、*)) – Paul
はい、あなたが読んでいても読み込まれていると思われます(91、*)。それ自身で立つ。お役に立てれば :) – GoldenGenova