smaocr
C SMAOCR SOURCE CHAT 06/03/29 21:34:21 5360 C C ***************************************************************** C MODULE : ST (STRUCTURE DES DONNEES) C FICHIER : ST_1STRUCT.F C OBJET : FONCTIONS PRATIQUES POUR LA CREATION DE MAILLAGES C C FONCT. : C SMAOCR : CREER LA STRUCTURE DE DONNEE MAILLAGE ORIENTEE C (CAS DE PLUSIEURS COMPOSANTES CONNEXES) C SFRCRE : CREER LE MAILLAGE FRONTIERE D'UN ENSEMBLE DE C MAILLES C C AUTEUR : O. STAB C DATE : 03.95 C MODIFICATIONS : C AUTEUR, DATE, OBJET : C C C ***************************************************************** C C > ITRNOE,NBNMAX,ITRTRI,NBCMAX,NOETRI,NOEMAX, > ITVL,NBTRAV,NCC,iarr) C ***************************************************************** C OBJET : CREER LA STRUCTURE DE DONNEE MAILLAGE ORIENTEE C (CAS DE PLUSIEURS COMPOSANTES CONNEXES) C ITRI -> ITRNOE, ITRTRI, NOETRI C EN ENTREE: C IDE : (1..3) DIMENSION DES ELEMENTS C NBE : NOMBRE D'ELEMENTS DU MAILLAGE C ITRI : ITRI(I,J) EST LE NOEUD J DE L'ELEMENT I C NBNMAX : (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS C NBCMAX : (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS C NOEMAX: TAILLE DU TABLEAU NOETRI C EN SORTIE: C ITRNOE: ITRNOE(I,J) EST LE NOEUD J DU TRIANGLE I C PEUT ETRE LE MEME TABLEAU QUE ITRI C ITRTRI: ITRTRI(I,J) EST L'ELEMENT INCIDENT A L'ELEMENT I SUR C LE COTE J C NOETRI : NOETRI(I) EST UN DES ELEMENTS CONTENANT LE NOEUD I C AU MIN = (NBCMAX+1)*NBE C AU MAX = MAX((NBCMAX+1)*NBE , C (NBR MAX D'ELEMENTS EN 1 NOEUD + 1) * C (NUMERO MAXI DU NOEUD DANS ITRI)) C => O(N) C iarr : CODE D'ERREUR 0 => OK C -2 => LE TABLEAU ITVL EST TROP PETIT C -NB => TABLEAU NOETRI TROP PETIT TAILLE SOUHAITE = NB C CONDITION D'APPLICATION : ARETE, TRIANGLE, QUADRANGLE, TETRA C ***************************************************************** IMPLICIT INTEGER(I-N) INTEGER IDE,ITRI(*),NBE REAL*8 COORD(*) INTEGER NCOORD,IDIMC,ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX INTEGER NOETRI(*), NOEMAX, ITVL(*), NBTRAV INTEGER NCC,iarr C INTEGER ITRAM,ITRAP,N,INDC,I,K,NBTRIP(100),IND,IEC C > NOETRI,NOEMAX,ITVL,NBTRAV,iarr) C IF( iarr.LT.0 )GO TO 999 ITRAM = NBTRAV - NBE > ITVL,ITRAM,ITVL(ITRAM),NCC,iarr) IF( iarr.LT.0 )GO TO 999 IF( IDE.LT.IDIMC )GO TO 999 C C --- ORIENTATION GEOMETRIQUE IDENTIQUE POUR CHAQUE CC C N'A DE SENS QUE SI LA DIMENSION DES ELEMENTS EST C IDENTIQUE A LA DIMENSION DE L'ESPACE C IF( NCC.EQ.1 )THEN C C --- UNE SEULE COMPOSANTE CONNEXE ----------------- C DO 30 I=1,NBE > ITRTRI((I-1)*NBCMAX+1)) 30 CONTINUE ENDIF ELSE C C --- PLUSIEURS COMPOSANTES CONNEXES --------------- C ITRAP = NBTRAV - NBE ITRAM = ITRAP - NBE IND = 1 C C BUG3 O.STAB 03.08.95 NOMBRE DE PARAMETRES INCORRECT C > ITVL,ITVL(ITRAM),ITRAM, > ITVL(ITRAP),NBTRIP,NCC,100,iarr) INDC = 1 DO 50 I=1,NCC DO 40 K=0,(NBTRIP(I)-1) IEC = ITVL(ITRAP+INDC+K) C C BUG4 O.STAB 15.09.95 : NUMERO RELATIF DU COTE (SINVOR) C C CALL SINVOR(ITVL(ITRAP+INDC+K),N,IDE,ITRNOE, C > ITRTRI) C REMPLACER PAR : C > ITRTRI((IEC-1)*NBCMAX+1)) 40 CONTINUE ENDIF 50 CONTINUE ENDIF 999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales