C ARETE2    SOURCE    PV        09/01/08    21:15:13     6254
      SUBROUTINE ARETE2 (MELEME,TS,ISEG,TN,INOR,TI,ICPR,LCPR)

*       APPELE PAR ARETE1
*          REMPLIT LES TABLES TSEG ET TNOR POUR LES CALCULS
*       D'ELIMINATION D'ARETES .
*
*-------------------------------------------------------------------
*
*   ARBRE D'APPEL :
*   --------------
*         ARETE2 : PREPARATION DU MAILLAGE PAR CALCUL DES NORMALES
*                  AUX FACETTES , ET CLASSEMENT DES SEGMENTS APRES
*                  ECLATES EN SEG2
*
*-------------------------------------------------------------------
*
*   VARIABLES PRINCIPALES :
*   ---------------------
*
*      TSEG : SEGMENT 2 DIMENSIONS  CONTENANT
*
*     | A TRACER (= 0  NON,   =1 OUI)    |
*     | COULEUR                          |
*     | N NOEUD MIN                     |
*     | N NOEUD MAX                     |
*     | ENTREES DANS TSEG                |
*
*      TNOR : SEGMENT 2 DIMENSIONS CONTENANT LES NORMALES A COMPARER
*             POUR CHAQUE FACE ELEMENTAIRE
*
*      ISEG : TAILLE REELLE DU SEGMENT TSEG
*      INOR : TAILLE REELLE DU SEGMENT TNOR
*
*--------------------------------------------------------------------
*      AUTEUR : J.BRUN (JUIN 90)

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Y)
      IMPLICIT LOGICAL (Z)
      SEGMENT TN
          REAL*8 TNOR (N1,3)
      ENDSEGMENT
      SEGMENT TS
          INTEGER TSEG (M1,M2)
      ENDSEGMENT
      SEGMENT TI
      INTEGER TINDIC(MI1,MI2,2)
      ENDSEGMENT
      SEGMENT ICPR(0)
-INC SMELEME
      REAL*8    VN(3)

*---------------------------------------------------------------------
*
*    ELIMINATION ELEMENT POI1 ,SEG2 ,SEG3
*
*---------------------------------------------------------------------
100        IF (ITYPEL.LE.3) GOTO 200
*---------------------------------------------------------------------
*
*    BOUCLE SUR LES ELEMENTS
*
*---------------------------------------------------------------------
           DO 2 NEL=1,NUM(/2)
*
*    ELEMENT PLAN TRI3 OU TRI4
*
           IF (ITYPEL.LT.5) THEN
              CALL NORFAC(VN,NUM(1,NEL),NUM(2,NEL),NUM(3,NEL))
              DO 3 I=1,3

                   IF (I.EQ.3) THEN
           N1=NUM(3,NEL)
           N2=NUM(1,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
                   ELSE
           N1=NUM(I,NEL)
           N2=NUM(I+1,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
                   ENDIF
3             CONTINUE
           ELSE
*
*    ELEMENT POUVANT ETRE NON PLAN ( A REDECOUPER EN TRI3 )
*
              NB=NUM(/1)
*    TRI7 -> TRI6
              IF (ITYPEL.EQ.7) NB=6
*    QUA5 -> QUA4
              IF (ITYPEL.EQ.9) NB=4
*    QUA9 -> QUA8
              IF (ITYPEL.EQ.11) NB=8
              DO 4 I=1,NB,2
                   IF (I.EQ.1) THEN
           CALL NORFAC(VN,NUM(NB,NEL),NUM(1,NEL),NUM(2,NEL))
           N1=NUM(NB,NEL)
           N2=NUM(1,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
           N1=NUM(1,NEL)
           N2=NUM(2,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
                   ELSE
           CALL NORFAC(VN,NUM(I-1,NEL),NUM(I,NEL),NUM(I+1,NEL))
           N1=NUM(I-1,NEL)
           N2=NUM(I,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
           N1=NUM(I,NEL)
           N2=NUM(I+1,NEL)
           N3=ICOLOR(NEL)
           CALL TRISEG(TS,ISEG,TN,INOR,TI,ICPR,LCPR,VN,N1,N2,N3)
                   ENDIF
4             CONTINUE
           ENDIF
2          CONTINUE
200   RETURN
      END






