From fb2958bfa538e63b2208183a814d81a4798a88b3 Mon Sep 17 00:00:00 2001
From: David Dorchies <david.dorchies@irstea.fr>
Date: Mon, 1 Oct 2018 16:48:59 +0200
Subject: [PATCH] =?UTF-8?q?#44=20Premi=C3=A8re=20version=20IHM=20Passe=20?=
 =?UTF-8?q?=C3=A0=20macro-rugosit=C3=A9s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 package-lock.json                             |  2 +-
 .../cond_distri/cond_distri.fr.json           |  1 -
 .../lechapt-calmon/lechapt-calmon.fr.json     |  1 -
 .../macrorugo/macrorugo.config.json           | 93 +++++++++++++++++++
 .../calculators/macrorugo/macrorugo.fr.json   | 15 +++
 src/app/calculators/ouvrages/ouvrages.fr.json |  1 -
 .../pab-puissance/pab-puissance.fr.json       |  1 -
 .../parallel-structures.config.json           |  2 +-
 .../regime-uniforme/regime-uniforme.fr.json   |  1 -
 .../section-param/section-param.fr.json       |  1 -
 .../{form-cond-distri.ts => form-base.ts}     |  3 +-
 .../definition/concrete/form-dever.ts         | 12 ---
 .../concrete/form-lechapt-calmon.ts           | 60 ++----------
 .../concrete/form-passe-bassin-dim.ts         | 58 ------------
 .../concrete/form-passe-bassin-puissance.ts   | 58 ------------
 .../concrete/form-regime-uniforme.ts          |  7 +-
 .../services/formulaire/formulaire.service.ts | 22 ++---
 src/locale/error_messages.fr.json             | 17 +++-
 18 files changed, 143 insertions(+), 212 deletions(-)
 create mode 100644 src/app/calculators/macrorugo/macrorugo.config.json
 create mode 100644 src/app/calculators/macrorugo/macrorugo.fr.json
 rename src/app/formulaire/definition/concrete/{form-cond-distri.ts => form-base.ts} (95%)
 delete mode 100644 src/app/formulaire/definition/concrete/form-dever.ts
 delete mode 100644 src/app/formulaire/definition/concrete/form-passe-bassin-dim.ts
 delete mode 100644 src/app/formulaire/definition/concrete/form-passe-bassin-puissance.ts

diff --git a/package-lock.json b/package-lock.json
index 9ece6445c..087e68c0b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4328,7 +4328,7 @@
     },
     "jalhyd": {
       "version": "file:../jalhyd/jalhyd-1.0.0.tgz",
-      "integrity": "sha1-EUjX7Sy8Zv6R/MU7BEfJn3KCtvM="
+      "integrity": "sha1-RVC5QTbNMQnhDWULz1nwm6EscGg="
     },
     "jasmine": {
       "version": "2.8.0",
diff --git a/src/app/calculators/cond_distri/cond_distri.fr.json b/src/app/calculators/cond_distri/cond_distri.fr.json
index c092d188e..5d775d9de 100644
--- a/src/app/calculators/cond_distri/cond_distri.fr.json
+++ b/src/app/calculators/cond_distri/cond_distri.fr.json
@@ -1,6 +1,5 @@
 {
     "fs_hydraulique": "Caractéristiques hydrauliques",
-    "Q": "Débit",
     "D": "Diamètre du tuyau",
     "J": "Perte de charge",
     "Lg": "Longueur du tuyau",
diff --git a/src/app/calculators/lechapt-calmon/lechapt-calmon.fr.json b/src/app/calculators/lechapt-calmon/lechapt-calmon.fr.json
index f3b6465da..2db51b945 100644
--- a/src/app/calculators/lechapt-calmon/lechapt-calmon.fr.json
+++ b/src/app/calculators/lechapt-calmon/lechapt-calmon.fr.json
@@ -14,7 +14,6 @@
     "M": "M",
     "N": "N",
     "fs_hydraulique": "Caractéristiques hydrauliques",
-    "Q": "Débit",
     "D": "Diamètre du tuyau",
     "J": "Perte de charge",
     "Lg": "Longueur du tuyau",
diff --git a/src/app/calculators/macrorugo/macrorugo.config.json b/src/app/calculators/macrorugo/macrorugo.config.json
new file mode 100644
index 000000000..e8755930c
--- /dev/null
+++ b/src/app/calculators/macrorugo/macrorugo.config.json
@@ -0,0 +1,93 @@
+[
+    {
+        "id": "fs_hydraulique_fix",
+        "type": "fieldset",
+        "option": "var",
+        "fields": [
+            {
+                "type": "input",
+                "id": "ZF1",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "L",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "Ks",
+                "unit": "m"
+            }
+        ]
+    },
+    {
+        "id": "fs_hydraulique_cal",
+        "type": "fieldset",
+        "option": "cal",
+        "fields": [
+            {
+                "type": "input",
+                "id": "B",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "If",
+                "unit": "m/m"
+            },
+            {
+                "type": "input",
+                "id": "Q",
+                "unit": "m³/s"
+            },
+            {
+                "type": "input",
+                "id": "Y",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "C",
+                "unit": ""
+            }
+        ]
+    },
+    {
+        "id": "fs_bloc",
+        "type": "fieldset",
+        "option": "var",
+        "fields": [
+            {
+                "type": "input",
+                "id": "PBD",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "PBH",
+                "unit": "m"
+            },
+            {
+                "type": "input",
+                "id": "Cd0",
+                "unit": ""
+            }
+        ]
+    },
+    {
+        "id": "fs_param_calc",
+        "type": "fieldset",
+        "option": "fix",
+        "fields": [
+            {
+                "type": "input",
+                "id": "Pr"
+            }
+        ]
+    },
+    {
+        "type": "options",
+        "idCal": "Q"
+    }
+]
\ No newline at end of file
diff --git a/src/app/calculators/macrorugo/macrorugo.fr.json b/src/app/calculators/macrorugo/macrorugo.fr.json
new file mode 100644
index 000000000..0fb76a0b9
--- /dev/null
+++ b/src/app/calculators/macrorugo/macrorugo.fr.json
@@ -0,0 +1,15 @@
+{
+    "fs_hydraulique_fix": "Données hydrauliques fixées",
+    "fs_hydraulique_cal": "Données hydrauliques calculables",
+    "fs_bloc": "Paramètres des blocs",
+    "ZF1": "Cote de fond amont",
+    "L": "Longueur",
+    "B": "Largeur",
+    "If": "Pente",
+    "Y": "Profondeur",
+    "Ks": "Rugosité de fond",
+    "C": "Concentration de blocs",
+    "PBD": "Paramètre de bloc : Diamètre",
+    "PBH": "Paramètre de bloc : Hauteur",
+    "Cd0": "Paramètre de bloc : Forme (1 pour rond, 2 pour carré)"
+}
\ No newline at end of file
diff --git a/src/app/calculators/ouvrages/ouvrages.fr.json b/src/app/calculators/ouvrages/ouvrages.fr.json
index 6bb242129..16ac2c4c7 100644
--- a/src/app/calculators/ouvrages/ouvrages.fr.json
+++ b/src/app/calculators/ouvrages/ouvrages.fr.json
@@ -24,7 +24,6 @@
     "fruit": "Fruit",
     "fs_surverse": "Surverse",
     "fs_hydraulique": "Caractéristiques globales",
-    "Q": "Débit",
     "Y_A": "Cote de l'eau à l'amont",
     "Y_a": "Cote de l'eau à l'aval"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pab-puissance/pab-puissance.fr.json b/src/app/calculators/pab-puissance/pab-puissance.fr.json
index c3b45436c..d1f891a18 100644
--- a/src/app/calculators/pab-puissance/pab-puissance.fr.json
+++ b/src/app/calculators/pab-puissance/pab-puissance.fr.json
@@ -1,7 +1,6 @@
 {
     "fs_puissance": "Paramètres",
     "DH": "Chute entre bassins",
-    "Q": "Débit",
     "V": "Volume",
     "PV": "Puissance dissipée"
 }
\ No newline at end of file
diff --git a/src/app/calculators/parallel-structures/parallel-structures.config.json b/src/app/calculators/parallel-structures/parallel-structures.config.json
index cefbd84a9..8ba966d27 100644
--- a/src/app/calculators/parallel-structures/parallel-structures.config.json
+++ b/src/app/calculators/parallel-structures/parallel-structures.config.json
@@ -285,7 +285,7 @@
             {
                 "type": "input",
                 "id": "ZRAM",
-                "unit": "",
+                "unit": "m",
                 "nodeType": "StructureRectangle",
                 "dep_exist": [
                     {
diff --git a/src/app/calculators/regime-uniforme/regime-uniforme.fr.json b/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
index 2b36f059c..9b3bf77db 100644
--- a/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
+++ b/src/app/calculators/regime-uniforme/regime-uniforme.fr.json
@@ -19,6 +19,5 @@
     "If": "Pente du fond",
     "YB": "Hauteur de berge",
     "fs_hydraulique": "Caractéristiques hydrauliques",
-    "Q": "Débit",
     "Y": "Tirant d'eau"
 }
\ No newline at end of file
diff --git a/src/app/calculators/section-param/section-param.fr.json b/src/app/calculators/section-param/section-param.fr.json
index 3f29b000b..3620678eb 100644
--- a/src/app/calculators/section-param/section-param.fr.json
+++ b/src/app/calculators/section-param/section-param.fr.json
@@ -19,7 +19,6 @@
     "If": "Pente du fond",
     "YB": "Hauteur de berge",
     "fs_hydraulique": "Caractéristiques hydrauliques",
-    "Q": "Débit",
     "Y": "Tirant d'eau",
     "fs_param_calc": "Paramètres de calcul",
     "Pr": "Précision de calcul",
diff --git a/src/app/formulaire/definition/concrete/form-cond-distri.ts b/src/app/formulaire/definition/concrete/form-base.ts
similarity index 95%
rename from src/app/formulaire/definition/concrete/form-cond-distri.ts
rename to src/app/formulaire/definition/concrete/form-base.ts
index 9229f2ce6..ece4ec92c 100644
--- a/src/app/formulaire/definition/concrete/form-cond-distri.ts
+++ b/src/app/formulaire/definition/concrete/form-base.ts
@@ -6,7 +6,8 @@ import { CalculatorResults } from "../../../results/calculator-results";
 import { FormDefParamToCalculate } from "../form-def-paramcalc";
 import { FormComputeFixedVar } from "../form-compute-fixedvar";
 
-export class FormulaireConduiteDistributrice extends FormulaireDefinition {
+export class FormulaireBase extends FormulaireDefinition {
+
     private _formFixedVar: FormDefFixedVar;
 
     private _formParamCalc: FormDefParamToCalculate;
diff --git a/src/app/formulaire/definition/concrete/form-dever.ts b/src/app/formulaire/definition/concrete/form-dever.ts
deleted file mode 100644
index 01543d811..000000000
--- a/src/app/formulaire/definition/concrete/form-dever.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { FormDefParallelStructures } from "../form-def-parallel-structures";
-import { FormDefParamToCalculate } from "../form-def-paramcalc";
-import { FormComputeParallelStructures } from "../form-compute-parallel-structures";
-import { FormResultFixedVar } from "../form-result-fixedvar";
-import { CalculatorType, ComputeNodeType, StructureType, LoiDebit } from "jalhyd";
-import { FormulaireParallelStructure } from "./form-parallel-structures";
-
-export class FormulaireDever extends FormulaireParallelStructure {
-    constructor() {
-        super();
-    }
-}
diff --git a/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts b/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
index 04427e3db..586bd9330 100644
--- a/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
+++ b/src/app/formulaire/definition/concrete/form-lechapt-calmon.ts
@@ -1,71 +1,23 @@
-import { CalculatorType, ComputeNodeType, Observer } from "jalhyd";
-
-import { FormResultFixedVar } from "../form-result-fixedvar";
-import { FormDefFixedVar } from "../form-def-fixedvar";
-import { FormulaireDefinition } from "../form-definition";
-import { CalculatorResults } from "../../../results/calculator-results";
-import { FormDefParamToCalculate } from "../form-def-paramcalc";
+import { Observer } from "jalhyd";
 import { SelectField } from "../../select-field";
-import { FormComputeFixedVar } from "../form-compute-fixedvar";
-
-export class FormulaireLechaptCalmon extends FormulaireDefinition implements Observer {
-    private _formFixedVar: FormDefFixedVar;
-
-    private _formParamCalc: FormDefParamToCalculate;
+import { FormulaireBase } from "./form-base";
 
-    private _formCompute: FormComputeFixedVar;
-
-    private _formResult: FormResultFixedVar;
-
-    constructor() {
-        super();
-        this._formFixedVar = new FormDefFixedVar(this);
-        this._formParamCalc = new FormDefParamToCalculate(this);
-        this._formResult = new FormResultFixedVar(this, false);
-        this._formCompute = new FormComputeFixedVar(this, this._formResult);
-    }
-
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
+export class FormulaireLechaptCalmon extends FormulaireBase implements Observer {
 
     protected completeParse(json: {}) {
-        this._formParamCalc.parseOptions(json);
+        super.completeParse(json);
         // abonnement au changement de valeur du select de matériau
         this.getFormulaireNodeById("select_material").addObserver(this);
     }
 
-    /**
-     * gestion du clic sur les radios "paramètre fixé, à varier, à calculer"    
-     */
-    public onRadioClick(info: string) {
-        super.onRadioClick(info);
-        this._formParamCalc.onRadioClick(info);
-    }
-
-    public resetResults() {
-        this._formResult.resetResults();
-    }
-
-    public doCompute() {
-        this._formCompute.doCompute();
-    }
-
-    public get hasResults(): boolean {
-        return this._formResult.hasResults;
-    }
-
-    public get results(): CalculatorResults[] {
-        return this._formResult.results;
-    }
-
     // interface Observer
 
     public update(sender: any, data: any) {
         // en cas de changement de valeur du select de matériau, effacement des résultats et MAJ des champs L,M,N
         if (sender instanceof SelectField) {
-            if (data.action == "select")
+            if (data.action === "select") {
                 this.reset();
+            }
         }
     }
 }
diff --git a/src/app/formulaire/definition/concrete/form-passe-bassin-dim.ts b/src/app/formulaire/definition/concrete/form-passe-bassin-dim.ts
deleted file mode 100644
index bb7de04b6..000000000
--- a/src/app/formulaire/definition/concrete/form-passe-bassin-dim.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { CalculatorType, ComputeNodeType } from "jalhyd";
-
-import { CalculatorResults } from "../../../results/calculator-results";
-import { FormulaireDefinition } from "../form-definition";
-import { FormDefFixedVar } from "../form-def-fixedvar";
-import { FormDefParamToCalculate } from "../form-def-paramcalc";
-import { FormResultFixedVar } from "../form-result-fixedvar";
-import { FormComputeFixedVar } from "../form-compute-fixedvar";
-
-export class FormulairePasseBassinDimensions extends FormulaireDefinition {
-    private _formFixedVar: FormDefFixedVar;
-
-    private _formParamCalc: FormDefParamToCalculate;
-
-    private _formCompute: FormComputeFixedVar;
-
-    private _formResult: FormResultFixedVar;
-
-    constructor() {
-        super();
-        this._formFixedVar = new FormDefFixedVar(this);
-        this._formParamCalc = new FormDefParamToCalculate(this);
-        this._formResult = new FormResultFixedVar(this, false);
-        this._formCompute = new FormComputeFixedVar(this, this._formResult);
-    }
-
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
-
-    protected completeParse(json: {}) {
-        this._formParamCalc.parseOptions(json);
-    }
-
-    /**
-     * gestion du clic sur les radios "paramètre fixé, à varier, à calculer"    
-     */
-    public onRadioClick(info: string) {
-        super.onRadioClick(info);
-        this._formParamCalc.onRadioClick(info);
-    }
-
-    public resetResults() {
-        this._formResult.resetResults();
-    }
-
-    public doCompute() {
-        this._formCompute.doCompute();
-    }
-
-    public get hasResults(): boolean {
-        return this._formResult.hasResults;
-    }
-
-    public get results(): CalculatorResults[] {
-        return this._formResult.results;
-    }
-}
diff --git a/src/app/formulaire/definition/concrete/form-passe-bassin-puissance.ts b/src/app/formulaire/definition/concrete/form-passe-bassin-puissance.ts
deleted file mode 100644
index ba57242df..000000000
--- a/src/app/formulaire/definition/concrete/form-passe-bassin-puissance.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { CalculatorType, ComputeNodeType } from "jalhyd";
-
-import { FormDefFixedVar } from "../form-def-fixedvar";
-import { FormResultFixedVar } from "../form-result-fixedvar";
-import { FormulaireDefinition } from "../form-definition";
-import { CalculatorResults } from "../../../results/calculator-results";
-import { FormDefParamToCalculate } from "../form-def-paramcalc";
-import { FormComputeFixedVar } from "../form-compute-fixedvar";
-
-export class FormulairePasseBassinPuissance extends FormulaireDefinition {
-    private _formFixedVar: FormDefFixedVar;
-
-    private _formParamCalc: FormDefParamToCalculate;
-
-    private _formCompute: FormComputeFixedVar;
-
-    private _formResult: FormResultFixedVar;
-
-    constructor() {
-        super();
-        this._formFixedVar = new FormDefFixedVar(this);
-        this._formParamCalc = new FormDefParamToCalculate(this);
-        this._formResult = new FormResultFixedVar(this, false);
-        this._formCompute = new FormComputeFixedVar(this, this._formResult);
-    }
-
-    protected initParse() {
-        this._formParamCalc.initParse();
-    }
-
-    protected completeParse(json: {}) {
-        this._formParamCalc.parseOptions(json);
-    }
-
-    /**
-     * gestion du clic sur les radios "paramètre fixé, à varier, à calculer"    
-     */
-    public onRadioClick(info: string) {
-        super.onRadioClick(info);
-        this._formParamCalc.onRadioClick(info);
-    }
-
-    public resetResults() {
-        this._formResult.resetResults();
-    }
-
-    public doCompute() {
-        this._formCompute.doCompute();
-    }
-
-    public get hasResults(): boolean {
-        return this._formResult.hasResults;
-    }
-
-    public get results(): CalculatorResults[] {
-        return this._formResult.results;
-    }
-}
diff --git a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
index 64164746e..23af0f0c2 100644
--- a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
+++ b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
@@ -47,7 +47,7 @@ export class FormulaireRegimeUniforme extends FormulaireDefinition implements Ob
     }
 
     /**
-     * gestion du clic sur les radios "paramètre fixé, à varier, à calculer"    
+     * gestion du clic sur les radios "paramètre fixé, à varier, à calculer"
      */
     public onRadioClick(info: string) {
         super.onRadioClick(info);
@@ -78,10 +78,11 @@ export class FormulaireRegimeUniforme extends FormulaireDefinition implements Ob
 
     update(sender: IObservable, data: any) {
         // changement de propriété du FieldSet contenant le select de choix du type de section
-        if (sender instanceof FieldSet && sender.id === "fs_section" && data.action == "propertyChange") {
+        if (sender instanceof FieldSet && sender.id === "fs_section" && data.action === "propertyChange") {
             this.replaceCurrentSessionNub(sender.properties);
-            for (const fs of this.allFieldsets)
+            for (const fs of this.allFieldsets) {
                 fs.setSessionNub(this._currentSessionNub);
+            }
             this.reset();
         }
     }
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index f3d76cd39..4ae8b979b 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -16,13 +16,11 @@ import { InputField } from "../../formulaire/input-field";
 import { SelectField } from "../../formulaire/select-field";
 import { CheckField } from "../../formulaire/check-field";
 import { StringMap } from "../../stringmap";
-import { FormulaireConduiteDistributrice } from "../../formulaire/definition/concrete/form-cond-distri";
+import { FormulaireBase } from "../../formulaire/definition/concrete/form-base";
 import { FormulaireLechaptCalmon } from "../../formulaire/definition/concrete/form-lechapt-calmon";
 import { FormulaireSectionParametree } from "../../formulaire/definition/concrete/form-section-parametree";
 import { FormulaireCourbeRemous } from "../../formulaire/definition/concrete/form-courbe-remous";
 import { FormulaireRegimeUniforme } from "../../formulaire/definition/concrete/form-regime-uniforme";
-import { FormulairePasseBassinDimensions } from "../../formulaire/definition/concrete/form-passe-bassin-dim";
-import { FormulairePasseBassinPuissance } from "../../formulaire/definition/concrete/form-passe-bassin-puissance";
 import { FormulaireParallelStructure } from "../../formulaire/definition/concrete/form-parallel-structures";
 import { NgParameter } from "../../formulaire/ngparam";
 
@@ -117,7 +115,7 @@ export class FormulaireService extends Observable {
     }
 
     public loadConfig(ct: CalculatorType): Promise<any> {
-        let f: string = this.getConfigPathPrefix(ct) + "config.json"
+        let f: string = this.getConfigPathPrefix(ct) + "config.json";
         return this._httpService.httpGetRequest2(undefined, undefined, undefined, f);
     }
 
@@ -125,7 +123,10 @@ export class FormulaireService extends Observable {
         let f: FormulaireDefinition;
         switch (ct) {
             case CalculatorType.ConduiteDistributrice:
-                f = new FormulaireConduiteDistributrice();
+            case CalculatorType.PabDimensions:
+            case CalculatorType.PabPuissance:
+            case CalculatorType.MacroRugo:
+                f = new FormulaireBase();
                 break;
 
             case CalculatorType.LechaptCalmon:
@@ -144,14 +145,6 @@ export class FormulaireService extends Observable {
                 f = new FormulaireCourbeRemous();
                 break;
 
-            case CalculatorType.PabDimensions:
-                f = new FormulairePasseBassinDimensions();
-                break;
-
-            case CalculatorType.PabPuissance:
-                f = new FormulairePasseBassinPuissance();
-                break;
-
             case CalculatorType.ParallelStructure:
             case CalculatorType.Dever:
             case CalculatorType.Cloisons:
@@ -298,6 +291,9 @@ export class FormulaireService extends Observable {
             case CalculatorType.Cloisons:
                 return "app/calculators/cloisons/cloisons.";
 
+            case CalculatorType.MacroRugo:
+                return "app/calculators/macrorugo/macrorugo.";
+
             default:
                 throw new Error("FormulaireService.getConfigPathPrefix() : valeur de CalculatorType " + ct + " non implémentée")
         }
diff --git a/src/locale/error_messages.fr.json b/src/locale/error_messages.fr.json
index 4a4368baf..45970603e 100644
--- a/src/locale/error_messages.fr.json
+++ b/src/locale/error_messages.fr.json
@@ -48,6 +48,7 @@
     "INFO_EXTRARES_LIB_CV": "Cv: Coefficient de vitesse d'approche",
     "INFO_EXTRARES_LIB_CVQT": "CV.QT: Débit corrigé (m³/s)",
     "INFO_EXTRARES_LIB_EC": "EC: Énergie cinétique (m)",
+    "INFO_EXTRARES_LIB_FLOWTYPE": "Type d'écoulement",
     "INFO_EXTRARES_LIB_FLU": "Ligne d'eau fluviale",
     "INFO_EXTRARES_LIB_FR": "Froude",
     "INFO_EXTRARES_LIB_HS": "Charge spécifique (m)",
@@ -61,30 +62,36 @@
     "INFO_EXTRARES_LIB_P": "Périmètre mouillé (m)",
     "INFO_EXTRARES_LIB_PV": "Puissance volumique dissipée (W/m³)",
     "INFO_EXTRARES_LIB_Q": "Débit (m³/s)",
+    "INFO_EXTRARES_LIB_Q_GUIDETECH": "Débit Guide technique (m³/s)",
     "INFO_EXTRARES_LIB_R": "Rayon hydraulique (m)",
     "INFO_EXTRARES_LIB_S": "Surface mouillée (m²)",
     "INFO_EXTRARES_LIB_TAU0": "Force tractrice (Pa)",
     "INFO_EXTRARES_LIB_TOR": "Ligne d'eau torrentielle",
     "INFO_EXTRARES_LIB_V": "Vitesse moyenne (m/s)",
+    "INFO_EXTRARES_LIB_V_GUIDETECH": "Vitesse Guide technique (m/s)",
+    "INFO_EXTRARES_LIB_VDEB": "Vitesse débitante (m/s)",
     "INFO_EXTRARES_LIB_YC": "Tirant d'eau critique (m)",
     "INFO_EXTRARES_LIB_YCO": "Tirant d'eau conjugué (m)",
     "INFO_EXTRARES_LIB_YF": "Tirant d'eau fluvial (m)",
     "INFO_EXTRARES_LIB_YN": "Tirant d'eau normal (m)",
     "INFO_EXTRARES_LIB_YT": "Tirant d'eau torrentiel (m)",
+    "INFO_EXTRARES_LIB_ZF2": "Cote de fond aval (m)",
     "INFO_LECHAPTCALMON_TITRE": "Lechapt-Calmon",
+    "INFO_LIB_ALPHA": "Coefficient alpha",
+    "INFO_LIB_BETA": "Coefficient béta",
+    "INFO_LIB_CD": "Coefficient de débit",
     "INFO_LIB_FS_PARAM_CALC": "Paramètres de calcul",
     "INFO_LIB_FS_OUVRAGE": "Ouvrage",
+    "INFO_LIB_L": "Largeur du déversoir",
     "INFO_LIB_PR": "Précision de calcul",
+    "INFO_LIB_Q": "Débit",
     "INFO_LIB_SELECT_LOIDEBIT": "Loi de débit",
     "INFO_LIB_SELECT_LOIDEBIT1_KIVI": "Kindsvater-Carter et Villemonte",
     "INFO_LIB_SELECT_OUVRAGE": "Ouvrage",
     "INFO_LIB_SELECT_OUVRAGE_SEUIL_RECT": "Seuil rectangulaire",
     "INFO_LIB_ZDV": "Cote de la crête du déversoir ou du radier de la vanne",
-    "INFO_LIB_L": "Largeur du déversoir (m)",
-    "INFO_LIB_CD": "Coefficient de débit",
-    "INFO_LIB_ALPHA": "Coefficient alpha",
-    "INFO_LIB_BETA": "Coefficient béta",
-    "INFO_LIB_ZRAM": "Cote du radier amont (m)",
+    "INFO_LIB_ZRAM": "Cote du radier amont",
+    "INFO_MACRORUGO_TITRE": "Passe à macro-rugosité",
     "INFO_MENU_NOUVELLE_CALC": "Nouvelle calculette",
     "INFO_OPTION_NO": "Non",
     "INFO_OPTION_YES": "Oui",
-- 
GitLab