C G2COPY SOURCE CHAT 05/01/13 00:14:24 5004 C C SUBROUTINE G2COPY(IGR1,NBCOL1,NBLIG1,IOP, > IGR2,NBCOL2,NBLIG2 ) C ********************************************************************** C OBJET G2COPY : COPIE ET REORIENTE UNE GRILLE C C EN ENTREE : C IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES DES NOEUDS (LA GRILLE) C C IOP :CODE DONNANT LA TRANSFORMATION A APPLIQUER A LA GRILLE C -1 = INVERSION DES LIGNES ET DES COLONNES C (1,2,3,4) = LES 4 ROTATIONS : C 1 = IDENTITE (COPIE SIMPLE) C 2 = (1,1) DOIT PASSER EN (NBCOL,1) C 3 = (1,1) DOIT PASSER EN (NBCOL,NBLIG) C 4 = (1,1) DOIT PASSER EN (1,NBLIG) C C EN SORTIE : C IGR2(NBCOL2,NBLIG2) : TABLEAU D'INDICES DES NOEUDS (LA GRILLE) C C ********************************************************************** IMPLICIT INTEGER(I-N) INTEGER IGR1(*),NBCOL1,NBLIG1 INTEGER IOP INTEGER IGR2(*),NBCOL2,NBLIG2 C INTEGER I1,I2,J1,J2 C GOTO (50,100,150,200) IOP C C ---- (-1) INVERSION DES LIGNES ET DES COLONNES --- C NBLIG2 = NBCOL1 NBCOL2 = NBLIG1 DO 30 I2=1,NBCOL2 DO 30 J2=1,NBLIG2 I1 = J2 J1 = I2 IGR2((J2-1)*NBCOL2+I2) = IGR1((J1-1)*NBCOL1+I1) 20 CONTINUE 30 CONTINUE GOTO 9999 C C ---- (1) IDENTITE : COPIE SIMPLE --- C 50 NBLIG2 = NBLIG1 NBCOL2 = NBCOL1 DO 70 I2=1,NBCOL2 DO 60 J2=1,NBLIG2 I1 = I2 J1 = J2 IGR2((J2-1)*NBCOL2+I2) = IGR1((J1-1)*NBCOL1+I1) 60 CONTINUE 70 CONTINUE GOTO 9999 C C ---- (2) I2 = J1, J2 = -I1 --- C 100 NBLIG2 = NBCOL1 NBCOL2 = NBLIG1 DO 120 I2=1,NBCOL2 DO 110 J2=1,NBLIG2 I1 = NBCOL1+1-J2 J1 = I2 IGR2((J2-1)*NBCOL2+I2) = IGR1((J1-1)*NBCOL1+I1) 110 CONTINUE 120 CONTINUE GOTO 9999 C C ---- (3) I2 = -I1, J2 = -J1 --- C 150 NBLIG2 = NBLIG1 NBCOL2 = NBCOL1 DO 170 I2=1,NBCOL2 DO 160 J2=1,NBLIG2 I1 = NBCOL1+1-I2 J1 = NBLIG1+1-J2 IGR2((J2-1)*NBCOL2+I2) = IGR1((J1-1)*NBCOL1+I1) 160 CONTINUE 170 CONTINUE GOTO 9999 C C ---- (4) I2 = -J1, J2 = I1 --- C 200 NBLIG2 = NBCOL1 NBCOL2 = NBLIG1 DO 220 I2=1,NBCOL2 DO 210 J2=1,NBLIG2 I1 = J2 J1 = NBLIG1+1-I2 IGR2((J2-1)*NBCOL2+I2) = IGR1((J1-1)*NBCOL1+I1) 210 CONTINUE 220 CONTINUE GOTO 9999 C 9999 END