artref
C ARTREF SOURCE CHAT 05/01/12 21:25:24 5004 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RECHERCHE IART NUMERO DE L ARETE OU SE TROUVE LE POINT DE C COORDONNEES X DANS L'ELEMENT DE REFERENCE C C ITYP TYPE DE L ELEMENT (3D ) C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION X(*) EPS=1.D-15 IART=0 IF(ITYP.EQ.14)THEN C L ELEMENT DE REFERENCE EST UN CUBE IF(ABS(1.D0-X(3)).LT.EPS)THEN IF(ABS(1.D0-X(1)).LT.EPS)THEN IART=3 X(3)=1.D0 X(1)=1.D0 ELSEIF(ABS(1.D0+X(1)).LT.EPS)THEN IART=4 X(3)=1.D0 X(1)=-1.D0 ELSEIF(ABS(1.D0-X(2)).LT.EPS)THEN IART=7 X(3)=1.D0 X(2)=1.D0 ELSEIF(ABS(1.D0+X(2)).LT.EPS)THEN IART=8 X(3)=1.D0 X(2)=-1.D0 ELSE RETURN ENDIF ELSEIF(ABS(1.D0+X(3)).LT.EPS)THEN IF(ABS(1.D0-X(1)).LT.EPS)THEN IART=2 X(3)=-1.D0 X(1)=1.D0 ELSEIF(ABS(1.D0+X(1)).LT.EPS)THEN IART=1 X(3)=-1.D0 X(1)=-1.D0 ELSEIF(ABS(1.D0-X(2)).LT.EPS)THEN IART=6 X(3)=-1.D0 X(2)=1.D0 ELSEIF(ABS(1.D0+X(2)).LT.EPS)THEN IART=5 X(3)=-1.D0 X(2)=-1.D0 ELSE RETURN ENDIF ELSEIF(ABS(1.D0-X(1)).LT.EPS)THEN IF(ABS(1.D0-X(2)).LT.EPS)THEN IART=11 X(1)=1.D0 X(2)=1.D0 ELSEIF(ABS(1.D0+X(2)).LT.EPS)THEN IART=10 X(1)=1.D0 X(2)=-1.D0 ELSE RETURN ENDIF ELSEIF(ABS(1.D0+X(1)).LT.EPS)THEN IF(ABS(1.D0-X(2)).LT.EPS)THEN IART=12 X(1)=-1.D0 X(2)=1.D0 ELSEIF(ABS(1.D0+X(2)).LT.EPS)THEN IART=9 X(1)=-1.D0 X(2)=-1.D0 ELSE RETURN ENDIF ENDIF ELSEIF(ITYP.EQ.16)THEN C L ELEMENT DE REFERENCE EST UN PRISME IF(ABS(1.D0-X(3)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=2 X(3)=1.D0 X(1)=0.D0 ELSEIF(ABS(X(2)).LT.EPS)THEN IART=4 X(3)=1.D0 X(2)=0.D0 ELSEIF(ABS(1.D0-X(1)-X(2)).LT.EPS)THEN IART=6 X(3)=1.D0 X(2)=1.D0-X(1) ELSE RETURN ENDIF ELSEIF(ABS(1.D0+X(3)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=1 X(3)=-1.D0 X(1)=0.D0 ELSEIF(ABS(X(2)).LT.EPS)THEN IART=3 X(3)=-1.D0 X(2)=0.D0 ELSEIF(ABS(1.D0-X(1)-X(2)).LT.EPS)THEN IART=5 X(3)=-1.D0 X(2)=1.D0-X(1) ELSE RETURN ENDIF ELSEIF(ABS(X(2)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=7 X(2)=0.D0 X(1)=0.D0 ELSEIF(ABS(1.D0-X(1)).LT.EPS)THEN IART=8 X(1)=1.D0 X(2)=0.D0 ELSE RETURN ENDIF ELSEIF(ABS(1.D0-X(2)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=9 X(2)=1.D0 X(1)=0.D0 ELSE RETURN ENDIF ENDIF ELSEIF(ITYP.EQ.23)THEN C L ELEMENT DE REFERENCE EST TETRAEDRE IF(ABS(X(3)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=2 X(3)=0.D0 X(1)=0.D0 ELSEIF(ABS(X(2)).LT.EPS)THEN IART=1 X(3)=0.D0 X(2)=0.D0 ELSEIF(ABS(1.D0-X(1)-X(2)).LT.EPS)THEN IART=4 X(3)=0.D0 X(2)=1.D0-X(1) ELSE RETURN ENDIF ELSEIF(ABS(X(2)).LT.EPS)THEN IF(ABS(X(1)).LT.EPS)THEN IART=3 X(2)=0.D0 X(1)=0.D0 ELSEIF(ABS(1.D0-X(1)-X(3)).LT.EPS)THEN IART=6 X(2)=0.D0 X(3)=1.D0-X(1) ELSE RETURN ENDIF ELSEIF(ABS(X(1)).LT.EPS)THEN IF(ABS(1.D0-X(2)-X(3)).LT.EPS)THEN IART=5 X(1)=0.D0 X(3)=1.D0-X(2) ELSE RETURN ENDIF ENDIF ELSE ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales