Download dohcom.eso

Back to the list

   1 : C DOHCOM    SOURCE    CHAT      05/01/12    22:53:27     5004           
   2 : C                                                                               
   3 :       SUBROUTINE DOHCOM(VELA,NCOELE,MATE,IFOU,LHOOK,DDHOOK,IRET)                
   4 : C                                                                               
   5 : C=======================================================================        
   6 : C                                                                               
   7 : C  MATRICE DE HOOK DES COQUES MINCES                                            
   8 : C                                                                               
   9 : C  ENTREES                                                                      
  10 : C     VELA() = materiau dans un tableau de travail                              
  11 : C     NCOELE = TAILLE DU TABLEAU VELA                                           
  12 : C     MATE   = Nom du materiau                                                  
  13 : C     IFOU   = num{ro d'harmonique de  fourier: IFOUR de CCOPTIO                
  14 : C     LHOOK  = taille de la matrice de hooke                                    
  15 : C                                                                               
  16 : C  SORTIES                                                                      
  17 : C     DDHOOK(LHOOK,LHOOK) = matrice de hooke                                    
  18 : C     IRET = 1 si option existante 0 SINON                                      
  19 : C                                                                               
  20 : C     Passage en nouveau CHAMELEM par I.Monnier le 4 05 90                      
  21 : C=======================================================================        
  22 : C                                                                               
  23 :       IMPLICIT INTEGER(I-N)
  24 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  25 :       PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0)                                
  26 :       PARAMETER(UN=1.D0,DEUX=2.D0)                                              
  27 :       CHARACTER*8 MATE                                                          
  28 : C                                                                               
  29 :       DIMENSION VELA(*),DDHOOK(LHOOK,*)                                         
  30 :       REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3)                                
  31 :       REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2)                                
  32 : C                                                                               
  33 :       IRET=1                                                                    
  33 :       CALL ZERO(DDHOOK,LHOOK,LHOOK)                                             
  34 : C                                                                               
  35 : C     MATERIAU ISOTROPE                                                         
  36 : C                                                                               
  37 :       IF(MATE.EQ.'ISOTROPE') THEN                                               
  38 : C                                                                               
  39 : C     CAS TRIDIMENSIONNEL  ET FOURIER                                           
  40 : C                                                                               
  41 :       IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN                                           
  42 :       YOU =VELA(1)                                                              
  43 :       XNU =VELA(2)                                                              
  44 :       AUX=YOU/(UN-XNU*XNU)                                                      
  45 :       AUX1=AUX*XNU                                                              
  46 :       GEGE=YOU*UNDEMI/(UN+XNU)                                                  
  47 : C                                                                               
  48 :       DDHOOK(1,1)=AUX                                                           
  49 :       DDHOOK(2,1)=AUX1                                                          
  50 :       DDHOOK(1,2)=AUX1                                                          
  51 :       DDHOOK(2,2)=AUX                                                           
  52 :       DDHOOK(3,3)=GEGE                                                          
  53 : C                                                                               
  54 :       DDHOOK(4,4)=AUX                                                           
  55 :       DDHOOK(5,4)=AUX1                                                          
  56 :       DDHOOK(4,5)=AUX1                                                          
  57 :       DDHOOK(5,5)=AUX                                                           
  58 :       DDHOOK(6,6)=GEGE                                                          
  59 : C                                                                               
  60 : C     CAS AXISYMETRIQUE ET DEFORMATIONS PLANES                                  
  61 : C                                                                               
  62 :       ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN                                     
  63 :       YOU =VELA(1)                                                              
  64 :       XNU =VELA(2)                                                              
  65 :       AUX=YOU/(UN-XNU*XNU)                                                      
  66 :       AUX1=AUX*XNU                                                              
  67 : C                                                                               
  68 :       DDHOOK(1,1)=AUX                                                           
  69 :       DDHOOK(2,1)=AUX1                                                          
  70 :       DDHOOK(1,2)=AUX1                                                          
  71 :       DDHOOK(2,2)=AUX                                                           
  72 : C                                                                               
  73 :       DDHOOK(3,3)=AUX                                                           
  74 :       DDHOOK(4,3)=AUX1                                                          
  75 :       DDHOOK(3,4)=AUX1                                                          
  76 :       DDHOOK(4,4)=AUX                                                           
  77 : C                                                                               
  78 : C     CAS CONTRAINTES PLANES                                                    
  79 : C                                                                               
  80 :       ELSE IF(IFOU.EQ.-2) THEN                                                  
  81 :       YOU =VELA(1)                                                              
  82 :       DDHOOK(1,1)=YOU                                                           
  83 :       DDHOOK(3,3)=YOU                                                           
  84 :       ELSE                                                                      
  85 :       IRET=0                                                                    
  86 :       ENDIF                                                                     
  87 : C                                                                               
  88 : C     MATERIAU ORTHOTROPE ET UNIDIRECTIONNEL                                    
  89 : C                                                                               
  90 :       ELSE IF(MATE.EQ.'ORTHOTRO'.OR.                                            
  91 :      1        MATE.EQ.'UNIDIREC')THEN                                           
  92 : C                                                                               
  93 : C     CAS TRIDIMENSIONNEL ET FOURIER                                            
  94 : C                                                                               
  95 :       IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN                                           
  96 :         IF(MATE.EQ.'ORTHOTRO')THEN                                              
  97 :          YG1 = VELA(1)                                                          
  98 :          YG2 = VELA(2)                                                          
  99 :          XNU12 = VELA(3)                                                        
 100 :          G12 = VELA(4)                                                          
 101 :          COSA = VELA(5)                                                         
 102 :          SINA = VELA(6)                                                         
 103 : C                                                                               
 104 :          X1NUNU = UN - (XNU12**2) * YG2 / YG1                                   
 105 : C                                                                               
 106 :          D3HOO1(1,1) = YG1 / X1NUNU                                             
 107 :          D3HOO1(2,2) = YG2 / X1NUNU                                             
 108 :          D3HOO1(1,2) = XNU12 * D3HOO1(2,2)                                      
 109 :          D3HOO1(2,1) = D3HOO1(1,2)                                              
 110 :          D3HOO1(3,3) = G12                                                      
 111 :          D3HOO1(1,3) = XZER                                                     
 112 :          D3HOO1(2,3) = XZER                                                     
 113 :          D3HOO1(3,1) = XZER                                                     
 114 :          D3HOO1(3,2) = XZER                                                     
 115 : C                                                                               
 116 :        ELSE                                                                     
 116 :          CALL ZERO(D3HOO1,3,3)                                                  
 117 :          D3HOO1(1,1)=VELA(1)                                                    
 118 :          COSA=VELA(2)                                                           
 119 :          SINA=VELA(3)                                                           
 120 :        ENDIF                                                                    
 121 :          COS2 = COSA**2                                                         
 122 :          SIN2 = SINA**2                                                         
 123 :          SINCOS = SINA * COSA                                                   
 124 : C                                                                               
 125 :          ROTHOO(1,1) = COS2                                                     
 126 :          ROTHOO(1,2) = SIN2                                                     
 127 :          ROTHOO(1,3) = SINCOS                                                   
 128 :          ROTHOO(2,1) = SIN2                                                     
 129 :          ROTHOO(2,2) = COS2                                                     
 130 :          ROTHOO(2,3) = - SINCOS                                                 
 131 :          ROTHOO(3,1) = - DEUX * SINCOS                                          
 132 :          ROTHOO(3,2) = DEUX * SINCOS                                            
 133 :          ROTHOO(3,3) = COS2 - SIN2                                              
 134 : C                                                                               
 135 : C        PASSAGE DANS LE REPERE DE L'ELEMENT:                                   
 135 :          CALL PRODT (D3HOO2,D3HOO1,ROTHOO,3,3)                                  
 136 :          DO 200 J=1,3                                                           
 137 :             DO 200 I=1,3                                                        
 138 :                DDHOOK(I,J) = D3HOO2(I,J)                                        
 139 :                DDHOOK(I+3,J+3) = D3HOO2(I,J)                                    
 140 :   200       CONTINUE                                                            
 141 : C                                                                               
 142 : C     CAS AXISYMETRIQUE ET DEFORMATIONS PLANES                                  
 143 : C                                                                               
 144 :       ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN                                     
 145 :         IF(MATE.EQ.'ORTHOTRO')THEN                                              
 146 :          YG1 = VELA(1)                                                          
 147 :          YG2 = VELA(2)                                                          
 148 :          XNU12 = VELA(3)                                                        
 149 :          COSA = VELA(5)                                                         
 150 :          SINA = VELA(6)                                                         
 151 : C                                                                               
 152 :          X1NUNU = UN - (XNU12**2) * YG2 / YG1                                   
 153 : C                                                                               
 154 :          D2HOO1(1,1) = YG1 / X1NUNU                                             
 155 :          D2HOO1(2,2) = YG2 / X1NUNU                                             
 156 :          D2HOO1(1,2) = XNU12 * D2HOO1(2,2)                                      
 157 :          D2HOO1(2,1) = D2HOO1(1,2)                                              
 158 : C                                                                               
 159 :        ELSE                                                                     
 159 :          CALL ZERO(D2HOO1,2,2)                                                  
 160 :          D2HOO1(1,1)=VELA(1)                                                    
 161 :          COSA=VELA(2)                                                           
 162 :          SINA=VELA(3)                                                           
 163 :        ENDIF                                                                    
 164 : C                                                                               
 165 :          COS2 = COSA**2                                                         
 166 :          SIN2 = SINA**2                                                         
 167 :          RO2HOO(1,1) = COS2                                                     
 168 :          RO2HOO(1,2) = SIN2                                                     
 169 :          RO2HOO(2,1) = SIN2                                                     
 170 :          RO2HOO(2,2) = COS2                                                     
 171 : C                                                                               
 172 : C        PASSAGE DANS LE REPERE DE L'ELEMENT:                                   
 172 :          CALL PRODT (D2HOO2,D2HOO1,RO2HOO,2,2)                                  
 173 :          DO 300 J=1,2                                                           
 174 :             DO 300 I=1,2                                                        
 175 :                DDHOOK(I,J) = D2HOO2(I,J)                                        
 176 :                DDHOOK(I+2,J+2) = D2HOO2(I,J)                                    
 177 :   300       CONTINUE                                                            
 178 : C                                                                               
 179 : C     CAS CONTRAINTES PLANES                                                    
 180 : C                                                                               
 181 :       ELSE IF(IFOU.EQ.-2) THEN                                                  
 182 :         YG1=VELA(1)                                                             
 183 :          DDHOOK(1,1)=YG1                                                        
 184 :          DDHOOK(3,3)=YG1                                                        
 185 : C                                                                               
 186 :       ELSE                                                                      
 187 :       IRET=0                                                                    
 188 :       ENDIF                                                                     
 189 : C                                                                               
 190 : C     MATERIAU COMPOSITE                                                        
 191 : C                                                                               
 192 :       ELSE IF(MATE.EQ.'COMPOSIT') THEN                                          
 193 : C                                                                               
 194 : C        TRIDIM                                                                 
 195 : C                                                                               
 196 :       IF(IFOU.EQ.2) THEN                                                        
 197 : C                                                                               
 198 :       M = NCOELE                                                                
 199 :       N = M/5                                                                   
 200 :       N4 = N*4                                                                  
 201 : C                                                                               
 202 : C                                                                               
 203 :       H = XZER                                                                  
 204 :       DO 2072 J = N4+1,M                                                        
 205 :         H = H + VELA(J)                                                         
 206 :  2072 CONTINUE                                                                  
 207 : C                                                                               
 208 :       CMAT11=XZER                                                               
 209 :       CMAT12=XZER                                                               
 210 :       CMAT33=XZER                                                               
 211 :       CMAT14=XZER                                                               
 212 :       CMAT15=XZER                                                               
 213 :       CMAT36=XZER                                                               
 214 :       CMAT44=XZER                                                               
 215 :       CMAT45=XZER                                                               
 216 :       CMAT66=XZER                                                               
 217 :       Y2 = -H/2                                                                 
 218 : C                                                                               
 219 :       DO 2073 J = 1,N                                                           
 220 :         YOU = VELA(J )                                                          
 221 :         XNU = VELA(N+J )                                                        
 222 :         EPAI= VELA(N4+J)                                                        
 223 :         Y1 = Y2                                                                 
 224 :         Y2 = EPAI + Y1                                                          
 225 :         X1B = EPAI                                                              
 226 :         X2B = ((Y2*Y2)-(Y1*Y1))/2.D0                                            
 227 :         X3B = ((Y2**3)-(Y1**3))/3.D0                                            
 228 :         AUX1 = YOU/(1.D0-XNU*XNU)                                               
 229 :         AUX2 = (1.D0-XNU)*AUX1/2.D0                                             
 230 :         CMAT11 = CMAT11 + (AUX1*X1B)                                            
 231 :         CMAT12 = CMAT12 + (AUX1*XNU*X1B)                                        
 232 :         CMAT33 = CMAT33 + (AUX2*X1B)                                            
 233 :         CMAT14 = CMAT14 + (AUX1*X2B)                                            
 234 :         CMAT15 = CMAT15 + (AUX1*XNU*X2B)                                        
 235 :         CMAT36 = CMAT36 + (AUX2*X2B)                                            
 236 :         CMAT44 = CMAT44 + (AUX1*X3B)                                            
 237 :         CMAT45 = CMAT45 + (AUX1*XNU*X3B)                                        
 238 :         CMAT66 = CMAT66 + (AUX2*X3B)                                            
 239 :  2073 CONTINUE                                                                  
 240 : C                                                                               
 241 :       DDHOOK(1,1)  = CMAT11                                                     
 242 :       DDHOOK(2,2)  = CMAT11                                                     
 243 :       DDHOOK(1,2)  = CMAT12                                                     
 244 :       DDHOOK(2,1)  = CMAT12                                                     
 245 :       DDHOOK(3,3) =  CMAT33                                                     
 246 : C                                                                               
 247 :       DDHOOK(4,1) = CMAT14                                                      
 248 :       DDHOOK(1,4) = CMAT14                                                      
 249 :       DDHOOK(5,2) = CMAT14                                                      
 250 :       DDHOOK(2,5) = CMAT14                                                      
 251 : C                                                                               
 252 :       DDHOOK(1,5) = CMAT15                                                      
 253 :       DDHOOK(5,1) = CMAT15                                                      
 254 :       DDHOOK(2,4) = CMAT15                                                      
 255 :       DDHOOK(4,2) = CMAT15                                                      
 256 : C                                                                               
 257 :       DDHOOK(3,6) = CMAT36                                                      
 258 :       DDHOOK(6,3) = CMAT36                                                      
 259 : C                                                                               
 260 :       DDHOOK(4,4) = CMAT44                                                      
 261 :       DDHOOK(5,5) = CMAT44                                                      
 262 :       DDHOOK(4,5) = CMAT45                                                      
 263 :       DDHOOK(5,4) = CMAT45                                                      
 264 :       DDHOOK(6,6) = CMAT66                                                      
 265 :       ELSE                                                                      
 266 :       IRET=0                                                                    
 267 :       ENDIF                                                                     
 268 :       ELSE                                                                      
 269 :       IRET=0                                                                    
 270 :       ENDIF                                                                     
 271 :       RETURN                                                                    
 272 :       END                                                                       
 273 :  

© Cast3M 2003 - All rights reserved.
Disclaimer