diff --git a/jalhyd_branch b/jalhyd_branch
index 1f7391f92b6a3792204e07e99f71f643cc35e7e1..aa60e2b3f3308f3fdeb4e42b5b0db8b42cf17299 100644
--- a/jalhyd_branch
+++ b/jalhyd_branch
@@ -1 +1 @@
-master
+340-ajout-de-la-passe-a-rugosite-de-fond
diff --git a/src/app/calculators/rugofond/config.json b/src/app/calculators/rugofond/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..e9b92f7f74d047f3022e9ee1b3cdf7f488fe1fc1
--- /dev/null
+++ b/src/app/calculators/rugofond/config.json
@@ -0,0 +1,49 @@
+[
+    {
+        "id": "fs_hydraulique",
+        "type": "fieldset",
+        "fields": [
+            "Q",
+            "Z1"
+        ]
+    },
+    {
+        "id": "fs_geometry_crete",
+        "type": "fieldset",
+        "fields": [
+            "L",
+            "Cd"
+        ]
+    },
+    {
+        "id": "fs_geometry_rampe",
+        "type": "fieldset",
+        "fields": [
+            {
+                "id": "If",
+                "help": "hsl/pente.html"
+            },
+            "d65",
+            "a"
+        ]
+    },
+    {
+        "id": "fs_type",
+        "type": "fieldset",
+        "fields": [
+            "ZF1",
+            {
+                "id": "ZD1",
+                "allowEmpty": true
+            },
+            {
+                "id": "ZR1",
+                "allowEmpty": true
+            },
+            {
+                "id": "Nb",
+                "allowEmpty": true
+            }
+        ]
+    }
+]
diff --git a/src/app/calculators/rugofond/en.json b/src/app/calculators/rugofond/en.json
new file mode 100644
index 0000000000000000000000000000000000000000..4d57cf8c62f737244a301ca4b355e6bae87e2fed
--- /dev/null
+++ b/src/app/calculators/rugofond/en.json
@@ -0,0 +1,26 @@
+{
+    "fs_hydraulique": "Hydraulic parameters",
+    "fs_geometry_crete": "Crest geometry",
+    "fs_geometry_rampe": "Ramp geometry",
+    "fs_type": "Ramp type",
+    "fs_pass": "Fish pass parameters",
+    "fs_bloc": "Blocks parameters",
+    "fs_pass_type": "Pass type",
+    "macrorugo_container": "Aprons",
+    "fs_macrorugo": "Apron",
+
+    "select_passtype": "Pass type",
+    "Q": "Flow",
+    "If": "Slope",
+    "a": "Strickler correction factor",
+    "ZF1": "Upstream ramp bottom elevation",
+    "ZD1": "Lower upstream ramp bottom elevation",
+    "ZR1": "Upper upstream ramp bottom elevation",
+    "Nb": "Number of baffles",
+    "L": "Total width of ramp",
+    "Cd": "Discharge coefficient",
+    "d65": "d65",
+
+    "PASSTYPE_0": "Horizontal aprons",
+    "PASSTYPE_1": "Inclined apron"
+}
\ No newline at end of file
diff --git a/src/app/calculators/rugofond/fr.json b/src/app/calculators/rugofond/fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..37157230867b0fb1a1898a9dece3ed195ca8ed59
--- /dev/null
+++ b/src/app/calculators/rugofond/fr.json
@@ -0,0 +1,26 @@
+{
+    "fs_hydraulique": "Paramètres hydrauliques",
+    "fs_geometry_crete": "Géométrie de la crête",
+    "fs_geometry_rampe": "Géométrie de la rampe",
+    "fs_type": "Type de rampe",
+    "fs_pass": "Paramètres de la passe",
+    "fs_bloc": "Paramètres des blocs",
+    "fs_pass_type": "Type de passe",
+    "macrorugo_container": "Radiers",
+    "fs_macrorugo": "Radier",
+
+    "select_passtype": "Type de passe",
+    "Q": "Débit",
+    "If": "Pente",
+    "a": "Coefficient correcteur du Strickler",
+    "ZF1": "Cote de fond amont rampe",
+    "ZD1": "Cote de fond bas amont rampe",
+    "ZR1": "Cote de fond haut amont rampe",
+    "Nb": "Nombre de ralentisseurs",
+    "L": "Largeur totale de la rampe", 
+    "Cd": "Coefficient de débit",
+    "d65": "d65",
+    
+    "PASSTYPE_0": "Radier horizontal",
+    "PASSTYPE_1": "Radier incliné"
+}
\ No newline at end of file
diff --git a/src/app/config.json b/src/app/config.json
index e3ac99d860895ddf2f6f10bbf1ebd46f2653717a..bf12d9f31415e9aa25a2b0b91b2b4351e5ba638c 100644
--- a/src/app/config.json
+++ b/src/app/config.json
@@ -31,7 +31,7 @@
                 "path": "passe-naturelle.jpg",
                 "credits": "S. Richard / OFB"
             },
-            "calculators": [ 11, 17, 27, 37 ]
+            "calculators": [ 11, 17, 27, 37, 38 ]
         },
         {
             "name": "VERIFICATION",
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index b6d2282facc3c9149086e21fcb0da82445964069..137f6c6f2783e50072bf53e07949726cb4b9b214 100755
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -82,6 +82,10 @@
     "ERROR_STRUCTURE_Q_TROP_ELEVE": "The flow passing through the other devices is too high: the requested parameter is not calculable.",
     "ERROR_STRUCTURE_ZDV_PAS_CALCULABLE": "Parameter \"Crest elevation\" cannot be calculated with this discharge law",
     "ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL": "Upstream and downstream elevations are equal but flow is not null",
+    "ERROR_ELEVATION_Z1_LOWER_THAN_ZF1": "Upstream elevation is lower than the upstream bottom elevation of the ramp",
+    "ERROR_ELEVATION_Z1_EQUAL_TO_ZF1": "Upstream elevation is equal to the upstream bottom elevation of the ramp",
+    "ERROR_COEF_DEBIT_NULL": "Calculation is impossible when discharge coefficient is null",
+    "ERROR_D65_NULL": "Calculation is impossible when d65 is null",
     "INFO_CALCULATOR_CALC_NAME": "Calculator name",
     "INFO_CALCULATOR_CALCULER": "Compute",
     "INFO_CALCULATOR_CLONE": "Duplicate",
@@ -512,6 +516,8 @@
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "// structures",
     "INFO_PARALLELSTRUCTURE_TITRE": "Parallel structures",
     "INFO_PAR_TITRE": "Baffle fishway: setup",
+    "INFO_RUGOFOND_TITRE": "Bed roughness fishpasses",
+    "INFO_RUGOFOND_TITRE_COURT": "Bed roughness",
     "INFO_PAR_DESCRIPTION": "planes Denil Fatou superactive mixte chevrons canoe",
     "INFO_PAR_TITRE_COURT": "HF: setup",
     "INFO_PARSIMULATION_TITRE": "Baffle fishway: simulation",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 88331c2bbb5a7e153cc914e8f7b7bad5301b9091..62d4e610be18727c1bd22fb392f588c72fd7b4d9 100755
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -82,6 +82,10 @@
     "ERROR_STRUCTURE_Q_TROP_ELEVE": "Le débit passant par les autres ouvrages est trop élevé : le paramètre demandé n'est pas calculable.",
     "ERROR_STRUCTURE_ZDV_PAS_CALCULABLE": "Le paramètre \"Cote de radier\" ne peut pas être calculé avec cette loi de débit",
     "ERROR_STRUCTURE_Z_EGAUX_Q_NON_NUL": "Les cotes amont aval sont égales et le débit n'est pas nul",
+    "ERROR_ELEVATION_Z1_LOWER_THAN_ZF1": "La cote amont est plus basse que la cote de fond amont de la rampe",
+    "ERROR_ELEVATION_Z1_EQUAL_TO_ZF1": "La cote de l'eau amont est égale à la cote de fond amont de la rampe",
+    "ERROR_COEF_DEBIT_NULL": "Le calcul impossible à cause d'un coefficient de débit nul",
+    "ERROR_D65_NULL": "Le calcul impossible à cause d'un d65 nul",
     "INFO_CALCULATOR_CALC_NAME": "Nom du module de calcul",
     "INFO_CALCULATOR_CALCULER": "Calculer",
     "INFO_CALCULATOR_CLONE": "Dupliquer",
@@ -513,6 +517,8 @@
     "INFO_PARALLELSTRUCTURE_TITRE_COURT": "Ouvrages",
     "INFO_PARALLELSTRUCTURE_TITRE": "Lois d'ouvrages",
     "INFO_PAR_TITRE": "Passe à ralentisseurs : calage",
+    "INFO_RUGOFOND_TITRE": "Passe à rugosité de fond",
+    "INFO_RUGOFOND_TITRE_COURT": "Rugofond",
     "INFO_PAR_DESCRIPTION": "plans Denil Fatou fonds suractifs mixte chevrons canoë",
     "INFO_PAR_TITRE_COURT": "PAR : calage",
     "INFO_PARSIMULATION_TITRE": "Passe à ralentisseurs : simulation",