C FACET2    SOURCE    JC220346  16/11/29    21:15:15     9221           
C---------------------------------------------------------------------|
C                                                                     |
       LOGICAL FUNCTION FACET2(JF)
C                                                                     |
C      CETTE FONCTION LOGIQUE INDIQUE SI LA FACETTE JF EST VALIDE.    |
C      -+- ON TESTE L'INTERSECTION DE LA FACETTE AVEC LES FACETTES    |
C      ENVIRONNANTES.                                                 |
C          ON TESTE AUSSI QU'AUCUNE ARETE N'EST DIAGONALE D'UN        |
C      FACETTE QUADRANGULAIRE                                         |
C      ON VERIFIE QU'ELLE EST DISTANTE DES FACETTES ENVIRONNANTES     |
C                                                                     |
C---------------------------------------------------------------------|
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
-INC TDEMAIT
-INC PPARAM
-INC CCOPTIO
       LOGICAL INTER,DROIT,DIAGO
C
       FACET2=.TRUE.
C
*  NE FAIRE LES TESTS QUE SI LA FACETTE EST NOUVELLE
       IF=0
       DO 50 I=1,NFACET
         IF=IFUT(I)
          IF (IF.EQ.JF) GOTO 60
  50   CONTINUE
       RETURN
  60   CONTINUE
*
       I1=NFC(1,JF)
       I2=NFC(2,JF)
       I3=NFC(3,JF)
       I4=NFC(4,JF)
          IF (DIAGO(I1,I2,0.95d0)) GOTO 500
          IF (DIAGO(I2,I3,0.95d0)) GOTO 500
      IF (I4.EQ.0) THEN
          IF (DIAGO(I3,I1,0.95d0)) GOTO 500
      ELSE
          IF (DIAGO(I3,I4,0.95d0)) GOTO 500
          IF (DIAGO(I4,I1,0.95d0)) GOTO 500
      ENDIF
C
C      TEST DE L'INTERSECTION DE LA FACETTE JF AVEC LES FACETTES ENVIRON
C      -----------------------------------------------------------------
C
105    CONTINUE
C
*      DO 110 I=1,NFACET
*        IF=IFUT(I)
*         IF (IF.EQ.JF) GOTO 110
*           J1=NFC(1,IF)
*           J2=NFC(2,IF)
*           J3=NFC(3,IF)
*           J4=NFC(4,IF)
*            IF (INTER(I1,I2,I3,J1,J2,J3,XYZ(1,1))) GOTO 500
*         IF (I4.NE.0) THEN
*            IF (INTER(I3,I4,I1,J1,J2,J3,XYZ(1,1))) GOTO 500
*         ENDIF
*         IF (J4.NE.0) THEN
*            IF(INTER(I1,I2,I3,J3,J4,J1,XYZ(1,1))) GOTO 500
*         IF (I4.EQ.0) GOTO 110
*            IF(INTER(I3,I4,I1,J3,J4,J1,XYZ(1,1))) GOTO 500
*         ENDIF
*110   CONTINUE
C
C
C      FACET2=FALSE SI LA NOUVELLE FACETTE EST MAUVAISE
C      FACET2=TRUE SI LA NOUVELLE FACETTE EST BONNE
C
       FACET2=.TRUE.
       RETURN
500        FACET2=.FALSE.
*          WRITE(6,2000)
2000       FORMAT(' FACET2 DESTRUCTION DE L',1H','ELEMENT')
       RETURN
C
       END



 
