* PAS_RESU PROCEDUR MB234859 24/11/04 21:15:04 12064 ************************************************************************ * Procedure qui se charge de : * - transferer le contenu de la table ESTIMATION (champs solutions en * fin de pas) dans la table CONTINUATION. * - conserver les resultats dans la table PRECED lorsque le temps * calcule fait partie de la liste des temps sauves * - sauvegarder la table PRECED lorsque le temps calcule fait partie * de la liste des temps sauvegardes. Une sauvegarde incrementale est * realisee lorsque l'option ECONOMIQUE est choisie. ************************************************************************ WTAB = PRECED.'WTABLE'; estim = PRECED.'ESTIMATION' ; conti = PRECED.'CONTINUATION'; *---------------------------------------------------------------------- * Transferer le contenu de ESTIMATION dans CONTINUATION *---------------------------------------------------------------------- 'REPE' SURi DIM1 ; ii = &SURi; MOT_tmp = INDEX1.ii ; 'SINO'; 'FINS'; conti.MOT_tmp = estim.MOT_tmp ; 'FIN' SURi; TEMP0 = conti.'TEMPS' ; *---------------------------------------------------------------------- * Sauver les resultats de calculs *---------------------------------------------------------------------- * 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 ; TABSAUV = WTAB.'TABSAUV' ; * Transfert des indices de la table "conti" dans PRECED 'REPE' SURi DIM1 ; ii = &SURi; MOT_tmp = INDEX1.ii ; OBJi = conti.MOT_tmp ; 'SINO'; * 'SI' ('EGA' MOT_tmp 'DEFORMATIONS'); 'SI' ('NON' TABSAUV.'DEFTO'); 'ITER' SURi ; 'FINS'; 'FINSI' ; * 'SI' ('EGA' MOT_tmp 'DEFORMATIONS_INELASTIQUES'); 'SI' ('NON' TABSAUV.'DEFIN') ; 'ITER' SURi ; 'FINS'; 'FINSI' ; * 'SI' ('EGA' MOT_tmp 'DEFORMATIONS_APPORT'); 'SI' ('NON' TABSAUV.'DEFAP') ; 'ITER' SURi ; 'FINS'; 'FINSI' ; 'SI' ('EGA' MOT_tmp 'VITESSES_FLUIDE_0') ; 'ITER' SURi ; 'FINSI' ; * OBJi = conti.MOT_tmp ; 'SI' ('EGA' conti.MOT_tmp.'SOUSTYPE' 'ESCLAVE'); 'FINS'; 'FINS'; 'FINS'; 'FINS'; * 'FINS'; * * Sauvegarder les contraintes/deformations sur la conf. courante 'SI' (('EGA' MOT_tmp 'CONTRAINTES') 'OU' ('EGA' MOT_tmp 'DEFORMATIONS')) ; chmz = conti.MOT_tmp ; 'SI' WTAB.'GRANDS_DEPLACEMENTS' ; 'FORM' WTAB.'GE0_DEB' ; zdep = -1. '*' conti.'DEPLACEMENTS' ; 'FORM' WTAB.'FOR0' ; 'FINSI' ; PRECED.MOT_tmp. NSOR = chmz ; 'SINON' ; PRECED.MOT_tmp. NSOR = conti.MOT_tmp ; 'FINSI' ; * 'FIN' SURi; *----------------------------------------------------------------------- * Sauvegarder la table de resultats *----------------------------------------------------------------------- 'SI' WTAB.'ISAUVEGL'; ltpssauv = WTAB.'ISAUVEGA' ; * Sauvegarde : Dernier pas OU toutes les 300 secondes OU si DATE ne marche pas 'OU' ((EPOQ1 '-' WTAB.'EPOQUE') '>EG' 300.D0) 'OU' (EPOQ1 'EGA' 0)) ; 'SAUV' 'MUET' PRECED ; WTAB.'EPOQUE' = EPOQ1 ; * * Fantomisation (option 'ECONOMIQUE'=VRAI de PASAPAS) pour liberer la memoire '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