diff --git a/spec/structure/structure_weir_submerged_larinier.spec.ts b/spec/structure/structure_weir_submerged_larinier.spec.ts
index 1952ed2f26f196c7e1f6e80312025e39965534f9..217491c52244d3bd3a85f5d1695fc17f4f6930c0 100644
--- a/spec/structure/structure_weir_submerged_larinier.spec.ts
+++ b/spec/structure/structure_weir_submerged_larinier.spec.ts
@@ -10,12 +10,13 @@ import { StructureFlowMode, StructureFlowRegime } from "../../src/structure/stru
 // tslint:disable-next-line:max-line-length
 import { RectangularStructureParams, StructureWeirSubmergedLarinier } from "../../src/structure/structure_weir_submerged_larinier";
 import { itCalcQ } from "../structure/functions";
+import { precDigits } from "../test_config";
 
 const prms: RectangularStructureParams = new RectangularStructureParams(0, 101, 102, 101.5, 0.2, 0.65);
 const test: StructureWeirSubmergedLarinier = new StructureWeirSubmergedLarinier(prms, false);
 
-describe("Class CloisonsOrifice: ", () => {
-    describe("Calc(Q): ", () => {
+describe("Class StructureWeirSubmergedLarinier: ", () => {
+    xdescribe("Calc(Q): ", () => {
         const Z1: number[] = [102];
         const Q: number[] = [0.407];
         const mode: StructureFlowMode = StructureFlowMode.WEIR;
@@ -24,4 +25,13 @@ describe("Class CloisonsOrifice: ", () => {
             itCalcQ(test, Z1[i], Infinity, Q[i], mode, regime);
         }
     });
+    describe("Calc(Z1): ", () => {
+        it("Z1(Q=0.780) should be 75.301", () => {
+            const testZ1 = new StructureWeirSubmergedLarinier(
+                new RectangularStructureParams(0.780, 73.665, 75.301, 75.077, 0.35, 0.65),
+                false);
+            testZ1.prms.Z1.v = 100; // Test with initial condition far from solution
+            expect(testZ1.Calc("Z1").vCalc).toBeCloseTo(75.301, precDigits);
+        });
+    });
 });
diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index c92d5e381cebcb8b3c820252c6b7cf00b027ea04..0d44f85b78c5971fd2856f550cc523eff6a063f1 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -232,6 +232,9 @@ export abstract class Structure extends Nub {
         if ((sVarCalc === "Q" && (this.prms.h1.v < this.prms.h2.v)) || (sVarCalc !== "Q" && this.prms.Q.v < 0)) {
             [this.prms.h1.v, this.prms.h2.v] = [this.prms.h2.v, this.prms.h1.v]; // Swap ES6 fashion
             const res: Result = super.Calc(sVarCalc, rInit);
+            if (sVarCalc === "Q") {
+                res.vCalc = -res.vCalc;
+            }
             [this.prms.h1.v, this.prms.h2.v] = [this.prms.h2.v, this.prms.h1.v]; // Swap ES6 fashion
             return res;
         }
diff --git a/src/structure/structure_props.ts b/src/structure/structure_props.ts
index 5c366ecf2b05673a42c82d9b3bd1e617ea609502..04cd480a1c55a08c95b696394cfef434fe1af771 100644
--- a/src/structure/structure_props.ts
+++ b/src/structure/structure_props.ts
@@ -33,7 +33,7 @@ export enum LoiDebit {
     TriangularWeirFree,
     // Loi de débit seuil triangulaire tronqué
     TriangularTruncWeirFree,
-    // Loi de débit seuil noyé (Larinier 1992)
+    // Loi de débit fente noyée (Larinier 1992)
     WeirSubmergedLarinier,
     // Loi de débit orifice noyé
     OrificeSubmerged
@@ -45,7 +45,7 @@ export const loiAdmissiblesOuvrages: { [key: string]: LoiDebit[] } = {
     ],
     SeuilRectangulaire: [
         LoiDebit.WeirCem88d, LoiDebit.WeirCem88v, LoiDebit.Cunge80, LoiDebit.WeirFree,
-        LoiDebit.KIVI
+        LoiDebit.KIVI, LoiDebit.WeirSubmergedLarinier
     ],
     SeuilTriangulaire: [
         LoiDebit.TriangularWeirFree