Skip to content

Commit 8564efd

Browse files
authored
Update ShinHong PBL and move it to shared MMM-physics (#2286)
TYPE: enhancement KEYWORDS: Shin-Hong, YSU, top-down mixing, shared MMM-physics SOURCE: Songyou Hong DESCRIPTION OF CHANGES: SHINHONG PBL occasionally would fail in global models. This PR includes the following changes: 1. Entrainment ratio and depth at the PBL top were reformulated. 2. Topdown mixing and building canopy moduels in the YSU PBL were revised and incorporated into revised the SHINHONG scheme. 3. In the revised scheme, one can select nonlocal mixing flux term: either counter-gradient (YSU type) or eddy-mass flux (SHINHONG type). In the namelist, - shinhong_nonlocal_flux=.true., default for YSU nonlocal flux, .true. for SHINHONG nonlocal flux - shinhong_scu_mixng = .false., default, for stratocumulus downward mixing (revised TOPDOWN mixing in the YSU scheme - shinhong_ke_dissipation=.false., defalult, for additional heating due to kinetic turbulent mixing The new Shin-Hong PBL is now merged with YSU PBL via a namelist switch and moved to shared MMM-physics repository. LIST OF MODIFIED FILES: m Registry/Registry.EM_COMMON m arch/Externals.cfg m .gitmodules m dyn_em/module_first_rk_step_part1.F m main/depend.common m phys/Makefile m phys/module_bl_shinhong.F m phys/module_pbl_driver.F m phys/module_physics_init.F TESTS CONDUCTED: Regression tests have passed. RELEASE NOTE: New version of Shin-Hong PBL that combines YSU scheme replaces bl_pbl_physics =11. Other new options are: shinhong_scu_mixing (top-down mixing, default off), shinhong_nonlocal_flux (gamma (f) or mass flux (t), default on), shinhong_ke_dissipation (tke dissipation heating, default off). The code is moved to shared MMM-physics repository, and available in phys/physics_mmm after compilation.
1 parent 96b7ca4 commit 8564efd

File tree

8 files changed

+439
-2341
lines changed

8 files changed

+439
-2341
lines changed

Registry/Registry.EM_COMMON

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2485,6 +2485,9 @@ rconfig integer bl_pbl_physics namelist,physics max_domains -1
24852485
rconfig integer tke_budget namelist,physics max_domains 0 rh "tke_budget" "" ""
24862486
rconfig integer ysu_topdown_pblmix namelist,physics 1 1 rh "ysu_topdown_pblmix" "" ""
24872487
rconfig integer shinhong_tke_diag namelist,physics max_domains 0 rh "shinhong_tke_diag" "" ""
2488+
rconfig logical shinhong_scu_mixing namelist,physics max_domains .false. rh "shinhong_scu_mixing" "strato-cumulus(scu ) downdraft mixing for shinhong pbl" ""
2489+
rconfig logical shinhong_nonlocal_flux namelist,physics max_domains .true. rh "shinhong_nonlocal_flux" ".false.:counter-gradient (ysu), .true.:shinhong-LES type nonlocal flux" ""
2490+
rconfig logical shinhong_ke_dissipation namelist,physics max_domains .false. rh "shinhong_ke_dissipation" "additional heating due to kinetic energy dissipation" ""
24882491
rconfig logical bl_mynn_tkeadvect namelist,physics max_domains .false. rh "bl_mynn_tkeadvect" "" ""
24892492
rconfig integer bl_mynn_cloudpdf namelist,physics 1 2 irh "bl_mynn_cloudpdf" "0:original, 1:Kuwano, 2:Chaboreau-Bechtold" ""
24902493
rconfig integer bl_mynn_mixlength namelist,physics 1 1 irh "bl_mynn_mixlength" "0:original,1:operational,2:new blending&cloud mix length" ""

dyn_em/module_first_rk_step_part1.F

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1199,6 +1199,9 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags &
11991199
& ,ZNT=grid%znt &
12001200
& ,ysu_topdown_pblmix=config_flags%ysu_topdown_pblmix &
12011201
& ,shinhong_tke_diag=config_flags%shinhong_tke_diag &
1202+
& ,shinhong_scu_mixing=config_flags%shinhong_scu_mixing &
1203+
& ,shinhong_nonlocal_flux=config_flags%shinhong_nonlocal_flux &
1204+
& ,shinhong_ke_dissipation=config_flags%shinhong_ke_dissipation &
12021205
! paj: topo_wind
12031206
& ,CTOPO=grid%ctopo,CTOPO2=grid%ctopo2 &
12041207
! variables added for BEP

main/depend.common

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,10 @@ module_madwrf.o: \
627627
module_bl_ysu.o: \
628628
ccpp_kind_types.o \
629629
physics_mmm/bl_ysu.o
630+
631+
module_bl_shinhong.o: \
632+
ccpp_kind_types.o \
633+
physics_mmm/bl_shinhong.o
630634

631635

632636
module_bl_myjpbl.o: \

phys/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,9 @@ PHYSMMM_MODULES = \
255255
physics_mmm/mp_wsm6.o \
256256
physics_mmm/mp_wsm6_effectRad.o \
257257
physics_mmm/mp_radar.o \
258-
physics_mmm/bl_gwdo.o \
259-
physics_mmm/bl_ysu.o
258+
physics_mmm/bl_gwdo.o \
259+
physics_mmm/bl_shinhong.o \
260+
physics_mmm/bl_ysu.o
260261

261262
NOAHMP_MODULES = \
262263
noahmp/drivers/wrf/NoahmpWRFinitMod.o \

phys/module_bl_shinhong.F

Lines changed: 387 additions & 2319 deletions
Large diffs are not rendered by default.

phys/module_pbl_driver.F

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ SUBROUTINE pbl_driver( &
3434
,windfarm_wake_model, windfarm_overlap_method &
3535
,ysu_topdown_pblmix &
3636
,shinhong_tke_diag &
37+
,shinhong_scu_mixing &
38+
,shinhong_nonlocal_flux &
39+
,shinhong_ke_dissipation &
3740
! OPTIONAL for TEMF scheme
3841
,te_temf,km_temf,kh_temf &
3942
,shf_temf,qf_temf,uw_temf,vw_temf &
@@ -429,6 +432,9 @@ SUBROUTINE pbl_driver( &
429432
INTENT(IN ) :: LOWLYR
430433
!
431434
LOGICAL, INTENT(IN ) :: warm_rain
435+
LOGICAL, INTENT(IN ) :: shinhong_scu_mixing
436+
LOGICAL, INTENT(IN ) :: shinhong_nonlocal_flux
437+
LOGICAL, INTENT(IN ) :: shinhong_ke_dissipation
432438
LOGICAL, INTENT(IN ) :: is_CAMMGMP_used !BSINGH:01/31/2013: Added for CAMUWPBL
433439
LOGICAL, OPTIONAL, INTENT(IN ) :: restart,cycling !used by mynn
434440

@@ -1315,33 +1321,44 @@ SUBROUTINE pbl_driver( &
13151321
PRESENT( hol ) ) THEN
13161322
!
13171323
CALL shinhong( &
1318-
U3D=u_phytmp,V3D=v_phytmp,TH3D=th_phy,T3D=t_phy &
1324+
U3D=u_phytmp,V3D=v_phytmp,T3D=t_phy &
13191325
,QV3D=qv_curr,QC3D=qc_curr,QI3D=qi_curr &
13201326
,P3D=p_phy,P3DI=p8w,PI3D=pi_phy &
13211327
,RUBLTEN=rublten,RVBLTEN=rvblten &
13221328
,RTHBLTEN=rthblten,RQVBLTEN=rqvblten &
13231329
,RQCBLTEN=rqcblten,RQIBLTEN=rqiblten &
1324-
,FLAG_QI=flag_qi &
1330+
,FLAG_QI=flag_qi,FLAG_QC=flag_qc &
13251331
,CP=cp,G=g,ROVCP=rcp,RD=r_D,ROVG=rovg &
13261332
,DZ8W=dz8w,XLV=XLV,RV=r_v,PSFC=PSFC &
1327-
,ZNU=znu,ZNW=znw,P_TOP=p_top &
13281333
,ZNT=znt,UST=ust,HPBL=pblh &
13291334
,PSIM=fm,PSIH=fhh,XLAND=xland &
13301335
,HFX=hfx,QFX=qfx &
13311336
,U10=u10,V10=v10 &
1337+
,UOCE=uoce,VOCE=voce &
13321338
! paj
1333-
,CTOPO=ctopo,CTOPO2=ctopo2 &
1334-
,SHINHONG_TKE_DIAG=shinhong_tke_diag &
1339+
,shinhong_nonlocal_flux=shinhong_nonlocal_flux &
1340+
,shinhong_scu_mixing=shinhong_scu_mixing &
1341+
,shinhong_dissi_heating=shinhong_ke_dissipation &
1342+
,tke=tke_pbl,el=el_pbl,corf=f &
1343+
,CTOPO=ctopo,CTOPO2=ctopo2,dx=dx2d &
13351344
,WSPD=wspd,BR=br,DT=dtbl,KPBL2D=kpbl &
13361345
,EP1=ep_1,EP2=ep_2,KARMAN=karman &
1337-
,EXCH_H=exch_h,REGIME=regime &
1338-
! for grims shallow convection with shinhongpbl
1346+
,EXCH_H=exch_h,EXCH_M=exch_m &
1347+
,RTHRATEN=RTHRATEN &
1348+
! for multilayer UCM
1349+
,IDIFF=idiff,FLAG_BEP=flag_bep,FRC_URB2D=frc_urb2d &
1350+
,A_U_BEP=a_u_bep,A_V_BEP=a_v_bep,A_T_BEP=a_t_bep &
1351+
,A_Q_BEP=a_q_bep &
1352+
,A_E_BEP=a_e_bep,B_U_BEP=b_u_bep,B_V_BEP=b_v_bep &
1353+
,B_T_BEP=b_t_bep,B_Q_BEP=b_q_bep &
1354+
,B_E_BEP=b_e_bep,DLG_BEP=dlg_bep &
1355+
,DL_U_BEP=dl_u_bep,SF_BEP=sf_bep,VL_BEP=vl_bep &
1356+
! for grims shallow convection
13391357
,WSTAR=wstar,DELTA=delta &
1340-
,TKE_PBL=tke_pbl,EL_PBL=el_pbl,CORF=f &
1358+
,errmsg=errmsg,errflg=errflg &
13411359
,IDS=ids,IDE=ide,JDS=jds,JDE=jde,KDS=kds,KDE=kde &
13421360
,IMS=ims,IME=ime,JMS=jms,JME=jme,KMS=kms,KME=kme &
13431361
,ITS=its,ITE=ite,JTS=jts,JTE=jte,KTS=kts,KTE=kte &
1344-
,DX=dx,DY=dy &
13451362
)
13461363
ELSE
13471364
WRITE ( message , FMT = '(A,7(L1,1X))' ) &

phys/module_physics_init.F

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3892,16 +3892,18 @@ SUBROUTINE bl_init(STEPBL,BLDT,DT,RUBLTEN,RVBLTEN,RTHBLTEN, &
38923892
CASE (SHINHONGSCHEME)
38933893
if(isfc .ne. 1)CALL wrf_error_fatal &
38943894
( 'module_physics_init: Use sf_sfclay_physics= 1 or 91 for this pbl option' )
3895-
IF ((SF_URBAN_PHYSICS.eq.2).OR.(SF_URBAN_PHYSICS.EQ.3)) CALL wrf_error_fatal &
3896-
( 'module_physics_init: use ysu (option1), myj (option 2), or boulac (option 8) with BEP/BEM urban scheme' )
3897-
CALL shinhonginit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN,&
3898-
RQCBLTEN,RQIBLTEN,TKE_PBL,P_QI, &
3899-
PARAM_FIRST_SCALAR, &
3900-
restart, &
3901-
allowed_to_read , &
3902-
ids, ide, jds, jde, kds, kde, &
3903-
ims, ime, jms, jme, kms, kme, &
3904-
its, ite, jts, jte, kts, kte )
3895+
! if(isfc .ne. 1)CALL wrf_error_fatal &
3896+
! ( 'module_physics_init: Use sf_sfclay_physics= 1 or 91 for this pbl option' )
3897+
! IF ((SF_URBAN_PHYSICS.eq.2).OR.(SF_URBAN_PHYSICS.EQ.3)) CALL wrf_error_fatal &
3898+
! ( 'module_physics_init: use ysu (option1), myj (option 2), or boulac (option 8) with BEP/BEM urban scheme' )
3899+
! CALL shinhonginit(RUBLTEN,RVBLTEN,RTHBLTEN,RQVBLTEN,&
3900+
! RQCBLTEN,RQIBLTEN,TKE_PBL,P_QI, &
3901+
! PARAM_FIRST_SCALAR, &
3902+
! restart, &
3903+
! allowed_to_read , &
3904+
! ids, ide, jds, jde, kds, kde, &
3905+
! ims, ime, jms, jme, kms, kme, &
3906+
! its, ite, jts, jte, kts, kte )
39053907
CASE (MRFSCHEME)
39063908
if(isfc .ne. 1)CALL wrf_error_fatal &
39073909
( 'module_physics_init: Use sf_sfclay_physics= 1 or 91 for this pbl option' )

phys/physics_mmm

0 commit comments

Comments
 (0)