tmapar
C TMAPAR SOURCE CHAT 06/03/29 21:35:56 5360 C C C > ITVL,ITRAMA,NBIT1, > ITRPAR,NBTRIP,NBPART,NPARMX,iarr) C ************************************************************** C OBJET : PARTITIONNE UN MAILLAGE EN FONCTION DES COMPOSANTES C CONNEXES ET DES MATERIAUX C EN ENTREE: C IDE : (1..3) DIMENSION DES ELEMENTS C ITRTRI: LES VOISINS DES ELEMENTS C NBCMAX : (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS C IND : INDICE DU PREMIER ELEMENT DE L'ENSEMBLE C NBE : NOMBRE D'ELEMENTS DE L'ENSEMBLE C ITVL,NBITL : TABLEAU DE TRAVAIL NBITL < NBCMAX*NBTRI C ITRAMA : " " " " DE TAILLE = NBTRI C EN SORTIE : C NBPAR : NOMBRE DE MATERIAUX C NBTRIP : NBTRIP(I) DONNE LE NOMBRE DE TRIANGLE DU MATERIAU I C ITRPAR: TABLEAU DES TRIANGLES TRIES EN FONCTION DU MATERIAU C LES TRIANGLES DU MATERIAU I SONT ENTRE : C ITRPAR(NBTRIP(I-1)+1) ET ITRPAR(NBTRIP(I)) C iarr : CODE D'ERREUR 0 => OK, -2 => ITVL TROP PETIT C *************************************************************** IMPLICIT INTEGER(I-N) INTEGER IDE,ITRTRI(*),NBCMAX,IND,NBE INTEGER ITRPAR(*), NBTRIP(*),NBPART,NPARMX,iarr INTEGER ITRAMA(*), ITVL(*), NBIT1 C INTEGER I, IT, INDICE, NBTT, INDF C C INITIALISATION C -------------- NBPART = 0 iarr = 0 NBTT = 0 INDF = (NBE-IND)+1 DO 10 I=IND,INDF ITRAMA(I) = 0 10 CONTINUE NBTT=0 IT = IND 20 IF( NBTT .EQ. NBE )GOTO 888 30 IF( ITRAMA(IT) .NE. 0 )THEN IT=IT+1 IF( IT .GT. INDF )GO TO 999 GO TO 30 ENDIF NBPART = NBPART+1 IF( NBPART.GT.NPARMX)THEN iarr = -2 GO TO 999 ENDIF INDICE = NBTT+1 NBTRIP(NBPART) = 0 > NBIT1,ITRPAR(INDICE),NBTRIP(NBPART),iarr) IF( iarr .NE. 0 )GO TO 999 NBTT = NBTT + NBTRIP(NBPART) GO TO 20 C --- POUR LE DEBUG --- 888 DO 890 I=IND,INDF IF( ITRAMA(I).EQ.0 )THEN iarr = -1 ENDIF 890 CONTINUE 999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales