diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts
index e22531ae1800083cad07623f6e869d42146e2a73..2a17ac835199ca571973e200ee0defb87507914d 100644
--- a/src/structure/parallel_structure.ts
+++ b/src/structure/parallel_structure.ts
@@ -74,7 +74,14 @@ export class ParallelStructure extends Nub {
             this._result.globalLog.insert(new Message(MessageCode.ERROR_STRUCTURE_AU_MOINS_UNE));
             return this._result;
         }
-        return super.CalcSerie(rInit);
+        const res = super.CalcSerie(rInit);
+
+        // check structures submergence for some discharge laws
+        for (const st of this.structures) {
+            st.checkSubmergence();
+        }
+
+        return res;
     }
 
     /**
diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index 09e64c33bf7a8e0008784f6f7c6064a6ab8285de..3f5b891a4172ceda543a45e82c5d95b49fb1a4e7 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -77,6 +77,26 @@ export abstract class Structure extends ChildNub {
         return 100;
     }
 
+    private checkSubmergenceMin(loi: LoiDebit, min: number) {
+        if (this.loiDebit === loi) {
+            const h2h1ratio = this.prms.h2.v / this.prms.h1.v;
+            if (h2h1ratio < min) {
+                this._result.resultElement.addMessage(new Message(
+                    MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN,
+                    {
+                        submergencePerc: this.computeSubmergencePercentage().toString(),
+                        min: min
+                    }
+                ));
+            }
+        }
+    }
+
+    public checkSubmergence() {
+        this.checkSubmergenceMin(LoiDebit.WeirSubmergedLarinier, 0.5);
+        this.checkSubmergenceMin(LoiDebit.WeirSubmerged, 0.6);
+    }
+
     /** Constante utile : Racine de 2g */
     protected static readonly R2G: number = Math.sqrt(2 * 9.81);
 
diff --git a/src/util/message.ts b/src/util/message.ts
index 7f5e56d009dbb1af5b43d03ce361acccd5354cbb..77253f6882a12db3a022a8d7c5328b55b6956aca 100644
--- a/src/util/message.ts
+++ b/src/util/message.ts
@@ -512,6 +512,11 @@ export enum MessageCode {
      */
     ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL,
 
+    /**
+     * Structure : l'ennoiement %submergencePerc% est inférieur à %min%
+     */
+    ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN,
+
     /**
      * Il faut au moins un ouvrage dans une structure
      */