g2orac
C G2ORAC SOURCE CHAT 06/03/29 21:22:04 5360 C > ITVL,NTIMAX,iarr ) C ********************************************************************** C OBJET G2ORAC : REORIENTE UNE GRILLE GEOMETRIQUE C C EN ENTREE : C IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES DES NOEUDS (LA GRILLE) C IDIMC : DIMENSION DE L'ESPACE (=3) C COORD : TABLEAU DES COORDONNEES DES NOEUDS C C N1 : ORIGINE SOUHAITE DE LA GRILLE IGR1(1,1) = IORIG C SI N1=0 ON N'IMPOSE PAS L'ORIGINE C VK : ORIENTATION DE LA GRILLE, DIRECTION SOUHAITE EN N1 C SI IDIMC = 0, ON N'IMPOSE PAS D'ORIENTATION. C C ITVL : TABLEAU DE TRAVAIL (ENTIERS) C NITMAX: TAILLE DU TABLEAU ITVL C ON A BESOIN DU TABLEAU DE TRAVAIL SEULEMENT SI ON CHANGE C SIMULTANEMENT L'ORIGINE ET L'ORIENTATION. LA PLACE NECES- C SAIRE EST DE / NBCOL1*NBLIG1 C C EN SORTIE : C IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES MODIFIES C iarr : CODE D'ERREUR C C APPELS : G2ORIG, G2ORIE C ********************************************************************** IMPLICIT INTEGER(I-N) INTEGER IGR1(*),NBCOL1,NBLIG1 REAL*8 COORD(*),VK(*) INTEGER IDIMC,N1,ITVL(*),NTIMAX,iarr C INTEGER IOP1,IOP2,NBCOL2,NBLIG2 C iarr = 0 C C --- CALCUL DE L'ORIGINE --- C IF( N1.GT.0 )THEN IF( IOP1.EQ. 0 )THEN iarr = -1 GOTO 9999 ENDIF ELSE IOP1 = 1 ENDIF C IF( IOP1.NE.1 )THEN C C --- CHANGEMENT D'ORIGINE --- C IF( (NBCOL1*NBLIG1).GT.NTIMAX )THEN iarr = -2 GOTO 9999 ENDIF IF( IDIMC.GT.0 )THEN C IF( IOP2.EQ. 0 )THEN C --- ON RECOPIE MEME SI LE TRAVAIL N'EST PAS FINI --- IOP2 = 1 > IGR1,NBCOL1,NBLIG1 ) iarr = -1 GOTO 9999 ENDIF ELSE C --- ON NE SOUHAITE PAS CHANGER L'ORIENTATION --- IOP2 = 1 ENDIF > IGR1,NBCOL1,NBLIG1 ) C ELSE C C --- ORIGINE INCHANGEE --- C C --- ON NE SOUHAITE PAS CHANGER L'ORIENTATION => IDENTITE --- IF( IDIMC.LE.0 )GOTO 9999 C IF( IOP2.EQ. 0 )THEN iarr = -1 GOTO 9999 ENDIF C --- IDENTITE --- IF(IOP2.EQ.1)GOTO 9999 IF( (NBCOL1*NBLIG1).GT.NTIMAX )THEN iarr = -2 GOTO 9999 ENDIF > ITVL,NBCOL2,NBLIG2 ) > IGR1,NBCOL1,NBLIG1 ) ENDIF C 9999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales