Download coplan.eso

Back to the list

   1 : C COPLAN    SOURCE    CHAT      05/01/12    22:20:28     5004           
   2 :       SUBROUTINE COPLAN(XO,XA,XB,XC,IFLIG)
   3 : C  NORA DAVIDOVICH JUIN 89-
   4 : C  FORTRAN PUR. APPELE PAR ANGSOL. SERVE A TROUVER LES POINTS
   5 : C  SUR LA FRONTIERE DES ELEMENTS MASSIVES 3-DIM (SI IFLIG=1 LE POINT A
   6 : C  SE TROUVE SUR LA FRONTIERE DU ELEMENT)
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8 (A-H,O-Z)
   9 : C    Include contenant quelques constantes dont XPI :
  10 : -INC CCREEL
  11 :       DIMENSION XO(3),XA(3),XB(3),XC(3),XX(3,3),XV(3),YV(3),ZV(3)
  12 :       IFLIG=0
  13 :       X1=XA(1)
  14 :       X2=XB(1)
  15 :       X3=XC(1)
  16 :       Y1=XA(2)
  17 :       Y2=XB(2)
  18 :       Y3=XC(2)
  19 :       Z1=XA(3)
  20 :       Z2=XB(3)
  21 :       Z3=XC(3)
  22 :       DO 1 J=1,3
  23 :          XX(1,J)=XA(J)
  24 :          XX(2,J)=XB(J)
  25 :          XX(3,J)=XC(J)
  26 :     1 CONTINUE
  27 :       XNORM=(Y2-Y1)*(Z2-Z3)-(Z2-Z1)*(Y2-Y3)
  28 :       YNORM=(Z2-Z1)*(X2-X3)-(X2-X1)*(Z2-Z3)
  29 :       ZNORM=(X2-X1)*(Y2-Y3)-(Y2-Y1)*(X2-X3)
  30 :       DNORM=SQRT(XNORM**2+YNORM**2+ZNORM**2)
  31 :       XNORM=XNORM/DNORM
  32 :       YNORM=YNORM/DNORM
  33 :       ZNORM=ZNORM/DNORM
  34 :       ANG=0.D0
  35 :       XV1=X1-XO(1)
  36 :       YV1=Y1-XO(2)
  37 :       ZV1=Z1-XO(3)
  38 :       DO 63 IS=1,3
  39 :          XV(IS)=XX(IS,1)-XO(1)
  40 :          YV(IS)=XX(IS,2)-XO(2)
  41 :          ZV(IS)=XX(IS,3)-XO(3)
  42 :          XV2=XV(IS)
  43 :          YV2=YV(IS)
  44 :          ZV2=ZV(IS)
  45 :          XATA=XNORM*(YV1*ZV2-ZV1*YV2)+YNORM*(ZV1*XV2-XV1*ZV2)+
  46 :      #        ZNORM*(XV1*YV2-YV1*XV2)
  47 :          YATA=XV1*XV2+YV1*YV2+ZV1*ZV2
  48 :          IF (XATA.EQ.0.D0.AND.YATA.EQ.0.D0) GOTO 100
  49 :          IF (ABS(ABS(ATAN2(XATA,YATA))-XPI).LT.0.001D0) GOTO 100
  50 :          ANG=ANG+ATAN2(XATA,YATA)
  51 :          XV1=XV2
  52 :          YV1=YV2
  53 :          ZV1=ZV2
  54 :  63   CONTINUE
  55 :       IF (ABS(ABS(ANG)-XPI).LT.0.001D0) GOTO 100
  56 :       IF (ABS(ANG).GT.XPI) GOTO 100
  57 :       RETURN
  58 :  100  IFLIG=1
  59 :       RETURN
  60 :       END
  61 : 
  62 : 
  63 :  
  64 :  
  65 :  

© Cast3M 2003 - All rights reserved.
Disclaimer