1 : C TMAPAR SOURCE CHAT 06/03/29 21:35:56 5360 2 : C 3 : C 4 : C 5 : SUBROUTINE TMAPAR(IDE,ITRTRI,NBCMAX,IND,NBE, 6 : > ITVL,ITRAMA,NBIT1, 7 : > ITRPAR,NBTRIP,NBPART,NPARMX,iarr) 8 : C ************************************************************** 9 : C OBJET : PARTITIONNE UN MAILLAGE EN FONCTION DES COMPOSANTES 10 : C CONNEXES ET DES MATERIAUX 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 ITVL,NBITL : TABLEAU DE TRAVAIL NBITL < NBCMAX*NBTRI 18 : C ITRAMA : " " " " DE TAILLE = NBTRI 19 : C EN SORTIE : 20 : C NBPAR : NOMBRE DE MATERIAUX 21 : C NBTRIP : NBTRIP(I) DONNE LE NOMBRE DE TRIANGLE DU MATERIAU I 22 : C ITRPAR: TABLEAU DES TRIANGLES TRIES EN FONCTION DU MATERIAU 23 : C LES TRIANGLES DU MATERIAU I SONT ENTRE : 24 : C ITRPAR(NBTRIP(I-1)+1) ET ITRPAR(NBTRIP(I)) 25 : C iarr : CODE D'ERREUR 0 => OK, -2 => ITVL TROP PETIT 26 : C *************************************************************** 27 : IMPLICIT INTEGER(I-N) 28 : INTEGER IDE,ITRTRI(*),NBCMAX,IND,NBE 29 : INTEGER ITRPAR(*), NBTRIP(*),NBPART,NPARMX,iarr 30 : INTEGER ITRAMA(*), ITVL(*), NBIT1 31 : C 32 : INTEGER I, IT, INDICE, NBTT, INDF 33 : C 34 : C INITIALISATION 35 : C -------------- 36 : NBPART = 0 37 : iarr = 0 38 : NBTT = 0 39 : INDF = (NBE-IND)+1 40 : DO 10 I=IND,INDF 41 : ITRAMA(I) = 0 42 : 10 CONTINUE 43 : NBTT=0 44 : IT = IND 45 : 20 IF( NBTT .EQ. NBE )GOTO 888 46 : 30 IF( ITRAMA(IT) .NE. 0 )THEN 47 : IT=IT+1 48 : IF( IT .GT. INDF )GO TO 999 49 : GO TO 30 50 : ENDIF 51 : NBPART = NBPART+1 52 : IF( NBPART.GT.NPARMX)THEN 53 : iarr = -2 54 : GO TO 999 55 : ENDIF 56 : INDICE = NBTT+1 57 : NBTRIP(NBPART) = 0 57 : CALL TMA1CC(IDE,ITRTRI,NBCMAX,IND,NBE,IT,ITVL,ITRAMA, 58 : > NBIT1,ITRPAR(INDICE),NBTRIP(NBPART),iarr) 59 : IF( iarr .NE. 0 )GO TO 999 60 : NBTT = NBTT + NBTRIP(NBPART) 61 : GO TO 20 62 : C --- POUR LE DEBUG --- 63 : 888 DO 890 I=IND,INDF 64 : IF( ITRAMA(I).EQ.0 )THEN 65 : iarr = -1 66 : ENDIF 67 : 890 CONTINUE 68 : 999 END 69 : 70 : 71 :
© Cast3M 2003 - All rights reserved.
Disclaimer