diff --git a/src/SURFEX/ini_data_cover.F90 b/src/SURFEX/ini_data_cover.F90
index a6b0ef2c7b0116fc4f2389c13e4cdf74583dd2f0..b7c4c068e175d769b56cd51f644ea0710a30fb91 100644
--- a/src/SURFEX/ini_data_cover.F90
+++ b/src/SURFEX/ini_data_cover.F90
@@ -43,6 +43,7 @@
 !!    R.Alkama     05/2015 Add 7 new vegtype (19 rather than 12)
 !!    A. Druel     02/2019 Change default values and add new parameter for irrigation
 !!    J. Wurtz     01/2023 Passing LECOSG key to default urban frac
+!!    J. Wurtz     05/2023 Passing LTOWN_TO_ROCK to init_types_param to define urban vegetation when needed
 !----------------------------------------------------------------------------
 !
 !*    0.     DECLARATION
@@ -1214,7 +1215,7 @@ XDATA_HOTWAT          (:) = XUNDEF
 !* Global data set
 !
 IF (U%LECOSG) THEN
-  CALL INIT_TYPES_PARAM
+  CALL INIT_TYPES_PARAM(U%LTOWN_TO_ROCK)
 ELSEIF (LREAD_DATA_COVER) THEN
   CALL READ_COVERS_PARAM(1)
 ELSE
diff --git a/src/SURFEX/init_types_param.F90 b/src/SURFEX/init_types_param.F90
index 3a1d2f175b56897bd4e0346e46451ad060d2a23c..d8bdcd5e930119c24db962e59369b241063fcb21 100644
--- a/src/SURFEX/init_types_param.F90
+++ b/src/SURFEX/init_types_param.F90
@@ -3,7 +3,7 @@
 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !SFX_LIC for details. version 1.
 !     ############################
-      SUBROUTINE INIT_TYPES_PARAM
+      SUBROUTINE INIT_TYPES_PARAM(OTOWN_TO_ROCK)
 !     ############################
 !
 !!**** *INIT_TYPES_PARAM* initializes cover-field correspondance arrays
@@ -37,6 +37,7 @@
 !!    R. Alkama    05/2012 : read 19 vegtypes rather than 12
 !!    E. Martin    10/2014 : add status='old' for ecoclimap.bin files
 !!    A. Druel     02/2019 : remove part non compatible with TOWN_TO_ROCK - but temp ! #rustine
+!!    J. Wurtz     05/2023 : Adding a switch to be compatible with TOWN_TO_ROCK and TEB
 !!
 !----------------------------------------------------------------------------
 !
@@ -61,6 +62,7 @@ IMPLICIT NONE
 !
 !*    0.1    Declaration of arguments
 !            ------------------------
+LOGICAL,   INTENT(IN) :: OTOWN_TO_ROCK
 !
 !*    0.2    Declaration of local variables
 !            ------------------------------
@@ -148,10 +150,10 @@ XDATA_WALL_O_HOR(NUT_LALR) = 0.24
 XDATA_WALL_O_HOR(NUT_SPAR) = 0.36
 XDATA_WALL_O_HOR(NUT_INDU) = 0.45
 !
-XDATA_H_TRAFFIC(NUT_CPHR) = 20
+XDATA_H_TRAFFIC(NUT_CPHR) = 10
 XDATA_H_TRAFFIC(NUT_CPMR) = 10
 XDATA_H_TRAFFIC(NUT_CPLR) = 5
-XDATA_H_TRAFFIC(NUT_OPHR) =  20 
+XDATA_H_TRAFFIC(NUT_OPHR) = 5 
 XDATA_H_TRAFFIC(NUT_OPMR) = 10
 XDATA_H_TRAFFIC(NUT_OPLR) = 5
 XDATA_H_TRAFFIC(NUT_LWLR) = 5
@@ -166,45 +168,46 @@ XDATA_H_INDUSTRY(NUT_OPHR) = 0.
 XDATA_H_INDUSTRY(NUT_OPMR) = 0.
 XDATA_H_INDUSTRY(NUT_OPLR) = 0.
 XDATA_H_INDUSTRY(NUT_LWLR) = 0.
-XDATA_H_INDUSTRY(NUT_LALR) = 50.
+XDATA_H_INDUSTRY(NUT_LALR) = 0.
 XDATA_H_INDUSTRY(NUT_SPAR) = 0.
-XDATA_H_INDUSTRY(NUT_INDU) = 100.
-!
-!#rustine remove following lines (non compatible with TOWN_TO_ROCK), but temp
-!#rustine. Note that there is a difference between 1km LAI map and 300m LAI maps here: it's use NVT_FLGR in 1KM map and here NVT_GRASS
-!XDATA_VEGTYPE(NUT_CPHR,NVT_GRAS) = 0.0
-!XDATA_VEGTYPE(NUT_CPMR,NVT_GRAS) = 0.0
-!XDATA_VEGTYPE(NUT_CPLR,NVT_GRAS) = 0.0 
-!XDATA_VEGTYPE(NUT_OPHR,NVT_GRAS) = 0.4  
-!XDATA_VEGTYPE(NUT_OPMR,NVT_GRAS) = 0.4
-!XDATA_VEGTYPE(NUT_OPLR,NVT_GRAS) = 0.4
-!XDATA_VEGTYPE(NUT_LWLR,NVT_GRAS) = 0.5
-!XDATA_VEGTYPE(NUT_LALR,NVT_GRAS) = 0.5
-!XDATA_VEGTYPE(NUT_SPAR,NVT_GRAS) = 0.5
-!XDATA_VEGTYPE(NUT_INDU,NVT_GRAS) = 0.4
-!!
-!XDATA_VEGTYPE(NUT_CPHR,NVT_NO) = 0.0
-!XDATA_VEGTYPE(NUT_CPMR,NVT_NO) = 0.0
-!XDATA_VEGTYPE(NUT_CPLR,NVT_NO) = 0.0 
-!XDATA_VEGTYPE(NUT_OPHR,NVT_NO) = 0.2  
-!XDATA_VEGTYPE(NUT_OPMR,NVT_NO) = 0.2
-!XDATA_VEGTYPE(NUT_OPLR,NVT_NO) = 0.2
-!XDATA_VEGTYPE(NUT_LWLR,NVT_NO) = 0.5
-!XDATA_VEGTYPE(NUT_LALR,NVT_NO) = 0.5
-!XDATA_VEGTYPE(NUT_SPAR,NVT_NO) = 0.2
-!XDATA_VEGTYPE(NUT_INDU,NVT_NO) = 0.6
-!!
-!XDATA_VEGTYPE(NUT_CPHR,NVT_TEBD) = 1.0 
-!XDATA_VEGTYPE(NUT_CPMR,NVT_TEBD) = 1.0
-!XDATA_VEGTYPE(NUT_CPLR,NVT_TEBD) = 1.0
-!XDATA_VEGTYPE(NUT_OPHR,NVT_TEBD) = 0.4  
-!XDATA_VEGTYPE(NUT_OPMR,NVT_TEBD) = 0.4
-!XDATA_VEGTYPE(NUT_OPLR,NVT_TEBD) = 0.4
-!XDATA_VEGTYPE(NUT_LWLR,NVT_TEBD) = 0.0
-!XDATA_VEGTYPE(NUT_LALR,NVT_TEBD) = 0.0
-!XDATA_VEGTYPE(NUT_SPAR,NVT_TEBD) = 0.3
-!XDATA_VEGTYPE(NUT_INDU,NVT_TEBD) = 0.0
+XDATA_H_INDUSTRY(NUT_INDU) = 0.
+!
+
+IF (.NOT. OTOWN_TO_ROCK) THEN
 
+	XDATA_VEGTYPE(NUT_CPHR,NVT_GRAS) = 0.0
+	XDATA_VEGTYPE(NUT_CPMR,NVT_GRAS) = 0.0
+	XDATA_VEGTYPE(NUT_CPLR,NVT_GRAS) = 0.0 
+	XDATA_VEGTYPE(NUT_OPHR,NVT_GRAS) = 0.4  
+	XDATA_VEGTYPE(NUT_OPMR,NVT_GRAS) = 0.4
+	XDATA_VEGTYPE(NUT_OPLR,NVT_GRAS) = 0.4
+	XDATA_VEGTYPE(NUT_LWLR,NVT_GRAS) = 0.5
+	XDATA_VEGTYPE(NUT_LALR,NVT_GRAS) = 0.5
+	XDATA_VEGTYPE(NUT_SPAR,NVT_GRAS) = 0.5
+	XDATA_VEGTYPE(NUT_INDU,NVT_GRAS) = 0.4
+	!!
+	XDATA_VEGTYPE(NUT_CPHR,NVT_NO) = 0.0
+	XDATA_VEGTYPE(NUT_CPMR,NVT_NO) = 0.0
+	XDATA_VEGTYPE(NUT_CPLR,NVT_NO) = 0.0 
+	XDATA_VEGTYPE(NUT_OPHR,NVT_NO) = 0.2  
+	XDATA_VEGTYPE(NUT_OPMR,NVT_NO) = 0.2
+	XDATA_VEGTYPE(NUT_OPLR,NVT_NO) = 0.2
+	XDATA_VEGTYPE(NUT_LWLR,NVT_NO) = 0.5
+	XDATA_VEGTYPE(NUT_LALR,NVT_NO) = 0.5
+	XDATA_VEGTYPE(NUT_SPAR,NVT_NO) = 0.2
+	XDATA_VEGTYPE(NUT_INDU,NVT_NO) = 0.6
+	!!
+	XDATA_VEGTYPE(NUT_CPHR,NVT_TEBD) = 1.0 
+	XDATA_VEGTYPE(NUT_CPMR,NVT_TEBD) = 1.0
+	XDATA_VEGTYPE(NUT_CPLR,NVT_TEBD) = 1.0
+	XDATA_VEGTYPE(NUT_OPHR,NVT_TEBD) = 0.4  
+	XDATA_VEGTYPE(NUT_OPMR,NVT_TEBD) = 0.4
+	XDATA_VEGTYPE(NUT_OPLR,NVT_TEBD) = 0.4
+	XDATA_VEGTYPE(NUT_LWLR,NVT_TEBD) = 0.0
+	XDATA_VEGTYPE(NUT_LALR,NVT_TEBD) = 0.0
+	XDATA_VEGTYPE(NUT_SPAR,NVT_TEBD) = 0.3
+	XDATA_VEGTYPE(NUT_INDU,NVT_TEBD) = 0.0
+END IF
 !
 IF (LHOOK) CALL DR_HOOK('INIT_TYPES_PARAM',1,ZHOOK_HANDLE)
 !