diff --git a/src/MNH/compute_updraft.f90 b/src/MNH/compute_updraft.f90 index ba78d05a1fdaec9883a5eb1685fcdd3935d4c3cd..5b69902a2f4151f30533ec5b9b487c9a651063ab 100644 --- a/src/MNH/compute_updraft.f90 +++ b/src/MNH/compute_updraft.f90 @@ -10,7 +10,6 @@ INTERFACE ! ! ################################################################# SUBROUTINE COMPUTE_UPDRAFT(KKA,KKB,KKE,KKU,KKL, HFRAC_ICE, & - HMF_UPDRAFT, & OENTR_DETR,OMIXUV, & ONOMIXLG,KSV_LGBEG,KSV_LGEND, & PZZ,PDZZ, & @@ -36,7 +35,6 @@ INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physica INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme -CHARACTER (LEN=4), INTENT(IN) :: HMF_UPDRAFT ! Type of Mass Flux Scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -85,7 +83,6 @@ END INTERFACE END MODULE MODI_COMPUTE_UPDRAFT ! ######spl SUBROUTINE COMPUTE_UPDRAFT(KKA,KKB,KKE,KKU,KKL,HFRAC_ICE, & - HMF_UPDRAFT, & OENTR_DETR,OMIXUV, & ONOMIXLG,KSV_LGBEG,KSV_LGEND, & PZZ,PDZZ, & @@ -134,7 +131,8 @@ END MODULE MODI_COMPUTE_UPDRAFT !! V.Masson, C.Lac : 02/2011 : SV_UP initialized by a non-zero value !! S. Riette Apr 2013: improvement of continuity at the condensation level !! R.Honnert Oct 2016 : Add ZSURF and Update with AROME -!! Q.Rodier 01/2019 : support RM17 mixing length +!! Q.Rodier 01/2019 : support RM17 mixing length +!! R.Honnert 01/2019 : add LGZ (reduction of the mass-flux surface closure with the resolution) !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -164,7 +162,6 @@ INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physica INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise CHARACTER*1, INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme -CHARACTER (LEN=4), INTENT(IN) :: HMF_UPDRAFT ! Type of Mass Flux Scheme LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer @@ -396,8 +393,8 @@ IF (OENTR_DETR) THEN (0.61*ZTHM_F(:,KKB))*PSFRV(:) ! Mass flux at KKB level (updraft triggered if PSFTH>0.) - IF (HMF_UPDRAFT=='SURF') THEN - ZSURF(:)=TANH(1.83*SQRT(XDXHAT(1)*XDYHAT(1))/ZLUP) + IF (LGZ) THEN + ZSURF(:)=TANH(XGZ*SQRT(XDXHAT(1)*XDYHAT(1))/ZLUP) ELSE ZSURF(:)=1. END IF diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 28210a41fcfe3380e36e7e22aa9042d75282e67d..2632f9f08f9de9c63dc9dd42533becb31d1c5b93 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -226,6 +226,7 @@ END MODULE MODI_DEFAULT_DESFM_n !! 01/2018 (S. Riette) new budgets and variables for ICE3/ICE4 !! 01/2018 (J.Colin) add VISC and DRAG !! 07/2017 (V. Vionnet) add blowing snow variables +!! 01/2019 (R. Honnert) add reduction of the mass-flux surface closure with the resolution !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1146,6 +1147,8 @@ XC = 0.012 XBETA1 = 0.9 XR = 2. XLAMBDA_MF= 0. +LGZ = .TRUE. +XGZ = 1.83 ! between 1.83 and 1.33 ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/modd_param_mfshalln.f90 b/src/MNH/modd_param_mfshalln.f90 index 1c4683dc4936e3212c5bf4125470c8570e1e6a48..54912a086cf1566008d7822440755107d40d4d50 100644 --- a/src/MNH/modd_param_mfshalln.f90 +++ b/src/MNH/modd_param_mfshalln.f90 @@ -30,7 +30,8 @@ !! MODIFICATIONS !! ------------- !! Original 01/02/07 -!! 10/16 R.Honnert Update with AROME +!! 10/16 R.Honnert Update with AROME +!! 01/2019 R.Honnert add parameters for the reduction of mass-flux surface closure with resolution !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -81,7 +82,12 @@ REAL :: XBETA1 ! Parameters for closure assumption of Hourdin et al 2002 REAL :: XR ! Aspect ratio of updraft +! +! Grey Zone +LOGICAL :: LGZ ! Grey Zone Surface Closure +REAL :: XGZ ! Tuning of the surface initialisation +! ! Thermodynamic parameter REAL :: XLAMBDA_MF ! Lambda to compute ThetaS1 from ThetaL @@ -119,7 +125,8 @@ REAL, POINTER :: XC=>NULL() REAL, POINTER :: XBETA1=>NULL() REAL, POINTER :: XR=>NULL() REAL, POINTER :: XLAMBDA_MF=>NULL() - +LOGICAL, POINTER :: LGZ=>NULL() +REAL, POINTER :: XGZ=>NULL() CONTAINS SUBROUTINE PARAM_MFSHALL_GOTO_MODEL(KFROM, KTO) @@ -157,7 +164,9 @@ XC=>PARAM_MFSHALL_MODEL(KTO)%XC XBETA1=>PARAM_MFSHALL_MODEL(KTO)%XBETA1 XR=>PARAM_MFSHALL_MODEL(KTO)%XR XLAMBDA_MF=>PARAM_MFSHALL_MODEL(KTO)%XLAMBDA_MF - +LGZ=>PARAM_MFSHALL_MODEL(KTO)%LGZ +XGZ=>PARAM_MFSHALL_MODEL(KTO)%XGZ +! END SUBROUTINE PARAM_MFSHALL_GOTO_MODEL END MODULE MODD_PARAM_MFSHALL_n diff --git a/src/MNH/modn_param_mfshalln.f90 b/src/MNH/modn_param_mfshalln.f90 index 4254cec7b78dd76681be33d240a686f66bbc8269..8654ee8bd19a6c10f2662c46a7e6b29456a0bba7 100644 --- a/src/MNH/modn_param_mfshalln.f90 +++ b/src/MNH/modn_param_mfshalln.f90 @@ -6,6 +6,7 @@ !! MODIFICATIONS !! ------------- !! 10/16 R.Honnert Update with AROME +!! 01/2019 R.Honnert add parameters for the reduction of mass-flux surface closure with resolution !----------------------------------------------------------------- ! ########################### MODULE MODN_PARAM_MFSHALL_n @@ -44,7 +45,9 @@ USE MODD_PARAM_MFSHALL_n, ONLY: & XC_n => XC, & XBETA1_n => XBETA1, & XR_n => XR, & - XLAMBDA_MF_n => XLAMBDA_MF + XLAMBDA_MF_n => XLAMBDA_MF, & + LGZ_n => LGZ, & + XGZ_n => XGZ ! IMPLICIT NONE ! @@ -78,24 +81,29 @@ REAL,SAVE :: XSIGMA_MF ! coefficient for sigma computation REAL,SAVE :: XFRAC_UP_MAX! maximum Updraft fraction ! - +! ! Tuning variables for RHCJ10 updraft : - +! REAL,SAVE :: XA1 REAL,SAVE :: XB REAL,SAVE :: XC REAL,SAVE :: XBETA1 - +! ! Tuning variables for RAHA updraft : - +! REAL,SAVE :: XR REAL,SAVE :: XLAMBDA_MF - +! +! Tuning variables for Grey Zone updraft : +! +LOGICAL,SAVE :: LGZ +REAL,SAVE :: XGZ +! NAMELIST/NAM_PARAM_MFSHALLn/XIMPL_MF,CMF_UPDRAFT,CMF_CLOUD,LMIXUV,LMF_FLX,& XALP_PERT,XABUO,XBENTR,XBDETR,XCMF,XENTR_MF,& XCRAD_MF,XENTR_DRY,XDETR_DRY,XDETR_LUP,XKCF_MF,& XKRC_MF,XTAUSIGMF,XPRES_UV,XALPHA_MF,XSIGMA_MF,& - XFRAC_UP_MAX,XA1,XB,XC,XBETA1,XR,XLAMBDA_MF + XFRAC_UP_MAX,XA1,XB,XC,XBETA1,XR,XLAMBDA_MF,LGZ,XGZ ! @@ -130,6 +138,8 @@ SUBROUTINE INIT_NAM_PARAM_MFSHALLn XBETA1 = XBETA1_n XR = XR_n XLAMBDA_MF = XLAMBDA_MF_n + LGZ = LGZ_n + XGZ = XGZ_n END SUBROUTINE INIT_NAM_PARAM_MFSHALLn @@ -162,6 +172,9 @@ SUBROUTINE UPDATE_NAM_PARAM_MFSHALLn XBETA1_n = XBETA1 XR_n = XR XLAMBDA_MF_n = XLAMBDA_MF + LGZ_n = LGZ + XGZ_n = XGZ + END SUBROUTINE UPDATE_NAM_PARAM_MFSHALLn END MODULE MODN_PARAM_MFSHALL_n diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 938165d5164002eff95ab2370d8110da3320dd69..538189ea081857baa01f40db7ab69064b42ae68e 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -290,6 +290,7 @@ END MODULE MODI_READ_EXSEG_n !! Modification 07/2017 (V. Vionnet) add blowing snow scheme !! Modification 01/2019 (Q. Rodier) define XCEDIS depending on BL89 or RM17 mixing length !! Modification 01/2019 (P. Wautelet) bugs correction: incorrect writes +!! Modification 01/2019 (R. Honnert) remove SURF in CMF_UPDRAFT !!------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -723,7 +724,7 @@ CALL TEST_NAM_VAR(ILUOUT,'CTURBLEN_CLOUD',CTURBLEN_CLOUD,'NONE','DEAR','DELT','B ! The test on the mass flux scheme for shallow convection ! CALL TEST_NAM_VAR(ILUOUT,'CMF_UPDRAFT',CMF_UPDRAFT,'NONE','EDKF','RHCJ',& - 'HRIO','SURF','BOUT') + 'HRIO','BOUT') CALL TEST_NAM_VAR(ILUOUT,'CMF_CLOUD',CMF_CLOUD,'NONE','STAT','DIRE') ! ! The test on the CSOLVER name is made elsewhere diff --git a/src/MNH/shallow_mf.f90 b/src/MNH/shallow_mf.f90 index 2a9e824398bd70a650f87ba4d41237ee0642ff54..2212bbb89a452fd2398791c02f645eaacaf9671f 100644 --- a/src/MNH/shallow_mf.f90 +++ b/src/MNH/shallow_mf.f90 @@ -165,7 +165,8 @@ END MODULE MODI_SHALLOW_MF !! R.Honnert 10/2016 : SURF=gray zone initilisation + EDKF !! R.Honnert 10/2016 : Update with Arome !! Philippe Wautelet 28/05/2018: corrected truncated integer division (2/3 -> 2./3.) -!! Q.Rodier 01/2019 : support RM17 mixing length +!! Q.Rodier 01/2019 : support RM17 mixing length +!! R.Honnert 1/2019 : remove SURF !! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -306,8 +307,7 @@ IKE=KKU-KKL*JPVEXT ! updraft governing variables IF (HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'HRIO' .OR. & - HMF_UPDRAFT == 'RHCJ' .OR. HMF_UPDRAFT == 'BOUT' .OR. & - HMF_UPDRAFT == 'SURF' ) THEN + HMF_UPDRAFT == 'RHCJ' .OR. HMF_UPDRAFT == 'BOUT') THEN PENTR = 1.E20 PDETR = 1.E20 PEMF = 1.E20 @@ -335,9 +335,9 @@ ZTHVM(:,:) = PTHM(:,:)*((1.+XRV / XRD *PRM(:,:,1))/(1.+ZRTM(:,:))) !!! 2. Compute updraft !!! --------------- ! -IF (HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'BOUT' .OR. HMF_UPDRAFT == 'SURF') THEN +IF (HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'BOUT') THEN GENTR_DETR = .TRUE. - CALL COMPUTE_UPDRAFT(KKA,IKB,IKE,KKU,KKL,HFRAC_ICE,HMF_UPDRAFT,GENTR_DETR,OMIXUV,& + CALL COMPUTE_UPDRAFT(KKA,IKB,IKE,KKU,KKL,HFRAC_ICE,GENTR_DETR,OMIXUV,& ONOMIXLG,KSV_LGBEG,KSV_LGEND, & PZZ,PDZZ, & PSFTH,PSFRV,PPABSM,PRHODREF, & @@ -417,8 +417,7 @@ CALL COMPUTE_MF_CLOUD(KKA,IKB,IKE,KKU,KKL,KRR,KRRL,KRRI,& !!! ------------------------------------------------------------------------ ! ZEMF_O_RHODREF=PEMF/PRHODREF - IF(HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'RHCJ'.OR. HMF_UPDRAFT == 'BOUT' & - .OR. HMF_UPDRAFT == 'SURF') THEN + IF(HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'RHCJ'.OR. HMF_UPDRAFT == 'BOUT') THEN IF ( PIMPL_MF > 1.E-10 ) THEN CALL MF_TURB(KKA, IKB, IKE, KKU, KKL, OMIXUV, & ONOMIXLG,KSV_LGBEG,KSV_LGEND, &