* DYNAMOD2 PROCEDUR NOBODY 92/01/01 00:00:00 001 LISTEM*'LISTREEL' TEMPCALC*'LISTREEL' TABL_EVO*'TABLE ' TABL_PAS/'TABLE ' ; ************************************************************************ * * D Y N A M O D 2 * --------------- * * FONCTION: * --------- * * DEFINIT L'EVOLUTION D'UN (OU PLUSIEURS) PARAMETRE(S) AU SEIN * D'UN OBJET SOLUTION APRES RECOMBINAISON DES MODES. * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * RESUTAB = DYNAMOD2 BASMOD SOLUDY LISTEM TEMPCALC * TABLEVOL ( TABLPAS ) ; * * OPERANDES: * ---------- * * LISTEM : INSTANTS DE CALCUL POUR L'EVOLUTION. * * TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE. * * SOLUDY : SOLUTION. * * BASMOD : BASE MODALE. * * TABLEVOL : TABLE CONTENANT AUTANT DE TABLES (N) QUE D'EVOLUTIONS * DEMANDEES. * I VARIANT DE 1 A N * TABLEVOL I 'NPAS' : UN ENTIER, SORTIE TOUS LES "NPAS" * DE CALCUL (FACULTATIF), = 1 PAR DEFAUT. * TABLEVOL I 'TYPE' : UN MOT, TYPE DE LA COMPOSANTE * TRAITEE (DEPL,ACCE, VITE, LIAI, CONT). * TABLEVOL I 'STRUCTURE' : OBJET STRUTURE, (FACULTATIF) * SOUS-STRUCTURE OU DOIT S'EFFECTUER LA * RECOMBINAISON. * TABLEVOL I 'NUMERO' : OBJET ENTIER, (FACULTATIF) * NUMERO DE LA SOUS-STRUCTURE OU DOIT S'EFFECTUER * LA RECOMBINAISON. * PUIS, * TABLEVOL I 'POINT' : OBJET POINT, MAILLAGE, ATTACHE. * POINT OU DOIT S'EFFECTUER LA RECOMBINAISON. * TABLEVOL I 'COMPOSANTE' : UN MOT, NOM DE LA COMPOSANTE * DU POINT. * OU, * TABLEVOL I 'CHPOINT' : OBJET CHPOINT, CHAMP CONTENANT LES * POINTS ET LES COMPOSANTES OU DOIT S'EFFECTUER * LA RECOMBINAISON. * * TABLPAS : TABLE CONTENANT DEUX TABLES. * I VARIANT DE 1 A N * TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA * POSITION POUR UNE REPRISE POUR CREER LA LISTE * DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC. * TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA * SOMME DES LONGUEURS DES LISTES DE REELS * PRECEDENTES LISTEMPS. * * RESULTATS: * ---------- * * RESUTAB : TABLE CONTENANT DEUX TABLES * INDICE 'EVOLUTION' : * I VARIANT DE 1 A N * TABLPAS 'EVOLUTION' I : OBJET EVOLUTION, CONTIENT * L'EVOLUTION DEMANDEE. * INDICE 'PAS-EVOL' : * I VARIANT DE 1 A N * TABLPAS 'PAS-EVOL' 1 I : UN ENTIER, PRECISANT LA * POSITION POUR UNE REPRISE POUR CREER LA LISTE * DES INSTANTS DE CALCUL A PARTIR DE TEMPCALC. * TABLPAS 'PAS-EVOL' 2 I : UN ENTIER, PRECISANT LA * SOMME DES LONGUEURS DES LISTES DE REELS * PRECEDENTES LISTEMPS. * * VARIABLES: * ---------- * * TEMPCALC : TOUS LES INSTANTS DU CALCUL Y COMPRIS CEUX AVANT REPRISE. * NBTABLE : NOMBRE DE TABLES CONTENU DANS TABLEVOL. * NBINDICE : NOMBRE D'INDICE DANS UNE TABLE. * * * * AUTEUR, DATE DE CREATION: * ------------------------- * * P.M. L.V. 30 MARS 1988 * ************************************************************************ * * RESUEVOL = 'TABLE' ; RESU_EVO = 'TABLE' ; RESU_PAS = 'TABLE' ; DIM_CALC = 'DIMENSION' TEMPCALC ; DIM_LIST = 'DIMENSION' LISTEM ; NBTABLE = 'DIMENSION' TABL_EVO ; INDICE1 = 0 ; NPAS_EVO = 1 ; * 'REPETER' BOUCLE1 NBTABLE ; INDICE1 = INDICE1 '+' 1 ; SI ('EXISTE' TABL_PAS) ; TAB_INST = TABL_PAS.INDICE1 ; IPAS = TAB_INST.1 ; DIM_INSP = TAB_INST.2 ; SINON ; TAB_INST = 'TABLE' ; IPAS = 1 ; DIM_INSP = 1 ; FINSI ; TAB_EVOL = TABL_EVO.INDICE1 ; * * ------ LECTURE DE LA TABLE ------ * SI ('EXISTE' TAB_EVOL 'NPAS') ; NPAS_EVO = TAB_EVOL.'NPAS' ; FINSI ; SI ('EXISTE' TAB_EVOL 'POINT') ; PTS_EVO = TAB_EVOL.'POINT' ; SINON ; CHP_EVO = TAB_EVOL.'CHPOINT' ; FINSI ; TXT_EVOL = 'TEXTE' ' ' ; SI ('EXISTE' TAB_EVOL 'STRUCTURE') ; _ESTRUC_ = TAB_EVOL.'STRUCTURE' ; TXT_EVOL = 'TEXTE' TXT_EVOL '_ESTRUC_' ; FINSI ; SI ('EXISTE' TAB_EVOL 'NUMERO') ; _ENUME_ = TAB_EVOL.'NUMERO' ; TXT_EVOL = 'TEXTE' TXT_EVOL '_ENUME_' ; FINSI ; * * ------- LISTE DES INSTANTS ------- * SI ( EGA NPAS_EVO 1 ) ; INSTANT = 'ENLEVER' LISTEM 1 ; DIM_INS2 = DIM_LIST ; SINON ; DIM_INST = 0 ; NPAS = (DIM_LIST '-' 1) '/' NPAS_EVO ; 'REPETER' LLREEL01 NPAS ; IPAS = IPAS '+' NPAS_EVO ; DIM_INST = DIM_INST '+' 1 ; 'REMPLACER' INSTANT DIM_INST TEMPAS ; 'FIN' LLREEL01 ; DIM_INS2 = DIM_INSP '+' (DIM_LIST '-' 1) ; IPAS1 = IPAS '+' NPAS_EVO ; SI (IPAS1 '<EG' DIM_INS2) ; IPAS = IPAS1 ; DIM_INST = DIM_INST '+' 1 ; INSTANT = 'INSERER' INSTANT DIM_INST TEMPAS ; DIM_INS2 = DIM_INS2 '+' 1 ; FINSI ; FINSI ; * * -------- OPERATEUR EVOL --------- * SI ('EXISTE' PTS_EVO) ; SI ('EGA' MONTYPE 'ATTACHE ') ; EVOL1 = 'EVOL' 'SOLU' SOLUDY TYP_EVO PTS_EVO COMP_EVO INSTANT ; SINON ; PTS_EVO COMP_EVO INSTANT ; FINSI ; SINON ; INSTANT ; FINSI ; * * ------------- RESULTAT ----------- * TAB_INST.1 = IPAS ; TAB_INST.2 = DIM_INS2 ; RESU_EVO.INDICE1 = EVOL1 ; RESU_PAS.INDICE1 = TAB_INST ; * 'FIN' BOUCLE1 ; * RESUEVOL.'EVOLUTION' = RESU_EVO ; * 'FINPROC' RESUEVOL ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales