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

RCON Microphysics #2144

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 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
9 changes: 8 additions & 1 deletion Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -3045,7 +3045,8 @@ package ntu mp_physics==56 - moist:qv,qc
package etampnew mp_physics==95 - moist:qv,qc,qr,qs;scalar:qt;state:f_ice_phy,f_rain_phy,f_rimef_phy
package gsfcgcescheme mp_physics==97 - moist:qv,qc,qr,qi,qs,qg
package madwrf_mp mp_physics==96 - moist:qv,qc,qi,qs

package rcon_mp_scheme mp_physics==29 - 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,cloudnc

package nssl2mconc nssl_2moment_on==1 - scalar:qndrop,qnr,qni,qns,qng;state:re_cloud,re_ice,re_snow
package nssl3mg nssl_3moment==1 - scalar:qzr,qzg
package nssl3m nssl_3moment==2 - scalar:qzr,qzg,qzh
Expand Down Expand Up @@ -3097,6 +3098,7 @@ package jensen_ishmael_dfi mp_physics_dfi==55 - dfi_moist:dfi
package ntu_dfi mp_physics_dfi==56 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg,dfi_qh;dfi_scalar:dfi_qnc,dfi_qnr,dfi_qni,dfi_qns,dfi_qng,dfi_qnh,dfi_qdcn,dfi_qtcn,dfi_qccn,dfi_qrcn,dfi_qnin,dfi_fi,dfi_fs,dfi_vi,dfi_vs,dfi_vg,dfi_ai,dfi_as,dfi_ag,dfi_ah,dfi_i3m
package etampnew_dfi mp_physics_dfi==95 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qs;dfi_scalar:dfi_qt
package gsfcgcescheme_dfi mp_physics_dfi==97 - dfi_moist:dfi_qv,dfi_qc,dfi_qr,dfi_qi,dfi_qs,dfi_qg
package rcon_dfi mp_physics_dfi==29 - 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 noprogn progn==0 - -
package progndrop progn==1 - scalar:qndrop;dfi_scalar:dfi_qndrop;state:qndropsource
Expand Down Expand Up @@ -3654,3 +3656,8 @@ rconfig integer windfarm_wake_model namelist,physics max_domai
# wake overlap method, M1, M2, M3, M4 [1, 2, 3, 4]
rconfig integer windfarm_overlap_method namelist,physics max_domains 4 rh "windfarm_overlap_method" "" ""
rconfig real windfarm_deg namelist,physics max_domains 0 - "windfarm_deg" "for windfarm ideal case" "degree"


# outputs for RCON model.
state real CLOUDNC ij misc 1 - rh "CLOUDNC" "ACCUMULATED TOTAL GRID SCALE CLOUD PRECIPITATION" "mm"

dudhia marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 2 additions & 0 deletions Registry/registry.var
Original file line number Diff line number Diff line change
Expand Up @@ -596,6 +596,7 @@ package wdm6scheme mp_physics==16 - moist:qv,qc
# Note: Options 17, 19, 21, 22 are deprecated but still reserved for compatibility -- for now
package nssl_2mom mp_physics==18 - moist:qv,qc,qr,qi,qs,qg
package thompsonaero mp_physics==28 - moist:qv,qc,qr,qi,qs,qg
package rcon_mp_scheme mp_physics==29 - moist:qv,qc,qr,qi,qs,qg
package p3_1category mp_physics==50 - moist:qv,qc,qr,qi
package p3_1category_nc mp_physics==51 - moist:qv,qc,qr,qi
package p3_2category mp_physics==52 - moist:qv,qc,qr,qi,qi2
Expand Down Expand Up @@ -627,6 +628,7 @@ package wdm6_4dvar mp_physics_4dvar==16 - g_moist:g_q
# Note: Options 17, 19, 21, 22 are deprecated but still reserved for compatibility -- for now
package nssl_2mom_4dvar mp_physics_4dvar==18 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg,g_qh;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg,a_qh
package thompsonaero_4dvar mp_physics_4dvar==28 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package rcon_mp_scheme_4dvar mp_physics_4dvar==29 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package p3_1category_4dvar mp_physics_4dvar==50 - g_moist:g_qv,g_qc,g_qr,g_qi;a_moist:a_qv,a_qc,a_qr,a_qi
package p3_1category_nc_4dvar mp_physics_4dvar==51 - g_moist:g_qv,g_qc,g_qr,g_qi;a_moist:a_qv,a_qc,a_qr,a_qi
package p3_2category_4dvar mp_physics_4dvar==52 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qi2;a_moist:a_qv,a_qc,a_qr,a_qi,a_qi2
Expand Down
5 changes: 4 additions & 1 deletion dyn_em/solve_em.F
Original file line number Diff line number Diff line change
Expand Up @@ -3977,7 +3977,10 @@ END SUBROUTINE CMAQ_DRIVER
& ,pert_thom_qc=config_flags%pert_thom_qc &
& ,pert_thom_qi=config_flags%pert_thom_qi &
& ,pert_thom_qs=config_flags%pert_thom_qs &
& ,pert_thom_ni=config_flags%pert_thom_ni )
& ,pert_thom_ni=config_flags%pert_thom_ni &
& ,cloudnc=grid%cloudnc &
)
dudhia marked this conversation as resolved.
Show resolved Hide resolved


BENCH_END(micro_driver_tim)

Expand Down
2 changes: 1 addition & 1 deletion external/io_netcdf/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ diffwrf: diffwrf.F90
if [ \( -f $(NETCDFPATH)/lib/libnetcdff.a -o -f $(NETCDFPATH)/lib/libnetcdff.so -o -f $(NETCDFPATH)/lib/libnetcdff.dll.a \) ] ; then \
$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBFFS) ;\
else \
$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBS) ;\
$(FC) $(FFLAGS) $(LDFLAGS) -o diffwrf diffwrf.o $(OBJSL) ../../frame/wrf_debug.o ../../frame/module_wrf_error.o ../../frame/clog.o $(ESMF_IO_LIB_EXT) $(LIBFS) ;\
fi ; \
else \
echo "***************************************************************************** " ; \
Expand Down
10 changes: 10 additions & 0 deletions main/depend.common
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,14 @@ module_mp_thompson.o: \
module_mp_radar.o


module_mp_rcon.o: \
../frame/module_domain.o \
../share/module_model_constants.o \
../frame/module_timing.o \
../frame/module_wrf_error.o \
module_mp_radar.o


module_mp_nssl_2mom.o: \
../frame/module_wrf_error.o \
../share/module_model_constants.o
Expand Down Expand Up @@ -989,6 +997,7 @@ module_physics_init.o: \
module_fdda_spnudging.o \
module_fddaobs_rtfdda.o \
module_mp_thompson.o \
module_mp_rcon.o \
module_mp_gsfcgce.o \
module_mp_gsfcgce_4ice_nuwrf.o \
module_mp_morr_two_moment.o \
Expand Down Expand Up @@ -1035,6 +1044,7 @@ module_microphysics_driver.o: \
module_mp_wsm6r.o \
module_mp_fer_hires.o \
module_mp_thompson.o \
module_mp_rcon.o \
module_mp_gsfcgce.o \
module_mp_gsfcgce_4ice_nuwrf.o \
module_mp_morr_two_moment.o \
Expand Down
1 change: 1 addition & 0 deletions phys/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ MODULES = \
module_mp_etanew.o \
module_mp_fer_hires.o \
module_mp_thompson.o \
module_mp_rcon.o \
module_fire_emis.o \
module_mp_SBM_polar_radar.o \
module_mp_full_sbm.o \
Expand Down
89 changes: 88 additions & 1 deletion phys/module_microphysics_driver.F
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,13 @@ SUBROUTINE microphysics_driver( &
,perts_qsnow, perts_ni &
,pert_thom_qv,pert_thom_qc,pert_thom_qi &
,pert_thom_qs,pert_thom_ni &
,cloudnc &
)

! Framework
USE module_state_description, ONLY : &
KESSLERSCHEME, LINSCHEME, SBU_YLINSCHEME, WSM3SCHEME, WSM5SCHEME &
,WSM6SCHEME, ETAMPNEW, FER_MP_HIRES, THOMPSON, THOMPSONAERO, THOMPSONGH, FAST_KHAIN_LYNN_SHPUND, MORR_TWO_MOMENT &
,WSM6SCHEME, ETAMPNEW, FER_MP_HIRES, THOMPSON, THOMPSONAERO, RCON_MP_SCHEME, THOMPSONGH, FAST_KHAIN_LYNN_SHPUND, MORR_TWO_MOMENT &
,GSFCGCESCHEME, WDM5SCHEME, WDM6SCHEME, NSSL_2MOM, MADWRF_MP &
,FER_MP_HIRES_ADVECT &
,WSM7SCHEME, WDM7SCHEME &
Expand Down Expand Up @@ -220,6 +221,7 @@ SUBROUTINE microphysics_driver( &
USE module_mp_wsm7
USE module_mp_etanew
USE module_mp_fer_hires
USE module_mp_rcon
USE module_mp_thompson
USE module_mp_full_sbm
#if ( BUILD_SBM_FAST == 1 )
Expand Down Expand Up @@ -684,6 +686,7 @@ SUBROUTINE microphysics_driver( &
,GRAUPELNCV &
,HAILNC &
,HAILNCV &
,CLOUDNC &
,hail_maxk1, hail_max2d

#if ( WRF_CHEM == 1)
Expand Down Expand Up @@ -1025,6 +1028,90 @@ SUBROUTINE microphysics_driver( &
CALL wrf_error_fatal ( 'arguments not present for calling mkessler' )
ENDIF
#endif
!
!
CASE (RCON_MP_SCHEME)

CALL wrf_debug ( 100 , 'microphysics_driver: calling RCON' )
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( QNR_CURR) .AND. PRESENT ( QNI_CURR) .AND. &
PRESENT( QNC_CURR) .AND. PRESENT ( QNWFA_CURR) .AND. &
PRESENT( QNIFA_CURR).AND.PRESENT ( QNWFA2D) .AND. &
PRESENT( QNIFA2D) .AND. &
PRESENT( SNOWNC) .AND. PRESENT ( SNOWNCV) .AND. &
PRESENT( GRAUPELNC).AND. PRESENT ( GRAUPELNCV) .AND. &
PRESENT( RAINNC ) .AND. PRESENT ( RAINNCV ) ) THEN
#if ( WRF_CHEM == 1 )
qv_b4mp(its:ite,kts:kte,jts:jte) = qv_curr(its:ite,kts:kte,jts:jte)
qc_b4mp(its:ite,kts:kte,jts:jte) = qc_curr(its:ite,kts:kte,jts:jte)
qi_b4mp(its:ite,kts:kte,jts:jte) = qi_curr(its:ite,kts:kte,jts:jte)
qs_b4mp(its:ite,kts:kte,jts:jte) = qs_curr(its:ite,kts:kte,jts:jte)
#endif
CALL mp_rcon_driver( &
QV=qv_curr, &
QC=qc_curr, &
QR=qr_curr, &
QI=qi_curr, &
QS=qs_curr, &
QG=qg_curr, &
NI=qni_curr, &
NR=qnr_curr, &
NC=qnc_curr, &
NWFA=qnwfa_curr, &
NIFA=qnifa_curr, &
NBCA=qnbca_curr, &
NWFA2D=qnwfa2d, &
NIFA2D=qnifa2d, &
NBCA2D=qnbca2d, &
aer_init_opt=config_flags%aer_init_opt, &
wif_input_opt=config_flags%wif_input_opt, &
TH=th, &
PII=pi_phy, &
P=p, &
W=w, &
DZ=dz8w, &
DT_IN=dt, &
ITIMESTEP=itimestep, &
RAINNC=RAINNC, &
RAINNCV=RAINNCV, &
CLOUDNC=CLOUDNC, &
SNOWNC=SNOWNC, &
SNOWNCV=SNOWNCV, &
GRAUPELNC=GRAUPELNC, &
GRAUPELNCV=GRAUPELNCV, &
SR=SR, &
#if ( WRF_CHEM == 1 )
WETSCAV_ON=config_flags%wetscav_onoff == 1, &
RAINPROD=rainprod, &
EVAPPROD=evapprod, &
#endif
REFL_10CM=refl_10cm, &
diagflag=diagflag, &
ke_diag = ke_diag, &
do_radar_ref=do_radar_ref, &
re_cloud=re_cloud, &
re_ice=re_ice, &
re_snow=re_snow, &
has_reqc=has_reqc, &
has_reqi=has_reqi, &
has_reqs=has_reqs, &
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)


IF (config_flags%aer_fire_emit_opt.gt.0) then
CALL wrf_debug ( 200 , ' call fire_emis_simple_plumerise' )
CALL fire_emis_simple_plumerise (config_flags%wif_fire_inj, config_flags%aer_fire_emit_opt &
,z_at_mass, pblh, qnwfa_curr, qnbca_curr &
,qnocbb2d, qnbcbb2d, dt, ids, ide, jds, jde, kds, kde &
,ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte )
ENDIF
ELSE
CALL wrf_error_fatal ( 'arguments not present for calling rcon' )
ENDIF
!
CASE (THOMPSONAERO)
if (pert_thom .and. multi_perturb == 1) then
Expand Down
Loading