diff --git a/spec/fuzzing.spec.ts b/spec/fuzzing.spec.ts
index 060e09dcab6f3ea9098423aa5876a141276f7c79..c264390629b89d77ec0e084797dc8aa2f5d8f58b 100644
--- a/spec/fuzzing.spec.ts
+++ b/spec/fuzzing.spec.ts
@@ -155,6 +155,7 @@ describe("Fuzz testing", () => {
         }
     });
     for (const iCalType of calTypes) {
+        // if ([CalculatorType.MacroRugoCompound].includes(iCalType)) {
         if (!nubsNotTested.includes(iCalType)) {
             describe(CalculatorType[iCalType], () => {
                 for (let i = 0; i < fuzzyCfg.nTests; i++) {
diff --git a/src/nub.ts b/src/nub.ts
index 4e32a729dd5a101f6f6d688758d39708c39718f4..a9c8ce5d417b8c46d521d81dd73526bba82814ad 100644
--- a/src/nub.ts
+++ b/src/nub.ts
@@ -71,7 +71,6 @@ export abstract class Nub extends ComputeNode implements IObservable {
         for (const p of this.parameterIterator) {
             if (
                 p.symbol !== "Pr" &&
-                p.visible &&
                 [ParamCalculability.DICHO, ParamCalculability.EQUATION].includes(p.calculability)
             ) {
                 calcPrms.push(p);
diff --git a/src/structure/structure.ts b/src/structure/structure.ts
index 01980793bd25b7caecb98d4437e8971bf6631551..75285fdc5c0d19e9c5ae176dc28afb9d70496b33 100644
--- a/src/structure/structure.ts
+++ b/src/structure/structure.ts
@@ -320,7 +320,7 @@ export abstract class Structure extends Nub {
         this.prms.Z2.calculability = ParamCalculability.DICHO;
         this.prms.h1.calculability = ParamCalculability.DICHO;
         this.prms.h2.calculability = ParamCalculability.DICHO;
-        this.prms.W.calculability = ParamCalculability.DICHO;
+        this.prms.W.calculability = ParamCalculability.FIXED;
     }
 
     /**
diff --git a/src/structure/structure_cem88d.ts b/src/structure/structure_cem88d.ts
index 08bfeb4c0f176b18dc3ae35b0997933dc417d1a4..51d820c5f311d05969f50d2d9e69be4983040851 100644
--- a/src/structure/structure_cem88d.ts
+++ b/src/structure/structure_cem88d.ts
@@ -1,3 +1,4 @@
+import { ParamCalculability } from "../param/param-definition";
 import { Result } from "../util/result";
 import { RectangularStructure } from "./rectangular_structure";
 import { RectangularStructureParams } from "./rectangular_structure_params";
@@ -65,6 +66,14 @@ export class StructureGateCem88d extends RectangularStructure {
 
         return new Result(v, this, data);
     }
+
+    /**
+     * paramétrage de la calculabilité des paramètres
+     */
+    protected setParametersCalculability() {
+        super.setParametersCalculability();
+        this.prms.W.calculability = ParamCalculability.DICHO;
+    }
 }
 
 // tslint:disable-next-line:max-classes-per-file
@@ -81,4 +90,5 @@ export class StructureWeirCem88d extends StructureGateCem88d {
     protected getFlowMode(): StructureFlowMode {
         return StructureFlowMode.WEIR;
     }
+
 }
diff --git a/src/structure/structure_cem88v.ts b/src/structure/structure_cem88v.ts
index 8a5d9c49dc4e65fa1f17d165bad5fe3c28e7f096..dec63d4005427e6400fb2ffbe4793e3d70d0da34 100644
--- a/src/structure/structure_cem88v.ts
+++ b/src/structure/structure_cem88v.ts
@@ -1,3 +1,4 @@
+import { ParamCalculability } from "../param/param-definition";
 import { Result } from "../util/result";
 import { RectangularStructure } from "./rectangular_structure";
 import { RectangularStructureParams } from "./rectangular_structure_params";
@@ -115,6 +116,14 @@ export class StructureGateCem88v extends RectangularStructure {
         }
     }
 
+    /**
+     * paramétrage de la calculabilité des paramètres
+     */
+    protected setParametersCalculability() {
+        super.setParametersCalculability();
+        this.prms.W.calculability = ParamCalculability.DICHO;
+    }
+
     private getAlfa(h2: number): number {
         let alfa: number = 1 - 0.14 * (h2) / this.W;
         alfa = Math.min(Math.max(alfa, 0.4), 0.75);
@@ -147,4 +156,5 @@ export class StructureWeirCem88v extends StructureGateCem88v {
     protected getFlowMode(): StructureFlowMode {
         return StructureFlowMode.WEIR;
     }
+
 }
diff --git a/src/structure/structure_cunge80.ts b/src/structure/structure_cunge80.ts
index 79c2fff0fad296935982686a32f4d529251aa001..a19f4354df4cf259671c08d13d11d653697f8d51 100644
--- a/src/structure/structure_cunge80.ts
+++ b/src/structure/structure_cunge80.ts
@@ -1,3 +1,4 @@
+import { ParamCalculability } from "../param/param-definition";
 import { Result } from "../util/result";
 import { RectangularStructure } from "./rectangular_structure";
 import { RectangularStructureParams } from "./rectangular_structure_params";
@@ -80,6 +81,14 @@ export class StructureGateCunge80 extends RectangularStructure {
             }
         }
     }
+
+    /**
+     * paramétrage de la calculabilité des paramètres
+     */
+    protected setParametersCalculability() {
+        super.setParametersCalculability();
+        this.prms.W.calculability = ParamCalculability.DICHO;
+    }
 }
 
 // tslint:disable-next-line:max-classes-per-file
@@ -94,4 +103,5 @@ export class StructureWeirCunge80 extends StructureGateCunge80 {
     protected getFlowMode(): StructureFlowMode {
         return StructureFlowMode.WEIR;
     }
+
 }
diff --git a/src/structure/structure_rectangular_orifice_free.ts b/src/structure/structure_rectangular_orifice_free.ts
index 8f0592b63d02705193da02a36847125862538040..18c2cc80128182f82fc4b37c2c37bae8dd383a0f 100644
--- a/src/structure/structure_rectangular_orifice_free.ts
+++ b/src/structure/structure_rectangular_orifice_free.ts
@@ -1,3 +1,4 @@
+import { ParamCalculability } from "../param/param-definition";
 import { Result } from "../util/result";
 import { RectangularStructure } from "./rectangular_structure";
 import { RectangularStructureParams } from "./rectangular_structure_params";
@@ -34,4 +35,12 @@ export class StructureRectangularOrificeFree extends RectangularStructure {
     protected getFlowRegime() {
         return StructureFlowRegime.FREE;
     }
+
+    /**
+     * paramétrage de la calculabilité des paramètres
+     */
+    protected setParametersCalculability() {
+        super.setParametersCalculability();
+        this.prms.W.calculability = ParamCalculability.DICHO;
+    }
 }
diff --git a/src/structure/structure_rectangular_orifice_submerged.ts b/src/structure/structure_rectangular_orifice_submerged.ts
index 2550a70e5e02d748e56d526183728d7872ca9401..257bbd495b86d677eb85ba04ee657e9fdbaddd96 100644
--- a/src/structure/structure_rectangular_orifice_submerged.ts
+++ b/src/structure/structure_rectangular_orifice_submerged.ts
@@ -1,3 +1,4 @@
+import { ParamCalculability } from "../param/param-definition";
 import { Result } from "../util/result";
 import { RectangularStructure } from "./rectangular_structure";
 import { RectangularStructureParams } from "./rectangular_structure_params";
@@ -37,4 +38,12 @@ export class StructureRectangularOrificeSubmerged extends RectangularStructure {
     protected getFlowRegime() {
         return StructureFlowRegime.SUBMERGED;
     }
+
+    /**
+     * paramétrage de la calculabilité des paramètres
+     */
+    protected setParametersCalculability() {
+        super.setParametersCalculability();
+        this.prms.W.calculability = ParamCalculability.DICHO;
+    }
 }