Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
25 changes: 24 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

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,24 @@ 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"
state real sigma_out ikj misc 1 - rh "SIGMA" "LOGNORMAL WIDTH" ""
state real prrwau_out ikj misc 1 - rh "PRR_WAU" "" ""
state real pnrwau_out ikj misc 1 - rh "PNR_WAU" "" ""
state real pncwau_out ikj misc 1 - rh "PNC_WAU" "" ""
state real prrrcw_out ikj misc 1 - rh "PRR_RCW" "" ""
state real pncrcw_out ikj misc 1 - rh "PNC_RCW" "" ""
state real ilamr_out ikj misc 1 - rh "ILAMR" "RAIN SHAPE PARAM" ""
state real ilamc_out ikj misc 1 - rh "ILAMC" "" ""


Comment thread
rconrick marked this conversation as resolved.
Outdated
Comment thread
rconrick marked this conversation as resolved.
Outdated






Comment thread
dudhia marked this conversation as 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
7 changes: 6 additions & 1 deletion dyn_em/solve_em.F
Original file line number Diff line number Diff line change
Expand Up @@ -3977,7 +3977,12 @@ 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 &
& ,sigma_out=grid%sigma_out & ! for RCON; warm rain outputs
& ,prrwau_out=grid%prrwau_out,pnrwau_out=grid%pnrwau_out,pncwau_out=grid%pncwau_out & ! for RCON; warm rain outputs
& ,prrrcw_out=grid%prrrcw_out,pncrcw_out=grid%pncrcw_out,ilamr_out=grid%ilamr_out,ilamc_out=grid%ilamc_out,cloudnc=grid%cloudnc & ! for RCON; warm rain outputs
)
Comment thread
dudhia marked this conversation as resolved.


BENCH_END(micro_driver_tim)

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
109 changes: 108 additions & 1 deletion phys/module_microphysics_driver.F
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,15 @@ SUBROUTINE microphysics_driver( &
,perts_qsnow, perts_ni &
,pert_thom_qv,pert_thom_qc,pert_thom_qi &
,pert_thom_qs,pert_thom_ni &
,sigma_out & ! for RCON; warm rain outputs
,prrwau_out,pnrwau_out,pncwau_out & ! for RCON; warm rain outputs
,prrrcw_out,pncrcw_out,ilamr_out,ilamc_out,cloudnc & ! for RCON; warm rain outputs
Comment thread
rconrick marked this conversation as resolved.
Outdated
)

! 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 +223,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 @@ -603,6 +607,13 @@ SUBROUTINE microphysics_driver( &

INTEGER, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT) :: LOWLYR


REAL, DIMENSION( ims:ime , jms:jme ) , OPTIONAL, INTENT(OUT) :: CLOUDNC !RC
REAL, DIMENSION( ims:ime , kms:kme, jms:jme ) , OPTIONAL, INTENT(OUT) :: sigma_out !RC
REAL, DIMENSION( ims:ime , kms:kme, jms:jme ) , OPTIONAL, INTENT(OUT) :: prrwau_out,pnrwau_out,pncwau_out, prrrcw_out,pncrcw_out,ilamr_out,ilamc_out !RC



!
! Optional
!
Expand Down Expand Up @@ -1025,6 +1036,102 @@ SUBROUTINE microphysics_driver( &
CALL wrf_error_fatal ( 'arguments not present for calling mkessler' )
ENDIF
#endif
!
!
! rcon mp scheme is below.
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, &
SIGMA_OUT=sigma_out, &
PRRWAU_OUT=prrwau_out,PNRWAU_OUT=pnrwau_out,PNCWAU_OUT=pncwau_out, &
PRRRCW_OUT=prrrcw_out,PNCRCW_OUT=pncrcw_out,ILAMR_OUT=ilamr_out, &
ILAMC_OUT=ilamc_out)


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


Comment thread
rconrick marked this conversation as resolved.
Outdated





!
CASE (THOMPSONAERO)
if (pert_thom .and. multi_perturb == 1) then
Expand Down
Loading