diff --git a/src/pipe_flow/pl_lechaptcalmon.ts b/src/pipe_flow/pl_lechaptcalmon.ts
index 3c531d4657bec917b601e98436a740f59eff0265..698bb7c8120947e500c8c7b720077fa0e73569c8 100644
--- a/src/pipe_flow/pl_lechaptcalmon.ts
+++ b/src/pipe_flow/pl_lechaptcalmon.ts
@@ -91,8 +91,11 @@ export class PL_LechaptCalmon extends PressureLossLaw implements Observer {
         this.properties.setPropValue("material", m);
     }
 
-    protected calc_Jlin(): number {
-        return this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v) / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
+    protected calc_Jlin(r: Result) {
+        if (r.values.V < 0.4 || r.values.V > 2) {
+            r.resultElement.log.add(new Message(MessageCode.WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2));
+        }
+        r.values.Jl = this.prms.L.v * Math.pow(this.prms.Q.v, this.prms.M.v) / Math.pow(this.prms.D.v, this.prms.N.v) * (this.prms.Lg.v / 1000);
     }
 
     /**
diff --git a/src/pipe_flow/pressureloss_law.ts b/src/pipe_flow/pressureloss_law.ts
index 889a2c5dcafac643fadf6c6b9f4185be425c0ae1..7b1f3f4cce86a9f2753e4ae7441c24679968c9d7 100644
--- a/src/pipe_flow/pressureloss_law.ts
+++ b/src/pipe_flow/pressureloss_law.ts
@@ -3,7 +3,7 @@ import { Result } from "../internal_modules";
 import { Message, MessageCode } from "../internal_modules";
 
 /**
- * Loi de perte de charge
+ * Lois de perte de charge
  */
 export enum PressureLossType {
     LechaptCalmon
@@ -28,24 +28,25 @@ export abstract class PressureLossLaw extends Nub {
     }
 
     /**
-     * calcul de la perte de charge linéaire spécifique à chaque mdule de perte de charge
+     * Calcul de la perte de charge linéaire spécifique à chaque module de perte de charge.
+     * Le paramètre Result est in-out cad qu'il est modifié avec la charge linéaire.
      */
-    protected abstract calc_Jlin(): number;
+    protected abstract calc_Jlin(r: Result): any;
 
     public Equation(sVarCalc: string): Result {
         if (sVarCalc !== "J") {
-            throw new Error("LechaptCalmon.Equation() : invalid variable name " + sVarCalc);
+            throw new Error("PressureLossLaw.Equation() : invalid variable name " + sVarCalc);
         }
 
         const r: Result = new Result(0, this);
 
+        // la vitesse est générique
         r.values.V = this.prms.Q.v / (Math.PI * Math.pow(this.prms.D.v / 2, 2));
-        if (r.values.V < 0.4 || r.values.V > 2) {
-            r.resultElement.log.add(new Message(MessageCode.WARNING_LECHAPT_CALMON_SPEED_OUTSIDE_04_2));
-        }
-        r.values.Jl = this.calc_Jlin();
 
-        r.vCalc = r.values.Jl + this.prms.Kloc.v / 19.62 * Math.pow(r.values.V, 2);
+        // perte de charge linéaire propré à chaque module
+        this.calc_Jlin(r);
+
+        r.vCalc = r.values.Jl + this.prms.Kloc.v / 19.62 * Math.pow(r.values.V, 2); // perte de charge totale
 
         return r;
     }