C NUCOMP    SOURCE    CHAT      06/03/29    21:28:27     5360
      SUBROUTINE NUCOMP(IDE,ITRNOE,NBNMAX,ITRTRI,NBCMAX,NOETRI,
     >                   NOEMAX,NBE,NUM,NBNUM,iarr)
C     *****************************************************************
C     OBJET : RENUMEROTE LES ELEMENTS D'UN MAILLAGE POUR LES COMPACTER
C             EN DEBUT : DE 1 A "NBNUM"
C     EN ENTREE:
C      IDE    :  (1..3) DIMENSION DES ELEMENTS
C      ITRNOE:  LES NOEUDS DES ELEMENTS
C      NBNMAX :  (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS
C      ITRTRI:  LES VOISINS DES ELEMENTS
C      NBCMAX :  (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS
C      NBE    :  NOMBRE D'ELEMENTS DU MAILLAGE
C      NOEMAX: SI NOEMAX = 0 ALORS NOETRI N'EST PAS CONSIDERE
C      NUM    :  NUM(I) EST NUMERO DE L'ELEMENT QUI DOIT ETRE MIS EN I
C                ATTENTION !! NUM DOIT ETRE TRIE AVEC ENSTRI
C      NBNUM  :  NOMBRE D'ELEMENTS A RENUMEROTER
C     EN SORTIE:
C       ITRNOE: MIS A JOUR
C       ITRTRI: MIS A JOUR
C       NOETRI : MIS A JOUR
C     CONDITION D'APPLICATION : TOUT MAILLAGE
C     COMPLEXITE : O(NBNUM) ALORS QUE STRRENUM EST EN O(NBE)
C     PRINCIPE   : LES PERMUTATIONS FONCTIONNENT SI NUM(I)>I
C                  C.A.D. L'ANCIENNE POSITION > A LA NOUVELLE
C                  ON EST DANS CE CAS SI NUM EST TRIE PAR ORDRE CROISS.
C     *****************************************************************
      IMPLICIT INTEGER(I-N)
      INTEGER    IDE,ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX,NOETRI(*),NBE
      INTEGER    NOEMAX,NUM(*),NBNUM,iarr
C
      INTEGER I
C
      DO 10 I=1,NBNUM
        CALL NUPERM(IDE,ITRNOE,NBNMAX,ITRTRI,NBCMAX,NOETRI,
     >                NOEMAX,NBE,NUM(I),I,iarr)
        IF( iarr .NE. 0 )GOTO 999
   10 CONTINUE
  999 END



