From 70397e27564e85b459ded184484e7ab7ba935bf7 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Fri, 21 Jan 2022 16:33:44 +0100
Subject: [PATCH] Quentin 21/01/2022: mv routines to mode (tridiag* and tm06*)

---
 src/arome/turb/mf_turb.F90                    |  2 +-
 src/arome/turb/modi_tm06.F90                  | 25 -----------------
 src/arome/turb/modi_tm06_h.F90                | 24 ----------------
 src/arome/turb/modi_tridiag.F90               | 25 -----------------
 src/arome/turb/modi_tridiag_massflux.F90      | 28 -------------------
 src/arome/turb/modi_tridiag_thermo.F90        | 26 -----------------
 src/arome/turb/modi_tridiag_tke.F90           | 27 ------------------
 src/arome/turb/modi_tridiag_wind.F90          | 27 ------------------
 src/common/turb/mode_tke_eps_sources.F90      |  2 +-
 src/common/turb/{tm06.F90 => mode_tm06.F90}   |  7 +++--
 .../turb/{tm06_h.F90 => mode_tm06_h.F90}      |  7 +++--
 .../turb/{tridiag.F90 => mode_tridiag.F90}    |  7 +++--
 ...massflux.F90 => mode_tridiag_massflux.F90} |  7 +++--
 ...iag_thermo.F90 => mode_tridiag_thermo.F90} |  7 +++--
 .../{tridiag_tke.F90 => mode_tridiag_tke.F90} |  7 +++--
 ...tridiag_wind.F90 => mode_tridiag_wind.F90} |  7 +++--
 src/common/turb/mode_turb_ver_dyn_flux.F90    | 14 +++-------
 src/common/turb/mode_turb_ver_sv_flux.F90     |  3 +-
 src/common/turb/mode_turb_ver_thermo_corr.F90 |  8 ------
 src/common/turb/mode_turb_ver_thermo_flux.F90 |  6 ++--
 src/common/turb/turb.F90                      |  2 +-
 21 files changed, 46 insertions(+), 222 deletions(-)
 delete mode 100644 src/arome/turb/modi_tm06.F90
 delete mode 100644 src/arome/turb/modi_tm06_h.F90
 delete mode 100644 src/arome/turb/modi_tridiag.F90
 delete mode 100644 src/arome/turb/modi_tridiag_massflux.F90
 delete mode 100644 src/arome/turb/modi_tridiag_thermo.F90
 delete mode 100644 src/arome/turb/modi_tridiag_tke.F90
 delete mode 100644 src/arome/turb/modi_tridiag_wind.F90
 rename src/common/turb/{tm06.F90 => mode_tm06.F90} (96%)
 rename src/common/turb/{tm06_h.F90 => mode_tm06_h.F90} (96%)
 rename src/common/turb/{tridiag.F90 => mode_tridiag.F90} (98%)
 rename src/common/turb/{tridiag_massflux.F90 => mode_tridiag_massflux.F90} (98%)
 rename src/common/turb/{tridiag_thermo.F90 => mode_tridiag_thermo.F90} (98%)
 rename src/common/turb/{tridiag_tke.F90 => mode_tridiag_tke.F90} (98%)
 rename src/common/turb/{tridiag_wind.F90 => mode_tridiag_wind.F90} (98%)

diff --git a/src/arome/turb/mf_turb.F90 b/src/arome/turb/mf_turb.F90
index ee1e2cbf2..3869d3bb0 100644
--- a/src/arome/turb/mf_turb.F90
+++ b/src/arome/turb/mf_turb.F90
@@ -59,7 +59,7 @@
 USE MODD_CMFSHALL
 !
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
-USE MODI_TRIDIAG_MASSFLUX
+USE MODE_TRIDIAG_MASSFLUX, ONLY: TRIDIAG_MASSFLUX
 !
 IMPLICIT NONE
 !
diff --git a/src/arome/turb/modi_tm06.F90 b/src/arome/turb/modi_tm06.F90
deleted file mode 100644
index 5914828c3..000000000
--- a/src/arome/turb/modi_tm06.F90
+++ /dev/null
@@ -1,25 +0,0 @@
-!     ######spl
-     MODULE MODI_TM06  
-!    ################ 
-!
-INTERFACE
-!
-      SUBROUTINE TM06(KKA,KKU,KKL,PTHVREF,PBL_DEPTH,PZZ,PSFTH,PMWTH,PMTH2)
-!
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
-INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=ARO
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHVREF    ! reference potential temperature
-REAL, DIMENSION(:,:),   INTENT(IN) :: PBL_DEPTH ! boundary layer height
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ        ! altitude of flux levels
-REAL, DIMENSION(:,:),   INTENT(IN) :: PSFTH      ! surface heat flux
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PMWTH      ! w'2th'
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PMTH2      ! w'th'2
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE TM06
-!
-END INTERFACE
-!
-END MODULE MODI_TM06
diff --git a/src/arome/turb/modi_tm06_h.F90 b/src/arome/turb/modi_tm06_h.F90
deleted file mode 100644
index c37f96f34..000000000
--- a/src/arome/turb/modi_tm06_h.F90
+++ /dev/null
@@ -1,24 +0,0 @@
-!     ######spl
-     MODULE MODI_TM06_H  
-!    ################ 
-!
-INTERFACE
-!
-      SUBROUTINE TM06_H(KKB,KKTB,KKTE,PTSTEP,PZZ,PFLXZ,PBL_DEPTH)
-!
-INTEGER,                INTENT(IN)    :: KKB       ! index of 1st physical level
-                                                   ! close to ground 
-INTEGER,                INTENT(IN)    :: KKTB      ! first physical level in k
-INTEGER,                INTENT(IN)    :: KKTE      ! last physical level in k
-REAL,                   INTENT(IN)    :: PTSTEP    ! Double time step
-REAL, DIMENSION(:,:,:), INTENT(IN)    :: PZZ       ! altitude of flux levels
-REAL, DIMENSION(:,:,:), INTENT(IN)    :: PFLXZ     ! heat flux
-REAL, DIMENSION(:,:),   INTENT(INOUT) :: PBL_DEPTH ! boundary layer height
-!
-!-------------------------------------------------------------------------------
-!
-END SUBROUTINE TM06_H
-!
-END INTERFACE
-!
-END MODULE MODI_TM06_H
diff --git a/src/arome/turb/modi_tridiag.F90 b/src/arome/turb/modi_tridiag.F90
deleted file mode 100644
index f04637f9f..000000000
--- a/src/arome/turb/modi_tridiag.F90
+++ /dev/null
@@ -1,25 +0,0 @@
-!     ######spl
-      MODULE MODI_TRIDIAG
-!     ###################
-INTERFACE
-!
-       SUBROUTINE TRIDIAG(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
-                                  PRHODJ,PSOURCE,PVARP )
-!
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
-INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=AR
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PVARM       ! variable at t-1  
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PA          ! upper diag. elements
-REAL,                      INTENT(IN)  :: PTSTEP      ! Double time step
-REAL,                      INTENT(IN)  :: PEXPL,PIMPL ! weights of the temporal scheme
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PRHODJ      ! (dry rho)*J
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PSOURCE     ! source term of PVAR    
-!
-REAL, DIMENSION(:,:,:),    INTENT(OUT) :: PVARP       ! variable at t+1        
-!
-END SUBROUTINE TRIDIAG
-!
-END INTERFACE
-!
-END MODULE MODI_TRIDIAG 
diff --git a/src/arome/turb/modi_tridiag_massflux.F90 b/src/arome/turb/modi_tridiag_massflux.F90
deleted file mode 100644
index 1e6a223e9..000000000
--- a/src/arome/turb/modi_tridiag_massflux.F90
+++ /dev/null
@@ -1,28 +0,0 @@
-!     ######spl
-      MODULE MODI_TRIDIAG_MASSFLUX
-!     ###################
-INTERFACE
-!
-       SUBROUTINE TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PVARM,PF,PDFDT,PTSTEP,PIMPL,  &
-                                 PDZZ,PRHODJ,PVARP             )
-!
-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
-REAL, DIMENSION(:,:), INTENT(IN) :: PVARM   ! variable at t-1      at mass point
-REAL, DIMENSION(:,:), INTENT(IN) :: PF      ! flux in dT/dt=-dF/dz at flux point
-REAL, DIMENSION(:,:), INTENT(IN) :: PDFDT   ! dF/dT                at flux point
-REAL,                   INTENT(IN) :: PTSTEP  ! Double time step
-REAL,                   INTENT(IN) :: PIMPL   ! implicit weight
-REAL, DIMENSION(:,:), INTENT(IN) :: PDZZ    ! Dz                   at flux point
-REAL, DIMENSION(:,:), INTENT(IN) :: PRHODJ  ! (dry rho)*J          at mass point
-!
-REAL, DIMENSION(:,:), INTENT(OUT):: PVARP   ! variable at t+1      at mass point
-!
-END SUBROUTINE TRIDIAG_MASSFLUX
-!
-END INTERFACE
-!
-END MODULE MODI_TRIDIAG_MASSFLUX 
diff --git a/src/arome/turb/modi_tridiag_thermo.F90 b/src/arome/turb/modi_tridiag_thermo.F90
deleted file mode 100644
index e0b5240fb..000000000
--- a/src/arome/turb/modi_tridiag_thermo.F90
+++ /dev/null
@@ -1,26 +0,0 @@
-!     ######spl
-      MODULE MODI_TRIDIAG_THERMO
-!     ###################
-INTERFACE
-!
-       SUBROUTINE TRIDIAG_THERMO(KKA,KKU,KKL,PVARM,PF,PDFDDTDZ,PTSTEP,PIMPL,  &
-                                 PDZZ,PRHODJ,PVARP             )
-!
-INTEGER,                INTENT(IN)   :: KKA           !near ground array index  
-INTEGER,                INTENT(IN)   :: KKU           !uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=AR
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PVARM   ! variable at t-1      at mass point
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PF      ! flux in dT/dt=-dF/dz at flux point
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PDFDDTDZ! dF/d(dT/dz)          at flux point
-REAL,                   INTENT(IN) :: PTSTEP  ! Double time step
-REAL,                   INTENT(IN) :: PIMPL   ! implicit weight
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ    ! Dz                   at flux point
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ  ! (dry rho)*J          at mass point
-!
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PVARP   ! variable at t+1      at mass point
-!
-END SUBROUTINE TRIDIAG_THERMO
-!
-END INTERFACE
-!
-END MODULE MODI_TRIDIAG_THERMO 
diff --git a/src/arome/turb/modi_tridiag_tke.F90 b/src/arome/turb/modi_tridiag_tke.F90
deleted file mode 100644
index 9398d9fb6..000000000
--- a/src/arome/turb/modi_tridiag_tke.F90
+++ /dev/null
@@ -1,27 +0,0 @@
-!     ######spl
-      MODULE MODI_TRIDIAG_TKE
-!     ##########################
-INTERFACE
-!
-       SUBROUTINE TRIDIAG_TKE(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
-                                  PRHODJ,PSOURCE,PDIAG,PVARP )
-!
-INTEGER,                INTENT(IN)   :: KKA     !near ground array index  
-INTEGER,                INTENT(IN)   :: KKU     !uppest atmosphere array index
-INTEGER,                INTENT(IN)   :: KKL     !vert. levels type 1=MNH -1=ARO
-REAL, DIMENSION(:,:,:), INTENT(IN)  :: PVARM       ! variable at t-1  
-REAL, DIMENSION(:,:,:), INTENT(IN)  :: PA          ! upper diag. elements
-REAL,                   INTENT(IN)  :: PTSTEP      ! Double time step
-REAL,                   INTENT(IN)  :: PEXPL,PIMPL ! weights of the temporal scheme
-REAL, DIMENSION(:,:,:), INTENT(IN)  :: PRHODJ      ! (dry rho)*J
-REAL, DIMENSION(:,:,:), INTENT(IN)  :: PSOURCE     ! source term of PVAR    
-REAL, DIMENSION(:,:,:), INTENT(IN)  :: PDIAG       ! diagonal term linked to
-                                                      ! the implicit dissipation
-!
-REAL, DIMENSION(:,:,:), INTENT(OUT) :: PVARP       ! variable at t+1        
-!
-END SUBROUTINE TRIDIAG_TKE
-!
-END INTERFACE
-!
-END MODULE MODI_TRIDIAG_TKE
diff --git a/src/arome/turb/modi_tridiag_wind.F90 b/src/arome/turb/modi_tridiag_wind.F90
deleted file mode 100644
index 87fb9c3e8..000000000
--- a/src/arome/turb/modi_tridiag_wind.F90
+++ /dev/null
@@ -1,27 +0,0 @@
-!     ######spl
-      MODULE MODI_TRIDIAG_WIND
-!     ########################
-INTERFACE
-!
-       SUBROUTINE TRIDIAG_WIND(KKA,KKU,KKL,PVARM,PA,PCOEFS,PTSTEP,PEXPL,PIMPL, &
-                                             PRHODJA,PSOURCE,PVARP )
-!
-INTEGER,                  INTENT(IN)   :: KKA           !near ground array index  
-INTEGER,                  INTENT(IN)   :: KKU           !uppest atmosphere array index
-INTEGER,                  INTENT(IN)   :: KKL           !vert. levels type 1=MNH -1=AR
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PVARM       ! variable at t-1  
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PA          ! upper diag. elements
-REAL, DIMENSION(:,:),      INTENT(IN)  :: PCOEFS      ! implicit coeff for the
-                                                      ! surface flux
-REAL,                      INTENT(IN)  :: PTSTEP      ! Double time step
-REAL,                      INTENT(IN)  :: PEXPL,PIMPL ! weights of the temporal scheme
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PRHODJA     ! (dry rho)*J averaged
-REAL, DIMENSION(:,:,:),    INTENT(IN)  :: PSOURCE     ! source term of PVAR    
-!
-REAL, DIMENSION(:,:,:),    INTENT(OUT) :: PVARP       ! variable at t+1        
-!
-END SUBROUTINE TRIDIAG_WIND
-!
-END INTERFACE
-!
-END MODULE MODI_TRIDIAG_WIND
diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90
index d266707a4..2f31473d7 100644
--- a/src/common/turb/mode_tke_eps_sources.F90
+++ b/src/common/turb/mode_tke_eps_sources.F90
@@ -150,7 +150,7 @@ USE MODI_GRADIENT_U
 USE MODI_GRADIENT_V
 USE MODI_GRADIENT_W
 USE MODI_LES_MEAN_SUBGRID
-USE MODI_TRIDIAG_TKE
+USE MODE_TRIDIAG_TKE, ONLY: TRIDIAG_TKE
 USE MODI_SHUMAN , ONLY : DZM, DZF, MZM, MZF
 !
 !
diff --git a/src/common/turb/tm06.F90 b/src/common/turb/mode_tm06.F90
similarity index 96%
rename from src/common/turb/tm06.F90
rename to src/common/turb/mode_tm06.F90
index 22bf99d25..903ea792e 100644
--- a/src/common/turb/tm06.F90
+++ b/src/common/turb/mode_tm06.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-      SUBROUTINE TM06(KKA,KKU,KKL,PTHVREF,PBL_DEPTH,PZZ,PSFTH,PMWTH,PMTH2)
+MODULE MODE_TM06
+IMPLICIT NONE
+CONTAINS
+SUBROUTINE TM06(KKA,KKU,KKL,PTHVREF,PBL_DEPTH,PZZ,PSFTH,PMWTH,PMTH2)
       USE PARKIND1, ONLY : JPRB
       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !     #################################################################
@@ -136,3 +138,4 @@ PMWTH(:,:,KKU) = PMWTH(:,:,KKU) * ZWSTAR(:,:)**2*ZTSTAR(:,:)
 !----------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('TM06',1,ZHOOK_HANDLE)
 END SUBROUTINE TM06
+END MODULE MODE_TM06
diff --git a/src/common/turb/tm06_h.F90 b/src/common/turb/mode_tm06_h.F90
similarity index 96%
rename from src/common/turb/tm06_h.F90
rename to src/common/turb/mode_tm06_h.F90
index 3162f5149..7d32fdd62 100644
--- a/src/common/turb/tm06_h.F90
+++ b/src/common/turb/mode_tm06_h.F90
@@ -2,8 +2,10 @@
 !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
-!     ######spl
-      SUBROUTINE TM06_H(KKB,KKTB,KKTE,PTSTEP,PZZ,PFLXZ,PBL_DEPTH)
+MODULE MODE_TM06_H
+IMPLICIT NONE
+CONTAINS
+SUBROUTINE TM06_H(KKB,KKTB,KKTE,PTSTEP,PZZ,PFLXZ,PBL_DEPTH)
       USE PARKIND1, ONLY : JPRB
       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !     #################################################################
@@ -96,3 +98,4 @@ WHERE(PBL_DEPTH(:,:)/=XUNDEF) PBL_DEPTH(:,:)=MIN(PBL_DEPTH(:,:),ZBL_DEPTH(:,:)+Z
 !----------------------------------------------------------------------------
 IF (LHOOK) CALL DR_HOOK('TM06_H',1,ZHOOK_HANDLE)
 END SUBROUTINE TM06_H
+END MODULE MODE_TM06_H
diff --git a/src/common/turb/tridiag.F90 b/src/common/turb/mode_tridiag.F90
similarity index 98%
rename from src/common/turb/tridiag.F90
rename to src/common/turb/mode_tridiag.F90
index ee28bf7bb..82b2ec2b0 100644
--- a/src/common/turb/tridiag.F90
+++ b/src/common/turb/mode_tridiag.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-       SUBROUTINE TRIDIAG(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
+MODULE MODE_TRIDIAG
+IMPLICIT NONE
+CONTAINS
+SUBROUTINE TRIDIAG(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
                                   PRHODJ,PSOURCE,PVARP )
        USE PARKIND1, ONLY : JPRB
        USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -230,3 +232,4 @@ PVARP(:,:,KKU)=PVARP(:,:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('TRIDIAG',1,ZHOOK_HANDLE)
 END SUBROUTINE TRIDIAG
+END MODULE MODE_TRIDIAG
diff --git a/src/common/turb/tridiag_massflux.F90 b/src/common/turb/mode_tridiag_massflux.F90
similarity index 98%
rename from src/common/turb/tridiag_massflux.F90
rename to src/common/turb/mode_tridiag_massflux.F90
index 401018cc0..915d75b93 100644
--- a/src/common/turb/tridiag_massflux.F90
+++ b/src/common/turb/mode_tridiag_massflux.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-       SUBROUTINE TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PVARM,PF,PDFDT,PTSTEP,PIMPL,  &
+MODULE MODE_TRIDIAG_MASSFLUX
+IMPLICIT NONE
+CONTAINS
+SUBROUTINE TRIDIAG_MASSFLUX(KKA,KKB,KKE,KKU,KKL,PVARM,PF,PDFDT,PTSTEP,PIMPL,  &
                                  PDZZ,PRHODJ,PVARP             )
 
        USE PARKIND1, ONLY : JPRB
@@ -275,3 +277,4 @@ PVARP(:,KKU)=PVARP(:,KKE)
 !
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_MASSFLUX',1,ZHOOK_HANDLE)
 END SUBROUTINE TRIDIAG_MASSFLUX
+END MODULE MODE_TRIDIAG_MASSFLUX
diff --git a/src/common/turb/tridiag_thermo.F90 b/src/common/turb/mode_tridiag_thermo.F90
similarity index 98%
rename from src/common/turb/tridiag_thermo.F90
rename to src/common/turb/mode_tridiag_thermo.F90
index 7d20b2fa1..5488c69f0 100644
--- a/src/common/turb/tridiag_thermo.F90
+++ b/src/common/turb/mode_tridiag_thermo.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-       SUBROUTINE TRIDIAG_THERMO(KKA,KKU,KKL,PVARM,PF,PDFDDTDZ,PTSTEP,PIMPL,  &
+MODULE MODE_TRIDIAG_THERMO
+IMPLICIT NONE
+CONTAINS       
+SUBROUTINE TRIDIAG_THERMO(KKA,KKU,KKL,PVARM,PF,PDFDDTDZ,PTSTEP,PIMPL,  &
                                  PDZZ,PRHODJ,PVARP             )
        USE PARKIND1, ONLY : JPRB
        USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -269,3 +271,4 @@ PVARP(:,:,KKU)=PVARP(:,:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_THERMO',1,ZHOOK_HANDLE)
 END SUBROUTINE TRIDIAG_THERMO
+END MODULE MODE_TRIDIAG_THERMO
diff --git a/src/common/turb/tridiag_tke.F90 b/src/common/turb/mode_tridiag_tke.F90
similarity index 98%
rename from src/common/turb/tridiag_tke.F90
rename to src/common/turb/mode_tridiag_tke.F90
index aaba12157..52ec08bdf 100644
--- a/src/common/turb/tridiag_tke.F90
+++ b/src/common/turb/mode_tridiag_tke.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-       SUBROUTINE TRIDIAG_TKE(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
+MODULE MODE_TRIDIAG_TKE
+IMPLICIT NONE
+CONTAINS       
+SUBROUTINE TRIDIAG_TKE(KKA,KKU,KKL,PVARM,PA,PTSTEP,PEXPL,PIMPL, &
                                   PRHODJ,PSOURCE,PDIAG,PVARP )
        USE PARKIND1, ONLY : JPRB
        USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -233,3 +235,4 @@ PVARP(:,:,KKU)=PVARP(:,:,IKE)
 !
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_TKE',1,ZHOOK_HANDLE)
 END SUBROUTINE TRIDIAG_TKE
+END MODULE MODE_TRIDIAG_TKE
diff --git a/src/common/turb/tridiag_wind.F90 b/src/common/turb/mode_tridiag_wind.F90
similarity index 98%
rename from src/common/turb/tridiag_wind.F90
rename to src/common/turb/mode_tridiag_wind.F90
index 1f074af2b..65fd7256e 100644
--- a/src/common/turb/tridiag_wind.F90
+++ b/src/common/turb/mode_tridiag_wind.F90
@@ -2,8 +2,10 @@
 !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.
-!     ######spl
-       SUBROUTINE TRIDIAG_WIND(KKA,KKU,KKL,PVARM,PA,PCOEFS,PTSTEP,PEXPL,PIMPL, &
+MODULE MODE_TRIDIAG_WIND
+IMPLICIT NONE
+CONTAINS       
+SUBROUTINE TRIDIAG_WIND(KKA,KKU,KKL,PVARM,PA,PCOEFS,PTSTEP,PEXPL,PIMPL, &
                                              PRHODJA,PSOURCE,PVARP )
        USE PARKIND1, ONLY : JPRB
        USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -234,3 +236,4 @@ PVARP(:,:,KKU)=PVARP(:,:,IKE)
 ! 
 IF (LHOOK) CALL DR_HOOK('TRIDIAG_WIND',1,ZHOOK_HANDLE)
 END SUBROUTINE TRIDIAG_WIND
+END MODULE MODE_TRIDIAG_WIND
diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90
index b4e25e766..26d1ba913 100644
--- a/src/common/turb/mode_turb_ver_dyn_flux.F90
+++ b/src/common/turb/mode_turb_ver_dyn_flux.F90
@@ -115,9 +115,6 @@ SUBROUTINE TURB_VER_DYN_FLUX(KKA,KKU,KKL,                     &
 !!      DXF,DYF,DZF,DZM
 !!                             :  Shuman functions (difference operators)     
 !!                               
-!!      SUBROUTINE TRIDIAG     : to compute the split implicit evolution
-!!                               of a variable located at a mass point
-!!
 !!      SUBROUTINE TRIDIAG_WIND: to compute the split implicit evolution
 !!                               of a variable located at a wind point
 !!
@@ -230,8 +227,7 @@ USE MODI_GRADIENT_M
 USE MODI_SECOND_MNH
 USE MODI_SHUMAN , ONLY: MZM, MZF, MXM, MXF, MYM, MYF,&
                       & DZM, DXF, DXM, DYF, DYM
-USE MODI_TRIDIAG 
-USE MODI_TRIDIAG_WIND 
+USE MODE_TRIDIAG_WIND, ONLY: TRIDIAG_WIND
 USE MODI_LES_MEAN_SUBGRID
 !
 USE MODE_IO_FIELD_WRITE, only: IO_Field_write
@@ -335,12 +331,12 @@ TYPE(TFIELDDATA) :: TZFIELD
 !
 !*       1.   PRELIMINARIES
 !             -------------
-ZA=XUNDEF
-PDP=XUNDEF
-!
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 IF (LHOOK) CALL DR_HOOK('TURB_VER_DYN_FLUX',0,ZHOOK_HANDLE)
 !
+ZA=XUNDEF
+PDP=XUNDEF
+!
 IIU=SIZE(PUM,1)
 IJU=SIZE(PUM,2)
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE,IIU,IJU)
@@ -351,8 +347,6 @@ IKE=KKU-JPVEXT_TURB*KKL
 IKT=SIZE(PUM,3)          
 IKTB=1+JPVEXT_TURB              
 IKTE=IKT-JPVEXT_TURB
-
-
 !
 ZSOURCE = 0.
 ZFLXZ   = 0.
diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90
index 415167088..6fdbba5c3 100644
--- a/src/common/turb/mode_turb_ver_sv_flux.F90
+++ b/src/common/turb/mode_turb_ver_sv_flux.F90
@@ -226,8 +226,7 @@ USE MODI_GRADIENT_V
 USE MODI_GRADIENT_W
 USE MODI_GRADIENT_M
 USE MODI_SHUMAN , ONLY : DZM, MZM, MZF
-USE MODI_TRIDIAG 
-USE MODI_TRIDIAG_WIND 
+USE MODE_TRIDIAG, ONLY: TRIDIAG
 USE MODI_EMOIST
 USE MODI_ETHETA
 USE MODI_LES_MEAN_SUBGRID
diff --git a/src/common/turb/mode_turb_ver_thermo_corr.F90 b/src/common/turb/mode_turb_ver_thermo_corr.F90
index 3d420f393..add00cbc3 100644
--- a/src/common/turb/mode_turb_ver_thermo_corr.F90
+++ b/src/common/turb/mode_turb_ver_thermo_corr.F90
@@ -117,12 +117,6 @@ SUBROUTINE TURB_VER_THERMO_CORR(KKA,KKU,KKL,KRR,KRRL,KRRI,    &
 !!      DXF,DYF,DZF,DZM
 !!                             :  Shuman functions (difference operators)     
 !!                               
-!!      SUBROUTINE TRIDIAG     : to compute the split implicit evolution
-!!                               of a variable located at a mass point
-!!
-!!      SUBROUTINE TRIDIAG_WIND: to compute the split implicit evolution
-!!                               of a variable located at a wind point
-!!
 !!      FUNCTIONs ETHETA and EMOIST  :  
 !!            allows to compute:
 !!            - the coefficients for the turbulent correlation between
@@ -223,9 +217,7 @@ USE MODI_GRADIENT_V
 USE MODI_GRADIENT_W
 USE MODI_GRADIENT_M
 USE MODI_SHUMAN , ONLY : DZM, MZM, MZF
-USE MODI_TRIDIAG 
 USE MODI_LES_MEAN_SUBGRID
-USE MODI_TRIDIAG_THERMO
 !
 USE MODE_IO_FIELD_WRITE, only: IO_Field_write
 USE MODE_PRANDTL
diff --git a/src/common/turb/mode_turb_ver_thermo_flux.F90 b/src/common/turb/mode_turb_ver_thermo_flux.F90
index 7b7b6a4d4..ce4391f43 100644
--- a/src/common/turb/mode_turb_ver_thermo_flux.F90
+++ b/src/common/turb/mode_turb_ver_thermo_flux.F90
@@ -250,10 +250,10 @@ USE MODI_GRADIENT_V
 USE MODI_GRADIENT_W
 USE MODI_GRADIENT_M
 USE MODI_SHUMAN , ONLY : DZF, DZM, MZF, MZM, MYF, MXF
-USE MODI_TRIDIAG 
+USE MODE_TRIDIAG, ONLY: TRIDIAG
 USE MODI_LES_MEAN_SUBGRID
-USE MODI_TRIDIAG_THERMO
-USE MODI_TM06_H
+USE MODE_TRIDIAG_THERMO, ONLY: TRIDIAG_THERMO
+USE MODE_TM06_H, ONLY: TM06_H
 !
 USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
 USE MODE_PRANDTL
diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90
index 66b6b86f4..c33809ed6 100644
--- a/src/common/turb/turb.F90
+++ b/src/common/turb/turb.F90
@@ -241,7 +241,7 @@ USE MODI_BUDGET_DDH
 USE MODI_LES_MEAN_SUBGRID
 USE MODI_RMC01
 USE MODI_GRADIENT_W
-USE MODI_TM06
+USE MODE_TM06, ONLY: TM06
 USE MODI_UPDATE_LM
 !
 USE MODE_SBL
-- 
GitLab