Download dyneve.eso

Back to the list

   1 : C DYNEVE    SOURCE    CHAT      05/01/12    23:18:59     5004           
   2 :       SUBROUTINE DYNEVE(IPRIG,ICHT1,ICHT2,ICHT3,ICHT4,                          
   3 :      &            IPCGT,TINI,DT,NPAS,ITAB1,IPCHM,IPPT)                          
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : ************************************************************************        
   7 : *                                                                               
   8 : *                             D Y N E V E                                       
   9 : *                             -----------                                       
  10 : *                                                                               
  11 : * FONCTION:                                                                     
  12 : * ---------                                                                     
  13 : *     UTILITAIRE DE L'OPERATEUR "DYNE"                                          
  14 : *     VERIFICATION, IDENTIFICATION ET PREPARATION DES OPERANDES                 
  15 : *                                                                               
  16 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  17 : * -----------                                                                   
  18 : *                                                                               
  19 : *     IPRIG  (E/S) 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 ( EN SORTIE )              
  24 : *     MCHT    (S)  POINTEUR SUR LE SEGMENT MCHT ( LAISSE ACTIF )                
  25 : *     IPCGT   (E)  TABLEAU DE POINTEURS SUR LES OBJETS CHARGEMENT, AVEC         
  26 : *                  IPCGT(1)   POINTEUR SUR CGB                                  
  27 : *                  IPCGT(2)   POINTEUR SUR CGF                                  
  28 : *     TINI    (E)  TEMPS INITIAL                                                
  29 : *     DT      (E)  PAS DE TEMPS                                                 
  30 : *     NPAS    (E)  NOMBRE DE PAS DE CALCUL                                      
  31 : *     ITAB1   (E)  POINTEUR SUR LA TABLE DES CHAMPS INITIAUX                    
  32 : *     IPCHM   (S)  TABLEAU DE POINTEURS SUR LES CHAMPS INITIAUX, AVEC :         
  33 : *                  IPCHM(1)   POINTEUR SUR U0                                   
  34 : *                  IPCHM(2)   POINTEUR SUR V0                                   
  35 : *     IPPT    (S)  TABLEAU DE POINTEURS, AVEC :                   -1            
  36 : *                  IPPT(1)    POINTEUR SUR LE VECTDOUB CONTENANT M              
  37 : *                             ( ACTIF )                                         
  38 : *                  IPPT(2)    POINTEUR SUR UN SEGMENT MBLO ( ACTIF )            
  39 : *                  IPPT(3)    POINTEUR SUR UN SEGMENT MBLO ( ACTIF )            
  40 : *                  IPPT(4)    POINTEUR SUR LE SEGMENT MUCTRA ( ACTIF )          
  41 : *                  IPPT(5)    POINTEUR SUR LE SEGMENT MMATRI ( ACTIF )          
  42 : *                  IPPT(6)    POINTEUR SUR LE SEGMENT MZZZ ( ACTIF )            
  43 : *                                                                               
  44 : * ATTENTION : ON ESSAIE DE D'ACTIVER UNE FOIS POUR TOUTES |                     
  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 SMVECTD                                                                    
  61 : *                                                                               
  62 :       INTEGER IPRIG(4),IPCGT(2),IPCHM(2),IPPT(6)                                
  63 :       LOGICAL L0,L1                                                             
  64 :       CHARACTER*9  MO1,TYPRET,CHARRE                                                   
  65 : *                                                                               
  66 :       IPM=0                                                                     
  67 :       IPCGTB=0                                                                  
  68 :       IPCGTF=0                                                                  
  69 :       ICHOLX=0                                                                  
  70 : *                                                                               
  71 :       SEGMENT,MCHT1                                                             
  72 :          REAL*8 VCC1(IDDL)                                                      
  73 :       ENDSEGMENT                                                                
  74 : *                                                                               
  75 :       SEGMENT,MCHT2                                                             
  76 :          REAL*8 VCC2(NDDL)                                                      
  77 :       ENDSEGMENT                                                                
  78 : *                                                                               
  79 :       SEGMENT,MCHT3                                                             
  80 :          REAL*8 COE1(LCOE)                                                      
  81 :       ENDSEGMENT                                                                
  82 :       POINTEUR MCHT32.MCHT3                                                     
  83 : *                                                                               
  84 : *---  SEGMENTS CONTENANT A ET A M                                               
  85 : *                                                                               
  86 :       SEGMENT,MBLO                                                              
  87 :          REAL*8 BLO(IDDL,NDDL)                                                  
  88 :       ENDSEGMENT                                                                
  89 :       POINTEUR MBLO2.MBLO                                                       
  90 : *                                                                               
  91 : *---  VERIFICATION ET IDENTIFICATION DES OBJETS RIGIDITE                        
  92 : *+*                                                                             
  93 :       IPRIGM=IPRIG(1)                                                           
  94 :       IPRIGK=IPRIG(2)                                                           
  95 :       IPRIGA=IPRIG(3)                                                           
  96 : *                                                                               
  97 : *-------------------------------------------------*                             
  98 : *---  ASSEMBLAGE EVENTUEL DE LA MATRICE MASSE  ---*                             
  99 : *-------------------------------------------------*                             
 100 : *                                                                               
 100 :       CALL DYNE00(IPRIGM,IRSCPR,ICHOLX,LONVEC)                                  
 101 :       IF (IERR.NE.0) RETURN                                                     
 102 :       INC=LONVEC                                                                
 103 :       SEGINI,MVECTD                                                             
 103 :       CALL ZERO(VECTBB,LONVEC,1)                                                
 104 :       IPMASI=MVECTD                                                             
 105 : *                                                                               
 106 : *--------------------------------------------------*                            
 107 : *---  LUMPAGE ET INVERSION DE LA MATRICE MASSE  ---*                            
 108 : *--------------------------------------------------*                            
 109 : *                                                                               
 109 :       CALL DYNE01(ICHOLX,IRSCPR,IPRIGM,IPMASI)                                  
 110 :       IF (IERR.NE.0) RETURN                                                     
 111 : *                                                                               
 112 : *----------------------------------*                                            
 113 : *                        -1  T     *                                            
 114 : *---  CALCUL DE : Z = A M   A   ---*                                            
 115 : *----------------------------------*                                            
 116 : *                                                                               
 116 :       CALL DYNE02(ICHOLX,IRSCPR,LONVEC,IPRIGA,IPMASI,IPZ,IPM,                   
 117 :      &            IBLO,IBLO2,IPRIGZ,ICPC)                                       
 118 :       IF (IERR.NE.0) RETURN                                                     
 119 :       MBLO=IBLO                                                                 
 120 :       IDDL=BLO(/1)                                                              
 121 :       NDDL=BLO(/2)                                                              
 122 :       MVECTD=IPMASI                                                             
 123 :       SEGSUP,MVECTD                                                             
 124 : *                                                                               
 125 : *---------------------------------------*                                       
 126 : *---  CONCERNANT LES CHARGEMENTS...  ---*                                       
 127 : *---------------------------------------*                                       
 128 : *                                                                               
 129 :       NCGT=0                                                                    
 130 :       DO 110 ICGT=1,2                                                           
 131 :          IF (IPCGT(ICGT).NE.0) THEN                                             
 132 : *                                                                               
 133 : *---        ON A TROUVE UN CHARGEMENT                                           
 134 : *                                                                               
 135 :             NCGT=NCGT+1                                                         
 136 :          ENDIF                                                                  
 137 :  110     CONTINUE                                                               
 138 : *     END DO                                                                    
 139 :       IF (NCGT.EQ.1) THEN                                                       
 140 : *                                                                               
 141 : *---     UN SEUL CHARGEMENT, A IDENTIFIER...                                    
 142 : *+*      ON SUPPOSE ABUSIVEMENT QU'IL S'AGIT DE IPCGTF |                        
 143 :          IPCGTF=IPCGT(1)                                                        
 144 :       ELSE                                                                      
 145 : *                                                                               
 146 : *---     CGB ET CGF                                                             
 147 : *                                                                               
 148 :          IPCGTB=IPCGT(1)                                                        
 149 :          IPCGTF=IPCGT(2)                                                        
 150 :       ENDIF                                                                     
 151 : *               | IPCGTB DANS IPCGT(1)                                          
 152 : *---  RANGEMENT |                                                               
 153 : *               | IPCGTF DANS IPCGT(2)                                          
 154 :       IPCGT(1)=0                                                                
 155 :       IPCGT(2)=0                                                                
 156 :       IPCGT(1)=IPCGTB                                                           
 157 :       IPCGT(2)=IPCGTF                                                           
 158 : *                                                                               
 159 : *---  D'UN OBJET CHARGEMENT, ON TIRE UN VECTEUR ET UNE LISTE DE                 
 160 : *---  COEFFICIENTS, RANGES DANS LE SEGMENT MCHT                                 
 161 : *                                                                               
 162 :       LCOE=NPAS+1                                                               
 163 :       SEGINI,MCHT1                                                              
 164 :       ICHT1=MCHT1                                                               
 165 :       SEGINI,MCHT2                                                              
 166 :       ICHT2=MCHT2                                                               
 167 :       SEGINI,MCHT3                                                              
 168 :       ICHT3=MCHT3                                                               
 169 :       SEGINI,MCHT32                                                             
 170 :       ICHT4=MCHT32                                                              
 171 : *                                                                               
 171 :       CALL ZERO(VCC1,IDDL,1)                                                    
 171 :       CALL ZERO(COE1,LCOE,1)                                                    
 171 :       CALL ZERO(VCC2,NDDL,1)                                                    
 171 :       CALL ZERO(MCHT32.COE1,LCOE,1)                                             
 172 : *                                                                               
 173 :       IF (IPCGT(2).NE.0) THEN                                                   
 173 :          CALL DYNECH(IPCGT(2),TINI,DT,NPAS,ICHOLX,NDDL,ICHT2,ICHT4)             
 174 :          IF (IERR.NE.0) RETURN                                                  
 175 :       ENDIF                                                                     
 176 : *                                                                               
 177 :       IF (IPCGT(1).NE.0) THEN                                                   
 177 :          CALL DYNE09(IPCGT(1),TINI,DT,NPAS,ICPC,IDDL,ICHT1,ICHT3)               
 178 :          IF (IERR.NE.0) RETURN                                                  
 179 :       ENDIF                                                                     
 180 : *                                                                               
 181 : *--------------------------------------------------------------------*          
 182 : *---  VERIFICATION DE LA TABLE ET EXTRACTION DES CHAMPS INITIAUX  ---*          
 183 : *--------------------------------------------------------------------*          
 184 : *                                                                               
 184 :       CALL ACCTAB(ITAB1,'MOT',I0,X0,'SOUSTYPE',L0,IP0,                          
 185 :      &                  'MOT',I1,X1,MO1,L1,IP1)                                 
 186 :       IF (IERR.NE.0) RETURN                                                     
 187 :       IF (MO1.NE.'MOUVEMENT') THEN                                              
 188 : *                                                                               
 189 : *---     ERREUR DANS LA RECHERCHE DE L'INDICE D'UNE TABLE                       
 190 : *                                                                               
 190 :          CALL ERREUR(314)                                                       
 191 :          RETURN                                                                 
 192 :       ENDIF                                                                     
 193 : *                                                                               
 194 :       TYPRET=' '                                                                
 194 :       CALL ACCTAB(ITAB1,'MOT',I0,X0,'ACCTAB(ITAB1,'MOT',I0,X0,'DYNE03(IPRIGK,IRSCPR,MUCT,ICHOLX)                                    
 207 :       IF (IERR.NE.0) RETURN                                                     
 208 : *                                                                               
 209 : *---  REMPLISSAGE DES TABLEAUX DE POINTEURS                                     
 210 : *                                                                               
 211 :       IPRIG(4)=IPRIGZ                                                           
 212 :       IPCHM(1)=IPCHM1                                                           
 213 :       IPCHM(2)=IPCHM2                                                           
 214 :       IPPT(1)=IPM                                                               
 215 :       IPPT(2)=IBLO                                                              
 216 :       IPPT(3)=IBLO2                                                             
 217 :       IPPT(4)=MUCT                                                              
 218 :       IPPT(5)=ICHOLX                                                            
 219 :       IPPT(6)=IPZ                                                               
 220 : *                                                                               
 221 :       END                                                                       
 222 :  
 223 :  

© Cast3M 2003 - All rights reserved.
Disclaimer