diff --git a/src/arome/ext/aro_turb_mnh.F90 b/src/arome/ext/aro_turb_mnh.F90
index 2a721d03495fe245bdc8c4241f0173763bca6e58..377c38fc9d5b9d1c9113868f043d044e4cb065d4 100644
--- a/src/arome/ext/aro_turb_mnh.F90
+++ b/src/arome/ext/aro_turb_mnh.F90
@@ -449,9 +449,9 @@ CALL TURB (CST,CSTURB,TBUCONF,TURBN, YLDIMPHYEX,&
    & IMI, KRR, KRRL, KRRI, HLBCX, HLBCY,&
    & ISPLIT,IMI, KSV, KSV_LGBEG, KSV_LGEND, &
    & HPROGRAM, O2D, ONOMIXLG, OFLAT, LLES_CALL,OCOUPLES,OBLOWSNOW,& 
-   & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC, &
-   & ORMC01,OOCEAN,ODEEPOC,LDHARATU, TURBN%LSTATNW, .FALSE.,   &
-   & HTURBDIM,HTURBLEN,'NONE','NONE',CMICRO,           &
+   & OCOMPUTE_SRC, 1.0, &
+   & OOCEAN,ODEEPOC, .FALSE.,   &
+   & 'NONE',CMICRO,           &
    & ZIMPL,                                    &
    & 2*PTSTEP,ZTFILE,                                      &
    & ZDXX,ZDYY,ZDZZ,ZDZX,ZDZY,ZZZ,          &
diff --git a/src/arome/ext/aroini_turb.F90 b/src/arome/ext/aroini_turb.F90
index 7be33a4177f8e894eadf5e08b3cc986a40d45c63..2680c00ce5c148525b008e6cb619094f871cfbbb 100644
--- a/src/arome/ext/aroini_turb.F90
+++ b/src/arome/ext/aroini_turb.F90
@@ -1,5 +1,5 @@
 !     ######spl
-SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW)
+SUBROUTINE AROINI_TURB(PLINI,OHARATU,OSTATNW,OSUBG_COND)
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !**** *INI_TURB*   - Initialize common meso_NH MODD_ used in Turbulence scheme
@@ -43,7 +43,8 @@ USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 
 USE MODD_LES,   ONLY : LLES, LLES_CALL
 USE MODD_CTURB, ONLY : XLINI
-USE MODD_TURB_n, ONLY: LHARAT, LSTATNW, CTURBLEN, TURB_GOTO_MODEL
+USE MODD_TURB_n, ONLY: LHARAT, LSTATNW, CTURBLEN, TURB_GOTO_MODEL, LTURB_FLX, LTURB_DIAG, &
+                       LSUBG_COND, LRMC01, CTURBDIM
 USE MODI_INI_CTURB
 
 IMPLICIT NONE
@@ -54,6 +55,7 @@ IMPLICIT NONE
 REAL,   INTENT(IN) :: PLINI ! minimum bl89 mixing length
 LOGICAL,INTENT(IN) :: OHARATU ! switch HARATU
 LOGICAL,INTENT(IN) :: OSTATNW ! switch LSTATNW
+LOGICAL,INTENT(IN) :: OSUBG_COND ! switch of subgrid condensation
 !
 !     ------------------------------------------------------------------
 
@@ -79,6 +81,11 @@ LLES_CALL=.FALSE.
 !         3. Set implicit default values for MODD_TURB_n
 
 CTURBLEN  = 'BL89'
+CTURBDIM  = '1DIM'
+LTURB_FLX = .FALSE.
+LTURB_DIAG = .FALSE.
+LSUBG_COND = OSUBG_COND
+LRMC01 = .FALSE.
 
 !     ------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('AROINI_TURB',1,ZHOOK_HANDLE)
diff --git a/src/arome/ext/suphmpa.F90 b/src/arome/ext/suphmpa.F90
index bcedf617b2dfb43274d1e69c14063ab3c83354cb..cafaf9bef0750a63d837caa4e03e7df539f2fe16 100644
--- a/src/arome/ext/suphmpa.F90
+++ b/src/arome/ext/suphmpa.F90
@@ -106,7 +106,7 @@ ASSOCIATE(XDETR_LUP=>YDPARAR%XDETR_LUP, XCMF=>YDPARAR%XCMF, &
  & LAROBU_ENABLE=>YDPARAR%LAROBU_ENABLE, LCRIAUTI=>YDPARAR%LCRIAUTI, &
  & XKRC_MF=>YDPARAR%XKRC_MF, XALPHA_MF=>YDPARAR%XALPHA_MF, &
  & XPRES_UV=>YDPARAR%XPRES_UV, NRR=>YDPARAR%NRR, XCRAD_MF=>YDPARAR%XCRAD_MF, &
- & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, &
+ & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, LSUBG_COND=>YDPARAR%LSUBG_COND,&
  & LSTATNW=>YDPARAR%LSTATNW, &
  & LMPA=>YDARPHY%LMPA, LKFBCONV=>YDARPHY%LKFBCONV, LMFSHAL=>YDARPHY%LMFSHAL, &
  & LGRADHPHY=>YDARPHY%LGRADHPHY, &
@@ -166,7 +166,7 @@ CALL AROINI_BUDGET(LAROBU_ENABLE)
 
 !       4. Initialisation of Turbulence scheme
 
-CALL AROINI_TURB(XLINI,LHARATU,LSTATNW)
+CALL AROINI_TURB(XLINI,LHARATU,LSTATNW,LSUBG_COND)
 
 !       5. Initialisation of Mass Flux Shallow convection scheme
 
diff --git a/src/common/aux/modd_blowsnow.F90 b/src/common/aux/modd_blowsnow.F90
deleted file mode 100644
index 36180eadd60e261aa7b39b19e96edbda940c31f6..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_blowsnow.F90
+++ /dev/null
@@ -1,80 +0,0 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!!     ######################
-       MODULE MODD_BLOWSNOW
-!!     ######################
-!!
-!!     PURPOSE
-!!     -------
-!!
-!!     Declaration of variables and types for the blowing snow scheme
-!!
-!!     METHOD
-!!     ------
-!!
-!!
-!!     REFERENCE
-!!     ---------
-!!     Etudes du transport de la neige par le vent en conditions alpines : 
-!!     Observations et simulations à l'aide d'un modèle couplé atmosphère/
-!!     manteau neigeux (Thèse, Uni. Paris Est, 2012)
-!!
-!!
-!!     AUTHOR
-!!     ------
-!!     Vincent Vionnet (CNRM)
-!!
-!!
-!!     MODIFICATIONS
-!!     -------------
-!!
-!!--------------------------------------------------------------------
-!!     DECLARATIONS
-!!     ------------
-IMPLICIT NONE
-
-LOGICAL      :: LBLOWSNOW  = .FALSE.   ! switch to active pronostic blowing snow
-!
-INTEGER      :: NBLOWSNOW3D = 2 ! Number of blowing snow variables
-! as scalar in Meso-NH. The curent version of the model use two scalars:
-!				- Number concentration (#/kg)
-!				- Mass concentration (kg/kg)
-
-INTEGER     :: NBLOWSNOW_2D = 3  ! Number of 2D blowing snow variables
-! adected in Meso-NH. The curent version of the model advectes three variables:
-!             - total number concentration in Canopy
-!             - total mass concentration in Canopy
-!             - equivalent concentration in the saltation layer
-!
-REAL            :: XALPHA_SNOW ! Gamma distribution shape factor
-!
-REAL            :: XRSNOW  ! Ratio between diffusion coefficient for scalar
-                           ! variables and blowing snow variables
-                           ! RSNOW = KSCA/KSNOW = 4. (if Redelsperger-Sommeria (1981) used in ini_cturb)
-                           ! RSNOW = KSCA/KSNOW = 2.5 ( if Cheng-Canuto-Howard (2002) used in ini_cturb)
-                           ! Cheng-Canuto-Howard (2002) is the default in MNH V5.3
-                           ! See Vionnet (PhD, 2012, In French) and Vionnet et al (TC, 2014)
-                           ! for a complete dicsussion
-CHARACTER(LEN=6),DIMENSION(:),ALLOCATABLE  :: CSNOWNAMES
-
-CHARACTER(LEN=6),DIMENSION(2), PARAMETER  :: YPSNOW_INI = &
-     (/'SNWM01','SNWM02'/)
-!
-CHARACTER(LEN=6),DIMENSION(3), PARAMETER  :: YPBLOWSNOW_2D = &
-     (/'SNWCNU','SNWCMA','SNWCSA' /)
-
-CHARACTER(LEN=4)  :: CSNOWSEDIM ! type of formulation for snow
-!              sedimentation : MITC : Mitchell (1996)
-!                              CARR : Carrier's drag coefficient (cf PIEKTUK)
-!                              TABC : Tabulated values from Carrier's drag coefficient
-!                              NONE : no seidmentation
-!Minimal mean radius (um) 
-REAL           :: XINIRADIUS_SNW = 5.e-6
-!Minimum allowed number concentration (#/m3)
-REAL           :: XN0MIN_SNW    =  1
-!
-!
-END MODULE MODD_BLOWSNOW
diff --git a/src/common/aux/modd_dimn.F90 b/src/common/aux/modd_dimn.F90
deleted file mode 100644
index 622541f68f37ad130a45ecd4169932eae50f2967..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_dimn.F90
+++ /dev/null
@@ -1,87 +0,0 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
-!     ##################
-      MODULE MODD_DIM_n
-!     ##################
-!
-!!****  *MODD_DIM$n* - declaration of dimensions
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this declarative module is to specify  the dimensions 
-!     of the data arrays.   
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!      Book2 of documentation of Meso-NH (module MODD_DIMn)
-!!      Technical Specifications Report of the Meso-NH (chapters 2 and 3)
-!!          
-!!    AUTHOR
-!!    ------
-!!	V. Ducrocq   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    05/05/94     
-!!      Modifications 13/08/98 (V. Ducrocq) // NIINF .. NJSUP are no more used in the init part                
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_PARAMETERS, ONLY: JPMODELMAX
-IMPLICIT NONE
-
-TYPE DIM_t
-  INTEGER :: NIMAX,NJMAX,NKMAX  !  Dimensions respectively  in x , 
-                              ! y ,  z directions of the physical sub-domain.
-  INTEGER :: NIMAX_ll,NJMAX_ll  !  Dimensions respectively  in x and y
-                                   ! directions of the physical domain
-  INTEGER :: NIINF, NISUP       !  Lower bound and upper bound of the arrays 
-                                   ! in x direction 
-  INTEGER :: NJINF, NJSUP       !  Lower bound and upper bound of the arrays 
-                                   ! in y direction
-!
-END TYPE DIM_t
-
-TYPE(DIM_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: DIM_MODEL
-
-INTEGER, POINTER :: NIMAX=>NULL(),NJMAX=>NULL(),NKMAX=>NULL()
-INTEGER, POINTER :: NIMAX_ll=>NULL(),NJMAX_ll=>NULL()
-INTEGER, POINTER :: NIINF=>NULL(), NISUP=>NULL()
-INTEGER, POINTER :: NJINF=>NULL(), NJSUP=>NULL()
-
-CONTAINS
-
-SUBROUTINE DIM_GOTO_MODEL(KFROM, KTO)
-INTEGER, INTENT(IN) :: KFROM, KTO
-!
-! Save current state for allocated arrays
-!
-! Current model is set to model KTO
-NIMAX=>DIM_MODEL(KTO)%NIMAX
-NJMAX=>DIM_MODEL(KTO)%NJMAX
-NKMAX=>DIM_MODEL(KTO)%NKMAX
-NIMAX_ll=>DIM_MODEL(KTO)%NIMAX_ll
-NJMAX_ll=>DIM_MODEL(KTO)%NJMAX_ll
-NIINF=>DIM_MODEL(KTO)%NIINF
-NISUP=>DIM_MODEL(KTO)%NISUP
-NJINF=>DIM_MODEL(KTO)%NJINF
-NJSUP=>DIM_MODEL(KTO)%NJSUP
-
-END SUBROUTINE DIM_GOTO_MODEL
-
-END MODULE MODD_DIM_n
diff --git a/src/common/aux/modd_frc.F90 b/src/common/aux/modd_frc.F90
deleted file mode 100644
index e1d77673e8619106b68cb329fa2ed58c96844cf3..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_frc.F90
+++ /dev/null
@@ -1,112 +0,0 @@
-!MNH_LIC Copyright 1996-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!     ###############
-      MODULE MODD_FRC
-!     ###############
-!
-!!***  *MODD_FRC -  Declarative module for the forcing fields
-!!
-!!    PURPOSE
-!!    -------
-!       This module contains NFRC 1D-arrays used by FORCING (geostrophic wind
-!     components, large scale vertical wind, theta and humidity profiles when
-!     the relaxation option is used,large scale theta and humidity gradients
-!     and the translation speed of the domain of simulation.
-!     The following control parameters are used by FORCING:
-!     - LGEOST_UV_FRC and LGEOST_TH_FRC
-!     - LTEND_THRV_FRC and LTEND_UV_FRC
-!     - LVERT_MOTION_FRC  
-!     - LRELAX_THRV_FRC, LRELAX_UV_FRC and LRELAX_UVMEAN_FRC using:
-!         XRELAX_TIME_FRC, XRELAX_HEIGHT_FRC and CRELAX_HEIGHT_TYPE
-!     - LTRANS
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!      Book2 of documentation of Meso-NH (module MODD_FRC)
-!!      
-!!
-!!    AUTHOR
-!!    ------
-!!	    Marc Georgelin Labo d'aerologie
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original 29/07/96 
-!!      29/07/96 (Pinty&Suhre) revised
-!!      18/11/96 J.-P. Pinty   addition of the translation
-!!      27/01/98 P. Bechtold   use tendency forcing
-!!                             add SST and surface pressure forcing
-!!      01/2004  V. Masson     surface externalization: removes SST forcing
-!!                   09/2017 Q.Rodier add LTEND_UV_FRC
-!!      03/2021 JL Redelsperger Parameters defining sfc forcing shape for idealized ocean case
-!!      06/2021 F. Couvreux    add LRELAX_UVMEAN_FRC
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-!USE MODD_TYPE_DATE
-!
-IMPLICIT NONE
-!
-!*            fields for FORCING
-!             ------------------
-!
-INTEGER,          SAVE                  :: NFRC     ! number of forcing profiles
-!TYPE (DATE_TIME), SAVE, DIMENSION(:), ALLOCATABLE :: TDTFRC ! date of
-                                                    !  each forcing profile
-!
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XUFRC,   &! geostrophic wind 
-					                       XVFRC,   &! components U and V
-					                       XWFRC     ! large scale vertical wind
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTHFRC,  &! large scale TH profile
-					                       XRVFRC    ! large scale RV profile
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XGXTHFRC,&! large scale TH gradient
-                                           XGYTHFRC  ! along the X and Y axis
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTENDTHFRC,&! large scale TH tendency
-                                           XTENDRVFRC  ! large scale RV tendency
-REAL, SAVE                              :: XUTRANS, &! horizontal components of
-                                           XVTRANS   !        a constant
-                                                     !   Galilean TRANSlation
-REAL, SAVE, DIMENSION(:), ALLOCATABLE   :: XPGROUNDFRC! surf. pressure 
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTENDUFRC   ! large scale U tendency
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XTENDVFRC   ! large scale V tendency
-!
-!*            control parameters for FORCING
-!             ------------------------------
-!
-LOGICAL, SAVE     :: LGEOST_UV_FRC      ! enables geostrophic wind term
-LOGICAL, SAVE     :: LGEOST_TH_FRC      ! enables thermal wind advection
-LOGICAL, SAVE     :: LTEND_THRV_FRC     ! enables tendency forcing
-LOGICAL, SAVE     :: LTEND_UV_FRC       ! enables tendency forcing of the wind
-LOGICAL, SAVE     :: LVERT_MOTION_FRC   ! enables prescribed a forced vertical
-					                    ! transport for all prognostic variables
-LOGICAL, SAVE     :: LRELAX_THRV_FRC    ! enables temp. and humidity relaxation
-LOGICAL, SAVE     :: LRELAX_UV_FRC      ! enables  horizontal wind relaxation applied to the full wind field
-LOGICAL, SAVE     :: LRELAX_UVMEAN_FRC  ! enables  horizontal wind relaxation applied to the horiz. avg. wind
-!
-REAL,    SAVE     :: XRELAX_TIME_FRC    ! e-folding time for relaxation 
-REAL,    SAVE     :: XRELAX_HEIGHT_FRC  ! height below which relaxation
-                                        ! is never applied
-CHARACTER(len=4), SAVE :: CRELAX_HEIGHT_TYPE ! "THGR" relax. above maximal dTH/dz
-					                    ! (but always above XRELAX_HEIGHT_FRC)
-					                    ! "FIXE" relax. above XRELAX_HEIGHT_FRC
-!
-LOGICAL, SAVE     :: LTRANS             ! enables a Galilean translation of the
-                                        !         domain of simulation
-LOGICAL, SAVE     :: LPGROUND_FRC       ! enables surf. pressure forcing
-!
-LOGICAL, SAVE     :: LDEEPOC            ! activates sfc forcing for ideal ocean deep conv 
-REAL,    SAVE     :: XCENTX_OC          ! center of sfc forc for ideal ocean
-REAL,    SAVE     :: XRADX_OC           ! radius of sfc forc for ideal ocean
-REAL,    SAVE     :: XCENTY_OC          ! center of sfc forc for ideal ocean
-REAL,    SAVE     :: XRADY_OC           ! radius of sfc forc for ideal ocean
-!
-END MODULE MODD_FRC
diff --git a/src/common/aux/modd_gridn.F90 b/src/common/aux/modd_gridn.F90
deleted file mode 100644
index 055d3c88f76b4634b987607db83365a12e58710f..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_gridn.F90
+++ /dev/null
@@ -1,67 +0,0 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!     ##################
-      MODULE MODD_GRID_n
-!     ##################
-!
-!!****  *MODD_GRID$n* - declaration of grid variables
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this declarative module is to declare  the variables
-!     describing the grid. 
-!    
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!      Book2 of documentation of Meso-NH (module MODD_GRIDn)
-!!      Technical Specifications Report of the Meso-NH (chapters 2 and 3)
-!!
-!!    AUTHOR
-!!    ------
-!!	V. Ducrocq   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    05/05/94                      
-!!      J. Stein    15/11/95  add the slope angle
-!!      V. Ducrocq   13/08/98  // : add XLATOR_ll and XLONOR_ll       
-!!      V. Masson   nov 2004  supress XLATOR,XLONOR,XLATOR_ll,XLONOR_ll
-!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_PARAMETERS, ONLY: JPMODELMAX
-IMPLICIT NONE
-
-REAL, DIMENSION(:,:),  POINTER :: XLON=>NULL(),XLAT=>NULL() ! Longitude and latitude  
-REAL, DIMENSION(:),    POINTER :: XXHAT=>NULL()             ! Position x in the conformal or cartesian plane
-REAL, DIMENSION(:),    POINTER :: XYHAT=>NULL()             ! Position y in the conformal or cartesian plane
-REAL, DIMENSION(:),    POINTER :: XDXHAT=>NULL()            ! horizontal stretching in x
-REAL, DIMENSION(:),    POINTER :: XDYHAT=>NULL()            ! horizontal stretching in y
-REAL, DIMENSION(:,:),  POINTER :: XMAP=>NULL()              ! Map factor 
-REAL, DIMENSION(:,:),  POINTER :: XZS=>NULL()               ! orography
-REAL, DIMENSION(:,:,:),POINTER :: XZZ=>NULL()               ! height z 
-REAL,                  POINTER :: XZTOP=>NULL()             ! model top (m)
-REAL, DIMENSION(:),    POINTER :: XZHAT=>NULL()             ! height level without orography
-REAL, DIMENSION(:,:),  POINTER :: XDIRCOSXW=>NULL(),XDIRCOSYW=>NULL(),XDIRCOSZW=>NULL() ! director cosinus of the normal
-                                                                                        ! to the ground surface
-REAL, DIMENSION(:,:),  POINTER  :: XCOSSLOPE=>NULL()         ! cosinus of the angle between i and the slope vector
-REAL, DIMENSION(:,:),  POINTER  :: XSINSLOPE=>NULL()         ! sinus   of the angle between i and the slope vector
-! Quantities for SLEVE vertical coordinate
-LOGICAL,               POINTER  :: LSLEVE=>NULL()            ! Logical for SLEVE coordinate
-REAL,                  POINTER  :: XLEN1=>NULL()             ! Decay scale for smooth topography
-REAL,                  POINTER  :: XLEN2=>NULL()             ! Decay scale for small-scale topography deviation
-REAL, DIMENSION(:,:),  POINTER  :: XZSMT=>NULL()             ! smooth orography for SLEVE coordinate
-
-END MODULE MODD_GRID_n
diff --git a/src/common/aux/modd_metricsn.F90 b/src/common/aux/modd_metricsn.F90
deleted file mode 100644
index 33cec104e0fcc1f51650c617136afecbb7f8edd0..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_metricsn.F90
+++ /dev/null
@@ -1,78 +0,0 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/06/27 14:20:29
-!-----------------------------------------------------------------
-!     #####################
-      MODULE MODD_METRICS_n
-!     #####################
-!
-!!****  *MODD_METRICS$n* - metric coefficients
-!!
-!!    PURPOSE
-!!    -------
-!       The purpose of this declarative module is to declare the 
-!     metric coefficients. 
-!    
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!	P. Jabouille   *Meteo France*
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original    05/04/99                      
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_PARAMETERS, ONLY: JPMODELMAX
-IMPLICIT NONE
-
-TYPE METRICS_t
-  REAL, DIMENSION(:,:,:), POINTER :: XDXX=>NULL(),XDZX=>NULL(), &
-                                  XDYY=>NULL(),XDZY=>NULL(),XDZZ=>NULL()
-                                            !metric coefficients
-END TYPE METRICS_t
-
-TYPE(METRICS_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: METRICS_MODEL
-
-REAL, DIMENSION(:,:,:), POINTER :: XDXX=>NULL(),XDZX=>NULL(), &
-                                  XDYY=>NULL(),XDZY=>NULL(),XDZZ=>NULL()
-
-CONTAINS
-
-SUBROUTINE METRICS_GOTO_MODEL(KFROM, KTO)
-INTEGER, INTENT(IN) :: KFROM, KTO
-!
-! Save current state for allocated arrays
-METRICS_MODEL(KFROM)%XDXX=>XDXX
-METRICS_MODEL(KFROM)%XDZX=>XDZX
-METRICS_MODEL(KFROM)%XDYY=>XDYY
-METRICS_MODEL(KFROM)%XDZY=>XDZY
-METRICS_MODEL(KFROM)%XDZZ=>XDZZ
-!
-! Current model is set to model KTO
-XDXX=>METRICS_MODEL(KTO)%XDXX
-XDZX=>METRICS_MODEL(KTO)%XDZX
-XDYY=>METRICS_MODEL(KTO)%XDYY
-XDZY=>METRICS_MODEL(KTO)%XDZY
-XDZZ=>METRICS_MODEL(KTO)%XDZZ
-
-END SUBROUTINE METRICS_GOTO_MODEL
-
-END MODULE MODD_METRICS_n
diff --git a/src/common/aux/modd_oceanh.F90 b/src/common/aux/modd_oceanh.F90
deleted file mode 100644
index 6638752658492bb2a477b6781ca92fe885bfcf04..0000000000000000000000000000000000000000
--- a/src/common/aux/modd_oceanh.F90
+++ /dev/null
@@ -1,47 +0,0 @@
-!MNH_LIC Copyright 2021-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-!     #################
-      MODULE MODD_OCEANH
-!     #################
-!
-!!****  *MODD_OCEAN* - declaration of variables used in ocean version
-!!
-!!    PURPOSE
-!!    -------
-!       Declarative module for the variables
-!!      at interface for OCEAN LES MESONH version including auto-coupling O-A LES
-!
-!!
-!!**  IMPLICIT ARGUMENTS
-!!    ------------------
-!!      None 
-!!
-!!    AUTHOR
-!!    ------
-!!    JL Redelsperger LOPS
-!!   
-!!    MODIFICATIONS
-!!    -------------
-!!      Original 03/2021
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-!USE MODD_TYPE_DATE
-!
-IMPLICIT NONE
-!
-!*            fields for Sea Sfc FORCINGs
-!             ------------------
-!
-INTEGER,          SAVE                  :: NFRCLT     ! number of sea surface forcings PLUS 1
-INTEGER,          SAVE                  :: NINFRT     ! Interval in second between forcings
-!TYPE (DATE_TIME), SAVE, DIMENSION(:), ALLOCATABLE :: TFRCLT ! date/time of sea surface forcings
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE ::  XSSUFL,XSSVFL,XSSTFL,XSSOLA ! Time evol Flux U V T Solar_Rad at sea surface
-REAL, SAVE, DIMENSION(:,:), ALLOCATABLE :: XSSUFL_XY,XSSVFL_XY,XSSTFL_XY! XY flux shape
-REAL, SAVE, DIMENSION(:), ALLOCATABLE :: XSSUFL_T,XSSVFL_T,XSSTFL_T,XSSOLA_T ! given time forcing fluxes
-!
-END MODULE MODD_OCEANH
diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90
index 6989ce1e40e3c162f0ff8243e4556c8522056e68..1b16c4619620c1deb4c8986863910bbcc94c65a1 100644
--- a/src/common/turb/mode_tke_eps_sources.F90
+++ b/src/common/turb/mode_tke_eps_sources.F90
@@ -5,12 +5,11 @@
 MODULE MODE_TKE_EPS_SOURCES
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,HPROGRAM,         &
-                    & KMI,PTKEM,PLM,PLEPS,PDP,                         &
+      SUBROUTINE TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,TURBN,            &
+                    & HPROGRAM, KMI,PTKEM,PLM,PLEPS,PDP,               &
                     & PTRH,PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,        &
-                    & PTSTEP,PIMPL,PEXPL,                              &
-                    & HTURBLEN,HTURBDIM,                               &
-                    & TPFILE,OTURB_DIAG,OLES_CALL,ODIAG_IN_RUN,OOCEAN, &
+                    & PTSTEP,PEXPL,                                    &
+                    & TPFILE,OLES_CALL,ODIAG_IN_RUN,OOCEAN,            &
                     & PSFUM,PSFVM,                                     &
                     & PTP,PRTKES,PRTHLS,PCOEF_DISS,PTDIFF,PTDISS,PRTKEMS,&
                     & TBUDGETS, KBUDGETS,                              &
@@ -37,7 +36,7 @@ CONTAINS
 !!      In high resolution, the horizontal transport terms are also
 !!    calculated, but explicitly. 
 !!      The evolution of the dissipation as a variable is made if 
-!!    the parameter HTURBLEN is set equal to KEPS. The same reasoning 
+!!    the parameter TURBN%CTURBLEN is set equal to KEPS. The same reasoning 
 !!    made for TKE applies.
 !!
 !!    EXTERNAL
@@ -135,6 +134,7 @@ USE MODD_ARGSLIST_ll,    ONLY: LIST_ll
 USE MODD_BUDGET, ONLY: TBUDGETCONF_t, NBUDGET_TKE, NBUDGET_TH, TBUDGETDATA
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
+USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_FIELD, ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO, ONLY: TFILEDATA
@@ -166,6 +166,7 @@ TYPE(DIMPHYEX_t),        INTENT(IN)   :: D
 TYPE(CST_t),             INTENT(IN)   :: CST
 TYPE(CSTURB_t),          INTENT(IN)   :: CSTURB
 TYPE(TBUDGETCONF_t),     INTENT(IN)   :: BUCONF
+TYPE(TURB_t),            INTENT(IN)   :: TURBN
 INTEGER,                 INTENT(IN)   ::  KMI          ! model index number  
 REAL, DIMENSION(D%NIJT,D%NKT),  INTENT(IN)   ::  PTKEM        ! TKE at t-deltat
 REAL, DIMENSION(D%NIJT,D%NKT),  INTENT(IN)   ::  PLM          ! mixing length         
@@ -175,14 +176,10 @@ REAL, DIMENSION(D%NIJT,D%NKT),  INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
                                                        ! metric coefficients
 REAL, DIMENSION(D%NIJT,D%NKT),  INTENT(IN)   ::  PZZ          ! physical height w-pt
 REAL,                    INTENT(IN)   ::  PTSTEP       ! Time step 
-REAL,                    INTENT(IN)   ::  PEXPL, PIMPL ! Coef. temporal. disc.
-CHARACTER(LEN=4),        INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                       ! turbulence scheme
-CHARACTER(LEN=4),        INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
+REAL,                    INTENT(IN)   ::  PEXPL        ! Coef. temporal. disc.
 CHARACTER(LEN=6),        INTENT(IN)   ::  HPROGRAM     ! CPROGRAM is the program currently running (modd_conf)
 TYPE(TFILEDATA),         INTENT(IN)   ::  TPFILE       ! Output file
 LOGICAL,                 INTENT(IN)   ::  OLES_CALL    !
-LOGICAL,                 INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
 LOGICAL,                 INTENT(IN)   ::  ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh)
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 REAL, DIMENSION(D%NIJT,D%NKT),  INTENT(INOUT)::  PDP          ! Dyn. prod. of TKE
@@ -259,7 +256,7 @@ ZKEFF(IIJB:IIJE,1:D%NKT) = PLM(IIJB:IIJE,1:D%NKT) * SQRT(PTKEM(IIJB:IIJE,1:D%NKT
 !
 ! Complete the sources of TKE with the horizontal turbulent explicit transport
 !
-IF (HTURBDIM=='3DIM') THEN
+IF (TURBN%CTURBDIM=='3DIM') THEN
   ZTR(IIJB:IIJE,1:D%NKT)=PTRH(IIJB:IIJE,1:D%NKT)
 ELSE
   ZTR(IIJB:IIJE,1:D%NKT)=0.
@@ -316,7 +313,7 @@ ZA(IIJB:IIJE,1:D%NKT)     = - PTSTEP * CSTURB%XCET * ZMWORK1(IIJB:IIJE,1:D%NKT)
 !
 ! Compute TKE at time t+deltat: ( stored in ZRES )
 !
-CALL TRIDIAG_TKE(D,PTKEM,ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,ZSOURCE,PTSTEP*ZFLX,ZRES)
+CALL TRIDIAG_TKE(D,PTKEM,ZA,PTSTEP,PEXPL,TURBN%XIMPL,PRHODJ,ZSOURCE,PTSTEP*ZFLX,ZRES)
 CALL GET_HALO_PHY(D,ZRES)
 !
 !* diagnose the dissipation
@@ -324,7 +321,7 @@ CALL GET_HALO_PHY(D,ZRES)
 IF (ODIAG_IN_RUN) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   PCURRENT_TKE_DISS(IIJB:IIJE,1:D%NKT) = ZFLX(IIJB:IIJE,1:D%NKT) * PTKEM(IIJB:IIJE,1:D%NKT) &
-                                  *(PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT))
+                                  *(PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
   CALL ADD2DFIELD_ll(TZFIELDDISS_ll, PCURRENT_TKE_DISS, 'TKE_EPS_SOURCES::PCURRENT_TKE_DISS' )
@@ -345,17 +342,17 @@ END IF
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 PTDISS(IIJB:IIJE,1:D%NKT) = - ZFLX(IIJB:IIJE,1:D%NKT)*(PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) &
-                                      + PIMPL*ZRES(IIJB:IIJE,1:D%NKT))
+                                      + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT))
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
 IF ( OLES_CALL .OR.                         &
-     (OTURB_DIAG .AND. TPFILE%LOPENED)  ) THEN
+     (TURBN%LTURB_DIAG .AND. TPFILE%LOPENED)  ) THEN
 !
 ! Compute the cartesian vertical flux of TKE in ZFLX
 !
   CALL MZM_PHY(D,ZKEFF,ZMWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-  ZDWORK1(IIJB:IIJE,1:D%NKT) = PIMPL * ZRES(IIJB:IIJE,1:D%NKT) + PEXPL * PTKEM(IIJB:IIJE,1:D%NKT)
+  ZDWORK1(IIJB:IIJE,1:D%NKT) = TURBN%XIMPL * ZRES(IIJB:IIJE,1:D%NKT) + PEXPL * PTKEM(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   CALL DZM_PHY(D,ZDWORK1,ZDWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -407,7 +404,7 @@ IF (BUCONF%LBUDGET_TKE) THEN
   ! Dissipation
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZMWORK1(IIJB:IIJE,1:D%NKT) = -CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT))/PLEPS(IIJB:IIJE,1:D%NKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT))*PRHODJ(IIJB:IIJE,1:D%NKT)
+                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT))*PRHODJ(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT) 
   CALL BUDGET_STORE_ADD_PHY(D, TBUDGETS(NBUDGET_TKE), 'DISS',ZMWORK1)
 END IF 
@@ -422,13 +419,13 @@ IF (BUCONF%LBUDGET_TKE) THEN
 PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PDP(IIJB:IIJE,1:D%NKT) * PRHODJ(IIJB:IIJE,1:D%NKT)
 PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PTP(IIJB:IIJE,1:D%NKT) * PRHODJ(IIJB:IIJE,1:D%NKT)
 PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT)) / PLEPS(IIJB:IIJE,1:D%NKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT)) * PRHODJ(IIJB:IIJE,1:D%NKT)
+                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT)) * PRHODJ(IIJB:IIJE,1:D%NKT)
 END IF
 #else
 PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PRHODJ(IIJB:IIJE,1:D%NKT) * &
                 ( PDP(IIJB:IIJE,1:D%NKT) + PTP(IIJB:IIJE,1:D%NKT)                           &
                   - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT)) / PLEPS(IIJB:IIJE,1:D%NKT) &
-                  * ( PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT) ) )
+                  * ( PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT) ) )
 #endif
 !
 PTDIFF(IIJB:IIJE,1:D%NKT) =  ZRES(IIJB:IIJE,1:D%NKT) / PTSTEP - PRTKES(IIJB:IIJE,1:D%NKT)&
@@ -455,7 +452,7 @@ IF (BUCONF%LBUDGET_TKE) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_TKE), 'TR'
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 PRTHLS(IIJB:IIJE,1:D%NKT) = PRTHLS(IIJB:IIJE,1:D%NKT) + &
                                     CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT)) / PLEPS(IIJB:IIJE,1:D%NKT) * &
-                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT)) &
+                (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT)) &
                 * PRHODJ(IIJB:IIJE,1:D%NKT) * PCOEF_DISS(IIJB:IIJE,1:D%NKT)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !----------------------------------------------------------------------------
@@ -476,7 +473,7 @@ IF(PRESENT(PEDR)) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 END IF
 !
-IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_DIAG .AND. TPFILE%LOPENED ) THEN
 !
 ! stores the dynamic production 
 !
diff --git a/src/common/turb/mode_turb_hor.F90 b/src/common/turb/mode_turb_hor.F90
index df7a8447547b49601f9702d49e82a4b00d7a35bc..576cb3268940d000d05144e872c027511602b730 100644
--- a/src/common/turb/mode_turb_hor.F90
+++ b/src/common/turb/mode_turb_hor.F90
@@ -5,9 +5,9 @@
 MODULE MODE_TURB_HOR  
 IMPLICIT NONE
 CONTAINS
-             SUBROUTINE TURB_HOR(D,CST,CSTURB,                       &
+             SUBROUTINE TURB_HOR(D,CST,CSTURB,TURBN,                 &
                       KSPLT, KRR, KRRL, KRRI, PTSTEP,                &
-                      OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+                      OOCEAN,OCOMPUTE_SRC,                           &
                       TPFILE,                                        &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
                       PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                 &
@@ -139,6 +139,7 @@ CONTAINS
 !
 USE MODD_CST, ONLY : CST_t
 USE MODD_CTURB, ONLY : CSTURB_t
+USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_IO, ONLY: TFILEDATA
 USE MODD_PARAMETERS
@@ -162,15 +163,12 @@ IMPLICIT NONE
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
+TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KSPLT         ! current split index
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
 REAL,                   INTENT(IN)   ::  PTSTEP       !
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                 INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid 
-!                                                    condensation
 LOGICAL,                  INTENT(IN) ::  OOCEAN ! switch for ocean version
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
@@ -255,8 +253,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*       6.   < V' R'np >
 !*       7.   < V' TPV' >
 !
-      CALL      TURB_HOR_THERMO_FLUX(KSPLT, KRR, KRRL, KRRI,         &
-                      OTURB_FLX,OSUBG_COND,                          &
+      CALL      TURB_HOR_THERMO_FLUX(TURBN,KSPLT, KRR, KRRL, KRRI,   &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -271,8 +268,9 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*       8.   TURBULENT CORRELATIONS : <THl THl>, <THl Rnp>, <Rnp Rnp>, Sigma_s
 !
       IF (KSPLT==1)                                                  &
-      CALL      TURB_HOR_THERMO_CORR(D,CST,KRR, KRRL, KRRI,          &
-                      OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+      CALL      TURB_HOR_THERMO_CORR(D,CST,TURBN,                    &
+                      KRR, KRRL, KRRI,                               &
+                      OOCEAN,OCOMPUTE_SRC,                           &
                       TPFILE,                                        &
                       PINV_PDXX,PINV_PDYY,                           &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -287,8 +285,8 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*      10.   < V'V'>
 !*      11.   < W'W'>
 ! 
-      CALL       TURB_HOR_DYN_CORR(KSPLT, PTSTEP,                    &
-                      OTURB_FLX,KRR,                                 &
+      CALL       TURB_HOR_DYN_CORR(TURBN,KSPLT, PTSTEP,              &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDZZ,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
@@ -305,8 +303,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      12.   < U'V'>
 !
-      CALL      TURB_HOR_UV(KSPLT,                                   &
-                      OTURB_FLX,                                     &
+      CALL      TURB_HOR_UV(TURBN,KSPLT,                             &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -321,8 +318,8 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      13.   < U'W'>
 !
-      CALL      TURB_HOR_UW(KSPLT,                                   &
-                      OTURB_FLX,KRR,                                 &
+      CALL      TURB_HOR_UW(TURBN,KSPLT,                             &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDXX,PDZZ,PDZX,                                &
@@ -335,8 +332,8 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      14.   < V'W'>
 !
-      CALL      TURB_HOR_VW(KSPLT,                                   &
-                      OTURB_FLX,KRR,                                 &
+      CALL      TURB_HOR_VW(TURBN,KSPLT,                             &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDYY,PDZZ,PDZY,                                &
@@ -350,8 +347,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      15.   HORIZONTAL FLUXES OF PASSIVE SCALARS
 !
-      CALL      TURB_HOR_SV_FLUX(KSPLT,                              &
-                      OTURB_FLX,                                     &
+      CALL      TURB_HOR_SV_FLUX(TURBN,KSPLT,                        &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
diff --git a/src/common/turb/mode_turb_hor_dyn_corr.F90 b/src/common/turb/mode_turb_hor_dyn_corr.F90
index aebed3a09af306ea458ed994f7e6d3add597588b..ead101cfa59727cfd5aafb71211520ca4e3dfafd 100644
--- a/src/common/turb/mode_turb_hor_dyn_corr.F90
+++ b/src/common/turb/mode_turb_hor_dyn_corr.F90
@@ -6,8 +6,8 @@
 MODULE MODE_TURB_HOR_DYN_CORR
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_DYN_CORR(KSPLT, PTSTEP,                    &
-                      OTURB_FLX,KRR,                                 &
+      SUBROUTINE TURB_HOR_DYN_CORR(TURBN,KSPLT, PTSTEP,              &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDZZ,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
@@ -70,6 +70,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_ARGSLIST_ll,    ONLY: LIST_ll
 USE MODD_CST
 USE MODD_CONF
@@ -102,10 +104,9 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
 REAL,                     INTENT(IN)    ::  PTSTEP       ! timestep
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 INTEGER,                  INTENT(IN)    ::  KRR          ! number of moist var.
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
@@ -299,7 +300,7 @@ ZFLX(:,:,IKB-1) =                                                            &
 ZFLX(:,:,IKB-1) = 2. * ZFLX(:,:,IKB-1) -  ZFLX(:,:,IKB)
 !
 CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll)
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   ! stores <U U>  
   TZFIELD%CMNHNAME   = 'U_VAR'
   TZFIELD%CSTDNAME   = ''
@@ -394,7 +395,7 @@ ZFLX(:,:,IKB-1) = 2. * ZFLX(:,:,IKB-1) -  ZFLX(:,:,IKB)
 !
 CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll)
 !
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   ! stores <V V>  
   TZFIELD%CMNHNAME   = 'V_VAR'
   TZFIELD%CSTDNAME   = ''
@@ -481,7 +482,7 @@ ZFLX(:,:,IKB-1) =                                                     &
   ! 
 ZFLX(:,:,IKB-1) = 2. * ZFLX(:,:,IKB-1) - ZFLX(:,:,IKB)
 !
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   ! stores <W W>  
   TZFIELD%CMNHNAME   = 'W_VAR'
   TZFIELD%CSTDNAME   = ''
diff --git a/src/common/turb/mode_turb_hor_splt.F90 b/src/common/turb/mode_turb_hor_splt.F90
index 9fc32b91b4d13bfd718d15212ff0cd4599f114d4..75d35905d1b82a084d9692c390a6b6a6ee15e78e 100644
--- a/src/common/turb/mode_turb_hor_splt.F90
+++ b/src/common/turb/mode_turb_hor_splt.F90
@@ -5,9 +5,9 @@
 MODULE MODE_TURB_HOR_SPLT
 IMPLICIT NONE
 CONTAINS
-           SUBROUTINE TURB_HOR_SPLT(D,CST,CSTURB,                    &
+           SUBROUTINE TURB_HOR_SPLT(D,CST,CSTURB,TURBN,              &
                       KSPLIT, KRR,KRRL,KRRI,KSV, PTSTEP,HLBCX,HLBCY, &
-                      OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+                      OOCEAN,OCOMPUTE_SRC,                           &
                       TPFILE,                                        &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
                       PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                 &
@@ -160,6 +160,8 @@ USE MODD_CONF
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
 USE MODD_DIMPHYEX, ONLY : DIMPHYEX_t
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_IO, ONLY: TFILEDATA
 USE MODD_PARAMETERS
 !
@@ -179,6 +181,7 @@ IMPLICIT NONE
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
+TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KSPLIT        ! number of time splitting
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
@@ -186,9 +189,6 @@ INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
 INTEGER,                INTENT(IN)   :: KSV           ! number of sv var.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN)       ::  HLBCX,HLBCY
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                 INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid condensation
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 
@@ -364,8 +364,9 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
   DO JSPLT=1,KSPLIT
 !
 ! compute the turbulent tendencies for the small time step
-    CALL TURB_HOR(D,CST,CSTURB,JSPLT, KRR, KRRL, KRRI, PTSTEP,    &
-                   OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+    CALL TURB_HOR(D,CST,CSTURB,TURBN,                             &
+                   JSPLT, KRR, KRRL, KRRI, PTSTEP,    &
+                   OOCEAN,OCOMPUTE_SRC,                           &
                    TPFILE,                                        &
                    PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
                    PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                 &
@@ -505,8 +506,9 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
 !
 ELSE
 !
-  CALL TURB_HOR(D,CST,CSTURB,1, KRR, KRRL, KRRI,  PTSTEP,      &
-                OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+  CALL TURB_HOR(D,CST,CSTURB,TURBN,                            &
+                1, KRR, KRRL, KRRI,  PTSTEP,                   &
+                OOCEAN,OCOMPUTE_SRC,                           &
                 TPFILE,                                        &
                 PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
                 PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                 &
diff --git a/src/common/turb/mode_turb_hor_sv_flux.F90 b/src/common/turb/mode_turb_hor_sv_flux.F90
index f61a531d910f2c0fb1f97b249a8665a53fa1ca08..d490806f6ca91cb1edbc016c0f5df6bb8d0e8d5d 100644
--- a/src/common/turb/mode_turb_hor_sv_flux.F90
+++ b/src/common/turb/mode_turb_hor_sv_flux.F90
@@ -6,8 +6,7 @@
 MODULE MODE_TURB_HOR_SV_FLUX
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_SV_FLUX(KSPLT,                             &
-                      OTURB_FLX,                                     &
+      SUBROUTINE TURB_HOR_SV_FLUX(TURBN,KSPLT,                       &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -60,6 +59,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_CST
 USE MODD_CONF
 USE MODD_CTURB
@@ -89,9 +90,8 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -197,7 +197,7 @@ DO JSV=1,ISV
   ZFLXX(:,:,IKB-1:IKB-1) = 2. * MXM( ZWORK2D(:,:,1:1) ) - ZFLXX(:,:,IKB:IKB)
   !
   ! stores  <U SVth>
-  IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
     WRITE(TZFIELD%CMNHNAME,'("USV_FLX_",I3.3)') JSV
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
@@ -248,7 +248,7 @@ DO JSV=1,ISV
     ZFLXY(:,:,IKB-1:IKB-1) = 2. * MYM( ZWORK2D(:,:,1:1) ) - ZFLXY(:,:,IKB:IKB)
   !
   ! stores  <V SVth>
-    IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+    IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
       WRITE(TZFIELD%CMNHNAME,'("VSV_FLX_",I3.3)') JSV
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
diff --git a/src/common/turb/mode_turb_hor_thermo_corr.F90 b/src/common/turb/mode_turb_hor_thermo_corr.F90
index 8e9f1ae17fde293e7b2f4587bca44bbc54dfc8e0..6e724513e414f6d1f4ffc9b0cbc850270a6e5cb0 100644
--- a/src/common/turb/mode_turb_hor_thermo_corr.F90
+++ b/src/common/turb/mode_turb_hor_thermo_corr.F90
@@ -6,8 +6,9 @@
 MODULE MODE_TURB_HOR_THERMO_CORR
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_THERMO_CORR(D,CST,KRR, KRRL, KRRI,         &
-                      OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,      &
+      SUBROUTINE TURB_HOR_THERMO_CORR(D,CST,TURBN,                   &
+                      KRR, KRRL, KRRI,                               &
+                      OOCEAN,OCOMPUTE_SRC,                           &
                       TPFILE,                                        &
                       PINV_PDXX,PINV_PDYY,                           &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -63,6 +64,7 @@ USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
+USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS
 USE MODD_LES
@@ -90,12 +92,10 @@ IMPLICIT NONE
 !
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
+TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                 INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid condensation
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
@@ -168,7 +168,7 @@ ZCOEFF(:,:,IKB)= - (PDZZ(:,:,IKB+2)+2.*PDZZ(:,:,IKB+1)) /      &
 !
 !
 !
-IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. TPFILE%LOPENED ) &
+IF ( ( KRRL > 0 .AND. TURBN%LSUBG_COND) .OR. ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) &
                                   .OR. ( LLES_CALL )                  ) THEN
 !
 !*       8.1  <THl THl>
@@ -209,7 +209,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. TPFILE%LOPENED ) &
   END IF
   !
   ! stores <THl THl>
-  IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+  IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
     TZFIELD%CMNHNAME   = 'THL_HVAR'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'THL_HVAR'
@@ -297,7 +297,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. TPFILE%LOPENED ) &
     END IF                    
     !
     ! stores <THl Rnp>
-    IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+    IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'THLR_HCOR'
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = 'THLR_HCOR'
@@ -365,7 +365,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. TPFILE%LOPENED ) &
     END IF
     !
     ! stores <Rnp Rnp>
-    IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+    IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'R_HVAR'
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = 'R_HVAR'
diff --git a/src/common/turb/mode_turb_hor_thermo_flux.F90 b/src/common/turb/mode_turb_hor_thermo_flux.F90
index 97a74596e8bd6ef4086862a7554d27c61c86acf7..f63429c23f0f1451d53e305971ee15cbc50f6544 100644
--- a/src/common/turb/mode_turb_hor_thermo_flux.F90
+++ b/src/common/turb/mode_turb_hor_thermo_flux.F90
@@ -7,8 +7,7 @@ MODULE MODE_TURB_HOR_THERMO_FLUX
 IMPLICIT NONE
 CONTAINS
 !     ################################################################
-      SUBROUTINE TURB_HOR_THERMO_FLUX(KSPLT, KRR, KRRL, KRRI,        &
-                      OTURB_FLX,OSUBG_COND,                          &
+      SUBROUTINE TURB_HOR_THERMO_FLUX(TURBN, KSPLT, KRR, KRRL, KRRI, &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -62,6 +61,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_CST
 USE MODD_CONF
 USE MODD_CTURB
@@ -90,14 +91,11 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    :: KSPLT         ! split process index
 INTEGER,                  INTENT(IN)    :: KRR           ! number of moist var.
 INTEGER,                  INTENT(IN)    :: KRRL          ! number of liquid water var.
 INTEGER,                  INTENT(IN)    :: KRRI          ! number of ice water var.
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                 INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid 
-!                                                    condensation
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -245,7 +243,7 @@ END IF
 !!ZWORK(:,:,:) = ZFLX(:,:,:) 
 !
 ! stores the horizontal  <U THl>
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   TZFIELD%CMNHNAME   = 'UTHL_FLX'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'UTHL_FLX'
@@ -348,7 +346,7 @@ IF (KRR/=0) THEN
   END IF
   !
   ! stores the horizontal  <U Rnp>
-  IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
     TZFIELD%CMNHNAME   = 'UR_FLX'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'UR_FLX'
@@ -397,7 +395,7 @@ END IF
 !!     ZFLX(:,:,:)*MXM(EMOIST(KRR,KRRI,PTHLT,PEXNREF,PRT,PLOCPT,PSRCM))
 !!  !
 !!  ! stores the horizontal  <U VPT>
-!!  IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+!!  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
 !!    TZFIELD%CMNHNAME   = 'UVPT_FLX'
 !!    TZFIELD%CSTDNAME   = ''
 !!    TZFIELD%CLONGNAME  = 'UVPT_FLX'
@@ -457,7 +455,7 @@ END IF
 !
 ! Compute the equivalent tendancy for Rc and Ri
 !
-!IF ( OSUBG_COND .AND. KRRL > 0 .AND. .NOT. L2D) THEN
+!IF ( TURBN%LSUBG_COND .AND. KRRL > 0 .AND. .NOT. L2D) THEN
 IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     ZFLXC = 2.*( MYF( MYM( PRHODJ*PATHETA*PSRCM )*ZFLX )                       &
@@ -500,7 +498,7 @@ END IF
 !!ZWORK(:,:,:) = ZFLX(:,:,:) 
 !
 ! stores the horizontal  <V THl>
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   TZFIELD%CMNHNAME   = 'VTHL_FLX'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'VTHL_FLX'
@@ -612,7 +610,7 @@ IF (KRR/=0) THEN
   END IF
   !
   ! stores the horizontal  <V Rnp>
-  IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
     TZFIELD%CMNHNAME   = 'VR_FLX'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'VR_FLX'
@@ -665,7 +663,7 @@ END IF
 !!  END IF
 !!  !
 !!  ! stores the horizontal  <V VPT>
-!!  IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+!!  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
 !!    TZFIELD%CMNHNAME   = 'VVPT_FLX'
 !!    TZFIELD%CSTDNAME   = ''
 !!    TZFIELD%CLONGNAME  = 'VVPT_FLX'
diff --git a/src/common/turb/mode_turb_hor_uv.F90 b/src/common/turb/mode_turb_hor_uv.F90
index 611679c73c5fa03ddca83a2daddd5cd1707a4d28..76bddbcb674cb3edc4c2eb47fd474a91ad6f6835 100644
--- a/src/common/turb/mode_turb_hor_uv.F90
+++ b/src/common/turb/mode_turb_hor_uv.F90
@@ -7,8 +7,7 @@ MODULE MODE_TURB_HOR_UV
 IMPLICIT NONE
 CONTAINS
 !     ################################################################
-      SUBROUTINE TURB_HOR_UV(KSPLT,                                  &
-                      OTURB_FLX,                                     &
+      SUBROUTINE TURB_HOR_UV(TURBN,KSPLT,                            &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -59,6 +58,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_CST
 USE MODD_CONF
 USE MODD_CTURB
@@ -86,9 +87,8 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -205,7 +205,7 @@ ZFLX(:,:,IKB-1:IKB-1) = 2. * MXM( MYM( ZFLX(:,:,IKB-1:IKB-1) ) )  &
                    - ZFLX(:,:,IKB:IKB)
 !     
 ! stores  <U V>
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   TZFIELD%CMNHNAME   = 'UV_FLX'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'UV_FLX'
diff --git a/src/common/turb/mode_turb_hor_uw.F90 b/src/common/turb/mode_turb_hor_uw.F90
index 47005d4a3730f5920f87dc9b813f7f50f6d68985..a3fbe13e9207ffa69fc51c4a0d1ad9b013210fd1 100644
--- a/src/common/turb/mode_turb_hor_uw.F90
+++ b/src/common/turb/mode_turb_hor_uw.F90
@@ -7,8 +7,8 @@ MODULE MODE_TURB_HOR_UW
 IMPLICIT NONE
 CONTAINS
 !     ################################################################
-      SUBROUTINE TURB_HOR_UW(KSPLT,                                  &
-                      OTURB_FLX,KRR,                                 &
+      SUBROUTINE TURB_HOR_UW(TURBN,KSPLT,                            &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDXX,PDZZ,PDZX,                                &
@@ -62,6 +62,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_CST
 USE MODD_CONF
 USE MODD_CTURB
@@ -90,9 +92,8 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 INTEGER,                  INTENT(IN)    ::  KRR          ! number of moist var.
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
@@ -167,7 +168,7 @@ ZFLX(:,:,IKB) = 0.
 ZFLX(:,:,IKB-1)=2.*ZFLX(:,:,IKB)- ZFLX(:,:,IKB+1)
 !
 ! stores  <U W>
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   TZFIELD%CMNHNAME   = 'UW_HFLX'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'UW_HFLX'
diff --git a/src/common/turb/mode_turb_hor_vw.F90 b/src/common/turb/mode_turb_hor_vw.F90
index 8ede64d515ea715cf2c3f0ee6fc09f7d06909b91..de637447b365e5cf0b34c2c3c4f397e19f870d3f 100644
--- a/src/common/turb/mode_turb_hor_vw.F90
+++ b/src/common/turb/mode_turb_hor_vw.F90
@@ -6,8 +6,8 @@
 MODULE MODE_TURB_HOR_VW
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_VW(KSPLT,                                  &
-                      OTURB_FLX,KRR,                                 &
+      SUBROUTINE TURB_HOR_VW(TURBN,KSPLT,                            &
+                      KRR,                                           &
                       TPFILE,                                        &
                       PK,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDYY,PDZZ,PDZY,                                &
@@ -61,6 +61,8 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
+USE MODD_TURB_n, ONLY: TURB_t
+!
 USE MODD_CST
 USE MODD_CONF
 USE MODD_CTURB
@@ -89,9 +91,8 @@ IMPLICIT NONE
 !
 !
 !
+TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
-LOGICAL,                  INTENT(IN)    ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 INTEGER,                  INTENT(IN)    ::  KRR          ! number of moist var.
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
@@ -172,7 +173,7 @@ ZFLX(:,:,IKB) = 0.
 ZFLX(:,:,IKB-1)= 2.*ZFLX(:,:,IKB) - ZFLX(:,:,IKB+1)
 !
 ! stores  <V W>
-IF ( TPFILE%LOPENED .AND. OTURB_FLX ) THEN
+IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
   TZFIELD%CMNHNAME   = 'VW_HFLX'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'VW_HFLX'
diff --git a/src/common/turb/mode_turb_ver.F90 b/src/common/turb/mode_turb_ver.F90
index 5e34881e45b528f43b234bbc16ee55fdb516c93a..86d64458b0462912f3d33b11fbe7614bd6ba1818 100644
--- a/src/common/turb/mode_turb_ver.F90
+++ b/src/common/turb/mode_turb_ver.F90
@@ -5,12 +5,11 @@
 MODULE MODE_TURB_VER
 IMPLICIT NONE
 CONTAINS
-SUBROUTINE TURB_VER(D,CST,CSTURB,TURBN,KRR,KRRL,KRRI,   &
-                      OTURB_FLX,OOCEAN,ODEEPOC,OHARAT,OCOMPUTE_SRC, &
+SUBROUTINE TURB_VER(D,CST,CSTURB,TURBN,KRR,KRRL,KRRI,               &
+                      OOCEAN,ODEEPOC,OCOMPUTE_SRC,                  &
                       KSV,KSV_LGBEG,KSV_LGEND,                      &
-                      HTURBDIM,HTOM,PIMPL,PEXPL,                    &
-                      HPROGRAM, O2D, ONOMIXLG, OFLAT, OSTATNW,      &
-                      OLES_CALL,OCOUPLES,OBLOWSNOW, ORMC01,         &                      
+                      PEXPL, HPROGRAM, O2D, ONOMIXLG, OFLAT,        &
+                      OLES_CALL,OCOUPLES,OBLOWSNOW,PRSNOW,          &                      
                       PTSTEP, TPFILE,                               &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
@@ -249,25 +248,18 @@ INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
 INTEGER,                INTENT(IN)   :: KSV, KSV_LGBEG, KSV_LGEND ! number of scalar variables
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  ODEEPOC      ! activates sfc forcing for ideal ocean deep conv
-LOGICAL,                INTENT(IN)   ::  OHARAT       ! 
-LOGICAL,                INTENT(IN)   ::  OSTATNW      ! cloud scheme inclues convect. covar.
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OCOUPLES     ! switch to activate atmos-ocean LES version 
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
-LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
+REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 CHARACTER(LEN=6),       INTENT(IN)   ::  HPROGRAM     ! HPROGRAM is the program currently running
 LOGICAL,                INTENT(IN)   ::  ONOMIXLG     ! to use turbulence for lagrangian variables
 LOGICAL,                INTENT(IN)   ::  O2D          ! Logical for 2D model version
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
-REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
+REAL,                   INTENT(IN)   ::  PEXPL        ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
@@ -282,7 +274,7 @@ REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PSINSLOPE    ! sinus of the angle
                                       ! between i and the slope vector
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PRHODJ       ! dry density * grid volum
-! MFMOIST used in case of OHARATU
+! MFMOIST used in case of TURBN%LHARATU
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  MFMOIST       ! moist mass flux dual scheme
 
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTHVREF      ! ref. state Virtual 
@@ -314,7 +306,7 @@ REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PVSLOPEM     ! wind component along
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTKEM        ! TKE at time t
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLM          ! Turb. mixing length   
-! PLENGTHM PLENGTHH used in case of OHARATU
+! PLENGTHM PLENGTHH used in case of TURBN%LHARATU
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLENGTHM     ! Turb. mixing length momentum
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLENGTHH     ! Turb. mixing length heat/moisture 
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLEPS        ! dissipative length
@@ -330,8 +322,8 @@ REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFWR         ! d(w'2r'  )/dz
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFTH2        ! d(w'th'2 )/dz
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFR2         ! d(w'r'2  )/dz
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFTHR        ! d(w'th'r')/dz
-REAL, DIMENSION(MERGE(D%NIJT,0,HTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH  ! BL height for TOMS
-REAL, DIMENSION(MERGE(D%NIJT,0,ORMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01
+REAL, DIMENSION(MERGE(D%NIJT,0,TURBN%CTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH  ! BL height for TOMS
+REAL, DIMENSION(MERGE(D%NIJT,0,TURBN%LRMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01
 REAL, DIMENSION(D%NIJT),   INTENT(IN)   ::  PLMO         ! Monin-Obukhov length
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(INOUT)   ::  PRUS, PRVS, PRWS, PRTHLS
@@ -410,8 +402,8 @@ IIJB=D%NIJB
 ! 3D Redelsperger numbers
 !
 !
-CALL PRANDTL(D,CST,CSTURB,KRR,KSV,KRRI,OTURB_FLX,  &
-             HTURBDIM,OOCEAN,OHARAT,O2D,OCOMPUTE_SRC,&
+CALL PRANDTL(D,CST,CSTURB,KRR,KSV,KRRI,TURBN%LTURB_FLX,  &
+             TURBN%CTURBDIM,OOCEAN,TURBN%LHARAT,O2D,OCOMPUTE_SRC,&
              TPFILE, OFLAT,                        &
              PDXX,PDYY,PDZZ,PDZX,PDZY,             &
              PTHVREF,PLOCPEXNM,PATHETA,PAMOIST,    &
@@ -449,7 +441,7 @@ IF (KRR>0) CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZDR_DZ)
 !
 ! Denominator factor in 3rd order terms
 !
-IF (.NOT. OHARAT) THEN
+IF (.NOT. TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZD(IIJB:IIJE,1:D%NKT) = (1.+ZREDTH1(IIJB:IIJE,1:D%NKT)+ZREDR1(IIJB:IIJE,1:D%NKT)) * &
                                &(1.+0.5*(ZREDTH1(IIJB:IIJE,1:D%NKT)+ZREDR1(IIJB:IIJE,1:D%NKT)))
@@ -464,9 +456,9 @@ ENDIF
 !
 GUSERV = KRR/=0
 !
-CALL PHI3(D,CSTURB,ZREDTH1,ZREDR1,ZRED2TH3,ZRED2R3,ZRED2THR3,HTURBDIM,GUSERV,ZPHI3)
+CALL PHI3(D,CSTURB,ZREDTH1,ZREDR1,ZRED2TH3,ZRED2R3,ZRED2THR3,TURBN%CTURBDIM,GUSERV,ZPHI3)
 IF(KRR/=0) &
-CALL PSI3(D,CSTURB,ZREDR1,ZREDTH1,ZRED2R3,ZRED2TH3,ZRED2THR3,HTURBDIM,GUSERV,ZPSI3)
+CALL PSI3(D,CSTURB,ZREDR1,ZREDTH1,ZRED2R3,ZRED2TH3,ZRED2THR3,TURBN%CTURBDIM,GUSERV,ZPSI3)
 !
 ! Prandtl numbers for scalars
 !
@@ -498,7 +490,7 @@ END IF
 !             ----------------------------------------------------------------
 !
 
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   ZLM(:,:)=PLENGTHH(:,:)
 ELSE
   ZLM(:,:)=PLM(:,:)
@@ -506,9 +498,9 @@ ENDIF
 !
   CALL  TURB_VER_THERMO_FLUX(D,CST,CSTURB,TURBN,                      &
                         KRR,KRRL,KRRI,KSV,                            &
-                        OTURB_FLX,HTURBDIM,HTOM,OOCEAN,ODEEPOC,OHARAT,&
+                        OOCEAN,ODEEPOC,                               &
                         OCOUPLES,OLES_CALL,OCOMPUTE_SRC,              &
-                        PIMPL,PEXPL,PTSTEP,HPROGRAM,TPFILE,           &
+                        PEXPL,PTSTEP,HPROGRAM,TPFILE,                 &
                         PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                         PRHODJ,PTHVREF,                               &
                         PSFTHM,PSFRM,PSFTHP,PSFRP,                    &
@@ -523,11 +515,11 @@ ENDIF
                         PRTHLS,PRRS,ZTHLP,ZRP,PTP,PWTH,PWRC,          &
                         PSSTFL, PSSTFL_C, PSSRFL_C                    )
 !
-  CALL  TURB_VER_THERMO_CORR(D,CST,CSTURB,                            &
+  CALL  TURB_VER_THERMO_CORR(D,CST,CSTURB,TURBN,                      &
                         KRR,KRRL,KRRI,KSV,                            &
-                        OTURB_FLX,HTURBDIM,HTOM, OHARAT,OCOMPUTE_SRC, &
-                        OCOUPLES,OLES_CALL,OSTATNW,                   &                        
-                        PIMPL,PEXPL,TPFILE,                           &
+                        OCOMPUTE_SRC,                                 &
+                        OCOUPLES,OLES_CALL,                           &
+                        PEXPL,TPFILE,                                 &
                         PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,           &
                         PRHODJ,PTHVREF,                               &
                         PSFTHM,PSFRM,PSFTHP,PSFRP,                    &
@@ -554,11 +546,11 @@ ENDIF
 !             -----------------------------------------------
 !
 !
-IF (OHARAT) ZLM(:,:)=PLENGTHM(:,:)
+IF (TURBN%LHARAT) ZLM(:,:)=PLENGTHM(:,:)
 !
 CALL  TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,           &
-                      OTURB_FLX,KRR,OOCEAN,OHARAT,OCOUPLES,OLES_CALL,&
-                      HTURBDIM,PIMPL,PEXPL,PTSTEP,TPFILE,           &
+                      KRR,OOCEAN,OCOUPLES,OLES_CALL,                &
+                      PEXPL,PTSTEP,TPFILE,                          &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
                       PRHODJ,PSFUM,PSFVM,                           &
@@ -574,14 +566,13 @@ CALL  TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,           &
 !*       8.   SOURCES OF PASSIVE SCALAR VARIABLES
 !             -----------------------------------
 !
-IF (OHARAT) ZLM(:,:)=PLENGTHH(:,:)
+IF (TURBN%LHARAT) ZLM(:,:)=PLENGTHH(:,:)
 !
 IF (KSV>0)                                                          &
-CALL  TURB_VER_SV_FLUX(D,CST,CSTURB,ONOMIXLG,                       &
+CALL  TURB_VER_SV_FLUX(D,CST,CSTURB,TURBN,ONOMIXLG,                 &
                       KSV,KSV_LGBEG,KSV_LGEND,                      &
-                      OTURB_FLX,HTURBDIM,OHARAT,OBLOWSNOW,OLES_CALL,&
-                      PIMPL,PEXPL,PTSTEP,                           &
-                      TPFILE,                                       &
+                      OBLOWSNOW,OLES_CALL,                          &
+                      PEXPL,PTSTEP,TPFILE,PRSNOW,                   &
                       PDZZ,PDIRCOSZW,                               &
                       PRHODJ,PWM,                                   &
                       PSFSVM,PSFSVP,                                &
@@ -593,7 +584,7 @@ CALL  TURB_VER_SV_FLUX(D,CST,CSTURB,ONOMIXLG,                       &
 IF (KSV>0 .AND. OLES_CALL)                                          &
 CALL  TURB_VER_SV_CORR(D,CST,CSTURB,KRR,KRRL,KRRI,OOCEAN,           &
                       PDZZ,KSV,KSV_LGBEG,KSV_LGEND,ONOMIXLG,        &
-                      OBLOWSNOW,OLES_CALL,OCOMPUTE_SRC,             &
+                      OBLOWSNOW,OLES_CALL,OCOMPUTE_SRC,PRSNOW,      &
                       PTHLM,PRM,PTHVREF,                            &
                       PLOCPEXNM,PATHETA,PAMOIST,PSRCM,ZPHI3,ZPSI3,  &
                       PWM,PSVM,                                     &
@@ -605,7 +596,7 @@ CALL  TURB_VER_SV_CORR(D,CST,CSTURB,KRR,KRRL,KRRI,OOCEAN,           &
 !*       9.   DIAGNOSTIC OF Surface Boundary Layer Depth
 !             ------------------------------------------
 !
-IF (ORMC01) CALL SBL_DEPTH(D,CSTURB,PZZ,ZWU,ZWV,ZWTHV,PLMO,PSBL_DEPTH)
+IF (TURBN%LRMC01) CALL SBL_DEPTH(D,CSTURB,PZZ,ZWU,ZWV,ZWTHV,PLMO,PSBL_DEPTH)
 !
 !----------------------------------------------------------------------------
 !
@@ -614,7 +605,7 @@ IF (ORMC01) CALL SBL_DEPTH(D,CSTURB,PZZ,ZWU,ZWV,ZWTHV,PLMO,PSBL_DEPTH)
 !             ------
 !
 !
-IF ( OTURB_FLX .AND. TPFILE%LOPENED .AND. .NOT. OHARAT) THEN
+IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED .AND. .NOT. TURBN%LHARAT) THEN
 !
 ! stores the Turbulent Prandtl number
 ! 
diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90
index c78e26457f7a0b6cf6ded482546ac5b410dc7d7b..839e4a1ca48fa48fab90d265e636162e42bd58c9 100644
--- a/src/common/turb/mode_turb_ver_dyn_flux.F90
+++ b/src/common/turb/mode_turb_ver_dyn_flux.F90
@@ -5,11 +5,9 @@
 MODULE MODE_TURB_VER_DYN_FLUX
 IMPLICIT NONE
 CONTAINS
-SUBROUTINE TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,&
-                      OTURB_FLX,KRR,OOCEAN,OHARAT,OCOUPLES,OLES_CALL,&
-                      HTURBDIM,PIMPL,PEXPL,                         &
-                      PTSTEP,                                       &
-                      TPFILE,                                       &
+SUBROUTINE TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,      &
+                      KRR,OOCEAN,OCOUPLES,OLES_CALL,                &
+                      PEXPL,PTSTEP,TPFILE,                          &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PCOSSLOPE,PSINSLOPE,                          &
                       PRHODJ,                                       &
@@ -194,7 +192,7 @@ SUBROUTINE TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,&
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
 !!      2012-02 Y. Seity,  add possibility to run with reversed vertical levels
-!!      Modifications  July 2015 (Wim de Rooy) OHARATU switch
+!!      Modifications  July 2015 (Wim de Rooy) TURBN%LHARATU switch
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!      Q. Rodier      17/01/2019 : cleaning : remove cyclic conditions on DP and ZA
@@ -243,18 +241,13 @@ TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
 TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KSV           ! number of scalar variables
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
-LOGICAL,                INTENT(IN)   ::  OHARAT
 LOGICAL,                INTENT(IN)   ::  O2D          ! Logical for 2D model version (modd_conf)
 LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OCOUPLES     ! switch to activate atmos-ocean LES version 
 INTEGER,                INTENT(IN)   ::  KRR          ! number of moist var.
-CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
+REAL,                   INTENT(IN)   ::  PEXPL        ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
@@ -362,7 +355,7 @@ IIJB=D%NIJB
 ZSOURCE(:,:) = 0.
 ZFLXZ(:,:) = 0.
 ZCMFS = CSTURB%XCMFS
-IF (OHARAT) ZCMFS=1.
+IF (TURBN%LHARAT) ZCMFS=1.
 !
 !$mnh_expand_array(JIJ=IIJB:IIJE)
 ZDIRSINZW(IIJB:IIJE) = SQRT(1.-PDIRCOSZW(IIJB:IIJE)**2)
@@ -370,9 +363,9 @@ ZDIRSINZW(IIJB:IIJE) = SQRT(1.-PDIRCOSZW(IIJB:IIJE)**2)
 !  compute the coefficients for the uncentred gradient computation near the
 !  ground
 !
-! With OHARATU length scale and TKE are at half levels so remove MZM
+! With TURBN%LHARATU length scale and TKE are at half levels so remove MZM
 !
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZKEFF(IIJB:IIJE,1:D%NKT) =  PLM(IIJB:IIJE,1:D%NKT) * SQRT(PTKEM(IIJB:IIJE,1:D%NKT))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -468,7 +461,7 @@ ELSE ! Atmosphere
   ZSOURCE(IIJB:IIJE,IKB) =                                  &
   (   ZWORK41D(IIJB:IIJE) &
   +  ZWORK61D(IIJB:IIJE)   &
-  -  ZCOEFS(IIJB:IIJE) * PUM(IIJB:IIJE,IKB) * PIMPL        &
+  -  ZCOEFS(IIJB:IIJE) * PUM(IIJB:IIJE,IKB) * TURBN%XIMPL        &
   ) * 0.5 * ( 1. + ZWORK1(IIJB:IIJE,D%NKA) / ZWORK1(IIJB:IIJE,IKB) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
@@ -477,7 +470,7 @@ ENDIF
 !
 ! Obtention of the split U at t+ deltat
 !
-CALL TRIDIAG_WIND(D,PUM,ZA,ZCOEFS,PTSTEP,PEXPL,PIMPL,   &
+CALL TRIDIAG_WIND(D,PUM,ZA,ZCOEFS,PTSTEP,PEXPL,TURBN%XIMPL,   &
                   ZWORK1,ZSOURCE,ZRES)
 !
 !  Compute the equivalent tendency for the U wind component
@@ -485,7 +478,7 @@ CALL TRIDIAG_WIND(D,PUM,ZA,ZCOEFS,PTSTEP,PEXPL,PIMPL,   &
 CALL MXM_PHY(D,PRHODJ,ZWORK1)
 CALL MXM_PHY(D,ZKEFF,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-ZWORK3(IIJB:IIJE,1:D%NKT)=PIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PUM(IIJB:IIJE,1:D%NKT)
+ZWORK3(IIJB:IIJE,1:D%NKT)=TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PUM(IIJB:IIJE,1:D%NKT)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL DZM_PHY(D,ZWORK3,ZWORK4)
 CALL MXM_PHY(D,PDZZ,ZWORK5)
@@ -510,14 +503,14 @@ ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ZFLXZ(IIJB:IIJE,IKB)   =   ZWORK1(IIJB:IIJE,IKB)  *                &
     ( ZSOURCE(IIJB:IIJE,IKB)                                         &
-     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * PIMPL                &
+     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * TURBN%XIMPL                &
     ) / 0.5 / ( 1. + ZWORK2(IIJB:IIJE,D%NKA)/ ZWORK2(IIJB:IIJE,IKB) )
   !
   ZFLXZ(IIJB:IIJE,D%NKA) = ZFLXZ(IIJB:IIJE,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
-IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
   ! stores the U wind component vertical flux
   TZFIELD%CMNHNAME   = 'UW_VFLX'
   TZFIELD%CSTDNAME   = ''
@@ -604,7 +597,7 @@ END IF
 !*       5.3  Source of W wind component
 !
 !
-IF(HTURBDIM=='3DIM') THEN
+IF(TURBN%CTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
                 ! used to compute the W source at the ground
   !$mnh_expand_array(JIJ=IIJB:IIJE)
@@ -836,7 +829,7 @@ ELSE ! Atmos case
   ZSOURCE(IIJB:IIJE,IKB) =                                      &
   (  ZWORK51D(IIJB:IIJE)                                        &
    + ZWORK61D(IIJB:IIJE)                                        &
-   - ZCOEFS(IIJB:IIJE) * PVM(IIJB:IIJE,IKB) * PIMPL             &
+   - ZCOEFS(IIJB:IIJE) * PVM(IIJB:IIJE,IKB) * TURBN%XIMPL             &
   ) * 0.5 * ( 1. + ZWORK1(IIJB:IIJE,D%NKA) / ZWORK1(IIJB:IIJE,IKB) )
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
@@ -845,7 +838,7 @@ ELSE ! Atmos case
 ENDIF ! End of Ocean or Atmospher Cases
 ! 
 !  Obtention of the split V at t+ deltat 
-CALL TRIDIAG_WIND(D,PVM,ZA,ZCOEFS,PTSTEP,PEXPL,PIMPL,  &
+CALL TRIDIAG_WIND(D,PVM,ZA,ZCOEFS,PTSTEP,PEXPL,TURBN%XIMPL,  &
                   ZWORK1,ZSOURCE,ZRES)
 !
 ! Compute the equivalent tendency for the V wind component
@@ -853,7 +846,7 @@ CALL TRIDIAG_WIND(D,PVM,ZA,ZCOEFS,PTSTEP,PEXPL,PIMPL,  &
 CALL MYM_PHY(D,PRHODJ,ZWORK1)
 CALL MYM_PHY(D,ZKEFF,ZWORK2)
 !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-ZWORK3(IIJB:IIJE,1:D%NKT)=PIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PVM(IIJB:IIJE,1:D%NKT)
+ZWORK3(IIJB:IIJE,1:D%NKT)=TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PVM(IIJB:IIJE,1:D%NKT)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 CALL DZM_PHY(D,ZWORK3,ZWORK4)
 CALL MYM_PHY(D,PDZZ,ZWORK5)
@@ -876,14 +869,14 @@ ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ZFLXZ(IIJB:IIJE,IKB)   =   ZWORK5(IIJB:IIJE,IKB)  *                &
     ( ZSOURCE(IIJB:IIJE,IKB)                                         &
-     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * PIMPL                &
+     +ZCOEFS(IIJB:IIJE) * ZRES(IIJB:IIJE,IKB) * TURBN%XIMPL                &
     ) / 0.5 / ( 1. + ZWORK1(IIJB:IIJE,D%NKA) / ZWORK1(IIJB:IIJE,IKB) )
   !
   ZFLXZ(IIJB:IIJE,D%NKA) = ZFLXZ(IIJB:IIJE,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
-IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
   ! stores the V wind component vertical flux
   TZFIELD%CMNHNAME   = 'VW_VFLX'
   TZFIELD%CSTDNAME   = ''
@@ -969,7 +962,7 @@ END IF
 !
 !*       6.3  Source of W wind component
 !
-IF(HTURBDIM=='3DIM') THEN
+IF(TURBN%CTURBDIM=='3DIM') THEN
   ! Compute the source for the W wind component
   IF (OOCEAN) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
@@ -1113,7 +1106,7 @@ END IF
 !*       7.   DIAGNOSTIC COMPUTATION OF THE 1D <W W> VARIANCE
 !             -----------------------------------------------
 !
-IF ( OTURB_FLX .AND. TPFILE%LOPENED .AND. HTURBDIM == '1DIM') THEN
+IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED .AND. TURBN%CTURBDIM == '1DIM') THEN
   CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK1)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZFLXZ(IIJB:IIJE,1:D%NKT)= (2./3.) * PTKEM(IIJB:IIJE,1:D%NKT)                     &
diff --git a/src/common/turb/mode_turb_ver_sv_corr.F90 b/src/common/turb/mode_turb_ver_sv_corr.F90
index e451273ebf955e539dff89b161e77a41eb7f767b..2438f08f5c2491e707f84563961e0dc7e0b9be96 100644
--- a/src/common/turb/mode_turb_ver_sv_corr.F90
+++ b/src/common/turb/mode_turb_ver_sv_corr.F90
@@ -7,7 +7,7 @@ IMPLICIT NONE
 CONTAINS
 SUBROUTINE TURB_VER_SV_CORR(D,CST,CSTURB,KRR,KRRL,KRRI,OOCEAN,&
                       PDZZ,KSV,KSV_LGBEG,KSV_LGEND,ONOMIXLG,        &
-                      OBLOWSNOW,OLES_CALL,OCOMPUTE_SRC,             &
+                      OBLOWSNOW,OLES_CALL,OCOMPUTE_SRC,PRSNOW,      &
                       PTHLM,PRM,PTHVREF,                            &
                       PLOCPEXNM,PATHETA,PAMOIST,PSRCM,PPHI3,PPSI3,  &
                       PWM,PSVM,                                     &
@@ -61,7 +61,6 @@ USE MODD_CTURB, ONLY: CSTURB_t
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_PARAMETERS, ONLY: JPVEXT_TURB
 USE MODD_LES
-USE MODD_BLOWSNOW, ONLY: XRSNOW
 !
 USE SHUMAN_PHY, ONLY:  MZF_PHY
 USE MODE_GRADIENT_M_PHY, ONLY : GZ_M_W_PHY
@@ -86,6 +85,7 @@ LOGICAL,                INTENT(IN)   ::  ONOMIXLG     ! to use turbulence for la
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and
+REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 INTEGER,                INTENT(IN)   ::  KRR          ! number of moist var.
 INTEGER,                INTENT(IN)   ::  KRRL         ! number of liquid var.
 INTEGER,                INTENT(IN)   ::  KRRI         ! number of ice var.
@@ -141,7 +141,7 @@ CALL SECOND_MNH(ZTIME1)
 !
 IF(OBLOWSNOW) THEN
 ! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables          
-   ZCSV= CSTURB%XCHF/XRSNOW
+   ZCSV= CSTURB%XCHF/PRSNOW
 ELSE
    ZCSV= CSTURB%XCHF
 ENDIF
diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90
index ab8e7dd5d73634ccb88250e66f67e084f48a37ed..cc38eae30136b5f6f04a68ab237e6d4ce8efd851 100644
--- a/src/common/turb/mode_turb_ver_sv_flux.F90
+++ b/src/common/turb/mode_turb_ver_sv_flux.F90
@@ -5,12 +5,10 @@
 MODULE MODE_TURB_VER_SV_FLUX
 IMPLICIT NONE
 CONTAINS
-SUBROUTINE TURB_VER_SV_FLUX(D,CST,CSTURB,ONOMIXLG,                  &
+SUBROUTINE TURB_VER_SV_FLUX(D,CST,CSTURB,TURBN,ONOMIXLG,            &
                       KSV,KSV_LGBEG,KSV_LGEND,                      &
-                      OTURB_FLX,HTURBDIM,OHARAT,OBLOWSNOW,OLES_CALL,&
-                      PIMPL,PEXPL,                                  &
-                      PTSTEP,                                       &
-                      TPFILE,                                       &
+                      OBLOWSNOW,OLES_CALL,                          &
+                      PEXPL,PTSTEP,TPFILE,PRSNOW,                   &
                       PDZZ,PDIRCOSZW,                               &
                       PRHODJ,PWM,                                   &
                       PSFSVM,PSFSVP,                                &
@@ -198,7 +196,7 @@ SUBROUTINE TURB_VER_SV_FLUX(D,CST,CSTURB,ONOMIXLG,                  &
 !!                                              change of YCOMMENT
 !!                     Feb 2012(Y. Seity) add possibility to run with reversed
 !!                                              vertical levels
-!!      Modifications: July 2015 (Wim de Rooy) OHARAT switch
+!!      Modifications: July 2015 (Wim de Rooy) TURBN%LHARAT switch
 !!                     Feb 2017(M. Leriche) add initialisation of ZSOURCE
 !!                                   to avoid unknwon values outside physical domain
 !!                                   and avoid negative values in sv tendencies
@@ -216,11 +214,11 @@ USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
+USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS, ONLY: JPVEXT_TURB
 USE MODD_LES
-USE MODD_BLOWSNOW, ONLY: XRSNOW
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE_PHY
 !
 
@@ -242,17 +240,14 @@ IMPLICIT NONE
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
+TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KSV, &
                                        KSV_LGBEG, KSV_LGEND ! number of scalar variables
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 LOGICAL,                INTENT(IN)   ::  ONOMIXLG     ! to use turbulence for lagrangian variables (modd_conf)
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-LOGICAL,                INTENT(IN)   ::  OHARAT
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
-REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
+REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
+REAL,                   INTENT(IN)   ::  PEXPL        ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
@@ -323,7 +318,7 @@ IKE=D%NKE
 IIJE=D%NIJE
 IIJB=D%NIJB          
 !
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZKEFF(IIJB:IIJE,IKB:IKE) =  PLM(IIJB:IIJE,IKB:IKE) * SQRT(PTKEM(IIJB:IIJE,IKB:IKE))
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -336,7 +331,7 @@ ENDIF
 !
 IF(OBLOWSNOW) THEN
 ! See Vionnet (PhD, 2012) for a complete discussion around the value of the Schmidt number for blowing snow variables
-   ZCSV=CSTURB%XCHF/XRSNOW
+   ZCSV=CSTURB%XCHF/PRSNOW
 ELSE
    ZCSV=CSTURB%XCHF
 ENDIF
@@ -351,7 +346,7 @@ DO JSV=1,KSV
   IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
 !
 ! Preparation of the arguments for TRIDIAG
-    IF (OHARAT) THEN
+    IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)  
       ZA(IIJB:IIJE,IKB:IKE) = -PTSTEP * ZKEFF(IIJB:IIJE,IKB:IKE) * ZWORK1(IIJB:IIJE,IKB:IKE) &
                                    / PDZZ(IIJB:IIJE,IKB:IKE)**2
@@ -370,15 +365,15 @@ DO JSV=1,KSV
 ! (in presence of slopes)
 !* in 1DIM case, the part of energy released in horizontal flux
 ! is taken into account in the vertical part
-  IF (HTURBDIM=='3DIM') THEN
+  IF (TURBN%CTURBDIM=='3DIM') THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZSOURCE(IIJB:IIJE,IKB) = (PIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
+    ZSOURCE(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
                        PDZZ(IIJB:IIJE,IKB) * PDIRCOSZW(IIJB:IIJE)                    &
                      * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE)
-    ZSOURCE(IIJB:IIJE,IKB) = (PIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
+    ZSOURCE(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV)) / &
                        PDZZ(IIJB:IIJE,IKB) / PDIRCOSZW(IIJB:IIJE)                    &
                      * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
@@ -387,7 +382,7 @@ DO JSV=1,KSV
   ZSOURCE(IIJB:IIJE,IKE) = 0.
 !
 ! Obtention of the split JSV scalar variable at t+ deltat
-  CALL TRIDIAG(D,PSVM(:,:,JSV),ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,ZSOURCE,ZRES)
+  CALL TRIDIAG(D,PSVM(:,:,JSV),ZA,PTSTEP,PEXPL,TURBN%XIMPL,PRHODJ,ZSOURCE,ZRES)
 !
 !  Compute the equivalent tendency for the JSV scalar variable
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -395,12 +390,12 @@ DO JSV=1,KSV
                     PRHODJ(IIJB:IIJE,IKB:IKE)*(ZRES(IIJB:IIJE,IKB:IKE)-PSVM(IIJB:IIJE,IKB:IKE,JSV))/PTSTEP
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
-  IF ( (OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL ) THEN
+  IF ( (TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL ) THEN
     ! Diagnostic of the cartesian vertical flux
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK1(IIJB:IIJE,1:D%NKT) = PLM(IIJB:IIJE,1:D%NKT)*SQRT(PTKEM(IIJB:IIJE,1:D%NKT))
-    ZWORK2(IIJB:IIJE,1:D%NKT) = PIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PSVM(IIJB:IIJE,1:D%NKT,JSV)
+    ZWORK2(IIJB:IIJE,1:D%NKT) = TURBN%XIMPL*ZRES(IIJB:IIJE,1:D%NKT) + PEXPL*PSVM(IIJB:IIJE,1:D%NKT,JSV)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZM_PHY(D,ZWORK1,ZWORK3)
     CALL DZM_PHY(D,ZWORK2,ZWORK4)
@@ -414,14 +409,14 @@ DO JSV=1,KSV
     ! (in presence of slopes)
     !* in 1DIM case, the part of energy released in horizontal flux
     ! is taken into account in the vertical part
-    IF (HTURBDIM=='3DIM') THEN
+    IF (TURBN%CTURBDIM=='3DIM') THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = (PIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
+      ZFLXZ(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
                        * PDIRCOSZW(IIJB:IIJE)  
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE)
-      ZFLXZ(IIJB:IIJE,IKB) = (PIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
+      ZFLXZ(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFSVP(IIJB:IIJE,JSV) + PEXPL*PSFSVM(IIJB:IIJE,JSV))  &
                        / PDIRCOSZW(IIJB:IIJE)
      !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     END IF
@@ -442,7 +437,7 @@ DO JSV=1,KSV
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
  END IF
   !
-  IF (OTURB_FLX .AND. TPFILE%LOPENED) THEN
+  IF (TURBN%LTURB_FLX .AND. TPFILE%LOPENED) THEN
     ! stores the JSVth vertical flux
     WRITE(TZFIELD%CMNHNAME,'("WSV_FLX_",I3.3)') JSV
     TZFIELD%CSTDNAME   = ''
diff --git a/src/common/turb/mode_turb_ver_thermo_corr.F90 b/src/common/turb/mode_turb_ver_thermo_corr.F90
index 39adce2eecbd43acf7e124fbd7880b130d3a6047..5e4479849272247b2ff41ceab5fd63bc3789afa8 100644
--- a/src/common/turb/mode_turb_ver_thermo_corr.F90
+++ b/src/common/turb/mode_turb_ver_thermo_corr.F90
@@ -5,11 +5,10 @@
 MODULE MODE_TURB_VER_THERMO_CORR
 IMPLICIT NONE
 CONTAINS      
-SUBROUTINE TURB_VER_THERMO_CORR(D,CST,CSTURB,                       &
+SUBROUTINE TURB_VER_THERMO_CORR(D,CST,CSTURB,TURBN,                 &
                       KRR,KRRL,KRRI,KSV,                            &
-                      OTURB_FLX,HTURBDIM,HTOM,OHARAT,OCOMPUTE_SRC,  &
-                      OCOUPLES,OLES_CALL,OSTATNW,                   &
-                      PIMPL,PEXPL,TPFILE,                           &
+                      OCOMPUTE_SRC,OCOUPLES,OLES_CALL,              &
+                      PEXPL,TPFILE,                                 &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,           &
                       PRHODJ,PTHVREF,                               &
                       PSFTHM,PSFRM,PSFTHP,PSFRP,                    &
@@ -196,7 +195,7 @@ SUBROUTINE TURB_VER_THERMO_CORR(D,CST,CSTURB,                       &
 !!                                              change of YCOMMENT
 !!                     2012-02 (Y. Seity) add possibility to run with reversed
 !!                                              vertical levels
-!!      Modifications  July 2015 (Wim de Rooy) OHARAT switch
+!!      Modifications  July 2015 (Wim de Rooy) TURBN%LHARAT switch
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!      Modifications  June 2019 (Wim de Rooy) New set up cloud scheme
 !!--------------------------------------------------------------------------
@@ -208,6 +207,7 @@ USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
+USE MODD_TURB_n, ONLY: TURB_t
 USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
@@ -231,21 +231,15 @@ IMPLICIT NONE
 TYPE(DIMPHYEX_t),       INTENT(IN)   :: D
 TYPE(CST_t),            INTENT(IN)   :: CST
 TYPE(CSTURB_t),         INTENT(IN)   :: CSTURB
+TYPE(TURB_t),           INTENT(IN)   :: TURBN
 INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KSV           ! number of scalar var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
-LOGICAL,                INTENT(IN)   ::  OHARAT
-LOGICAL,                INTENT(IN)   ::  OSTATNW      ! cloud scheme inclues convect. covar.
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OCOUPLES     ! switch to activate atmos-ocean LES
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and version 
-REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
+REAL,                   INTENT(IN)   ::  PEXPL        ! Coef. for temporal disc.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PDZZ, PDXX, PDYY, PDZX, PDZY
@@ -274,7 +268,7 @@ REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(IN) ::  PRM          ! Mixing ratios
 REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM         ! Mixing ratios
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTKEM        ! TKE at time t
-! In case OHARATU=TRUE, PLM already includes all stability corrections
+! In case TURBN%LHARATU=TRUE, PLM already includes all stability corrections
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLM          ! Turb. mixing length
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLEPS        ! dissipative length
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLOCPEXNM    ! Lv(T)/Cp/Exnref at time t-1
@@ -322,7 +316,7 @@ REAL, DIMENSION(D%NIJT,D%NKT)  ::  &
        ZDFDDTDZ, & ! dF/d(dTh/dz)
        ZDFDDRDZ, & ! dF/d(dr/dz)
        Z3RDMOMENT, & ! 3 order term in flux or variance equation
-! Estimate of full level length and dissipation length scale in case OHARATU
+! Estimate of full level length and dissipation length scale in case TURBN%LHARATU
        PLMF,     & ! estimate full level length scale from half levels (sub optimal)
        PLEPSF,   & ! estimate full level diss length scale from half levels (sub optimal)
        ZWORK1,ZWORK2,&
@@ -379,10 +373,10 @@ ZCOEFF(IIJB:IIJE,IKB)= - (PDZZ(IIJB:IIJE,IKB+2*D%NKL)+2.*PDZZ(IIJB:IIJE,IKB+D%NK
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
 !
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   CALL MZF_PHY(D,PLM,PLMF)
   !wc Part of the new statistical cloud scheme set up
-  IF (OSTATNW) THEN
+  IF (TURBN%LSTATNW) THEN
     CALL MZF_PHY(D,PLEPS,PLEPSF)
   ELSE
     PLEPSF(:,:)=PLMF(:,:)
@@ -412,7 +406,7 @@ GFTHR = .FALSE.
 GFWTH = .FALSE.
 GFWR  = .FALSE.
 !
-IF (HTOM/='NONE') THEN
+IF (TURBN%CTOM/='NONE') THEN
   GFTH2 = ANY(PFTH2/=0.)
   GFR2  = ANY(PFR2 /=0.) .AND. GUSERV
   GFTHR = ANY(PFTHR/=0.) .AND. GUSERV
@@ -430,12 +424,12 @@ END IF
 !
 ! Compute the turbulent variance F and F' at time t-dt.
 !
-  IF (OHARAT) THEN
+  IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK1(IIJB:IIJE,1:D%NKT)=PDTH_DZ(IIJB:IIJE,1:D%NKT)**2
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ZF(IIJB:IIJE,1:D%NKT) = CSTURB%XCTV * & 
                               PLMF(IIJB:IIJE,1:D%NKT)*PLEPSF(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT)
@@ -548,12 +542,12 @@ END IF
   CALL MZF_PHY(D,ZWORK3,ZWORK4)
   !
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-  ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT) + PIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) &
+  ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) &
                                     * ZWORK4(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   !
   ! special case near the ground ( uncentred gradient )
-  IF (OHARAT) THEN
+  IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
     ZFLXZ(IIJB:IIJE,IKB) =  PLMF(IIJB:IIJE,IKB)   &
      * PLEPSF(IIJB:IIJE,IKB)                                         &
@@ -561,13 +555,13 @@ END IF
      ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLM(IIJB:IIJE,IKB+2*D%NKL)             &
       +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLM(IIJB:IIJE,IKB+D%NKL  )             & 
       +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB  )   )**2          &
-     +PIMPL *                                                  &
+     +TURBN%XIMPL *                                                  &
      ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLP(IIJB:IIJE,IKB+2*D%NKL)             &
       +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLP(IIJB:IIJE,IKB+D%NKL  )             &
       +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB  )   )**2          &
     ) 
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
       ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
@@ -580,7 +574,7 @@ END IF
      ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLM(IIJB:IIJE,IKB+2*D%NKL)             &
       +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLM(IIJB:IIJE,IKB+D%NKL  )             & 
       +ZCOEFF(IIJB:IIJE,IKB      )*PTHLM(IIJB:IIJE,IKB  )   )**2          &
-     +PIMPL *                                                  &
+     +TURBN%XIMPL *                                                  &
      ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLP(IIJB:IIJE,IKB+2*D%NKL)             &
       +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLP(IIJB:IIJE,IKB+D%NKL  )             &
       +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB  )   )**2          &
@@ -592,7 +586,7 @@ END IF
   ZFLXZ(IIJB:IIJE,D%NKA) = ZFLXZ(IIJB:IIJE,IKB)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
-  IF (OSTATNW) THEN
+  IF (TURBN%LSTATNW) THEN
     !wc  The variance from the budget eq should be multiplied by 2 here
     !    thl'2=2*L*LEPS*(dthl/dz**2)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -614,7 +608,7 @@ END IF
   !
   !
   ! stores <THl THl>
-  IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+  IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
     TZFIELD%CMNHNAME   = 'THL_VVAR'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'THL_VVAR'
@@ -668,12 +662,12 @@ END IF
 !
 !
     ! Compute the turbulent variance F and F' at time t-dt.
-  IF (OHARAT) THEN
+  IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK1(IIJB:IIJE,1:D%NKT) = PDTH_DZ(IIJB:IIJE,1:D%NKT)*PDR_DZ(IIJB:IIJE,1:D%NKT)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ZF(IIJB:IIJE,1:D%NKT) = CSTURB%XCTV * &
                               PLMF(IIJB:IIJE,1:D%NKT)*PLEPSF(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT)
@@ -805,7 +799,7 @@ END IF
     CALL MZF_PHY(D,ZWORK1,ZWORK7)
     CALL MZF_PHY(D,ZWORK2,ZWORK8)
     !
-    IF (OHARAT) THEN
+    IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)  
       ZWORK5(IIJB:IIJE,1:D%NKT) = 2. *PDR_DZ(IIJB:IIJE,1:D%NKT)  *ZWORK3(IIJB:IIJE,1:D%NKT) &
                                        / PDZZ(IIJB:IIJE,1:D%NKT)               &
@@ -815,24 +809,24 @@ END IF
       CALL MZF_PHY(D,ZWORK5,ZWORK6)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT)                  &
-        + PIMPL * PLMF(IIJB:IIJE,1:D%NKT)*PLEPSF(IIJB:IIJE,1:D%NKT)*0.5   &
+        + TURBN%XIMPL * PLMF(IIJB:IIJE,1:D%NKT)*PLEPSF(IIJB:IIJE,1:D%NKT)*0.5   &
         * ZWORK5(IIJB:IIJE,1:D%NKT)                                       &
-        + PIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * ZWORK7(IIJB:IIJE,1:D%NKT) &
-        + PIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK8(IIJB:IIJE,1:D%NKT)
+        + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * ZWORK7(IIJB:IIJE,1:D%NKT) &
+        + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK8(IIJB:IIJE,1:D%NKT)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-      IF (OSTATNW) THEN    
+      IF (TURBN%LSTATNW) THEN    
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
         ZFLXZ(IIJB:IIJE,1:D%NKT)   = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,1:D%NKT)
         !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       END IF
     ELSE
-      CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV,ZWKPHIPSI1) 
+      CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI1) 
       ! d(phi3*dthdz)/ddthdz term
-      CALL D_PSI3DTDZ_O_DDTDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZWKPHIPSI2) 
+      CALL D_PSI3DTDZ_O_DDTDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI2) 
       ! d(psi3*dthdz)/ddthdz term
-      CALL D_PHI3DRDZ_O_DDRDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV,ZWKPHIPSI3)
+      CALL D_PHI3DRDZ_O_DDRDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI3)
       ! d(phi3*drdz )/ddrdz term
-      CALL D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZWKPHIPSI4)
+      CALL D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI4)
       ! d(psi3*drdz )/ddrdz term
  
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -845,15 +839,15 @@ END IF
       
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT)                          &
-        + PIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)*0.5 &
+        + TURBN%XIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:D%NKT)*PLEPS(IIJB:IIJE,1:D%NKT)*0.5 &
           * ZWORK6(IIJB:IIJE,1:D%NKT)                                                   &
-        + PIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * ZWORK7(IIJB:IIJE,1:D%NKT)         &
-        + PIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK8(IIJB:IIJE,1:D%NKT)
+        + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * ZWORK7(IIJB:IIJE,1:D%NKT)         &
+        + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK8(IIJB:IIJE,1:D%NKT)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ENDIF
     !
     ! special case near the ground ( uncentred gradient )
-    IF (OHARAT) THEN
+    IF (TURBN%LHARAT) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
       ZFLXZ(IIJB:IIJE,IKB) =                                                            & 
       (1. )                                                                                   &
@@ -864,7 +858,7 @@ END IF
         *( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRM(IIJB:IIJE,IKB+2*D%NKL,1)             &
           +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRM(IIJB:IIJE,IKB+D%NKL,1  )             & 
           +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))                &
-        +PIMPL *                                                                              &
+        +TURBN%XIMPL *                                                                              &
          ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLP(IIJB:IIJE,IKB+2*D%NKL)             &
           +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLP(IIJB:IIJE,IKB+D%NKL  )             &
           +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB      ))                &
@@ -873,7 +867,7 @@ END IF
           +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB        ))                &
        )
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
       ZFLXZ(IIJB:IIJE,IKB) = (CSTURB%XCHT1 + CSTURB%XCHT2) * ZFLXZ(IIJB:IIJE,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
@@ -889,7 +883,7 @@ END IF
         *( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRM(IIJB:IIJE,IKB+2*D%NKL,1)             &
           +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRM(IIJB:IIJE,IKB+D%NKL,1  )             & 
           +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))                &
-        +PIMPL *                                                                              &
+        +TURBN%XIMPL *                                                                              &
          ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PTHLP(IIJB:IIJE,IKB+2*D%NKL)             &
           +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PTHLP(IIJB:IIJE,IKB+D%NKL  )             &
           +ZCOEFF(IIJB:IIJE,IKB      )*PTHLP(IIJB:IIJE,IKB      ))                &
@@ -904,7 +898,7 @@ END IF
     ZFLXZ(IIJB:IIJE,D%NKA) = ZFLXZ(IIJB:IIJE,IKB)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
     !
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !wc  The variance from the budget eq should be multiplied by 2 here
       !    e.g. thl'2=2*L*LEPS*(cab)^-1 *(dthl/dz**2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -912,7 +906,7 @@ END IF
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ENDIF
     IF ( KRRL > 0 ) THEN
-      IF (OSTATNW) THEN
+      IF (TURBN%LSTATNW) THEN
         !wc Part of the new statistical cloud scheme set up. Normal notation so - sign
         !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
         PSIGS(IIJB:IIJE,1:D%NKT) = PSIGS(IIJB:IIJE,1:D%NKT) -     &
@@ -927,7 +921,7 @@ END IF
       ENDIF
     END IF
     ! stores <THl Rnp>
-    IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+    IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'THLRCONS_VCOR'
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = 'THLRCONS_VCOR'
@@ -991,7 +985,7 @@ END IF
 !
 !
     ! Compute the turbulent variance F and F' at time t-dt.
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZWORK1(IIJB:IIJE,1:D%NKT) = PDR_DZ(IIJB:IIJE,1:D%NKT)**2
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -999,7 +993,7 @@ IF (OHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZF(IIJB:IIJE,1:D%NKT) = PLMF(IIJB:IIJE,1:D%NKT)*PLEPSF(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-  IF (OSTATNW) THEN
+  IF (TURBN%LSTATNW) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZF(IIJB:IIJE,1:D%NKT) = CSTURB%XCTV * ZF(IIJB:IIJE,1:D%NKT)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -1098,7 +1092,7 @@ ENDIF
   ZWORK1(IIJB:IIJE,1:D%NKT) = PRP(IIJB:IIJE,1:D%NKT) - PRM(IIJB:IIJE,1:D%NKT,1)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   CALL DZM_PHY(D,ZWORK1,ZWORK2)
-  IF (OHARAT) THEN
+  IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK5(IIJB:IIJE,1:D%NKT) = ZWORK2(IIJB:IIJE,1:D%NKT) / PDZZ(IIJB:IIJE,1:D%NKT)
     ZWORK3(IIJB:IIJE,1:D%NKT) = 2.*PDR_DZ(IIJB:IIJE,1:D%NKT)* ZWORK5(IIJB:IIJE,1:D%NKT)
@@ -1108,17 +1102,17 @@ ENDIF
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZFLXZ(IIJB:IIJE,1:D%NKT) = ZF(IIJB:IIJE,1:D%NKT)                   &
-          + PIMPL * PLMF(IIJB:IIJE,1:D%NKT) *PLEPSF(IIJB:IIJE,1:D%NKT) &
+          + TURBN%XIMPL * PLMF(IIJB:IIJE,1:D%NKT) *PLEPSF(IIJB:IIJE,1:D%NKT) &
             * ZWORK4(IIJB:IIJE,1:D%NKT) &
-          + PIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK6(IIJB:IIJE,1:D%NKT)
+          + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK6(IIJB:IIJE,1:D%NKT)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       ZFLXZ(IIJB:IIJE,1:D%NKT) = CSTURB%XCTV * ZFLXZ(IIJB:IIJE,1:D%NKT)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT) 
      END IF
   ELSE
-    CALL D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,HTURBDIM,GUSERV,ZWKPHIPSI1)
+    CALL D_PSI3DRDZ2_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,PDR_DZ,TURBN%CTURBDIM,GUSERV,ZWKPHIPSI1)
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK1(IIJB:IIJE,1:D%NKT) = ZWKPHIPSI1(IIJB:IIJE,1:D%NKT)*ZWORK2(IIJB:IIJE,1:D%NKT) &
                                       / PDZZ(IIJB:IIJE,1:D%NKT)
@@ -1132,14 +1126,14 @@ ENDIF
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZFLXZ(IIJB:IIJE,1:D%NKT) = ZF(IIJB:IIJE,1:D%NKT)                             &
-          + PIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:D%NKT) *PLEPS(IIJB:IIJE,1:D%NKT) &
+          + TURBN%XIMPL * CSTURB%XCTV*PLM(IIJB:IIJE,1:D%NKT) *PLEPS(IIJB:IIJE,1:D%NKT) &
             * ZWORK3(IIJB:IIJE,1:D%NKT) &
-          + PIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK5(IIJB:IIJE,1:D%NKT)
+          + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK5(IIJB:IIJE,1:D%NKT)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)  
   ENDIF
     !
     ! special case near the ground ( uncentred gradient )
-  IF (OHARAT) THEN
+  IF (TURBN%LHARAT) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE)
     ZFLXZ(IIJB:IIJE,IKB) =  PLMF(IIJB:IIJE,IKB)   &
         * PLEPSF(IIJB:IIJE,IKB)                                        &
@@ -1147,13 +1141,13 @@ ENDIF
        ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRM(IIJB:IIJE,IKB+2*D%NKL,1)             &
         +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRM(IIJB:IIJE,IKB+D%NKL,1  )             & 
         +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))**2         &
-      +PIMPL *                                                  &
+      +TURBN%XIMPL *                                                  &
        ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRP(IIJB:IIJE,IKB+2*D%NKL)               &
         +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRP(IIJB:IIJE,IKB+D%NKL  )               &
         +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB      ))**2           &
     )
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE)
       ZFLXZ(IIJB:IIJE,IKB) = CSTURB%XCHV * ZFLXZ(IIJB:IIJE,IKB)
       !$mnh_end_expand_array(JIJ=IIJB:IIJE)
@@ -1166,7 +1160,7 @@ ENDIF
        ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRM(IIJB:IIJE,IKB+2*D%NKL,1)             &
         +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRM(IIJB:IIJE,IKB+D%NKL,1  )             & 
         +ZCOEFF(IIJB:IIJE,IKB      )*PRM(IIJB:IIJE,IKB  ,1    ))**2         &
-      +PIMPL *                                                  &
+      +TURBN%XIMPL *                                                  &
        ( ZCOEFF(IIJB:IIJE,IKB+2*D%NKL)*PRP(IIJB:IIJE,IKB+2*D%NKL)               &
         +ZCOEFF(IIJB:IIJE,IKB+D%NKL  )*PRP(IIJB:IIJE,IKB+D%NKL  )               &
         +ZCOEFF(IIJB:IIJE,IKB      )*PRP(IIJB:IIJE,IKB      ))**2           &
@@ -1177,7 +1171,7 @@ ENDIF
     !$mnh_expand_array(JIJ=IIJB:IIJE)
     ZFLXZ(IIJB:IIJE,D%NKA) = ZFLXZ(IIJB:IIJE,IKB)
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       !wc  The variance from the budget eq should be multiplied by 2 here
       !    thl'2=2*L*LEPS*(dthl/dz**2)
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -1192,7 +1186,7 @@ ENDIF
       !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     END IF
     ! stores <Rnp Rnp>
-    IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+    IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
       TZFIELD%CMNHNAME   = 'RTOT_VVAR'
       TZFIELD%CSTDNAME   = ''
       TZFIELD%CLONGNAME  = 'RTOT_VVAR'
diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90
index 9398968be719efaa3f7fd4f1c81a75047c393138..f6b21804e1b74ee9524ce50903c6ce6bf12b4c98 100644
--- a/src/common/turb/mode_turb_ver_thermo_flux.F90
+++ b/src/common/turb/mode_turb_ver_thermo_flux.F90
@@ -7,9 +7,9 @@ IMPLICIT NONE
 CONTAINS
 SUBROUTINE TURB_VER_THERMO_FLUX(D,CST,CSTURB,TURBN,                 &
                       KRR,KRRL,KRRI,KSV,                            &
-                      OTURB_FLX,HTURBDIM,HTOM,OOCEAN,ODEEPOC,OHARAT,&
+                      OOCEAN,ODEEPOC,                               &
                       OCOUPLES,OLES_CALL, OCOMPUTE_SRC,             &
-                      PIMPL,PEXPL,PTSTEP,HPROGRAM,                  &
+                      PEXPL,PTSTEP,HPROGRAM,                        &
                       TPFILE,                                       &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,       &
                       PRHODJ,PTHVREF,                               &
@@ -210,7 +210,7 @@ SUBROUTINE TURB_VER_THERMO_FLUX(D,CST,CSTURB,TURBN,                 &
 !!                                              change of YCOMMENT
 !!                     2012-02 (Y. Seity) add possibility to run with reversed
 !!                                             vertical levels
-!!      Modifications  July 2015 (Wim de Rooy) OHARAT switch
+!!      Modifications  July 2015 (Wim de Rooy) TURBN%LHARAT switch
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !!                     2021 (D. Ricard) last version of HGRAD turbulence scheme
 !!                                 Leronard terms instead of Reynolds terms
@@ -266,17 +266,11 @@ INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
 INTEGER,                INTENT(IN)   :: KSV           ! number of scalar var.
 INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  ODEEPOC      ! activates sfc forcing for ideal ocean deep conv
-LOGICAL,                INTENT(IN)   ::  OHARAT
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! CPROGRAM is the program currently running (modd_conf)
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
-REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
+REAL,                   INTENT(IN)   ::  PEXPL        ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
@@ -309,7 +303,7 @@ REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVM         ! Mixing ratios
 !
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PTKEM        ! TKE at time t
 !
-! In case OHARAT=TRUE, PLM already includes all stability corrections
+! In case TURBN%LHARAT=TRUE, PLM already includes all stability corrections
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLM          ! Turb. mixing length
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLEPS        ! dissipative length
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PLOCPEXNM    ! Lv(T)/Cp/Exnref at time t-1
@@ -339,8 +333,8 @@ REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFWR         ! d(w'2r'  )/dz (at
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFTH2        ! d(w'th'2 )/dz (at mass point)
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFR2         ! d(w'r'2  )/dz (at mass point)
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)   ::  PFTHR        ! d(w'th'r')/dz (at mass point)
-REAL, DIMENSION(MERGE(D%NIT,0,HTOM=='TM06'),&
-                MERGE(D%NJT,0,HTOM=='TM06')),   INTENT(INOUT)::  PBL_DEPTH    ! BL depth
+REAL, DIMENSION(MERGE(D%NIT,0,TURBN%CTOM=='TM06'),&
+                MERGE(D%NJT,0,TURBN%CTOM=='TM06')),   INTENT(INOUT)::  PBL_DEPTH    ! BL depth
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)  :: PWTHV         ! buoyancy flux
 !
 REAL, DIMENSION(D%NIJT,D%NKT),   INTENT(INOUT) :: PRTHLS     ! cumulated source for theta
@@ -423,7 +417,7 @@ GUSERV = (KRR/=0)
 !
 !  compute the coefficients for the uncentred gradient computation near the ground
 !
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
  ! LHARAT so TKE and length scales at half levels!
   !wc 50MF can be omitted with energy cascade included
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -460,7 +454,7 @@ GFTHR = .FALSE.
 GFWTH = .FALSE.
 GFWR  = .FALSE.
 !
-IF (HTOM/='NONE') THEN
+IF (TURBN%CTOM/='NONE') THEN
   GFTH2 = ANY(PFTH2/=0.)
   GFR2  = ANY(PFR2 /=0.) .AND. GUSERV
   GFTHR = ANY(PFTHR/=0.) .AND. GUSERV
@@ -478,8 +472,8 @@ END IF
 ! Compute the turbulent flux F and F' at time t-dt.
 !
 CALL DZM_PHY(D,PTHLM,ZWORK1)
-CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV,ZWORK2)
-IF (OHARAT) THEN
+CALL D_PHI3DTDZ_O_DDTDZ(D,CSTURB,PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWORK2)
+IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZF(IIJB:IIJE,1:D%NKT) = -ZKEFF(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT)/PDZZ(IIJB:IIJE,1:D%NKT)
   ZDFDDTDZ(IIJB:IIJE,1:D%NKT) = -ZKEFF(IIJB:IIJE,1:D%NKT)
@@ -583,15 +577,15 @@ ELSE ! atmosp bottom
   !*In 3D, a part of the flux goes vertically,
   ! and another goes horizontally (in presence of slopes)
   !*In 1D, part of energy released in horizontal flux is taken into account in the vertical part
-  IF (HTURBDIM=='3DIM') THEN
+  IF (TURBN%CTURBDIM=='3DIM') THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE) 
-    ZF(IIJB:IIJE,IKB) = ( PIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
+    ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
                        * PDIRCOSZW(IIJB:IIJE)                       &
                        * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
   ELSE
     !$mnh_expand_array(JIJ=IIJB:IIJE) 
-    ZF(IIJB:IIJE,IKB) = ( PIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
+    ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE) )   &
                        / PDIRCOSZW(IIJB:IIJE)                       &
                        * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
     !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
@@ -607,7 +601,7 @@ ELSE ! atmosp bottom
 END IF
 !
 ! Compute the split conservative potential temperature at t+deltat
-CALL TRIDIAG_THERMO(D,PTHLM,ZF,ZDFDDTDZ,PTSTEP,PIMPL,PDZZ,&
+CALL TRIDIAG_THERMO(D,PTHLM,ZF,ZDFDDTDZ,PTSTEP,TURBN%XIMPL,PDZZ,&
                     PRHODJ,PTHLP)
 !
 ! Compute the equivalent tendency for the conservative potential temperature
@@ -648,7 +642,7 @@ PRTHLS(IIJB:IIJE,1:D%NKT)= PRTHLS(IIJB:IIJE,1:D%NKT)  + ZRWTHL(IIJB:IIJE,1:D%NKT
 !  Conservative potential temperature flux :
 !
 !
-ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT) + PIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * & 
+ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT) + TURBN%XIMPL * ZDFDDTDZ(IIJB:IIJE,1:D%NKT) * & 
                                    ZWORK2(IIJB:IIJE,1:D%NKT)/ PDZZ(IIJB:IIJE,1:D%NKT)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 !
@@ -694,7 +688,7 @@ ELSE
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 END IF
 !
-IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
   ! stores the conservative potential temperature vertical flux
   TZFIELD%CMNHNAME   = 'THW_FLX'
   TZFIELD%CSTDNAME   = ''
@@ -852,7 +846,7 @@ END IF
 !
 !*       2.5  New boundary layer depth for TOMs
 !
-IF (HTOM=='TM06') CALL TM06_H(D,PTSTEP,PZZ,ZFLXZ,PBL_DEPTH)
+IF (TURBN%CTOM=='TM06') CALL TM06_H(D,PTSTEP,PZZ,ZFLXZ,PBL_DEPTH)
 !
 !----------------------------------------------------------------------------
 !
@@ -868,13 +862,13 @@ IF (KRR /= 0) THEN
   ! Compute the turbulent flux F and F' at time t-dt.
   !
   CALL DZM_PHY(D,PRM(:,:,1),ZWORK1)
- IF (OHARAT) THEN
+ IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
   ZF(IIJB:IIJE,1:D%NKT) = -ZKEFF(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT)/PDZZ(IIJB:IIJE,1:D%NKT)
   ZDFDDRDZ(IIJB:IIJE,1:D%NKT) = -ZKEFF(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
  ELSE
-  CALL D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZWORK2)
+  CALL D_PSI3DRDZ_O_DDRDZ(D,CSTURB,PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,TURBN%CTURBDIM,GUSERV,ZWORK2)
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)    
   ZF(IIJB:IIJE,1:D%NKT) = -CSTURB%XCSHF*PPSI3(IIJB:IIJE,1:D%NKT)*ZKEFF(IIJB:IIJE,1:D%NKT)& 
                                 *ZWORK1(IIJB:IIJE,1:D%NKT)/PDZZ(IIJB:IIJE,1:D%NKT)
@@ -979,15 +973,15 @@ IF (KRR /= 0) THEN
     !* in 1DIM case, the part of energy released in horizontal flux
     ! is taken into account in the vertical part
     !
-    IF (HTURBDIM=='3DIM') THEN
+    IF (TURBN%CTURBDIM=='3DIM') THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE) 
-      ZF(IIJB:IIJE,IKB) = ( PIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )       &
+      ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )       &
                            * PDIRCOSZW(IIJB:IIJE)                       &
                          * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
     ELSE
       !$mnh_expand_array(JIJ=IIJB:IIJE) 
-      ZF(IIJB:IIJE,IKB) = ( PIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )     &
+      ZF(IIJB:IIJE,IKB) = ( TURBN%XIMPL*PSFRP(IIJB:IIJE) + PEXPL*PSFRM(IIJB:IIJE) )     &
                          / PDIRCOSZW(IIJB:IIJE)                       &
                          * 0.5 * (1. + PRHODJ(IIJB:IIJE,D%NKA) / PRHODJ(IIJB:IIJE,IKB))
       !$mnh_end_expand_array(JIJ=IIJB:IIJE) 
@@ -999,7 +993,7 @@ IF (KRR /= 0) THEN
 #endif
     END IF
   ! Compute the split conservative potential temperature at t+deltat
-  CALL TRIDIAG_THERMO(D,PRM(:,:,1),ZF,ZDFDDRDZ,PTSTEP,PIMPL,&
+  CALL TRIDIAG_THERMO(D,PRM(:,:,1),ZF,ZDFDDRDZ,PTSTEP,TURBN%XIMPL,&
                       PDZZ,PRHODJ,PRP)
   !
   ! Compute the equivalent tendency for the conservative mixing ratio
@@ -1040,7 +1034,7 @@ IF (KRR /= 0) THEN
   ! cons. mixing ratio flux :
   !
   ZFLXZ(IIJB:IIJE,1:D%NKT)   = ZF(IIJB:IIJE,1:D%NKT)                                                &
-                 + PIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK2(IIJB:IIJE,1:D%NKT) / PDZZ(IIJB:IIJE,1:D%NKT)
+                 + TURBN%XIMPL * ZDFDDRDZ(IIJB:IIJE,1:D%NKT) * ZWORK2(IIJB:IIJE,1:D%NKT) / PDZZ(IIJB:IIJE,1:D%NKT)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   !
   ! replace the flux by the Leonard terms above ZALT and ZCLD_THOLD
@@ -1082,7 +1076,7 @@ IF (KRR /= 0) THEN
     !$mnh_end_expand_array(JIJ=IIJB:IIJE)    
   ENDIF
   !
-  IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+  IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
     ! stores the conservative mixing ratio vertical flux
     TZFIELD%CMNHNAME   = 'RCONSW_FLX'
     TZFIELD%CSTDNAME   = ''
@@ -1226,16 +1220,16 @@ END IF
 !
 !*       4.1  <w Rc>
 !
-IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL) .AND. (KRRL > 0) ) THEN
+IF ( ((TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL) .AND. (KRRL > 0) ) THEN
 !
 ! recover the Conservative potential temperature flux :
-! With OHARAT is true tke and length scales at half levels
+! With TURBN%LHARAT is true tke and length scales at half levels
 ! yet modify to use length scale and tke at half levels from vdfexcuhl
  !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
- ZWORK1(IIJB:IIJE,1:D%NKT) = PIMPL * PTHLP(IIJB:IIJE,1:D%NKT) + PEXPL * PTHLM(IIJB:IIJE,1:D%NKT)
+ ZWORK1(IIJB:IIJE,1:D%NKT) = TURBN%XIMPL * PTHLP(IIJB:IIJE,1:D%NKT) + PEXPL * PTHLM(IIJB:IIJE,1:D%NKT)
  !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
  CALL DZM_PHY(D,ZWORK1,ZWORK2)
- IF (OHARAT) THEN
+ IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZA(IIJB:IIJE,1:D%NKT)   = ZWORK2(IIJB:IIJE,1:D%NKT)/ PDZZ(IIJB:IIJE,1:D%NKT) * &
                                  (-PLM(IIJB:IIJE,1:D%NKT)*PSQRT_TKE(IIJB:IIJE,1:D%NKT))
@@ -1251,7 +1245,7 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL) .AND. (KRRL > 0) ) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
  ENDIF
   !$mnh_expand_array(JIJ=IIJB:IIJE)
-  ZA(IIJB:IIJE,IKB) = (PIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE)) * PDIRCOSZW(IIJB:IIJE)
+  ZA(IIJB:IIJE,IKB) = (TURBN%XIMPL*PSFTHP(IIJB:IIJE) + PEXPL*PSFTHM(IIJB:IIJE)) * PDIRCOSZW(IIJB:IIJE)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !  
   ! compute <w Rc>
@@ -1270,7 +1264,7 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. OLES_CALL) .AND. (KRRL > 0) ) THEN
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
   !
   ! store the liquid water mixing ratio vertical flux
-  IF ( OTURB_FLX .AND. TPFILE%LOPENED ) THEN
+  IF ( TURBN%LTURB_FLX .AND. TPFILE%LOPENED ) THEN
     TZFIELD%CMNHNAME   = 'RCW_FLX'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'RCW_FLX'
diff --git a/src/common/turb/modi_turb.F90 b/src/common/turb/modi_turb.F90
index 79030c6eea79403c3bb80e1b5aca842d83fca4ca..e8572e60dd456c22adf798c43315f77f26b9101c 100644
--- a/src/common/turb/modi_turb.F90
+++ b/src/common/turb/modi_turb.F90
@@ -9,10 +9,10 @@ INTERFACE
               & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND,             &
               & HPROGRAM, O2D, ONOMIXLG, OFLAT,                       &
               & OLES_CALL,OCOUPLES,OBLOWSNOW,                         &
-              & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC,         &
-              & ORMC01,OOCEAN,ODEEPOC,OHARAT,OSTATNW,ODIAG_IN_RUN,    &
-              & HTURBDIM,HTURBLEN,HTOM,HTURBLEN_CL,HCLOUD,            &
-              & PIMPL,PTSTEP,TPFILE,                                  &
+              & OCOMPUTE_SRC, PRSNOW,                                 &
+              & OOCEAN,ODEEPOC,ODIAG_IN_RUN,                          &
+              & HTURBLEN_CL,HCLOUD,                                   &
+              & PTSTEP,TPFILE,                                        &
               & PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                         &
               & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,PCOSSLOPE,PSINSLOPE,    &
               & PRHODJ,PTHVREF,                                       &
@@ -52,29 +52,17 @@ INTEGER,                INTENT(IN)   :: KSV, KSV_LGBEG, KSV_LGEND ! number of sc
 CHARACTER(LEN=*),DIMENSION(2),INTENT(IN):: HLBCX, HLBCY  ! X- and Y-direc LBC
 INTEGER,                INTENT(IN)   :: KSPLIT        ! number of time-splitting
 INTEGER,                INTENT(IN)   :: KMODEL_CL     ! model number for cloud mixing length
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
-                                 ! diagnostic fields in the syncronous FM-file
-LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid CONDensation
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
-LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  ODEEPOC      ! activates sfc forcing for ideal ocean deep conv
-LOGICAL,                INTENT(IN)   ::  OHARAT       ! switch for LHARATU from AROME
-LOGICAL,                INTENT(IN)   :: OSTATNW       ! cloud scheme inclues convect. covar. contrib
 LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OCOUPLES     ! switch to activate atmos-ocean LES version 
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
 LOGICAL,                INTENT(IN)   ::  ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh)
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
 CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
-REAL,                   INTENT(IN)   ::  PIMPL        ! degree of implicitness
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
+REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index c457964847f5afa93c0e0434017b316ba4043bc6..2d0d318e15eba1ca8fb92f6565d3979570a2a741 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -7,10 +7,11 @@
               & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY,                        &
               & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND,HPROGRAM,    &
               & O2D,ONOMIXLG,OFLAT,OLES_CALL,OCOUPLES,OBLOWSNOW,      &
-              & OTURB_FLX,OTURB_DIAG,OSUBG_COND,OCOMPUTE_SRC,         &
-              & ORMC01,OOCEAN,ODEEPOC,OHARAT,OSTATNW,ODIAG_IN_RUN,    &
-              & HTURBDIM,HTURBLEN,HTOM,HTURBLEN_CL,HCLOUD,PIMPL,      &
-              & PTSTEP,TPFILE,PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,           &
+              & OCOMPUTE_SRC, PRSNOW,                                 &
+              & OOCEAN,ODEEPOC,ODIAG_IN_RUN,                          &
+              & HTURBLEN_CL,HCLOUD,                                   &
+              & PTSTEP,TPFILE,                                        &
+              & PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                         &
               & PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,PCOSSLOPE,PSINSLOPE,    &
               & PRHODJ,PTHVREF,                                       &
               & PSFTH,PSFRV,PSFSV,PSFU,PSFV,                          &
@@ -48,11 +49,11 @@
 !!    ------
 !!
 !!      The dimensionality of the turbulence parameterization can be chosen by
-!!    means of the parameter HTURBDIM:
-!!           * HTURBDIM='1DIM' the parameterization is 1D but can be used in
+!!    means of the parameter TURBN%CTURBDIM:
+!!           * TURBN%CTURBDIM='1DIM' the parameterization is 1D but can be used in
 !!    3D , 2D or 1D simulations. Only the sources associated to the vertical
 !!    turbulent fluxes are taken into account.
-!!           *  HTURBDIM='3DIM' the parameterization is fully 2D or 3D depending
+!!           *  TURBN%CTURBDIM='3DIM' the parameterization is fully 2D or 3D depending
 !!    on the model  dimensionality. Of course, it does not make any sense to
 !!    activate this option with a 1D model.
 !!
@@ -60,19 +61,19 @@
 !!      1- Preliminary computations.
 !!      2- The metric coefficients are recovered from the grid knowledge.
 !!      3- The mixing length is computed according to its choice:
-!!           * HTURBLEN='BL89' the Bougeault and Lacarrere algorithm is used.
+!!           * TURBN%CTURBLEN='BL89' the Bougeault and Lacarrere algorithm is used.
 !!             The mixing length is given by the vertical displacement from its
 !!             original level of an air particule having an initial internal
 !!             energy equal to its TKE and stopped by the buoyancy forces.
 !!             The discrete formulation is second order accurate.
-!!           * HTURBLEN='DELT' the mixing length is given by the mesh size
+!!           * TURBN%CTURBLEN='DELT' the mixing length is given by the mesh size
 !!             depending on the model dimensionality, this length is limited
 !!             with the ground distance.
-!!           * HTURBLEN='DEAR' the mixing length is given by the mesh size
+!!           * TURBN%CTURBLEN='DEAR' the mixing length is given by the mesh size
 !!             depending on the model dimensionality, this length is limited
 !!             with the ground distance and also by the Deardorff mixing length
 !!             pertinent in the stable cases.
-!!           * HTURBLEN='KEPS' the mixing length is deduced from the TKE
+!!           * TURBN%CTURBLEN='KEPS' the mixing length is deduced from the TKE
 !!             dissipation, which becomes a prognostic variable of the model (
 !!             Duynkerke formulation).
 !!      3'- The cloud mixing length is computed according to HTURBLEN_CLOUD
@@ -82,21 +83,21 @@
 !!         and TKE
 !!      6- The sources associated to the vertical turbulent fluxes are computed
 !!      with a temporal scheme allowing a degree of implicitness given by
-!!      PIMPL, varying from PIMPL=0. ( purely explicit scheme) to PIMPL=1.
+!!      TURBN%XIMPL, varying from TURBN%XIMPL=0. ( purely explicit scheme) to TURBN%XIMPL=1.
 !!      ( purely implicit scheme)
 !!      The sources associated to the horizontal fluxes are computed with a
 !!      purely explicit temporal scheme. These sources are only computed when
-!!      the turbulence parameterization is 2D or 3D( HTURBDIM='3DIM' ).
+!!      the turbulence parameterization is 2D or 3D( TURBN%CTURBDIM='3DIM' ).
 !!      7- The sources for TKE are computed, along with the dissipation of TKE
-!!      if HTURBLEN='KEPS'.
+!!      if TURBN%CTURBLEN='KEPS'.
 !!      8- Some turbulence-related quantities are stored in the synchronous
 !!      FM-file.
 !!      9- The non-conservative variables are retrieved.
 !!
 !!
 !!      The saving of the fields in the synchronous FM-file is controlled by:
-!!        * OTURB_FLX => saves all the turbulent fluxes and correlations
-!!        * OTURB_DIAG=> saves the turbulent Prandtl and Schmidt numbers, the
+!!        * TURBN%LTURB_FLX => saves all the turbulent fluxes and correlations
+!!        * TURBN%LTURB_DIAG=> saves the turbulent Prandtl and Schmidt numbers, the
 !!                       source terms of TKE and dissipation of TKE
 !!
 !!    EXTERNAL
@@ -218,7 +219,7 @@
 !!                     10/2012 J.Escobar Bypass PGI bug , redefine some allocatable array inplace of automatic
 !!                     2014-11 Y. Seity,  add output terms for TKE DDHs budgets
 !!                     July 2015 (Wim de Rooy)  modifications to run with RACMO
-!!                                              turbulence (OHARAT=TRUE)
+!!                                              turbulence (TURBN%LHARAT=TRUE)
 !!                     04/2016  (C.Lac) correction of negativity for KHKO
 !  P. Wautelet 05/2016-04/2018: new data structures and calls for I/O
 !  Q. Rodier      01/2018: introduction of RM17
@@ -297,29 +298,17 @@ INTEGER,                INTENT(IN)   :: KSV, KSV_LGBEG, KSV_LGEND ! number of sc
 CHARACTER(LEN=4),DIMENSION(2),INTENT(IN):: HLBCX, HLBCY  ! X- and Y-direc LBC
 INTEGER,                INTENT(IN)   :: KSPLIT        ! number of time-splitting
 INTEGER,                INTENT(IN)   :: KMODEL_CL     ! model number for cloud mixing length
-LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
-                                 ! turbulent fluxes in the syncronous FM-file
-LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
-                                 ! diagnostic fields in the syncronous FM-file
-LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid CONDensation
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
-LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  ODEEPOC      ! activates sfc forcing for ideal ocean deep conv
-LOGICAL,                INTENT(IN)   ::  OHARAT       ! switch for LHARATU from AROME
-LOGICAL,                INTENT(IN)   ::  OSTATNW      ! cloud scheme inclues convect. covar. contrib
 LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
 LOGICAL,                INTENT(IN)   ::  OLES_CALL    ! compute the LES diagnostics at current time-step
 LOGICAL,                INTENT(IN)   ::  OCOUPLES     ! switch to activate atmos-ocean LES version 
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
 LOGICAL,                INTENT(IN)   ::  ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh)
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
-                                                      ! turbulence scheme
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
-CHARACTER(LEN=4),       INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
 CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
-REAL,                   INTENT(IN)   ::  PIMPL        ! degree of implicitness
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
+REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
@@ -353,8 +342,8 @@ REAL, DIMENSION(D%NIJT,D%NKT,KSV), INTENT(IN) ::  PSVT        ! passive scal. va
 REAL, DIMENSION(MERGE(D%NIJT,0,OCOMPUTE_SRC),&
                 MERGE(D%NKT,0,OCOMPUTE_SRC)),   INTENT(IN) ::  PSRCT       ! Second-order flux
                       ! s'rc'/2Sigma_s2 at time t-1 multiplied by Lambda_3
-REAL, DIMENSION(MERGE(D%NIJT,0,HTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH  ! BL height for TOMS
-REAL, DIMENSION(MERGE(D%NIJT,0,ORMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01
+REAL, DIMENSION(MERGE(D%NIJT,0,TURBN%CTOM=='TM06')),INTENT(INOUT) :: PBL_DEPTH  ! BL height for TOMS
+REAL, DIMENSION(MERGE(D%NIJT,0,TURBN%LRMC01)),INTENT(INOUT) :: PSBL_DEPTH ! SBL depth for RMC01
 !
 !    variables for cloud mixing length
 REAL, DIMENSION(MERGE(D%NIJT,0,KMODEL_CL==KMI .AND. HTURBLEN_CL/='NONE'),&
@@ -474,7 +463,7 @@ REAL, DIMENSION(D%NIJT) ::  ZTAU11M,ZTAU12M,  &
             ! Virtual Potential Temp. used
             ! in the Deardorff mixing length computation
 !
-REAL                :: ZEXPL        ! 1-PIMPL deg of expl.
+REAL                :: ZEXPL        ! 1-TURBN%XIMPL deg of expl.
 REAL                :: ZRVORD       ! RV/RD
 REAL                :: ZEPS         ! XMV / XMD
 REAL                :: ZD           ! distance to the surface (for routine DELT)
@@ -507,11 +496,11 @@ TYPE(TFIELDDATA) :: TZFIELD
 REAL(KIND=JPRB) :: ZHOOK_HANDLE,ZHOOK_HANDLE2
 IF (LHOOK) CALL DR_HOOK('TURB',0,ZHOOK_HANDLE)
 !
-IF (OHARAT .AND. HTURBDIM /= '1DIM') THEN
-  CALL ABOR1('OHARATU only implemented for option HTURBDIM=1DIM!')
+IF (TURBN%LHARAT .AND. TURBN%CTURBDIM /= '1DIM') THEN
+  CALL ABOR1('TURBN%LHARATU only implemented for option TURBN%CTURBDIM=1DIM!')
 ENDIF
-IF (OHARAT .AND. OLES_CALL) THEN
-  CALL ABOR1('OHARATU not implemented for option LLES_CALL')
+IF (TURBN%LHARAT .AND. OLES_CALL) THEN
+  CALL ABOR1('TURBN%LHARATU not implemented for option LLES_CALL')
 ENDIF
 !
 IKT=D%NKT
@@ -522,11 +511,11 @@ IKE=D%NKE
 IIJE=D%NIJE
 IIJB=D%NIJB
 !
-ZEXPL = 1.- PIMPL
+ZEXPL = 1.- TURBN%XIMPL
 ZRVORD= CST%XRV / CST%XRD
 !
 !Copy data into ZTHLM and ZRM only if needed
-IF (HTURBLEN=='BL89' .OR. HTURBLEN=='RM17' .OR. HTURBLEN=='ADAP' .OR. ORMC01) THEN
+IF (TURBN%CTURBLEN=='BL89' .OR. TURBN%CTURBLEN=='RM17' .OR. TURBN%CTURBLEN=='ADAP' .OR. TURBN%LRMC01) THEN
   ZTHLM(IIJB:IIJE,1:D%NKT) = PTHLT(IIJB:IIJE,1:D%NKT)
   ZRM(IIJB:IIJE,1:D%NKT,:) = PRT(IIJB:IIJE,1:D%NKT,:)
 END IF
@@ -589,7 +578,7 @@ IF (KRRL >=1) THEN
 !*       2.5 Lv/Cph/Exn
 !
   IF ( KRRI >= 1 ) THEN
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
     !wc call new functions depending on statnew
        CALL COMPUTE_FUNCTION_THERMO_NEW_STAT(CST%XALPW,CST%XBETAW,CST%XGAMW,CST%XLVTT,CST%XCL,ZT,ZEXN,ZCP, &
                                  ZLVOCPEXNM,ZAMOIST,ZATHETA)
@@ -619,7 +608,7 @@ IF (KRRL >=1) THEN
     !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ELSE
     !wc call new stat functions or not
-    IF (OSTATNW) THEN
+    IF (TURBN%LSTATNW) THEN
       CALL COMPUTE_FUNCTION_THERMO_NEW_STAT(CST%XALPW,CST%XBETAW,CST%XGAMW,CST%XLVTT,CST%XCL,ZT,ZEXN,ZCP, &
                                  ZLOCPEXNM,ZAMOIST,ZATHETA)
     ELSE
@@ -629,7 +618,7 @@ IF (KRRL >=1) THEN
   END IF
 !
 !
-  IF ( TPFILE%LOPENED .AND. OTURB_DIAG ) THEN
+  IF ( TPFILE%LOPENED .AND. TURBN%LTURB_DIAG ) THEN
     TZFIELD%CMNHNAME   = 'ATHETA'
     TZFIELD%CSTDNAME   = ''
     TZFIELD%CLONGNAME  = 'ATHETA'
@@ -705,9 +694,9 @@ END IF
 !          -----------------------------------------
 !
 !
-IF (.NOT. OHARAT) THEN
+IF (.NOT. TURBN%LHARAT) THEN
 
-SELECT CASE (HTURBLEN)
+SELECT CASE (TURBN%CTURBLEN)
 !
 !*      3.1 BL89 mixing length
 !           ------------------
@@ -812,7 +801,7 @@ ENDIF  ! end LHARRAT
 !*      3.6 Dissipative length
 !           ------------------
 
-IF (OHARAT) THEN
+IF (TURBN%LHARAT) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZLEPS(IIJB:IIJE,1:D%NKT)=PLENGTHM(IIJB:IIJE,1:D%NKT)*(3.75**2.)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
@@ -826,7 +815,7 @@ ENDIF
 !$mnh_expand_array(JIJ=IIJB:IIJE)
 ZLMO(IIJB:IIJE)=XUNDEF
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-IF (ORMC01) THEN
+IF (TURBN%LRMC01) THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE)
   ZUSTAR(IIJB:IIJE)=(PSFU(IIJB:IIJE)**2+PSFV(IIJB:IIJE)**2)**(0.25)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
@@ -837,20 +826,20 @@ IF (ORMC01) THEN
     ZSFRV(:)=0.
     CALL LMO(D,CST,ZUSTAR,ZTHLM(:,IKB),ZRVM,PSFTH,ZSFRV,ZLMO)
   END IF
-  CALL RMC01(D,CST,CSTURB,HTURBLEN,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,ZLMO,ZLM,ZLEPS)
+  CALL RMC01(D,CST,CSTURB,TURBN%CTURBLEN,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,ZLMO,ZLM,ZLEPS)
 END IF
 !
 !RMC01 is only applied on RM17 in ADAP
-IF (HTURBLEN=='ADAP') THEN
+IF (TURBN%CTURBLEN=='ADAP') THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   ZLEPS(IIJB:IIJE,1:D%NKT) = MIN(ZLEPS(IIJB:IIJE,1:D%NKT),ZLMW(IIJB:IIJE,1:D%NKT)*TURBN%XCADAP)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
 END IF
 !
-!*      3.8 Mixing length in external points (used if HTURBDIM="3DIM")
+!*      3.8 Mixing length in external points (used if TURBN%CTURBDIM="3DIM")
 !           ----------------------------------------------------------
 !
-IF (HTURBDIM=="3DIM") THEN
+IF (TURBN%CTURBDIM=="3DIM") THEN
   CALL UPDATE_LM(D,HLBCX,HLBCY,ZLM,ZLEPS)
 END IF
 !
@@ -926,7 +915,7 @@ ZMTH2(:,:) = 0.     ! w'th'2
 ZMR2(:,:)  = 0.     ! w'r'2
 ZMTHR(:,:) = 0.     ! w'th'r'
 !
-IF (HTOM=='TM06') THEN
+IF (TURBN%CTOM=='TM06') THEN
   CALL TM06(D,CST,PTHVREF,PBL_DEPTH,PZZ,PSFTH,ZMWTH,ZMTH2)
 !
    CALL GZ_M_W_PHY(D,ZMWTH,PDZZ,ZWORK1)    ! -d(w'2th' )/dz
@@ -991,11 +980,10 @@ IF( BUCONF%LBUDGET_SV ) THEN
 END IF
 
 CALL TURB_VER(D, CST,CSTURB,TURBN,KRR, KRRL, KRRI,       &
-          OTURB_FLX, OOCEAN, ODEEPOC, OHARAT,OCOMPUTE_SRC,&
+          OOCEAN, ODEEPOC, OCOMPUTE_SRC,                 &
           KSV,KSV_LGBEG,KSV_LGEND,                       &
-          HTURBDIM,HTOM,PIMPL,ZEXPL,                     &
-          HPROGRAM, O2D, ONOMIXLG, OFLAT, OSTATNW,       &
-          OLES_CALL,OCOUPLES,OBLOWSNOW, ORMC01,          &
+          ZEXPL,HPROGRAM, O2D, ONOMIXLG, OFLAT,          &
+          OLES_CALL,OCOUPLES,OBLOWSNOW, PRSNOW,          &
           PTSTEP,TPFILE,                                 &
           PDXX,PDYY,PDZZ,PDZX,PDZY,PDIRCOSZW,PZZ,        &
           PCOSSLOPE,PSINSLOPE,                           &
@@ -1050,7 +1038,7 @@ END IF
 ! alors que ces termes ne sont pas calculés
 #ifdef REPRO48
 #else
-IF( HTURBDIM == '3DIM' ) THEN
+IF( TURBN%CTURBDIM == '3DIM' ) THEN
 #endif
   IF( BUCONF%LBUDGET_U  ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_U ), 'HTURB', PRUS  (:,:) )
   IF( BUCONF%LBUDGET_V  ) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_V ), 'HTURB', PRVS  (:,:) )
@@ -1088,9 +1076,9 @@ IF( HTURBDIM == '3DIM' ) THEN
 !à supprimer une fois le précédent ifdef REPRO48 validé
 #ifdef REPRO48
 #else
-    CALL TURB_HOR_SPLT(D,CST,CSTURB,                           &
+    CALL TURB_HOR_SPLT(D,CST,CSTURB, TURBN,                    &
           KSPLIT, KRR, KRRL, KRRI, KSV, PTSTEP,HLBCX,HLBCY,    &
-          OTURB_FLX,OSUBG_COND,OOCEAN,OCOMPUTE_SRC,            &
+          OOCEAN,OCOMPUTE_SRC,                                 &
           TPFILE,                                              &
           PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                        &
           PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                       &
@@ -1162,7 +1150,7 @@ IF(PRESENT(PTPMF))  THEN
 END IF
 !  6.2 TKE evolution equation
 
-IF (.NOT. OHARAT) THEN
+IF (.NOT. TURBN%LHARAT) THEN
 !
 IF (BUCONF%LBUDGET_TH)  THEN
   IF ( KRRI >= 1 .AND. KRRL >= 1 ) THEN
@@ -1181,12 +1169,11 @@ ELSE
   ZRTKEMS(:,:)=0.
 END IF
 !
-CALL TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,HPROGRAM,                      &
+CALL TKE_EPS_SOURCES(D,CST,CSTURB,BUCONF,TURBN,HPROGRAM,                &
                    & KMI,PTKET,ZLM,ZLEPS,PDP,ZTRH,                      &
                    & PRHODJ,PDZZ,PDXX,PDYY,PDZX,PDZY,PZZ,               &
-                   & PTSTEP,PIMPL,ZEXPL,                                &
-                   & HTURBLEN,HTURBDIM,                                 &
-                   & TPFILE,OTURB_DIAG,OLES_CALL,ODIAG_IN_RUN,OOCEAN,   &
+                   & PTSTEP,ZEXPL,                                      &
+                   & TPFILE,OLES_CALL,ODIAG_IN_RUN,OOCEAN,              &
                    & PSFU,PSFV,                                         &
                    & PTP,PRTKES,PRTHLS,ZCOEF_DISS,PTDIFF,PTDISS,ZRTKEMS,&
                    & TBUDGETS,KBUDGETS, PEDR=PEDR, PTR=PTR,PDISS=PDISS, &
@@ -1209,7 +1196,7 @@ ENDIF
 !*      7. STORES SOME INFORMATIONS RELATED TO THE TURBULENCE SCHEME
 !          ---------------------------------------------------------
 !
-IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_DIAG .AND. TPFILE%LOPENED ) THEN
 !
 ! stores the mixing length
 !
@@ -1340,7 +1327,7 @@ IF (OLES_CALL) THEN
 !*     11. LES quantities depending on <w'2> in "1DIM" mode
 !          ------------------------------------------------
 !
-  IF (HTURBDIM=="1DIM") THEN
+  IF (TURBN%CTURBDIM=="1DIM") THEN
     !
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     ZWORK1(IIJB:IIJE,1:D%NKT) = 2./3.*PTKET(IIJB:IIJE,1:D%NKT)
@@ -1596,7 +1583,7 @@ IF (ODZ) THEN
   PLM(IIJB:IIJE,D%NKU) = PLM(IIJB:IIJE,IKE)
   PLM(IIJB:IIJE,D%NKA) = PZZ(IIJB:IIJE,IKB) - PZZ(IIJB:IIJE,D%NKA)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE)
-  IF ( HTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
+  IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
     IF ( O2D) THEN
       !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
       PLM(IIJB:IIJE,1:D%NKT) = SQRT( PLM(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT) )
@@ -1613,7 +1600,7 @@ ELSE
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
   PLM(IIJB:IIJE,1:D%NKT)=1.E10
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
-  IF ( HTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
+  IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
     IF ( O2D) THEN
       PLM(:,:) = ZWORK1(:,:)
     ELSE
@@ -1627,7 +1614,7 @@ END IF
 !  mixing length limited by the distance normal to the surface
 !  (with the same factor as for BL89)
 !
-IF (.NOT. ORMC01) THEN
+IF (.NOT. TURBN%LRMC01) THEN
   ZALPHA=0.5**(-1.5)
   !
   DO JIJ=IIJB,IIJE
@@ -1692,7 +1679,7 @@ REAL, DIMENSION(D%NIJT,D%NKT), INTENT(OUT)   :: PLM
 !
 !   initialize the mixing length with the mesh grid
 IF (LHOOK) CALL DR_HOOK('TURB:DEAR',0,ZHOOK_HANDLE2)
-IF ( HTURBDIM /= '1DIM' ) THEN
+IF ( TURBN%CTURBDIM /= '1DIM' ) THEN
   CALL MXF_PHY(D,PDXX,ZWORK1)
   IF (.NOT. O2D) THEN
     CALL MYF_PHY(D,PDYY,ZWORK2)
@@ -1707,7 +1694,7 @@ PLM(IIJB:IIJE,D%NKU) = PLM(IIJB:IIJE,IKE)
 PLM(IIJB:IIJE,D%NKA) = PZZ(IIJB:IIJE,IKB) - PZZ(IIJB:IIJE,D%NKA)
 !$mnh_end_expand_array(JIJ=IIJB:IIJE)
 !
-IF ( HTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
+IF ( TURBN%CTURBDIM /= '1DIM' ) THEN  ! 3D turbulence scheme
   IF ( O2D) THEN
     !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT)
     PLM(IIJB:IIJE,1:D%NKT) = SQRT( PLM(IIJB:IIJE,1:D%NKT)*ZWORK1(IIJB:IIJE,1:D%NKT) )
@@ -1794,7 +1781,7 @@ END WHERE
 !
 !  mixing length limited by the distance normal to the surface (with the same factor as for BL89)
 !
-IF (.NOT. ORMC01) THEN
+IF (.NOT. TURBN%LRMC01) THEN
   ZALPHA=0.5**(-1.5)
   !
   DO JIJ=IIJB,IIJE
@@ -1918,7 +1905,7 @@ END WHERE
 !*       3.    CALCULATION OF THE MIXING LENGTH IN CLOUDS
 !              ------------------------------------------
 !
-IF (HTURBLEN_CL == HTURBLEN) THEN
+IF (HTURBLEN_CL == TURBN%CTURBLEN) THEN
   ZLM_CLOUD(:,:) = ZLM(:,:)
 ELSE
   SELECT CASE (HTURBLEN_CL)
@@ -1946,7 +1933,7 @@ ENDIF
 !              -----------------------------------------------
 !
 ! Impression before modification of the mixing length
-IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%CMNHNAME   = 'LM_CLEAR_SKY'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'LM_CLEAR_SKY'
@@ -1980,7 +1967,7 @@ END WHERE
 !*       5.    IMPRESSION
 !              ----------
 !
-IF ( OTURB_DIAG .AND. TPFILE%LOPENED ) THEN
+IF ( TURBN%LTURB_DIAG .AND. TPFILE%LOPENED ) THEN
   TZFIELD%CMNHNAME   = 'COEF_AMPL'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = 'COEF_AMPL'
diff --git a/src/mesonh/ext/phys_paramn.f90 b/src/mesonh/ext/phys_paramn.f90
index 4e66a3cf118f4f887ad8e988824a7c7d29c3df52..1870c55dc7c66b6dc1833805a88309e5d6542a0b 100644
--- a/src/mesonh/ext/phys_paramn.f90
+++ b/src/mesonh/ext/phys_paramn.f90
@@ -244,7 +244,7 @@ END MODULE MODI_PHYS_PARAM_n
 !
 USE MODD_ADV_n,       ONLY : XRTKEMS
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
-USE MODD_BLOWSNOW,    ONLY : LBLOWSNOW
+USE MODD_BLOWSNOW,    ONLY : LBLOWSNOW,XRSNOW
 USE MODD_BUDGET,      ONLY: NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RI, NBUDGET_SV1, &
                             TBUDGETS, xtime_bu_process, TBUCONF
 USE MODD_CH_AEROSOL
@@ -1549,12 +1549,12 @@ LSTATNW = .FALSE.
 LHARAT = .FALSE.
 !
    CALL TURB( CST,CSTURB, TBUCONF, TURBN,YLDIMPHYEX,&
-              IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, 1, NMODEL_CLOUD,       &
+              IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, 1, NMODEL_CLOUD,                   &
               NSV, NSV_LGBEG, NSV_LGEND,CPROGRAM, L2D, LNOMIXLG,LFLAT,               &
               LLES_CALL, LCOUPLES, LBLOWSNOW,                                        &
-              LTURB_FLX, LTURB_DIAG, LSUBG_COND, GCOMPUTE_SRC,                       &
-              LRMC01, LOCEAN, LDEEPOC, LHARAT, LSTATNW, LDIAG_IN_RUN,                &
-              CTURBDIM, CTURBLEN, CTOM, CTURBLEN_CLOUD, CCLOUD,XIMPL,                &
+              GCOMPUTE_SRC, XRSNOW,                                                  &
+              LOCEAN, LDEEPOC, LDIAG_IN_RUN,                                         &
+              CTURBLEN_CLOUD, CCLOUD,                                                &
               XTSTEP, TPFILE,                                                        &
               XDXX, XDYY, XDZZ, XDZX, XDZY, XZZ,                                     &
               XDIRCOSXW, XDIRCOSYW, XDIRCOSZW, XCOSSLOPE, XSINSLOPE,                 &
diff --git a/src/mesonh/filesToSuppress.txt b/src/mesonh/filesToSuppress.txt
index 6811e7680142442975ae90f15924aec31594a727..6f53c27df072438c2254556dbfc5a0f1f8461ef7 100644
--- a/src/mesonh/filesToSuppress.txt
+++ b/src/mesonh/filesToSuppress.txt
@@ -8,7 +8,6 @@ aux/modd_field.f90
 aux/modd_argslist_ll.f90
 aux/modd_frc.f90
 aux/modd_ibm_paramn.f90
-aux/modd_oceanh.f90
 aux/modd_parameters.f90
 aux/modd_precision.f90
 aux/modd_ref.f90