Download ellp22.eso

Back to the list

   1 : C ELLP22    SOURCE    CHAT      05/01/12    23:35:27     5004           
   2 :         SUBROUTINE ELLP22(CORRES,FLAG,COOR,GAMA,ZA1,MASS,RMAS,                  
   3 :      *                    ZS,NP,NP24,NMAS,NNT)                                  
   4 : C                                                                               
   5 :       IMPLICIT INTEGER(I-N)
   6 :         IMPLICIT REAL*8     (A-H,O-Y)                                           
   7 :         IMPLICIT COMPLEX*16 (Z)                                                 
   8 : C                                                                               
   9 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC        
  10 : C                                                                               
  11 : C   OPERATEUR ELFE LAPLACE POUTRE                                               
  12 : C                                                                               
  13 : C   PRISE EN COMPTE DE LA MASSE PONCTUELLE                                      
  14 : C                                                                               
  15 : C   PARAMETRES :                                                                
  16 : C                                                                               
  17 : C   COOR   : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP)                        
  18 : C   GAMA   : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP)        
  19 : C   ZA1    : MATRICE DE RIGIDITE                                                
  20 : C   MASS   : LIEU DES MASSES PONCTUELLES                                        
  21 : C   RASS   : VALEUR DES MASSES PONCTUELLES                                      
  22 : C   ZS     : VALEUR DE LA VARIABLE DE LAPLACE                                   
  23 : C   NP     : NOMBRE DE POUTRES                                                  
  24 : C   NP24   : --> NP*24                                                          
  25 : C   NMAS   : NOMBRE DE MASSES PONCTUELLES                                       
  26 : C   NNT    : NOMBRE TOTAL DE NOEUDS                                             
  27 : C                                                                               
  28 : C                                                                               
  29 : C   AUTEURS : SAINT-DIZIER ET GORCY                                             
  30 : C   DATE    : 04 FEVRIER 1991                                                   
  31 : C                                                                               
  32 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC            
  33 : C                                                                               
  34 :         DIMENSION COOR(3,*),GAMA(3,*)                                           
  35 :         DIMENSION ZA1(NP24,*),MASS(NNT,4)                                       
  36 :         DIMENSION RMAS(NNT,4)                                                   
  37 :         INTEGER FLAG(*),CORRES(*)                                               
  38 : C                                                                               
  39 : C                                                                               
  40 :         ZI = (0.D0 , 1.D0)                                                      
  41 : C                                                                               
  42 :         IF (NMAS.GT.0) THEN                                                     
  43 :           DO 10 I = 1 , NMAS                                                    
  44 :             INP = MASS(I,2)                                                     
  45 :             N1  = 2*INP-1                                                       
  46 :             N2  = 2*INP                                                         
  47 :             X1  = COOR (1,N1)                                                   
  48 :             Y1  = COOR (2,N1)                                                   
  49 :             Z1  = COOR (3,N1)                                                   
  50 :             X2  = COOR (1,N2)                                                   
  51 :             Y2  = COOR (2,N2)                                                   
  52 :             Z2  = COOR (3,N2)                                                   
  53 : C                                                                               
  54 :             XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2)                     
  55 : C                                                                               
  56 : C -- VECTEUR UNITAIRE OX REPERE LOCALE                                          
  57 : C                                                                               
  58 :             XI1 = (X2-X1)/XL                                                    
  59 :             XI2 = (Y2-Y1)/XL                                                    
  60 :             XI3 = (Z2-Z1)/XL                                                    
  61 : C                                                                               
  62 : C -- VECTEUR UNITAIRE OY REPERE LOCALE                                          
  63 : C                                                                               
  64 :             GX = GAMA(1,INP)                                                    
  65 :             GY = GAMA(2,INP)                                                    
  66 :             GZ = GAMA(3,INP)                                                    
  67 :             GG = SQRT(GX*GX + GY*GY + GZ*GZ)                                    
  68 :             GX = GX/GG                                                          
  69 :             GY = GY/GG                                                          
  70 :             GZ = GZ/GG                                                          
  71 : C                                                                               
  72 :         DELTA =  SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2)                    
  73 : C                                                                               
  74 :         DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2           
  75 : C                                                                               
  76 :         IF (ABS(DET).LT.1E-12) THEN                                             
  77 :            XJ1 = -XI2                                                           
  78 :            XJ2 = 0.                                                             
  79 :            XJ3 = 0.                                                             
  80 :         ELSE                                                                    
  81 :            XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET            
  82 :            XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET            
  83 :            XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET            
  84 :         ENDIF                                                                   
  85 : C                                                                               
  86 : C -- VECTEUR UNITAIRE OZ REPERE LOCALE                                          
  87 : C                                                                               
  88 :         XK1 = XI2*XJ3 - XI3*XJ2                                                 
  89 :         XK2 = XI3*XJ1 - XI1*XJ3                                                 
  90 :         XK3 = XI1*XJ2 - XI2*XJ1                                                 
  91 : C                                                                               
  92 :         Z11 = XJ2*XK3 - XJ3*XK2                                                 
  93 :         Z12 = XJ3*XK1 - XJ1*XK3                                                 
  94 :         Z13 = XJ1*XK2 - XJ2*XK1                                                 
  95 :         Z21 = XI3*XK2 - XI2*XK3                                                 
  96 :         Z22 = XI1*XK3 - XI3*XK1                                                 
  97 :         Z23 = XI2*XK1 - XI1*XK2                                                 
  98 :         Z31 = XI2*XJ3 - XI3*XJ2                                                 
  99 :         Z32 = XI3*XJ1 - XI1*XJ3                                                 
 100 :         Z33 = XI1*XJ2 - XI2*XJ1                                                 
 101 : C                                                                               
 102 :         NN = CORRES (MASS(I,1))                                                 
 103 :         IZA1 = MASS(I,4)                                                        
 104 :         JZA1 = MASS(I,3)                                                        
 105 : C                                                                               
 106 : C                                                                               
 107 :         IF (FLAG((NN-1)*12+1).EQ.0) THEN                                        
 108 :            ZA1(IZA1  ,JZA1)   = -1.D0*RMAS(I,1)*ZS*ZS                           
 109 :            ENDIF                                                                
 110 :         IF (FLAG((NN-1)*12+2).EQ.0) THEN                                        
 111 :            ZA1(IZA1+1,JZA1+1) = -1.D0*RMAS(I,1)*ZS*ZS                           
 112 :            ENDIF                                                                
 113 :         IF (FLAG((NN-1)*12+3).EQ.0) THEN                                        
 114 :            ZA1(IZA1+2,JZA1+2) = -1.D0*RMAS(I,1)*ZS*ZS                           
 115 :            ENDIF                                                                
 116 : C                                                                               
 117 :         IF (FLAG((NN-1)*12+4).EQ.0) THEN                                        
 118 :            ZA1(IZA1+3,JZA1+3) = -1.D0*ZS*ZS*( RMAS(I,2)*Z11*XI1                 
 119 :      *                        + RMAS(I,3)*Z21*XJ1 + RMAS(I,4)*Z31*XK1 )         
 120 :            ZA1(IZA1+3,JZA1+4) = -1.D0*ZS*ZS*( RMAS(I,2)*Z12*XI1                 
 121 :      *                        + RMAS(I,3)*Z22*XJ1 + RMAS(I,4)*Z32*XK1 )         
 122 :            ZA1(IZA1+3,JZA1+5) = -1.D0*ZS*ZS*( RMAS(I,2)*Z13*XI1                 
 123 :      *                        + RMAS(I,3)*Z23*XJ1 + RMAS(I,4)*Z33*XK1 )         
 124 :            ENDIF                                                                
 125 : C                                                                               
 126 :         IF (FLAG((NN-1)*12+5).EQ.0) THEN                                        
 127 :            ZA1(IZA1+4,JZA1+3) = -1.D0*ZS*ZS*( RMAS(I,2)*Z11*XI2                 
 128 :      *                        + RMAS(I,3)*Z21*XJ2 + RMAS(I,4)*Z31*XK2 )         
 129 :            ZA1(IZA1+4,JZA1+4) = -1.D0*ZS*ZS*( RMAS(I,2)*Z12*XI2                 
 130 :      *                        + RMAS(I,3)*Z22*XJ2 + RMAS(I,4)*Z32*XK2 )         
 131 :            ZA1(IZA1+4,JZA1+5) = -1.D0*ZS*ZS*( RMAS(I,2)*Z13*XI2                 
 132 :      *                        + RMAS(I,3)*Z23*XJ2 + RMAS(I,4)*Z33*XK2 )         
 133 :            ENDIF                                                                
 134 : C                                                                               
 135 :         IF (FLAG((NN-1)*12+6).EQ.0) THEN                                        
 136 :            ZA1(IZA1+5,JZA1+3) = -1.D0*ZS*ZS*( RMAS(I,2)*Z11*XI3                 
 137 :      *                        + RMAS(I,3)*Z21*XJ3 + RMAS(I,4)*Z31*XK3 )         
 138 :            ZA1(IZA1+5,JZA1+4) = -1.D0*ZS*ZS*( RMAS(I,2)*Z12*XI3                 
 139 :      *                        + RMAS(I,3)*Z22*XJ3 + RMAS(I,4)*Z32*XK3 )         
 140 :            ZA1(IZA1+5,JZA1+5) = -1.D0*ZS*ZS*( RMAS(I,2)*Z13*XI3                 
 141 :      *                        + RMAS(I,3)*Z23*XJ3 + RMAS(I,4)*Z33*XK3 )         
 142 :            ENDIF                                                                
 143 : C                                                                               
 144 : C                                                                               
 145 : 10    CONTINUE                                                                  
 146 : C                                                                               
 147 :       END IF                                                                    
 148 : C                                                                               
 149 :       END                                                                       
 150 :  

© Cast3M 2003 - All rights reserved.
Disclaimer