From d8b156a118383a4c1477415d10a8de2b8b0f14f7 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Mon, 24 Jan 2022 14:23:13 +0100
Subject: [PATCH] Quentin 24/01/2022: Merge AROME-MNH ->COMMON bl_depth_diag +
 th_r_from_thl_rt + thl_rt_from_th_r_mf The interface of BL_DEPTH_DIAG was
 merged into MODULE PROCEDURE

---
 src/arome/gmkpack_ignored_files               |  6 +++
 src/arome/turb/bl_depth_diag_1d.F90           | 38 --------------
 src/arome/turb/compute_entr_detr.F90          |  2 +-
 src/arome/turb/compute_updraft.F90            |  2 +-
 src/arome/turb/compute_updraft_raha.F90       |  2 +-
 src/arome/turb/compute_updraft_rhcj10.F90     |  2 +-
 src/arome/turb/modi_bl_depth_diag.F90         | 36 -------------
 src/arome/turb/modi_bl_depth_diag_3d.F90      | 24 ---------
 src/arome/turb/modi_th_r_from_thl_rt_1d.F90   | 24 ---------
 src/arome/turb/modi_th_r_from_thl_rt_2d.F90   | 24 ---------
 src/arome/turb/modi_th_r_from_thl_rt_3d.F90   | 27 ----------
 src/arome/turb/modi_thl_rt_from_th_r_mf.F90   | 31 -----------
 src/arome/turb/shallow_mf.F90                 |  2 +-
 .../turb/mode_bl_depth_diag.F90}              | 52 ++++++++++++++++++-
 src/common/turb/mode_sbl_depth.F90            |  2 +-
 .../turb/mode_th_r_from_thl_rt_1d.F90}        | 22 ++++++--
 .../turb/mode_th_r_from_thl_rt_2d.F90}        | 14 +++--
 .../turb/mode_th_r_from_thl_rt_3d.F90}        | 13 +++--
 .../turb/mode_thl_rt_from_th_r_mf.F90}        |  9 +++-
 src/mesonh/turb/th_r_from_thl_rt_1d.f90       |  2 +-
 src/mesonh/turb/th_r_from_thl_rt_2d.f90       |  2 +-
 src/mesonh/turb/th_r_from_thl_rt_3d.f90       |  2 +-
 22 files changed, 112 insertions(+), 226 deletions(-)
 delete mode 100644 src/arome/turb/bl_depth_diag_1d.F90
 delete mode 100644 src/arome/turb/modi_bl_depth_diag.F90
 delete mode 100644 src/arome/turb/modi_bl_depth_diag_3d.F90
 delete mode 100644 src/arome/turb/modi_th_r_from_thl_rt_1d.F90
 delete mode 100644 src/arome/turb/modi_th_r_from_thl_rt_2d.F90
 delete mode 100644 src/arome/turb/modi_th_r_from_thl_rt_3d.F90
 delete mode 100644 src/arome/turb/modi_thl_rt_from_th_r_mf.F90
 rename src/{arome/turb/bl_depth_diag_3d.F90 => common/turb/mode_bl_depth_diag.F90} (57%)
 rename src/{arome/turb/th_r_from_thl_rt_1d.F90 => common/turb/mode_th_r_from_thl_rt_1d.F90} (91%)
 rename src/{arome/turb/th_r_from_thl_rt_2d.F90 => common/turb/mode_th_r_from_thl_rt_2d.F90} (87%)
 rename src/{arome/turb/th_r_from_thl_rt_3d.F90 => common/turb/mode_th_r_from_thl_rt_3d.F90} (87%)
 rename src/{arome/turb/thl_rt_from_th_r_mf.F90 => common/turb/mode_thl_rt_from_th_r_mf.F90} (90%)

diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index d93196a4a..ce3b58090 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -105,3 +105,9 @@ phyex/turb/etheta.F90
 phyex/turb/emoist.F90
 phyex/turb/rmc01.F90
 phyex/turb/sbl_depth.F90
+phyex/turb/th_r_from_thl_rt_1d.F90
+phyex/turb/th_r_from_thl_rt_2d.F90
+phyex/turb/th_r_from_thl_rt_3d.F90
+phyex/turb/thl_rt_from_th_r_mf.F90
+phyex/turb/bl_depth_diag_3d.F90
+phyex/turb/bl_depth_diag_1d.F90
diff --git a/src/arome/turb/bl_depth_diag_1d.F90 b/src/arome/turb/bl_depth_diag_1d.F90
deleted file mode 100644
index c477ca8ef..000000000
--- a/src/arome/turb/bl_depth_diag_1d.F90
+++ /dev/null
@@ -1,38 +0,0 @@
-!     ######spl
-FUNCTION BL_DEPTH_DIAG_1D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-!
-USE MODI_BL_DEPTH_DIAG_3D
-IMPLICIT NONE
-!
-INTEGER,                INTENT(IN)           :: KKB          ! bottom point
-INTEGER,                INTENT(IN)           :: KKE          ! top point
-REAL,                   INTENT(IN)           :: PSURF        ! surface flux
-REAL,                   INTENT(IN)           :: PZS          ! orography
-REAL, DIMENSION(:),     INTENT(IN)           :: PFLUX        ! flux
-REAL, DIMENSION(:),     INTENT(IN)           :: PZZ          ! altitude of flux points
-REAL,                   INTENT(IN)           :: PFTOP_O_FSURF! Flux at BL top / Surface flux
-REAL                                         :: BL_DEPTH_DIAG_1D
-!
-REAL, DIMENSION(1,1)             :: ZSURF
-REAL, DIMENSION(1,1)             :: ZZS
-REAL, DIMENSION(1,1,SIZE(PFLUX)) :: ZFLUX
-REAL, DIMENSION(1,1,SIZE(PZZ))   :: ZZZ
-REAL, DIMENSION(1,1)             :: ZBL_DEPTH_DIAG
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',0,ZHOOK_HANDLE)
-ZSURF        = PSURF
-ZZS          = PZS
-ZFLUX(1,1,:) = PFLUX(:)
-ZZZ  (1,1,:) = PZZ  (:)
-!
-ZBL_DEPTH_DIAG = BL_DEPTH_DIAG_3D(KKB,KKE,ZSURF,ZZS,ZFLUX,ZZZ,PFTOP_O_FSURF)
-!
-BL_DEPTH_DIAG_1D = ZBL_DEPTH_DIAG(1,1)
-!
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',1,ZHOOK_HANDLE)
-END FUNCTION BL_DEPTH_DIAG_1D
diff --git a/src/arome/turb/compute_entr_detr.F90 b/src/arome/turb/compute_entr_detr.F90
index 16d23c24e..8211b6bd8 100644
--- a/src/arome/turb/compute_entr_detr.F90
+++ b/src/arome/turb/compute_entr_detr.F90
@@ -66,7 +66,7 @@ USE MODD_CST
 !
 USE MODD_CMFSHALL
 !
-USE MODI_TH_R_FROM_THL_RT_1D 
+USE MODE_TH_R_FROM_THL_RT_1D, ONLY: TH_R_FROM_THL_RT_1D 
 
 USE MODE_THERMO
 
diff --git a/src/arome/turb/compute_updraft.F90 b/src/arome/turb/compute_updraft.F90
index b0047fc1e..d2ea158e8 100644
--- a/src/arome/turb/compute_updraft.F90
+++ b/src/arome/turb/compute_updraft.F90
@@ -60,7 +60,7 @@ USE MODD_CMFSHALL
 USE MODD_TURB_n, ONLY : CTURBLEN
 
 USE MODI_COMPUTE_ENTR_DETR
-USE MODI_TH_R_FROM_THL_RT_1D
+USE MODE_TH_R_FROM_THL_RT_1D, ONLY: TH_R_FROM_THL_RT_1D
 USE MODI_SHUMAN_MF, ONLY: MZM_MF, MZF_MF, GZ_M_W_MF
 
 USE MODI_COMPUTE_BL89_ML
diff --git a/src/arome/turb/compute_updraft_raha.F90 b/src/arome/turb/compute_updraft_raha.F90
index 337696338..ae0ecb2e8 100644
--- a/src/arome/turb/compute_updraft_raha.F90
+++ b/src/arome/turb/compute_updraft_raha.F90
@@ -54,7 +54,7 @@
 USE MODD_CST
 USE MODD_CMFSHALL
 
-USE MODI_TH_R_FROM_THL_RT_1D
+USE MODE_TH_R_FROM_THL_RT_1D, ONLY: TH_R_FROM_THL_RT_1D
 USE MODI_SHUMAN_MF, ONLY: MZM_MF
 
 IMPLICIT NONE
diff --git a/src/arome/turb/compute_updraft_rhcj10.F90 b/src/arome/turb/compute_updraft_rhcj10.F90
index c6d108cf8..0491bebff 100644
--- a/src/arome/turb/compute_updraft_rhcj10.F90
+++ b/src/arome/turb/compute_updraft_rhcj10.F90
@@ -53,7 +53,7 @@
 USE MODD_CST
 USE MODD_CMFSHALL
 USE MODD_TURB_n, ONLY : CTURBLEN
-USE MODI_TH_R_FROM_THL_RT_1D
+USE MODE_TH_R_FROM_THL_RT_1D, ONLY: TH_R_FROM_THL_RT_1D
 USE MODI_SHUMAN_MF, ONLY: MZF_MF, MZM_MF, GZ_M_W_MF
 
 USE MODI_COMPUTE_BL89_ML
diff --git a/src/arome/turb/modi_bl_depth_diag.F90 b/src/arome/turb/modi_bl_depth_diag.F90
deleted file mode 100644
index 778761f9c..000000000
--- a/src/arome/turb/modi_bl_depth_diag.F90
+++ /dev/null
@@ -1,36 +0,0 @@
-!     ######spl
-     MODULE MODI_BL_DEPTH_DIAG  
-!    ################ 
-!
-INTERFACE BL_DEPTH_DIAG  
-!
-!
-      FUNCTION BL_DEPTH_DIAG_3D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
-
-INTEGER,                INTENT(IN)           :: KKB          ! bottom point
-INTEGER,                INTENT(IN)           :: KKE          ! top point
-REAL, DIMENSION(:,:),   INTENT(IN)           :: PSURF        ! surface flux
-REAL, DIMENSION(:,:),   INTENT(IN)           :: PZS          ! orography
-REAL, DIMENSION(:,:,:), INTENT(IN)           :: PFLUX        ! flux
-REAL, DIMENSION(:,:,:), INTENT(IN)           :: PZZ          ! altitude of flux points
-REAL,                   INTENT(IN)           :: PFTOP_O_FSURF! Flux at BL top / Surface flux
-REAL, DIMENSION(SIZE(PSURF,1),SIZE(PSURF,2)) :: BL_DEPTH_DIAG_3D
-!
-END FUNCTION BL_DEPTH_DIAG_3D
-!
-!
-      FUNCTION BL_DEPTH_DIAG_1D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
-INTEGER,                INTENT(IN)           :: KKB          ! bottom point
-INTEGER,                INTENT(IN)           :: KKE          ! top point
-REAL,                   INTENT(IN)           :: PSURF        ! surface flux
-REAL,                   INTENT(IN)           :: PZS          ! orography
-REAL, DIMENSION(:),     INTENT(IN)           :: PFLUX        ! flux
-REAL, DIMENSION(:),     INTENT(IN)           :: PZZ          ! altitude of flux points
-REAL,                   INTENT(IN)           :: PFTOP_O_FSURF! Flux at BL top / Surface flux
-REAL                                         :: BL_DEPTH_DIAG_1D
-!
-END FUNCTION BL_DEPTH_DIAG_1D
-!
-END INTERFACE
-!
-END MODULE MODI_BL_DEPTH_DIAG
diff --git a/src/arome/turb/modi_bl_depth_diag_3d.F90 b/src/arome/turb/modi_bl_depth_diag_3d.F90
deleted file mode 100644
index d2ea0c80d..000000000
--- a/src/arome/turb/modi_bl_depth_diag_3d.F90
+++ /dev/null
@@ -1,24 +0,0 @@
-!     ######spl
-     MODULE MODI_BL_DEPTH_DIAG_3D  
-!    ################ 
-!
-!
-INTERFACE
-!
-!
-      FUNCTION BL_DEPTH_DIAG_3D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
-INTEGER,                INTENT(IN)           :: KKB          ! bottom point
-INTEGER,                INTENT(IN)           :: KKE          ! top point
-REAL, DIMENSION(:,:),   INTENT(IN)           :: PSURF        ! surface flux
-REAL, DIMENSION(:,:),   INTENT(IN)           :: PZS          ! orography
-REAL, DIMENSION(:,:,:), INTENT(IN)           :: PFLUX        ! flux
-REAL, DIMENSION(:,:,:), INTENT(IN)           :: PZZ          ! altitude of flux points
-REAL,                   INTENT(IN)           :: PFTOP_O_FSURF! Flux at BL top / Surface flux
-REAL, DIMENSION(SIZE(PSURF,1),SIZE(PSURF,2)) :: BL_DEPTH_DIAG_3D
-!
-END FUNCTION BL_DEPTH_DIAG_3D
-!
-!
-END INTERFACE
-!
-END MODULE MODI_BL_DEPTH_DIAG_3D
diff --git a/src/arome/turb/modi_th_r_from_thl_rt_1d.F90 b/src/arome/turb/modi_th_r_from_thl_rt_1d.F90
deleted file mode 100644
index 577edb249..000000000
--- a/src/arome/turb/modi_th_r_from_thl_rt_1d.F90
+++ /dev/null
@@ -1,24 +0,0 @@
-!     ######spl
-      MODULE MODI_TH_R_FROM_THL_RT_1D
-!     ###############################
-!
-      INTERFACE
-      SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP,             &
-                                  PTHL, PRT, PTH, PRV, PRL, PRI,         &
-                                  PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
-CHARACTER*1       , INTENT(IN)    :: HFRAC_ICE
-REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
-REAL, DIMENSION(:), INTENT(IN) :: PP     ! Pressure
-REAL, DIMENSION(:), INTENT(IN) :: PTHL   ! Liquid pot. temp.
-REAL, DIMENSION(:), INTENT(IN) :: PRT    ! Total mixing ratios 
-REAL, DIMENSION(:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH
-REAL, DIMENSION(:), INTENT(OUT):: PTH    ! Potential temp.
-REAL, DIMENSION(:), INTENT(OUT):: PRV    ! vapor mixing ratio
-REAL, DIMENSION(:), INTENT(INOUT):: PRL  ! cloud mixing ratio
-REAL, DIMENSION(:), INTENT(INOUT):: PRI  ! ice   mixing ratio
-REAL, DIMENSION(:), INTENT(OUT)  :: PRSATW ! estimated mixing ration at saturation over water
-REAL, DIMENSION(:), INTENT(OUT)  :: PRSATI ! estimated mixing ration at saturation over ice
-
-      END SUBROUTINE TH_R_FROM_THL_RT_1D
-      END INTERFACE
-      END MODULE MODI_TH_R_FROM_THL_RT_1D
diff --git a/src/arome/turb/modi_th_r_from_thl_rt_2d.F90 b/src/arome/turb/modi_th_r_from_thl_rt_2d.F90
deleted file mode 100644
index a3af56f23..000000000
--- a/src/arome/turb/modi_th_r_from_thl_rt_2d.F90
+++ /dev/null
@@ -1,24 +0,0 @@
-!     ######spl
-      MODULE MODI_TH_R_FROM_THL_RT_2D
-      INTERFACE
-      SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP,             &
-                                  PTHL, PRT, PTH, PRV, PRL, PRI,         &
-                                  PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
-REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
-REAL, DIMENSION(:,:), INTENT(IN) :: PP          ! Pressure
-REAL, DIMENSION(:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
-REAL, DIMENSION(:,:),INTENT(IN)  :: PRT    ! Total mixing ratios to transform into rv,rc and ri
-REAL, DIMENSION(:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH
-REAL, DIMENSION(:,:), INTENT(OUT):: PTH    ! th
-REAL, DIMENSION(:,:), INTENT(OUT):: PRV    ! vapor mixing ratio
-REAL, DIMENSION(:,:), INTENT(INOUT):: PRL    ! vapor mixing ratio
-REAL, DIMENSION(:,:), INTENT(INOUT):: PRI    ! vapor mixing ratio
-REAL, DIMENSION(:,:), INTENT(OUT)  :: PRSATW ! estimated mixing ration at saturation over water
-REAL, DIMENSION(:,:), INTENT(OUT)  :: PRSATI ! estimated mixing ration at saturation over ice
-
-      END SUBROUTINE TH_R_FROM_THL_RT_2D
-
-      END INTERFACE
-
-      END MODULE MODI_TH_R_FROM_THL_RT_2D
diff --git a/src/arome/turb/modi_th_r_from_thl_rt_3d.F90 b/src/arome/turb/modi_th_r_from_thl_rt_3d.F90
deleted file mode 100644
index 5b52a056f..000000000
--- a/src/arome/turb/modi_th_r_from_thl_rt_3d.F90
+++ /dev/null
@@ -1,27 +0,0 @@
-!     ######spl
-      MODULE MODI_TH_R_FROM_THL_RT_3D
-!     ###############################
-INTERFACE
-!
-      SUBROUTINE TH_R_FROM_THL_RT_3D(HFRAC_ICE,PFRAC_ICE,PP,             &
-                                  PTHL, PRT, PTH, PRV, PRL, PRI, &
-                                  PRSATW, PRSATI, PRR, PRS, PRG, PRH       )
-
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
-REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PP          ! Pressure
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
-REAL, DIMENSION(:,:,:),INTENT(IN)  :: PRT    ! Total mixing ratios to transform into rv,rc and ri
-REAL, DIMENSION(:,:,:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PTH    ! th
-REAL, DIMENSION(:,:,:), INTENT(OUT):: PRV    ! vapor mixing ratio
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRL    ! vapor mixing ratio
-REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRI    ! vapor mixing ratio
-REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PRSATW ! estimated mixing ration at saturation over water
-REAL, DIMENSION(:,:,:), INTENT(OUT)  :: PRSATI ! estimated mixing ration at saturation over ice
-!
-END SUBROUTINE TH_R_FROM_THL_RT_3D
-!
-END INTERFACE
-!
-END MODULE MODI_TH_R_FROM_THL_RT_3D
diff --git a/src/arome/turb/modi_thl_rt_from_th_r_mf.F90 b/src/arome/turb/modi_thl_rt_from_th_r_mf.F90
deleted file mode 100644
index ed1dd9c6b..000000000
--- a/src/arome/turb/modi_thl_rt_from_th_r_mf.F90
+++ /dev/null
@@ -1,31 +0,0 @@
-!     ######spl
-     MODULE MODI_THL_RT_FROM_TH_R_MF
-!    ###############################
-!
-INTERFACE
-!     #################################################################
-      SUBROUTINE THL_RT_FROM_TH_R_MF( KRR,KRRL,KRRI,                  &
-                                      PTH, PR, PEXN, &
-                                      PTHL, PRT                      )
-!     #################################################################
-!
-!               
-!*               1.1  Declaration of Arguments
-!                
-!
-INTEGER,                INTENT(IN)   :: KRR           ! number of moist var.
-INTEGER,                INTENT(IN)   :: KRRL          ! number of liquid water var.
-INTEGER,                INTENT(IN)   :: KRRI          ! number of ice water var.
-
-REAL, DIMENSION(:,:), INTENT(IN)   :: PTH      ! theta
-REAL, DIMENSION(:,:,:), INTENT(IN) :: PR       ! water species
-REAL, DIMENSION(:,:), INTENT(IN)   :: PEXN    ! exner function
-
-REAL, DIMENSION(:,:), INTENT(OUT)  :: PTHL     ! th_l
-REAL, DIMENSION(:,:), INTENT(OUT)  :: PRT      ! total non precip. water
-!
-END SUBROUTINE THL_RT_FROM_TH_R_MF
-
-END INTERFACE
-!
-END MODULE MODI_THL_RT_FROM_TH_R_MF
diff --git a/src/arome/turb/shallow_mf.F90 b/src/arome/turb/shallow_mf.F90
index 1173fc67f..8a9fa1916 100644
--- a/src/arome/turb/shallow_mf.F90
+++ b/src/arome/turb/shallow_mf.F90
@@ -63,7 +63,7 @@ USE MODD_CST
 USE MODD_PARAMETERS, ONLY: JPVEXT
 USE MODD_CMFSHALL
 
-USE MODI_THL_RT_FROM_TH_R_MF
+USE MODE_THL_RT_FROM_TH_R_MF, ONLY: THL_RT_FROM_TH_R_MF
 USE MODI_COMPUTE_UPDRAFT
 USE MODI_COMPUTE_UPDRAFT_RHCJ10
 USE MODI_COMPUTE_UPDRAFT_RAHA
diff --git a/src/arome/turb/bl_depth_diag_3d.F90 b/src/common/turb/mode_bl_depth_diag.F90
similarity index 57%
rename from src/arome/turb/bl_depth_diag_3d.F90
rename to src/common/turb/mode_bl_depth_diag.F90
index 78ce7c72a..3cf56530a 100644
--- a/src/arome/turb/bl_depth_diag_3d.F90
+++ b/src/common/turb/mode_bl_depth_diag.F90
@@ -1,4 +1,16 @@
-!     ######spl
+!MNH_LIC Copyright 1994-2022 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_BL_DEPTH_DIAG
+!
+INTERFACE BL_DEPTH_DIAG  
+      MODULE PROCEDURE BL_DEPTH_DIAG_3D
+      MODULE PROCEDURE BL_DEPTH_DIAG_1D
+END INTERFACE
+!
+CONTAINS
+!
 FUNCTION BL_DEPTH_DIAG_3D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
@@ -91,3 +103,41 @@ BL_DEPTH_DIAG_3D(:,:) = BL_DEPTH_DIAG_3D(:,:) / (1. - PFTOP_O_FSURF)
 !
 IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_3D',1,ZHOOK_HANDLE)
 END FUNCTION BL_DEPTH_DIAG_3D
+!
+FUNCTION BL_DEPTH_DIAG_1D(KKB,KKE,PSURF,PZS,PFLUX,PZZ,PFTOP_O_FSURF)
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
+!
+IMPLICIT NONE
+!
+INTEGER,                INTENT(IN)           :: KKB          ! bottom point
+INTEGER,                INTENT(IN)           :: KKE          ! top point
+REAL,                   INTENT(IN)           :: PSURF        ! surface flux
+REAL,                   INTENT(IN)           :: PZS          ! orography
+REAL, DIMENSION(:),     INTENT(IN)           :: PFLUX        ! flux
+REAL, DIMENSION(:),     INTENT(IN)           :: PZZ          ! altitude of flux points
+REAL,                   INTENT(IN)           :: PFTOP_O_FSURF! Flux at BL top / Surface flux
+REAL                                         :: BL_DEPTH_DIAG_1D
+!
+REAL, DIMENSION(1,1)             :: ZSURF
+REAL, DIMENSION(1,1)             :: ZZS
+REAL, DIMENSION(1,1,SIZE(PFLUX)) :: ZFLUX
+REAL, DIMENSION(1,1,SIZE(PZZ))   :: ZZZ
+REAL, DIMENSION(1,1)             :: ZBL_DEPTH_DIAG
+!
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',0,ZHOOK_HANDLE)
+ZSURF        = PSURF
+ZZS          = PZS
+ZFLUX(1,1,:) = PFLUX(:)
+ZZZ  (1,1,:) = PZZ  (:)
+!
+ZBL_DEPTH_DIAG = BL_DEPTH_DIAG_3D(KKB,KKE,ZSURF,ZZS,ZFLUX,ZZZ,PFTOP_O_FSURF)
+!
+BL_DEPTH_DIAG_1D = ZBL_DEPTH_DIAG(1,1)
+!
+!-------------------------------------------------------------------------------
+!
+IF (LHOOK) CALL DR_HOOK('BL_DEPTH_DIAG_1D',1,ZHOOK_HANDLE)
+END FUNCTION BL_DEPTH_DIAG_1D
+END MODULE MODE_BL_DEPTH_DIAG
diff --git a/src/common/turb/mode_sbl_depth.F90 b/src/common/turb/mode_sbl_depth.F90
index 8de257fe9..e485940e0 100644
--- a/src/common/turb/mode_sbl_depth.F90
+++ b/src/common/turb/mode_sbl_depth.F90
@@ -48,7 +48,7 @@ CONTAINS
 USE MODD_PARAMETERS, ONLY : XUNDEF
 USE MODD_CTURB,      ONLY : XFTOP_O_FSURF, XSBL_O_BL
 !
-USE MODI_BL_DEPTH_DIAG
+USE MODE_BL_DEPTH_DIAG
 !
 IMPLICIT NONE
 !
diff --git a/src/arome/turb/th_r_from_thl_rt_1d.F90 b/src/common/turb/mode_th_r_from_thl_rt_1d.F90
similarity index 91%
rename from src/arome/turb/th_r_from_thl_rt_1d.F90
rename to src/common/turb/mode_th_r_from_thl_rt_1d.F90
index 5a17d2569..f408b8bab 100644
--- a/src/arome/turb/th_r_from_thl_rt_1d.F90
+++ b/src/common/turb/mode_th_r_from_thl_rt_1d.F90
@@ -1,4 +1,10 @@
-!     ######spl
+!MNH_LIC Copyright 2006-2022 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_TH_R_FROM_THL_RT_1D
+IMPLICIT NONE
+CONTAINS
       SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP,             &
                                   PTHL, PRT, PTH, PRV, PRL, PRI,         &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
@@ -35,6 +41,7 @@
 !!      S. Riette April 2011 : ice added, allow ZRLTEMP to be negative
 !!                             we use dQsat/dT to help convergence
 !!                             use of optional PRR, PRS, PRG, PRH
+!!      S. Riette Nov 2016: support for HFRAC_ICE='S'
 !!
 !! --------------------------------------------------------------------------
 !
@@ -44,7 +51,8 @@
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODI_COMPUTE_FRAC_ICE
-USE MODD_CST!, ONLY: XP00, XRD, XCPD, XCPV, XCL, XCI, XLVTT, XTT, XLSTT
+USE MODD_CST
+USE MODD_DYN_n, ONLY : LOCEAN
 USE MODE_THERMO
 !
 IMPLICIT NONE
@@ -52,7 +60,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),   INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:), INTENT(IN) :: PTHL    ! thetal to transform into th
@@ -118,8 +126,11 @@ ENDDO
 !         ---------
 
 DO II=1,JITER
-  ZT(:)=PTH(:)*ZEXN(:)
-
+  IF (LOCEAN) THEN
+    ZT=PTH                  
+  ELSE
+    ZT(:)=PTH(:)*ZEXN(:)
+  END IF
   !Computation of liquid/ice fractions
   PFRAC_ICE(:) = 0.
   DO J=1, SIZE(PFRAC_ICE, 1)
@@ -191,3 +202,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('TH_R_FROM_THL_RT_1D',1,ZHOOK_HANDLE)
 
 END SUBROUTINE TH_R_FROM_THL_RT_1D
+END MODULE MODE_TH_R_FROM_THL_RT_1D
diff --git a/src/arome/turb/th_r_from_thl_rt_2d.F90 b/src/common/turb/mode_th_r_from_thl_rt_2d.F90
similarity index 87%
rename from src/arome/turb/th_r_from_thl_rt_2d.F90
rename to src/common/turb/mode_th_r_from_thl_rt_2d.F90
index 5d1ff0e08..e4292fa12 100644
--- a/src/arome/turb/th_r_from_thl_rt_2d.F90
+++ b/src/common/turb/mode_th_r_from_thl_rt_2d.F90
@@ -1,4 +1,10 @@
-!     ######spl
+!MNH_LIC Copyright 2006-2022 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_TH_R_FROM_THL_RT_2D
+IMPLICIT NONE
+CONTAINS
       SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP,             &
                                   PTHL, PRT, PTH, PRV, PRL, PRI,         &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
@@ -40,7 +46,7 @@
 !          ------------
 !
 !
-USE MODI_TH_R_FROM_THL_RT_3D
+USE MODE_TH_R_FROM_THL_RT_3D, ONLY: TH_R_FROM_THL_RT_3D
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 
@@ -49,7 +55,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),     INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(IN) :: PP     ! Pressure
 REAL, DIMENSION(:,:), INTENT(IN) :: PTHL   ! Liquid pot. temp.
@@ -101,3 +107,5 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('TH_R_FROM_THL_RT_2D',1,ZHOOK_HANDLE)
 
 END SUBROUTINE TH_R_FROM_THL_RT_2D
+END MODULE MODE_TH_R_FROM_THL_RT_2D
+
diff --git a/src/arome/turb/th_r_from_thl_rt_3d.F90 b/src/common/turb/mode_th_r_from_thl_rt_3d.F90
similarity index 87%
rename from src/arome/turb/th_r_from_thl_rt_3d.F90
rename to src/common/turb/mode_th_r_from_thl_rt_3d.F90
index 473a9bcc2..fb42b7101 100644
--- a/src/arome/turb/th_r_from_thl_rt_3d.F90
+++ b/src/common/turb/mode_th_r_from_thl_rt_3d.F90
@@ -1,4 +1,10 @@
-!     ######spl
+!MNH_LIC Copyright 2006-2022 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_TH_R_FROM_THL_RT_3D
+IMPLICIT NONE
+CONTAINS      
       SUBROUTINE TH_R_FROM_THL_RT_3D(HFRAC_ICE,PFRAC_ICE,PP,             &
                                   PTHL, PRT, PTH, PRV, PRL, PRI, &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH       )
@@ -39,7 +45,7 @@
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODI_TH_R_FROM_THL_RT_1D
+USE MODE_TH_R_FROM_THL_RT_1D, ONLY: TH_R_FROM_THL_RT_1D
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -48,7 +54,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
@@ -98,3 +104,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('TH_R_FROM_THL_RT_3D',1,ZHOOK_HANDLE)
 
 END SUBROUTINE TH_R_FROM_THL_RT_3D
+END MODULE MODE_TH_R_FROM_THL_RT_3D
diff --git a/src/arome/turb/thl_rt_from_th_r_mf.F90 b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
similarity index 90%
rename from src/arome/turb/thl_rt_from_th_r_mf.F90
rename to src/common/turb/mode_thl_rt_from_th_r_mf.F90
index c9488f86b..bf72ab943 100644
--- a/src/arome/turb/thl_rt_from_th_r_mf.F90
+++ b/src/common/turb/mode_thl_rt_from_th_r_mf.F90
@@ -1,4 +1,10 @@
-!     ######spl
+!MNH_LIC Copyright 1994-2022 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_THL_RT_FROM_TH_R_MF
+IMPLICIT NONE
+CONTAINS
       SUBROUTINE THL_RT_FROM_TH_R_MF( KRR,KRRL,KRRI,                  &
                                       PTH, PR, PEXN, &
                                       PTHL, PRT                      )
@@ -114,3 +120,4 @@ ELSE
 END IF
 IF (LHOOK) CALL DR_HOOK('THL_RT_FRM_TH_R_MF',1,ZHOOK_HANDLE)
 END SUBROUTINE THL_RT_FROM_TH_R_MF
+END MODULE MODE_THL_RT_FROM_TH_R_MF
diff --git a/src/mesonh/turb/th_r_from_thl_rt_1d.f90 b/src/mesonh/turb/th_r_from_thl_rt_1d.f90
index e4ba92f8a..09aa2610d 100644
--- a/src/mesonh/turb/th_r_from_thl_rt_1d.f90
+++ b/src/mesonh/turb/th_r_from_thl_rt_1d.f90
@@ -81,7 +81,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER(len=1),   INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),   INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:), INTENT(IN) :: PTHL    ! thetal to transform into th
diff --git a/src/mesonh/turb/th_r_from_thl_rt_2d.f90 b/src/mesonh/turb/th_r_from_thl_rt_2d.f90
index 356c9c191..d610a72bd 100644
--- a/src/mesonh/turb/th_r_from_thl_rt_2d.f90
+++ b/src/mesonh/turb/th_r_from_thl_rt_2d.f90
@@ -77,7 +77,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER(len=1),     INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),     INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(IN) :: PP     ! Pressure
 REAL, DIMENSION(:,:), INTENT(IN) :: PTHL   ! Liquid pot. temp.
diff --git a/src/mesonh/turb/th_r_from_thl_rt_3d.f90 b/src/mesonh/turb/th_r_from_thl_rt_3d.f90
index d58d98f4d..0591be50c 100644
--- a/src/mesonh/turb/th_r_from_thl_rt_3d.f90
+++ b/src/mesonh/turb/th_r_from_thl_rt_3d.f90
@@ -78,7 +78,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER(len=1),       INTENT(IN) :: HFRAC_ICE
+CHARACTER(LEN=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
-- 
GitLab