Download tpy13a.eso

Back to the list

   1 : C TPY13A    SOURCE    CHAT      05/01/13    03:43:40     5004           
   2 :       SUBROUTINE TPY13A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT)              
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   5 : ************************************************************************        
   6 : *                                                                               
   7 : *                             T P Y 1 3 A                                       
   8 : *                             -----------                                       
   9 : *                                                                               
  10 : * FONCTION: ON ACQUIERT:                                                        
  11 : * ---------    - LES COORDONNEES INTRINSEQUES                                   
  12 : *              - LES FONCTIONS DE FORME ET LEURS DERIVEES                       
  13 : *           POUR L'ELEMENT DE THERMIQUE PY13.                                   
  14 : *                                                                               
  15 : * MODULES UTILISES:                                                             
  16 : * -----------------                                                             
  17 : *                                                                               
  18 : -INC CCOPTIO                                                                    
  19 : *                                                                               
  20 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  21 : * -----------                                                                   
  22 : *                                                                               
  23 : *     POINTS  (E)  CHAINE DE CARACTERES:                                        
  24 : *                  'NOEUDS' SI ON VEUT LES VALEURS AUX NOEUDS                   
  25 : *                  'GAUSS' POUR LES VALEURS AUX POINTS DE GAUSS.                
  26 : *     QSIGAU  (S) |                                                             
  27 : *     ETAGAU  (S) | COORDONNEES INTRINSEQUES.                                   
  28 : *     DZEGAU  (S) |                                                             
  29 : *     POIGAU  (S)  POIDS D'INTEGRATION,SI ON A 'GAUSS'.                         
  30 : *     SHPTOT  (S)  FONCTIONS DE FORME ET LEURS DERIVEES.                        
  31 : *                                                                               
  32 :       REAL*8 QSIGAU(27),ETAGAU(27),DZEGAU(27),POIGAU(27)                        
  33 :       REAL*8 SHPTOT(6,13,27)                                                    
  34 :       CHARACTER*(*) POINTS                                                      
  35 : *                                                                               
  36 : * CONSTANTES:                                                                   
  37 : * -----------                                                                   
  38 : *                                                                               
  39 : *                                                                               
  40 :       PARAMETER ( UNDEMI=0.5D0 )                                                
  41 :       PARAMETER ( UN=1.D0 )                                                     
  42 :       PARAMETER ( XZER=0.D0 )                                                   
  43 :       PARAMETER ( DEUX=2.D0 )                                                   
  44 :       PARAMETER ( TROIS=3.D0 )                                                  
  45 :       PARAMETER ( QUATRE=4.D0 )                                                 
  46 :       PARAMETER ( UNQUA=0.25D0 )                                                
  47 :       PARAMETER ( UN239=2.D0/39.D0 )                                            
  48 :       PARAMETER ( A1=0.788073483D0 )                                            
  49 :       PARAMETER ( B6=0.499369002D0 )                                            
  50 :       PARAMETER ( B =0.848418011D0 )                                            
  51 :       PARAMETER ( C8=0.478508449D0 )                                            
  52 :       PARAMETER ( C =0.652816472D0 )                                            
  53 :       PARAMETER ( D12=0.032303742D0 )                                           
  54 :       PARAMETER ( D =1.106412889D0 )                                            
  55 : *                                                                               
  56 : *                                                                               
  57 : * AUTEUR, DATE DE CREATION:                                                     
  58 : * -------------------------                                                     
  59 : *                                                                               
  60 : *   SOURCE A1,REPRIS PAR DENIS ROBERT,LE 29 OCTOBRE 1987                        
  61 : *                                                                               
  62 : * LANGAGE:                                                                      
  63 : * --------                                                                      
  64 : *                                                                               
  65 : *             FORTRAN77                                                         
  66 : *                                                                               
  67 : ************************************************************************        
  68 : *                                                                               
  69 :       IF (POINTS(1:5).EQ.'NOEUD') GOTO 66                                       
  70 :       IF (POINTS(1:5).NE.'GAUSS') GOTO 100                                      
  71 : *                                                                               
  72 : *     COORDONNEES DES 27 POINTS DE GAUSS                                        
  73 : *                                                                               
  74 :       NBPGAU=27                                                                 
  75 :       NBNO=13                                                                   
  76 :       DO 261 IA=1,5                                                             
  77 :       DZEGAU(IA   )= UNDEMI                                                     
  78 :  261  CONTINUE                                                                  
  79 :       DZEGAU(6    )= UNDEMI*(UN-B)                                              
  80 :       DZEGAU(7    )= UNDEMI*(UN+B)                                              
  81 :       DO 262 IA=8,11                                                            
  82 :       DZEGAU(IA   )= UNDEMI*(UN-C)                                              
  83 :       DZEGAU(IA+4 )= UNDEMI*(UN+C)                                              
  84 :       DZEGAU(IA+8 )= UNDEMI*(UN-D)                                              
  85 :       DZEGAU(IA+12)= UNDEMI                                                     
  86 :       DZEGAU(IA+16)= UNDEMI*(UN+D)                                              
  87 :   262 CONTINUE                                                                  
  88 :       QSIGAU(1 )= XZER                                                          
  89 :       QSIGAU(2 )= UNDEMI*B*(UN-DZEGAU(2))                                       
  90 :       QSIGAU(3 )=-UNDEMI*B*(UN-DZEGAU(3))                                       
  91 :       QSIGAU(4 )=-UNDEMI*B*(UN-DZEGAU(4))                                       
  92 :       QSIGAU(5 )= UNDEMI*B*(UN-DZEGAU(5))                                       
  93 :       QSIGAU(6 )= XZER                                                          
  94 :       QSIGAU(7 )= XZER                                                          
  95 :       QSIGAU(8 )= C*(UN-DZEGAU(8))                                              
  96 :       QSIGAU(9 )= XZER                                                          
  97 :       QSIGAU(10)=-C*(UN-DZEGAU(10))                                             
  98 :       QSIGAU(11)= XZER                                                          
  99 :       QSIGAU(12)= C*(UN-DZEGAU(12))                                             
 100 :       QSIGAU(13)= XZER                                                          
 101 :       QSIGAU(14)=-C*(UN-DZEGAU(14))                                             
 102 :       QSIGAU(15)= XZER                                                          
 103 :       QSIGAU(16)= UNDEMI*D*(UN-DZEGAU(16))                                      
 104 :       QSIGAU(17)=-UNDEMI*D*(UN-DZEGAU(17))                                      
 105 :       QSIGAU(18)=-UNDEMI*D*(UN-DZEGAU(18))                                      
 106 :       QSIGAU(19)= UNDEMI*D*(UN-DZEGAU(19))                                      
 107 :       QSIGAU(20)= D*(UN-DZEGAU(20))                                             
 108 :       QSIGAU(21)= XZER                                                          
 109 :       QSIGAU(22)=-D*(UN-DZEGAU(22))                                             
 110 :       QSIGAU(23)= XZER                                                          
 111 :       QSIGAU(24)= UNDEMI*D*(UN-DZEGAU(24))                                      
 112 :       QSIGAU(25)=-UNDEMI*D*(UN-DZEGAU(25))                                      
 113 :       QSIGAU(26)=-UNDEMI*D*(UN-DZEGAU(26))                                      
 114 :       QSIGAU(27)= UNDEMI*D*(UN-DZEGAU(27))                                      
 115 :       ETAGAU(1 )= XZER                                                          
 116 :       ETAGAU(2 )= QSIGAU(2)                                                     
 117 :       ETAGAU(3 )=-QSIGAU(3)                                                     
 118 :       ETAGAU(4 )= QSIGAU(4)                                                     
 119 :       ETAGAU(5 )=-QSIGAU(5)                                                     
 120 :       ETAGAU(6 )= QSIGAU(6)                                                     
 121 :       ETAGAU(7 )= QSIGAU(7)                                                     
 122 :       ETAGAU(8 )= XZER                                                          
 123 :       ETAGAU(9 )= C*(UN-DZEGAU(9))                                              
 124 :       ETAGAU(10)= XZER                                                          
 125 :       ETAGAU(11)=-C*(UN-DZEGAU(11))                                             
 126 :       ETAGAU(12)= XZER                                                          
 127 :       ETAGAU(13)= C*(UN-DZEGAU(13))                                             
 128 :       ETAGAU(14)= XZER                                                          
 129 :       ETAGAU(15)=-C*(UN-DZEGAU(15))                                             
 130 :       ETAGAU(16)= QSIGAU(16)                                                    
 131 :       ETAGAU(17)=-QSIGAU(17)                                                    
 132 :       ETAGAU(18)= QSIGAU(18)                                                    
 133 :       ETAGAU(19)=-QSIGAU(19)                                                    
 134 :       ETAGAU(20)= XZER                                                          
 135 :       ETAGAU(21)= D*(UN-DZEGAU(21))                                             
 136 :       ETAGAU(22)= XZER                                                          
 137 :       ETAGAU(23)=-D*(UN-DZEGAU(23))                                             
 138 :       ETAGAU(24)= QSIGAU(24)                                                    
 139 :       ETAGAU(25)=-QSIGAU(25)                                                    
 140 :       ETAGAU(26)= QSIGAU(26)                                                    
 141 :       ETAGAU(27)=-QSIGAU(27)                                                    
 142 : *                                                                               
 143 :       POIGAU(1)=A1                                                              
 144 :       DO 263 IA=2,7                                                             
 145 :       POIGAU(IA)=B6                                                             
 146 :  263  CONTINUE                                                                  
 147 :       DO 264 IA=8,15                                                            
 148 :       POIGAU(IA)=C8                                                             
 149 :  264  CONTINUE                                                                  
 150 :       DO 265 IA=16,27                                                           
 151 :       POIGAU(IA)=D12                                                            
 152 :  265  CONTINUE                                                                  
 153 :       DO 266 IA=1,27                                                            
 154 :       POIGAU(IA)=POIGAU(IA)*UNQUA*(UN-DZEGAU(IA))*(UN-DZEGAU(IA))               
 155 :  266  CONTINUE                                                                  
 156 :       GOTO 2                                                                    
 157 : *                                                                               
 158 : *     COORDONNEES DES NOEUDS                                                    
 159 : *                                                                               
 160 :  66   CONTINUE                                                                  
 161 :       NBNO=13                                                                   
 162 :       NBPGAU=NBNO                                                               
 163 :       QSIGAU(1)= UN                                                             
 164 :       QSIGAU(2)= UNDEMI                                                         
 165 :       QSIGAU(3)= XZER                                                           
 166 :       QSIGAU(4)=-UNDEMI                                                         
 167 :       QSIGAU(5)=-UN                                                             
 168 :       QSIGAU(6)=-UNDEMI                                                         
 169 :       QSIGAU(7)= XZER                                                           
 170 :       QSIGAU(8)= UNDEMI                                                         
 171 :       QSIGAU(9)= UNDEMI                                                         
 172 :       QSIGAU(10)= XZER                                                          
 173 :       QSIGAU(11)=-UNDEMI                                                        
 174 :       QSIGAU(12)= XZER                                                          
 175 :       QSIGAU(13)= XZER                                                          
 176 :       ETAGAU(1)= XZER                                                           
 177 :       ETAGAU(2)= UNDEMI                                                         
 178 :       ETAGAU(3)= UN                                                             
 179 :       ETAGAU(4)= UNDEMI                                                         
 180 :       ETAGAU(5)= XZER                                                           
 181 :       ETAGAU(6)=-UNDEMI                                                         
 182 :       ETAGAU(7)=-UN                                                             
 183 :       ETAGAU(8)=-UNDEMI                                                         
 184 :       ETAGAU(9)= XZER                                                           
 185 :       ETAGAU(10)= UNDEMI                                                        
 186 :       ETAGAU(11)= XZER                                                          
 187 :       ETAGAU(12)=-UNDEMI                                                        
 188 :       ETAGAU(13)= XZER                                                          
 189 :       DO 271  IA=9,12                                                           
 190 :       DZEGAU(IA)=UNDEMI                                                         
 191 :  271  CONTINUE                                                                  
 192 :       DZEGAU(13)=UN                                                             
 193 :       DO 272 IA=1,13                                                            
 194 :       POIGAU(IA)=UN239                                                          
 195 :  272  CONTINUE                                                                  
 196 : *                                                                               
 197 : *     FONCTIONS DE FORME ET LEURS DERIVEES                                      
 198 : *                                                                               
 199 :  2    DO 1 I=1,NBPGAU                                                           
 200 :       DZEM=UN-DZEGAU(I)                                                         
 201 :       DZEM2=(UN-DZEGAU(I))*DEUX                                                 
 202 :       PAUX = QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN                                   
 203 :       PAUX1=-QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-UN                                   
 204 :       PAUX2=-QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN                                   
 205 :       PAUX3= QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-UN                                   
 206 :       QAUX = QSIGAU(I)-UNDEMI                                                   
 207 :       QAUX1= ETAGAU(I)-UNDEMI                                                   
 208 :       QAUX2=-QSIGAU(I)-UNDEMI                                                   
 209 :       QAUX3=-ETAGAU(I)-UNDEMI                                                   
 210 :       IF(ABS(DZEGAU(I)-UN).LT.1.D-6) THEN                                       
 211 :          DO 301 IB=1,13                                                         
 212 :          DO 301 IA=1,3                                                          
 213 :          SHPTOT(IA,IB,I)= XZER                                                  
 214 :  301     CONTINUE                                                               
 215 :          SHPTOT(1,13,I)= UN                                                     
 216 :          SHPTOT(2,1 ,I)=-UNDEMI                                                 
 217 :          SHPTOT(2,5 ,I)= UNDEMI                                                 
 218 :          SHPTOT(2,9 ,I)= DEUX                                                   
 219 :          SHPTOT(2,11,I)=-DEUX                                                   
 220 :          SHPTOT(3,3 ,I)=-UNDEMI                                                 
 221 :          SHPTOT(3,7 ,I)= UNDEMI                                                 
 222 :          SHPTOT(3,10,I)= DEUX                                                   
 223 :          SHPTOT(3,12,I)=-DEUX                                                   
 224 :          DO 302 IA=1,7,2                                                        
 225 :          SHPTOT(4,IA,I)=   UN/QUATRE                                            
 226 :          SHPTOT(4,IA+1,I)= XZER                                                 
 227 :  302     CONTINUE                                                               
 228 :          DO 303 IA=9,12                                                         
 229 :          SHPTOT(4,IA,I)=-UN                                                     
 230 :  303     CONTINUE                                                               
 231 :          SHPTOT(4,13,I)= TROIS                                                  
 232 :          GO TO 1                                                                
 233 :       ENDIF                                                                     
 234 :       SHPTOT(1,1 ,I)= PAUX1*PAUX2*QAUX /DZEM2                                   
 235 :       SHPTOT(1,2 ,I)=-PAUX1*PAUX2*PAUX3/DZEM2                                   
 236 :       SHPTOT(1,3 ,I)= PAUX2*PAUX3*QAUX1/DZEM2                                   
 237 :       SHPTOT(1,4 ,I)=-PAUX2*PAUX3*PAUX /DZEM2                                   
 238 :       SHPTOT(1,5 ,I)= PAUX3*PAUX *QAUX2/DZEM2                                   
 239 :       SHPTOT(1,6 ,I)=-PAUX3*PAUX *PAUX1/DZEM2                                   
 240 :       SHPTOT(1,7 ,I)= PAUX *PAUX1*QAUX3/DZEM2                                   
 241 :       SHPTOT(1,8 ,I)=-PAUX *PAUX1*PAUX2/DZEM2                                   
 242 :       SHPTOT(1,9 ,I)= DZEGAU(I)*PAUX1*PAUX2/DZEM                                
 243 :       SHPTOT(1,10,I)= DZEGAU(I)*PAUX2*PAUX3/DZEM                                
 244 :       SHPTOT(1,11,I)= DZEGAU(I)*PAUX3*PAUX /DZEM                                
 245 :       SHPTOT(1,12,I)= DZEGAU(I)*PAUX *PAUX1/DZEM                                
 246 :       SHPTOT(1,13,I)= DEUX*DZEGAU(I)*(DZEGAU(I)-UNDEMI)                         
 247 : C                                                                               
 248 :       SHPTOT(2,1 ,I)=(PAUX1*PAUX2-(PAUX1+PAUX2)*QAUX)/DZEM2                     
 249 :       SHPTOT(2,2 ,I)=(PAUX2*PAUX3+PAUX1*PAUX3-PAUX1*PAUX2)/DZEM2                
 250 :       SHPTOT(2,3 ,I)=(PAUX2-PAUX3)*QAUX1/DZEM2                                  
 251 :       SHPTOT(2,4 ,I)=(PAUX3*PAUX-PAUX2*PAUX-PAUX2*PAUX3)/DZEM2                  
 252 :       SHPTOT(2,5 ,I)=((PAUX+PAUX3)*QAUX2-PAUX3*PAUX)/DZEM2                      
 253 :       SHPTOT(2,6 ,I)=(PAUX3*PAUX-PAUX*PAUX1-PAUX3*PAUX1)/DZEM2                  
 254 :       SHPTOT(2,7 ,I)=(PAUX1-PAUX)*QAUX3/DZEM2                                   
 255 :       SHPTOT(2,8 ,I)=(PAUX*PAUX2+PAUX*PAUX1-PAUX1*PAUX2)/DZEM2                  
 256 :       SHPTOT(2,9 ,I)=(-PAUX2-PAUX1)*DZEGAU(I)/DZEM                              
 257 :       SHPTOT(2,10,I)=(PAUX2-PAUX3)*DZEGAU(I)/DZEM                               
 258 :       SHPTOT(2,11,I)=(PAUX+PAUX3)*DZEGAU(I)/DZEM                                
 259 :       SHPTOT(2,12,I)=(PAUX1-PAUX)*DZEGAU(I)/DZEM                                
 260 :       SHPTOT(2,13,I)=XZER                                                       
 261 : C                                                                               
 262 :       SHPTOT(3,1 ,I)=(PAUX2-PAUX1)*QAUX/DZEM2                                   
 263 :       SHPTOT(3,2 ,I)=(PAUX1*PAUX3+PAUX1*PAUX2-PAUX2*PAUX3)/DZEM2                
 264 :       SHPTOT(3,3 ,I)=(PAUX2*PAUX3-(PAUX2+PAUX3)*QAUX1)/DZEM2                    
 265 :       SHPTOT(3,4 ,I)=(PAUX3*PAUX+PAUX2*PAUX-PAUX2*PAUX3)/DZEM2                  
 266 :       SHPTOT(3,5 ,I)=(PAUX3-PAUX)*QAUX2/DZEM2                                   
 267 :       SHPTOT(3,6 ,I)=(PAUX*PAUX1-PAUX3*PAUX1-PAUX3*PAUX)/DZEM2                  
 268 :       SHPTOT(3,7 ,I)=((PAUX1+PAUX)*QAUX3-PAUX*PAUX1)/DZEM2                      
 269 :       SHPTOT(3,8 ,I)=(PAUX*PAUX1-PAUX1*PAUX2-PAUX*PAUX2)/DZEM2                  
 270 :       SHPTOT(3,9 ,I)=(PAUX2-PAUX1)*DZEGAU(I)/DZEM                               
 271 :       SHPTOT(3,10,I)=(-PAUX3-PAUX2)*DZEGAU(I)/DZEM                              
 272 :       SHPTOT(3,11,I)=(PAUX3-PAUX)*DZEGAU(I)/DZEM                                
 273 :       SHPTOT(3,12,I)=(PAUX+PAUX1)*DZEGAU(I)/DZEM                                
 274 :       SHPTOT(3,13,I)=XZER                                                       
 275 : C                                                                               
 276 :       SHPTOT(4,1 ,I)=(PAUX1+PAUX2+PAUX1*PAUX2/DZEM)*QAUX/DZEM2                  
 277 :       SHPTOT(4,2 ,I)=-UN*(PAUX2*PAUX3+PAUX1*PAUX3+PAUX1*PAUX2+                  
 278 :      +           PAUX1*PAUX2*PAUX3/DZEM)/DZEM2                                  
 279 :       SHPTOT(4,3 ,I)=(PAUX2+PAUX3+PAUX2*PAUX3/DZEM)*QAUX1/DZEM2                 
 280 :       SHPTOT(4,4 ,I)=-UN*(PAUX3*PAUX +PAUX2*PAUX+PAUX2*PAUX3+                   
 281 :      +           PAUX2*PAUX3*PAUX/DZEM)/DZEM2                                   
 282 :       SHPTOT(4,5 ,I)=(PAUX+PAUX3+PAUX*PAUX3/DZEM)*QAUX2/DZEM2                   
 283 :       SHPTOT(4,6 ,I)=-UN*(PAUX*PAUX1+PAUX3*PAUX1+PAUX3*PAUX+                    
 284 :      +           PAUX3*PAUX*PAUX1/DZEM)/DZEM2                                   
 285 :       SHPTOT(4,7 ,I)=(PAUX1+PAUX+PAUX*PAUX1/DZEM)*QAUX3/DZEM2                   
 286 :       SHPTOT(4,8 ,I)=-UN*(PAUX1*PAUX2+PAUX*PAUX2+PAUX*PAUX1+                    
 287 :      +           PAUX*PAUX1*PAUX2/DZEM)/DZEM2                                   
 288 :       SHPTOT(4,9 ,I)=PAUX1*PAUX2/DZEM/DZEM+(PAUX2+PAUX1)*DZEGAU(I)/DZEM         
 289 :       SHPTOT(4,10,I)=PAUX2*PAUX3/DZEM/DZEM+(PAUX3+PAUX2)*DZEGAU(I)/DZEM         
 290 :       SHPTOT(4,11,I)=PAUX3*PAUX /DZEM/DZEM+(PAUX +PAUX3)*DZEGAU(I)/DZEM         
 291 :       SHPTOT(4,12,I)=PAUX *PAUX1/DZEM/DZEM+(PAUX +PAUX1)*DZEGAU(I)/DZEM         
 292 :       SHPTOT(4,13,I)=QUATRE*DZEGAU(I)-UN                                        
 293 :  1    CONTINUE                                                                  
 294 :       RETURN                                                                    
 295 :  100  CONTINUE                                                                  
 295 :       CALL ERREUR(19)                                                           
 296 : *                                                                               
 297 :       END                                                                       
 298 :  

© Cast3M 2003 - All rights reserved.
Disclaimer