diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index abc74247e7a4c3a7d877aa50731640534b4e1437..ae38d7ea066c7ddc0ec38436e108ac87bc057bee 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -80,6 +80,7 @@ import { LogEntryComponent } from "./components/log-entry/log-entry.component";
 import { ParamLinkComponent } from "./components/param-link/param-link.component";
 import { SelectModelFieldLineComponent } from "./components/select-model-field-line/select-model-field-line.component";
 import { PabTableComponent } from "./components/pab-table/pab-table.component";
+import { PabVariableResultsSelectorComponent } from "./components/pab-results/pab-variable-results-selector.component";
 
 import { DialogConfirmEmptySessionComponent } from "./components/dialog-confirm-empty-session/dialog-confirm-empty-session.component";
 import { DialogConfirmCloseCalcComponent } from "./components/dialog-confirm-close-calc/dialog-confirm-close-calc.component";
@@ -185,6 +186,7 @@ const appRoutes: Routes = [
     PabResultsComponent,
     PabResultsTableComponent,
     PabTableComponent,
+    PabVariableResultsSelectorComponent,
     ParamComputedComponent,
     ParamFieldLineComponent,
     ParamLinkComponent,
diff --git a/src/app/components/fixedvar-results/var-results.component.ts b/src/app/components/fixedvar-results/var-results.component.ts
index 7a97e80c6028145b7443e1cb61c1b9ce9df197f2..424e434239f081897fa449828c155dfe2fe6698e 100644
--- a/src/app/components/fixedvar-results/var-results.component.ts
+++ b/src/app/components/fixedvar-results/var-results.component.ts
@@ -72,7 +72,7 @@ export class VarResultsComponent extends ResultsComponent {
             }
             this._headers = this._headers.concat(this._varResults.extraResultHeaders);
 
-            // C. pre-extract variable parameters valueslet longest = 0;
+            // C. pre-extract variable parameters values
             const varValues = [];
             // find longest list
             this.size = 0;
diff --git a/src/app/components/generic-calculator/calculator.component.html b/src/app/components/generic-calculator/calculator.component.html
index 72238c220a40910aa4b7850ff78f73b7b9dfb24c..f3fb61d6c1b179a8c58c4054dad4386e8820b78a 100644
--- a/src/app/components/generic-calculator/calculator.component.html
+++ b/src/app/components/generic-calculator/calculator.component.html
@@ -34,6 +34,7 @@
 
                 <!-- chapitres -->
                 <mat-card id="calc-card-field-sets"
+                  [class.pab-field-sets]="isPAB"
                   [fxFlex.gt-xs]="isPAB ? '1 0 auto' : '1 0 400px'"
                   [fxFlex.lt-sm]="isPAB ? '1 0 auto' : '1 0 300px'">
 
@@ -63,6 +64,7 @@
 
                 <!-- résultats -->
                 <mat-card id="calc-card-results"
+                  [class.pab-results]="isPAB"
                   [fxFlex.gt-xs]="isPAB ? '1 0 auto' : '1 0 400px'"
                   [fxFlex.lt-sm]="isPAB ? '1 0 auto' : '1 0 300px'">
 
diff --git a/src/app/components/generic-calculator/calculator.component.scss b/src/app/components/generic-calculator/calculator.component.scss
index c9cbd66b283bf1f3543a3101b9c9dcf91a80ce05..e1e07ee877c8930fded6cb3a3ce2e3f29f5d4330 100644
--- a/src/app/components/generic-calculator/calculator.component.scss
+++ b/src/app/components/generic-calculator/calculator.component.scss
@@ -38,6 +38,10 @@ mat-card {
         margin-left: 1em;
         margin-right: 1em;
 
+        &.pab-field-sets {
+            margin-right: -1em;
+        }
+
         mat-card-actions {
             text-align: center;
 
@@ -51,8 +55,12 @@ mat-card {
         margin-left: 1em;
         margin-right: 1em;
 
+        &.pab-results {
+            margin-right: -1em;
+        }
+
         mat-card-header {
-            margin-bottom: 1em;
+            // margin-bottom: 1em;
 
             #generate-pab {
                 height: min-content;
diff --git a/src/app/components/pab-results/pab-results-table.component.scss b/src/app/components/pab-results/pab-results-table.component.scss
index 7e227e04eb8446b28b1a55995311e77330982856..ea1d83f80958f4d7b394b8706813e254fe895167 100644
--- a/src/app/components/pab-results/pab-results-table.component.scss
+++ b/src/app/components/pab-results/pab-results-table.component.scss
@@ -3,7 +3,6 @@
 }
 
 .pab-results-table-container {
-    margin-top: 2em;
     background-color: white;
 }
 
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index 959e2a8483e22ad7f44ae12a2d632e1a58a96ca5..707d73cf9b84d32c67815e13a1446fdfdad6640e 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -46,15 +46,18 @@ export class PabResultsTableComponent extends ResultsComponent {
         ) {
             const pr = this._pabResults;
             const nDigits = this.appSetupService.displayDigits;
+            // when a parameter is variating, index of the variating parameter
+            // values to build the data from
+            const vi = pr.variableIndex;
 
             // refresh headers here if language changed
             this._headers = pr.headers;
 
             // line 1
-            if (pr.cloisonsResults[0].vCalc) { // parfois le calcul des cloisons échoue
+            if (pr.cloisonsResults[0].resultElements[vi].vCalc) { // parfois le calcul des cloisons échoue
                 this._dataSet.push([
                     this.intlService.localizeText("INFO_LIB_AMONT"),
-                    pr.cloisonsResults[0] ? pr.cloisonsResults[0].vCalc.toFixed(nDigits) : "",
+                    pr.cloisonsResults[0].resultElements[vi] ? pr.cloisonsResults[0].resultElements[vi].vCalc.toFixed(nDigits) : "",
                     "", "", "", "", "", "", ""
                 ]);
             }
@@ -62,14 +65,14 @@ export class PabResultsTableComponent extends ResultsComponent {
             // lines 2 - n-1
             for (let i = 0; i < pr.cloisonsResults.length; i++) {
                 if (
-                    pr.cloisonsResults[i].vCalc
+                    pr.cloisonsResults[i].resultElements[vi].vCalc
                 ) {
-                    const r2n = pr.cloisonsResults[i].resultElement.extraResults;
+                    const r2n = pr.cloisonsResults[i].resultElements[vi].extraResults;
                     let Z1: number;
                     if (i < pr.cloisonsResults.length - 1) {
-                        Z1 = pr.cloisonsResults[i + 1].vCalc;
+                        Z1 = pr.cloisonsResults[i + 1].resultElements[vi].vCalc;
                     } else {
-                        Z1 = pr.cloisonAvalResults.vCalc;
+                        Z1 = pr.cloisonAvalResults.resultElements[vi].vCalc;
                     }
                     this._dataSet.push([
                         i + 1, // n° cloison
@@ -86,8 +89,8 @@ export class PabResultsTableComponent extends ResultsComponent {
             }
 
             // downstream line
-            if (pr.cloisonAvalResults.vCalc) {
-                const rln = pr.cloisonAvalResults.resultElement.extraResults;
+            if (pr.cloisonAvalResults.resultElements[vi].vCalc) {
+                const rln = pr.cloisonAvalResults.resultElements[vi].extraResults;
                 this._dataSet.push([
                     this.intlService.localizeText("INFO_LIB_AVAL"),
                     pr.Z2.toFixed(nDigits),
diff --git a/src/app/components/pab-results/pab-results.component.html b/src/app/components/pab-results/pab-results.component.html
index ed25a06e7ac6e4fba7d0ca2516f41b830e733603..3db5bfb1c3672c22c4bd05e6ca703fb4091d1c58 100644
--- a/src/app/components/pab-results/pab-results.component.html
+++ b/src/app/components/pab-results/pab-results.component.html
@@ -2,6 +2,9 @@
     <!-- journal -->
     <log></log>
 
+    <pab-variable-results-selector [results]="pabResults" (indexChange)="variableIndexChanged()">
+    </pab-variable-results-selector>
+
     <div>
         <!-- tableau de résultats -->
         <pab-results-table [results]="pabResults"></pab-results-table>
diff --git a/src/app/components/pab-results/pab-results.component.ts b/src/app/components/pab-results/pab-results.component.ts
index d17318d768e48b1b73eb202b9c32f6c61891eeaf..2abe47a9b085e04e0be9f10a82d4eb32ab4fa33e 100644
--- a/src/app/components/pab-results/pab-results.component.ts
+++ b/src/app/components/pab-results/pab-results.component.ts
@@ -8,9 +8,10 @@ import { NgParameter } from "../../formulaire/ngparam";
 import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
 import { PabResultsTableComponent } from "./pab-results-table.component";
 import { PabResults } from "../../results/pab-results";
-import { ResultsGraphComponent } from "../results-graph/results-graph.component";
+import { PabVariableResultsSelectorComponent } from "./pab-variable-results-selector.component";
 import { PlottableData } from "../../results/plottable-data";
 import { PlottablePabResults } from "../../results/plottable-pab-results";
+import { ResultsGraphComponent } from "../results-graph/results-graph.component";
 
 @Component({
     selector: "pab-results",
@@ -33,11 +34,12 @@ export class PabResultsComponent implements DoCheck {
     @ViewChild(PabResultsTableComponent)
     private pabResultsTableComponent: PabResultsTableComponent;
 
-    /** composant journal */
+    @ViewChild(PabVariableResultsSelectorComponent)
+    private pabVariableResultsSelectorComponent: PabVariableResultsSelectorComponent;
+
     @ViewChild(LogComponent)
     private logComponent: LogComponent;
 
-    /** graphique dans le cas d'un paramètre à varier */
     @ViewChild(ResultsGraphComponent)
     private resultsGraphComponent: ResultsGraphComponent;
 
@@ -55,11 +57,24 @@ export class PabResultsComponent implements DoCheck {
         this.updateView();
     }
 
+    /**
+     * update results table and chart when the variable index changed (event sent by
+     * PabVariableResultsSelectorComponent); variable index is already set in
+     * pabResults at this time
+     */
+    public variableIndexChanged() {
+        console.log("oulala l'index variableu qui change !!");
+        this.updateView();
+    }
+
     public updateView() {
         this.logComponent.log = undefined;
         if (this.pabResultsTableComponent) {
             this.pabResultsTableComponent.results = undefined;
         }
+        if (this.pabVariableResultsSelectorComponent) {
+            this.pabVariableResultsSelectorComponent.results = undefined;
+        }
         if (this.resultsGraphComponent) {
             this.resultsGraphComponent.results = undefined;
         }
@@ -111,6 +126,7 @@ export class PabResultsComponent implements DoCheck {
             pabUpdated = this.pabResultsTableComponent !== undefined;
             if (pabUpdated) {
                 this.pabResultsTableComponent.results = this._pabResults;
+                this.pabVariableResultsSelectorComponent.results = this._pabResults;
             }
             graphUpdated = this.resultsGraphComponent !== undefined;
             if (graphUpdated) {
diff --git a/src/app/components/pab-results/pab-variable-results-selector.component.html b/src/app/components/pab-results/pab-variable-results-selector.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..a6cc6df2405b9cec9f568f12a04806d39e4ca02d
--- /dev/null
+++ b/src/app/components/pab-results/pab-variable-results-selector.component.html
@@ -0,0 +1,11 @@
+<div class="pab-variable-results-selector" *ngIf="hasVariableResults" fxLayout="row wrap" fxLayoutAlign="center center">
+    <div fxFlex="1 1 100%">
+        <mat-form-field>
+            <mat-select id="pab-variating-element" [placeholder]="label" [(value)]="selectedValue">
+                <mat-option *ngFor="let e of entries" [value]="e">
+                    {{ entryLabel(e) }}
+                </mat-option>
+            </mat-select>
+        </mat-form-field>
+    </div>
+</div>
diff --git a/src/app/components/pab-results/pab-variable-results-selector.component.scss b/src/app/components/pab-results/pab-variable-results-selector.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..d3c5d0c6d7819fcde1dabef15aa146abd2fe58b7
--- /dev/null
+++ b/src/app/components/pab-results/pab-variable-results-selector.component.scss
@@ -0,0 +1,10 @@
+:host {
+    margin-top: 2em;
+}
+
+mat-form-field {
+    width: 100%;
+    max-width: 400px;
+    margin-top: 1em;
+    margin-bottom: -1em;
+}
diff --git a/src/app/components/pab-results/pab-variable-results-selector.component.ts b/src/app/components/pab-results/pab-variable-results-selector.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..62112d7b85a93dd32b956279059610f5d452ac52
--- /dev/null
+++ b/src/app/components/pab-results/pab-variable-results-selector.component.ts
@@ -0,0 +1,104 @@
+import { Component, Output, EventEmitter } from "@angular/core";
+
+import { PabResults } from "../../results/pab-results";
+import { I18nService } from "../../services/internationalisation/internationalisation.service";
+import { ApplicationSetupService } from "../../services/app-setup/app-setup.service";
+
+@Component({
+    selector: "pab-variable-results-selector",
+    templateUrl: "./pab-variable-results-selector.component.html",
+    styleUrls: [
+        "./pab-variable-results-selector.component.scss"
+    ]
+})
+export class PabVariableResultsSelectorComponent {
+
+    /** résultats non mis en forme */
+    private _pabResults: PabResults;
+
+    private _selectedValue: number;
+
+    /** size of the longest variable value */
+    private size = 0;
+
+    /** inferred extended values list for each variating parameter */
+    private varValues = [];
+
+    @Output()
+    protected indexChange = new EventEmitter();
+
+    constructor(
+        protected intlService: I18nService,
+        protected appSetupService: ApplicationSetupService
+    ) {
+        this._selectedValue = 0;
+    }
+
+    public set results(r: PabResults) {
+        this._pabResults = r;
+
+        if (this._pabResults) {
+            // pre-extract variable parameters values
+            this.varValues = [];
+            const nDigits = this.appSetupService.displayDigits;
+            // find longest list
+            this.size = 0;
+            for (let i = 0; i < this._pabResults.variatedParameters.length; i++) {
+                const vs = this._pabResults.variatedParameters[i].valuesIterator.count();
+                if (vs > this.size) {
+                    this.size = vs;
+                }
+            }
+            // get extended values lists for each variable parameter
+            for (const v of this._pabResults.variatedParameters) {
+                const vv = [];
+                const iter = v.getExtendedValuesIterator(this.size);
+                while (iter.hasNext) {
+                    const nv = iter.next();
+                    vv.push(nv.value.toFixed(nDigits));
+                }
+                this.varValues.push(vv);
+            }
+        }
+    }
+
+    public get hasVariableResults(): boolean {
+        return (
+            this._pabResults
+            && this._pabResults.hasResults
+            && this._pabResults.variatedParameters.length > 0
+        );
+    }
+
+    public get entries(): number[] {
+        let i = 0;
+        const entries: number[] = this._pabResults.variatedParameters[0].inferredValuesList.map((v) => {
+            return i++;
+        });
+        return entries;
+    }
+
+    protected entryLabel(index: number): string {
+        let i = 0;
+        return this.varValues.map((vv) => {
+            const vp = this._pabResults.variatedParameters[i];
+            i++;
+            let value = "0";
+            value = vv[index];
+            return `${vp.symbol} = ${value}`;
+        }).join(", ");
+    }
+
+    public get selectedValue(): number {
+        return this._selectedValue;
+    }
+
+    public set selectedValue(v: number) {
+        this._pabResults.variableIndex = v;
+        this.indexChange.emit();
+    }
+
+    public get label() {
+        return this.intlService.localizeText("INFO_PARAMFIELD_BOUNDARY_CONDITIONS");
+    }
+}
diff --git a/src/app/components/param-values/param-values.component.ts b/src/app/components/param-values/param-values.component.ts
index 41cefb196e912a830554167f5c8207b8478c8ce2..3e1e933d51f2b66edd2222424c4b9a5a8adade7c 100644
--- a/src/app/components/param-values/param-values.component.ts
+++ b/src/app/components/param-values/param-values.component.ts
@@ -57,7 +57,7 @@ export class ParamValuesComponent implements AfterViewInit, Observer {
         this.editValuesDialog.open(
             DialogEditParamValuesComponent,
             {
-                disableClose: true,
+                disableClose: false,
                 data: {
                     param: this.param
                 },
diff --git a/src/app/formulaire/definition/form-compute-pab.ts b/src/app/formulaire/definition/form-compute-pab.ts
index 58f52cc0703507376840349600b425c6da76dba1..ce39c432d2fe1b7b982dd71e9ab9218b9bdffc31 100644
--- a/src/app/formulaire/definition/form-compute-pab.ts
+++ b/src/app/formulaire/definition/form-compute-pab.ts
@@ -15,18 +15,15 @@ export class FormComputePab extends FormCompute {
         return this._formResult as FormResultPab;
     }
 
-    private getVariatedParameter(): NgParameter {
-        const res = this._formBase.getDisplayedParamFromState(ParamRadioConfig.VAR);
-        if (res !== undefined) {
-            return res;
-        }
-
+    private getVariatedParameters(): NgParameter[] {
+        const res = this._formBase.getDisplayedParamListFromState(ParamRadioConfig.VAR);
         const pms = this._formBase.getDisplayedParamListFromState(ParamRadioConfig.LINK);
         for (const p of pms) {
             if (p.paramDefinition.hasMultipleValues) {
-                return p;
+                res.push(p);
             }
         }
+        return res;
     }
 
     protected compute() {
@@ -37,7 +34,7 @@ export class FormComputePab extends FormCompute {
     protected reaffectResultComponents() {
         const pab: Pab = (this._formBase.currentNub as Pab);
         const computedParam: NgParameter = this.getComputedParameter();
-        const varParam: NgParameter = this.getVariatedParameter();
+        const varParams: NgParameter[] = this.getVariatedParameters();
 
         // résultat de calcul de la passe à bassins
         const pabr = this.formResult.pabResults;
@@ -55,8 +52,8 @@ export class FormComputePab extends FormCompute {
         // cote aval de la passe
         pabr.Z2 = pab.prms.Z2.v;
 
-        if (varParam) {
-            pabr.variatedParameter = varParam;
+        if (varParams) {
+            pabr.variatedParameters = varParams;
             // pabr.update(false);
         }
     }
diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts
index 59270899475a9e1989d4b320e915f9dd5d2ea0ee..334882bfeedd53366b94ee11ac1f3906d2cb91ea 100644
--- a/src/app/results/pab-results.ts
+++ b/src/app/results/pab-results.ts
@@ -15,8 +15,11 @@ export class PabResults extends CalculatedParamResults {
     /** cote aval de l'ensemble de la passe */
     public Z2: number;
 
-    /** paramètre varié */
-    public variatedParameter: NgParameter;
+    /** paramètres variés */
+    public variatedParameters: NgParameter[];
+
+    /** index de la valeur du paramètre varié à afficher dans les résultats */
+    public variableIndex = 0;
 
     /** symboles des colonnes de résultat */
     protected _columns: string[];
diff --git a/src/app/results/plottable-pab-results.ts b/src/app/results/plottable-pab-results.ts
index bcfa6cf532597a0d0dd330e3073abef96de32428..85bd80a1926cbd33ae9f128cc4034fb98a1fa14e 100644
--- a/src/app/results/plottable-pab-results.ts
+++ b/src/app/results/plottable-pab-results.ts
@@ -64,6 +64,9 @@ export class PlottablePabResults implements PlottableData {
         const pr = this.pabResults;
         const nDigits = ServiceFactory.instance.applicationSetupService.displayDigits;
         const l = this.pabResults.cloisonsResults.length;
+        // when a parameter is variating, index of the variating parameter
+        // values to build the data from
+        const vi = this.pabResults.variableIndex;
 
         if (this.hasError()) {
             return [];
@@ -82,18 +85,18 @@ export class PlottablePabResults implements PlottableData {
             case "Q":
                 data.push("");
                 for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
+                    const er = pr.cloisonsResults[i].resultElements[vi].getExtraResult(symbol);
                     data.push((er !== undefined) ? er.toFixed(nDigits) : "");
                 }
-                const zrAval = pr.cloisonAvalResults.getExtraResult(symbol);
+                const zrAval = pr.cloisonAvalResults.resultElements[vi].getExtraResult(symbol);
                 data.push((zrAval !== undefined) ? zrAval.toFixed(nDigits) : "");
                 break;
 
             case "Z":
                 for (let i = 0; i < l; i++) {
-                    data.push(pr.cloisonsResults[i].vCalc.toFixed(nDigits));
+                    data.push(pr.cloisonsResults[i].resultElements[vi].vCalc.toFixed(nDigits));
                 }
-                data.push(pr.cloisonAvalResults.vCalc.toFixed(nDigits));
+                data.push(pr.cloisonAvalResults.resultElements[vi].vCalc.toFixed(nDigits));
                 data.push(pr.Z2.toFixed(nDigits));
                 break;
 
@@ -103,7 +106,7 @@ export class PlottablePabResults implements PlottableData {
             case "QA":
                 data.push("");
                 for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
+                    const er = pr.cloisonsResults[i].resultElements[vi].getExtraResult(symbol);
                     data.push((er !== undefined) ? er.toFixed(nDigits) : "");
                 }
                 data.push("");
@@ -112,10 +115,10 @@ export class PlottablePabResults implements PlottableData {
             case "x": // wall abscissa
                 data.push("");
                 for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
+                    const er = pr.cloisonsResults[i].resultElements[vi].getExtraResult(symbol);
                     data.push((er !== undefined) ? er.toFixed(nDigits) : "");
                 }
-                const erXdw = pr.cloisonAvalResults.getExtraResult(symbol);
+                const erXdw = pr.cloisonAvalResults.resultElements[vi].getExtraResult(symbol);
                 data.push((erXdw !== undefined) ? erXdw.toFixed(nDigits) : "");
                 break;
         }
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index 5267f89021cf945589b31adc8d36048b6bef187e..6b6bb15e4307f3fb765515c4b70713523dbf78cd 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -3,7 +3,19 @@ import { Injectable } from "@angular/core";
 import { decode } from "he";
 import { saveAs } from "file-saver";
 
-import { CalculatorType, LinkedValue, Observable, ParamDefinition, Session, Nub, ParallelStructure, Pab, Props, Cloisons } from "jalhyd";
+import {
+    CalculatorType,
+    LinkedValue,
+    Observable,
+    ParamDefinition,
+    Session,
+    Nub,
+    ParallelStructure,
+    Pab,
+    Props,
+    Cloisons,
+    CloisonAval
+} from "jalhyd";
 
 import { HttpService } from "../../services/http/http.service";
 import { I18nService } from "../../services/internationalisation/internationalisation.service";
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index 1abffb6c68542e304be0b2c06b2005aacfce6873..53fb506aadae69bee7d1067c7cfaa51021bccf24 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -250,6 +250,7 @@
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
     "INFO_PARALLELSTRUCTURE_TITRE": "Parallel structures",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "Awaiting calculation",
+    "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Boundary conditions",
     "INFO_PARAMFIELD_CALCULATED": "Calculated",
     "INFO_PARAMFIELD_CALCULATION_FAILED": "Calculation failed",
     "INFO_PARAMFIELD_GRAPH_SELECT_X_AXIS": "Variable for X axis",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index db1a816be783fad06799d12928e2adaeb88f3e75..33c863b8927410d04fcfd36070852423b3a932d5 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -250,6 +250,7 @@
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "Ouvrages",
     "INFO_PARALLELSTRUCTURE_TITRE": "Lois d'ouvrages",
     "INFO_PARAMFIELD_AWAITING_CALCULATION": "En attente de calcul",
+    "INFO_PARAMFIELD_BOUNDARY_CONDITIONS": "Conditions aux limites",
     "INFO_PARAMFIELD_CALCULATED": "Calculé",
     "INFO_PARAMFIELD_CALCULATION_FAILED": "Échec du calcul",
     "INFO_PARAMFIELD_GRAPH_SELECT_X_AXIS": "Variable en abscisse",