C NUMNOE    SOURCE    CHAT      05/01/13    02:03:18     5004
C
      SUBROUTINE NUMNOE(XYZ,ITYP,INOEU)
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
C     RECHERCHE SI LE POINT XYZ EST UN NOEUD DANS LES COORDONNEES
C       DE REFERENCE
C     DANS CE CAS CE PROGRAMME DONNE EGALEMENT LE NUMERO DU NOEUD
C                         DE L'ELEMENT
C     INOEU=0  CE N EST PAS UN NOEUD
C     INOEU#0  C'EST LE NUMERO DU NOEUD
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C
      DIMENSION XYZ(3)
C
      EPS=1.D-10
C
C        ON CHERCHE SI ON A AFFAIRE    A UN NOEUD DU MAILLAGE
      INOEU=0
      IF(ITYP.EQ.4.OR.ITYP.EQ.6.OR.ITYP.EQ.7)THEN
C              L ELEMENT DE REFERENCE EST UN TRIANGLE
         IF(ABS(XYZ(1)).LT.EPS)THEN
            IF(ABS(XYZ(2)).LT.EPS)THEN
               INOEU=1
               XYZ(1)=0.D0
               XYZ(2)=0.D0
            ELSE
               INOEU=3
               XYZ(1)=0.D0
               XYZ(2)=1.D0
            ENDIF
         ELSE
            INOEU=2
            XYZ(1)=1.D0
            XYZ(2)=0.D0
         ENDIF
C
      ELSEIF(ITYP.EQ.8.OR.ITYP.EQ.11)THEN
C              L ELEMENT DE REFERENCE EST UN CARRE
            IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=1
                  XYZ(1)=-1.D0
                  XYZ(2)=-1.D0
               ELSE
                  INOEU=4
                  XYZ(1)=-1.D0
                  XYZ(2)=1.D0
               ENDIF
            ELSE
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=2
                  XYZ(1)=1.D0
                  XYZ(2)=-1.D0
               ELSE
                  INOEU=3
                  XYZ(1)=1.D0
                  XYZ(2)=1.D0
               ENDIF
            ENDIF
C
      ELSEIF(ITYP.EQ.16)THEN
C              L ELEMENT DE REFERENCE EST UN PRISME
         IF((ABS(XYZ(3)+1.D0).LT.EPS))THEN
            IF(ABS(XYZ(1)).LT.EPS)THEN
               IF(ABS(XYZ(2)).LT.EPS)THEN
                  INOEU=1
                  XYZ(1)=0.D0
                  XYZ(2)=0.D0
                  XYZ(3)=-1.D0
               ELSE
                  INOEU=3
                  XYZ(1)=0.D0
                  XYZ(2)=1.D0
                  XYZ(3)=-1.D0
               ENDIF
            ELSE
               INOEU=2
               XYZ(1)=1.D0
               XYZ(2)=0.D0
               XYZ(3)=-1.D0
            ENDIF
         ELSE
            IF(ABS(XYZ(1)).LT.EPS)THEN
               IF(ABS(XYZ(2)).LT.EPS)THEN
                  INOEU=4
                  XYZ(1)=0.D0
                  XYZ(2)=0.D0
                  XYZ(3)=1.D0
               ELSE
                  INOEU=6
                  XYZ(1)=0.D0
                  XYZ(2)=1.D0
                  XYZ(3)=1.D0
               ENDIF
            ELSE
               INOEU=5
               XYZ(1)=1.D0
               XYZ(2)=0.D0
               XYZ(3)=1.D0
            ENDIF
         ENDIF
C
C
      ELSEIF(ITYP.EQ.14)THEN
C              L ELEMENT DE REFERENCE EST UN CUBE
         IF(ABS(1.D0+XYZ(3)).LT.EPS)THEN
C
            IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=1
                  XYZ(1)=-1.D0
                  XYZ(2)=-1.D0
                  XYZ(3)=-1.D0
               ELSE
                  INOEU=4
                  XYZ(1)=-1.D0
                  XYZ(2)=1.D0
                  XYZ(3)=-1.D0
               ENDIF
            ELSE
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=2
                  XYZ(1)=1.D0
                  XYZ(2)=-1.D0
                  XYZ(3)=-1.D0
               ELSE
                  INOEU=3
                  XYZ(1)=1.D0
                  XYZ(2)=1.D0
                  XYZ(3)=-1.D0
               ENDIF
            ENDIF
C
         ELSE
C
            IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=5
                  XYZ(1)=-1.D0
                  XYZ(2)=-1.D0
                  XYZ(3)=1.D0
               ELSE
                  INOEU=8
                  XYZ(1)=-1.D0
                  XYZ(2)=1.D0
                  XYZ(3)=1.D0
               ENDIF
            ELSE
               IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
                  INOEU=6
                  XYZ(1)=1.D0
                  XYZ(2)=-1.D0
                  XYZ(3)=1.D0
               ELSE
                  INOEU=7
                  XYZ(1)=1.D0
                  XYZ(2)=1.D0
                  XYZ(3)=1.D0
               ENDIF
            ENDIF
         ENDIF

C
      ELSEIF(ITYP.EQ.23)THEN
C              L ELEMENT DE REFERENCE EST UN TETRAEDRE
         IF(ABS(XYZ(3)).LT.EPS)THEN
            IF(ABS(XYZ(1)).LT.EPS)THEN
               IF(ABS(XYZ(2)).LT.EPS)THEN
                  INOEU=1
                  XYZ(1)=0.D0
                  XYZ(2)=0.D0
                  XYZ(3)=0.D0
               ELSE
                  INOEU=3
                  XYZ(1)=0.D0
                  XYZ(2)=1.D0
                  XYZ(3)=0.D0
               ENDIF
            ELSE
               INOEU=2
               XYZ(1)=1.D0
               XYZ(2)=0.D0
               XYZ(3)=0.D0
            ENDIF
         ELSE
            INOEU=4
            XYZ(1)=0.D0
            XYZ(2)=0.D0
            XYZ(3)=1.D0
         ENDIF
C
      ENDIF
      RETURN
      END



