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