diff --git a/example/CHOIX.TXT b/example/CHOIX.TXT index 2c673932a4b57ec2bd932ccca20dc8c3ec280d65..4e6882a2dbfec13a7a937a33750f5806f4c2ea4e 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 a6b33613880d974379034293d1cc0b5af6ccdb70..01ac707406ce1132f9187bdbbb327b9ec2950125 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 29f64a817fc79ee010c4ed64fba9ca8e22328439..baecc66d82156fc90302f7aa63458efb26e19cca 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 d2e83e6a46273cd0d896c1a502c9a7684f1cec88..29e719715f174306a6e4ad4166a93ee9636e4c0f 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 0f6a7a4acde1d02f52596a0345d38cc961e4e83a..bdfab9bf9007c21b302a9d1f807f6676baf3682f 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 0000000000000000000000000000000000000000..8ff5802282385f82f7159bc9859a0b69041ea31d --- /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 0000000000000000000000000000000000000000..9c080ca8a494976447f5617b231317d540e98471 --- /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 0000000000000000000000000000000000000000..7ba972ead6e4bb20184cd8de777be301c9b59243 --- /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 0000000000000000000000000000000000000000..9e29b8a8b40ebe8421d1497a784ef4dfa61dab17 --- /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 0000000000000000000000000000000000000000..11eed418d237361035a4103f905ed712a82989d3 --- /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 0000000000000000000000000000000000000000..1c80eabd3ad5e8cff41fec9d22324675ed83c644 --- /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 0000000000000000000000000000000000000000..bd64ddbeadb7997bc1efdd48ed6c6692eb4e6412 --- /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 0000000000000000000000000000000000000000..67dd10c37a6999ccac96d145212b771d7f8d5cb1 --- /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 0000000000000000000000000000000000000000..9c2ac4723a9745ea5a245a9911bffc3a0a1cdfaa --- /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 0000000000000000000000000000000000000000..f720aabf67ca17217e646d0b7fe4bdffc2edf985 --- /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 0000000000000000000000000000000000000000..d0e776ae817c381489684b5dc37df39d01f45def --- /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 0000000000000000000000000000000000000000..50b9a2a90d23a7990fbc7f4133e39fcb51cd4aaf --- /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 0000000000000000000000000000000000000000..0495f1b5efb5e15ba8ec2965339c6543cbc3514b --- /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 0000000000000000000000000000000000000000..ba55c9b4c064e3e5d3ccae1bae94984f5c972f38 --- /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 0000000000000000000000000000000000000000..bd12cd226b384fca74f8db87ae277b996e5b3dba --- /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 0000000000000000000000000000000000000000..4d1eb4b086f25f675052666fb6f2c9a78bb83b42 --- /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 ba2257ee893c3ec857ebf6c87d515cab27d24d11..139438969fbb6afeb4c5a43f57ef0bc5c73b1c54 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 2f39049081e5eb8f0940998cc25b99f3d44c6047..81d76518d820abd20f0f885a6df6eb32ee7b3bbb 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 4efeb07e1500feba3b8a5a8b946abb51af608a67..7058a51bd81b33ae16a7e713555a4bdea334a1e4 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 72915e08c2be899e94104ad0f305d75f08b1528f..b088b29e5f1ef46765285f43f5468b7db6c63f69 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 0000000000000000000000000000000000000000..a530f65318734961ce3ac8fef4e0c4f2e6a3404f --- /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 ef6e041323aaecf81b47007e598c8ebfe67c7808..37b9deb3b39b8b2147b4b6810249fa9c11cb00c4 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 0000000000000000000000000000000000000000..706e35313259dc03842b7f66e36cd6fde8d7178e --- /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 0000000000000000000000000000000000000000..2d08400e6b51f7e416c34c4d6cacf714bc7138ab --- /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 0000000000000000000000000000000000000000..390066137e37ddeaf058e7799ca85e96eb36cfc5 --- /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 0000000000000000000000000000000000000000..ff6e84d07286313ebb8eb99becfe905d0080145e --- /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 f6ba816cd8d55d32bcc0f72d11d3014ef2402c6a..0000000000000000000000000000000000000000 --- 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 690297dcefb2d47520e921903d72eb8a5937132c..abf78e1b747c583acf9a2d29d47e9901c06f3e31 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 78cdf77cc8bd6b879414f4d59b7f5159f3827151..d476a23fbb484915524ee2596e31e9ec8117144b 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 04090078ba7891a6e734ec28fc23bf43453da355..c03f0afcc88827c5ed112f9e87909ebf45e14a47 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 a0359bc22fc46fed14e8c21e68fc61c7b793777b..6de1777f2f754ad0d426275967aa2a08c61258e7 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 cce4ff09985e406417edcbc49fa18f3281f65aa3..4f1be0ee864e15d7698d60bfea81786702e6ee1a 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 4f96423843ca5601ab815a33d98f6e5e2473bfd4..2e823ff4f54232eb913f26dacdd8df5045077757 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 8772759e4d0f267226685463b480bec6d4150b7e..cb28740a012247a00139e091241fd6d25f390aaa 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);