Download dynamode.procedur

Back to the list

   1 : * DYNAMODE  PROCEDUR  NOBODY    92/01/01    00:00:00     001                    
   2 : 'DEBPROC'  DYNAMODE  _OPERAT_*'MOT     '  TEMPCALC*'LISTREEL'                   
   3 : _BASMOD_*'BASEMODA' MOT1/'MOT     ' MOT2/'MOT     '   MOT3/'MOT     '           
   4 : MOT4/'MOT     '   MOT5/'MOT     '  MOT6/'MOT     '    MOT7/'MOT     '           
   5 : MOT8/'MOT     '   MOT9/'MOT     '  MO10/'MOT     '    MO11/'MOT     '           
   6 :  AMORT/'LISTREEL'   ENT1/'ENTIER  '  CHP1/'CHPOINT '  CHP2/'CHPOINT '           
   7 : SOLPRE/'SOLUTION'   TAB1/'TABLE   '  TAB2/'TABLE   '  TAB3/'TABLE   '           
   8 : TAB4/'TABLE   '     TAB5/'TABLE   '  ;                                          
   9 : ************************************************************************        
  10 : *                                                                               
  11 : *                           D Y N A M O D E                                     
  12 : *                           ---------------                                     
  13 : *                                                                               
  14 : * FONCTION:                                                                     
  15 : * ---------                                                                     
  16 : *                                                                               
  17 : *     CALCUL DE LA REPONSE DYNAMIQUE D'UNE STRUCTURE SELON LE SCHEMA            
  18 : *     SUIVANT:                                                                  
  19 : *     1) PROJECTION SUR LA BASE MODALE,                                         
  20 : *     2) INTEGRATION EXPLICITE EN TEMPS,                                        
  21 : *     3) RECOMBINAISON MODALE DE LA REPONSE.                                    
  22 : *                                                                               
  23 : * PHRASE D'APPEL (EN GIBIANE):                                                  
  24 : * ----------------------------                                                  
  25 : *                                                                               
  26 : *     RESU = DYNAMODE 'OPERAT'  TEMPCALC   BAS1   (AMORT)                       
  27 : *            ('BLOC' NBLOC) ('DEPL' CHDEP) ('VITE' CHVIT)                       
  28 : *            ('SAUV') ('SUIT' SOLPRE) ('GDPL')                                  
  29 : *                                                                               
  30 : *            ('CHAR'   TABLCHAR  )                                              
  31 : *                                                                               
  32 : *            ('SEIS'   TABLSEIS  )                                              
  33 : *                                                                               
  34 : *            ('RECO'   TABLRECO  )                                              
  35 : *                                                                               
  36 : *            ('MAXI'   TABLMAXI  )                                              
  37 : *                                                                               
  38 : *            ('EVOL'   TABLEVOL  )    ;                                         
  39 : *                                                                               
  40 : * OPERANDES:                                                                    
  41 : * ----------                                                                    
  42 : *                                                                               
  43 : *     OPERAT    'MOT'       NOM DE L'OPERATEUR DE RESOLUTION DE                 
  44 : *                           L'EQUATION DU MOUVEMENT ("DEVO" OU                  
  45 : *                           "PLEX").                                            
  46 : *     TEMPCALC  'LISTREEL'  INSTANTS DE CALCUL.                                 
  47 : *     BAS1      'BASEMODA'  CONTIENT LES MODES DES SOUS-STRUCTURES, LES         
  48 : *                           SOLUTIONS STATIQUES, LES PSEUDO-MODES               
  49 : *                           ASSOCIES AUX EFFETS DE TRONCATURE ET                
  50 : *                           EVENTUELLEMENT LES LIAISONS.                        
  51 : *     AMORT     'LISTREEL'  AMORTISSEMENT.                                      
  52 : *     BLOC      'MOT'       DECOUPAGE DU CALCUL EN PLUSIEURS BLOCS DE           
  53 : *                           PAS DE TEMPS.                                       
  54 : *     NBLOC     'ENTIER'    NOMBRE DE BLOCS.                                    
  55 : *     DEPL      'MOT'       DONNEE DE DEPLACEMENTS INITIAUX.                    
  56 : *     CHDEP     'CHPOINT'   VALEURS DES DEPLACEMENTS INITIAUX.                  
  57 : *     VITE      'MOT'       DONNEE DE VITESSES INITIALES.                       
  58 : *     CHVIT     'CHPOINT'   VALEURS DES VITESSES INITIALES.                     
  59 : *     SAUV      'MOT'       DEMANDE DE SAUVEGARDE DES RESULTATS DU              
  60 : *                           DERNIER "BLOC" EN VUE D'UNE REPRISE                 
  61 : *                           ULTERIEURE EVENTUELLE DU CALCUL.                    
  62 : *     SUIT      'MOT'       INDICATION DE REPRISE D'UN CALCUL.                  
  63 : *     SOLPRE    'SOLUTIO'   CONDITIONS INITIALES POUR UNE REPRISE               
  64 : *                           (= CONDITIONS FINALES DU CALCUL PRECEDENT).         
  65 : *     GDPL      'MOT'       INDICATION DE CALCUL AVEC GRANDS                    
  66 : *                           DEPLACEMENTS (POUR L'OPERATEUR "PLEXUS"             
  67 : *                           SEULEMENT).                                         
  68 : *                                                                               
  69 : *     CHAR      'MOT'       MOT CLE, CREATION D'UN OBJET CHARGEMENT.            
  70 : *     TABLCHAR  'TABLE'     TABLE CONTENANT AUTANT DE TABLE (N) QUE             
  71 : *                           CHARGEMENT                                          
  72 : *                           I POUVANT VARIER DE 1 A N                           
  73 : *                    TABLCHAR I 'CHARGEMENT' : OBJET CHARGEMENT.                
  74 : *                    TABLCHAR I 'STRUCTURE' : OBJET STRUCTURE,                  
  75 : *                           (FACULTATIF) SOUS-STRUCTURE OU EST                  
  76 : *                           APPLIQUEE LE CHARGEMENT.                            
  77 : *                    TABLCHAR I 'NUMERO' : OBJET ENTIER, (FACULTATIF)           
  78 : *                           NUMERO DE LA SOUS-STRUCTURE.                        
  79 : *                                                                               
  80 : *     SEIS      'MOT'       MOT CLE, CREATION D'UN OBJET CHARGEMENT.            
  81 : *     TABLSEIS  'TABLE'     TABLE CONTENANT AU PLUS 3 TABLES                    
  82 : *                           I POUVANT VARIER DE 1 A 3                           
  83 : *                    TABLSEIS I 'EVOLUTION' : OBJET EVOLUTION CONTENANT         
  84 : *                           LA DISCRETISATION DU SEISME.                        
  85 : *                    TABLSEIS I 'COEFFICIENT' : OBJET FLOTTANT, COEFF           
  86 : *                           MULTIPLICATIF APPLIQUE AU SEISME.                   
  87 : *                    TABLSEIS I 'DIRECTION' : OBJET MOT, INDIQUANT LA           
  88 : *                           DIRECTION DU SEISME (UX, UY, UZ).                   
  89 : *                                                                               
  90 : *     RECO      'MOT'       DEMANDE DE RECOMBINAISON MODALE POUR TOUTE          
  91 : *                           LA STRUCTURE, A DES INSTANTS DONNES.                
  92 : *     TABLRECO  'TABLE'     TABLE CONTENANT AUTANT DE TABLES (N) QUE DE         
  93 : *                           RECOMBINAISONS DEMANDEES.                           
  94 : *                           I VARIANT DE 1 A N                                  
  95 : *                    TABLRECO I 'TYPE' : UN MOT, TYPE DEMANDE                   
  96 : *                           (DEPL,ACCE, VITE,LIAI,CONT).                        
  97 : *                    TABLRECO I 'TEMPS' : OBJET FLOTTANT, TEMPS OU DOIT         
  98 : *                           S'EFFECTUER LA RECOMBINAISON POUR TOUTE LA          
  99 : *                           STRUCTURE.                                          
 100 : *                    TABLRECO I 'STRUCTURE' : OBJET STRUCTURE,                  
 101 : *                           (FACULTATIF) SOUS-STRUCTURE OU DOIT                 
 102 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 103 : *                    TABLRECO I 'NUMERO' : OBJET ENTIER, (FACULTATIF)           
 104 : *                           NUMERO DE LA SOUS-STRUCTURE OU DOIT                 
 105 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 106 : *                                                                               
 107 : *     MAXI      'MOT'       DEMANDE DU MAXIMUM, EN VALEUR ABSOLUE D'UNE         
 108 : *                           COMPOSANTE AU COURS DU TEMPS APRES UNE              
 109 : *                           RECOMBINAISON MODALE.                               
 110 : *     TABLMAXI  'TABLE'     TABLE CONTENANT AUTANT DE TABLES (N) QUE DE         
 111 : *                           MAXIMA DEMANDES.                                    
 112 : *                           I VARIANT DE 1 A N                                  
 113 : *                    TABLMAXI I 'TYPE' : UN MOT, TYPE DU MAXIMUM                
 114 : *                           DEMANDE (DEPL,ACCE, VITE,LIAI,CONT).                
 115 : *                    TABLMAXI I 'STRUCTURE' : OBJET STRUCTURE,                  
 116 : *                           (FACULTATIF) SOUS-STRUCTURE OU DOIT                 
 117 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 118 : *                    TABLMAXI I 'NUMERO' : OBJET ENTIER, (FACULTATIF)           
 119 : *                           NUMERO DE LA SOUS-STRUCTURE OU DOIT                 
 120 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 121 : *                    PUIS,                                                      
 122 : *                    TABLMAXI I 'POINT' : OBJET POINT,MAILLAGE,ATTACHE.         
 123 : *                           POINTS OU DOIT S'EFFECTUER LA RECHERCHE DU          
 124 : *                           MAXIMUM.                                            
 125 : *                    TABLMAXI I 'COMPOSANTE' : UN MOT, NOM DE LA                
 126 : *                           COMPOSANTE DU POINT.                                
 127 : *                    OU,                                                        
 128 : *                    TABLMAXI I 'CHPOINT' : OBJET CHPOINT, CHAMP                
 129 : *                           CONTENANT LES POINTS ET LES COMPOSANTES OU          
 130 : *                           DOIT S'EFFECTUER LA RECHERCHE DES MAXIMA.           
 131 : *                                                                               
 132 : *     EVOL      'MOT'       DEMANDE DE RECOMBINAISON MODALE EN QUELQUES         
 133 : *                           POINTS, EN FONCTION DU TEMPS.                       
 134 : *     TABLEVOL  'TABLE'     TABLE CONTENANT AUTANT DE TABLES (N) QUE DE         
 135 : *                           DEMANDES DE RECOMBINAISON.                          
 136 : *                           I VARIANT DE 1 A N                                  
 137 : *                    TABLEVOL I 'NPAS' : UN ENTIER, SORTIE TOUS LES             
 138 : *                           "NPAS" DE CALCUL.                                   
 139 : *                           (FACULTATIF) EGAL A 1 PAR DEFAUT.                   
 140 : *                    TABLEVOL I 'TYPE' : UN MOT, TYPE DE LA COMPOSANTE          
 141 : *                           TRAITEE (DEPL,ACCE, VITE,LIAI,CONT).                
 142 : *                    TABLEVOL I 'STRUCTURE' : OBJET STRUCTURE,                  
 143 : *                           (FACULTATIF) SOUS-STRUCTURE OU DOIT                 
 144 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 145 : *                    TABLEVOL I 'NUMERO' : OBJET ENTIER, (FACULTATIF)           
 146 : *                           NUMERO DE LA SOUS-STRUCTURE OU DOIT                 
 147 : *                           S'EFFECTUER LA RECOMBINAISON.                       
 148 : *                    PUIS,                                                      
 149 : *                    TABLEVOL I 'POINT' : OBJET POINT,MAILLAGE,ATTACHE.         
 150 : *                           POINTS OU DOIT S'EFFECTUER LA RECOMBINAISON         
 151 : *                    TABLEVOL I 'COMPOSANTE' : UN MOT, NOM DE LA                
 152 : *                           COMPOSANTE DU POINT.                                
 153 : *                    OU,                                                        
 154 : *                    TABLEVOL I 'CHPOINT' : OBJET CHPOINT, CHAMP                
 155 : *                           CONTENANT LES POINTS ET LES COMPOSANTES OU          
 156 : *                           DOIT S'EFFECTUER LA RECOMBINAISON.                  
 157 : *                                                                               
 158 : *                                                                               
 159 : * RESULTATS:                                                                    
 160 : * ----------                                                                    
 161 : *                                                                               
 162 : *     RESU      'TABLE'     RESULTATS, REPARTIS COMME SUIT:                     
 163 : *                                                                               
 164 : *          INDICE  'SAUV'   OBJET SOLUTION.                                     
 165 : *                  RESU 'SAUV' : LA SOLUTION A L'INSTANT FINAL DE               
 166 : *                           L'EQUATION DANS LA BASE MODALE.                     
 167 : *          INDICE  'RECO'   OBJET TABLE, INDICEE 1 A N.                         
 168 : *                  RESU 'RECO' I : LA RECOMBINAISON MODALE (CHPOINT OU          
 169 : *                           CHAMELEM) POUR LA STRUCTURE A L'INSTANT T .         
 170 : *          INDICE  'MAXI'   OBJET TABLE, INDICEE 1 A N.                         
 171 : *                  RESU 'MAXI' I : LE MAXIMUM DEMANDE DE LA COMPOSANTE          
 172 : *                           EN VALEUR ABSOLUE (FLOTANT).                        
 173 : *          INDICE  'EVOL'   OBJET TABLE, INDICEE 1 A N.                         
 174 : *                  RESU 'EVOL' I : LA RECOMBINAISON MODALE (EVOLUTION)          
 175 : *                           EN QUELQUES POINTS SUR L'INTERVALLE DE              
 176 : *                           TEMPS DE CALCUL.                                    
 177 : *                                                                               
 178 : * VARIABLES :                                                                   
 179 : * -----------                                                                   
 180 : *                                                                               
 181 : * LISTEM   : LISTREEL DE TEMPS POUR LE CALCUL D'UN BLOC                         
 182 : *                                                                               
 183 : *                                                                               
 184 : * AUTEUR, DATE DE CREATION:                                                     
 185 : * -------------------------                                                     
 186 : *                                                                               
 187 : *     P.M.    L.V.      17 MARS 1988                                            
 188 : *                                                                               
 189 : ************************************************************************        
 190 : *                                                                               
 191 : SI = 'MOT' 'SI' ; SINON = 'MOT' 'SINON' ; FINSI = 'MOT' 'FINSI' ;               
 192 : REPETER ='MOT' 'REPETER' ;QUITTER ='MOT' 'QUITTER' ;FIN ='MOT' 'FIN' ;          
 193 : EXISTE = 'MOT' 'EXISTE' ; EGA = 'MOT' 'EGA' ;                                   
 194 : DEPL = 'MOT' 'DEPL' ; VITE = 'MOT' 'VITE' ;                                     
 195 : GDPL = 'MOT' 'GDPL' ; SUIT = 'MOT' 'SUIT' ;                                     
 196 : *                                                                               
 197 : NBLOCS = 1 ;                                                                    
 198 : DEPL_OUI = FAUX ;                                                               
 199 : VITE_OUI = FAUX ;                                                               
 200 : SAUV_OUI = FAUX ;                                                               
 201 : SUIT_OUI = FAUX ;                                                               
 202 : GDPL_OUI = FAUX ;                                                               
 203 : CHAR_OUI = FAUX ;                                                               
 204 : SEIS_OUI = FAUX ;                                                               
 205 : RECO_OUI = FAUX ;                                                               
 206 : MAXI_OUI = FAUX ;                                                               
 207 : EVOL_OUI = FAUX ;                                                               
 208 : _NBINS_ = 1 ;                                                                   
 209 : *                                                                               
 210 : DEB_ERR = '*****  ERREUR  *****' ;                                              
 211 : *                                                                               
 212 : * OBJET "BOUCLE" CREE POUR PERMETTRE UNE SORTIE PREMATUREE DE                   
 213 : * LA PROCEDURE EN CAS D'ERREUR.                                                 
 214 : REPETER PROC 1 ;                                                                
 215 : *                                                                               
 216 : *                                                                               
 217 : * --------------------------------------------------------------------          
 218 : *                   RECUPERATION  DES  OPERANDES                                
 219 : * --------------------------------------------------------------------          
 220 : *                                                                               
 221 : SI (EXISTE MOT1);                                                               
 222 :    TAB_MOT = 'TABLE' ;                                                          
 223 :    TAB_MOT.1 = 'MOT' MOT1 ;                                                     
 224 :    SI (EXISTE MOT2);                                                            
 225 :       TAB_MOT.2 = 'MOT' MOT2 ;                                                  
 226 :       SI (EXISTE MOT3);                                                         
 227 :          TAB_MOT.3 = 'MOT' MOT3 ;                                               
 228 :          SI (EXISTE MOT4);                                                      
 229 :             TAB_MOT.4 = 'MOT' MOT4 ;                                            
 230 :             SI (EXISTE MOT5);                                                   
 231 :                TAB_MOT.5 = 'MOT' MOT5 ;                                         
 232 :                SI (EXISTE MOT6);                                                
 233 :                   TAB_MOT.6 = 'MOT' MOT6 ;                                      
 234 :                   SI (EXISTE MOT7);                                             
 235 :                      TAB_MOT.7 = 'MOT' MOT7 ;                                   
 236 :                      SI (EXISTE MOT8);                                          
 237 :                         TAB_MOT.8 = 'MOT' MOT8 ;                                
 238 :                         SI (EXISTE MOT9);                                       
 239 :                            TAB_MOT.9 = 'MOT' MOT9 ;                             
 240 :                            SI (EXISTE MO10);                                    
 241 :                               TAB_MOT.10 = 'MOT' MO10 ;                         
 242 :                               SI (EXISTE MO11);                                 
 243 :                                  TAB_MOT.11 = 'MOT' MO11 ;                      
 244 :                                  NB_MOT = 11 ;                                  
 245 :                               SINON;                                            
 246 :                                  NB_MOT = 10 ;                                  
 247 :                               FINSI ;                                           
 248 :                            SINON;                                               
 249 :                               NB_MOT = 9 ;                                      
 250 :                            FINSI ;                                              
 251 :                         SINON;                                                  
 252 :                            NB_MOT = 8 ;                                         
 253 :                         FINSI ;                                                 
 254 :                      SINON;                                                     
 255 :                         NB_MOT = 7 ;                                            
 256 :                      FINSI ;                                                    
 257 :                   SINON;                                                        
 258 :                      NB_MOT = 6 ;                                               
 259 :                   FINSI ;                                                       
 260 :                SINON;                                                           
 261 :                   NB_MOT = 5 ;                                                  
 262 :                FINSI ;                                                          
 263 :             SINON;                                                              
 264 :                NB_MOT = 4 ;                                                     
 265 :             FINSI ;                                                             
 266 :          SINON;                                                                 
 267 :             NB_MOT = 3 ;                                                        
 268 :          FINSI ;                                                                
 269 :       SINON;                                                                    
 270 :          NB_MOT = 2 ;                                                           
 271 :       FINSI ;                                                                   
 272 :    SINON;                                                                       
 273 :       NB_MOT = 1 ;                                                              
 274 :    FINSI ;                                                                      
 275 : SINON;                                                                          
 276 :    NB_MOT = 0 ;                                                                 
 277 : FINSI ;                                                                         
 278 : *                                                                               
 279 : SI (EXISTE TAB1);                                                               
 280 :    TAB_TAB = 'TABLE' ;                                                          
 281 :    TAB_TAB.1 = TAB1 ;                                                           
 282 :    SI (EXISTE TAB2);                                                            
 283 :       TAB_TAB.2 = TAB2 ;                                                        
 284 :       SI (EXISTE TAB3);                                                         
 285 :          TAB_TAB.3 = TAB3 ;                                                     
 286 :          SI (EXISTE TAB4);                                                      
 287 :             TAB_TAB.4 = TAB4 ;                                                  
 288 :             SI (EXISTE TAB5);                                                   
 289 :                TAB_TAB.5 = TAB5 ;                                               
 290 :                NB_TAB = 5 ;                                                     
 291 :             SINON;                                                              
 292 :                NB_TAB = 4 ;                                                     
 293 :             FINSI ;                                                             
 294 :          SINON;                                                                 
 295 :            NB_TAB = 3 ;                                                         
 296 :          FINSI ;                                                                
 297 :       SINON;                                                                    
 298 :          NB_TAB = 2 ;                                                           
 299 :       FINSI ;                                                                   
 300 :    SINON;                                                                       
 301 :       NB_TAB = 1 ;                                                              
 302 :    FINSI ;                                                                      
 303 : SINON;                                                                          
 304 :    NB_TAB = 0 ;                                                                 
 305 : FINSI ;                                                                         
 306 : *                                                                               
 307 : SI (EXISTE CHP1);                                                               
 308 :    TAB_CHP = 'TABLE' ;                                                          
 309 :    TAB_CHP.1 = CHP1 ;                                                           
 310 :    SI (EXISTE CHP2);                                                            
 311 :       TAB_CHP.2 = CHP2 ;                                                        
 312 :       NB_CHP = 2 ;                                                              
 313 :    SINON;                                                                       
 314 :       NB_CHP = 1 ;                                                              
 315 :    FINSI ;                                                                      
 316 : SINON;                                                                          
 317 :    NB_CHP = 0 ;                                                                 
 318 : FINSI ;                                                                         
 319 : *                                                                               
 320 : * -------------------------------------------------------------------           
 321 : *                 VERIFICATION  DES  OPERANDES                                  
 322 : * -------------------------------------------------------------------           
 323 : *                                                                               
 324 : I_MOT = 0 ;                                                                     
 325 : I_TAB = 0 ;                                                                     
 326 : I_CHP = 0 ;                                                                     
 327 : *                                                                               
 328 : REPETER LECTURE ;                                                               
 329 : *                                                                               
 330 :    I_MOT = I_MOT '+' 1 ;                                                        
 331 :    SI (I_MOT '>' NB_MOT) ;                                                      
 332 :       QUITTER LECTURE ;                                                         
 333 :    FINSI;                                                                       
 334 : *                                                                               
 335 :    MOT_CLE = 'MOT' TAB_MOT.I_MOT ;                                              
 336 :    SI (EGA MOT_CLE 'BLOC') ;                                                    
 337 :       SI ('NON' (EXISTE ENT1) ) ;                                               
 338 :          'MESSAGE' DEB_ERR ;                                                    
 339 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "ENTIER"' ;          
 340 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 341 :          QUITTER PROC ;                                                         
 342 :       FINSI;                                                                    
 343 :       SI (ENT1 '<' 0) ;                                                         
 344 :          'MESSAGE' DEB_ERR ;                                                    
 345 :          'MESSAGE' 'VOUS AVEZ DONNE UN NOMBRE DE BLOCS NEGATIF.' ;              
 346 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 347 :          QUITTER PROC ;                                                         
 348 :       FINSI;                                                                    
 349 :       SI (EGA ENT1 0) ;                                                         
 350 :          ENT1 = 1 ;                                                             
 351 :       FINSI ;                                                                   
 352 :       NBLOCS = ENT1 ;                                                           
 353 :    SINON; SI (EGA MOT_CLE 'DEPL') ;                                             
 354 :       I_CHP = I_CHP '+' 1 ;                                                     
 355 :       SI (I_CHP '>' NB_CHP) ;                                                   
 356 :          'MESSAGE' DEB_ERR ;                                                    
 357 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "CHPOINT"' ;         
 358 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 359 :          QUITTER PROC ;                                                         
 360 :       FINSI;                                                                    
 361 :       CHP_DEP = TAB_CHP.I_CHP ;                                                 
 362 :       DEPL_OUI = VRAI ;                                                         
 363 :    SINON; SI (EGA MOT_CLE 'VITE') ;                                             
 364 :       I_CHP = I_CHP '+' 1 ;                                                     
 365 :       SI (I_CHP '>' NB_CHP) ;                                                   
 366 :          'MESSAGE' DEB_ERR ;                                                    
 367 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "CHPOINT"' ;         
 368 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 369 :          QUITTER PROC ;                                                         
 370 :       FINSI;                                                                    
 371 :       CHP_VIT = TAB_CHP.I_CHP ;                                                 
 372 :       VITE_OUI = VRAI ;                                                         
 373 :    SINON; SI (EGA MOT_CLE 'SAUV') ;                                             
 374 :       SAUV_OUI = VRAI ;                                                         
 375 :    SINON; SI (EGA MOT_CLE 'SUIT') ;                                             
 376 :       SI  ('NON' (EXISTE SOLPRE) ) ;                                            
 377 :          'MESSAGE' DEB_ERR ;                                                    
 378 :         'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "SOLUTION"' ;         
 379 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 380 :          QUITTER PROC ;                                                         
 381 :       FINSI;                                                                    
 382 :       SUIT_OUI = VRAI ;                                                         
 383 :    SINON; SI (EGA MOT_CLE 'GDPL') ;                                             
 384 :       'MESSAGE' DEB_ERR ;                                                       
 385 :       'MESSAGE' 'OPTION GDPL INDISPONIBLE' ;                                    
 386 :       'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                             
 387 :       QUITTER PROC ;                                                            
 388 :       GDPL_OUI = VRAI ;                                                         
 389 :    SINON; SI (EGA MOT_CLE 'CHAR') ;                                             
 390 :       I_TAB = I_TAB '+' 1 ;                                                     
 391 :       SI (I_TAB '>' NB_TAB) ;                                                   
 392 :          'MESSAGE' DEB_ERR ;                                                    
 393 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "TABLE"' ;           
 394 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 395 :          QUITTER PROC ;                                                         
 396 :       FINSI;                                                                    
 397 :       TABL_CHA = TAB_TAB.I_TAB ;                                                
 398 :       CHAR_OUI = VRAI ;                                                         
 399 :    SINON; SI (EGA MOT_CLE 'SEIS') ;                                             
 400 :       I_TAB = I_TAB '+' 1 ;                                                     
 401 :       SI (I_TAB '>' NB_TAB) ;                                                   
 402 :          'MESSAGE' DEB_ERR ;                                                    
 403 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "TABLE"' ;           
 404 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 405 :          QUITTER PROC ;                                                         
 406 :       FINSI;                                                                    
 407 :       TABL_SEI = TAB_TAB.I_TAB ;                                                
 408 :       SEIS_OUI = VRAI ;                                                         
 409 :    SINON; SI (EGA MOT_CLE 'RECO') ;                                             
 410 :       I_TAB = I_TAB '+' 1 ;                                                     
 411 :       SI (I_TAB '>' NB_TAB) ;                                                   
 412 :          'MESSAGE' DEB_ERR ;                                                    
 413 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "TABLE"' ;           
 414 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 415 :          QUITTER PROC ;                                                         
 416 :       FINSI;                                                                    
 417 :       TABL_REC = TAB_TAB.I_TAB ;                                                
 418 :       RECO_OUI = VRAI ;                                                         
 419 :    SINON; SI (EGA MOT_CLE 'MAXI') ;                                             
 420 : *     ZEXISTE = 'TYPE' DYNAMOD3 ;                                               
 421 : *     SI ('NEG' ZEXISTE 'PROCEDUR') ;                                           
 422 : *        'MESSAGE' DEB_ERR ;                                                    
 423 : *        'MESSAGE' 'LE MOT "DYNAMOD3" SE TROUVE DANS VOTRE FICHIER,' ;          
 424 : *        'MESSAGE' 'CE MOT "DYNAMOD3" EST RESERVE POUR L"APPEL ' ;              
 425 : *        'MESSAGE' 'D"UNE PROCEDURE INTERNE.' ;                                 
 426 : *        'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE' ;                           
 427 : *        QUITTER PROC ;                                                         
 428 : *     FINSI ;                                                                   
 429 :       I_TAB = I_TAB '+' 1 ;                                                     
 430 :       SI (I_TAB '>' NB_TAB) ;                                                   
 431 :          'MESSAGE' DEB_ERR ;                                                    
 432 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "TABLE"' ;           
 433 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 434 :          QUITTER PROC ;                                                         
 435 :       FINSI;                                                                    
 436 :       TABL_MAX = TAB_TAB.I_TAB ;                                                
 437 :       MAXI_OUI = VRAI ;                                                         
 438 :    SINON; SI (EGA MOT_CLE 'EVOL') ;                                             
 439 : *     ZEXISTE = 'TYPE' DYNAMOD2 ;                                               
 440 : *     SI ('NEG' ZEXISTE 'PROCEDUR') ;                                           
 441 : *        'MESSAGE' DEB_ERR ;                                                    
 442 : *        'MESSAGE' 'LE MOT "DYNAMOD2" SE TROUVE DANS VOTRE FICHIER,' ;          
 443 : *        'MESSAGE' 'CE MOT "DYNAMOD2" EST RESERVE POUR L"APPEL ' ;              
 444 : *        'MESSAGE' 'D"UNE PROCEDURE INTERNE.' ;                                 
 445 : *        'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE' ;                           
 446 : *        QUITTER PROC ;                                                         
 447 : *     FINSI ;                                                                   
 448 :       I_TAB = I_TAB '+' 1 ;                                                     
 449 :       SI (I_TAB '>' NB_TAB) ;                                                   
 450 :          'MESSAGE' DEB_ERR ;                                                    
 451 :          'MESSAGE' 'IL MANQUE LA DONNEE D"UN OBJET DE TYPE "TABLE"' ;           
 452 :          'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                          
 453 :          QUITTER PROC ;                                                         
 454 :       FINSI;                                                                    
 455 :       TABL_EVO = TAB_TAB.I_TAB ;                                                
 456 :       EVOL_OUI = VRAI ;                                                         
 457 :    FINSI; FINSI; FINSI; FINSI; FINSI; FINSI; FINSI; FINSI; FINSI;               
 458 :    FINSI; FINSI;                                                                
 459 : *                                                                               
 460 : FIN LECTURE ;                                                                   
 461 : *                                                                               
 462 : * --------------------------------------------------------------------          
 463 : *                        DEBUT  DES  CALCULS                                    
 464 : * --------------------------------------------------------------------          
 465 : *                                                                               
 466 : *                                                                               
 467 : _BRIGID_ = 'RIGI' _BASMOD_ ;                                                    
 468 : _BMASSE_ = 'MASS' _BASMOD_ ;                                                    
 469 : *                                                                               
 470 : *---- ECRITURE DE LA SYNTAXE POUR L'APPEL DE PLEX OU DEVO ----                  
 471 : *                                                                               
 472 : *                                                                               
 473 : TXT_OPER = 'TEXTE' '_BRIGID_' '_BMASSE_' '_BASMOD_' '_NBINS_' ;                 
 474 : TX2_OPER = 'TEXTE' ' ' ;                                                        
 475 : SI (EXISTE AMORT) ;                                                             
 476 :    _BAMORT_ = 'AMOR' _BASMOD_ AMORT ;                                           
 477 :    TXT_OPER = 'TEXTE' TXT_OPER '_BAMORT_' ;                                     
 478 : FINSI;                                                                          
 479 : SI CHAR_OUI ;                                                                   
 480 :    NB_CHAR = 'DIMENSION' TABL_CHA ;                                             
 481 :    I = 0 ;                                                                      
 482 :    REPETER BOUC_CHA NB_CHAR ;                                                   
 483 :       I = I '+' 1 ;                                                             
 484 :       TAB_CHAR = TABL_CHA.I ;                                                   
 485 :       _CHARG_ = TAB_CHAR.'CHARGEMENT' ;                                         
 486 :       TXT_CHAR = 'TEXTE' '_BASMOD_' ;                                           
 487 :       SI (EXISTE TAB_CHAR 'STRUCTURE') ;                                        
 488 :          _STRUC_ = TAB_CHAR.'STRUCTURE' ;                                       
 489 :          TXT_CHAR = 'TEXTE' TXT_CHAR '_STRUC_' ;                                
 490 :          SI (EXISTE TAB_CHAR 'NUMERO') ;                                        
 491 :             _NUME_ = TAB_CHAR.'NUMERO' ;                                        
 492 :             TXT_CHAR = 'TEXTE' TXT_CHAR '_NUME_' ;                              
 493 :          FINSI ;                                                                
 494 :       FINSI ;                                                                   
 495 :       TXT_CHAR = 'TEXTE' TXT_CHAR '_CHARG_' ;                                   
 496 :       _BCHAR_ = 'PJBA' TXT_CHAR ;                                               
 497 :       SI (EGA I 1) ;                                                            
 498 :          _BCHARG_ = _BCHAR_ ;                                                   
 499 :       SINON ;                                                                   
 500 :          _BCHARG_ = _BCHARG_ 'ET' _BCHAR_ ;                                     
 501 :       FINSI ;                                                                   
 502 :    FIN BOUC_CHA ;                                                               
 503 : FINSI;                                                                          
 504 : SI SEIS_OUI ;                                                                   
 505 :    NB_SEIS = 'DIMENSION' TABL_SEI ;                                             
 506 :    I = 0 ;                                                                      
 507 :    REPETER BOUC_SEI NB_SEIS ;                                                   
 508 :       I = I '+' 1 ;                                                             
 509 :       TAB_SEIS = TABL_SEI.I ;                                                   
 510 :       EVOL_I = TAB_SEIS.'EVOLUTION' ;                                           
 511 :       COEF_I = TAB_SEIS.'COEFFICIENT' ;                                         
 512 :       DIR_I = 'MOT' TAB_SEIS.'DIRECTION' ;                                      
 513 :       _SCHAR_ = 'SEISME' EVOL_I _BASMOD_ COEF_I DIR_I ;                         
 514 :       SI (EGA I 1) ;                                                            
 515 :          _SCHARG_ = _SCHAR_ ;                                                   
 516 :       SINON ;                                                                   
 517 :          _SCHARG_ = _SCHARG_ 'ET' _SCHAR_ ;                                     
 518 :       FINSI ;                                                                   
 519 :    FIN BOUC_SEI ;                                                               
 520 : FINSI;                                                                          
 521 : SI SEIS_OUI ;                                                                   
 522 :    SI CHAR_OUI ;                                                                
 523 :       _BCHARG_ = _SCHARG_ 'ET' _BCHARG_ ;                                       
 524 :    SINON ;                                                                      
 525 :       _BCHARG_ = _SCHARG_ ;                                                     
 526 :    FINSI ;                                                                      
 527 :    TXT_OPER = 'TEXTE' TXT_OPER '_BCHARG_' ;                                     
 528 : SINON ; SI CHAR_OUI ;                                                           
 529 :    TXT_OPER = 'TEXTE' TXT_OPER '_BCHARG_' ;                                     
 530 : FINSI ; FINSI ;                                                                 
 531 : SI DEPL_OUI ;                                                                   
 532 :    RMASSE = 'EXTR' _BASMOD_ 'MASS' ;                                            
 533 :    MACHDE = RMASSE '*' CHP_DEP ;                                                
 534 :    PROJDE = 'PJBA' _BASMOD_ MACHDE ;                                            
 535 :    _CHPDEP_ = 'RESO' _BMASSE_ PROJDE ;                                          
 536 :    _DEPL_ = 'MOT' 'DEPL' ;                                                      
 537 :    TX2_OPER = 'TEXTE' TX2_OPER '_DEPL_' '_CHPDEP_' ;                            
 538 : FINSI;                                                                          
 539 : SI VITE_OUI ;                                                                   
 540 :    RMASSE = 'EXTR' _BASMOD_ 'MASS' ;                                            
 541 :    MACHVI = RMASSE '*' CHP_VIT ;                                                
 542 :    PROJVI = 'PJBA' _BASMOD_ MACHVI ;                                            
 543 :    _CHPVIT_ = 'RESO' _BMASSE_ PROJVI ;                                          
 544 :    _VITE_ = 'MOT' 'VITE' ;                                                      
 545 :    TX2_OPER = 'TEXTE' TX2_OPER '_VITE_' '_CHPVIT_' ;                            
 546 : FINSI;                                                                          
 547 : SI GDPL_OUI ;                                                                   
 548 :    _GDPL_ = 'MOT' 'GDPL' ;                                                      
 549 :    TXT_OPER = 'TEXTE' TXT_OPER '_GDPL_' ;                                       
 550 : FINSI;                                                                          
 551 : SI ( (EGA _OPERAT_ 'DEVO') 'OU' (EGA _OPERAT_ 'PLEX') ) ;                       
 552 :    TXT_OPER = 'TEXTE' '_OPERAT_' TXT_OPER ;                                     
 553 : SINON ;                                                                         
 554 :    'MESSAGE' DEB_ERR ;                                                          
 555 :    'MESSAGE' 'NOM INCORRECT POUR L"OPERATEUR DE RESOLUTION DYNAMIQUE';          
 556 :    'MESSAGE' 'ARRET DE LA PROCEDURE DYNAMODE.' ;                                
 557 :    QUITTER PROC ;                                                               
 558 : FINSI ;                                                                         
 559 : *                                                                               
 560 : RESU = 'TABLE' ;                                                                
 561 : *                                                                               
 562 : * ---------- INITIALISATION POUR L'OPERATEUR RECO ----------                    
 563 : *                                                                               
 564 : SI RECO_OUI ;                                                                   
 565 :    DIM_SORT = 'DIMENSION' TABL_REC ;                                            
 566 :    RECOMBIN = 'TABLE' ;                                                         
 567 :    RESU.'RECO' = RECOMBIN ;                                                     
 568 : FINSI ;                                                                         
 569 : *                                                                               
 570 : * ------------------ CALCUL  PAR  BLOC ---------------------                    
 571 : *                                                                               
 572 : DIM_CALC = 'DIMENSION' TEMPCALC ;                                               
 573 : DIM_CAL2 = DIM_CALC '-' 1 ;                                                     
 574 : N1_TEMPS = (DIM_CAL2 '/' NBLOCS) ;                                              
 575 : N1_TEMP1 = N1_TEMPS '+' 1 ;                                                     
 576 : N2_TEMPS = N1_TEMPS '*' NBLOCS ;                                                
 577 : N3_TEMPS = DIM_CAL2 '-' N2_TEMPS ;                                              
 578 : IBLOC = 0 ; I_REC2 = 0 ; ITEMP = 1 ;                                            
 579 : *                                                                               
 580 : REPETER CALCUL NBLOCS ;                                                         
 581 : *                                                                               
 582 :    IBLOC = IBLOC '+' 1 ;                                                        
 583 :    SI ( EGA NBLOCS 1 ) ;                                                        
 584 :       LISTEM = TEMPCALC ;                                                       
 585 :       DIM_LIST = DIM_CALC ;                                                     
 586 :    SINON ;                                                                      
 587 :       ITEMP = ITEMP '-' 1 ;                                                     
 588 :       SI ( IBLOC '<EG' N3_TEMPS ) ;                                             
 589 :          DIM_LIST = N1_TEMP1 '+' 1 ;                                            
 590 :       SINON ;                                                                   
 591 :          DIM_LIST = N1_TEMP1 ;                                                  
 592 :       FINSI ;                                                                   
 593 :       DIM_LIS2 = 0 ;                                                            
 594 :       LISTEM = 'PROG' DIM_LIST '*' 0. ;                                         
 595 :       REPETER LLREEL01 DIM_LIST ;                                               
 596 :          ITEMP = ITEMP '+' 1 ;                                                  
 597 :          DIM_LIS2 = DIM_LIS2 '+' 1 ;                                            
 598 :          TEMPS = 'EXTR' TEMPCALC ITEMP ;                                        
 599 :          'REMPLACER' LISTEM DIM_LIS2 TEMPS ;                                    
 600 :       FIN LLREEL01 ;                                                            
 601 :    FINSI ;                                                                      
 602 : *                                                                               
 603 :    SI ( EGA IBLOC 1 ) ;                                                         
 604 :       SI SUIT_OUI ;                                                             
 605 :          SOLUDY = LISTEM TXT_OPER TX2_OPER SUIT SOLPRE ;                        
 606 :       SINON ;                                                                   
 607 :          SOLUDY = LISTEM TXT_OPER TX2_OPER ;                                    
 608 :       FINSI ;                                                                   
 609 :    SINON ;                                                                      
 610 :       SOLUDY = LISTEM TXT_OPER SUIT SOLPRE ;                                    
 611 :       'DETR' SOLPRE ;                                                           
 612 :    FINSI ;                                                                      
 613 : *                                                                               
 614 : *           ----- OPERATEUR  RECO -----                                         
 615 : *                                                                               
 616 :    SI RECO_OUI ;                                                                
 617 :       N4_TEMPS = 'EXTR' LISTEM 1 ;                                              
 618 :       N5_TEMPS = 'EXTR' LISTEM DIM_LIST ;                                       
 619 :       I_RECO = 0 ;                                                              
 620 :       REPETER OPE_RECO DIM_SORT ;                                               
 621 :          I_RECO = I_RECO '+' 1 ;                                                
 622 :          TABL_RE1 = TABL_REC.I_RECO ;                                           
 623 :          TEM_RCO = TABL_RE1.'TEMPS' ;                                           
 624 :          SI ((TEM_RCO '>EG' N4_TEMPS) 'ET' (TEM_RCO '<EG' N5_TEMPS)) ;          
 625 :             TYP_RCO = 'MOT' TABL_RE1.'TYPE' ;                                   
 626 :             TY2_RCO = 'MOT' TYP_RCO ;                                           
 627 :             SI ( EGA _OPERAT_ 'DEVO' ) ;                                        
 628 :                SI ( (EGA TYP_RCO 'VITE') 'OU' (EGA TYP_RCO 'ACCE') ) ;          
 629 :                   TY2_RCO = 'MOT' 'DEPL' ;                                      
 630 :                FINSI ;                                                          
 631 :             FINSI ;                                                             
 632 :             CHP_RCO = 'TIRE' SOLUDY.TYP_RCO 'TEMP' TEM_RCO ;                    
 633 :             I_REC2 = I_REC2 '+' 1 ;                                             
 634 :             TXT_RECO = 'TEXTE' ' ' ;                                            
 635 :             SI (EXISTE TABL_RE1 'STRUCTURE') ;                                  
 636 :                _RSTRUC_ = TABL_RE1.'STRUCTURE' ;                                
 637 :                TXT_RECO = 'TEXTE' TXT_RECO '_RSTRUC_' ;                         
 638 :                SI (EXISTE TABL_RE1 'NUMERO') ;                                  
 639 :                   _RNUME_ = TABL_RE1.'NUMERO' ;                                 
 640 :                   TXT_RECO = 'TEXTE' TXT_RECO '_RNUME_' ;                       
 641 :                FINSI ;                                                          
 642 :             FINSI ;                                                             
 643 :             RECOMBIN.I_REC2 = 'RECO' CHP_RCO _BASMOD_ TXT_RECO TY2_RCO ;        
 644 :          FINSI ;                                                                
 645 :       FIN OPE_RECO ;                                                            
 646 :    FINSI ;                                                                      
 647 : *                                                                               
 648 : *           ----- OPERATEUR  MAXI -----                                         
 649 : *                                                                               
 650 :    SI MAXI_OUI ;                                                                
 651 :       SI ( EGA IBLOC 1 ) ;                                                      
 652 :          TAB_MAX1 = DYNAMOD3 _BASMOD_ SOLUDY TABL_MAX ;                         
 653 :       SINON ;                                                                   
 654 :          TAB_MAX2 = DYNAMOD3 _BASMOD_ SOLUDY TABL_MAX ;                         
 655 :          NB_MAXI = 'DIMENSION' TAB_MAX2 ;                                       
 656 :          I_MAX = 0 ;                                                            
 657 :          REPETER VAL_MAXI NB_MAXI ;                                             
 658 :             I_MAX = I_MAX '+' 1 ;                                               
 659 :             MAXI1 = TAB_MAX1.I_MAX ;                                            
 660 :             MAXI2 = TAB_MAX2.I_MAX ;                                            
 661 :             SI ( MAXI2 '>' MAXI1 ) ;                                            
 662 :                TAB_MAX1.I_MAX = MAXI2 ;                                         
 663 :             FINSI ;                                                             
 664 :          FIN VAL_MAXI ;                                                         
 665 :       FINSI ;                                                                   
 666 :    FINSI ;                                                                      
 667 : *                                                                               
 668 : *           ----- OPERATEUR  EVOL -----                                         
 669 : *                                                                               
 670 :    SI EVOL_OUI ;                                                                
 671 :       SI ( EGA IBLOC 1 ) ;                                                      
 672 :          RESUEVO1 = DYNAMOD2 SOLUDY _BASMOD_ LISTEM TEMPCALC TABL_EVO ;         
 673 :          TAB_EVO1 = RESUEVO1.'EVOLUTION' ;                                      
 674 :          TABL_PAS = RESUEVO1.'PAS-EVOL' ;                                       
 675 :       SINON ;                                                                   
 676 :          RESUEVO2 = DYNAMOD2 SOLUDY _BASMOD_ LISTEM TEMPCALC                    
 677 :                     TABL_EVO TABL_PAS ;                                         
 678 :          TAB_EVO2 = RESUEVO2.'EVOLUTION' ;                                      
 679 :          TABL_PAS = RESUEVO2.'PAS-EVOL' ;                                       
 680 :          NB_EVOL = 'DIMENSION' TAB_EVO2 ;                                       
 681 :          I_EVO = 0 ;                                                            
 682 :          REPETER OPE_CONC NB_EVOL ;                                             
 683 :             I_EVO = I_EVO '+' 1 ;                                               
 684 :             EVOL1 = TAB_EVO1.I_EVO ;                                            
 685 :             EVOL2 = TAB_EVO2.I_EVO ;                                            
 686 :             EVOL3 = 'CONCAT' EVOL1 EVOL2 ;                                      
 687 :             'DETR' EVOL1 'TOUT' ; 'DETR' EVOL2 'TOUT' ;                         
 688 :             TAB_EVO1.I_EVO = EVOL3 ;                                            
 689 :          FIN OPE_CONC ;                                                         
 690 :       FINSI ;                                                                   
 691 :    FINSI ;                                                                      
 692 : *                                                                               
 693 :    SI ( 'NEG' DIM_LIST DIM_CALC ) ;                                             
 694 :       'DETR' LISTEM ;                                                           
 695 :    FINSI ;                                                                      
 696 : *                                                                               
 697 :    SOLPRE = SOLUDY ;                                                            
 698 : *                                                                               
 699 : FIN CALCUL ;                                                                    
 700 : *                                                                               
 701 : *                                                                               
 702 : * --------------------------------------------------------------------          
 703 : *                    RECUPERATION  DES  RESULTATS                               
 704 : * --------------------------------------------------------------------          
 705 : *                                                                               
 706 : SI MAXI_OUI ;                                                                   
 707 :    RESU.'MAXI' = TAB_MAX1 ;                                                     
 708 : FINSI ;                                                                         
 709 : SI EVOL_OUI ;                                                                   
 710 :    RESU.'EVOL' = TAB_EVO1 ;                                                     
 711 : FINSI ;                                                                         
 712 : SI SAUV_OUI ;                                                                   
 713 :    RESU.'SAUV' = SOLUDY ;                                                       
 714 : SINON ;                                                                         
 715 :    'DETR' SOLUDY ;                                                              
 716 : FINSI ;                                                                         
 717 : *                                                                               
 718 : FIN PROC ;                                                                      
 719 : *                                                                               
 720 : 'FINPROC' RESU ;                                                                

© Cast3M 2003 - All rights reserved.
Disclaimer