Download dynamod2.procedur

Back to the list

   1 : * DYNAMOD2  PROCEDUR  NOBODY    92/01/01    00:00:00     001                    
   2 : 'DEBPROC'  DYNAMOD2  SOLUDY*'SOLUTION'  BASMOD*'BASEMODA'                       
   3 :   LISTEM*'LISTREEL'  TEMPCALC*'LISTREEL'                                        
   4 : TABL_EVO*'TABLE   '  TABL_PAS/'TABLE   '  ;                                     
   5 : ************************************************************************        
   6 : *                                                                               
   7 : *                           D Y N A M O D 2                                     
   8 : *                           ---------------                                     
   9 : *                                                                               
  10 : * FONCTION:                                                                     
  11 : * ---------                                                                     
  12 : *                                                                               
  13 : *     DEFINIT L'EVOLUTION D'UN (OU PLUSIEURS) PARAMETRE(S) AU SEIN              
  14 : *     D'UN OBJET SOLUTION APRES RECOMBINAISON DES MODES.                        
  15 : *                                                                               
  16 : * PHRASE D'APPEL (EN GIBIANE):                                                  
  17 : * ----------------------------                                                  
  18 : *                                                                               
  19 : *     RESUTAB =  DYNAMOD2  BASMOD  SOLUDY  LISTEM  TEMPCALC                     
  20 : *                          TABLEVOL  ( TABLPAS )  ;                             
  21 : *                                                                               
  22 : * OPERANDES:                                                                    
  23 : * ----------                                                                    
  24 : *                                                                               
  25 : *   LISTEM   : INSTANTS DE CALCUL POUR L'EVOLUTION.                             
  26 : *                                                                               
  27 : *   TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE.        
  28 : *                                                                               
  29 : *   SOLUDY   : SOLUTION.                                                        
  30 : *                                                                               
  31 : *   BASMOD   : BASE MODALE.                                                     
  32 : *                                                                               
  33 : *   TABLEVOL : TABLE CONTENANT AUTANT DE TABLES (N) QUE D'EVOLUTIONS            
  34 : *              DEMANDEES.                                                       
  35 : *              I VARIANT DE 1 A N                                               
  36 : *              TABLEVOL I 'NPAS' : UN ENTIER, SORTIE TOUS LES "NPAS"            
  37 : *                       DE CALCUL (FACULTATIF), = 1  PAR DEFAUT.                
  38 : *              TABLEVOL I 'TYPE' : UN MOT, TYPE DE LA COMPOSANTE                
  39 : *                       TRAITEE (DEPL,ACCE, VITE, LIAI, CONT).                  
  40 : *              TABLEVOL I 'STRUCTURE' : OBJET STRUTURE, (FACULTATIF)            
  41 : *                       SOUS-STRUCTURE OU DOIT S'EFFECTUER LA                   
  42 : *                       RECOMBINAISON.                                          
  43 : *              TABLEVOL I 'NUMERO' : OBJET ENTIER, (FACULTATIF)                 
  44 : *                       NUMERO DE LA SOUS-STRUCTURE OU DOIT S'EFFECTUER         
  45 : *                       LA RECOMBINAISON.                                       
  46 : *              PUIS,                                                            
  47 : *              TABLEVOL I 'POINT' : OBJET POINT, MAILLAGE, ATTACHE.             
  48 : *                       POINT OU DOIT S'EFFECTUER LA RECOMBINAISON.             
  49 : *              TABLEVOL I 'COMPOSANTE' : UN MOT, NOM DE LA COMPOSANTE           
  50 : *                       DU POINT.                                               
  51 : *              OU,                                                              
  52 : *              TABLEVOL I 'CHPOINT' : OBJET CHPOINT, CHAMP CONTENANT LES        
  53 : *                       POINTS ET LES COMPOSANTES OU DOIT S'EFFECTUER           
  54 : *                       LA RECOMBINAISON.                                       
  55 : *                                                                               
  56 : *   TABLPAS  : TABLE CONTENANT DEUX TABLES.                                     
  57 : *              I VARIANT DE 1 A N                                               
  58 : *              TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA                 
  59 : *                       POSITION POUR UNE REPRISE POUR CREER LA LISTE           
  60 : *                       DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC.            
  61 : *              TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA                 
  62 : *                       SOMME DES LONGUEURS  DES LISTES DE REELS                
  63 : *                       PRECEDENTES LISTEMPS.                                   
  64 : *                                                                               
  65 : * RESULTATS:                                                                    
  66 : * ----------                                                                    
  67 : *                                                                               
  68 : *   RESUTAB : TABLE CONTENANT DEUX TABLES                                       
  69 : *             INDICE 'EVOLUTION' :                                              
  70 : *              I VARIANT DE 1 A N                                               
  71 : *              TABLPAS 'EVOLUTION' I : OBJET EVOLUTION, CONTIENT                
  72 : *                       L'EVOLUTION DEMANDEE.                                   
  73 : *             INDICE 'PAS-EVOL'  :                                              
  74 : *              I VARIANT DE 1 A N                                               
  75 : *              TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA                 
  76 : *                      POSITION POUR UNE REPRISE POUR CREER LA LISTE            
  77 : *                       DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC.            
  78 : *              TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA                 
  79 : *                       SOMME DES LONGUEURS  DES LISTES DE REELS                
  80 : *                       PRECEDENTES LISTEMPS.                                   
  81 : *                                                                               
  82 : * VARIABLES:                                                                    
  83 : * ----------                                                                    
  84 : *                                                                               
  85 : *   TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE.        
  86 : *   NBTABLE  : NOMBRE DE TABLES CONTENU DANS TABLEVOL.                          
  87 : *   NBINDICE : NOMBRE D'INDICE DANS UNE TABLE.                                  
  88 : *                                                                               
  89 : *                                                                               
  90 : *                                                                               
  91 : * AUTEUR, DATE DE CREATION:                                                     
  92 : * -------------------------                                                     
  93 : *                                                                               
  94 : *     P.M.    L.V.      30 MARS 1988                                            
  95 : *                                                                               
  96 : ************************************************************************        
  97 : *                                                                               
  98 : SI = 'MOT' 'SI' ; SINON = 'MOT' 'SINON' ; FINSI = 'MOT' 'FINSI' ;               
  99 : *                                                                               
 100 : RESUEVOL = 'TABLE' ;                                                            
 101 : RESU_EVO = 'TABLE' ;                                                            
 102 : RESU_PAS = 'TABLE' ;                                                            
 103 : DIM_CALC = 'DIMENSION' TEMPCALC ;                                               
 104 : DIM_LIST = 'DIMENSION' LISTEM ;                                                 
 105 : NBTABLE = 'DIMENSION' TABL_EVO ;                                                
 106 : INDICE1 = 0 ;                                                                   
 107 : NPAS_EVO = 1 ;                                                                  
 108 : *                                                                               
 109 : 'REPETER' BOUCLE1 NBTABLE ;                                                     
 110 :     INDICE1 = INDICE1 '+' 1 ;                                                   
 111 :     SI ('EXISTE' TABL_PAS) ;                                                    
 112 :        TAB_INST = TABL_PAS.INDICE1 ;                                            
 113 :        IPAS = TAB_INST.1 ;                                                      
 114 :        DIM_INSP = TAB_INST.2 ;                                                  
 115 :     SINON ;                                                                     
 116 :        TAB_INST = 'TABLE' ;                                                     
 117 :        IPAS = 1 ;                                                               
 118 :        DIM_INSP = 1 ;                                                           
 119 :     FINSI ;                                                                     
 120 :     TAB_EVOL = TABL_EVO.INDICE1 ;                                               
 121 : *                                                                               
 122 : *    ------ LECTURE DE LA TABLE ------                                          
 123 : *                                                                               
 124 :     SI ('EXISTE' TAB_EVOL 'NPAS') ;                                             
 125 :        NPAS_EVO = TAB_EVOL.'NPAS' ;                                             
 126 :     FINSI ;                                                                     
 127 :     TYP_EVO = 'MOT' TAB_EVOL.'TYPE' ;                                           
 128 :     SI ('EXISTE' TAB_EVOL 'POINT') ;                                            
 129 :        PTS_EVO = TAB_EVOL.'POINT' ;                                             
 130 :        COMP_EVO = 'MOT' TAB_EVOL.'COMPOSANTE' ;                                 
 131 :     SINON ;                                                                     
 132 :        CHP_EVO = TAB_EVOL.'CHPOINT' ;                                           
 133 :     FINSI ;                                                                     
 134 :     TXT_EVOL = 'TEXTE' ' ' ;                                                    
 135 :     SI ('EXISTE' TAB_EVOL 'STRUCTURE') ;                                        
 136 :        _ESTRUC_ = TAB_EVOL.'STRUCTURE' ;                                        
 137 :        TXT_EVOL = 'TEXTE' TXT_EVOL '_ESTRUC_' ;                                 
 138 :     FINSI ;                                                                     
 139 :     SI ('EXISTE' TAB_EVOL 'NUMERO') ;                                           
 140 :        _ENUME_ = TAB_EVOL.'NUMERO' ;                                            
 141 :        TXT_EVOL = 'TEXTE' TXT_EVOL '_ENUME_' ;                                  
 142 :     FINSI ;                                                                     
 143 : *                                                                               
 144 : *       ------- LISTE DES INSTANTS -------                                      
 145 : *                                                                               
 146 :     SI ( EGA NPAS_EVO 1 ) ;                                                     
 147 :        INSTANT = 'ENLEVER' LISTEM 1 ;                                           
 148 :        DIM_INS2 = DIM_LIST ;                                                    
 149 :     SINON ;                                                                     
 150 :        DIM_INST = 0 ;                                                           
 151 :        NPAS = (DIM_LIST '-' 1) '/' NPAS_EVO ;                                   
 152 :        INSTANT = 'PROG' NPAS '*' 0. ;                                           
 153 :        'REPETER' LLREEL01 NPAS ;                                                
 154 :            IPAS = IPAS '+' NPAS_EVO ;                                           
 155 :            DIM_INST = DIM_INST '+' 1 ;                                          
 156 :            TEMPAS = 'EXTR' TEMPCALC IPAS ;                                      
 157 :            'REMPLACER' INSTANT DIM_INST TEMPAS ;                                
 158 :        'FIN' LLREEL01 ;                                                         
 159 :        DIM_INS2 = DIM_INSP '+' (DIM_LIST '-' 1) ;                               
 160 :        IPAS1 = IPAS '+' NPAS_EVO ;                                              
 161 :        SI (IPAS1 '<EG' DIM_INS2) ;                                              
 162 :           IPAS = IPAS1 ;                                                        
 163 :           DIM_INST = DIM_INST '+' 1 ;                                           
 164 :           TEMPAS = 'EXTR' TEMPCALC IPAS ;                                       
 165 :             INSTANT =  'INSERER' INSTANT DIM_INST TEMPAS ;                      
 166 :           DIM_INS2 = DIM_INS2 '+' 1 ;                                           
 167 :        FINSI ;                                                                  
 168 :      FINSI ;                                                                    
 169 : *                                                                               
 170 : *       -------- OPERATEUR  EVOL ---------                                      
 171 : *                                                                               
 172 :      SI ('EXISTE' PTS_EVO) ;                                                    
 173 :         MONTYPE = 'TYPE' PTS_EVO ;                                              
 174 :         SI ('EGA' MONTYPE 'ATTACHE ') ;                                         
 175 :            EVOL1 = 'EVOL' 'SOLU' SOLUDY TYP_EVO PTS_EVO                         
 176 :                    COMP_EVO INSTANT ;                                           
 177 :         SINON ;                                                                 
 178 :            EVOL1 = 'EVOL' 'RECO' SOLUDY BASMOD TXT_EVOL TYP_EVO                 
 179 :                    PTS_EVO COMP_EVO INSTANT ;                                   
 180 :         FINSI ;                                                                 
 181 :      SINON ;                                                                    
 182 :         EVOL1 = 'EVOL' 'RECO' SOLUDY BASMOD TXT_EVOL TYP_EVO CHP_EVO            
 183 :                 INSTANT ;                                                       
 184 :      FINSI ;                                                                    
 185 : *                                                                               
 186 : *       ------------- RESULTAT -----------                                      
 187 : *                                                                               
 188 :      TAB_INST.1 = IPAS ;                                                        
 189 :      TAB_INST.2 = DIM_INS2 ;                                                    
 190 :      RESU_EVO.INDICE1 = EVOL1 ;                                                 
 191 :      RESU_PAS.INDICE1 = TAB_INST ;                                              
 192 : *                                                                               
 193 : 'FIN' BOUCLE1 ;                                                                 
 194 : *                                                                               
 195 : RESUEVOL.'EVOLUTION' = RESU_EVO ;                                               
 196 : RESUEVOL.'PAS-EVOL' = RESU_PAS ;                                                
 197 : *                                                                               
 198 : 'FINPROC' RESUEVOL ;                                                            

© Cast3M 2003 - All rights reserved.
Disclaimer