Numérotation des lignes :

coplan
C COPLAN    SOURCE    CB215821  16/11/21    21:15:00     9196                 SUBROUTINE COPLAN(XO,XA,XB,XC,IFLIG)C  NORA DAVIDOVICH JUIN 89-C  FORTRAN PUR. APPELE PAR ANGSOL. SERVE A TROUVER LES POINTSC  SUR LA FRONTIERE DES ELEMENTS MASSIVES 3-DIM (SI IFLIG=1 LE POINT AC  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      ZERO =REAL(XZERO)      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 (XATA.EQ.ZERO.AND.YATA.EQ.ZERO) GOTO 100          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