Download ellp07.eso

Back to the list

   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                       
  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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer