1 : C TMA1CC SOURCE CHAT 06/03/29 21:35:47 5360 2 : C 3 : C 4 : C 5 : SUBROUTINE TMA1CC(IDE,ITRTRI,NBCMAX,IND,NBE, 6 : > IT,ITVL,ITRAMA,NBITL,ICON,NBICON,iarr) 7 : C ************************************************************** 8 : C OBJET : 9 : C CALCUL DES ELEMENTS APPARTENANT A UN ENSEMBLE 10 : C DE MAILLES CONSECUTIVES ET CONNEXE AVEC 1 ELEMENT DONNE 11 : C EN ENTREE: 12 : C IDE : (1..3) DIMENSION DES ELEMENTS 13 : C ITRTRI: LES VOISINS DES ELEMENTS 14 : C NBCMAX : (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS 15 : C IND : INDICE DU PREMIER ELEMENT DE L'ENSEMBLE 16 : C NBE : NOMBRE D'ELEMENTS DE L'ENSEMBLE 17 : C IT : L'ELEMENT DE DEPART 18 : C ITVL,NBITL : TABLEAU DE TRAVAIL NBITL < N*NBE 19 : C ITRAMA : " " " " DE TAILLE = NBE 20 : C EN SORTIE: 21 : C ICON : LISTE DES ELEMENTS CONNEXES AVEC IT 22 : C NBICON : NBRE D'ELEMENTS DE ICON 23 : C iarr : CODE D'ERREUR 0 => OK, -2 => ITVL TROP PETIT 24 : C CONDITION D'APPLICATION : MAILLAGE MIXTE 1D,2D ET 25 : C ET TETRAEDRES 26 : C ATTENTION : ITRAMA DOIT ETRE INITIALISE 27 : C NORMALEMENT ITRAMA(0..NBE) = 0 28 : C SI ITRAMA(I)=1 ON CONSIDERE QUE L'ELEMENT I EST BLOQUANT 29 : C IT EST MIS DANS LA COMPOSANTE CONNEXE 30 : C ************************************************************ 31 : IMPLICIT INTEGER(I-N) 32 : INTEGER IDE,ITRTRI(*),NBCMAX,IND,NBE 33 : INTEGER IT,ITRAMA(*),ITVL(*),NBITL,ICON(*),NBICON,iarr 34 : C 35 : INTEGER I,J, NBTRA, ITT 36 : C 37 : ITVL(1) = IT 38 : ITRAMA(IT) = 1 39 : NBTRA = 1 40 : iarr = 0 41 : C 42 : C ON BOUCLE TANTQUE ITVL N'EST PAS VIDE 43 : C ---------------------------------------- 44 : 310 J = ITVL(NBTRA) 45 : NBTRA = NBTRA-1 46 : NBICON = NBICON+1 47 : ICON(NBICON) = J 48 : C ON MET LES VOISINS A TRAITER DANS ITVL 49 : C ------------------------------------------ 50 : DO 350 I=1,NBCMAX 51 : ITT = ITRTRI(((J-1)*NBCMAX)+I) 52 : C IF((ITT.GT.IND).AND.(ITRAMA(ITT).NE.1))THEN 53 : C BUG2 O.STAB 03.08.95 54 : IF((ITT.GE.IND).AND.(ITRAMA(ITT).EQ.0))THEN 55 : NBTRA = NBTRA + 1 56 : IF( NBTRA .GT. NBITL )THEN 57 : iarr = -2 58 : GO TO 999 59 : ENDIF 60 : C 61 : ITVL(NBTRA) = ITT 62 : ITRAMA(ITT) = 1 63 : ENDIF 64 : 350 CONTINUE 65 : IF( NBTRA .NE. 0 )GO TO 310 66 : 999 END 67 : 68 : 69 :
© Cast3M 2003 - All rights reserved.
Disclaimer