From 66909250b29505cd99878d27e06c03a539bf6425 Mon Sep 17 00:00:00 2001 From: Dorchies David <david.dorchies@inrae.fr> Date: Fri, 26 Mar 2021 16:54:34 +0100 Subject: [PATCH] feat: Output PaChrVob.txt with Vobj only Fix #9 --- example/PARAMETR/CHOIX.TXT | 3 ++- src/CALCULS3.PAS | 34 +++++++++++++++++++++++++++++++--- src/DECLARA.PAS | 4 +++- src/PARAM.PAS | 1 + src/VGEST.PAS | 2 +- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/example/PARAMETR/CHOIX.TXT b/example/PARAMETR/CHOIX.TXT index 069087f..febc7b3 100644 --- a/example/PARAMETR/CHOIX.TXT +++ b/example/PARAMETR/CHOIX.TXT @@ -24,7 +24,8 @@ ligne 7 : d ligne 8 : fin de période de calcul ligne 9 : code indiquant les sous-programmes à lancer: 0 : tous les sous-programmes - 1 : uniquement la simulation en chronologie inverse + 1 : uniquement la simulation en chronologie inverse (sortie détaillée PaChrono.txt) + 2 : uniquement la simulation en chronologie inverse (sortie PaChrVob.txt) ligne 10 : code pour format d'édition des résultats de volume : 1 pour valeurs absolues en m3, 2 pour valeurs relatives par rapport à Vtot ou somme(Vtot) ligne 11 : code indiquant le mode de répartition du débit à stocker entre les réservoirs: 1=figée; diff --git a/src/CALCULS3.PAS b/src/CALCULS3.PAS index 45d92e4..b792dce 100644 --- a/src/CALCULS3.PAS +++ b/src/CALCULS3.PAS @@ -163,6 +163,27 @@ procedure Ici_CalculDebitsResRef_CalculRepartition(ZChron:boolean;ZDate:longint) end; {fin de Ici_CalculDebitsResRef_CalculRepartition} + +{================================} +{--‚criture des chroniques Vobj--} +{================================} + +procedure Ici_Ecriture_resultats_Vobj(); + +begin + for YRangLac:=1 to YNbLacs do + begin + write(YFicResChrShort,YChaiDate[YRangLac],' '); + if YAbsRel=1 then + write(YFicResChrShort,YVolume[YRangLac]:21,' ') + else + write(YFicResChrShort,(YVolume[YRangLac]/YVtot[YRangLac]):27:20,' '); + end; + writeln(YFicResChrShort); + flush(YFicResChrShort); +end; + + {=====================================================} {--‚criture de r‚sultats d‚taill‚s sur fichier texte--} {=====================================================} @@ -709,7 +730,12 @@ procedure C3_CalculChroniquesVolume; {==INITIALISATIONS AVANT CALCUL DEFINITIF EN CHRONO INVERSE==} reset(YFicDeb); - C1_EcritureEnteteResultDetail(false); + if YChoixSubProg<2 then C1_EcritureEnteteResultDetail(false) + else begin + assign(YFicResChrShort,YRepR+YNomFicResChrShort); + rewrite(YFicResChrShort); + end; + Ici_Init_Stat_Repartition; YVolTot1:=0; gotoxy(Ax,Ay); @@ -786,7 +812,8 @@ procedure C3_CalculChroniquesVolume; YVolumePeutEtr[YRangLac]:=B_mindouble(YVtot[YRangLac],B_maxdouble(0,YVolume[YRangLac]-YQST[YrangLac]*YdT)); {Ecriture des r‚sultats d‚taill‚s sur fichier texte--} - Ici_Ecriture_Resultats_Detailles(false); + if YChoixSubProg<2 then Ici_Ecriture_Resultats_Detailles(false) + else Ici_Ecriture_resultats_Vobj(); {--nouvelles valeurs pour les d‚bits du pas de temps pr‚c‚dent … --} {--l'aval des restitutions (QVVeille) et pour le volume au pas de--} @@ -840,6 +867,7 @@ procedure C3_CalculChroniquesVolume; for Xi:=0 to 2 do close(YFicQXdef[Xi,1]); close(YFicResult2); + close(YFicResChrShort); for Xi:=0 to 2 do if YQXdefmoyGlop[Xi,1]>0 then YQXdefmoyGlop[Xi,1]:=exp(ln(YQXdefmoyGlop[Xi,1]/(YDateFin-YDateDebut+1))/YPuiss); @@ -853,7 +881,7 @@ procedure C3_CalculChroniquesVolume; gotoxy(Ax-36,Ay); clreol; writeln(' : termin‚ '); - if YChoixSubProg=1 then exit; + if YChoixSubProg>0 then exit; write(' calcul de Vges en sens chrono (iter. en cours sur Vges initial : '); A_lecture_xy; diff --git a/src/DECLARA.PAS b/src/DECLARA.PAS index 70776c0..1978bc2 100644 --- a/src/DECLARA.PAS +++ b/src/DECLARA.PAS @@ -48,6 +48,7 @@ CONST {chaines de caract YnomFicReglage= 'REGLAGE.txt'; {nom du fichier des r‚glages pour r‚partition des taches'} YNomFicResChr1= 'Chrono.txt'; {nom de fichier des r‚sultats d‚taill‚s obtenus en sens chronologique --> calcul de Vges} YNomFicResChr2= 'PaChrono.txt';{nom de fichier des r‚sultats d‚taill‚s obtenus en sens chronologique inverse --> calcul de Vobj} + YNomFicResChrShort= 'PaChrVob.txt'; {nom de fichier des Vobj obtenus en sens chronologique inverse} YNomFicResDef = 'QXdef'; YNomFicResult1= 'Qobs-P-R.txt';{nom de fichiers de r‚sultats : chronique des d‚bits observ‚s} YNomFicResult2= 'QSynchro.txt';{nom fichier de d‚bits synchronis‚s (prise en compte des d‚lais de propagation)} @@ -127,6 +128,7 @@ VAR {fichiers} YFicResult2 : text; {fichiers texte pour sortie de r‚sultats} YFicResult3 : text; {fichier texte pour sortie de r‚sultats} YFicResult4 : text; + YFicResChrShort: text; {fichier texte pour sortie r‚sultat chronique Vobj} YFicTest : text; YFicQXdef : array[0..3,1..2] of YTypFOD;{pour QXdef0 … QXdef?, et pour sens pas chrono et sens chrono} @@ -182,7 +184,7 @@ VAR {entiers} YAnFinV : integer; YAnPremier : integer; YChoix : integer; {0 pour saisie clavier et autre pour lecture sur fichier (options de calcul)} - YChoixSubProg : integer; {0 pour tout le programme, 1 pour backward simulation uniquement} + YChoixSubProg : integer; {0 pour tout le programme, 1 et 2 pour backward simulation uniquement} YCode : integer; {code de bonne traduction de chaŒne en num‚rique} YComplet : integer; {1 si d‚bit aval et d‚bits d‚cal‚s aux prises et restit. existent, 0 sinon} YCompteur : integer; {rang du calcul} diff --git a/src/PARAM.PAS b/src/PARAM.PAS index 14b9568..446ffa3 100644 --- a/src/PARAM.PAS +++ b/src/PARAM.PAS @@ -55,6 +55,7 @@ procedure P_ChoixEntreeOptions; begin + YChoixSubProg:=0; assign(YFitext,YNomFicFin); {$i-} erase(YFitext); diff --git a/src/VGEST.PAS b/src/VGEST.PAS index 145e4db..94cfbc6 100644 --- a/src/VGEST.PAS +++ b/src/VGEST.PAS @@ -21,6 +21,7 @@ procedure Ici_Effacement; assign(YFitext,YRepR+YNomFicResChr1); rewrite(YFitext); close(YFitext); assign(YFitext,YRepR+YNomFicResChr2); rewrite(YFitext); close(YFitext); assign(YFitext,YRepR+YNomFicQuant); rewrite(YFitext); close(YFitext); + assign(YFitext,YRepR+YNomFicResChrShort); rewrite(YFitext); close(YFitext); for YRangLac:=1 to YNmaxLacs do begin str(YRanglac,YNum); @@ -626,7 +627,6 @@ BEGIN with YDeb2 do BEGIN - YJJ_MM_AAAA[0]:=B_Date(YDateEnJour[0]); val(copy(YJJ_MM_AAAA[0],4,2),YMois[0],YCode); val(copy(YJJ_MM_AAAA[0],1,2),YJour[0],YCode); -- GitLab