* 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