diff --git a/src/arome/turb/mf_turb.F90 b/src/arome/turb/mf_turb.F90
index ee1e2cbf2b3be24d91653abc9987bbd08d6dfc50..3869d3bb0dd881143b0e750bf17f313fb003f7c2 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 5914828c395aa3015357c77808cbda3fcdf54086..0000000000000000000000000000000000000000
--- 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 c37f96f34073a05b18e3afe6f12245b9d6d4fd70..0000000000000000000000000000000000000000
--- 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 f04637f9f9dd2f8af39fe522c586a081addbc4ed..0000000000000000000000000000000000000000
--- 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 1e6a223e9419519a53a1c768b6825536ace5c4f0..0000000000000000000000000000000000000000
--- 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 e0b5240fb408773f0c03411f0c4ad72290354070..0000000000000000000000000000000000000000
--- 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 9398d9fb66015625cd42781b46a0ff95df26b0c0..0000000000000000000000000000000000000000
--- 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 87fb9c3e874a0606ece3d4aa2f439c3560033afa..0000000000000000000000000000000000000000
--- 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 d266707a42c52b45afcf2f04ddfca6fdf3c6e506..2f31473d774a9b4cb9aa380c8a67e63cd7405acd 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 22bf99d25a03c27acd88ce1a3d9d0d649b6bcac8..903ea792e01c5f456289a0c283f6e24c76400a41 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 3162f5149e9d44cfe2d0e8868995881c044f1210..7d32fdd62d070d1f0d9cc796b315490f32c8d4cd 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 ee28bf7bb4be4dc87ca84be8d09bc696ca498496..82b2ec2b08172cb21bf53a27f11c9b12e1be6abe 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 401018cc0fed6cac3161e06224461d7c1ea8ea99..915d75b936fd4131452da4cf5c7e41a9922390f5 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 7d20b2fa1e633d84dafcb24479c3c46a808d575a..5488c69f08941147fe0cafded7870f16aac0e796 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 aaba12157838120e2c95cc5fbb845e53f9185e55..52ec08bdfbcec157530255aa9593f16e2ee02383 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 1f074af2b701023336eadeec436711fecb45f791..65fd7256e14f7cf242917b450ff723d4d9e942d9 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 b4e25e766dc3d99a601f39c39bd2d1612e709bfc..26d1ba9138550bd50e618c1e5f85c148de67dc8c 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 41516708838d42b6a2bfd2851c00d66f6f17ebb7..6fdbba5c3f46700856f79ee23f60923d99b19c5e 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 3d420f3936d33e208d20b38c8e15974356c54d1d..add00cbc36ffdcb7fe50b81251e624b90e01710c 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 7b7b6a4d42973c39fa4168a2f241554811658d93..ce4391f432da1184612f96732640611105498825 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 66b6b86f4804a50f8e00e76ba3c93a76b4b98989..c33809ed69adcf26082d57b1cf3b2b19960b9f35 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