C FACET2 SOURCE PV 07/10/11 21:15:08 5907 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 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