diff --git a/src/structure/parallel_structure.ts b/src/structure/parallel_structure.ts
index e0d2facdeb37335231d8ea2055d4d8847f926078..682beb1c33c2d061ef60459d6a74396bc2d26b2d 100644
--- a/src/structure/parallel_structure.ts
+++ b/src/structure/parallel_structure.ts
@@ -82,6 +82,12 @@ export class ParallelStructure extends Nub {
             this.result.globalLog.addLog(st.result.log);
         }
 
+        // si une erreur d'ennoiement est survenue dans les structures, on annule les résultats
+
+        if (res.hasMessage(MessageCode.ERROR_STRUCTURE_SUBMERGENCE_LOWER_THAN, true)) {
+            res.removeValues();
+        }
+
         return res;
     }
 
diff --git a/src/util/result.ts b/src/util/result.ts
index a1cb07b4cc629a7b0abb449db9af160a71d133a0..2a8746ff93dd1bd21f3e8d83a0a1ace72d1e3974 100644
--- a/src/util/result.ts
+++ b/src/util/result.ts
@@ -1,4 +1,4 @@
-import { JalhydObject } from "../internal_modules";
+import { JalhydObject, MessageCode } from "../internal_modules";
 import { Nub } from "../internal_modules";
 import { cLog } from "../internal_modules";
 import { Message, MessageSeverity } from "../internal_modules";
@@ -272,6 +272,33 @@ export class Result extends JalhydObject {
         return true;
     }
 
+    /**
+     * determine if a message is present in result
+     * @param code message code to find
+     * @param recurs if true, search into nub children
+     */
+    public hasMessage(code: MessageCode, recurs: boolean = false): boolean {
+        if (this._globalLog.contains(code)) {
+            return true;
+        }
+
+        for (const r of this._resultElements) {
+            if (r.log.contains(code)) {
+                return true;
+            }
+        }
+
+        if (recurs && this._sourceNub !== undefined) {
+            for (const n of this._sourceNub.getChildren()) {
+                if (n.result.hasMessage(code, true)) {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
     /**
      * compute log stats (# of error, warning, info) on all result element
      */
@@ -330,4 +357,13 @@ export class Result extends JalhydObject {
             re.removeExtraResults();
         }
     }
+
+    /**
+     * Removes all values in result elements
+     */
+    public removeValues() {
+        for (const re of this._resultElements) {
+            re.removeValues();
+        }
+    }
 }
diff --git a/src/util/resultelement.ts b/src/util/resultelement.ts
index 313e464a111501518922a4641ad1aa1718ac2b2e..f9f054cdf8d395dd856df885c76000ef995d34be 100644
--- a/src/util/resultelement.ts
+++ b/src/util/resultelement.ts
@@ -192,6 +192,13 @@ export class ResultElement {
         }
     }
 
+    /**
+     * Removes all values
+     */
+    public removeValues() {
+        this._values = {};
+    }
+
     public toString(): string {
         if (this.vCalc !== undefined) {
             return String(this.vCalc);