Download tmapar.eso

Back to the list

   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