From fae1fc82b208f35bd0784ae9ff968cbaabdde9a4 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Wed, 14 Dec 2022 10:46:53 +0100
Subject: [PATCH] Quentin 14/12/2022: clean MODD in turb : remove MODD_NSV,
 MODD_CONF (variables L2D, CPROGRAM, LFLAT) use. MODD_CONF can not yet be
 removed because used in gradients_* version used by hor. turb (not yet GPU
 adapted)

---
 src/arome/ext/aro_turb_mnh.F90                |   2 +-
 src/common/aux/modd_nsv.F90                   | 273 ------------------
 src/common/turb/mode_turb_hor.F90             |  22 +-
 src/common/turb/mode_turb_hor_dyn_corr.F90    |  25 +-
 src/common/turb/mode_turb_hor_splt.F90        |  25 +-
 src/common/turb/mode_turb_hor_sv_corr.F90     |  18 +-
 src/common/turb/mode_turb_hor_sv_flux.F90     |  22 +-
 src/common/turb/mode_turb_hor_thermo_flux.F90 |  39 +--
 src/common/turb/mode_turb_hor_tke.F90         |  12 +-
 src/common/turb/mode_turb_hor_uv.F90          |  17 +-
 src/common/turb/mode_turb_hor_uw.F90          |  12 +-
 src/common/turb/mode_turb_hor_vw.F90          |  25 +-
 src/common/turb/mode_turb_ver_dyn_flux.F90    |   2 +-
 src/common/turb/modi_turb.F90                 |   3 +-
 src/common/turb/turb.F90                      |   9 +-
 src/mesonh/ext/phys_paramn.f90                |   3 +-
 16 files changed, 131 insertions(+), 378 deletions(-)
 delete mode 100644 src/common/aux/modd_nsv.F90

diff --git a/src/arome/ext/aro_turb_mnh.F90 b/src/arome/ext/aro_turb_mnh.F90
index 234fb549f..261b4fd27 100644
--- a/src/arome/ext/aro_turb_mnh.F90
+++ b/src/arome/ext/aro_turb_mnh.F90
@@ -426,7 +426,7 @@ DO JRR=1, NBUDGET_RI
 ENDDO
 OCOMPUTE_SRC=SIZE(PSIGS, 3)/=0
 CALL TURB (CST,CSTURB,TBUCONF,TURBN, YLDIMPHYEX,&
-   & IMI, KRR, KRRL, KRRI, HLBCX, HLBCY, KGRADIENTS,&
+   & IMI, KRR, KRRL, KRRI, HLBCX, HLBCY, KGRADIENTS, 1, &
    & ISPLIT,IMI, KSV, KSV_LGBEG, KSV_LGEND, HPROGRAM,&
    & NSV_LIMA_NR, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH,   &
    & O2D, ONOMIXLG, OFLAT, LLES_CALL,OCOUPLES,OBLOWSNOW,& 
diff --git a/src/common/aux/modd_nsv.F90 b/src/common/aux/modd_nsv.F90
deleted file mode 100644
index ca85a9433..000000000
--- a/src/common/aux/modd_nsv.F90
+++ /dev/null
@@ -1,273 +0,0 @@
-!MNH_LIC Copyright 2001-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_NSV
-!        ###############
-!
-!!****  *MODD_NSV* - declaration of scalar variables numbers
-!!
-!!    PURPOSE
-!!    -------
-!!       Arrays to store the per-model NSV_* values number (suffix _A denote an array)
-!!
-!!    AUTHOR
-!!    ------
-!!      D. Gazen   L.A.
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!      Original  01/02/01
-!!       J.-P. Pinty   29/11/02 add C3R5, ELEC
-!!       V. Masson     01/2004  add scalar names
-!!       M. Leriche    12/04/07 add aqueous chemistry
-!!       M. Leriche    08/07/10 add ice phase chemistry
-!!       C.Lac         07/11    add conditional sampling
-!!       Pialat/Tulet  15/02/12 add ForeFire
-!!       B.Vie              /14 LIMA
-!!      Modification    01/2016  (JP Pinty) Add LIMA
-!!       V. Vionnet     07/17   add blowing snow
-!  P. Wautelet 10/03/2021: add CSVNAMES and CSVNAMES_A to store the name of all the scalar variables
-!  B. Vie         06/2021: add prognostic supersaturation for LIMA
-!  A. Costes      12/2021: add Blaze fire model smoke
-!
-!-------------------------------------------------------------------------------
-!
-!*       0.   DECLARATIONS
-!             ------------
-!
-USE MODD_PARAMETERS, ONLY : JPMODELMAX, &  ! Maximum allowed number of nested models
-                            JPSVMAX,    &  ! Maximum number of scalar variables
-                            JPSVNAMELGTMAX ! Maximum length of a scalar variable name
-!
-IMPLICIT NONE
-SAVE
-!
-REAL,DIMENSION(JPSVMAX) :: XSVMIN ! minimum value for SV variables
-!
-LOGICAL :: LINI_NSV = .FALSE. ! becomes True when routine INI_NSV is called
-!
-CHARACTER(LEN=JPSVNAMELGTMAX), DIMENSION(:,:), ALLOCATABLE, TARGET :: CSVNAMES_A !Names of all the scalar variables
-
-INTEGER,DIMENSION(JPMODELMAX)::NSV_A = 0 ! total number of scalar variables
-                                         ! NSV_A = NSV_USER_A+NSV_C2R2_A+NSV_CHEM_A+..
-INTEGER,DIMENSION(JPMODELMAX)::NSV_USER_A = 0  ! number of user scalar variables with 
-                                               ! indices in the range : 1...NSV_USER_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C2R2_A = 0    ! number of liq scalar in C2R2
-                                                 !                  and in C3R5
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C2R2BEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C2R2END_A = 0 ! NSV_C2R2BEG_A...NSV_C2R2END_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C1R3_A = 0    ! number of ice scalar in C3R5
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C1R3BEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_C1R3END_A = 0 ! NSV_C1R3BEG_A...NSV_C1R3END_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_ELEC_A = 0    ! number of scalar in ELEC
-INTEGER,DIMENSION(JPMODELMAX)::NSV_ELECBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_ELECEND_A = 0 ! NSV_ELECBEG_A...NSV_ELECEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHEM_A = 0    ! number of chemical scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHEMBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHEMEND_A = 0 ! NSV_CHEMBEG_A...NSV_CHEMEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHGS_A = 0    ! number of gaseous chemcial species
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHGSBEG_A = 0 ! with indices
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHGSEND_A = 0 ! NSV_CHGSBEG_
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHAC_A = 0    ! number of aqueous chemical species
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHACBEG_A = 0 ! with indices
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHACEND_A = 0 ! NSV_CHACBEG
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHIC_A = 0    ! number of ice phase chemical species
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHICBEG_A = 0 ! with indices
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CHICEND_A = 0 ! NSV_CHICBEG
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LG_A = 0    ! number of LaGrangian 
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LGBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LGEND_A = 0 ! NSV_LGBEG_A...NSV_LGEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LNOX_A = 0    ! number of lightning NOx
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LNOXBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LNOXEND_A = 0 ! NSV_LNOXBEG_A...NSV_LNOXEND_A                !                                 
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DST_A = 0    ! number of dust scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DSTBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DSTEND_A = 0 ! NSV_DSTBEG_A...NSV_DSTEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLT_A = 0    ! number of sea salt scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLTBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLTEND_A = 0 ! NSV_SLTBEG_A...NSV_SLTEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AER_A = 0    ! number of aerosol scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AERBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AEREND_A = 0 ! NSV_AERBEG_A...NSV_AEREND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DSTDEP_A    = 0    ! number of aerosol scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DSTDEPBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_DSTDEPEND_A = 0 ! NSV_AERBEG_A...NSV_AEREND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AERDEP_A    = 0    ! number of aerosol scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AERDEPBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_AERDEPEND_A = 0 ! NSV_AERBEG_A...NSV_AEREND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLTDEP_A    = 0    ! number of aerosol scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLTDEPBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SLTDEPEND_A = 0 ! NSV_SLTBEG_A...NSV_SLTEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_PP_A = 0    ! number of passive pol.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_PPBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_PPEND_A = 0 ! NSV_PPBEG_A...NSV_PPEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CS_A = 0    ! number of condit.samplings
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CSBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CSEND_A = 0 ! NSV_CSBEG_A...NSV_CSEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_A = 0     ! number of scalar in LIMA
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_BEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_END_A = 0 ! NSV_LIMA_BEG_A...NSV_LIMA_END_A
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NC_A = 0       ! First Nc variable
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NR_A = 0       ! First Nr variable
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_CCN_FREE_A = 0 ! First Free CCN conc.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_CCN_ACTI_A = 0 ! First Acti. CNN conc.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_SCAVMASS_A = 0 ! Scavenged mass variable
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NI_A = 0       ! First Ni var.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NS_A = 0       ! First Ns var.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NG_A = 0       ! First Ng var.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NH_A = 0       ! First Nh var.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IFN_FREE_A = 0 ! First Free IFN conc.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IFN_NUCL_A = 0 ! First Nucl. IFN conc.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IMM_NUCL_A = 0 ! First Nucl. IMM conc.
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_HOM_HAZE_A = 0 ! Hom. freezing of CCN
-INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_SPRO_A = 0     ! Supersaturation
-!
-#ifdef MNH_FOREFIRE
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FF_A = 0    ! number of ForeFire scalar variables
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FFBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FFEND_A = 0 ! NSV_FFBEG_A...NSV_FFEND_A
-#endif
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_CO2_A = 0    ! index for CO2
-! Blaze smoke indexes
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FIRE_A = 0    ! number of Blaze smoke scalar variables
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FIREBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_FIREEND_A = 0 ! NSV_FIREBEG_A...NSV_FIREEND_A
-!
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SNW_A = 0    ! number of blowing snow scalar
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SNWBEG_A = 0 ! with indices in the range :
-INTEGER,DIMENSION(JPMODELMAX)::NSV_SNWEND_A = 0 ! NSV_SNWBEG_A...NSV_SNWEND_A
-!
-!###############################################################################
-!
-! variables updated for the current model
-!
-CHARACTER(LEN=JPSVNAMELGTMAX), DIMENSION(:), POINTER :: CSVNAMES !Names of all the scalar variables
-CHARACTER(LEN=6), DIMENSION(:), ALLOCATABLE :: CSV ! name of the scalar variables
-INTEGER :: NSV         = 0 ! total number of user scalar variables
-!
-INTEGER :: NSV_USER    = 0 ! number of user scalar variables with indices
-                           ! in the range : 1...NSV_USER
-INTEGER :: NSV_C2R2    = 0 ! number of liq scalar used in C2R2 and in C3R5
-INTEGER :: NSV_C2R2BEG = 0 ! with indices in the range :
-INTEGER :: NSV_C2R2END = 0 ! NSV_C2R2BEG...NSV_C2R2END
-!
-INTEGER :: NSV_C1R3    = 0 ! number of ice scalar used in C3R5
-INTEGER :: NSV_C1R3BEG = 0 ! with indices in the range :
-INTEGER :: NSV_C1R3END = 0 ! NSV_C1R3BEG...NSV_C1R3END
-!
-INTEGER :: NSV_ELEC    = 0 ! number of scalar variables used in ELEC
-INTEGER :: NSV_ELECBEG = 0 ! with indices in the range :
-INTEGER :: NSV_ELECEND = 0 ! NSV_ELECBEG...NSV_ELECEND
-!
-INTEGER :: NSV_CHEM    = 0 ! number of chemical scalar variables
-INTEGER :: NSV_CHEMBEG = 0 ! with indices in the range :
-INTEGER :: NSV_CHEMEND = 0 ! NSV_CHEMBEG...NSV_CHEMEND
-!
-INTEGER :: NSV_CHGS    = 0 ! number of gas-phase chemicals 
-INTEGER :: NSV_CHGSBEG = 0 ! with indices in the range :
-INTEGER :: NSV_CHGSEND = 0 ! NSV_CHGSBEG...NSV_CHGSEND         
-!
-INTEGER :: NSV_CHAC    = 0 ! number of aqueous-phase chemicals
-INTEGER :: NSV_CHACBEG = 0 ! with indices in the range :
-INTEGER :: NSV_CHACEND = 0 ! NSV_CHACBEG...NSV_CHACEND
-!
-INTEGER :: NSV_CHIC    = 0 ! number of ice-phase chemicals
-INTEGER :: NSV_CHICBEG = 0 ! with indices in the range :
-INTEGER :: NSV_CHICEND = 0 ! NSV_CHICBEG...NSV_CHICEND
-!
-INTEGER :: NSV_LG    = 0 ! number of lagrangian
-INTEGER :: NSV_LGBEG = 0 ! with indices in the range :
-INTEGER :: NSV_LGEND = 0 ! NSV_LGBEG...NSV_LGEND
-!
-INTEGER :: NSV_LNOX    = 0 ! number of lightning NOx variables
-INTEGER :: NSV_LNOXBEG = 0 ! with indices in the range :
-INTEGER :: NSV_LNOXEND = 0 ! NSV_LNOXBEG...NSV_LNOXEND
-!
-INTEGER :: NSV_DST     = 0 ! number of dust scalar variables
-INTEGER :: NSV_DSTBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_DSTEND  = 0 ! NSV_DSTBEG...NSV_DSTEND
-
-INTEGER :: NSV_SLT     = 0 ! number of sea salt scalar variables
-INTEGER :: NSV_SLTBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_SLTEND  = 0 ! NSV_SLTBEG...NSV_SLTEND
-
-INTEGER :: NSV_AER     = 0 ! number of aerosol scalar variables
-INTEGER :: NSV_AERBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_AEREND  = 0 ! NSV_AERBEG...NSV_AEREND
-
-INTEGER :: NSV_DSTDEP  = 0 ! number of aerosol scalar variables
-INTEGER :: NSV_DSTDEPBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_DSTDEPEND  = 0 ! NSV_AERBEG...NSV_AEREND
-!
-INTEGER :: NSV_AERDEP  = 0 ! number of aerosol scalar variables
-INTEGER :: NSV_AERDEPBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_AERDEPEND  = 0 ! NSV_AERBEG...NSV_AEREND
-
-INTEGER :: NSV_SLTDEP  = 0 ! number of aerosol scalar variables
-INTEGER :: NSV_SLTDEPBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_SLTDEPEND  = 0 ! NSV_AERBEG...NSV_AEREND
-!
-INTEGER :: NSV_PP    = 0 ! number of passive pollutants       
-INTEGER :: NSV_PPBEG = 0 ! with indices in the range :
-INTEGER :: NSV_PPEND = 0 ! NSV_PPBEG...NSV_PPEND
-!
-INTEGER :: NSV_CS    = 0 ! number of condit.samplings         
-INTEGER :: NSV_CSBEG = 0 ! with indices in the range :
-INTEGER :: NSV_CSEND = 0 ! NSV_CSBEG...NSV_CSEND
-!
-INTEGER :: NSV_LIMA     ! number of scalar in LIMA
-INTEGER :: NSV_LIMA_BEG ! with indices in the range :
-INTEGER :: NSV_LIMA_END ! NSV_LIMA_BEG_A...NSV_LIMA_END_A
-INTEGER :: NSV_LIMA_NC       !
-INTEGER :: NSV_LIMA_NR       !
-INTEGER :: NSV_LIMA_CCN_FREE !
-INTEGER :: NSV_LIMA_CCN_ACTI !
-INTEGER :: NSV_LIMA_SCAVMASS !
-INTEGER :: NSV_LIMA_NI       !
-INTEGER :: NSV_LIMA_NS       !
-INTEGER :: NSV_LIMA_NG       !
-INTEGER :: NSV_LIMA_NH       !
-INTEGER :: NSV_LIMA_IFN_FREE !
-INTEGER :: NSV_LIMA_IFN_NUCL !
-INTEGER :: NSV_LIMA_IMM_NUCL !
-INTEGER :: NSV_LIMA_HOM_HAZE !
-INTEGER :: NSV_LIMA_SPRO     !
-!
-#ifdef MNH_FOREFIRE
-INTEGER :: NSV_FF    = 0 ! number of ForeFire scalar variables
-INTEGER :: NSV_FFBEG = 0 ! with indices in the range :
-INTEGER :: NSV_FFEND = 0 ! NSV_FFBEG...NSV_FFEND
-#endif
-!
-INTEGER :: NSV_CO2     = 0 ! index for CO2
-! Blaze smoke
-INTEGER :: NSV_FIRE    = 0 ! number of Blaze smoke scalar variables
-INTEGER :: NSV_FIREBEG = 0 ! with indices in the range :
-INTEGER :: NSV_FIREEND = 0 ! NSV_FIREBEG...NSV_FIREEND
-!
-INTEGER :: NSV_SNW     = 0 ! number of blowing snow scalar variables
-INTEGER :: NSV_SNWBEG  = 0 ! with indices in the range :
-INTEGER :: NSV_SNWEND  = 0 ! NSV_SNWBEG...NSV_SNWEND
-
-END MODULE MODD_NSV
diff --git a/src/common/turb/mode_turb_hor.F90 b/src/common/turb/mode_turb_hor.F90
index 8679d4cc7..bdaab0106 100644
--- a/src/common/turb/mode_turb_hor.F90
+++ b/src/common/turb/mode_turb_hor.F90
@@ -7,6 +7,7 @@ IMPLICIT NONE
 CONTAINS
              SUBROUTINE TURB_HOR(D,CST,CSTURB,TURBN,                 &
                       KSPLT, KRR, KRRL, KRRI, PTSTEP,                &
+                      KSV, KSV_LGBEG, KSV_LGEND, OFLAT,O2D,ONOMIXLG, &                      
                       OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,                 &
                       TPFILE,                                        &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW,           &
@@ -168,7 +169,11 @@ 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.
+INTEGER,                INTENT(IN)   :: KSV,KSV_LGBEG,KSV_LGEND ! number of sv var.
 REAL,                   INTENT(IN)   ::  PTSTEP       !
+LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                INTENT(IN)   ::  ONOMIXLG     ! to use turbulence for lagrangian variables (modd_conf)
+LOGICAL,                INTENT(IN)   ::  O2D          ! Logical for 2D model version (modd_conf)
 LOGICAL,                INTENT(IN)   ::  OOCEAN ! switch for ocean version
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
@@ -257,7 +262,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*       7.   < V' TPV' >
 !
       CALL      TURB_HOR_THERMO_FLUX(TURBN,KSPLT, KRR, KRRL, KRRI,   &
-                      TPFILE,                                        &
+                      TPFILE,OFLAT, O2D,                             &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
                       PDIRCOSXW,PDIRCOSYW,                           &
@@ -289,7 +294,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*      11.   < W'W'>
 ! 
       CALL       TURB_HOR_DYN_CORR(TURBN,KSPLT, PTSTEP,              &
-                      KRR,                                           &
+                      KRR,KSV,OFLAT, O2D,                            &
                       TPFILE,                                        &
                       PK,PINV_PDZZ,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
@@ -306,7 +311,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      12.   < U'V'>
 !
-      CALL      TURB_HOR_UV(TURBN,KSPLT,                             &
+      CALL      TURB_HOR_UV(TURBN,KSPLT,OFLAT,O2D,                   &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -322,7 +327,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*      13.   < U'W'>
 !
       CALL      TURB_HOR_UW(TURBN,KSPLT,                             &
-                      KRR,                                           &
+                      KRR,KSV,OFLAT,                                 &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDXX,PDZZ,PDZX,                                &
@@ -336,7 +341,7 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !*      14.   < V'W'>
 !
       CALL      TURB_HOR_VW(TURBN,KSPLT,                             &
-                      KRR,                                           &
+                      KRR,KSV,OFLAT,O2D,                             &
                       TPFILE,                                        &
                       PK,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDYY,PDZZ,PDZY,                                &
@@ -350,8 +355,8 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
 !
 !*      15.   HORIZONTAL FLUXES OF PASSIVE SCALARS
 !
-      CALL      TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW,              &
-                      TPFILE,                                        &
+      CALL      TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW,OFLAT,        &
+                      TPFILE,KSV_LGBEG,KSV_LGEND,O2D,ONOMIXLG,       &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW,               &
                       PDIRCOSXW,PDIRCOSYW,                           &
@@ -361,8 +366,9 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) ::  PSIGS
                       PRSVS                                          )
 !
       IF (KSPLT==1 .AND. LLES_CALL)                                  &
-      CALL      TURB_HOR_SV_CORR(D,CST,CSTURB,                       &
+      CALL      TURB_HOR_SV_CORR(D,CST,CSTURB,KSV,KSV_LGBEG,KSV_LGEND,&
                       KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,   &
+                      ONOMIXLG,O2D,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW,               &
                       PLM,PLEPS,PTKEM,PTHVREF,                       &
                       PTHLM,PRM,                                     &
diff --git a/src/common/turb/mode_turb_hor_dyn_corr.F90 b/src/common/turb/mode_turb_hor_dyn_corr.F90
index ead101cfa..d9f4d2a61 100644
--- a/src/common/turb/mode_turb_hor_dyn_corr.F90
+++ b/src/common/turb/mode_turb_hor_dyn_corr.F90
@@ -7,7 +7,7 @@ MODULE MODE_TURB_HOR_DYN_CORR
 IMPLICIT NONE
 CONTAINS
       SUBROUTINE TURB_HOR_DYN_CORR(TURBN,KSPLT, PTSTEP,              &
-                      KRR,                                           &
+                      KRR, KSV,OFLAT,O2D,                            &
                       TPFILE,                                        &
                       PK,PINV_PDZZ,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
@@ -51,7 +51,7 @@ CONTAINS
 !!    -------------
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Feb  15, 2001 (J. Stein)  remove the use of w=0 at the
 !!                                               ground   
 !!                     Mar  12, 2001 (V. Masson and J. Stein) major bugs 
@@ -74,13 +74,11 @@ USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_ARGSLIST_ll,    ONLY: LIST_ll
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS
 USE MODD_LES
-USE MODD_NSV
 !
 USE MODE_ll
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
@@ -108,6 +106,9 @@ TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
 REAL,                     INTENT(IN)    ::  PTSTEP       ! timestep
 INTEGER,                  INTENT(IN)    ::  KRR          ! number of moist var.
+INTEGER,                  INTENT(IN)    ::  KSV          ! number of sv var.
+LOGICAL,                  INTENT(IN)    ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -202,7 +203,7 @@ IKU = SIZE(PUM,3)
 ZDIRSINZW(:,:) = SQRT( 1. - PDIRCOSZW(:,:)**2 )
 !
 GX_U_M_PUM = GX_U_M(PUM,PDXX,PDZZ,PDZX)
-IF (.NOT. L2D) GY_V_M_PVM = GY_V_M(PVM,PDYY,PDZZ,PDZY)
+IF (.NOT. O2D) GY_V_M_PVM = GY_V_M(PVM,PDYY,PDZZ,PDZY)
 GZ_W_M_PWM = GZ_W_M(PWM,PDZZ)
 !
 ZMZF_DZZ = MZF(PDZZ)
@@ -217,7 +218,7 @@ CALL ADD3DFIELD_ll( TZFIELDS_ll, ZFLX, 'TURB_HOR_DYN_CORR::ZFLX' )
 !             -------
 !
 ! Computes the U variance
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:)= (2./3.) * PTKEM                                  &
     - XCMFS * PK *( (4./3.) * GX_U_M_PUM                        &
                    -(2./3.) * ( GY_V_M_PVM                      &
@@ -316,7 +317,7 @@ IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
 END IF
 !
 ! Complete the U tendency
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
 CALL MPPDB_CHECK3DM("before turb_corr:PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ",PRECISION,&
                    & PRUS,PRHODJ,ZFLX,PDXX,PDZX,PINV_PDZZ )
 
@@ -355,7 +356,7 @@ END IF
 !             -------
 !
 ! Computes the V variance
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:)= (2./3.) * PTKEM                                  &
     - XCMFS * PK *( (4./3.) * GY_V_M_PVM                        &
                    -(2./3.) * ( GX_U_M_PUM                      &
@@ -411,8 +412,8 @@ IF ( TPFILE%LOPENED .AND. TURBN%LTURB_FLX ) THEN
 END IF
 !
 ! Complete the V tendency
-IF (.NOT. L2D) THEN
-  IF (.NOT. LFLAT) THEN
+IF (.NOT. O2D) THEN
+  IF (.NOT. OFLAT) THEN
     PRVS(:,:,:)=PRVS                                          &
                 -DYM(PRHODJ * ZFLX / MYF(PDYY) )              &
                 +DZF( PDZY / MZM(PDYY) *                      &
@@ -450,7 +451,7 @@ END IF
 !             -------
 !
 ! Computes the W variance
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:)= (2./3.) * PTKEM                                  &
     - XCMFS * PK *( (4./3.) * GZ_W_M_PWM                        &
                    -(2./3.) * ( GX_U_M_PUM                      &
@@ -540,7 +541,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
     CALL LES_MEAN_SUBGRID(ZFLX*MZF(GZ_M_W(1,IKU,1,PRM(:,:,:,1),PDZZ)), &
                            X_LES_RES_ddz_Rt_SBG_W2)
   END IF
-  DO JSV=1,NSV
+  DO JSV=1,KSV
     CALL LES_MEAN_SUBGRID( GZ_M_M(PSVM(:,:,:,JSV),PDZZ)*ZFLX, &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.)
     CALL LES_MEAN_SUBGRID(ZFLX*MZF(GZ_M_W(1,IKU,1,PSVM(:,:,:,JSV),PDZZ)), &
diff --git a/src/common/turb/mode_turb_hor_splt.F90 b/src/common/turb/mode_turb_hor_splt.F90
index afc97c422..d50a7bfb8 100644
--- a/src/common/turb/mode_turb_hor_splt.F90
+++ b/src/common/turb/mode_turb_hor_splt.F90
@@ -6,9 +6,10 @@ MODULE MODE_TURB_HOR_SPLT
 IMPLICIT NONE
 CONTAINS
            SUBROUTINE TURB_HOR_SPLT(D,CST,CSTURB,TURBN,              &
-                      KSPLIT, KRR,KRRL,KRRI,KSV, PTSTEP,HLBCX,HLBCY, &
+                      KSPLIT, KRR,KRRL,KRRI,KSV, KSV_LGBEG,KSV_LGEND,&
+                      PTSTEP,HLBCX,HLBCY, OFLAT, O2D, ONOMIXLG,      &
                       OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW,          &
-                      TPFILE,                                        &
+                      TPFILE, HPROGRAM, KHALO,                       &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                  &
                       PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                 &
                       PCOSSLOPE,PSINSLOPE,                           &
@@ -113,7 +114,7 @@ CONTAINS
 !!
 !!      Module MODD_CONF
 !!
-!!           CPROGRAM
+!!           HPROGRAM
 !!           
 !!
 !!    REFERENCE
@@ -156,7 +157,6 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CONF
 USE MODD_CST, ONLY: CST_t
 USE MODD_CTURB, ONLY: CSTURB_t
 USE MODD_DIMPHYEX, ONLY : DIMPHYEX_t
@@ -186,12 +186,17 @@ 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.
 INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
-INTEGER,                INTENT(IN)   :: KSV           ! number of sv var.
+INTEGER,                INTENT(IN)   :: KSV,KSV_LGBEG,KSV_LGEND ! number of sv var.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 CHARACTER (LEN=*), DIMENSION(:), INTENT(IN)       ::  HLBCX,HLBCY
+LOGICAL,                INTENT(IN)   ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                INTENT(IN)   ::  ONOMIXLG     ! to use turbulence for lagrangian variables (modd_conf)
+LOGICAL,                INTENT(IN)   ::  O2D          ! Logical for 2D model version (modd_conf)
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
+CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! HPROGRAM is the program currently running (modd_conf)
+INTEGER,                INTENT(IN)   ::  KHALO        ! Size of the halo for parallel distribution
 REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
@@ -307,7 +312,7 @@ NULLIFY(TZFIELDS_ll)
 !*       2.   SPLIT PROCESS LOOP
 !             ------------------
 !
-IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
+IF (KSPLIT>1 .AND. HPROGRAM=='MESONH') THEN
 !
 !*       2.1  allocations
 !             -----------
@@ -367,6 +372,7 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
 ! compute the turbulent tendencies for the small time step
     CALL TURB_HOR(D,CST,CSTURB,TURBN,                             &
                    JSPLT, KRR, KRRL, KRRI, PTSTEP,                &
+                   KSV, KSV_LGBEG, KSV_LGEND, OFLAT,O2D, ONOMIXLG,&
                    OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,                 &
                    TPFILE,                                        &
                    PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW,           &
@@ -385,7 +391,7 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
 !
 ! horizontal transport of Tke
 !
-  CALL   TURB_HOR_TKE(JSPLT,                                         &
+  CALL   TURB_HOR_TKE(JSPLT,OFLAT,O2D,                               &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
                       ZINV_PDXX, ZINV_PDYY, ZINV_PDZZ, ZMZM_PRHODJ,  &
                       ZK, PRHODJ, ZTKEM,                             &
@@ -410,7 +416,7 @@ IF (KSPLIT>1 .AND. CPROGRAM=='MESONH') THEN
 !
 ! reinforce boundary conditions
 !
-    IF (JSPLT<KSPLIT-NHALO+1) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
+    IF (JSPLT<KSPLIT-KHALO+1) CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll)
     !
     IF ( HLBCX(1) /= "CYCL" .AND. LWEST_ll()) THEN
        ZUM(IIB  ,:,:)=PUM(IIB  ,:,:)
@@ -509,6 +515,7 @@ ELSE
 !
   CALL TURB_HOR(D,CST,CSTURB,TURBN,                            &
                 1, KRR, KRRL, KRRI,  PTSTEP,                   &
+                KSV, KSV_LGBEG, KSV_LGEND, OFLAT,O2D, ONOMIXLG,&                
                 OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,                 &
                 TPFILE,                                        &
                 PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,PRSNOW,           &
@@ -528,7 +535,7 @@ ELSE
 ! horizontal transport of Tke
 !
 
-  CALL   TURB_HOR_TKE(1,                                             &
+  CALL   TURB_HOR_TKE(1,OFLAT,O2D,                                   &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
                       ZINV_PDXX, ZINV_PDYY, ZINV_PDZZ, ZMZM_PRHODJ,  &
                       ZK, PRHODJ, PTKEM,                             &
diff --git a/src/common/turb/mode_turb_hor_sv_corr.F90 b/src/common/turb/mode_turb_hor_sv_corr.F90
index 693d1979c..cd776d573 100644
--- a/src/common/turb/mode_turb_hor_sv_corr.F90
+++ b/src/common/turb/mode_turb_hor_sv_corr.F90
@@ -5,8 +5,9 @@
 MODULE MODE_TURB_HOR_SV_CORR
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_SV_CORR(D,CST,CSTURB,                      &
+      SUBROUTINE TURB_HOR_SV_CORR(D,CST,CSTURB,KSV,KSV_LGBEG,KSV_LGEND,&
                       KRR,KRRL,KRRI,OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,   &
+                      ONOMIXLG,O2D,                                  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW,               &
                       PLM,PLEPS,PTKEM,PTHVREF,                       &
                       PTHLM,PRM,                                     &
@@ -49,11 +50,9 @@ CONTAINS
 !          ------------
 !
 USE MODD_CST, ONLY: CST_t
-USE MODD_CONF
 USE MODD_CTURB, ONLY : CSTURB_t
 USE MODD_DIMPHYEX,   ONLY: DIMPHYEX_t
 USE MODD_PARAMETERS
-USE MODD_NSV, ONLY : NSV,NSV_LGBEG,NSV_LGEND
 USE MODD_LES
 !
 USE MODI_GRADIENT_M
@@ -80,9 +79,12 @@ TYPE(CSTURB_t),           INTENT(IN)    ::  CSTURB
 INTEGER,                  INTENT(IN)    ::  KRR          ! number of moist var.
 INTEGER,                  INTENT(IN)    ::  KRRL         ! number of liquid var.
 INTEGER,                  INTENT(IN)    ::  KRRI         ! number of ice var.
+INTEGER,                  INTENT(IN)    ::  KSV,KSV_LGBEG,KSV_LGEND ! number of sv var.
 LOGICAL,                  INTENT(IN)    ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                  INTENT(IN)    ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 LOGICAL,                  INTENT(IN)    ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
+LOGICAL,                  INTENT(IN)    ::  ONOMIXLG     ! to use turbulence for lagrangian variables (modd_conf)
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 REAL,                     INTENT(IN)    ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PDXX, PDYY, PDZZ, PDZX, PDZY 
                                                          ! Metric coefficients
@@ -129,14 +131,14 @@ ELSE
    ZCSV= CSTURB%XCHF
 ENDIF
 !
-DO JSV=1,NSV
+DO JSV=1,KSV
 !
-  IF (LNOMIXLG .AND. JSV >= NSV_LGBEG .AND. JSV<= NSV_LGEND) CYCLE
+  IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
   !
   ! variance Sv2
   !
   IF (LLES_CALL) THEN
-    IF (.NOT. L2D) THEN
+    IF (.NOT. O2D) THEN
       ZFLX(:,:,:) =  ZCSV / ZCSVD * PLM(:,:,:) * PLEPS(:,:,:) *   &
          (  GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)**2             &
           + GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)**2 )
@@ -153,7 +155,7 @@ DO JSV=1,NSV
   !
   IF (LLES_CALL) THEN
     CALL ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC,ZA)
-    IF (.NOT. L2D) THEN
+    IF (.NOT. O2D) THEN
       ZFLX(:,:,:)=  PLM(:,:,:) * PLEPS(:,:,:)                                          &
           *  (  GX_M_M(PTHLM,PDXX,PDZZ,PDZX) * GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)  &
               + GY_M_M(PTHLM,PDYY,PDZZ,PDZY) * GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)  &
@@ -168,7 +170,7 @@ DO JSV=1,NSV
     !
     IF (KRR>=1) THEN
       CALL  EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN,ZA)
-      IF (.NOT. L2D) THEN
+      IF (.NOT. O2D) THEN
         ZFLX(:,:,:)=  PLM(:,:,:) * PLEPS(:,:,:)                                                 &
             *  (  GX_M_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX) * GX_M_M(PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)  &
                 + GY_M_M(PRM(:,:,:,1),PDYY,PDZZ,PDZY) * GY_M_M(PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)  &
diff --git a/src/common/turb/mode_turb_hor_sv_flux.F90 b/src/common/turb/mode_turb_hor_sv_flux.F90
index 67f785919..a53b160b9 100644
--- a/src/common/turb/mode_turb_hor_sv_flux.F90
+++ b/src/common/turb/mode_turb_hor_sv_flux.F90
@@ -6,8 +6,8 @@
 MODULE MODE_TURB_HOR_SV_FLUX
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW,             &
-                      TPFILE,                                        &
+      SUBROUTINE TURB_HOR_SV_FLUX(TURBN,KSPLT,OBLOWSNOW,OFLAT,       &
+                      TPFILE,KSV_LGBEG,KSV_LGEND,O2D,ONOMIXLG,       &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,PRSNOW,               &
                       PDIRCOSXW,PDIRCOSYW,                           &
@@ -47,7 +47,7 @@ CONTAINS
 !!    -------------
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT swith
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT swith
 !!                                              + bug on Y scalar flux
 !!                     Jun  20, 2001 (J Stein) case of lagragian variables
 !!                     Nov  06, 2002 (V. Masson) LES budgets
@@ -62,12 +62,10 @@ CONTAINS
 USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS
-USE MODD_NSV,            ONLY: NSV_LGBEG, NSV_LGEND
 USE MODD_LES
 !
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
@@ -92,6 +90,10 @@ IMPLICIT NONE
 TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
+INTEGER,                  INTENT(IN)    ::  KSV_LGBEG,KSV_LGEND ! number of sv var.
+LOGICAL,                  INTENT(IN)    ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                  INTENT(IN)    ::  ONOMIXLG     ! to use turbulence for lagrangian variables (modd_conf)
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 LOGICAL,                  INTENT(IN)    ::  OBLOWSNOW    ! switch to activate pronostic blowing snow
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -173,7 +175,7 @@ ZCOEFF(:,:,IKB)= - (PDZZ(:,:,IKB+2)+2.*PDZZ(:,:,IKB+1)) /      &
 !
 DO JSV=1,ISV
 !
-  IF (LNOMIXLG .AND. JSV >= NSV_LGBEG .AND. JSV<= NSV_LGEND) CYCLE
+  IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
 !
 !       15.1   <U' SVth'>
 !              ----------
@@ -226,7 +228,7 @@ DO JSV=1,ISV
 !       15.2   <V' SVth'>
 !              ----------
 !
-  IF (.NOT. L2D) THEN
+  IF (.NOT. O2D) THEN
 !
 ! Computes the flux in the Y direction
     ZFLXY(:,:,:)=-ZCSV * MYM(PK) * GY_M_V(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)
@@ -282,8 +284,8 @@ DO JSV=1,ISV
 !       15.3   Horizontal source terms
 !              -----------------------
 !
-  IF (.NOT. L2D) THEN
-    IF (.NOT. LFLAT) THEN
+  IF (.NOT. O2D) THEN
+    IF (.NOT. OFLAT) THEN
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
         -DXF( MXM(PRHODJ) * ZFLXX * PINV_PDXX  )                                    &
         -DYF( MYM(PRHODJ) * ZFLXY * PINV_PDYY  )                                    &
@@ -296,7 +298,7 @@ DO JSV=1,ISV
         -DYF( MYM(PRHODJ) * ZFLXY * PINV_PDYY  )
     END IF
   ELSE
-    IF (.NOT. LFLAT) THEN
+    IF (.NOT. OFLAT) THEN
       PRSVS(:,:,:,JSV)=   PRSVS(:,:,:,JSV)                                          &
         -DXF( MXM(PRHODJ) * ZFLXX * PINV_PDXX  )                                    &
         +DZF( PMZM_PRHODJ * PINV_PDZZ *                                             &
diff --git a/src/common/turb/mode_turb_hor_thermo_flux.F90 b/src/common/turb/mode_turb_hor_thermo_flux.F90
index f63429c23..b28fa9996 100644
--- a/src/common/turb/mode_turb_hor_thermo_flux.F90
+++ b/src/common/turb/mode_turb_hor_thermo_flux.F90
@@ -8,7 +8,7 @@ IMPLICIT NONE
 CONTAINS
 !     ################################################################
       SUBROUTINE TURB_HOR_THERMO_FLUX(TURBN, KSPLT, KRR, KRRL, KRRI, &
-                      TPFILE,                                        &
+                      TPFILE,OFLAT,O2D,                              &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
                       PDIRCOSXW,PDIRCOSYW,                           &
@@ -50,7 +50,7 @@ CONTAINS
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
 !!                     Feb. 18, 1998 (J. Stein) bug for v'RC'
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Nov  06, 2002 (V. Masson) LES budgets
 !!                     Feb  20, 2003 (JP Pinty)  Add PFRAC_ICE
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
@@ -64,7 +64,6 @@ CONTAINS
 USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
@@ -96,6 +95,8 @@ 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)    ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -191,7 +192,7 @@ ZFLX(:,:,IKB-1:IKB-1) = 2. * MXM(  SPREAD( PSFTHM(:,:)* PDIRCOSXW(:,:), 3,1) )
 !
 ! Add this source to the Theta_l sources
 !
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
   PRTHLS(:,:,:) =  PRTHLS                                                   &
                 - DXF( MXM(PRHODJ) * ZFLX * PINV_PDXX )                          &
                 + DZF( PMZM_PRHODJ *MXF(PDZX*(MZM(ZFLX * PINV_PDXX))) * PINV_PDZZ )
@@ -202,7 +203,7 @@ END IF
 ! Compute the equivalent tendancy for Rc and Ri
 !
 IF ( KRRL >= 1 ) THEN
-  IF (.NOT. LFLAT) THEN
+  IF (.NOT. OFLAT) THEN
     ZFLXC = 2.*( MXF( MXM( PRHODJ*PATHETA*PSRCM )*ZFLX )                       &
                 +MZF( MZM( PRHODJ*PATHETA*PSRCM )*MXF(                         &
                                                PDZX*(MZM( ZFLX*PINV_PDXX )) ) )&
@@ -296,7 +297,7 @@ IF (KRR/=0) THEN
   !
   ! Add this source to the conservative mixing ratio sources
   !
-  IF (.NOT. LFLAT) THEN
+  IF (.NOT. OFLAT) THEN
     PRRS(:,:,:,1) = PRRS(:,:,:,1)                                             &
                   - DXF( MXM(PRHODJ) * ZFLX * PINV_PDXX )                          &
                   + DZF( PMZM_PRHODJ *MXF(PDZX*(MZM(ZFLX * PINV_PDXX))) * PINV_PDZZ )
@@ -307,7 +308,7 @@ IF (KRR/=0) THEN
   ! Compute the equivalent tendancy for Rc and Ri
   !
   IF ( KRRL >= 1 ) THEN
-    IF (.NOT. LFLAT) THEN
+    IF (.NOT. OFLAT) THEN
       ZFLXC = ZFLXC            &
             + 2.*( MXF( MXM( PRHODJ*PAMOIST*PSRCM )*ZFLX )                     &
                   +MZF( MZM( PRHODJ*PAMOIST*PSRCM )*MXF(                       &
@@ -418,7 +419,7 @@ END IF
 !             --------------
 !
 !
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:)     = -XCSHF * MYM( PK ) * GY_M_V(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY)
   ZFLX(:,:,IKE+1) = ZFLX(:,:,IKE) 
 ELSE
@@ -443,8 +444,8 @@ ZFLX(:,:,IKB-1:IKB-1) = 2. * MYM(  SPREAD( PSFTHM(:,:)* PDIRCOSYW(:,:), 3,1) ) &
 !
 ! Add this source to the Theta_l sources
 !
-IF (.NOT. L2D) THEN 
-  IF (.NOT. LFLAT) THEN
+IF (.NOT. O2D) THEN 
+  IF (.NOT. OFLAT) THEN
     PRTHLS(:,:,:) =  PRTHLS                                                         &
                   - DYF( MYM(PRHODJ) * ZFLX * PINV_PDYY )                           &
                   + DZF( PMZM_PRHODJ *MYF(PDZY*(MZM(ZFLX * PINV_PDYY))) * PINV_PDZZ )
@@ -455,9 +456,9 @@ END IF
 !
 ! Compute the equivalent tendancy for Rc and Ri
 !
-!IF ( TURBN%LSUBG_COND .AND. KRRL > 0 .AND. .NOT. L2D) THEN
-IF ( KRRL >= 1 .AND. .NOT. L2D) THEN
-  IF (.NOT. LFLAT) THEN
+!IF ( TURBN%LSUBG_COND .AND. KRRL > 0 .AND. .NOT. O2D) THEN
+IF ( KRRL >= 1 .AND. .NOT. O2D) THEN
+  IF (.NOT. OFLAT) THEN
     ZFLXC = 2.*( MYF( MYM( PRHODJ*PATHETA*PSRCM )*ZFLX )                       &
                 +MZF( MZM( PRHODJ*PATHETA*PSRCM )*MYF(                         &
                                                PDZY*(MZM( ZFLX*PINV_PDYY )) ) )&
@@ -533,7 +534,7 @@ END IF
 !
 IF (KRR/=0) THEN
   !
-  IF (.NOT. L2D) THEN
+  IF (.NOT. O2D) THEN
     ZFLX(:,:,:)     = -XCHF * MYM( PK ) * GY_M_V(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY)
     ZFLX(:,:,IKE+1) = ZFLX(:,:,IKE) 
   ELSE
@@ -557,8 +558,8 @@ IF (KRR/=0) THEN
   !
   ! Add this source to the conservative mixing ratio sources
   !
-  IF (.NOT. L2D) THEN 
-    IF (.NOT. LFLAT) THEN
+  IF (.NOT. O2D) THEN 
+    IF (.NOT. OFLAT) THEN
       PRRS(:,:,:,1) = PRRS(:,:,:,1)                                              &
                     - DYF( MYM(PRHODJ) * ZFLX * PINV_PDYY )                           &
 
@@ -570,8 +571,8 @@ IF (KRR/=0) THEN
   !
   ! Compute the equivalent tendancy for Rc and Ri
   !
-  IF ( KRRL >= 1 .AND. .NOT. L2D) THEN   ! Sub-grid condensation
-    IF (.NOT. LFLAT) THEN
+  IF ( KRRL >= 1 .AND. .NOT. O2D) THEN   ! Sub-grid condensation
+    IF (.NOT. OFLAT) THEN
       ZFLXC = ZFLXC            &
             + 2.*( MXF( MYM( PRHODJ*PAMOIST*PSRCM )*ZFLX )                     &
                 +  MZF( MZM( PRHODJ*PAMOIST*PSRCM )*MYF(                       &
@@ -654,7 +655,7 @@ END IF
 !!IF (KRR/=0) THEN
 !!  ! here ZFLX= <V'R'np> and ZWORK= <V'Theta'l>
 !!  !
-!!  IF (.NOT. L2D) THEN        &
+!!  IF (.NOT. O2D) THEN        &
 !!    ZVPTV(:,:,:) =                                                         &
 !!        ZWORK(:,:,:)*MYM(ETHETA(KRR,KRRI,PTHLT,PEXNREF,PRT,PLOCPT,PSRCM)) +       &
 !!         ZFLX(:,:,:)*MYM(EMOIST(KRR,KRRI,PTHLT,PEXNREF,PRT,PLOCPT,PSRCM))
diff --git a/src/common/turb/mode_turb_hor_tke.F90 b/src/common/turb/mode_turb_hor_tke.F90
index 5ff7a0029..5266601b2 100644
--- a/src/common/turb/mode_turb_hor_tke.F90
+++ b/src/common/turb/mode_turb_hor_tke.F90
@@ -6,7 +6,7 @@
 MODULE MODE_TURB_HOR_TKE
 IMPLICIT NONE
 CONTAINS
-      SUBROUTINE TURB_HOR_TKE(KSPLT,                                 &
+      SUBROUTINE TURB_HOR_TKE(KSPLT,OFLAT,O2D,                       &
                       PDXX, PDYY, PDZZ,PDZX,PDZY,                    &
                       PINV_PDXX, PINV_PDYY, PINV_PDZZ, PMZM_PRHODJ,  &
                       PK, PRHODJ, PTKEM,                             &
@@ -48,7 +48,6 @@ CONTAINS
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CONF
 USE MODD_CST
 USE MODD_CTURB
 USE MODD_PARAMETERS
@@ -68,7 +67,8 @@ IMPLICIT NONE
 !
 !
 INTEGER,                  INTENT(IN) :: KSPLT        ! current split index
-!
+LOGICAL,                  INTENT(IN) ::  OFLAT       ! Logical for zero ororography
+LOGICAL,                  INTENT(IN) ::  O2D         ! Logical for 2D model version (modd_conf)
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PDXX, PDYY, PDZZ, PDZX, PDZY 
                                                      ! Metric coefficients
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PK           ! Turbulent diffusion doef.
@@ -142,7 +142,7 @@ ZFLX(:,:,IKB-1) = - ZFLX(:,:,IKB)
 !
 ZFLX(:,:,IKU) =  ZFLX(:,:,IKU-1)
 !
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
   PTRH =-(  DXF( MXM(PRHODJ) * ZFLX                             * PINV_PDXX)&
           - DZF( PMZM_PRHODJ * MXF( PDZX * MZM(ZFLX*PINV_PDXX)) * PINV_PDZZ)&
          ) /PRHODJ
@@ -164,7 +164,7 @@ END IF
 !*       3.   horizontal transport of Tke v'e
 !             -------------------------------
 !
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX =-XCET * MYM(PK) * GY_M_V(1,IKU,1,PTKEM,PDYY,PDZZ,PDZY) ! < v'e >
 !
 ! special case near the ground ( uncentred gradient )
@@ -189,7 +189,7 @@ IF (.NOT. L2D) THEN
 !
 ! complete the explicit turbulent transport
 !
-  IF (.NOT. LFLAT) THEN
+  IF (.NOT. OFLAT) THEN
     PTRH = PTRH - (  DYF( MYM(PRHODJ) * ZFLX                              * PINV_PDYY )  &
                    - DZF( PMZM_PRHODJ * MYF( PDZY * MZM(ZFLX*PINV_PDYY) ) * PINV_PDZZ )  &
                   ) /PRHODJ
diff --git a/src/common/turb/mode_turb_hor_uv.F90 b/src/common/turb/mode_turb_hor_uv.F90
index 76bddbcb6..fccdc2934 100644
--- a/src/common/turb/mode_turb_hor_uv.F90
+++ b/src/common/turb/mode_turb_hor_uv.F90
@@ -7,7 +7,7 @@ MODULE MODE_TURB_HOR_UV
 IMPLICIT NONE
 CONTAINS
 !     ################################################################
-      SUBROUTINE TURB_HOR_UV(TURBN,KSPLT,                            &
+      SUBROUTINE TURB_HOR_UV(TURBN,KSPLT,OFLAT,O2D,                  &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,  &
                       PDXX,PDYY,PDZZ,PDZX,PDZY,                      &
@@ -50,7 +50,7 @@ CONTAINS
 !!    -------------
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Nov  06, 2002 (V. Masson) LES budgets
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !! --------------------------------------------------------------------------
@@ -61,7 +61,6 @@ CONTAINS
 USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
@@ -90,6 +89,8 @@ IMPLICIT NONE
 TYPE(TURB_t),             INTENT(IN)    :: TURBN
 INTEGER,                  INTENT(IN)    ::  KSPLT        ! split process index
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
+LOGICAL,                  INTENT(IN)    ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
                                                         ! PK = PLM * SQRT(PTKEM)
@@ -156,14 +157,14 @@ IKE = SIZE(PUM,3)-JPVEXT
 ZDIRSINZW(:,:) = SQRT( 1. - PDIRCOSZW(:,:)**2 )
 !
 GX_V_UV_PVM = GX_V_UV(PVM,PDXX,PDZZ,PDZX)
-IF (.NOT. L2D) GY_U_UV_PUM = GY_U_UV(PUM,PDYY,PDZZ,PDZY)
+IF (.NOT. O2D) GY_U_UV_PUM = GY_U_UV(PUM,PDYY,PDZZ,PDZY)
 !
 !
 !*      12.   < U'V'>
 !             -------
 !
 !
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:)= - XCMFS * MYM(MXM(PK)) *                           &
           (GY_U_UV_PUM + GX_V_UV_PVM)
 ELSE
@@ -222,7 +223,7 @@ END IF
 !
 !
 !computation of the source for rho*V due to this flux
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
   PRUS(:,:,:) = PRUS(:,:,:)                                &
               - DYF(ZFLX * MXM(MYM(PRHODJ) * PINV_PDYY) )         &
               + DZF( MYF( MZM(ZFLX)*MXM(PDZY/MZM(PDYY)))   &
@@ -232,7 +233,7 @@ ELSE
 END IF
 !
 !computation of the source for rho*V due to this flux
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
   PRVS(:,:,:) = PRVS(:,:,:)                             &
                 - DXF(ZFLX * MYM(MXM(PRHODJ) * PINV_PDXX) )    &
                 + DZF( MXF( MZM(ZFLX)*MYM(PDZX/MZM(PDXX))) &
@@ -245,7 +246,7 @@ IF (KSPLT==1) THEN
   !
   !Contribution to the dynamic production of TKE:
   !
-  IF (.NOT. L2D) THEN
+  IF (.NOT. O2D) THEN
     ZWORK(:,:,:) = - MXF( MYF( ZFLX *                                &
        (GY_U_UV_PUM + GX_V_UV_PVM) ) ) 
   ELSE
diff --git a/src/common/turb/mode_turb_hor_uw.F90 b/src/common/turb/mode_turb_hor_uw.F90
index a3fbe13e9..d4a20a20b 100644
--- a/src/common/turb/mode_turb_hor_uw.F90
+++ b/src/common/turb/mode_turb_hor_uw.F90
@@ -8,7 +8,7 @@ IMPLICIT NONE
 CONTAINS
 !     ################################################################
       SUBROUTINE TURB_HOR_UW(TURBN,KSPLT,                            &
-                      KRR,                                           &
+                      KRR,KSV,OFLAT,                                 &
                       TPFILE,                                        &
                       PK,PINV_PDXX,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDXX,PDZZ,PDZX,                                &
@@ -49,7 +49,7 @@ CONTAINS
 !!    -------------
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Feb  14, 2001 (V. Masson and J. Stein) DZF bug on PRWS
 !!                                   + remove the use of W=0 at the ground
 !!                                   + extrapolation under the ground
@@ -65,13 +65,11 @@ CONTAINS
 USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS
 USE MODD_LES
-USE MODD_NSV
 !
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
 !
@@ -95,6 +93,8 @@ 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)    ::  KSV          ! number of sv var.
+LOGICAL,                  INTENT(IN)    ::  OFLAT        ! Logical for zero ororography
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 
@@ -188,7 +188,7 @@ END IF
 PRUS(:,:,:) = PRUS(:,:,:) - DZF( ZFLX* MXM( PMZM_PRHODJ ) / MXM( PDZZ ) )
 !
 !computation of the source for rho*W due to this flux
-IF (.NOT. LFLAT) THEN
+IF (.NOT. OFLAT) THEN
   PRWS(:,:,:) = PRWS(:,:,:)                              &
         -DXF( MZM( MXM(PRHODJ) * PINV_PDXX) * ZFLX)           &
         +DZM( PRHODJ * MXF( MZF( ZFLX*PDZX ) * PINV_PDXX ) / MZF(PDZZ) )
@@ -236,7 +236,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
     CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.)
   END IF
-  DO JSV=1,NSV
+  DO JSV=1,KSV
     CALL LES_MEAN_SUBGRID( MXF(GX_M_U(1,IKU,1,PSVM(:,:,:,JSV),PDXX,PDZZ,PDZX)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV) , .TRUE.)
   END DO
diff --git a/src/common/turb/mode_turb_hor_vw.F90 b/src/common/turb/mode_turb_hor_vw.F90
index de637447b..807e229c4 100644
--- a/src/common/turb/mode_turb_hor_vw.F90
+++ b/src/common/turb/mode_turb_hor_vw.F90
@@ -7,7 +7,7 @@ MODULE MODE_TURB_HOR_VW
 IMPLICIT NONE
 CONTAINS
       SUBROUTINE TURB_HOR_VW(TURBN,KSPLT,                            &
-                      KRR,                                           &
+                      KRR,KSV,OFLAT,O2D,                             &
                       TPFILE,                                        &
                       PK,PINV_PDYY,PINV_PDZZ,PMZM_PRHODJ,            &
                       PDYY,PDZZ,PDZY,                                &
@@ -48,7 +48,7 @@ CONTAINS
 !!    -------------
 !!                     Aug    , 1997 (V. Saravane) spliting of TURB_HOR
 !!                     Nov  27, 1997 (V. Masson) clearing of the routine
-!!                     Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!                     Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Feb  14, 2001 (V. Masson and J. Stein) DZF bug on PRWS
 !!                                + remove the use of W=0 at the ground
 !!                                + extrapolataion under the ground
@@ -64,13 +64,11 @@ CONTAINS
 USE MODD_TURB_n, ONLY: TURB_t
 !
 USE MODD_CST
-USE MODD_CONF
 USE MODD_CTURB
 USE MODD_FIELD,          ONLY: TFIELDDATA, TYPEREAL
 USE MODD_IO,             ONLY: TFILEDATA
 USE MODD_PARAMETERS
 USE MODD_LES
-USE MODD_NSV
 !
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
 !
@@ -94,6 +92,9 @@ 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)    ::  KSV          ! number of sv var.
+LOGICAL,                  INTENT(IN)    ::  OFLAT        ! Logical for zero ororography
+LOGICAL,                  INTENT(IN)    ::  O2D          ! Logical for 2D model version (modd_conf)
 TYPE(TFILEDATA),          INTENT(IN)    ::  TPFILE       ! Output file
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    ::  PK          ! Turbulent diffusion doef.
@@ -145,7 +146,7 @@ IKE = SIZE(PWM,3)-JPVEXT
 IKU = SIZE(PWM,3)
 !
 !
-IF (.NOT. L2D) GY_W_VW_PWM = GY_W_VW(PWM,PDYY,PDZZ,PDZY)
+IF (.NOT. O2D) GY_W_VW_PWM = GY_W_VW(PWM,PDYY,PDZZ,PDZY)
 !
 !
 !*      14.   < V'W'>
@@ -153,7 +154,7 @@ IF (.NOT. L2D) GY_W_VW_PWM = GY_W_VW(PWM,PDYY,PDZZ,PDZY)
 !
 ! residual part of < V'W'> depending on dw/dy
 !
-IF (.NOT. L2D) THEN
+IF (.NOT. O2D) THEN
   ZFLX(:,:,:) =                                                      &
     - XCMFS * MYM(MZM(PK)) * GY_W_VW_PWM
   !! &  to be tested
@@ -189,12 +190,12 @@ END IF
 !
 ! compute the source for rho*V due to this residual flux ( the other part is
 ! taken into account in TURB_VER)
-IF (.NOT. L2D) &
+IF (.NOT. O2D) &
 PRVS(:,:,:) = PRVS(:,:,:) - DZF( ZFLX* MYM( PMZM_PRHODJ ) / MYM ( PDZZ ) )
 !
 !computation of the source for rho*W due to this flux
-IF (.NOT. L2D) THEN 
-  IF (.NOT. LFLAT) THEN
+IF (.NOT. O2D) THEN 
+  IF (.NOT. OFLAT) THEN
     PRWS(:,:,:) = PRWS(:,:,:)                              &
           -DYF( MZM( MYM(PRHODJ) * PINV_PDYY) * ZFLX)           &
           +DZM( PRHODJ * MYF( MZF( ZFLX*PDZY ) * PINV_PDYY ) / MZF(PDZZ) )
@@ -207,7 +208,7 @@ IF (KSPLT==1) THEN
   ! 
   !Contribution to the dynamic production of TKE:
   !
-  IF (.NOT. L2D) THEN
+  IF (.NOT. O2D) THEN
     ZWORK(:,:,:) =-MZF( MYF( ZFLX *( GZ_V_VW(PVM,PDZZ) + GY_W_VW_PWM ) ) )
   !
   !
@@ -226,7 +227,7 @@ IF (KSPLT==1) THEN
   ENDIF
   !
   ! dynamic production computation
-  IF (.NOT. L2D) &
+  IF (.NOT. O2D) &
   PDP(:,:,:) = PDP(:,:,:) + ZWORK(:,:,:)  
   !
 END IF
@@ -246,7 +247,7 @@ IF (LLES_CALL .AND. KSPLT==1) THEN
     CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Rt_SBG_UaW , .TRUE.)
   END IF
-  DO JSV=1,NSV
+  DO JSV=1,KSV
     CALL LES_MEAN_SUBGRID( MXF(GY_M_V(1,IKU,1,PSVM(:,:,:,JSV),PDYY,PDZZ,PDZY)*MZF(ZFLX)), &
                            X_LES_RES_ddxa_Sv_SBG_UaW(:,:,:,JSV), .TRUE.)
   END DO
diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90
index 839e4a1ca..5157b5ac3 100644
--- a/src/common/turb/mode_turb_ver_dyn_flux.F90
+++ b/src/common/turb/mode_turb_ver_dyn_flux.F90
@@ -187,7 +187,7 @@ SUBROUTINE TURB_VER_DYN_FLUX(D,CST,CSTURB,TURBN,KSV,O2D,OFLAT,      &
 !!      Modifications: Nov  24, 1997 (V. Masson) removes the DO loops
 !!      Modifications: Mar  31, 1998 (V. Masson) splits the routine TURB_VER_DYN_FLUX
 !!      Modifications: Oct  18, 2000 (J. Stein)  Bug in some computations for IKB level
-!!      Modifications: Oct  18, 2000 (V. Masson) LES computations + LFLAT switch
+!!      Modifications: Oct  18, 2000 (V. Masson) LES computations + OFLAT switch
 !!                     Nov  06, 2002 (V. Masson) LES budgets
 !!                     October 2009 (G. Tanguy) add ILENCH=LEN(YCOMMENT) after
 !!                                              change of YCOMMENT
diff --git a/src/common/turb/modi_turb.F90 b/src/common/turb/modi_turb.F90
index 57dca0802..f03211008 100644
--- a/src/common/turb/modi_turb.F90
+++ b/src/common/turb/modi_turb.F90
@@ -5,7 +5,7 @@
 INTERFACE
 !
       SUBROUTINE TURB(CST,CSTURB,BUCONF,TURBN,D,                      &
-              & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY,KGRADIENTS,             &
+              & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY,KGRADIENTS,KHALO,       &
               & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND,HPROGRAM,    &
               & KSV_LIMA_NR, KSV_LIMA_NS, KSV_LIMA_NG, KSV_LIMA_NH,   &
               & O2D,ONOMIXLG,OFLAT,OLES_CALL,OCOUPLES,OBLOWSNOW,      &
@@ -54,6 +54,7 @@ INTEGER,                INTENT(IN)   :: KSV_LIMA_NR,KSV_LIMA_NS,KSV_LIMA_NG,KSV_
 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
+INTEGER,                INTENT(IN)   ::  KHALO        ! Size of the halo for parallel distribution
 LOGICAL,                INTENT(IN)   ::  OCOMPUTE_SRC ! flag to define dimensions of SIGS and SRCT variables
 LOGICAL,                INTENT(IN)   ::  OOCEAN       ! switch for Ocean model version
 LOGICAL,                INTENT(IN)   ::  ODEEPOC      ! activates sfc forcing for ideal ocean deep conv
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index d6c6908ca..919199a4a 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -4,7 +4,7 @@
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
       SUBROUTINE TURB(CST,CSTURB,BUCONF,TURBN,D,                      &
-              & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY,KGRADIENTS,             &
+              & KMI,KRR,KRRL,KRRI,HLBCX,HLBCY,KGRADIENTS,KHALO,       &
               & KSPLIT,KMODEL_CL,KSV,KSV_LGBEG,KSV_LGEND,HPROGRAM,    &
               & KSV_LIMA_NR, KSV_LIMA_NS, KSV_LIMA_NG, KSV_LIMA_NH,   &
               & O2D,ONOMIXLG,OFLAT,OLES_CALL,OCOUPLES,OBLOWSNOW,      &
@@ -311,6 +311,8 @@ LOGICAL,                INTENT(IN)   ::  OBLOWSNOW    ! switch to activate prono
 LOGICAL,                INTENT(IN)   ::  ODIAG_IN_RUN ! switch to activate online diagnostics (mesonh)
 CHARACTER(LEN=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
+INTEGER,                INTENT(IN)   ::  KHALO        ! Size of the halo for parallel distribution
+
 REAL,                   INTENT(IN)   ::  PRSNOW       ! Ratio for diffusion coeff. scalar (blowing snow)
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
@@ -1096,9 +1098,10 @@ IF( TURBN%CTURBDIM == '3DIM' ) THEN
 #ifdef REPRO48
 #else
     CALL TURB_HOR_SPLT(D,CST,CSTURB, TURBN,                    &
-          KSPLIT, KRR, KRRL, KRRI, KSV, PTSTEP,HLBCX,HLBCY,    &
+          KSPLIT, KRR, KRRL, KRRI, KSV,KSV_LGBEG,KSV_LGEND,    & 
+          PTSTEP,HLBCX,HLBCY, OFLAT,O2D, ONOMIXLG,             & 
           OOCEAN,OCOMPUTE_SRC,OBLOWSNOW,PRSNOW,                &
-          TPFILE,                                              &
+          TPFILE, HPROGRAM, KHALO,                             &
           PDXX,PDYY,PDZZ,PDZX,PDZY,PZZ,                        &
           PDIRCOSXW,PDIRCOSYW,PDIRCOSZW,                       &
           PCOSSLOPE,PSINSLOPE,                                 &
diff --git a/src/mesonh/ext/phys_paramn.f90 b/src/mesonh/ext/phys_paramn.f90
index 628ed7a96..4dfac6d8a 100644
--- a/src/mesonh/ext/phys_paramn.f90
+++ b/src/mesonh/ext/phys_paramn.f90
@@ -1565,7 +1565,8 @@ IF(LLEONARD) THEN
   ZHGRAD(:,:,:,6) = GY_M_M(XRT(:,:,:,1), XDXX,XDZZ,XDZX,1,IKU,1)
 END IF
    CALL TURB( CST,CSTURB, TBUCONF, TURBN,YLDIMPHYEX,&
-              IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, IGRADIENTS, 1, NMODEL_CLOUD,       &
+              IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, IGRADIENTS, NHALO,                 &
+              1, NMODEL_CLOUD,                                                       &
               NSV, NSV_LGBEG, NSV_LGEND,CPROGRAM,                                    &
               NSV_LIMA_NR, NSV_LIMA_NS, NSV_LIMA_NG, NSV_LIMA_NH,                    &
               L2D, LNOMIXLG,LFLAT,                                                   &
-- 
GitLab