Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding udm microphysics as option 27 #2147

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -3033,6 +3033,7 @@ package wdm6scheme mp_physics==16 - moist:qv,qc
package nssl_2mom mp_physics==18 - moist:qv,qc,qr,qi,qs,qg
package wsm7scheme mp_physics==24 - moist:qv,qc,qr,qi,qs,qg,qh;state:re_cloud,re_ice,re_snow
package wdm7scheme mp_physics==26 - moist:qv,qc,qr,qi,qs,qg,qh;scalar:qnn,qnc,qnr;state:re_cloud,re_ice,re_snow
package udmscheme mp_physics==27 - moist:qv,qc,qr,qi,qs,qg,qh;scalar:qnn,qnc,qnr;state:re_cloud,re_ice,re_snow
package thompsonaero mp_physics==28 - moist:qv,qc,qr,qi,qs,qg;scalar:qni,qnr,qnc,qnwfa,qnifa,qnbca;state:re_cloud,re_ice,re_snow,qnwfa2d,qnifa2d,taod5503d,taod5502d
package thompsongh mp_physics==38 - moist:qv,qc,qr,qi,qs,qg;scalar:qni,qnr,qnc,qng,qvolg,qnwfa,qnifa,qnbca;state:re_cloud,re_ice,re_snow,qnwfa2d,qnifa2d,taod5503d,taod5502d
package p3_1category mp_physics==50 - moist:qv,qc,qr,qi;scalar:qni,qnr,qir,qib;state:re_cloud,re_ice,vmi3d,rhopo3d,di3d,refl_10cm,th_old,qv_old
Expand Down Expand Up @@ -3087,6 +3088,7 @@ package nssl_2mom_dfi mp_physics_dfi==18 - dfi_moist:dfi
#package nssl_2momg_dfi mp_physics_dfi==22 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg;dfi_scalar:dfi_qndrop,dfi_qnr,dfi_qni,dfi_qns,dfi_qng,dfi_qvolg;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package wsm7scheme_dfi mp_physics_dfi==24 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg,dfi_qh;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package wdm7scheme_dfi mp_physics_dfi==26 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg,dfi_qh;dfi_scalar:dfi_qnn,dfi_qnc,dfi_qnr;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package udmscheme_dfi mp_physics_dfi==27 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg,dfi_qh;dfi_scalar:dfi_qnn,dfi_qnc,dfi_qnr;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package thompsonaero_dfi mp_physics_dfi==28 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg;dfi_scalar:dfi_qni,dfi_qnr,dfi_qnc,dfi_qnwfa,dfi_qnifa,dfi_qnbca;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package thompsongh_dfi mp_physics_dfi==38 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg;dfi_scalar:dfi_qni,dfi_qnr,dfi_qng,dfi_qvolg,dfi_qnc,dfi_qnwfa,dfi_qnifa,dfi_qnbca;state:dfi_re_cloud,dfi_re_ice,dfi_re_snow
package p3_1category_dfi mp_physics_dfi==50 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi;dfi_scalar:dfi_qni,dfi_qnr,dfi_qir,dfi_qib;state:dfi_re_cloud,dfi_re_ice
Expand Down
1 change: 1 addition & 0 deletions phys/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ MODULES = \
module_mp_wdm5.o \
module_mp_wdm6.o \
module_mp_wdm7.o \
module_mp_udm.o \
module_mp_ntu.o \
module_mp_cammgmp_driver.o \
module_ra_sw.o \
Expand Down
55 changes: 54 additions & 1 deletion phys/module_microphysics_driver.F
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ SUBROUTINE microphysics_driver( &
,WSM6SCHEME, ETAMPNEW, FER_MP_HIRES, THOMPSON, THOMPSONAERO, THOMPSONGH, FAST_KHAIN_LYNN_SHPUND, MORR_TWO_MOMENT &
,GSFCGCESCHEME, WDM5SCHEME, WDM6SCHEME, NSSL_2MOM, MADWRF_MP &
,FER_MP_HIRES_ADVECT &
,WSM7SCHEME, WDM7SCHEME &
,WSM7SCHEME, WDM7SCHEME, UDMSCHEME &
,NUWRF4ICESCHEME &
,MILBRANDT2MOM , CAMMGMPSCHEME,FULL_KHAIN_LYNN, P3_1CATEGORY, P3_1CATEGORY_NC, P3_2CATEGORY, P3_1CAT_3MOM &
,MORR_TM_AERO, JENSEN_ISHMAEL, SPRINKLER, NTU !,MILBRANDT3MOM
Expand Down Expand Up @@ -237,6 +237,7 @@ SUBROUTINE microphysics_driver( &
USE module_mp_wdm5
USE module_mp_wdm6
USE module_mp_wdm7
USE module_mp_udm
USE module_mp_milbrandt2mom
# if (EM_CORE == 1)
USE module_mp_cammgmp_driver, ONLY: CAMMGMP ! CAM5's microphysics driver
Expand Down Expand Up @@ -2566,6 +2567,58 @@ SUBROUTINE microphysics_driver( &
CALL wrf_error_fatal ( 'arguments not present for calling wdm7')
ENDIF

CASE (UDMSCHEME)
CALL wrf_debug ( 100 , 'microphysics_driver: calling udm' )
IF ( PRESENT( QV_CURR ) .AND. PRESENT ( QC_CURR ) .AND. &
PRESENT( QR_CURR ) .AND. PRESENT ( QI_CURR ) .AND. &
PRESENT( QS_CURR ) .AND. PRESENT ( QG_CURR ) .AND. &
PRESENT( QH_CURR ) .AND. &
PRESENT( QNN_CURR ) .AND. PRESENT ( QNC_CURR ) .AND. &
PRESENT( QNR_CURR ).AND. &
PRESENT( RAINNC ) .AND. PRESENT ( RAINNCV ) ) THEN
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we still check all these variables' presence if we only have one dynamic core?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is part of a bigger question, but if they are optional in the driver we need these.

CALL udm( &
TH=th &
,Q=qv_curr &
,QC=qc_curr &
,QR=qr_curr &
,QI=qi_curr &
,QS=qs_curr &
,QG=qg_curr &
,QH=qh_curr &
,NN=qnn_curr &
,NC=qnc_curr &
,NR=qnr_curr &
,DEN=rho,PII=pi_phy,P=p,DELZ=dz8w &
,DELT=dt,G=g,CPD=cp,CPV=cpv,CCN0=ccn_conc & ! RAS
,RD=r_d,RV=r_v,T0C=svpt0 &
,EP1=ep_1, EP2=ep_2, QMIN=epsilon &
,XLS=xls, XLV0=xlv, XLF0=xlf &
,DEN0=rhoair0, DENR=rhowater &
,CLIQ=cliq,CICE=cice,PSAT=psat &
,xland=xland & ! land mask, 1: land, 2: water
,RAIN=rainnc ,RAINNCV=rainncv &
,SNOW=snownc ,SNOWNCV=snowncv &
,SR=sr &
,REFL_10CM=refl_10cm & ! added for radar reflectivity
,diagflag=diagflag & ! added for radar reflectivity
,do_radar_ref=do_radar_ref & ! added for radar reflectivity
,GRAUPEL=graupelnc ,GRAUPELNCV=graupelncv &
,HAIL=hailnc ,HAILNCV=hailncv &
,ITIMESTEP=itimestep &
,has_reqc=has_reqc & ! for radiation +
,has_reqi=has_reqi &
,has_reqs=has_reqs &
,re_cloud=re_cloud &
,re_ice=re_ice &
,re_snow=re_snow & ! for radiation -
,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde &
,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme &
,ITS=its,ITE=ite, JTS=jts,JTE=jte, KTS=kts,KTE=kte &
)
ELSE
CALL wrf_error_fatal ( 'arguments not present for calling udm')
ENDIF

CASE (ETAMPNEW) !-- Operational 4-km High-Resolution Window (HRW) version
CALL wrf_debug ( 100 , 'microphysics_driver: calling etampnew')

Expand Down
Loading