Download dynepl.eso

Back to the list

   1 : C DYNEPL    SOURCE    CHAT      05/01/12    23:18:36     5004           
   2 :       SUBROUTINE DYNEPL(IPRIG,ICHT1,ICHT2,ICHT3,ICHT4,                          
   3 :      & IPCGT,IDDL,NDDL,DT,NPAS,NINS,IPCHM,IPPT,ITAB2)                           
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : ************************************************************************        
   7 : *                                                                               
   8 : *                             D Y N E P L                                       
   9 : *                             -----------                                       
  10 : *                                                                               
  11 : * FONCTION:                                                                     
  12 : * ---------                                                                     
  13 : *     UTILITAIRE DE L'OPERATEUR "DYNE"                                          
  14 : *     INITIALISATION ET GESTION TEMPORELLE DE L'ALGORITHME                      
  15 : *                                                                               
  16 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  17 : * -----------                                                                   
  18 : *                                                                               
  19 : *     IPRIG   (E)  TABLEAU DE POINTEURS SUR DES RIGIDITES, AVEC :               
  20 : *                  IPRIG(1)   POINTEUR SUR L'OBJET M                            
  21 : *                  IPRIG(2)   POINTEUR SUR L'OBJET K                            
  22 : *                  IPRIG(3)   POINTEUR SUR L'OBJET A                            
  23 : *                  IPRIG(4)   POINTEUR SUR L'OBJET Z                            
  24 : *     ICHT    (E)  POINTEUR SUR LE SEGMENT MCHT ( ACTIF )                       
  25 : *     IPCGT   (E)  TABLEAU DE POINTEURS SUR DES CHARGEMENTS, AVEC :             
  26 : *                  IPCGT(1)   POINTEUR SUR CGB                                  
  27 : *                  IPCGT(2)   POINTEUR SUR CGF                                  
  28 : *     IDDL    (E)  NOMBRE DE DDL LIES                                           
  29 : *     NDDL    (E)  NOMBRE DE DDL                                                
  30 : *     DT      (E)  PAS DE TEMPS                                                 
  31 : *     NPAS    (E)  NOMBRE DE PAS DE CALCUL                                      
  32 : *     NINS    (E)  ON VEUT UN RESULTAT TOUS LES NINS PAS DE CALCUL              
  33 : *     IPCHM   (E)  TABLEAU DE POINTEURS SUR LES CHAMPS INITIAUX, AVEC :         
  34 : *                  IPCHM(1)   POINTEUR SUR U0                                   
  35 : *                  IPCHM(2)   POINTEUR SUR V0                                   
  36 : *     IPPT    (E)  TABLEAU DE POINTEURS, AVEC :                   -1            
  37 : *                  IPPT(1)    POINTEUR SUR LE VECTDOUB CONTENANT M              
  38 : *                             ( ACTIF )                                         
  39 : *                  IPPT(2)    POINTEUR SUR UN SEGMENT MBLO ( ACTIF )            
  40 : *                  IPPT(3)    POINTEUR SUR UN SEGMENT MBLO ( ACTIF )            
  41 : *                  IPPT(4)    POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF )          
  42 : *                  IPPT(5)    POINTEUR SUR LE SEGMENT MMATRI ( ACTIF )          
  43 : *                  IPPT(6)    POINTEUR SUR LE SEGMENT MZZZ ( ACTIF )            
  44 : *     ITAB2   (S)  POINTEUR SUR LA TABLE RESULTAT                               
  45 : *                                                                               
  46 : * AUTEUR, DATE DE CREATION:                                                     
  47 : * -------------------------                                                     
  48 : *     DENIS ROBERT, LE 20 OCTOBRE 1988.                                         
  49 : *     REVU ET CORRIGE DECEMBRE 89 MP                                            
  50 : *                                                                               
  51 : * LANGAGE:                                                                      
  52 : * --------                                                                      
  53 : *     ESOPE + FORTRAN77                                                         
  54 : *                                                                               
  55 : ************************************************************************        
  56 : *                                                                               
  57 : * MODULES UTILISES:                                                             
  58 : *                                                                               
  59 : -INC CCOPTIO                                                                    
  60 : -INC SMTABLE                                                                    
  61 : *                                                                               
  62 :       PARAMETER ( O0= 0.D0,O1=-1.D0,O2=2.D0,O3=-0.5D0 )                         
  63 : *                                                                               
  64 :       INTEGER IPCHN(6),IPRIG(4),IPCHM(2),IPPT(6),IPCGT(2)                       
  65 : *                                                                               
  66 : *---  SEGMENT CONTENANT LES VECTEURS DE TRAVAIL POUR "DYNEPA"                   
  67 : *                                                                               
  68 : *     SEGMENT,MVPA                                                              
  69 : *        REAL*8 VCHT1(NDDL),VCHT2(NDDL),VCHT3(NDDL)                             
  70 : *        REAL*8 VEC1(NDDL),VEC2(NDDL),VEC3(NDDL)                                
  71 : *        REAL*8 VEC4(IDDL),VEC5(IDDL),VEC6(IDDL)                                
  72 : *        REAL*8 VCH1(NDDL),VCH2(NDDL),VCH3(NDDL)                                
  73 : *        REAL*8 VCH4(NDDL),VCH5(NDDL),VCH6(NDDL)                                
  74 : *     ENDSEGMENT                                                                
  75 : *     VCHT1  --->   MCHT41                                                      
  76 : *     VCHT2  --->   MCHT42                                                      
  77 : *     VCHT3  --->   MCHT43                                                      
  78 : *     VEC1   --->   MCHT51                                                      
  79 : *     VEC2   --->   MCHT52                                                      
  80 : *     VEC3   --->   MCHT53                                                      
  81 : *     VCH1   --->   MCHT61                                                      
  82 : *     VCH2   --->   MCHT62                                                      
  83 : *     VCH3   --->   MCHT63                                                      
  84 : *     VCH4   --->   MCHT64                                                      
  85 : *     VCH5   --->   MCHT65                                                      
  86 : *     VCH6   --->   MCHT66                                                      
  87 : *     VEC4   --->   MCHT12                                                      
  88 : *     VEC5   --->   MCHT13                                                      
  89 : *     VEC6   --->   MCHT14                                                      
  90 : *                                                                               
  91 : *---  SEGMENT CONTENANT LES VECTEURS DE TRAVAIL POUR "DYNEPL"                   
  92 : *                                                                               
  93 : *     SEGMENT,MVPL                                                              
  94 : *        REAL*8 VV1(NDDL),VV2(NDDL),VV3(NDDL),VV4(NDDL),VV5(NDDL)               
  95 : *     ENDSEGMENT                                                                
  96 : *                                                                               
  97 : *     VV1 --->  MCHT22                                                          
  98 : *     VV2 --->  MCHT23                                                          
  99 : *     VV3 --->  MCHT24                                                          
 100 : *     VV4 --->  MCHT25                                                          
 101 : *     VV5 --->  MCHT26                                                          
 102 : *---  SEGMENT RELATIF AUX OBJETS CHARGEMENT                                     
 103 : *                                                                               
 104 :       SEGMENT,MCHT1                                                             
 105 :          REAL*8 VCC1(IDDL)                                                      
 106 :       ENDSEGMENT                                                                
 107 :       POINTEUR MCHT12.MCHT1,MCHT13.MCHT1,MCHT14.MCHT1                           
 108 : *                                                                               
 109 :       SEGMENT,MCHT2                                                             
 110 :          REAL*8 VCC2(NDDL)                                                      
 111 :       ENDSEGMENT                                                                
 112 :       POINTEUR MCHT22.MCHT2,MCHT23.MCHT2,MCHT24.MCHT2                           
 113 :       POINTEUR MCHT25.MCHT2,MCHT26.MCHT2                                        
 114 :       POINTEUR MCHT41.MCHT2,MCHT42.MCHT2,MCHT43.MCHT2                           
 115 :       POINTEUR MCHT51.MCHT2,MCHT52.MCHT2,MCHT53.MCHT2                           
 116 :       POINTEUR MCHT61.MCHT2,MCHT62.MCHT2,MCHT63.MCHT2                           
 117 :       POINTEUR MCHT64.MCHT2,MCHT65.MCHT2,MCHT66.MCHT2                           
 118 : *                                                                               
 119 :       SEGMENT,MCHT3                                                             
 120 :          REAL*8 COE1(LCOE)                                                      
 121 :       ENDSEGMENT                                                                
 122 :       POINTEUR MCHT32.MCHT3                                                     
 123 : *                                                                               
 124 :       DT2=DT**2                                                                 
 125 :       DT3=DT2/O2                                                                
 126 :       DT4=DT/O2                                                                 
 127 :       X1=O1/DT                                                                  
 128 : *                                                                               
 128 :       CALL CRTABL(MTABLE)                                                       
 129 :       ITAB2=MTABLE                                                              
 130 :       IPCHM3=0                                                                  
 131 : *     SEGINI,MVPA                                                               
 132 :       SEGINI MCHT12,MCHT13,MCHT14                                               
 133 :       ICHT12=MCHT12                                                             
 134 :       ICHT13=MCHT13                                                             
 135 :       ICHT14=MCHT14                                                             
 136 :       SEGINI MCHT41,MCHT42,MCHT43                                               
 137 :       ICHT41=MCHT41                                                             
 138 :       ICHT42=MCHT42                                                             
 139 :       ICHT43=MCHT43                                                             
 140 :       SEGINI MCHT51,MCHT52,MCHT53                                               
 141 :       ICHT51=MCHT51                                                             
 142 :       ICHT52=MCHT52                                                             
 143 :       ICHT53=MCHT53                                                             
 144 :       SEGINI MCHT61,MCHT62,MCHT63,MCHT64,MCHT65,MCHT66                          
 145 :       ICHT61=MCHT61                                                             
 146 :       ICHT62=MCHT62                                                             
 147 :       ICHT63=MCHT63                                                             
 148 :       ICHT64=MCHT64                                                             
 149 :       ICHT65=MCHT65                                                             
 150 :       ICHT66=MCHT66                                                             
 151 : *     SEGINI,MVPL                                                               
 152 :       SEGINI MCHT22,MCHT23,MCHT24,MCHT25,MCHT26                                 
 153 :       ICHT22=MCHT22                                                             
 154 :       ICHT23=MCHT23                                                             
 155 :       ICHT24=MCHT24                                                             
 156 :       ICHT25=MCHT25                                                             
 157 :       ICHT26=MCHT26                                                             
 158 : *                                                                               
 159 :       MCHT1=ICHT1                                                               
 160 :       MCHT2=ICHT2                                                               
 161 :       MCHT3=ICHT3                                                               
 162 :       MCHT32=ICHT4                                                              
 163 : *                                                                               
 164 :       NUMPAS=0                                                                  
 165 : *                                                                               
 166 : *-------------------------------------------------------*                       
 167 : *---  EQUATION D'EQUILIBRE : G0 = M-1 ( F0 - K U0 )  ---*                       
 168 : *-------------------------------------------------------*                       
 169 : *                                                                               
 169 :       CALL DYNE04(IPPT(5),IPCHM(1),ICHT22,NDDL,'INCO')                          
 170 :       IF (IERR.NE.0) RETURN                                                     
 171 : *                                                                               
 171 :       CALL DYNE05(IPRIG(2),ICHT22,ICHT23,NDDL,IPPT(4))                          
 172 :       IF (IERR.NE.0) RETURN                                                     
 173 : *                                                                               
 174 :       IF (IPCGT(2).NE.0) THEN                                                   
 174 :          CALL DYNEC1(VCC2,MCHT32.COE1,NUMPAS,NDDL,MCHT24.VCC2)                  
 175 :       ENDIF                                                                     
 176 : *                                                                               
 176 :       CALL COLIVE(MCHT23.VCC2,MCHT24.VCC2,NDDL,1.D0,-1.D0,                      
 177 :      & MCHT24.VCC2)                                                             
 178 : *                                                                               
 178 :       CALL DYNE10(ICHT25,IPPT(1),ICHT66,NDDL)                                   
 179 : *                                                                               
 180 : *---  CALCUL DE : U1 = U0 + ( DT * V0 ) + ( DT2/2 * G0 )                        
 181 : *                                                                               
 181 :       CALL ZERO(MCHT23.VCC2,NDDL,1)                                             
 182 : *                                                                               
 182 :       CALL DYNE04(IPPT(5),IPCHM(2),ICHT65,NDDL,'INCO')                          
 183 : *                                                                               
 183 :       CALL COLIVE(MCHT65.VCC2,MCHT66.VCC2,NDDL,DT,DT3,                          
 184 :      & MCHT23.VCC2)                                                             
 184 :       CALL COLIVE(MCHT22.VCC2,MCHT23.VCC2,NDDL,1.D0,1.D0,                       
 185 :      & MCHT64.VCC2)                                                             
 186 : *                                                                               
 187 : *-------------------------------------*                                         
 188 : *---  BOUCLE SUR LES PAS DE TEMPS  ---*                                         
 189 : *-------------------------------------*                                         
 190 : *                                                                               
 191 :       NSOR=0                                                                    
 192 :       NPPP=0                                                                    
 193 :       DO 100 NUMPAS=1,NPAS                                                      
 194 :          NPPP=NPPP+1                                                            
 195 : *                                                                               
 196 : *---     DEPLACEMENTS ET FORCES IMPOSES AU COURS DU TEMPS                       
 197 : *                                                                               
 198 :          IF (IPCGT(1).NE.0) THEN                                                
 198 :             CALL DYNEC1(VCC1,COE1,NUMPAS+1,NDDL,MCHT41.VCC2)                    
 199 :          ENDIF                                                                  
 200 : *                                                                               
 201 :          IF (IPCGT(2).NE.0) THEN                                                
 201 :             CALL DYNEC1(VCC2,MCHT32.COE1,NUMPAS,NDDL,                           
 202 :      &      MCHT43.VCC2)                                                        
 203 :          ENDIF                                                                  
 204 : *                      VCH4 ---> VCH1                                           
 205 : *---     TRANSFERTS :  VCH5 ---> VCH2                                           
 206 : *                      VCH6 ---> VCH3                                           
 206 :          CALL VTRANS(MCHT61.VCC2,MCHT64.VCC2,NDDL)                              
 206 :          CALL VTRANS(MCHT62.VCC2,MCHT65.VCC2,NDDL)                              
 206 :          CALL VTRANS(MCHT63.VCC2,MCHT66.VCC2,NDDL)                              
 207 : *                                                                               
 208 : *-----------------------------------------------------*                         
 209 : *---     CALCUL D'UN PAS : U1 V0 G0 ---> U2 V1 G1  ---*                         
 210 : *-----------------------------------------------------*                         
 211 : *                                                                               
 211 :          CALL DYNEPA(IPRIG,IPPT,IDDL,NDDL,DT,                                   
 212 :      &               ICHT41,ICHT43,                                             
 213 :      &               ICHT51,ICHT52,ICHT53,ICHT12,ICHT13,ICHT14,                 
 214 :      &               ICHT61,ICHT62,ICHT63,ICHT64,ICHT65,ICHT66)                 
 215 :          IF (IERR.NE.0) RETURN                                                  
 216 : *                                                                               
 217 :          IF (NPPP.EQ.NINS) THEN                                                 
 218 :             NPPP=0                                                              
 219 :             NSOR=NSOR+1                                                         
 220 : *                                                                               
 221 : *---        ON RETRANSFORME LES VECTEURS EN CHPOINTS                            
 222 : *                                                                               
 222 :             CALL DYNE07(ICHT61,IPPT(5),IPCHM(1),IPCHP1)                         
 222 :             CALL DYNE07(ICHT65,IPPT(5),IPCHM(1),IPCHP2)                         
 222 :             CALL DYNE07(ICHT66,IPPT(5),IPCHM(1),IPCHP3)                         
 223 : *                                                                               
 224 : *---        ARCHIVAGE DES RESULTATS                                             
 225 : *                                                                               
 225 :             CALL DYNERA(IPCHP1,IPCHP2,IPCHP3,NSOR,ITAB2)                        
 226 :             IF (IERR.NE.0) RETURN                                               
 227 :          ENDIF                                                                  
 228 : *                                                                               
 229 : *---     FIN DE LA BOUCLE SUR LES PAS DE TEMPS                                  
 230 : *                                                                               
 231 :  100     CONTINUE                                                               
 232 : *     END DO                                                                    
 233 : *                                                                               
 234 : *     SEGSUP MVPA                                                               
 235 :       SEGSUP MCHT12,MCHT13,MCHT14                                               
 236 :       SEGSUP MCHT41,MCHT42,MCHT43                                               
 237 :       SEGSUP MCHT51,MCHT52,MCHT53                                               
 238 :       SEGSUP MCHT61,MCHT62,MCHT63,MCHT64,MCHT65,MCHT66                          
 239 : *     SEGSUP MVPL                                                               
 240 :       SEGSUP MCHT22,MCHT23,MCHT24,MCHT25,MCHT26                                 
 241 : *     SEGSUP,MCHT                                                               
 242 :       SEGSUP MCHT1,MCHT2,MCHT3,MCHT32                                           
 243 :       SEGDES MTABLE                                                             
 244 : *                                                                               
 245 :       END                                                                       
 246 :  

© Cast3M 2003 - All rights reserved.
Disclaimer