From 2f829b6ef276a0c864da619eb1157fe1b3480d5f Mon Sep 17 00:00:00 2001 From: Dorchies David <david.dorchies@irstea.fr> Date: Fri, 5 Jun 2020 11:13:39 +0200 Subject: [PATCH] feat: v6 2015/05/07 --- example/CHOIX.TXT | 2 + example/PARAMETR/{ => BARRAGES/1}/AUBE.1 | 2 +- example/PARAMETR/{ => BARRAGES/1}/MARNE.1 | 2 +- example/PARAMETR/{ => BARRAGES/1}/SEINE.1 | 2 +- example/PARAMETR/{ => BARRAGES/1}/YONNE.1 | 2 +- example/PARAMETR/BARRAGES/1/version.txt | 1 + example/PARAMETR/BARRAGES/2/AUBE.1 | 45 ++++ example/PARAMETR/BARRAGES/2/MARNE.1 | 44 ++++ example/PARAMETR/BARRAGES/2/SEINE.1 | 44 ++++ example/PARAMETR/BARRAGES/2/YONNE.1 | 47 +++++ example/PARAMETR/BARRAGES/2/version.txt | 1 + example/PARAMETR/BARRAGES/3/AUBE.1 | 44 ++++ example/PARAMETR/BARRAGES/3/MARNE.1 | 49 +++++ example/PARAMETR/BARRAGES/3/SEINE.1 | 47 +++++ example/PARAMETR/BARRAGES/3/YONNE.1 | 48 +++++ example/PARAMETR/BARRAGES/3/version.txt | 1 + example/PARAMETR/BARRAGES/4/AUBE.1 | 44 ++++ example/PARAMETR/BARRAGES/4/MARNE.1 | 43 ++++ example/PARAMETR/BARRAGES/4/SEINE.1 | 43 ++++ example/PARAMETR/BARRAGES/4/YONNE.1 | 47 +++++ example/PARAMETR/BARRAGES/4/version.txt | 1 + example/PARAMETR/{ => RESEAUX/1}/AUBE.2 | 2 +- example/PARAMETR/{ => RESEAUX/1}/MARNE.2 | 2 +- example/PARAMETR/{ => RESEAUX/1}/SEINE.2 | 2 +- example/PARAMETR/{ => RESEAUX/1}/YONNE.2 | 2 +- example/PARAMETR/RESEAUX/1/version.txt | 1 + example/PARAMETR/RETOUR.txt | 1 - example/PARAMETR/R_AUB | 13 ++ example/PARAMETR/R_MAR | 13 ++ example/PARAMETR/R_SEI | 13 ++ example/PARAMETR/R_YON | 13 ++ example/PARAMETR/readme.txt | 1 - src/CALCULS1.PAS | 4 +- src/DECLARA.PAS | 7 + src/ECRAN.PAS | 15 +- src/INTERFAS.PAS | 54 +++-- src/PARAM.PAS | 237 ++++++++++++++++++---- src/UTILIT.PAS | 1 - src/VGEST.PAS | 9 +- 39 files changed, 880 insertions(+), 69 deletions(-) rename example/PARAMETR/{ => BARRAGES/1}/AUBE.1 (90%) rename example/PARAMETR/{ => BARRAGES/1}/MARNE.1 (91%) rename example/PARAMETR/{ => BARRAGES/1}/SEINE.1 (91%) rename example/PARAMETR/{ => BARRAGES/1}/YONNE.1 (92%) create mode 100644 example/PARAMETR/BARRAGES/1/version.txt create mode 100644 example/PARAMETR/BARRAGES/2/AUBE.1 create mode 100644 example/PARAMETR/BARRAGES/2/MARNE.1 create mode 100644 example/PARAMETR/BARRAGES/2/SEINE.1 create mode 100644 example/PARAMETR/BARRAGES/2/YONNE.1 create mode 100644 example/PARAMETR/BARRAGES/2/version.txt create mode 100644 example/PARAMETR/BARRAGES/3/AUBE.1 create mode 100644 example/PARAMETR/BARRAGES/3/MARNE.1 create mode 100644 example/PARAMETR/BARRAGES/3/SEINE.1 create mode 100644 example/PARAMETR/BARRAGES/3/YONNE.1 create mode 100644 example/PARAMETR/BARRAGES/3/version.txt create mode 100644 example/PARAMETR/BARRAGES/4/AUBE.1 create mode 100644 example/PARAMETR/BARRAGES/4/MARNE.1 create mode 100644 example/PARAMETR/BARRAGES/4/SEINE.1 create mode 100644 example/PARAMETR/BARRAGES/4/YONNE.1 create mode 100644 example/PARAMETR/BARRAGES/4/version.txt rename example/PARAMETR/{ => RESEAUX/1}/AUBE.2 (93%) rename example/PARAMETR/{ => RESEAUX/1}/MARNE.2 (94%) rename example/PARAMETR/{ => RESEAUX/1}/SEINE.2 (97%) rename example/PARAMETR/{ => RESEAUX/1}/YONNE.2 (92%) create mode 100644 example/PARAMETR/RESEAUX/1/version.txt create mode 100644 example/PARAMETR/R_AUB create mode 100644 example/PARAMETR/R_MAR create mode 100644 example/PARAMETR/R_SEI create mode 100644 example/PARAMETR/R_YON delete mode 100644 example/PARAMETR/readme.txt diff --git a/example/CHOIX.TXT b/example/CHOIX.TXT index 2c67393..4e6882a 100644 --- a/example/CHOIX.TXT +++ b/example/CHOIX.TXT @@ -1,4 +1,6 @@ PARIS_05 +2 +1 Q_OBS_OBS.txt BATCH 1 diff --git a/example/PARAMETR/AUBE.1 b/example/PARAMETR/BARRAGES/1/AUBE.1 similarity index 90% rename from example/PARAMETR/AUBE.1 rename to example/PARAMETR/BARRAGES/1/AUBE.1 index a6b3361..01ac707 100644 --- a/example/PARAMETR/AUBE.1 +++ b/example/PARAMETR/BARRAGES/1/AUBE.1 @@ -1,4 +1,4 @@ -paramètres des contraintes et consignes du réservoir Aube (scénario : réalité d'après rapport Florine Dehay, ENGEES 2012) +contraintes et consignes du réservoir Aube (règles actuelles d'après F.Dehay, ENGEES 2012). Débits réservé et de référence considérés (chacun de façon identique) à la prise et à la restitution AUBE 0 Qemin (m3/s) 1.35E+02 Qemax (m3/s) diff --git a/example/PARAMETR/MARNE.1 b/example/PARAMETR/BARRAGES/1/MARNE.1 similarity index 91% rename from example/PARAMETR/MARNE.1 rename to example/PARAMETR/BARRAGES/1/MARNE.1 index 29f64a8..baecc66 100644 --- a/example/PARAMETR/MARNE.1 +++ b/example/PARAMETR/BARRAGES/1/MARNE.1 @@ -1,4 +1,4 @@ -paramètres des contraintes et consignes du réservoir Marne (scénario : réalité d'après rapport Florine Dehay, ENGEES 2012) +contraintes et consignes du réservoir Marne (règles actuelles d'après F.Dehay, ENGEES 2012). Débits réservé et de référence considérés (de façon identique pour le premier) à la prise et à la restitution MARNE 0 Qemin (m3/s) 4.08E+02 Qemax (m3/s) diff --git a/example/PARAMETR/SEINE.1 b/example/PARAMETR/BARRAGES/1/SEINE.1 similarity index 91% rename from example/PARAMETR/SEINE.1 rename to example/PARAMETR/BARRAGES/1/SEINE.1 index d2e83e6..29e7197 100644 --- a/example/PARAMETR/SEINE.1 +++ b/example/PARAMETR/BARRAGES/1/SEINE.1 @@ -1,4 +1,4 @@ -paramètres des contraintes et consignes du réservoir Seine (scénario : réalité d'après rapport Florine Dehay, ENGEES 2012) +contraintes et consignes du réservoir Seine (règles actuelles d'après F.Dehay, ENGEES 2012). Débits réservé et de référence considérés (chacun de façon identique) à la prise et à la restitution SEINE 0 Qemin (m3/s) 2.00E+02 Qemax (m3/s) diff --git a/example/PARAMETR/YONNE.1 b/example/PARAMETR/BARRAGES/1/YONNE.1 similarity index 92% rename from example/PARAMETR/YONNE.1 rename to example/PARAMETR/BARRAGES/1/YONNE.1 index 0f6a7a4..bdfab9b 100644 --- a/example/PARAMETR/YONNE.1 +++ b/example/PARAMETR/BARRAGES/1/YONNE.1 @@ -1,4 +1,4 @@ -paramètres des contraintes et consignes du réservoir Yonne (scénario : réalité d'après rapport Florine Dehay, ENGEES 2012) +contraintes et consignes du réservoir Yonne (règles actuelles d'après F.Dehay, ENGEES 2012). Débits réservés et de référence considérés à la restitution et nuls à la prise YONNE 0 Qemin (m3/s) 1.00E+20 Qemax (m3/s) diff --git a/example/PARAMETR/BARRAGES/1/version.txt b/example/PARAMETR/BARRAGES/1/version.txt new file mode 100644 index 0000000..8ff5802 --- /dev/null +++ b/example/PARAMETR/BARRAGES/1/version.txt @@ -0,0 +1 @@ +consignes 2012, Qres et Qref aux prises et restitutions \ No newline at end of file diff --git a/example/PARAMETR/BARRAGES/2/AUBE.1 b/example/PARAMETR/BARRAGES/2/AUBE.1 new file mode 100644 index 0000000..9c080ca --- /dev/null +++ b/example/PARAMETR/BARRAGES/2/AUBE.1 @@ -0,0 +1,45 @@ +Contraintes et consignes du réservoir Aube (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré (de façon identique) à la prise et à la restitution. Débit de référence non considéré. +AUBE +0 Qemin (m3/s) +1.35E+02 Qemax (m3/s) +0 Qsmin (m3/s) +35 Qsmax (m3/s) +181.2 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 2 +3 8 2 6 3 4 4 +0 3 QVres +1 91 305 +1 2 1 +1 -1 2 +3 8 2 6 3 4 4 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + + diff --git a/example/PARAMETR/BARRAGES/2/MARNE.1 b/example/PARAMETR/BARRAGES/2/MARNE.1 new file mode 100644 index 0000000..7ba972e --- /dev/null +++ b/example/PARAMETR/BARRAGES/2/MARNE.1 @@ -0,0 +1,44 @@ +Contraintes et consignes du réservoir Marne (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré (de façon identique) à la prise et à la restitution. Débit de référence non considéré. +MARNE +0 Qemin (m3/s) +4.08E+02 Qemax (m3/s) +0 Qsmin (m3/s) +50 Qsmax (m3/s) +354.5 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 7 +1 -1 11 +0 3 QVres +1 91 305 +1 2 1 +1 -1 7 +1 -1 11 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/2/SEINE.1 b/example/PARAMETR/BARRAGES/2/SEINE.1 new file mode 100644 index 0000000..9e29b8a --- /dev/null +++ b/example/PARAMETR/BARRAGES/2/SEINE.1 @@ -0,0 +1,44 @@ +Contraintes et consignes du réservoir Seine (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré (de façon identique) à la prise et à la restitution. Débit de référence non considéré. +SEINE +0 Qemin (m3/s) +2.00E+02 Qemax (m3/s) +0.8 Qsmin (m3/s) +35 Qsmax (m3/s) +212.9 Vtot (million de m3) +0 4 QMres +1 91 274 335 +1 2 1 2 +1 -1 3 +3 10 3 8 4 6 5 +0 4 QVres +1 91 274 335 +1 2 1 2 +1 -1 3 +3 10 3 8 4 6 5 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/2/YONNE.1 b/example/PARAMETR/BARRAGES/2/YONNE.1 new file mode 100644 index 0000000..11eed41 --- /dev/null +++ b/example/PARAMETR/BARRAGES/2/YONNE.1 @@ -0,0 +1,47 @@ +Contraintes et consignes du réservoir Yonne (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré à la restitution et nul à la prise. Débit de référence non considéré à la restitution et nul à la prise. +YONNE +0 Qemin (m3/s) +1.00E+20 Qemax (m3/s) +0 Qsmin (m3/s) +16 Qsmax (m3/s) +74.37 Vtot (million de m3) +0 1 QMres +1 +1 +1 -1 0 +1 10 2 QVres +1 60 91 121 152 182 244 274 305 335 +1 2 3 4 5 6 5 3 2 1 +1 -1 0.6 +1 -1 1.2 +1 -1 1.7 +1 -1 1.8 +1 -1 1.9 +1 -1 2 +0 1 QMref +1 +1 +1 -1 0 +2 1 2 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/2/version.txt b/example/PARAMETR/BARRAGES/2/version.txt new file mode 100644 index 0000000..1c80eab --- /dev/null +++ b/example/PARAMETR/BARRAGES/2/version.txt @@ -0,0 +1 @@ +Consignes 2012, Qres aux prises et restitutions, pas de Qref \ No newline at end of file diff --git a/example/PARAMETR/BARRAGES/3/AUBE.1 b/example/PARAMETR/BARRAGES/3/AUBE.1 new file mode 100644 index 0000000..bd64ddb --- /dev/null +++ b/example/PARAMETR/BARRAGES/3/AUBE.1 @@ -0,0 +1,44 @@ +contraintes et consignes du réservoir Aube (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence considéré de façon identique à la prise et à la restitution. +AUBE +0 Qemin (m3/s) +1.35E+02 Qemax (m3/s) +0 Qsmin (m3/s) +35 Qsmax (m3/s) +181.2 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 2 +3 8 2 6 3 4 4 +0 1 QVres +1 +1 +1 -1 0 +0 1 QMref +1 +1 +1 -1 130 +0 1 QVref +1 +1 +1 -1 130 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + + diff --git a/example/PARAMETR/BARRAGES/3/MARNE.1 b/example/PARAMETR/BARRAGES/3/MARNE.1 new file mode 100644 index 0000000..67dd10c --- /dev/null +++ b/example/PARAMETR/BARRAGES/3/MARNE.1 @@ -0,0 +1,49 @@ +contraintes et consignes du réservoir Marne (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence considéré à la prise et à la restitution. +MARNE +0 Qemin (m3/s) +4.08E+02 Qemax (m3/s) +0 Qsmin (m3/s) +50 Qsmax (m3/s) +354.5 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 7 +1 -1 11 +0 1 QVres +1 +1 +1 -1 0 +0 6 QMref +1 91 121 182 274 305 +1 2 3 4 3 1 +1 -1 160 +1 -1 140 +1 -1 120 +1 -1 90 +0 5 QVref +1 182 274 289 305 +1 2 3 4 1 +1 -1 140 +1 -1 75 +1 -1 100 +1 -1 120 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/3/SEINE.1 b/example/PARAMETR/BARRAGES/3/SEINE.1 new file mode 100644 index 0000000..9c2ac47 --- /dev/null +++ b/example/PARAMETR/BARRAGES/3/SEINE.1 @@ -0,0 +1,47 @@ +contraintes et consignes du réservoir Seine (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence considéré de façon identique à la prise et à la restitution. +SEINE +0 Qemin (m3/s) +2.00E+02 Qemax (m3/s) +0.8 Qsmin (m3/s) +35 Qsmax (m3/s) +212.9 Vtot (million de m3) +0 4 QMres +1 91 274 335 +1 2 1 2 +1 -1 3 +3 10 3 8 4 6 5 +0 1 QVres +1 +1 +1 -1 0 +0 4 QMref +1 91 182 305 +1 2 3 1 +1 -1 120 +1 -1 90 +1 -1 40 +0 4 QVref +1 91 182 305 +1 2 3 1 +1 -1 120 +1 -1 90 +1 -1 40 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/3/YONNE.1 b/example/PARAMETR/BARRAGES/3/YONNE.1 new file mode 100644 index 0000000..f720aab --- /dev/null +++ b/example/PARAMETR/BARRAGES/3/YONNE.1 @@ -0,0 +1,48 @@ +Contraintes et consignes du réservoir Yonne (règles actuelles d'après F.Dehay, ENGEES 2012). Débits réservés et de référence considérés à la restitution et nuls à la prise +YONNE +0 Qemin (m3/s) +1.00E+20 Qemax (m3/s) +0 Qsmin (m3/s) +16 Qsmax (m3/s) +74.37 Vtot (million de m3) +0 1 QMres +1 +1 +1 -1 0 +1 10 2 QVres +1 60 91 121 152 182 244 274 305 335 +1 2 3 4 5 6 5 3 2 1 +1 -1 0.6 +1 -1 1.2 +1 -1 1.7 +1 -1 1.8 +1 -1 1.9 +1 -1 2 +0 1 QMref +1 +1 +1 -1 0 +2 3 2 QVref +1 91 305 +1 2 1 +1 -1 14 +1 -1 12 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/3/version.txt b/example/PARAMETR/BARRAGES/3/version.txt new file mode 100644 index 0000000..d0e776a --- /dev/null +++ b/example/PARAMETR/BARRAGES/3/version.txt @@ -0,0 +1 @@ +consignes 2012, Qres aux prises, Qref aux prises et restitutions \ No newline at end of file diff --git a/example/PARAMETR/BARRAGES/4/AUBE.1 b/example/PARAMETR/BARRAGES/4/AUBE.1 new file mode 100644 index 0000000..50b9a2a --- /dev/null +++ b/example/PARAMETR/BARRAGES/4/AUBE.1 @@ -0,0 +1,44 @@ +Contraintes et consignes du réservoir Aube (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence non considéré. +AUBE +0 Qemin (m3/s) +1.35E+02 Qemax (m3/s) +0 Qsmin (m3/s) +35 Qsmax (m3/s) +181.2 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 2 +3 8 2 6 3 4 4 +0 1 QVres +1 +1 +1 -1 0 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + + diff --git a/example/PARAMETR/BARRAGES/4/MARNE.1 b/example/PARAMETR/BARRAGES/4/MARNE.1 new file mode 100644 index 0000000..0495f1b --- /dev/null +++ b/example/PARAMETR/BARRAGES/4/MARNE.1 @@ -0,0 +1,43 @@ +Contraintes et consignes du réservoir Marne (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence non considéré. +MARNE +0 Qemin (m3/s) +4.08E+02 Qemax (m3/s) +0 Qsmin (m3/s) +50 Qsmax (m3/s) +354.5 Vtot (million de m3) +0 3 QMres +1 91 305 +1 2 1 +1 -1 7 +1 -1 11 +0 1 QVres +1 +1 +1 -1 0 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/4/SEINE.1 b/example/PARAMETR/BARRAGES/4/SEINE.1 new file mode 100644 index 0000000..ba55c9b --- /dev/null +++ b/example/PARAMETR/BARRAGES/4/SEINE.1 @@ -0,0 +1,43 @@ +Contraintes et consignes du réservoir Seine (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré seulement à la prise et débit de référence non considéré. +SEINE +0 Qemin (m3/s) +2.00E+02 Qemax (m3/s) +0.8 Qsmin (m3/s) +35 Qsmax (m3/s) +212.9 Vtot (million de m3) +0 4 QMres +1 91 274 335 +1 2 1 2 +1 -1 3 +3 10 3 8 4 6 5 +0 1 QVres +1 +1 +1 -1 0 +0 1 QMref +1 +1 +1 -1 9999 +0 1 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/4/YONNE.1 b/example/PARAMETR/BARRAGES/4/YONNE.1 new file mode 100644 index 0000000..bd12cd2 --- /dev/null +++ b/example/PARAMETR/BARRAGES/4/YONNE.1 @@ -0,0 +1,47 @@ +contraintes et consignes du réservoir Yonne (règles actuelles d'après F.Dehay, ENGEES 2012). Débit réservé considéré à la restitution et nul à la prise. Débit de référence non considéré à la restitution et nul à la prise. +YONNE +0 Qemin (m3/s) +1.00E+20 Qemax (m3/s) +0 Qsmin (m3/s) +16 Qsmax (m3/s) +74.37 Vtot (million de m3) +0 1 QMres +1 +1 +1 -1 0 +1 10 2 QVres +1 60 91 121 152 182 244 274 305 335 +1 2 3 4 5 6 5 3 2 1 +1 -1 0.6 +1 -1 1.2 +1 -1 1.7 +1 -1 1.8 +1 -1 1.9 +1 -1 2 +0 1 QMref +1 +1 +1 -1 0 +2 1 2 QVref +1 +1 +1 -1 9999 + +FORMAT DU FICHIER : +ligne 0 : en-tête obligatoire +ligne 1 : nom du réservoir (chaîne de 8 caractères) +lignes 2 à 6 : Qemin, Qemax, Qsmin, Qsmax, V, +4 groupes de lignes (pour QMres, QVres, QMref et QVref respectivement) composé chacun de : + ligne 1 : Type (entre 0 et 2), Nombre N de dates pivot (entre 1 et 10) et Borne (si Type <>0). Le débit vaut alors Q défini dans les lignes suivantes si Type=0, max(Q,QV(t-1)-borne) si Type=1 et min(Q,QV(t-1)+borne) si Type = 2 + ligne 2 : N dates pivot entières croissantes (quantièmes de changement de valeurs de Q, inférieurs à 366) + ligne 3 : N valeurs entières comprises entre 1 et M(<=N), correspondant aux catégories de valeurs de Q + lignes 4 à 3+M : nombre X (entier entre 1 et 5), puis X couples de valeurs Ai (décroissant),Bi interprétés comme suit : si QMnat>A1 alors Q=B1, sinon, si QMnat>A2 alors Q=B2, sinon…,si QMnat>Ax alors Q=Bx, sinon Q=QMnat +notations : + Qemin et Qemax : débitance min et max du canal de prise + Qsmin et Qsmax : débitance min et max du canal de restitution + QMres et QMref : débit réservé et débit de référence, juste à l'aval de la prise + QVres et QVref : débit réservé et débit de référence juste à l'aval de la restitution + Vtot : volume total du réservoir + QMnat : débit observé juste à l'amont de la prise + QV : débit observé juste à l'aval de la restitution + diff --git a/example/PARAMETR/BARRAGES/4/version.txt b/example/PARAMETR/BARRAGES/4/version.txt new file mode 100644 index 0000000..4d1eb4b --- /dev/null +++ b/example/PARAMETR/BARRAGES/4/version.txt @@ -0,0 +1 @@ +Consignes 2012, Qres aux prises, pas de Qref \ No newline at end of file diff --git a/example/PARAMETR/AUBE.2 b/example/PARAMETR/RESEAUX/1/AUBE.2 similarity index 93% rename from example/PARAMETR/AUBE.2 rename to example/PARAMETR/RESEAUX/1/AUBE.2 index ba2257e..1394389 100644 --- a/example/PARAMETR/AUBE.2 +++ b/example/PARAMETR/RESEAUX/1/AUBE.2 @@ -1,4 +1,4 @@ -Paramètres décrivant le réseau local de stations hydrométriques du réservoir Aube (pour le calcul des débits naturels à la prise et à la restitution) +Paramètres décrivant le réseau local de stations hydrométriques du réservoir Aube (pour le calcul des débits naturels à la prise et à la restitution), version 2013 AUBE 1 1 Na et Ni ARCIS_24 identifiant aval diff --git a/example/PARAMETR/MARNE.2 b/example/PARAMETR/RESEAUX/1/MARNE.2 similarity index 94% rename from example/PARAMETR/MARNE.2 rename to example/PARAMETR/RESEAUX/1/MARNE.2 index 2f39049..81d7651 100644 --- a/example/PARAMETR/MARNE.2 +++ b/example/PARAMETR/RESEAUX/1/MARNE.2 @@ -1,4 +1,4 @@ -Paramètres décrivant le réseau local de stations hydrométriques du réservoir Marne (pour le calcul des débits naturels à la prise et à la restitution) +Paramètres décrivant le réseau local de stations hydrométriques du réservoir Marne (pour le calcul des débits naturels à la prise et à la restitution), version 2013 MARNE 2 1 Na et Ni CHALO_21 identifiant aval diff --git a/example/PARAMETR/SEINE.2 b/example/PARAMETR/RESEAUX/1/SEINE.2 similarity index 97% rename from example/PARAMETR/SEINE.2 rename to example/PARAMETR/RESEAUX/1/SEINE.2 index 4efeb07..7058a51 100644 --- a/example/PARAMETR/SEINE.2 +++ b/example/PARAMETR/RESEAUX/1/SEINE.2 @@ -1,4 +1,4 @@ -Paramètres décrivant le réseau local de stations hydrométriques du réservoir Seine (pour le calcul des débits naturels à la prise et à la restitution) +Paramètres décrivant le réseau local de stations hydrométriques du réservoir Seine (pour le calcul des débits naturels à la prise et à la restitution), version 2013 SEINE 1 0 Na et Ni MERY-_22 identifiant aval diff --git a/example/PARAMETR/YONNE.2 b/example/PARAMETR/RESEAUX/1/YONNE.2 similarity index 92% rename from example/PARAMETR/YONNE.2 rename to example/PARAMETR/RESEAUX/1/YONNE.2 index 72915e0..b088b29 100644 --- a/example/PARAMETR/YONNE.2 +++ b/example/PARAMETR/RESEAUX/1/YONNE.2 @@ -1,4 +1,4 @@ -Paramètres décrivant le réseau local de stations hydrométriques du réservoir Yonne (pour le calcul des débits naturels à la prise et à la restitution) +Paramètres décrivant le réseau local de stations hydrométriques du réservoir Yonne (pour le calcul des débits naturels à la prise et à la restitution), version 2013 YONNE 0 0 Na et Ni CHAUM_07 identifiant aval diff --git a/example/PARAMETR/RESEAUX/1/version.txt b/example/PARAMETR/RESEAUX/1/version.txt new file mode 100644 index 0000000..a530f65 --- /dev/null +++ b/example/PARAMETR/RESEAUX/1/version.txt @@ -0,0 +1 @@ +version de 2013 \ No newline at end of file diff --git a/example/PARAMETR/RETOUR.txt b/example/PARAMETR/RETOUR.txt index ef6e041..37b9deb 100644 --- a/example/PARAMETR/RETOUR.txt +++ b/example/PARAMETR/RETOUR.txt @@ -12,4 +12,3 @@ Temps de retour souhaites pour l'analyse statistique : 25.000000 50.000000 100.000000 -150.000000 diff --git a/example/PARAMETR/R_AUB b/example/PARAMETR/R_AUB new file mode 100644 index 0000000..706e353 --- /dev/null +++ b/example/PARAMETR/R_AUB @@ -0,0 +1,13 @@ +Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation +R_AUB +1 +AUBE +0 + +FORMAT DU FICHIER : +1ere ligne : en-tête obligatoire +2eme ligne : identifiant de station aval du système (chaîne de 8 caractères) +3eme ligne : nombre K de réservoirs +K noms de réservoir (1 par ligne) +K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure) + diff --git a/example/PARAMETR/R_MAR b/example/PARAMETR/R_MAR new file mode 100644 index 0000000..2d08400 --- /dev/null +++ b/example/PARAMETR/R_MAR @@ -0,0 +1,13 @@ +Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation +R_MAR +1 +MARNE +0 + +FORMAT DU FICHIER : +1ere ligne : en-tête obligatoire +2eme ligne : identifiant de station aval du système (chaîne de 8 caractères) +3eme ligne : nombre K de réservoirs +K noms de réservoir (1 par ligne) +K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure) + diff --git a/example/PARAMETR/R_SEI b/example/PARAMETR/R_SEI new file mode 100644 index 0000000..3900661 --- /dev/null +++ b/example/PARAMETR/R_SEI @@ -0,0 +1,13 @@ +Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation +R_SEI +1 +SEINE +0 + +FORMAT DU FICHIER : +1ere ligne : en-tête obligatoire +2eme ligne : identifiant de station aval du système (chaîne de 8 caractères) +3eme ligne : nombre K de réservoirs +K noms de réservoir (1 par ligne) +K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure) + diff --git a/example/PARAMETR/R_YON b/example/PARAMETR/R_YON new file mode 100644 index 0000000..ff6e84d --- /dev/null +++ b/example/PARAMETR/R_YON @@ -0,0 +1,13 @@ +Paramètres décrivant la station objectif, les réservoirs situés à l'amont et les temps de propagation +R_YON +1 +YONNE +0 + +FORMAT DU FICHIER : +1ere ligne : en-tête obligatoire +2eme ligne : identifiant de station aval du système (chaîne de 8 caractères) +3eme ligne : nombre K de réservoirs +K noms de réservoir (1 par ligne) +K temps de propagation D entre restitution de réservoir et station aval (1 par ligne, en heure) + diff --git a/example/PARAMETR/readme.txt b/example/PARAMETR/readme.txt deleted file mode 100644 index f6ba816..0000000 --- a/example/PARAMETR/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Règles de gestion actuelle avec les consignes locales (débits de référence aux prises et restitutions). \ No newline at end of file diff --git a/src/CALCULS1.PAS b/src/CALCULS1.PAS index 690297d..abf78e1 100644 --- a/src/CALCULS1.PAS +++ b/src/CALCULS1.PAS @@ -47,7 +47,7 @@ procedure LectureObjectif; YNbQobj:=0; repeat if YSaisie then - AReponse(YNomFicObjectif,30); + AReponse(YNomFicObjectif,29); {$i-} assign(XFitext,YRepO+YNomFicObjectif); reset(XFiText); @@ -292,7 +292,7 @@ procedure TesteDelai(ZT:double); write('nom du fichier des d‚bits naturels ? '); Alecture_xy; repeat - AReponse(YNomFicDebit,43); + AReponse(YNomFicDebit,42); assign(YFitext,YRepD+YNomFicDebit); reset(YFiText); XCode:=ioresult; diff --git a/src/DECLARA.PAS b/src/DECLARA.PAS index 78cdf77..d476a23 100644 --- a/src/DECLARA.PAS +++ b/src/DECLARA.PAS @@ -9,6 +9,7 @@ const YNmaxLacs = 4; {nombre maximal de lacs autoris‚} YNmaxStat = 30; YnbmaxIter = 100; + YNbmaxVersion = 25; {nombre max de versions de paramŠtres barrages et r‚seaux} YTouComNul : double = 1e-10; YSeuilConv = 1e-10; {seuil de convergence} @@ -68,10 +69,12 @@ const 'identifiant amont','identifiant intermediaire','PKV','PKM', 'PKamont','TV','TM','Tamont','Tintermediaire','Saval','SV', 'SM','Samont','Sintermediaire'); + YRepB ='BARRAGES\'; YRepR ='RESULTAT\'; YRepD ='DONNEES\'; YRepO ='OBJECTIF\'; YRepP ='PARAMETR\'; + YRepS ='RESEAUX\'; YRepT ='TEMPORAI.RE\'; YSeparateur : set of byte = [0..39,42,44,58,59,123..255]; YSeuilRconv = 0.001; {seuil relatif de convergence dans le calcul … rebours, sur volume lac} @@ -99,6 +102,8 @@ var YNomFicDebit : string; {nom du fichier des d‚bits naturels} YNomFicObjectif: string; {nom du fichier des d‚bits objectifs} + YNomRepBarrage : string; {nom du r‚pertoire (chemin complet) des fichiers de rŠgles barrage} + YNomRepReseau : string; {nom du r‚pertoire (chemin complet) des fichiers de r‚seaux associ‚s aux barrages} YExtension : string[2]; YNum : string[2]; @@ -148,6 +153,8 @@ var YQuant : integer; YRangDelai : integer; {rang de d‚bit dans tableau YQ} YRangLac : integer; {rang du lac} + YRangPBarrage : integer; {rang et nom du sous-r‚pertoire contenant une version de paramŠtres r‚servoirs} + YRangPReseau : integer; {rang et nom du sous-r‚pertoire contenant une version de paramŠtres r‚seau} YrangStatAval : integer; {rang de station aval syst. dans fichier des d‚bits de base} YSuccesRepart : integer; {code objectif r‚partition : -1= non atteint, 0=non converg‚, 1=atteint, 2=d‚pass‚} YTest : integer; {1 si croissance de pr‚lŠvement total en fonction de QS0, 0 sinon} diff --git a/src/ECRAN.PAS b/src/ECRAN.PAS index 0409007..c03f0af 100644 --- a/src/ECRAN.PAS +++ b/src/ECRAN.PAS @@ -14,7 +14,7 @@ procedure YSaisie7; procedure Ysaisie8; procedure YSaisie9; procedure YSaisie10; - +procedure YSaisie11; IMPLEMENTATION @@ -28,6 +28,7 @@ IMPLEMENTATION procedure Ysaisie2; begin aquest; + writeln; write('type du d‚bit objectif : minimal ('); ASulad; write(0); @@ -107,6 +108,18 @@ IMPLEMENTATION ATapez; end; + procedure Ysaisie11; + begin + Awindow1; + clrscr; + ATitre; + writeln; + writeln; + writeln('ECHEC DU PROGRAMME'); + Atapez; + end; + + BEGIN diff --git a/src/INTERFAS.PAS b/src/INTERFAS.PAS index a0359bc..6de1777 100644 --- a/src/INTERFAS.PAS +++ b/src/INTERFAS.PAS @@ -9,7 +9,7 @@ USES crt, Utilit; const ANbTouchSpecial = 3; - + ANomFicTailleFenetre='TaillFen.txt'; type ATypTouch = array[1..ANbTouchSpecial] of boolean; @@ -28,11 +28,13 @@ var ATouchSpecial : ATypTouch; {1: ‚chap; 2:suppr; 3:arriŠre} ARangTouchSpecial:integer; ALignemax : integer; + ALignmaxEcran : integer; Ax : integer; Ay : integer; ADelai : integer; AMotDepasse : AChai4; ADestin : integer; {1:impression, 2:fichier, 3:‚cran} + Alst : text; procedure ASautScr(Zi:integer); procedure ASouligne(Zn:integer); @@ -138,6 +140,7 @@ procedure AAvorte; procedure ATapez; var XCh:char; begin + while keypressed do Xch:=readkey; ASautscr(2);write('tapez une touche'); Abruit; repeat until keypressed; while keypressed do XCh:=readkey; end; @@ -378,7 +381,7 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa if not XBon then begin AAlerte; - if wherey=25 then Ay:=23; + if wherey=ALignemax then Ay:=ALignemax-1; end; until XBon {$i+} @@ -387,37 +390,37 @@ procedure ASaisidate(var Zjour,Zmois,Zan:integer; var ZDada:string; ZDadamin,ZDa {----------------------------------------------------------------------------} procedure AWindow(C1,L1,C2,L2:integer); begin; window(C1,L1,C2,L2); Alignemax:=L2-L1+1; end; -procedure Awindow1; begin ; window(1,1,80,25); ALignemax:=25; end; +procedure Awindow1; begin ; window(1,1,80,ALignmaxEcran); ALignemax:=ALignmaxEcran; end; -procedure Awindow15;begin ; window(1,2,80,25); ALignemax:=24; end; +procedure Awindow15;begin ; window(1,2,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-1; end; -procedure Awindow2; begin ; window(1,3,80,25); ALignemax:=23; end; +procedure Awindow2; begin ; window(1,3,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-2; end; -procedure Awindow25;begin ; window(1,4,80,25); ALignemax:=22; end; +procedure Awindow25;begin ; window(1,4,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-3; end; -procedure Awindow3; begin ; window(1,5,80,25); ALignemax:=21; end; +procedure Awindow3; begin ; window(1,5,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-4; end; -procedure Awindow35;begin ; window(1,6,80,25); ALignemax:=20; end; +procedure Awindow35;begin ; window(1,6,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-5; end; -procedure Awindow355; begin ; window(1,7,80,25); ALignemax:=19; end; +procedure Awindow355; begin ; window(1,7,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-6; end; -procedure Awindow4; begin ; window(1,8,80,25); ALignemax:=18; end; +procedure Awindow4; begin ; window(1,8,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-7; end; -procedure Awindow45;begin ; window(1,10,80,25); ALigneMax:=16; end; +procedure Awindow45;begin ; window(1,10,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-9; end; -procedure Awindow451;begin ; window(1,11,80,25); ALigneMax:=15; end; +procedure Awindow451;begin ; window(1,11,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-10; end; -procedure Awindow455;begin ; window(1,12,80,25); ALigneMax:=14; end; +procedure Awindow455;begin ; window(1,12,80,ALignmaxEcran); ALigneMax:=ALignmaxEcran-11; end; -procedure Awindow4555; begin ; window(1,13,80,25); ALignemax:=13; end; +procedure Awindow4555; begin ; window(1,13,80,ALignmaxEcran); ALignemax:=ALignmaxEcran-12; end; -procedure Awindow5; begin ; window(1,14,80,25); Alignemax:=12; end; +procedure Awindow5; begin ; window(1,14,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-13; end; -procedure Awindow55; begin ; window(1,15,80,25); Alignemax:=11; end; +procedure Awindow55; begin ; window(1,15,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-14; end; -procedure Awindow6; begin ; window(1,16,80,25); Alignemax:=10; end; +procedure Awindow6; begin ; window(1,16,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-15; end; -procedure Awindow7; begin ; window(1,18,80,25); Alignemax:=8; end; +procedure Awindow7; begin ; window(1,18,80,ALignmaxEcran); Alignemax:=ALignmaxEcran-17; end; {----------------------------------------------------------------------------} @@ -439,5 +442,18 @@ procedure Aeditmajusc; BEGIN Textmode(lo(lastmode)); ALignemax:=25; + ALignmaxEcran:=25; + {$i-} + assign(Alst,ANomFicTailleFenetre); + reset(Alst); + read(Alst,ALignMaxEcran); + if ioresult=0 then + begin + if (AlignMaxEcran>95) or (AlignMaxEcran<9) then + ALignMaxEcran:=25; + close(Alst); + end; + {$i+} + END. - \ No newline at end of file + diff --git a/src/PARAM.PAS b/src/PARAM.PAS index cce4ff0..4f1be0e 100644 --- a/src/PARAM.PAS +++ b/src/PARAM.PAS @@ -57,6 +57,8 @@ procedure ChoixEntreeOptions; if ioresult=0 then begin readln(YFitext,YNomFicLacs); + readln(YFitext,YRangPBarrage); + readln(YFitext,YRangPReseau); readln(YFitext,YNomFicDebit); readln(YFitext,YNomFicObjectif); readln(YFitext,YTypeObjectif); @@ -150,9 +152,14 @@ procedure TestLecture (ZRangLac,ZTypeDebit,ZRangDonnee,ZRang : integer); procedure EntreesLac; var + XIoResult : integer; XSeraRien : integer; Xi : integer; + XNbVersion : integer; XChai8 : YChai8; + XFic : text; + XEnTete : string; + XRangVersion : array[1..YNbmaxVersion] of integer; BEGIN {d‚but de procedure EntreeLacs} @@ -164,44 +171,47 @@ procedure EntreesLac; writeln(' RESERVOIRS POUR POUVOIR SATISFAIRE AU MIEUX UN OBJECTIF DE GESTION COMMUN'); writeln(' (HYDROGRAMME ANNUEL MINIMAL OU MAXIMAL DEFINI A UNE STATION SITUEE A L''AVAL)'); writeln; - write('Le calcul n‚cessite certains paramŠtres et donn‚es pr‚alablement saisis selon un'); - writeln('format impos‚ dans des fichiers texte situ‚s dans les r‚pertoires suivants : '); + writeln('Le calcul n‚cessite certains paramŠtres et donn‚es pr‚alablement saisis selon'); + writeln('un format impos‚ dans des fichiers texte situ‚s dans les r‚pertoires suivants :'); writeln(YRepP,' : '); - writeln('-un fichier localisant l''objectif de gestion et listant les r‚servoirs situ‚s …'); - writeln(' l''amont avec leurs capacit‚s et les temps de propagation jusqu''… l''aval'); - writeln('-deux fichiers par r‚servoir, pr‚cisant : 1) ses contraintes et consignes de'); - writeln(' gestion ; 2) les stations … utiliser, les temps de propagation et les'); - writeln(' superficies de bassin versant n‚cessaires, pour le calcul des d‚bits naturels'); - writeln(' aux points de prise et de restitution'); - writeln('-un fichier (facultatif) nomm‚ ',YNomFicTpsRet,', listant les temps de retour …'); - writeln(' utiliser pour l''analyse statistique des r‚sultats'); + writeln(' -un fichier localisant l''objectif de gestion et listant les r‚servoirs situ‚s'); + writeln(' … l''amont avec les temps de propagation entre ceux-ci et l''objectif'); + writeln(' -un fichier (facultatif) nomm‚ ',YNomFicTpsRet,', listant les temps de retour'); + writeln(' … utiliser pour l''analyse statistique des r‚sultats'); + writeln('Sous-r‚pertoire de ',YRepP,YRepB,' (nom : entier entre 1 et ',YNbmaxVersion,') :'); + writeln(' -un fichier par r‚servoir pr‚cisant ses contraintes et consignes de gestion'); + writeln('Sous-r‚pertoire de ',YRepP,YRepS,' (nom : entier entre 1 et ',YNbmaxVersion,' ) :'); + writeln(' -un fichier par r‚servoir pr‚cisant les stations … utiliser, les temps de '); + writeln(' propagation et les superficies de bassin versant n‚cessaires, pour le'); + writeln(' calcul des d‚bits naturels aux points de prise et de restitution'); writeln(YRepD,' : '); - writeln('-un fichier des d‚bits journaliers naturels aux stations n‚cessaires'); + writeln(' -un fichier des d‚bits journaliers naturels aux stations n‚cessaires'); writeln(YRepO,' : '); - writeln('-un fichier d‚finisant l''hydrogramme objectif annuel … la station aval'); + writeln(' -un fichier d‚finissant l''hydrogramme objectif annuel … la station aval'); writeln; - writeln('Les r‚sultats sont ‚dit‚s en fichiers texte dans le r‚pertoire ',YRepR); + write('Les r‚sultats sont ‚dit‚s en fichiers texte dans le r‚pertoire ',YRepR); ATapez; - aquest; + atexte; clrscr; + + Aquest; write('nom du fichier localisant l''objectif de gestion (station aval) ? '); Alecture_xy; - AReponse(YNomFicLacs,15); - ATitre; + AReponse(YNomFicLacs,14); end; - writeln(YFicSortie,'Nom du fichier localisant l''objectif aval et caracterisant les reservoirs ', - 'situes a l''amont : ',YNomFicLacs); + writeln(YFicSortie,'Nom du fichier localisant l''objectif aval, listant les reservoirs ', + 'situes a l''amont et donnant les temps de propagation : ',YNomFicLacs); writeln(YFicSortie); YResume:='systeme = '+YNomFicLacs+'['; - {--ouverture du fichier des paramŠtres des lacs--} + {--ouverture du fichier des paramŠtres de station aval--} {$i-} - assign(YFitext,YrepP+YNomFicLacs); + assign(YFitext,YRepP+YNomFicLacs); YOuvertEtLu:=false; reset(YFitext); - {--cas d'ouverture correcte du fichier des paramŠtres des lacs--} + {--cas d'ouverture correcte du fichier des paramŠtres de station aval--} if ioresult=0 then begin @@ -248,7 +258,8 @@ procedure EntreesLac; begin {--‚criture en sortie--} - write(YFicSortie,'AUCUN'); + writeln(YFicSortie,'AUCUN'); + writeln(YFicSortie); {--lecture ‚ventuelle des r‚glages--} assign(YFitext,YNomFicReglage); @@ -274,17 +285,159 @@ procedure EntreesLac; for YRanglac:=1 to YNbLacs do YReglage[Yranglac]:=0; + {--Choix de la version des paramŠtres de contraintes et consignes.--} + {--Ce bloc permet de d‚finir le nom YNomRepBarrage du r‚pertoire --} + {--contenant les fichiers caract‚risant les contraintes et --} + {--de chaque r‚servoir. --} + if YSaisie then + begin + ATitre; + writeln; + writeln('versions disponibles pour les contraintes et consignes de r‚servoirs :'); + XNbVersion:=0; + for Xi:=1 to YNbMaxVersion do + begin + str(Xi,YNomRepBarrage); + YNomRepBarrage:=YRepP+YRepB+YNomRepBarrage+'\'; + assign(XFic,YNomRepBarrage+'version.txt'); + reset(XFic); + if IOResult=0 then + begin + readln(XFic,XEnTete); + if IOResult=0 then + begin + XNbVersion:=XNbVersion+1; + APropo; + write(XNbVersion:2); + ATitre; + writeln(' : [',Xi:2,'] ',XEntete); + XRangVersion[XNbVersion]:=Xi; + end; + close(XFic); + end; + end; + if XNbVersion=0 then + begin + YRangPBarrage:=0; + writeln('Liste vide. Calcul impossible'); + ATapez; + end + else + begin + if XNbVersion=1 then + begin + Xi:=1; + writeln('Cette version des paramŠtres sera utilis‚e pour les calculs.'); + end + else + begin + AQuest; + write('version de paramŠtres … utiliser (entre 1 et ',XNbVersion,') ? '); + ASaisiInt(Xi,1,XNbVersion,2); + end; + YRangPBarrage:=XRangVersion[Xi]; + end; + writeln; + end; + if YRangPBarrage>0 then + begin + str(YRangPBarrage,YNomRepBarrage); + YNomRepBarrage:=YRepP+YRepB+YNomRepBarrage+'\'; + assign(XFic,YNomRepBarrage+'version.txt'); + reset(XFic); + readln(XFic,XEnTete); + close(XFic); + writeln(YFicSortie,'Version utilisee pour les parametres de consignes et contraintes locales : rang ',YRangPBarrage); + writeln(YFicSortie,' (',XEntete,')'); + writeln(YFicSortie); + end + else + writeln(yFicSortie,'Aucune version disponible pour les parametres de consignes et contraintes locales des reservoirs. Calcul impossible.'); + flush(YFicSortie); + {--Cas o— une version de paramŠtres de rŠgles et consignes locales a--} + {--pu ˆtre s‚lectionn‚ : alors choix de la version des paramŠtres de--} + {--r‚seaux. Ce bloc permet de d‚finir le nom YNomRepReseau du --} + {--r‚pertoire contenant les fichiers caract‚risant le r‚seau de --} + {--stations associ‚ … chaque r‚servoir. --} + if YRangPBarrage>0 then + begin + if YSaisie then + begin + ATitre; + writeln('versions disponibles pour les r‚seaux de stations associ‚s aux r‚servoirs :'); + XNbVersion:=0; + for Xi:=1 to YNbMaxVersion do + begin + str(Xi,YNomRepReseau); + YNomRepReseau:=YRepP+YRepS+YNomRepReseau+'\'; + assign(XFic,YNomRepReseau+'version.txt'); + reset(XFic); + if IOResult=0 then + begin + readln(XFic,XEnTete); + if IOResult=0 then + begin + XNbVersion:=XNbVersion+1; + APropo; + write(XNbVersion:2); + ATitre; + writeln(' : [',Xi:2,'] ',XEntete); + XRangVersion[XNbVersion]:=Xi; + end; + close(XFic); + end; + end; + if XNbVersion=0 then + begin + YRangPReseau:=0; + writeln('Liste vide. Calcul impossible'); + Atapez; + end + else + begin + if XNbVersion=1 then + begin + Xi:=1; + writeln('Cette version des paramŠtres sera utilis‚e pour les calculs.'); + end + else + begin + AQuest; + write('version de paramŠtres … utiliser (entre 1 et ',XNbVersion,') ? '); + ASaisiInt(Xi,1,XNbVersion,2); + end; + YRangPReseau:=XRangVersion[Xi]; + end; + writeln; + end; {fin du cas o— saisie clavier} + if YRangPReseau>0 then + begin + str(YRangPReseau,YNomRepReseau); + YNomRepReseau:=YRepP+YRepS+YNomRepReseau+'\'; + assign(XFic,YNomRepReseau+'version.txt'); + reset(XFic); + readln(XFic,XEnTete); + close(XFic); + writeln(YFicSortie,'Version utilisee pour les parametres de reseaux de stations associes aux reservoirs : rang ',YRangPReseau); + writeln(YFicSortie,' (',XEntete,')'); + writeln(YFicSortie); + end + else + writeln(yFicSortie,'Aucune version disponible pour les parametres de reseaux de stations associes aux reservoirs. Calcul impossible.'); + flush(YFicSortie); + end; {fin du cas ou version de paramŠtres rŠgles et consignes a ‚t‚ s‚lectionn‚} + end; {fin du cas o— aucune erreur n'est d‚tect‚e} writeln(YFicSortie); - end {fin du cas o— le fichier n'est pas vide} + end {fin du cas o— le fichier des paramŠtres de station aval n'est pas vide} - {--cas o— le fichier est vide--} + {--cas o— le fichier des paramŠtres de station aval est vide--} else writeln(YFicSortie,'Probleme detecte : lecture impossible dans le fichier ',YNomFicLacs); - end {fin du cas d'ouverture correcte du fichier} + end {fin du cas d'ouverture correcte du fichier des paramŠtres de station aval} {--cas d'ouverture incorrecte du fichier--} else @@ -361,13 +514,14 @@ procedure LectureRegles; Xi : integer; XSeuilAnt : double; XChai8 : YChai8; + XChaine : string; BEGIN {$i-} {--ouverture du fichier des contraintes et consignes--} - assign(YFitext,YRepP+YNomLac[YRangLac]+YSuffixe[1]); + assign(YFitext,YNomRepBarrage+YNomLac[YRangLac]+YSuffixe[1]); reset(YFitext); YOuvertEtLu:=false; @@ -381,8 +535,10 @@ BEGIN begin YNMalLu:=0; - readln(YFitext); + readln(YFitext,XChaine); XSerarien:=ioresult; + writeln(YFicSortie,'En-tete du fichier : ',XChaine); + writeln(YFicSortie); readln(YFitext,XChai8); YNomReservoir[YRangLac]:=''; for Xi:=1 to length(XChai8) do @@ -414,6 +570,10 @@ BEGIN YResume:=YResume+YNomLac[YRangLac]+'] ; ' else YResume:=YResume+YNomLac[YRangLac]+', '; + str(YRangPBarrage,XChai8); + YResume:=YResume+' Versions parametres barrages et reseaux : '+XChai8; + str(YRangPReseau,XChai8); + YResume:=YResume+' et '+XChai8+' ; '; {--boucle sur les 4 types de d‚bit de r‚f‚rence et r‚serv‚s : --} {--QRM, QRV, QFM QFV --} @@ -539,12 +699,18 @@ procedure EcritureParametresLacs(var ZFic:text); for XRangFormule:=1 to YNbFormule[YRangLac,YTypeDebit] do begin Write(ZFic,' Q',XRangFormule,' : '); - for Xrangseuil:=1 to YNbSeuil[YRangLac,YTypeDebit,XRangFormule] do + if (YNbSeuil[YRangLac,YTypeDebit,XRangFormule]=1) + and (YSeuil[YRangLac,YTypeDebit,XRangFormule,1]<0) then + writeln(ZFic,Ydebit[Yranglac,YTypeDebit,XRangFormule,1]:6) + else begin - write(ZFic,'si QMnat > ',YSeuil[YRangLac,YTypeDebit,XRangFormule,XRangSeuil]:6); - write(ZFic,' alors ',Ydebit[Yranglac,YTypeDebit,XRangFormule,XrangSeuil]:6,', sinon, '); + for Xrangseuil:=1 to YNbSeuil[YRangLac,YTypeDebit,XRangFormule] do + begin + write(ZFic,'si QMnat > ',YSeuil[YRangLac,YTypeDebit,XRangFormule,XRangSeuil]:6); + write(ZFic,' alors ',Ydebit[Yranglac,YTypeDebit,XRangFormule,XrangSeuil]:6,', sinon, '); + end; + writeln(ZFic,'QMnat'); end; - writeln(ZFic,'QMnat'); end; if YTypeFormule[YRangLac, YTypeDebit]<>0 then begin @@ -706,6 +872,7 @@ procedure EntreeReseaux; Xi : integer; XRang : integer; XChai8 : YChai8; + XChaine : string; XSerarien : integer; {---------------------------------------------------------------------------} @@ -730,7 +897,7 @@ procedure XTestLecture (ZRangDonnee,ZRang : integer); {--ouverture du fichier des paramŠtres de r‚seau--} str(YRangLac,YNum); - assign(YFitext,YRepP+YNomLac[YRangLac]+YSuffixe[2]); + assign(YFitext,YNomRepReseau+YNomLac[YRangLac]+YSuffixe[2]); reset(YFitext); YOuvertEtLu:=false; @@ -743,8 +910,10 @@ procedure XTestLecture (ZRangDonnee,ZRang : integer); if not eof(YFiText) then begin - readln(YFitext); + readln(YFitext,XChaine); XSerarien:=ioresult; + writeln(YFicSortie,'En-tete du fichier : ',XChaine); + writeln(YFicSortie); YNMalLu:=0; readln(YFitext,XChai8); YNomReseau[YRangLac]:=''; @@ -983,4 +1152,4 @@ procedure EcritureParametresReseaux(var ZFic:text); end; {============================================================================} BEGIN -END. \ No newline at end of file +END. diff --git a/src/UTILIT.PAS b/src/UTILIT.PAS index 4f96423..2e823ff 100644 --- a/src/UTILIT.PAS +++ b/src/UTILIT.PAS @@ -243,4 +243,3 @@ procedure AEfface(ZNomfi:string); BEGIN END. - \ No newline at end of file diff --git a/src/VGEST.PAS b/src/VGEST.PAS index 8772759..cb28740 100644 --- a/src/VGEST.PAS +++ b/src/VGEST.PAS @@ -1,4 +1,4 @@ -PROGRAM VGEST5; {idem … Vgest3 mais avec extension de p‚riode analys‚e possible de 100 … 250} +PROGRAM VGEST; {idem … Vgest3 mais avec extension de p‚riode analys‚e possible de 100 … 250} {--JC Bader, Janvier 2013--} @@ -1066,8 +1066,13 @@ BEGIN if YSaisie then YSaisie10; - end; {fin du cas o— on fait les calculs} + end {fin du cas o— on fait les calculs} + else {cas o— les calculs n'ont pas pu ˆtre faits} + if YSaisie then + YSaisie11; + + {cr‚ation du fichier marquant la fin programme} assign(YFitext,YNomFicFin); rewrite(YFitext); close(YFitext); -- GitLab