diff --git a/jalhyd_branch b/jalhyd_branch
index 094bda298f4c32b69e4a6b56399918bfde4dfca0..ba5ab733debaf6478f0d6b583eb80b41848804b7 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-316-courbe-de-remous-et-bief-remonter-une-erreur-quand-le-pas-de-discretisation-est-superieur-la
+324-pab-ajouter-la-charge-et-l-ennoiement-dans-le-tableau-de-resultat-et-l-export
diff --git a/src/app/calculators/cloisons/en.json b/src/app/calculators/cloisons/en.json
index af443e0f84fa4abc8864354ad601a33c380e2747..16d63c6461820ca6ff4ec716ce47d7ab84219ee8 100644
--- a/src/app/calculators/cloisons/en.json
+++ b/src/app/calculators/cloisons/en.json
@@ -6,5 +6,7 @@
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
     "UNIT_ZDV": "m",
-    "UNIT_P": "m"
+    "UNIT_P": "m",
+    "UNIT_H2": "m",
+    "UNIT_SUBMERGENCE": "%"
 }
\ No newline at end of file
diff --git a/src/app/calculators/cloisons/fr.json b/src/app/calculators/cloisons/fr.json
index 54fed4e39815913c00d0f8200c4262d758e74e2c..8bbc3d0d02f49f90b4cb17fa56bf2ac53ebb14c4 100644
--- a/src/app/calculators/cloisons/fr.json
+++ b/src/app/calculators/cloisons/fr.json
@@ -6,5 +6,7 @@
 	"UNIT_Q": "m³/s",
     "UNIT_YMOY": "m",
     "UNIT_ZDV": "m",
-    "UNIT_P": "m"
+    "UNIT_P": "m",
+    "UNIT_H2": "m",
+    "UNIT_SUBMERGENCE": "%"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pab/en.json b/src/app/calculators/pab/en.json
index db6cefb8a0ed5388fe26a1b04ff7a0dae1d3bfc5..d3fda007d382bbceb0f7694ff26ae4a6ac06cd08 100644
--- a/src/app/calculators/pab/en.json
+++ b/src/app/calculators/pab/en.json
@@ -25,5 +25,8 @@
     "UNIT_Z": "m",
 	"UNIT_ZRAM": "m",
 	"UNIT_ZRB": "m",
-	"UNIT_ZRMB": "m"
+	"UNIT_ZRMB": "m",
+	"UNIT_H1": "m",
+	"UNIT_H2": "m",
+	"UNIT_SUBMERGENCE": "%"
 }
\ No newline at end of file
diff --git a/src/app/calculators/pab/fr.json b/src/app/calculators/pab/fr.json
index c08b87e1ff0f912c5456bc1c9f82967631793fe6..d951248b73d41ab075deb3083c89cff81040e1ee 100644
--- a/src/app/calculators/pab/fr.json
+++ b/src/app/calculators/pab/fr.json
@@ -25,5 +25,8 @@
     "UNIT_Z": "m",
 	"UNIT_ZRAM": "m",
 	"UNIT_ZRB": "m",
-	"UNIT_ZRMB": "m"
+	"UNIT_ZRMB": "m",
+    "UNIT_H1": "m",
+    "UNIT_H2": "m",
+    "UNIT_SUBMERGENCE": "%"
 }
\ No newline at end of file
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index 3591658a7cbf742531918f8509acfa69245600cb..b541cdc52e332f6cde19abc74c9c9730db870fd8 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -46,7 +46,7 @@ export class PabResultsTableComponent extends ResultsComponentDirective implemen
             this.results
             && this.results.cloisonsResults
             && this.results.cloisonsResults.length > 0
-            && ! this.results.hasOnlyErrors()
+            && !this.results.hasOnlyErrors()
         ) {
             const pr = this.results;
             // when a parameter is variating, index of the variating parameter
@@ -88,7 +88,10 @@ export class PabResultsTableComponent extends ResultsComponentDirective implemen
                         fv(r2n.YMOY),
                         fv(r2n.ZRMB),
                         fv(r2n.QA),
-                        this.getJetTypes(pr.cloisonsResults[i], vi)
+                        this.getJetTypes(pr.cloisonsResults[i], vi),
+                        this.getStructuresParam(pr.cloisonsResults[i], vi,"H1"),
+                        this.getStructuresParam(pr.cloisonsResults[i], vi,"H2"),
+                        this.getStructuresParam(pr.cloisonsResults[i], vi,"SUBMERGENCE"),
                     ]);
                 }
             }
@@ -104,7 +107,10 @@ export class PabResultsTableComponent extends ResultsComponentDirective implemen
                     fv(rln.DH),
                     fv(rln.Q),
                     "", "", "", "",
-                    this.getJetTypes(pr.cloisonAvalResults, vi)
+                    this.getJetTypes(pr.cloisonAvalResults, vi),
+                    this.getStructuresParam(pr.cloisonAvalResults, vi, "H1"),
+                    this.getStructuresParam(pr.cloisonAvalResults, vi, "H2"),
+                    this.getStructuresParam(pr.cloisonAvalResults, vi, "SUBMERGENCE"),
                 ]);
                 // extra lift gate ?
                 if (cloisonAval && cloisonAval.hasVanneLevante()) {
@@ -122,19 +128,29 @@ export class PabResultsTableComponent extends ResultsComponentDirective implemen
     }
 
     private getJetTypes(re: Result, vi: number): string {
-        // jet type for each device
+        return this.getStructuresParam(re, vi, "ENUM_StructureJetType", "INFO_ENUM_STRUCTUREJETTYPE_");
+    }
+
+    private getStructuresParam(re: Result, vi: number, propName: string, localisationCode?: string): string {
         const devices = re.sourceNub.getChildren();
-        const jetTypes: string[] = devices.map((device) => {
-            const jt = device.result.resultElements[vi].getValue("ENUM_StructureJetType");
-            let jetType = this.intlService.localizeText("INFO_ENUM_STRUCTUREJETTYPE_" + jt);
+        // parameter for each device
+        const params: string[] = devices.map((device) => {
+            const val = device.result.resultElements[vi].getValue(propName);
+            let sVal;
+            if (localisationCode !== undefined) {
+                sVal = this.intlService.localizeText(localisationCode + val);
+            }
+            else {
+                sVal = fv(val);
+            }
             if (devices.length > 1) {
                 // evil HTML injection in table cell (simpler)
-                jetType = this.intlService.localizeText("INFO_LIB_FS_OUVRAGE") + " n°"
-                    + (device.findPositionInParent() + 1) + ": " + jetType;
+                sVal = this.intlService.localizeText("INFO_LIB_FS_OUVRAGE") + " n°"
+                    + (device.findPositionInParent() + 1) + ": " + sVal;
             }
-            return jetType;
+            return sVal;
         });
-        return `<div class="inner-cell-line">` + jetTypes.join(`, </div><div class="inner-cell-line">`) + `</div>`;
+        return `<div class="inner-cell-line">` + params.join(`, </div><div class="inner-cell-line">`) + `</div>`;
     }
 
     public get headers() {
diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts
index 2f96053696acb3b0087421f084e992cfe0c0baa8..155d7bbfd27f10c91fbd6041d27e929d093e427f 100644
--- a/src/app/results/pab-results.ts
+++ b/src/app/results/pab-results.ts
@@ -40,7 +40,10 @@ export class PabResults extends MultiDimensionResults implements PlottableData {
             "YMOY",
             "ZRMB",
             "QA",
-            "ENUM_StructureJetType"
+            "ENUM_StructureJetType",
+            "H1",
+            "H2",
+            "SUBMERGENCE"
         ];
         // axes par défaut
         this.chartX = this.chartX || "CLOISON";
@@ -61,7 +64,7 @@ export class PabResults extends MultiDimensionResults implements PlottableData {
             if (sn.parent) {
                 ct = sn.parent.calcType;
             }
-            let label = ServiceFactory.formulaireService.expandVariableNameAndUnit(ct , h);
+            let label = ServiceFactory.formulaireService.expandVariableNameAndUnit(ct, h);
             label += this.getHelpLink(h);
             return label;
         });
@@ -94,7 +97,7 @@ export class PabResults extends MultiDimensionResults implements PlottableData {
 
     // do not test result.ok else log messages will prevent partial results from being displayed
     public get hasResults(): boolean {
-        return this.result !== undefined && ! this.result.hasOnlyErrors;
+        return this.result !== undefined && !this.result.hasOnlyErrors;
     }
 
     /** retourne true si au moins un calcul a échoué (le log a un code négatif) */
@@ -231,6 +234,15 @@ export class PabResults extends MultiDimensionResults implements PlottableData {
                 data.push(this.Z2[vi]);
                 break;
 
+            case "H1":
+            case "H2":
+            case "SUBMERGENCE":
+                for (let i = 0; i < l; i++) {
+                    data.push(this.cloisonsResults[i].resultElements[vi].vCalc);
+                }
+                data.push(this.cloisonAvalResults.resultElements[vi].vCalc);
+                break;
+
             case "PV":
             case "YMOY":
             case "ZRMB":
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index a1a25b70017432cc06086e18029a82697e9a54db..56a2f105b8fe381cc8260baac031adecf8349a29 100755
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -306,7 +306,8 @@
     "INFO_LIB_FS_OUVRAGE": "Device",
     "INFO_LIB_FS_PARAM_CALC": "Calculation parameters",
     "INFO_LIB_FS_PARAM_HYDRO": "Hydraulic parameters",
-    "INFO_LIB_H1": "Head",
+    "INFO_LIB_H1": "Upstream head",
+    "INFO_LIB_H2": "Downstream head",
     "INFO_LIB_HS": "Specific head",
     "INFO_LIB_HSC": "Critical head",
     "INFO_LIB_I-J": "Linear variation of specific head",
@@ -406,6 +407,7 @@
     "INFO_LIB_PVMAXPREC": "Recommanded maximal dissipated power",
     "INFO_LIB_PVMAXLIM": "Limit maximal dissipated power",
     "INFO_LIB_PAB_CHART_SEUILS": "Weirs (%s)",
+    "INFO_LIB_SUBMERGENCE": "Submergence",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT": "%s (%s)",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 928503bff8935980624ffe1932ce2f66cd8eca70..225b0751e30d7981d2294f75d501e110605f0bed 100755
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -307,7 +307,8 @@
     "INFO_LIB_FS_OUVRAGE": "Ouvrage",
     "INFO_LIB_FS_PARAM_CALC": "Paramètres de calcul",
     "INFO_LIB_FS_PARAM_HYDRO": "Paramètres hydrauliques",
-    "INFO_LIB_H1": "Charge",
+    "INFO_LIB_H1": "Charge amont",
+    "INFO_LIB_H2": "Charge aval",
     "INFO_LIB_HS": "Charge spécifique",
     "INFO_LIB_HSC": "Charge critique",
     "INFO_LIB_I-J": "Variation linéaire de l'énergie spécifique",
@@ -407,6 +408,7 @@
     "INFO_LIB_PVMAXPREC": "Puissance volumique dissipée maximale recommandée",
     "INFO_LIB_PVMAXLIM": "Puissance volumique dissipée maximale limite",
     "INFO_LIB_PAB_CHART_SEUILS": "Seuils (%s)",
+    "INFO_LIB_SUBMERGENCE": "Ennoiement",
     "INFO_LINKED_VALUE_CHILD": "%s (%s, %s %s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT_OF": "%s (%s)",
     "INFO_LINKED_VALUE_EXTRA_RESULT": "%s (%s)",