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