diff --git a/src/section/section_type.ts b/src/section/section_type.ts
index 94256007bf3a5dbf6f704853b7618fa18e29e950..33a1cbee91a0caf82708ca3125aa01b439cf47f0 100644
--- a/src/section/section_type.ts
+++ b/src/section/section_type.ts
@@ -248,7 +248,11 @@ export abstract class acSection extends Debug {
         public oP: cParamsCanal;   /// Paramètres du système canal (classe oParam)
         protected oLog: cLog; /// Pour l'affichage du journal de calcul
         //public LargeurBerge; /// largeur au débordement
-        protected bSnFermee: boolean = false; /// true si la section est fermée (fente de Preissmann)
+
+        /**
+         * true si la section est fermée (on considère alors qu'il existe une fente de Preissmann)
+         */
+        protected bSnFermee: boolean = false;
 
         /**
          * Tableau contenant les données dépendantes du tirant d'eau this->rY.
@@ -265,7 +269,7 @@ export abstract class acSection extends Debug {
          * - dB : la dérivée de B par rapport Y
          */
         private arCalc = {};
-        protected calcGeo = {}; /// Données ne dépendant pas de la cote de l'eau
+        protected arCalcGeo = {}; /// Données ne dépendant pas de la cote de l'eau
         private Y_old; /// Mémorisation du tirant d'eau pour calcul intermédiaire
         private Calc_old = {}; /// Mémorisation des données hydrauliques pour calcul intermédiaire
 
@@ -283,11 +287,18 @@ export abstract class acSection extends Debug {
                 super(dbg);
                 this.oP = oP;
                 this.oLog = oLog;
-                this.CalcGeo['B'];
 
-                this._v = this.oP.v;
+                this._v = oP.v;
                 this.v.Y = 0;
                 this.v.LargeurBerge = 0;
+
+                // this.CalcGeo['B'];
+                // this.arCalcGeo['B'];
+                // this.CalcGeo('B');
+
+                // this._v = this.oP.v;
+                // this.v.Y = 0;
+                // this.v.LargeurBerge = 0;
         }
 
         get v() { return this._v; }
@@ -300,7 +311,7 @@ export abstract class acSection extends Debug {
         Reset(bGeo = true) {
                 this.arCalc = {};
                 if (bGeo) {
-                        this.calcGeo = {};
+                        this.arCalcGeo = {};
                 }
         }
 
@@ -327,6 +338,8 @@ export abstract class acSection extends Debug {
          * @return la donnée calculée
          */
         Calc(sDonnee, rY: number = undefined) {
+                this.debug("in Calc(" + sDonnee + ', rY=' + rY + ')');
+
                 if (rY != undefined && rY != this.v.Y) {
                         this.v.Y = rY;
                         // On efface toutes les données dépendantes de Y pour forcer le calcul
@@ -346,7 +359,7 @@ export abstract class acSection extends Debug {
                                         this.arCalc[sDonnee] = this[methode]();
                         }
                 }
-                //this.debug(sDonnee + '  ' + this.arCalc[sDonnee]);
+                this.debug('Calc(' + sDonnee + ')=' + this.arCalc[sDonnee]);
                 return this.arCalc[sDonnee];
         }
 
@@ -357,40 +370,40 @@ export abstract class acSection extends Debug {
          * @return la donnée calculée
          */
         CalcGeo(sDonnee) {
-                this.debug("in CalcGeo");
-                if (sDonnee != 'B' && !this.CalcGeo['B']) {
+                this.debug("in CalcGeo(" + sDonnee + ')');
+                if (sDonnee != 'B' && !this.arCalcGeo['B']) {
                         // Si la largeur aux berges n'a pas encore été calculée, on commence par ça
                         this.CalcGeo('B');
                 }
-                if (!this.CalcGeo[sDonnee]) {
+                if (!this.arCalcGeo[sDonnee]) {
                         // La donnée a besoin d'être calculée
                         this.Swap(true); // On mémorise les données hydrauliques en cours
                         this.Reset(false);
                         this.v.Y = this.oP.v.YB;
                         switch (sDonnee) {
                                 case 'B': // Largeur aux berges
-                                        this.CalcGeo[sDonnee] = this.Calc_B();
-                                        if (this.calcGeo[sDonnee] < this.oP.v.YB / 100) {
+                                        this.arCalcGeo[sDonnee] = this.Calc_B();
+                                        if (this.arCalcGeo[sDonnee] < this.oP.v.YB / 100) {
                                                 // Section fermée
                                                 this.bSnFermee = true;
                                                 // On propose une fente de Preissmann égale à 1/100 de la hauteur des berges
-                                                this.CalcGeo[sDonnee] = this.oP.v.YB / 100;
+                                                this.arCalcGeo[sDonnee] = this.oP.v.YB / 100;
                                         }
-                                        this.v.LargeurBerge = this.CalcGeo[sDonnee];
+                                        this.v.LargeurBerge = this.arCalcGeo[sDonnee];
                                         break;
                                 default:
                                         /*var methode = 'Calc_'+sDonnee + '()';
                                         this.CalcGeo[sDonnee] = eval(methode);*/
                                         var methode = 'Calc_' + sDonnee;
-                                        this.CalcGeo[sDonnee] = this[methode]();
-                                        this.debug("methodecalcgeo " + this[methode]());
+                                        this.arCalcGeo[sDonnee] = this[methode]();
+                                //   this.debug("methodecalcgeo " + this[methode]());
                         }
                         //~ spip_log('CalcGeo('.sDCalcGeonnee.',rY='.this->oP->rYB.')='.this->arCalcGeo[sDonnee],'hydraulic.'._LOG_DEBUG);
                         this.Swap(false); // On restitue les données hydrauliques en cours
                 }
-                this.debug('calcgeo  ' + sDonnee + '  ' + this.CalcGeo[sDonnee]);
+                this.debug('CalcGeo(' + sDonnee + ')=' + this.arCalcGeo[sDonnee]);
 
-                return this.CalcGeo[sDonnee];
+                return this.arCalcGeo[sDonnee];
         }
 
         /**
@@ -467,6 +480,7 @@ export abstract class acSection extends Debug {
                         return Infinity;
                 }
         }
+
         /**
          * Calcul de dérivée du rayon hydraulique par rapport au tirant d'eau.
          * @return dR
@@ -521,6 +535,7 @@ export abstract class acSection extends Debug {
                         return Infinity;
                 }
         }
+
         /**
          * Calcul du nombre de Froude.
          * @return Le nombre de Froude
@@ -533,6 +548,7 @@ export abstract class acSection extends Debug {
                         return Infinity;
                 }
         }
+
         /**
          * Calcul de dy/dx
          */
@@ -558,6 +574,7 @@ export abstract class acSection extends Debug {
                         return Y2;
                 }
         }
+
         /**
          * Calcul du point suivant de la courbe de remous par la méthode RK4.
          * @return Tirant d'eau
@@ -606,6 +623,7 @@ export abstract class acSection extends Debug {
                         return Infinity;
                 }
         }
+
         /**
          * Calcul de la charge spécifique.
          * @return Charge spécifique
@@ -613,6 +631,7 @@ export abstract class acSection extends Debug {
         Calc_Hs() {
                 return this.v.Y + Math.pow(this.Calc('V'), 2) / (2 * cParamsCanal.G);
         }
+
         /**
          * Calcul de la charge spécifique critique.
          * @return Charge spécifique critique
@@ -625,6 +644,7 @@ export abstract class acSection extends Debug {
                 this.Swap(false);
                 return Hsc;
         }
+
         /**
          * Calcul du tirant d'eau critique.
          * @return tirant d'eau critique
@@ -639,6 +659,7 @@ export abstract class acSection extends Debug {
                 this.HautCritique = hautCritique.Newton(this.oP.v.YB);
                 return this.HautCritique;
         }
+
         /**
          * Calcul du tirant d'eau normal.
          * @return tirant d'eau normal
@@ -658,6 +679,7 @@ export abstract class acSection extends Debug {
                 }
                 return this.HautNormale;
         }
+
         /**
          * Calcul du tirant d'eau fluvial.
          * @return tirant d'eau fluvial
@@ -671,6 +693,7 @@ export abstract class acSection extends Debug {
                         return oHautCorrespondante.Newton(this.Calc('Yc') * 2);
                 }
         }
+
         /**
          * Calcul du tirant d'eau torrentiel.
          * @return tirant d'eau torrentiel
@@ -684,6 +707,7 @@ export abstract class acSection extends Debug {
                         return oHautCorrespondante.Newton(this.CalcGeo('Yc') / 2);
                 }
         }
+
         /**
          * Calcul du tirant d'eau conjugué.
          * @return tirant d'eau conjugué
@@ -704,6 +728,7 @@ export abstract class acSection extends Debug {
                  }
                  return Yco;*/ // c quoi Yco ?
         }
+
         /**
          * Calcul de la contrainte de cisaillement.
          * @return contrainte de cisaillement
@@ -711,6 +736,7 @@ export abstract class acSection extends Debug {
         Calc_Tau0() {
                 return 1000 * cParamsCanal.G * this.Calc('R') * this.Calc('J');
         }
+
         /**
          * Calcul de la distance du centre de gravité de la section à la surface libre
          * multiplié par la surface hydraulique
@@ -719,6 +745,7 @@ export abstract class acSection extends Debug {
         Calc_SYg(rY) {
                 return Math.pow(rY, 2) * this.v.LargeurBerge / 2;
         }
+
         /**
          * Calcul de la dérivée distance du centre de gravité de la section à la surface libre
          * multiplié par la surface hydraulique
@@ -727,6 +754,7 @@ export abstract class acSection extends Debug {
         Calc_dSYg(rY) {
                 return rY * this.v.LargeurBerge;
         }
+
         /**
          * Calcul de l'impulsion hydraulique.
          * @return Impulsion hydraulique
@@ -734,6 +762,7 @@ export abstract class acSection extends Debug {
         Calc_Imp() {
                 return 1000 * (this.oP.v.Q * this.Calc('V') + cParamsCanal.G * this.Calc('SYg'));
         }
+
         /**
          * Calcul de l'angle Alpha entre la surface libre et le fond pour les sections circulaires.
          * @return Angle Alpha pour une section circulaire, 0 sinon.
@@ -741,6 +770,7 @@ export abstract class acSection extends Debug {
         Calc_Alpha() {
                 return 0;
         }
+
         /**
          * Calcul de la dérivée de l'angle Alpha entre la surface libre et le fond pour les sections circulaires.
          * @return Dérivée de l'angle Alpha pour une section circulaire, 0 sinon.
@@ -748,6 +778,7 @@ export abstract class acSection extends Debug {
         Calc_dAlpha() {
                 return 0;
         }
+
         /**
          * Fournit les coordonnées des points d'une demi section pour le dessin
          * @return tableau de couples de coordonnées (x,y)