C FCUB20    SOURCE    PV        22/04/25    21:15:07     11344          
C
C
C
      SUBROUTINE FCUB20(ITYPE,INDONN,IRESUL,NBRESU)
C     **********************************************************************
C     OBJET FCUB20 : RENVOI LES INFO SUR LE CUB20
C        EN ENTREE :
C           ITYPE  : TYPE DES INFORMATION SOUHAITEES
C           INDONN : DONNEES POUR LA REQUETE FORMULEE
C        EN SORTIE :
C          IRESUL  : TABLEAU D'ENTIER CONTENANT LE RESULTAT
C          NBRESU  : NOMBRE D'INFORMATION CONTENU DANS IRESUL
C
C     **********************************************************************
      IMPLICIT INTEGER(I-N)
      INTEGER ITYPE,INDONN(*),IRESUL(*),NBRESU
C
C
      INTEGER INDMIN,INDMAX,I
C                  ==========================
C     ------------- DESCRIPTION DE L'ELEMENT --------------------
C                  ==========================
      INTEGER NSOAR,NNOAR,NSOFA,NNOFA,NSOVO,NNOVO,NNOTOT
      PARAMETER ( NSOAR = 24, NNOAR = 25, NSOFA = 31, NNOFA = 1,
     >           NSOVO = 8, NNOVO = 1, NNOTOT = 12 )
      INTEGER ISOAR(NSOAR),INOAR(NNOAR),ISOFA(NSOFA),INOFA(NNOFA)
      INTEGER ISOVO(NSOVO),INOVO(NNOVO),INOTOT(NNOTOT)
      DATA    ISOAR / 1,3,3,5,5,7,7,1,1,13,3,15,5,17,7,19,13,15,
     >               15,17,17,19,19,13 /
      DATA    INOAR /14,15,16,17,18,19,20,21,22,23,24,25,26,
     >               2,4,6,8,9,10,11,12,14,16,18,20/
      DATA    ISOFA / 7,11,15,19,23,27,31,
     >                1,3,5,7,   1,13,15,3,  3,15,17,5,
     >                5,17,19,7, 7,19,13,1,  13,19,17,15 /

      DATA    INOFA / 0 /
      DATA    ISOVO / 1,3,5,7,13,15,17,19 /
      DATA    INOVO / 0 /
      DATA    INOTOT /2,4,6,8,9,10,11,12,14,16,18,20 /
C     ------------------------------------------------------------
C
      GOTO(10,20,30,40,50,60,70,80,90) ITYPE
    1 NBRESU = 0
      GOTO 9999
C
C     ============================================================
C     1  : LES INDICES DES NOEUDS MILIEU DES SOMMETS (D'UNE ARETE)
C     ============================================================
   10 CONTINUE
      INDMIN = MIN(INDONN(1),INDONN(2))
      INDMAX = MAX(INDONN(1),INDONN(2))
      NBRESU = 1
      IF( INDMAX.LE.8 )THEN
         CALL ELSN2D( INDMIN,INDMAX,8,IRESUL(1))
         GOTO 9999
      ENDIF
      IF( INDMIN.GE.13)THEN
         CALL ELSN2D( INDMIN-12,INDMAX-12,8,IRESUL(1))
         IRESUL(1) = IRESUL(1) + 12
         GOTO 9999
      ENDIF
      IRESUL(1) = 9 + INDMIN / 2
      GOTO 9999
C
C     ============================================================
C     2  : LES INDICES DES SOMMETS D'UNE ARETE
C     ============================================================
   20 CONTINUE
      NBRESU = NSOAR
      DO 21 I=1,NBRESU
        IRESUL(I) = ISOAR(I)
   21 CONTINUE
      GOTO 9999
C
C     ============================================================
C     3  : LES INDICES DES NOEUDS MILIEU D'UNE ARETE
C     ============================================================
   30 CONTINUE
      NBRESU = NNOAR
      DO 31 I=1,NBRESU
        IRESUL(I) = INOAR(I)
   31 CONTINUE
      GOTO 9999
C
C     ============================================================
C     4  : LES INDICES DES NOEUDS MILIEU DES SOMMETS (D'UNE FACE)
C     ============================================================
   40 CONTINUE
      NBRESU = 0
      GOTO 9999
C
C     ============================================================
C     5  : LES INDICES DES SOMMETS D'UNE FACE
C     ============================================================
   50 CONTINUE
      NBRESU = NNOAR
      DO 51 I=1,NBRESU
        IRESUL(I) = ISOFA(I)
   51 CONTINUE
      GOTO 9999
C
C     ============================================================
C     6  : LES INDICES DES NOEUDS MILIEU D'UNE FACE
C     ============================================================
   60 CONTINUE
      NBRESU = NNOFA
      DO 61 I=1,NBRESU
        IRESUL(I) = INOFA(I)
   61 CONTINUE
      GOTO 9999
C
C     ============================================================
C     7  : LES INDICES DES NOEUDS DU VOLUME
C     ============================================================
   70 CONTINUE
      NBRESU = NNOVO
      DO 71 I=1,NBRESU
        IRESUL(I) = INOVO(I)
   71 CONTINUE
      GOTO 9999
C
C     ============================================================
C     8  : LES INDICES DES SOMMETS
C     ============================================================
   80 CONTINUE
      NBRESU = NSOVO
      DO 81 I=1,NBRESU
        IRESUL(I) = ISOVO(I)
   81 CONTINUE
      GOTO 9999
C
C     ============================================================
C     9  : LES INDICES DES NOEUDS
C     ============================================================
   90 CONTINUE
      NBRESU = NNOTOT
      DO 91 I=1,NBRESU
        IRESUL(I) = INOTOT(I)
   91 CONTINUE
      GOTO 9999
C
 9999 END


 
 
