From 4fdb112ade2a2981ec1baf8ff31404d3afc953ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr>
Date: Tue, 25 Jan 2022 10:22:50 +0100
Subject: [PATCH] =?UTF-8?q?S=C3=A9bastien=20Riette=2025/01/2022=20merge=20?=
 =?UTF-8?q?mf=5Fturb?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

+ correction mf_turb_expl.F90
---
 src/arome/gmkpack_ignored_files               |   2 +
 src/arome/turb/modi_mf_turb.F90               |  77 ----
 src/arome/turb/shallow_mf.F90                 |  10 +-
 .../turb/mode_mf_turb.F90}                    |  42 ++-
 ...mf_turb_expl.F90 => mode_mf_turb_expl.F90} |   1 +
 src/mesonh/turb/mf_turb.f90                   | 332 ------------------
 src/mesonh/turb/shallow_mf.f90                |   4 +-
 7 files changed, 33 insertions(+), 435 deletions(-)
 delete mode 100644 src/arome/turb/modi_mf_turb.F90
 rename src/{arome/turb/mf_turb.F90 => common/turb/mode_mf_turb.F90} (91%)
 rename src/common/turb/{mf_turb_expl.F90 => mode_mf_turb_expl.F90} (99%)
 delete mode 100644 src/mesonh/turb/mf_turb.f90

diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index f9d5a7ad2..1c1fae1e5 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -106,6 +106,8 @@ phyex/turb/compute_function_thermo_mf.F90
 phyex/turb/modd_cmfshall.F90
 phyex/turb/mf_turb_expl.F90
 phyex/turb/modi_mf_turb_expl.F90
+phyex/turb/mf_turb.F90
+phyex/turb/modi_mf_turb.F90
 phyex/turb/compute_mf_cloud.F90
 phyex/turb/compute_mf_cloud_bigaus.F90
 phyex/turb/compute_mf_cloud_direct.F90
diff --git a/src/arome/turb/modi_mf_turb.F90 b/src/arome/turb/modi_mf_turb.F90
deleted file mode 100644
index e3dbf894b..000000000
--- a/src/arome/turb/modi_mf_turb.F90
+++ /dev/null
@@ -1,77 +0,0 @@
-!     ######spl
-     MODULE MODI_MF_TURB
-!    ######################
-!
-INTERFACE
-!     #################################################################
-      SUBROUTINE MF_TURB(KKA,KKB,KKE,KKU,KKL,OMIXUV,                  &
-                ONOMIXLG,KSV_LGBEG,KSV_LGEND,                         &
-                PIMPL, PTSTEP, PTSTEP_MET, PTSTEP_SV,                 &
-                PDZZ,                                                 &
-                PRHODJ,                                               &
-                PTHLM,PTHVM,PRTM,PUM,PVM,PSVM,                        &
-                PTHLDT,PRTDT,PUDT,PVDT,PSVDT,                         &
-                PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP,PSV_UP,       &
-                PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF,      &
-                PFLXZSVMF                                             )
-
-!     #################################################################
-!
-!               
-!*               1.1  Declaration of Arguments
-!
-!
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-
-LOGICAL,                INTENT(IN)   :: OMIXUV      ! True if mixing of momentum
-LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
-INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
-INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
-REAL,                   INTENT(IN)   :: PIMPL       ! degree of implicitness
-REAL,                 INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
-REAL,                 INTENT(IN)     ::  PTSTEP_MET! Timestep for meteorological variables                        
-REAL,                 INTENT(IN)     ::  PTSTEP_SV! Timestep for tracer variables
-!
-REAL, DIMENSION(:,:), INTENT(IN)   :: PDZZ        ! metric coefficients
-
-REAL, DIMENSION(:,:), INTENT(IN)   ::  PRHODJ    ! dry density * Grid size
-
-!   Conservative var. at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHLM       ! conservative pot. temp.
-REAL, DIMENSION(:,:), INTENT(IN) ::  PRTM         ! water var.  where 
-!  Virtual potential temperature at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHVM 
-!  Momentum at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PUM
-REAL, DIMENSION(:,:), INTENT(IN) ::  PVM
-!  scalar variables at t-dt
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSVM
-!
-! Tendencies of conservative variables
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PTHLDT
-
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PRTDT 
-! Tendencies of momentum
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PUDT
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PVDT
-! Tendencies of scalar variables
-REAL, DIMENSION(:,:,:), INTENT(OUT) ::  PSVDT
-
-
-! Updraft characteritics
-REAL, DIMENSION(:,:), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSV_UP
-! Fluxes
-REAL, DIMENSION(:,:), INTENT(OUT)  ::  PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
-
-REAL, DIMENSION(:,:,:), INTENT(OUT)::  PFLXZSVMF
-
-END SUBROUTINE MF_TURB
-
-END INTERFACE
-!
-END MODULE MODI_MF_TURB
diff --git a/src/arome/turb/shallow_mf.F90 b/src/arome/turb/shallow_mf.F90
index 6997ea17a..88f216003 100644
--- a/src/arome/turb/shallow_mf.F90
+++ b/src/arome/turb/shallow_mf.F90
@@ -67,8 +67,8 @@ USE MODI_THL_RT_FROM_TH_R_MF
 USE MODI_COMPUTE_UPDRAFT
 USE MODI_COMPUTE_UPDRAFT_RHCJ10
 USE MODI_COMPUTE_UPDRAFT_RAHA
-USE MODI_MF_TURB
-USE MODI_MF_TURB_EXPL
+USE MODE_MF_TURB, ONLY: MF_TURB
+USE MODE_MF_TURB_EXPL, ONLY: MF_TURB_EXPL
 USE MODE_COMPUTE_MF_CLOUD, ONLY: COMPUTE_MF_CLOUD
 USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
 !
@@ -265,9 +265,9 @@ CALL COMPUTE_MF_CLOUD(KKA,IKB,IKE,KKU,KKL,KRR,KRRL,KRRI,&
 ZEMF_O_RHODREF=PEMF/PRHODREF
 
 IF ( PIMPL_MF > 1.E-10 ) THEN  
-CALL MF_TURB(KKA, IKB, IKE, KKU, KKL, OMIXUV,                         &
+       CALL MF_TURB(KKA, IKB, IKE, KKU, KKL, OMIXUV,                     &
              ONOMIXLG,KSV_LGBEG,KSV_LGEND,                            &
-             PIMPL_MF, PTSTEP, PTSTEP_MET, PTSTEP_SV,                 &
+             PIMPL_MF, PTSTEP,                                        &
              PDZZ,                                                    &
              PRHODJ,                                                  &
              ZTHLM,ZTHVM,ZRTM,PUM,PVM,PSVM,                           &
@@ -276,7 +276,7 @@ CALL MF_TURB(KKA, IKB, IKE, KKU, KKL, OMIXUV,                         &
              PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF,         &
              ZFLXZSVMF                                                )
 ELSE
-  CALL MF_TURB_EXPL(KKA, IKB, IKE, KKU, KKL, OMIXUV,                     &
+      CALL MF_TURB_EXPL(KKA, IKB, IKE, KKU, KKL, OMIXUV,                 &
            PRHODJ,                                                       &
            ZTHLM,ZTHVM,ZRTM,PUM,PVM,                                     &
            PDTHLDT_MF,PDRTDT_MF,PDUDT_MF,PDVDT_MF,                       &
diff --git a/src/arome/turb/mf_turb.F90 b/src/common/turb/mode_mf_turb.F90
similarity index 91%
rename from src/arome/turb/mf_turb.F90
rename to src/common/turb/mode_mf_turb.F90
index 66a8d9b86..86f1d2f31 100644
--- a/src/arome/turb/mf_turb.F90
+++ b/src/common/turb/mode_mf_turb.F90
@@ -1,7 +1,16 @@
-!     ######spl
+!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.
+!    ######################
+     MODULE MODE_MF_TURB
+!    ######################
+!
+IMPLICIT NONE
+CONTAINS
       SUBROUTINE MF_TURB(KKA,KKB,KKE,KKU,KKL,OMIXUV,                  &
                 ONOMIXLG,KSV_LGBEG,KSV_LGEND,                         &
-                PIMPL, PTSTEP, PTSTEP_MET, PTSTEP_SV,                 &
+                PIMPL, PTSTEP,                                        &
                 PDZZ,                                                 &
                 PRHODJ,                                               &
                 PTHLM,PTHVM,PRTM,PUM,PVM,PSVM,                        &
@@ -10,9 +19,6 @@
                 PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF,      &
                 PFLXZSVMF                                             )
 
-      USE PARKIND1, ONLY : JPRB
-      USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-
 !     #################################################################
 !
 !
@@ -56,11 +62,12 @@
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_PARAM_MFSHALL_n
-!
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
 USE MODI_TRIDIAG_MASSFLUX
 !
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+!
 IMPLICIT NONE
 !
 !
@@ -78,8 +85,6 @@ INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
 INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
 REAL,                   INTENT(IN)   :: PIMPL       ! degree of implicitness
 REAL,                 INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
-REAL,                 INTENT(IN)     ::  PTSTEP_MET! Timestep for meteorological variables                        
-REAL,                 INTENT(IN)     ::  PTSTEP_SV! Timestep for tracer variables
 !
 REAL, DIMENSION(:,:), INTENT(IN)   :: PDZZ        ! metric coefficients
 
@@ -123,19 +128,17 @@ REAL, DIMENSION(:,:,:), INTENT(OUT)::  PFLXZSVMF
 !
 
 REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2)) :: ZVARS
-
-!
 INTEGER :: ISV,JSV          !number of scalar variables and Loop counter
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
 !----------------------------------------------------------------------------
 !
 !*      1.PRELIMINARIES
 !         -------------
 !
+IF (LHOOK) CALL DR_HOOK('MF_TURB',0,ZHOOK_HANDLE)
 !
 ! number of scalar var
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK('MF_TURB',0,ZHOOK_HANDLE)
 ISV=SIZE(PSVM,3)
 
 !
@@ -179,25 +182,25 @@ ENDIF
 ! 3.1 Compute the tendency for the conservative potential temperature
 !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
 !
-CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PTHLM,PFLXZTHMF,-PEMF,PTSTEP_MET,PIMPL,  &
+CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PTHLM,PFLXZTHMF,-PEMF,PTSTEP,PIMPL,  &
                       PDZZ,PRHODJ,ZVARS )
 ! compute new flux
 PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(ZVARS(:,:), KKA, KKU, KKL))
 
 !!! compute THL tendency
 !
-PTHLDT(:,:)= (ZVARS(:,:)-PTHLM(:,:))/PTSTEP_MET
+PTHLDT(:,:)= (ZVARS(:,:)-PTHLM(:,:))/PTSTEP
 
 !
 ! 3.2 Compute the tendency for the conservative mixing ratio
 !
-CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP_MET,PIMPL,  &
+CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP,PIMPL,  &
                                  PDZZ,PRHODJ,ZVARS )
 ! compute new flux
 PFLXZRMF(:,:) =  PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(ZVARS(:,:), KKA, KKU, KKL))
 
 !!! compute RT tendency
-PRTDT(:,:) = (ZVARS(:,:)-PRTM(:,:))/PTSTEP_MET
+PRTDT(:,:) = (ZVARS(:,:)-PRTM(:,:))/PTSTEP
 !
 
 IF (OMIXUV) THEN
@@ -246,14 +249,15 @@ DO JSV=1,ISV
   !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
   !
   CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PSVM(:,:,JSV),PFLXZSVMF(:,:,JSV),&
-                        -PEMF,PTSTEP_SV,PIMPL,PDZZ,PRHODJ,ZVARS )
+                        -PEMF,PTSTEP,PIMPL,PDZZ,PRHODJ,ZVARS )
   ! compute new flux
   PFLXZSVMF(:,:,JSV) = PEMF(:,:)*(PSV_UP(:,:,JSV)-MZM_MF(ZVARS, KKA, KKU, KKL))
 
   ! compute Sv tendency
-  PSVDT(:,:,JSV)= (ZVARS(:,:)-PSVM(:,:,JSV))/PTSTEP_SV
+  PSVDT(:,:,JSV)= (ZVARS(:,:)-PSVM(:,:,JSV))/PTSTEP
 
 ENDDO
 !
 IF (LHOOK) CALL DR_HOOK('MF_TURB',1,ZHOOK_HANDLE)
 END SUBROUTINE MF_TURB    
+END MODULE MODE_MF_TURB
diff --git a/src/common/turb/mf_turb_expl.F90 b/src/common/turb/mode_mf_turb_expl.F90
similarity index 99%
rename from src/common/turb/mf_turb_expl.F90
rename to src/common/turb/mode_mf_turb_expl.F90
index 304c5d363..2bff78e0a 100644
--- a/src/common/turb/mf_turb_expl.F90
+++ b/src/common/turb/mode_mf_turb_expl.F90
@@ -176,3 +176,4 @@ ENDIF
 
 IF (LHOOK) CALL DR_HOOK('MF_TURB_EXPL',1,ZHOOK_HANDLE)
 END SUBROUTINE MF_TURB_EXPL
+END MODULE MODE_MF_TURB_EXPL
diff --git a/src/mesonh/turb/mf_turb.f90 b/src/mesonh/turb/mf_turb.f90
deleted file mode 100644
index 2a96b713a..000000000
--- a/src/mesonh/turb/mf_turb.f90
+++ /dev/null
@@ -1,332 +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.
-!    ######################
-     MODULE MODI_MF_TURB
-!    ######################
-!
-INTERFACE
-!     #################################################################
-      SUBROUTINE MF_TURB(KKA,KKB,KKE,KKU,KKL,OMIXUV,                  &
-                ONOMIXLG,KSV_LGBEG,KSV_LGEND,                         &
-                PIMPL, PTSTEP,                                        &
-                PDZZ,                                                 &
-                PRHODJ,                                               &
-                PTHLM,PTHVM,PRTM,PUM,PVM,PSVM,                        &
-                PTHLDT,PRTDT,PUDT,PVDT,PSVDT,                         &
-                PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP,PSV_UP,       &
-                PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF,      &
-                PFLXZSVMF                                             )
-
-!     #################################################################
-!
-!               
-!*               1.1  Declaration of Arguments
-!
-!
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-
-LOGICAL,                INTENT(IN)   :: OMIXUV      ! True if mixing of momentum
-LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
-INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
-INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
-REAL,                   INTENT(IN)   :: PIMPL       ! degree of implicitness
-REAL,                 INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
-!
-REAL, DIMENSION(:,:), INTENT(IN)   :: PDZZ        ! metric coefficients
-
-REAL, DIMENSION(:,:), INTENT(IN)   ::  PRHODJ    ! dry density * Grid size
-
-!   Conservative var. at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHLM       ! conservative pot. temp.
-REAL, DIMENSION(:,:), INTENT(IN) ::  PRTM         ! water var.  where 
-!  Virtual potential temperature at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHVM 
-!  Momentum at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PUM
-REAL, DIMENSION(:,:), INTENT(IN) ::  PVM
-!  scalar variables at t-dt
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSVM
-!
-! Tendencies of conservative variables
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PTHLDT
-
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PRTDT 
-! Tendencies of momentum
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PUDT
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PVDT
-! Tendencies of scalar variables
-REAL, DIMENSION(:,:,:), INTENT(OUT) ::  PSVDT
-
-
-! Updraft characteritics
-REAL, DIMENSION(:,:), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSV_UP
-! Fluxes
-REAL, DIMENSION(:,:), INTENT(OUT)  ::  PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
-
-REAL, DIMENSION(:,:,:), INTENT(OUT)::  PFLXZSVMF
-
-END SUBROUTINE MF_TURB
-
-END INTERFACE
-!
-END MODULE MODI_MF_TURB
-
-                
-!     #################################################################
-      SUBROUTINE MF_TURB(KKA,KKB,KKE,KKU,KKL,OMIXUV,                  &
-                ONOMIXLG,KSV_LGBEG,KSV_LGEND,                         &
-                PIMPL, PTSTEP,                                        &
-                PDZZ,                                                 &
-                PRHODJ,                                               &
-                PTHLM,PTHVM,PRTM,PUM,PVM,PSVM,                        &
-                PTHLDT,PRTDT,PUDT,PVDT,PSVDT,                         &
-                PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP,PSV_UP,       &
-                PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF,      &
-                PFLXZSVMF                                             )
-
-!     #################################################################
-!
-!
-!!****  *MF_TURB* - computes the MF_turbulent source terms for the prognostic
-!!                  variables. 
-!!
-!!    PURPOSE
-!!    -------
-!!****  The purpose of this routine is to compute the source terms in 
-!!    the evolution equations due to the MF turbulent mixing. 
-!!      The source term is computed as the divergence of the turbulent fluxes.
-!
-!!**  METHOD
-!!    ------
-!!    
-!!
-!!    EXTERNAL
-!!    --------
-!!
-!!    IMPLICIT ARGUMENTS
-!!    ------------------
-!!
-!!
-!!    REFERENCE
-!!    ---------
-!!
-!!    AUTHOR
-!!    ------
-!!     
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!  10/2009     (C.Lac)        Introduction of different PTSTEP according to the
-!!                              advection schemes
-!!  09/2010     (V.Masson)     Optimization
-!!     S. Riette Jan 2012: support for both order of vertical levels
-!!                         suppression of useless initialisations
-!!
-!! --------------------------------------------------------------------------
-!       
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_PARAM_MFSHALL_n
-!
-USE MODI_SHUMAN_MF
-USE MODI_TRIDIAG_MASSFLUX
-!
-IMPLICIT NONE
-!
-!
-!*      0.1  declarations of arguments
-!
-!
-INTEGER,                INTENT(IN)   :: KKA          ! near ground array index
-INTEGER,                INTENT(IN)   :: KKB          ! near ground physical index
-INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
-INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-LOGICAL,                INTENT(IN)   :: OMIXUV      ! True if mixing of momentum
-LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
-INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
-INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
-REAL,                   INTENT(IN)   :: PIMPL       ! degree of implicitness
-REAL,                 INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
-!
-REAL, DIMENSION(:,:), INTENT(IN)   :: PDZZ        ! metric coefficients
-
-REAL, DIMENSION(:,:), INTENT(IN)   :: PRHODJ      ! dry density * Grid size
-
-!   Conservative var. at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHLM        ! conservative pot. temp.
-REAL, DIMENSION(:,:), INTENT(IN) ::  PRTM         ! water var.  where 
-!  Virtual potential temperature at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PTHVM 
-!  Momentum at t-dt
-REAL, DIMENSION(:,:), INTENT(IN) ::  PUM
-REAL, DIMENSION(:,:), INTENT(IN) ::  PVM
-!  scalar variables at t-dt
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSVM
-!
-! Tendencies of conservative variables
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PTHLDT
-
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PRTDT 
-! Tendencies of momentum
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PUDT
-REAL, DIMENSION(:,:),   INTENT(OUT) ::  PVDT
-! Tendencies of scalar variables
-REAL, DIMENSION(:,:,:), INTENT(OUT) ::  PSVDT
-
-
-! Updraft characteritics
-REAL, DIMENSION(:,:), INTENT(IN)   ::  PEMF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP
-REAL, DIMENSION(:,:,:), INTENT(IN) ::  PSV_UP
-! Fluxes
-REAL, DIMENSION(:,:), INTENT(OUT)  ::  PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF
-
-REAL, DIMENSION(:,:,:), INTENT(OUT)::  PFLXZSVMF
-!
-!
-!
-!-------------------------------------------------------------------------------
-!
-!       0.2  declaration of local variables
-!
-
-REAL, DIMENSION(SIZE(PTHLM,1),SIZE(PTHLM,2)) :: ZVARS
-
-!
-INTEGER :: ISV,JSV          !number of scalar variables and Loop counter
-!
-!----------------------------------------------------------------------------
-!
-!*      1.PRELIMINARIES
-!         -------------
-!
-!
-! number of scalar var
-ISV=SIZE(PSVM,3)
-
-!
-PFLXZSVMF = 0.
-PSVDT = 0.
-
-!
-!----------------------------------------------------------------------------
-!
-!*      2. COMPUTE THE MEAN FLUX OF CONSERVATIVE VARIABLES at time t-dt
-!          (equation (3) of Soares et al)
-!          + THE MEAN FLUX OF THETA_V (buoyancy flux)
-!          -----------------------------------------------
-!   ( Resulting fluxes are in flux level (w-point) as PEMF and PTHL_UP )
-!
-
-PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(KKA,KKU,KKL,PTHLM(:,:)))
-
-PFLXZRMF(:,:) =  PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(KKA,KKU,KKL,PRTM(:,:)))
-
-PFLXZTHVMF(:,:) = PEMF(:,:)*(PTHV_UP(:,:)-MZM_MF(KKA,KKU,KKL,PTHVM(:,:)))
-
-IF (OMIXUV) THEN
-  PFLXZUMF(:,:) =  PEMF(:,:)*(PU_UP(:,:)-MZM_MF(KKA,KKU,KKL,PUM(:,:)))
-  PFLXZVMF(:,:) =  PEMF(:,:)*(PV_UP(:,:)-MZM_MF(KKA,KKU,KKL,PVM(:,:)))
-ELSE
-  PFLXZUMF(:,:) = 0.
-  PFLXZVMF(:,:) = 0.
-ENDIF
-!
-!
-!----------------------------------------------------------------------------
-!
-!*      3. COMPUTE TENDENCIES OF CONSERVATIVE VARIABLES (or treated as such...)
-!          (implicit formulation)
-!          --------------------------------------------
-!
-
-!
-!
-! 3.1 Compute the tendency for the conservative potential temperature
-!     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
-!
-CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PTHLM,PFLXZTHMF,-PEMF,PTSTEP,PIMPL,  &
-                      PDZZ,PRHODJ,ZVARS )
-! compute new flux
-PFLXZTHMF(:,:) = PEMF(:,:)*(PTHL_UP(:,:)-MZM_MF(KKA,KKU,KKL,ZVARS(:,:)))
-
-!!! compute THL tendency
-!
-PTHLDT(:,:)= (ZVARS(:,:)-PTHLM(:,:))/PTSTEP
-
-!
-! 3.2 Compute the tendency for the conservative mixing ratio
-!
-CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PRTM(:,:),PFLXZRMF,-PEMF,PTSTEP,PIMPL,  &
-                                 PDZZ,PRHODJ,ZVARS )
-! compute new flux
-PFLXZRMF(:,:) =  PEMF(:,:)*(PRT_UP(:,:)-MZM_MF(KKA,KKU,KKL,ZVARS(:,:)))
-
-!!! compute RT tendency
-PRTDT(:,:) = (ZVARS(:,:)-PRTM(:,:))/PTSTEP
-!
-
-IF (OMIXUV) THEN
-  !
-  ! 3.3 Compute the tendency for the (non conservative but treated as it) zonal momentum
-  !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
-  !
-
-  CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PUM,PFLXZUMF,-PEMF,PTSTEP,PIMPL,  &
-                                 PDZZ,PRHODJ,ZVARS )
-  ! compute new flux
-  PFLXZUMF(:,:) = PEMF(:,:)*(PU_UP(:,:)-MZM_MF(KKA,KKU,KKL,ZVARS(:,:)))
-
-  ! compute U tendency
-  PUDT(:,:)= (ZVARS(:,:)-PUM(:,:))/PTSTEP
-
-  !
-  !
-  ! 3.4 Compute the tendency for the (non conservative but treated as it for the time beiing)
-  !                                  meridian momentum
-  !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
-  !
-  CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PVM,PFLXZVMF,-PEMF,PTSTEP,PIMPL,  &
-                                 PDZZ,PRHODJ,ZVARS )
-  ! compute new flux
-  PFLXZVMF(:,:) = PEMF(:,:)*(PV_UP(:,:)-MZM_MF(KKA,KKU,KKL,ZVARS(:,:)))
-
-  ! compute V tendency
-  PVDT(:,:)= (ZVARS(:,:)-PVM(:,:))/PTSTEP
-ELSE
-  PUDT(:,:)=0.
-  PVDT(:,:)=0.
-ENDIF
-
-DO JSV=1,ISV 
-
-  IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE
-  
-  !*     compute mean flux of scalar variables at time t-dt
-  !   ( Resulting fluxes are in flux level (w-point) as PEMF and PTHL_UP )
-
-  PFLXZSVMF(:,:,JSV) = PEMF(:,:)*(PSV_UP(:,:,JSV)-MZM_MF(KKA,KKU,KKL,PSVM(:,:,JSV)))
-  
-  !
-  ! 3.5 Compute the tendency for scalar variables
-  !     (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
-  !
-  CALL TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PSVM(:,:,JSV),PFLXZSVMF(:,:,JSV),&
-                        -PEMF,PTSTEP,PIMPL,PDZZ,PRHODJ,ZVARS )
-  ! compute new flux
-  PFLXZSVMF(:,:,JSV) = PEMF(:,:)*(PSV_UP(:,:,JSV)-MZM_MF(KKA,KKU,KKL,ZVARS))
-
-  ! compute Sv tendency
-  PSVDT(:,:,JSV)= (ZVARS(:,:)-PSVM(:,:,JSV))/PTSTEP
-
-ENDDO
-!
-END SUBROUTINE MF_TURB    
diff --git a/src/mesonh/turb/shallow_mf.f90 b/src/mesonh/turb/shallow_mf.f90
index b005921d7..bca44f4cb 100644
--- a/src/mesonh/turb/shallow_mf.f90
+++ b/src/mesonh/turb/shallow_mf.f90
@@ -184,8 +184,8 @@ USE MODI_THL_RT_FROM_TH_R_MF
 USE MODI_COMPUTE_UPDRAFT
 USE MODI_COMPUTE_UPDRAFT_RHCJ10
 USE MODI_COMPUTE_UPDRAFT_RAHA
-USE MODI_MF_TURB
-USE MODI_MF_TURB_EXPL
+USE MODE_MF_TURB, ONLY: MF_TURB
+USE MODE_MF_TURB_EXPL, ONLY: MF_TURB_EXPL
 USE MODI_MF_TURB_GREYZONE
 USE MODE_COMPUTE_MF_CLOUD, ONLY: COMPUTE_MF_CLOUD
 USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE
-- 
GitLab