Download ella07.eso

Back to the list

   1 : C ELLA07    SOURCE    CHAT      05/01/12    23:33:48     5004           
   2 :       SUBROUTINE ELLA07(XA,YA,ZA,XB,YB,ZB,X1,Y1,Z1,X2,Y2,Z2,IOUI) 
   3 : C
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 : C
   7 : C   OPERATEUR ELFE LAPLACE ACOU
   8 : C
   9 : C   REGARDE SI LE SEGMENT <1-2> APPARTIENT AU SEGMENT 
  10 : C
  11 : C   PARAMETRES :
  12 : C
  13 : C   A ( XA,YA,ZA )   B ( XB,YB,ZB )   1 ( X1,Y1,Z1 )   2 ( X2,Y2,Z2 )
  14 : C
  15 : C
  16 : C   SORTIES :
  17 : C
  18 : C   IOUI    : = 1 SI LA CONDITION EST VERIFIEE
  19 : C             = 0 SI LA CONDITION N'EST PAS VERIFIEE
  20 : C
  21 : C   AUTEURS : SAINT-DIZIER ET GORCY
  22 : C   DATE    : 24 JANVIER 1991
  23 : C
  24 :       IOUI = 0
  25 : C
  26 : C -- VECTEUR AB ET LONGUEUR DE LE POUTRE
  27 : C
  28 :       XBA = XB - XA
  29 :       YBA = YB - YA
  30 :       ZBA = ZB - ZA
  31 :       XL = SQRT ( XBA*XBA + YBA*YBA + ZBA*ZBA)
  32 :       EPS0 = 1.D-15
  33 :       IF (XL.LT.EPS0) RETURN
  34 : C
  35 : C-- VECTEURS AM1, AM2, BM1, BM2
  36 : C
  37 :       X1A = X1 - XA
  38 :       Y1A = Y1 - YA
  39 :       Z1A = Z1 - ZA
  40 :       XL1A = SQRT ( X1A*X1A + Y1A*Y1A + Z1A*Z1A )
  41 : C
  42 :       X2A = X2 - XA
  43 :       Y2A = Y2 - YA
  44 :       Z2A = Z2 - ZA
  45 :       XL2A = SQRT ( X2A*X2A + Y2A*Y2A + Z2A*Z2A )
  46 : C
  47 :       X1B = X1 - XB
  48 :       Y1B = Y1 - YB
  49 :       Z1B = Z1 - ZB
  50 :       XL1B = SQRT ( X1B*X1B + Y1B*Y1B + Z1B*Z1B )
  51 : C
  52 :       X2B = X2 - XB
  53 :       Y2B = Y2 - YB
  54 :       Z2B = Z2 - ZB
  55 :       XL2B = SQRT ( X2B*X2B + Y2B*Y2B + Z2B*Z2B )
  56 : C
  57 : C -- PRODUITS VECTORIELS AM1^AB ET AM2^AB ET NORMES ASSOCIEES
  58 : C
  59 :       XVECT1 = ZBA*Y1A - YBA*Z1A
  60 :       YVECT1 = XBA*Z1A - ZBA*X1A
  61 :       ZVECT1 = YBA*X1A - XBA*Y1A
  62 :       XNORM1 = SQRT ( XVECT1*XVECT1 + YVECT1*YVECT1 + ZVECT1*ZVECT1 )
  63 : C
  64 :       XVECT2 = ZBA*Y2A - YBA*Z2A
  65 :       YVECT2 = XBA*Z2A - ZBA*X2A
  66 :       ZVECT2 = YBA*X2A - XBA*Y2A
  67 :       XNORM2 = SQRT ( XVECT2*XVECT2 + YVECT2*YVECT2 + ZVECT2*ZVECT2 )
  68 : C
  69 : C -- PRODUITS SCALAIRES AM1.BM1 ET AM2.BM2
  70 : C
  71 :       XP1 = X1A*X1B + Y1A*Y1B + Z1A*Z1B
  72 :       XP2 = X2A*X2B + Y2A*Y2B + Z2A*Z2B
  73 : C
  74 :         IF (((XL1A.LT.EPS0).AND.(XP2.GT.0.)).OR.
  75 :      *      ((XL1B.LT.EPS0).AND.(XP2.GT.0.))) RETURN
  76 : C
  77 :         IF (((XL2A.LT.EPS0).AND.(XP1.GT.0.D0)).OR.
  78 :      *      ((XL2B.LT.EPS0).AND.(XP1.GT.0.D0))) RETURN
  79 : C
  80 :         IF (((XL1A.LT.EPS0).AND.(XP2.LT.0.D0)).OR.
  81 :      *      ((XL1B.LT.EPS0).AND.(XP2.LT.0.D0))) THEN
  82 :           IOUI = 1
  83 :           RETURN
  84 :         ENDIF
  85 : C
  86 :         IF (((XL2A.LT.EPS0).AND.(XP1.LT.0.D0)).OR.
  87 :      *      ((XL2B.LT.EPS0).AND.(XP1.LT.0.D0))) THEN
  88 :           IOUI = 1
  89 :           RETURN
  90 :         ENDIF
  91 : C
  92 : C -- NORMALISATION (REND LES CRITERES INDEPENDANTS DES DIMENSIONS
  93 : C     DE LA POUTRE)
  94 : C
  95 :       XNORM1 = XNORM1 / (XL*XL1A)
  96 :       XNORM2 = XNORM2 / (XL*XL2A)
  97 :       XP1 = XP1 / (XL*XL)
  98 :       XP2 = XP2 / (XL*XL)
  99 : C
 100 : C -- CRITERES GEOMETRIQUES
 101 : C
 102 :       EPS1 = 8.7D-3
 103 :       EPS2 = 1.D-3
 104 : C
 105 : C -- IOUI VAUT 1 SI LES VECTEURS SONT COLINEAIRES (M1 ET M2 APPARTIENNEN
 106 : C -- A LA DROITE (AB)), ET SI LES PRODUITS SCALAIRES SONT <0 (APPARTE-
 107 : C -- NANCE AU SEGMENT AB)
 108 : C
 109 :       IF (XNORM1.LT.EPS1)THEN
 110 :          IF (XNORM2.LT.EPS1) THEN
 111 :             IF (XP1.LT.EPS2) THEN
 112 :                IF (XP2.LT.EPS2) IOUI=1
 113 :             ENDIF
 114 :          ENDIF
 115 :       ENDIF
 116 : C
 117 :       END
 118 :  
 119 :  

© Cast3M 2003 - All rights reserved.
Disclaimer