|
subroutine | fer_hires (dt, rhgrd, prsi, p_phy, t_phy, q, qt, lowlyr, sr, train_phy, f_ice_phy, f_rain_phy, f_rimef_phy, qc, qr, qs, rainnc, rainncv, threads, ims, ime, lm, d_ss, refl_10cm, dx1) |
| This is the driver scheme of Ferrier-Aligo microphysics scheme. NOTE: The only differences between FER_HIRES and FER_HIRES_ADVECT is that the QT, and F_* are all local variables in the advected version, and QRIMEF is only in the advected version. The innards are all the same.
|
|
subroutine | egcp01column_hr (arain, asnow, dtph, rhc_col, i_index, j_index, lsfc, p_col, qi_col, qr_col, q_col, qw_col, rimef_col, t_col, thick_col, wc_col, lm, pcond1d, pidep1d, piacw1d, piacwi1d, piacwr1d, piacr1d, picnd1d, pievp1d, pimlt1d, praut1d, pracw1d, prevp1d, pisub1d, pevap1d, dbz_col, nr_col, ns_col, vsnow1d, vrain11d, vrain21d, vci1d, nsmice1d, indexs1d, indexr1d, rflag1d, dx1) |
| This is the grid-scale microphysical processes of Ferrier-Aligo microphysics scheme (i.e., condensation and precipitation).
|
|
subroutine, public | ferrier_init_hr (gsmdt, mpi_comm_comp, mpirank, mpiroot, threads, errmsg, errflg) |
|
subroutine | my_growth_rates_nmm_hr (dtph) |
|
subroutine, public | gpvs_hr |
|
real function, public | fpvs (t) |
|
real function, public | fpvs0 (t) |
|
real function | fpvsx (t) |
|
real function | fpvsx0 (t) |
|
subroutine | ferhires_finalize () |
|
|
real, parameter | pi =3.141592653589793 |
|
real, parameter | cp =1004.6 |
|
real, parameter | epsq =1.e-12 |
|
real, parameter | grav = 9.8060226 |
|
real, parameter | rhol =1000. |
|
real, parameter | rd =287.04 |
|
real, parameter | rv =461.6 |
|
real, parameter | t0c = 273.15 |
|
real, parameter | eps =RD/RV |
|
real, parameter | eps1 =RV/RD-1. |
|
real, parameter | cliq = 4190. |
|
real, parameter | cice = 2106. |
|
real, parameter | xlv = 2.5E6 |
|
real, save, private | abfr |
|
real, save, private | cbfr |
|
real, save, private | ciacw |
|
real, save, private | ciacr |
|
real, save, private | c_n0r0 |
|
real, save, private | c_nr |
|
real, save, private | crain |
|
real, save, private | cracw |
|
real, save, private | araut |
|
real, save, private | braut |
|
real, save, private | esw0 |
|
real, save, private | rfmx1 |
|
real, save, private | arcw |
|
real, save, private | rh_ngc |
|
real, save, private | rh_ngt |
|
real, save, private | rr_drmin |
|
real, save, private | rr_dr1 |
|
real, save, private | rr_dr2 |
|
real, save, private | rr_dr3 |
|
real, save, private | rr_dr4 |
|
real, save, private | rr_dr5 |
|
real, save, private | rr_drmax |
|
real, save, private | beta6 |
|
real, save, private | rqhail |
|
real, save, private | avhail |
|
real, save, private | bvhail |
|
real, save, private | qaut0 |
|
integer, parameter, private | indexrstrmax =500 |
|
real, save, public | cn0r0 |
|
real, save, public | cn0r_dmrmin |
|
real, save, public | cn0r_dmrmax |
|
real, save, public | rfmax |
|
real, save, public | rqr_drmax |
|
real, save, public | rqr_drmin |
|
integer, parameter, private | my_t1 =1 |
|
integer, parameter, private | my_t2 =35 |
|
real, dimension(my_t1:my_t2), save, private | my_growth_nmm |
|
real, parameter, private | dmimin =.05e-3 |
|
real, parameter, private | dmimax =1.e-3 |
|
real, parameter, private | deldmi =1.e-6 |
|
real, parameter, private | xmimin =1.e6*DMImin |
|
real, parameter, public | xmimax =1.e6*DMImax |
|
real, parameter, public | xmiexp =.0536 |
|
integer, parameter, public | mdimin =XMImin |
|
integer, parameter, public | mdimax =XMImax |
|
real, dimension(:), allocatable | accri |
|
real, dimension(:), allocatable | vsnowi |
|
real, dimension(:), allocatable | venti1 |
|
real, dimension(:), allocatable | venti2 |
|
real, dimension(mdimin:mdimax), public | sdens |
|
real, parameter, private | dmrmin =.05e-3 |
|
real, parameter, private | dmrmax =1.0e-3 |
|
real, parameter, private | deldmr =1.e-6 |
|
real, parameter, private | xmrmin =1.e6*DMRmin |
|
real, parameter, private | xmrmax =1.e6*DMRmax |
|
integer, parameter, public | mdrmin =XMRmin |
|
integer, parameter, public | mdrmax =XMRmax |
|
real, dimension(:), allocatable | accrr |
|
real, dimension(:), allocatable | massr |
|
real, dimension(:), allocatable | rrate |
|
real, dimension(:), allocatable | vrain |
|
real, dimension(:), allocatable | ventr1 |
|
real, dimension(:), allocatable | ventr2 |
|
integer, parameter, private | nrime =40 |
|
real, dimension(:,:), allocatable | vel_rf |
|
integer, parameter, public | nx =7501 |
|
real, parameter | xmin =180.0 |
|
real, parameter | xmax =330.0 |
|
real, dimension(nx), save, public | tbpvs |
|
real, dimension(nx), save, public | tbpvs0 |
|
real, save, public | c1xpvs0 |
|
real, save, public | c2xpvs0 |
|
real, save, public | c1xpvs |
|
real, save, public | c2xpvs |
|
real, dimension(my_t2+8) | mp_restart_state |
|
real, dimension(nx) | tbpvs_state |
|
real, dimension(nx) | tbpvs0_state |
|
real, parameter, private | cvap =1846. |
|
real, parameter, private | xlf =3.3358e+5 |
|
real, parameter, private | xls =XLV+XLF |
|
real, parameter, private | epsq1 =1.001*EPSQ |
|
real, parameter, private | rcp =1./CP |
|
real, parameter, private | rcprv =RCP/RV |
|
real, parameter, private | rgrav =1./GRAV |
|
real, parameter, private | rrhol =1./RHOL |
|
real, parameter, private | xlv1 =XLV/CP |
|
real, parameter, private | xlf1 =XLF/CP |
|
real, parameter, private | xls1 =XLS/CP |
|
real, parameter, private | xlv2 =XLV*XLV/RV |
|
real, parameter, private | xls2 =XLS*XLS/RV |
|
real, parameter, private | xlv3 =XLV*XLV*RCPRV |
|
real, parameter, private | xls3 =XLS*XLS*RCPRV |
|
real, parameter, private | climit =10.*EPSQ |
|
real, parameter, private | climit1 =-CLIMIT |
|
real, parameter, private | c1 =1./3. |
|
real, parameter, private | dmr1 =.1E-3 |
|
real, parameter, private | dmr2 =.2E-3 |
|
real, parameter, private | dmr3 =.32E-3 |
|
real, parameter, private | dmr4 =0.45E-3 |
|
real, parameter, private | dmr5 =0.67E-3 |
|
real, parameter, private | xmr1 =1.e6*DMR1 |
|
real, parameter, private | xmr2 =1.e6*DMR2 |
|
real, parameter, private | xmr3 =1.e6*DMR3 |
|
real, parameter, private | xmr4 =1.e6*DMR4 |
|
real, parameter, private | xmr5 =1.e6*DMR5 |
|
real, parameter, private | rqrmix =0.05E-3 |
|
real, parameter, private | rqsmix =1.E-3 |
|
real, parameter, private | cdry =1.634e13 |
|
real, parameter, private | cwet =1./.224 |
|
integer, parameter | mdr1 =XMR1 |
|
integer, parameter | mdr2 =XMR2 |
|
integer, parameter | mdr3 =XMR3 |
|
integer, parameter | mdr4 =XMR4 |
|
integer, parameter | mdr5 =XMR5 |
|
logical, save | warn1 =.TRUE. |
|
logical, save | warn2 =.TRUE. |
|
logical, save | warn3 =.TRUE. |
|
logical, save | warn5 =.TRUE. |
|
real, save | pwarn =75.E2 |
|
real, save | qtwarn =1.E-3 |
|
integer, parameter | max_iterations =10 |
|
real, parameter, public | rhgrd_in =1. |
|
real, parameter, public | p_rhgrd_out =850.E2 |
|
real, parameter, public | t_ice =-40. |
|
real, parameter, public | t_icek =T0C+T_ICE |
|
real, parameter, public | t_ice_init =-12. |
|
real, parameter, public | nsi_max =250.E3 |
|
real, parameter, public | nlimin =1.0E3 |
|
real, parameter, public | n0r0 =8.E6 |
|
real, parameter, public | n0rmin =1.E4 |
|
real, parameter, public | ncw =250.E6 |
|
real, dimension(:), allocatable | massi |
|