diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index b104fec432552bd7070ada8e7c954c60089ecf6e..4948cbac8c6b592a5ab786d734cf2ae1fff284c7 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -567,6 +567,9 @@ INTEGER::JK
 REAL, DIMENSION(:),   ALLOCATABLE :: ZZS_ll
 INTEGER                           :: IJ 
 INTEGER           :: NZSFILTER=1          ! number of iteration for filter for fine   orography
+LOGICAL           :: LHSLOP=.FALSE.       ! filtering of slopes higher than XHSLOP   
+REAL              :: XHSLOP=1.2           ! if LHSLOP filtering of slopes higher than XHSLOP
+
 !
 REAL              :: ZZS_MAX, ZZS_MAX_ll
 INTEGER           :: IJPHEXT
@@ -897,7 +900,6 @@ CALL SET_XEND_ll(NIMAX_ll+2*JPHEXT, 1)
 CALL SET_YOR_ll(1, 1)
 CALL SET_YEND_ll(NJMAX_ll+2*JPHEXT, 1)
 CALL SET_DAD_ll(0, 1)
-! CALL INI_PARA_ll(IINFO_ll)
 CALL INI_PARAZ_ll(IINFO_ll)
 !
 ! sizes of arrays of the extended sub-domain
@@ -1779,7 +1781,7 @@ IF (CSURF =='EXTE') THEN
   IF (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM) THEN
     CPGDFILE = CINIFILE
     CALL PGD_GRID_SURF_ATM('MESONH',CINIFILE,'MESONH',.TRUE.)
-!    CALL SPLIT_GRID('MESONH')
+!   CALL SPLIT_GRID('MESONH')
     CALL PGD_SURF_ATM     ('MESONH',CINIFILE,'MESONH',.TRUE.)
     CPGDFILE = CINIFILEPGD                                   
   ELSE
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index bbd07ad71c54e07584933baafabe3da61278892b..7689fe3584a9309a7046915d623896a3a53e4fbe 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -131,6 +131,8 @@ LOGICAL :: GFOUND
 CHARACTER(LEN=28) :: YDAD     =' '        ! name of dad of input FM file
 CHARACTER(LEN=28) :: CPGDFILE ='PGDFILE'  ! name of the output file
 INTEGER           :: NZSFILTER=1          ! number of iteration for filter for fine   orography
+LOGICAL           :: LHSLOP=.FALSE.       ! filtering of slopes higher than XHSLOP   
+REAL              :: XHSLOP=1.2           ! if LHSLOP filtering of slopes higher than XHSLOP   
 INTEGER           :: NSLEVE   =12         ! number of iteration for filter for smooth orography
 REAL              :: XSMOOTH_ZS = XUNDEF  ! optional uniform smooth orography for SLEVE coordinate
 !#ifdef MNH_NCWRIT
@@ -147,7 +149,7 @@ INTEGER           :: IIMAX, IJMAX
 INTEGER           :: NHALO_MNH 
 !
 NAMELIST/NAM_PGDFILE/CPGDFILE, NHALO
-NAMELIST/NAM_ZSFILTER/NZSFILTER
+NAMELIST/NAM_ZSFILTER/NZSFILTER,LHSLOP,XHSLOP
 NAMELIST/NAM_SLEVE/NSLEVE, XSMOOTH_ZS
 NAMELIST/NAM_CONF_PGD/JPHEXT, NHALO_MNH
 !------------------------------------------------------------------------------
@@ -298,6 +300,7 @@ CALL FMWRIT(COUTFMFILE,'LON',CLUOUT0,'XY',ZWORK_LON,1,22,'X_Y_longitude (degree)
 END IF
 !*    4.      Computes and writes smooth orography for SLEVE coordinate
 !             ---------------------------------------------------------
+!CALL ZSMT_PGD(COUTFMFILE,NZSFILTER,NSLEVE,XSMOOTH_ZS,LHSLOP,XHSLOP)
 CALL ZSMT_PGD(COUTFMFILE,NZSFILTER,NSLEVE,XSMOOTH_ZS)
 
 IF ( LNETCDF ) THEN
@@ -324,6 +327,7 @@ END IF
 CALL WRITE_PGD_SURF_ATM_n('MESONH')
 !*    4.      Computes and writes smooth orography for SLEVE coordinate
 !             ---------------------------------------------------------
+!CALL ZSMT_PGD(COUTFMFILE,NZSFILTER,NSLEVE,XSMOOTH_ZS,LHSLOP,XHSLOP)
 CALL ZSMT_PGD(COUTFMFILE,NZSFILTER,NSLEVE,XSMOOTH_ZS)
 IF (.NOT.LCARTESIAN) THEN
 !!!! WRITE LAT and LON