diff --git a/src/View/BoundaryCondition/Edit/GenerateDialog.py b/src/View/BoundaryCondition/Edit/GenerateDialog.py
new file mode 100644
index 0000000000000000000000000000000000000000..3b07a4d07d8de5166eb3b743fc3fe52ba188b65f
--- /dev/null
+++ b/src/View/BoundaryCondition/Edit/GenerateDialog.py
@@ -0,0 +1,68 @@
+# GenerateDialog.py -- Pamhyr
+# Copyright (C) 2023-2024  INRAE
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# -*- coding: utf-8 -*-
+
+from View.Tools.PamhyrWindow import PamhyrDialog
+
+from PyQt5.QtGui import (
+    QKeySequence,
+)
+
+from PyQt5.QtCore import (
+    Qt, QVariant, QAbstractTableModel,
+)
+
+from PyQt5.QtWidgets import (
+    QDialogButtonBox, QComboBox, QUndoStack, QShortcut,
+    QDoubleSpinBox, QCheckBox, QPushButton
+)
+
+
+class GenerateDialog(PamhyrDialog):
+    _pamhyr_ui = "BoundaryConditionsDialogGenerator"
+    _pamhyr_name = "Boundary Condition Options"
+
+    def __init__(self,
+                 value,
+                 reach,
+                 title="Boundary Condition Options",
+                 trad=None,
+                 parent=None):
+        super(GenerateDialog, self).__init__(
+            title=trad[self._pamhyr_name],
+            options=[],
+            trad=trad,
+            parent=parent
+        )
+
+        self.value = value
+        self.find(QDoubleSpinBox, "doubleSpinBox").setValue(self.value)
+        self.reach = reach
+        self.find(QPushButton, "EstimateButton").clicked.connect(
+            self.estimate
+            )
+
+    def accept(self):
+        self.value = self.find(QDoubleSpinBox, "doubleSpinBox").value()
+        super().accept()
+
+    def reject(self):
+        self.close()
+
+    def estimate(self):
+        self.value = abs(self.reach.get_incline_median_mean())
+        self.find(QDoubleSpinBox, "doubleSpinBox").setValue(self.value)
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index d639a3a338c9c23dd650ebc8da7ea9c41c2693b4..168958bd3e4efa4e13f20fd784887d5c7460804e 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -50,6 +50,7 @@ from View.BoundaryCondition.Edit.translate import BCETranslate
 from View.BoundaryCondition.Edit.UndoCommand import SetMetaDataCommand
 from View.BoundaryCondition.Edit.Table import TableModel
 from View.BoundaryCondition.Edit.Plot import Plot
+from View.BoundaryCondition.Edit.GenerateDialog import GenerateDialog
 
 _translate = QCoreApplication.translate
 
@@ -332,7 +333,13 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             node = self._data.node
             reach = self._data.reach(self._study.river)[0]
             profile = reach.profiles[-1]
-            incline = reach.get_incline_median_mean()
+            incline = abs(reach.get_incline_median_mean())
+            dlg = GenerateDialog(incline,
+                                 reach,
+                                 trad=self._trad,
+                                 parent=self)
+            if dlg.exec():
+                incline = dlg.value
             frictions = reach._parent.frictions.frictions
             z_min = profile.z_min()
             z_max = profile.z_max()
@@ -355,7 +362,6 @@ class EditBoundaryConditionWindow(PamhyrWindow):
             node = self._data.node
             reach = self._data.reach(self._study.river)[0]
             profile = reach.profiles[-1]
-            incline = reach.get_incline_median_mean()
             z_min = profile.z_min()
             z_max = profile.z_max()
             height = [(i)*(z_max-z_min)/50 for i in range(51)]
diff --git a/src/View/BoundaryCondition/Edit/translate.py b/src/View/BoundaryCondition/Edit/translate.py
index 9d8355505cf0477acafa811fe48d16f33b04f695..006c49df0fc6d97fdf66722fcb825cc48a4af8cf 100644
--- a/src/View/BoundaryCondition/Edit/translate.py
+++ b/src/View/BoundaryCondition/Edit/translate.py
@@ -32,6 +32,8 @@ class BCETranslate(BCTranslate):
         self._dict["Edit Boundary Conditions"] = _translate(
             "BoundaryCondition", "Edit boundary conditions"
         )
+        self._dict["Boundary Condition Options"] = _translate(
+            "BoundaryCondition", "Boundary Condition Options")
 
         self._sub_dict["table_headers"] = {
             "x": _translate("BoundaryCondition", "X"),
diff --git a/src/View/ui/BoundaryConditionsDialogGenerator.ui b/src/View/ui/BoundaryConditionsDialogGenerator.ui
new file mode 100644
index 0000000000000000000000000000000000000000..6d3793bf05a657fdfbda15600cd791699db6fe86
--- /dev/null
+++ b/src/View/ui/BoundaryConditionsDialogGenerator.ui
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>356</width>
+    <height>107</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Options</string>
+  </property>
+  <property name="accessibleName">
+   <string/>
+  </property>
+  <property name="locale">
+   <locale language="English" country="Europe"/>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="2" column="0">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Slope</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QDoubleSpinBox" name="doubleSpinBox">
+       <property name="decimals">
+        <number>6</number>
+       </property>
+       <property name="maximum">
+        <double>999999.998999999952503</double>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="EstimateButton">
+       <property name="text">
+        <string>Estimate</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>Dialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Dialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>