coplan
C COPLAN SOURCE CB215821 16/11/21 21:15:00 9196 C NORA DAVIDOVICH JUIN 89- C FORTRAN PUR. APPELE PAR ANGSOL. SERVE A TROUVER LES POINTS C SUR LA FRONTIERE DES ELEMENTS MASSIVES 3-DIM (SI IFLIG=1 LE POINT A C SE TROUVE SUR LA FRONTIERE DE L'ELEMENT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC CCREEL DIMENSION XO(3),XA(3),XB(3),XC(3),XX(3,3),XV(3),YV(3),ZV(3) IFLIG=0 X1=XA(1) X2=XB(1) X3=XC(1) Y1=XA(2) Y2=XB(2) Y3=XC(2) Z1=XA(3) Z2=XB(3) Z3=XC(3) DO 1 J=1,3 XX(1,J)=XA(J) XX(2,J)=XB(J) XX(3,J)=XC(J) 1 CONTINUE XNORM=(Y2-Y1)*(Z2-Z3)-(Z2-Z1)*(Y2-Y3) YNORM=(Z2-Z1)*(X2-X3)-(X2-X1)*(Z2-Z3) ZNORM=(X2-X1)*(Y2-Y3)-(Y2-Y1)*(X2-X3) DNORM=SQRT(XNORM**2+YNORM**2+ZNORM**2) IF (DNORM .GE. XPETIT) THEN XNORM=XNORM/DNORM YNORM=YNORM/DNORM ZNORM=ZNORM/DNORM ELSE XATA = ZERO ENDIF ANG=ZERO XV1=X1-XO(1) YV1=Y1-XO(2) ZV1=Z1-XO(3) DO 63 IS=1,3 XV(IS)=XX(IS,1)-XO(1) YV(IS)=XX(IS,2)-XO(2) ZV(IS)=XX(IS,3)-XO(3) XV2=XV(IS) YV2=YV(IS) ZV2=ZV(IS) XATA=XNORM*(YV1*ZV2-ZV1*YV2)+ # YNORM*(ZV1*XV2-XV1*ZV2)+ # ZNORM*(XV1*YV2-YV1*XV2) YATA=XV1*XV2+ # YV1*YV2+ # ZV1*ZV2 IF (ABS(ABS(ATAN2(XATA,YATA))-XPI).LT.REAL(1D-3)) GOTO 100 ANG=ANG+ATAN2(XATA,YATA) XV1=XV2 YV1=YV2 ZV1=ZV2 63 CONTINUE IF (ABS(ABS(ANG)-XPI).LT.REAL(1D-3)) GOTO 100 IF (ABS(ANG).GT.XPI) GOTO 100 RETURN 100 IFLIG=1 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales