* PAS_RESU PROCEDUR PV090527 24/03/14 21:15:02 11869 WTAB = PRECED.'WTABLE'; * * Recuperation de la table 'ESTIMATION' des champs en fin de pas : estim = PRECED.'ESTIMATION' ; * * Remplissage de la table de 'CONTINUATION' a partir de 'ESTIMATION' conti= PRECED.'CONTINUATION'; * estim.'TEMPS' = TEMP0 ; 'FINS'; * Transfert des indices de la table "estim" dans "conti" 'REPE' SURi DIM1 ; ii = &SURi; MOT_tmp = INDEX1.ii ; 'SINO'; 'FINS'; conti.MOT_tmp = estim.MOT_tmp ; 'FIN' SURi; ************************************************************************ *************** Sauvegarde eventuelle des resultats ******************** ************************************************************************ *La sauvegarde n'est faite que si on a eu convergence des calculs : ISAUV = FAUX; ISAUV = VRAI ; 'FINSI' ; 'FINSI' ; 'SI' ISAUV ; NSOR = WTAB.'NSOR' + 1 ; WTAB.'NSOR' = NSOR ; * Cas particuliers de 'DEFIN' et 'DEFTO' TABSAUV = WTAB.'TABSAUV' ; 'SI' ('NON' TABSAUV.'DEFTO'); 'FINS'; 'FINSI' ; 'SI' ('NON' TABSAUV.'DEFIN') ; 'FINS'; 'FINSI' ; * Transfert des indices de la table "estim" dans PRECED 'REPE' SURi DIM1 ; ii = &SURi; MOT_tmp = INDEX1.ii ; OBJi = estim.MOT_tmp ; 'SINO'; OBJi = estim.MOT_tmp ; 'SI' ('EGA' estim.MOT_tmp.'SOUSTYPE' 'ESCLAVE'); 'FINS'; 'FINS'; 'FINS'; 'FINS'; 'FINS'; PRECED.MOT_tmp.NSOR = estim.MOT_tmp ; 'FIN' SURi; *----------------------------------------------------------------------- *--- 1- Sauvegarde incrementale sous certaines conditions *--- 2- Fantomisation (option 'ECONOMIQUE'=VRAI de PASAPAS) pour liberer la memoire *----------------------------------------------------------------------- 'SI' WTAB.'ISAUVEGL'; ltpssauv = WTAB.'ISAUVEGA' ; * Sauvegarde : Dernier pas OU toutes les 300 secondes OU si DATE ne marche pas * Fantomisation si on sauvegarde effectivement ! 'OU' ((EPOQ1 '-' WTAB.'EPOQUE') '>EG' 300.D0) 'OU' (EPOQ1 'EGA' 0)) ; 'SAUV' 'MUET' PRECED ; WTAB.'EPOQUE' =EPOQ1 ; 'SI' WTAB.'LECONOMI'; NFFSOR = NSOR '-' WTAB.'NFSOR' '-' 1 ; 'SI' ( NFFSOR '>' 0) ; * Boucle sur les instants SAUVES depuis la derniere fantomisation 'REPE' DETRES NFFSOR ; NSORM2 = WTAB.'NFSOR' - 1 + &DETRES ; 'SI' (NSORM2 '<' 0) ; 'ITER' DETRES ; 'FINSI' ; * Boucle sur les indices a fantomiser 'REPE' SURi DIM1 ; ii = &SURi; MOT_tmp = INDEX1.ii ; 'SINO'; 'FINS'; 'FANTOM' PRECED.MOT_tmp NSORM2 ; 'FIN' SURi; 'FIN' DETRES ; WTAB.'NFSOR'= WTAB.'NFSOR' + NFFSOR ; 'FINSI' ; 'FINS' ; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI' ; 'FINP' ISAUV ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales