numnoe
C NUMNOE SOURCE CHAT 05/01/13 02:03:18 5004 C 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
© Cast3M 2003 - Tous droits réservés.
Mentions légales