Télécharger ellp07.eso

Retour à la liste

Numérotation des lignes :

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

© Cast3M 2003 - Tous droits réservés.
Mentions légales