J'utilise la routine READ pour lire une matrice à partir d'un fichier. En fait, j'en extrait directement 9 sous-matrices (pensez à une grande table 3x3, chacune étant une sous-matrice). Les indices exacts n'ont pas d'importance, mais chaque sous-matrice est environ NY_INTxNY_INT, de sorte que toute la matrice du fichier est 3NY_INTx3NY_INT.Indices lors de la lecture de la matrice à partir du fichier
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
Ce code est-il correct? Il me semble que je n'utilise pas correctement les boucles.
Je ne comprends pas si les index dans les instructions READ sont les positions dans ma matrice de destination ou celles du fichier que je suis en train de lire.
Donc, je suis pour chaque ligne, non? En outre, j'obtiens cette erreur: un astérisque est invalide dans ce contexte (read (91, *)) – Paul
Oui, il est supposé être lu (91, *), quoi que vous lisiez. Read (91, *) does not rester seul. J'espère que cela t'aides :) – GoldenGenova