Commit 2f829b6e authored by Dorchies David's avatar Dorchies David
Browse files

feat: v6 2015/05/07

parent 6a0d7450
Consignes 2012, Qres aux prises, pas de Qref
\ No newline at end of file
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
......
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
......
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
......
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
......
version de 2013
\ No newline at end of file
......@@ -12,4 +12,3 @@ Temps de retour souhaites pour l'analyse statistique :
25.000000
50.000000
100.000000
150.000000
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)
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)
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)
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)
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
......@@ -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 dbits naturels ? ');
Alecture_xy;
repeat
AReponse(YNomFicDebit,43);
AReponse(YNomFicDebit,42);
assign(YFitext,YRepD+YNomFicDebit);
reset(YFiText);
XCode:=ioresult;
......
......@@ -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}
......
......@@ -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 dbit 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
......
......@@ -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:arrire}
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
......@@ -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 {dbut 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 ncessite certains paramtres et donnes pralablement saisis selon un');
writeln('format impos dans des fichiers texte situs dans les rpertoires suivants : ');
writeln('Le calcul ncessite certains paramtres et donnes pralablement saisis selon');
writeln('un format impos dans des fichiers texte situs dans les rpertoires suivants :');
writeln(YRepP,' : ');
writeln('-un fichier localisant l''objectif de gestion et listant les rservoirs situs ');
writeln(' l''amont avec leurs capacits et les temps de propagation jusqu'' l''aval');
writeln('-deux fichiers par rservoir, prcisant : 1) ses contraintes et consignes de');
writeln(' gestion ; 2) les stations utiliser, les temps de propagation et les');
writeln(' superficies de bassin versant ncessaires, pour le calcul des dbits 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 rsultats');
writeln(' -un fichier localisant l''objectif de gestion et listant les rservoirs situs');
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 rsultats');
writeln('Sous-rpertoire de ',YRepP,YRepB,' (nom : entier entre 1 et ',YNbmaxVersion,') :');
writeln(' -un fichier par rservoir prcisant ses contraintes et consignes de gestion');
writeln('Sous-rpertoire de ',YRepP,YRepS,' (nom : entier entre 1 et ',YNbmaxVersion,' ) :');
writeln(' -un fichier par rservoir prcisant les stations utiliser, les temps de ');
writeln(' propagation et les superficies de bassin versant ncessaires, pour le');
writeln(' calcul des dbits naturels aux points de prise et de restitution');
writeln(YRepD,' : ');
writeln('-un fichier des dbits journaliers naturels aux stations ncessaires');
writeln(' -un fichier des dbits journaliers naturels aux stations ncessaires');
writeln(YRepO,' : ');
writeln('-un fichier dfinisant l''hydrogramme objectif annuel la station aval');
writeln(' -un fichier dfinissant l''hydrogramme objectif annuel la station aval');
writeln;
writeln('Les rsultats sont dits en fichiers texte dans le rpertoire ',YRepR);
write('Les rsultats sont dits en fichiers texte dans le rpertoire ',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 paramtres des lacs--}
{--ouverture du fichier des paramtres de station aval--}
{$i-}
assign(YFitext,YrepP+YNomFicLacs);
assign(YFitext,YRepP+YNomFicLacs);
YOuvertEtLu:=false;
reset(YFitext);
{--cas d'ouverture correcte du fichier des paramtres des lacs--}
{--cas d'ouverture correcte du fichier des paramtres 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 rglages--}
assign(YFitext,YNomFicReglage);
......@@ -274,17 +285,159 @@ procedure EntreesLac;
for YRanglac:=1 to YNbLacs do
YReglage[Yranglac]:=0;
{--Choix de la version des paramtres de contraintes et consignes.--}
{--Ce bloc permet de dfinir le nom YNomRepBarrage du rpertoire --}
{--contenant les fichiers caractrisant les contraintes et --}
{--de chaque rservoir. --}
if YSaisie then
begin
ATitre;
writeln;
writeln('versions disponibles pour les contraintes et consignes de rservoirs :');
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 paramtres sera utilise pour les calculs.');
end
else
begin
AQuest;
write('version de paramtres 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 paramtres de rgles et consignes locales a--}
{--pu tre slectionn : alors choix de la version des paramtres de--}
{--rseaux. Ce bloc permet de dfinir le nom YNomRepReseau du --}
{--rpertoire contenant les fichiers caractrisant le rseau de --}
{--stations associ chaque rservoir. --}
if YRangPBarrage>0 then
begin
if YSaisie then
begin
ATitre;
writeln('versions disponibles pour les rseaux de stations associs aux rservoirs :');
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 paramtres sera utilise pour les calculs.');
end
else
begin
AQuest;
write('version de paramtres 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 paramtres rgles et consignes a t slectionn}
end; {fin du cas o aucune erreur n'est dtecte}
writeln(YFicSortie);
end {fin du cas o le fichier n'est pas vide}
end {fin du cas o le fichier des paramtres de station aval n'est pas vide}
{--cas o le fichier est vide--}
{--cas o le fichier des paramtres 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 paramtres 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 dbit de rfrence et rservs : --}
{--QRM, QRV, QFM QFV --}
......@@ -539,6 +699,11 @@ procedure EcritureParametresLacs(var ZFic:text);
for XRangFormule:=1 to YNbFormule[YRangLac,YTypeDebit] do
begin
Write(ZFic,' Q',XRangFormule,' : ');
if (YNbSeuil[YRangLac,YTypeDebit,XRangFormule]=1)
and (YSeuil[YRangLac,YTypeDebit,XRangFormule,1]<0) then
writeln(ZFic,Ydebit[Yranglac,YTypeDebit,XRangFormule,1]:6)
else
begin
for Xrangseuil:=1 to YNbSeuil[YRangLac,YTypeDebit,XRangFormule] do
begin
write(ZFic,'si QMnat > ',YSeuil[YRangLac,YTypeDebit,XRangFormule,XRangSeuil]:6);
......@@ -546,6 +711,7 @@ procedure EcritureParametresLacs(var ZFic:text);