Numérotation des lignes :

C G2ORAC    SOURCE    CHAT      06/03/29    21:22:04     5360C      SUBROUTINE G2ORAC(IGR1,NBCOL1,NBLIG1,COORD,IDIMC,N1,VK,     >                  ITVL,NTIMAX,iarr )C     **********************************************************************C     OBJET G2ORAC : REORIENTE UNE GRILLE GEOMETRIQUECC     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 NOEUDSCC       N1    : ORIGINE SOUHAITE DE LA GRILLE IGR1(1,1) = IORIGC               SI N1=0 ON N'IMPOSE PAS L'ORIGINEC       VK    : ORIENTATION DE LA GRILLE, DIRECTION SOUHAITE EN N1C               SI IDIMC = 0, ON N'IMPOSE PAS D'ORIENTATION.CC       ITVL  : TABLEAU DE TRAVAIL (ENTIERS)C       NITMAX: TAILLE DU TABLEAU ITVLC               ON A BESOIN DU TABLEAU DE TRAVAIL SEULEMENT SI ON CHANGEC               SIMULTANEMENT L'ORIGINE ET L'ORIENTATION. LA PLACE NECES-C               SAIRE EST DE / NBCOL1*NBLIG1CC     EN SORTIE   :C       IGR1(NBCOL1,NBLIG1) : TABLEAU D'INDICES MODIFIESC       iarr  : CODE D'ERREURCC     APPELS : G2ORIG, G2ORIEC     **********************************************************************      IMPLICIT INTEGER(I-N)      INTEGER IGR1(*),NBCOL1,NBLIG1      REAL*8    COORD(*),VK(*)      INTEGER IDIMC,N1,ITVL(*),NTIMAX,iarrC      INTEGER IOP1,IOP2,NBCOL2,NBLIG2C      iarr = 0CC     --- CALCUL DE L'ORIGINE ---C      IF( N1.GT.0 )THEN         CALL G2ORIG(IGR1,NBCOL1,NBLIG1,N1,IOP1 )         IF( IOP1.EQ. 0 )THEN           iarr = -1           CALL DSERRE(1,iarr,'G2ORAC',' APPEL G2ORIG')           CALL DSERRE(1,iarr,'G2ORAC',' TRANSFORMATION INCONNUE')           GOTO 9999         ENDIF      ELSE         IOP1 = 1      ENDIF C      IF( IOP1.NE.1 )THENCC     --- CHANGEMENT D'ORIGINE ---C        IF( (NBCOL1*NBLIG1).GT.NTIMAX )THEN          iarr = -2          CALL DSERRE(1,iarr,'G2ORAC','TABLEAU D ENTIER')          GOTO 9999        ENDIF        CALL G2COPY(IGR1,NBCOL1,NBLIG1,IOP1,ITVL,NBCOL2,NBLIG2 )        IF( IDIMC.GT.0 )THENC          CALL G2ORIE(ITVL,NBCOL2,NBLIG2,IDIMC,COORD,VK,IOP2 )          IF( IOP2.EQ. 0 )THENC          --- ON RECOPIE MEME SI LE TRAVAIL N'EST PAS FINI ---           IOP2 = 1           CALL G2COPY(ITVL,NBCOL2,NBLIG2,IOP2,     >                     IGR1,NBCOL1,NBLIG1 )            iarr = -1            CALL DSERRE(1,iarr,'G2ORAC',' APPEL G2ORIE')            CALL DSERRE(1,iarr,'G2ORAC',' TRANSFORMATION INCONNUE')            GOTO 9999          ENDIF       ELSEC       --- ON NE SOUHAITE PAS CHANGER L'ORIENTATION ---         IOP2 = 1       ENDIF          CALL G2COPY(ITVL,NBCOL2,NBLIG2,IOP2,     >                     IGR1,NBCOL1,NBLIG1 ) C      ELSECC     --- ORIGINE INCHANGEE ---CC       --- ON NE SOUHAITE PAS CHANGER L'ORIENTATION => IDENTITE ---        IF( IDIMC.LE.0 )GOTO 9999C        CALL G2ORIE(IGR1,NBCOL1,NBLIG1,IDIMC,COORD,VK,IOP2 )        IF( IOP2.EQ. 0 )THEN          iarr = -1          CALL DSERRE(1,iarr,'G2ORAC',' APPEL G2ORIE')          CALL DSERRE(1,iarr,'G2ORAC',' TRANSFORMATION INCONNUE')          GOTO 9999        ENDIFC         --- IDENTITE ---        IF(IOP2.EQ.1)GOTO 9999        IF( (NBCOL1*NBLIG1).GT.NTIMAX )THEN          iarr = -2          CALL DSERRE(1,iarr,'G2ORAC',' TABLEAU D ENTIER')          GOTO 9999        ENDIF        CALL G2COPY(IGR1,NBCOL1,NBLIG1,IOP1,     >                 ITVL,NBCOL2,NBLIG2 )         CALL G2COPY(ITVL,NBCOL2,NBLIG2,IOP2,     >                   IGR1,NBCOL1,NBLIG1 )      ENDIF C 9999 END

© Cast3M 2003 - Tous droits réservés.
Mentions légales