1 : C G2ORQ4 SOURCE CHAT 06/03/29 21:22:09 5360 2 : C 3 : C 4 : SUBROUTINE G2ORQ4(ITRNOE,NBNMAX,ITRTRI,NBCMAX,NBE, 5 : > COORD,IDIMC,N1,VK, 6 : > ITVL,NTIMAX, 7 : > IGR,NBCOL,NBLIG,NGRMAX,ICOIN,iarr ) 8 : C ********************************************************************** 9 : C OBJET G2ORQ4 : CREATION D'UNE GRILLE ORIENTE A PARTIR D'UN MAILLAGE 10 : C 11 : C EN ENTREE : 12 : C ITRNOE,NBNMAX,ITRTRI,NBCMAX,NBE : LE MAILLAGE 13 : C COORD,IDIMC : TABLEAU DES POINTS ET DIMENSION 14 : C 15 : C N1 : NUMERO DU NOEUD QUE L'ON SOUHAITE POUR L'ORIGINE DE LA GRILLE 16 : C SI N1=0 ON N'IMPOSE PAS L'ORIGINE 17 : C VK : ORIENTATION DE LA GRILLE, DIRECTION SOUHAITE EN N1 18 : C SI IDIMC = 0, ON N'IMPOSE PAS D'ORIENTATION. 19 : C 20 : C ITVL(ITVMAX) : TABLEAU DE TRAVAIL (ENTIERS) 21 : C NTIMAX: TAILLE DU TABLEAU ITVL 22 : C ON A BESOIN DU TABLEAU DE TRAVAIL SEULEMENT SI ON CHANGE 23 : C SIMULTANEMENT L'ORIGINE ET L'ORIENTATION DU MAILLAGE. 24 : C LA PLACE NECESSAIRE EST ALORS DE : NBCOL*NBLIG = NBN 25 : C QUI EST TOUJOURS INFERIEUR A : 3 + 2*NBE 26 : C 27 : C IGR1 : TABLEAU DE LA GRILLE (A REMPLIR) 28 : C NGRMAX : TAILLE MAXIMUM DE IGR1 29 : C 30 : C EN SORTIE : 31 : C IGR(NBCOL,NBLIG) : TABLEAU D'INDICES DES NOEUDS (LA GRILLE) 32 : C ICOIN() : TABLEAU DONNANT LES INDICES DES COINS. 33 : C 34 : C ********************************************************************** 35 : IMPLICIT INTEGER(I-N) 36 : INTEGER ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX,NBE 37 : INTEGER IGR(*),NBCOL,NBLIG,NGRMAX 38 : REAL*8 COORD(*),VK(*) 39 : INTEGER IDIMC,N1,ITVL(*),NTIMAX,ICOIN(*),iarr 40 : C 41 : INTEGER I 42 : C ---------------------- 43 : C --- CALCUL DE LA GRILLE --- 44 : C ---------------------- 45 : C 45 : CALL G2NOQ4( ITRNOE,NBNMAX,ITRTRI,NBCMAX,NBE, 46 : > IGR,NBCOL,NBLIG,NGRMAX,iarr) 47 : IF(iarr.NE.0)THEN 47 : CALL DSERRE(1,iarr,'G2ORQ4',' APPEL G2NOQ4') 48 : GOTO 9999 49 : ENDIF 50 : C 50 : C CALL G2COIN(NBCOL,NBLIG,ICOIN) 51 : ICOIN(1) = 1 52 : ICOIN(2) = NBCOL 53 : ICOIN(3) = NBCOL*NBLIG 54 : ICOIN(4) = NBCOL*NBLIG - NBCOL + 1 55 : DO 10 I=1,4 56 : ICOIN(I) = IGR(ICOIN(I)) 57 : 10 CONTINUE 58 : IF( iarr.NE. 0 )THEN 58 : CALL DSERRE(1,iarr,'G2ORQ4',' APPEL G2COIN') 59 : GOTO 9999 60 : ENDIF 61 : C 62 : C --- ORIENTATION --- 63 : C 63 : CALL G2ORAC(IGR,NBCOL,NBLIG,COORD,IDIMC,N1,VK, 64 : > ITVL,NTIMAX,iarr ) 65 : IF( iarr.NE. 0 )THEN 65 : CALL DSERRE(1,iarr,'G2ORQ4',' APPEL G2ORAC') 66 : GOTO 9999 67 : ENDIF 68 : C 69 : 9999 END 70 : 71 : 72 :
© Cast3M 2003 - All rights reserved.
Disclaimer