This file contains process rates and utility functions used by the MG microphysics.
More...
|
subroutine, public | micro_mg_utils::micro_mg_utils_init (kind, rair, rh2o, cpair, tmelt_in, latvap, latice, dcs) |
| Initialize module variables. More...
|
|
type(mghydrometeorprops) function | micro_mg_utils::newmghydrometeorprops (rho, eff_dim, lambda_bounds, min_mean_mass) |
| Constructor for a constituent property object. More...
|
|
pure real(r8) function | micro_mg_utils::rising_factorial_r8 (x, n) |
|
pure real(r8) function | micro_mg_utils::rising_factorial_integer (x, n) |
|
elemental real(r8) function | micro_mg_utils::calc_ab (t, qv, xxl) |
|
elemental subroutine | micro_mg_utils::size_dist_param_liq_line (props, qcic, ncic, rho, pgam, lamc) |
| get cloud droplet size distribution parameters More...
|
|
subroutine | micro_mg_utils::size_dist_param_liq_vect (props, qcic, ncic, rho, pgam, lamc, mgncol) |
| This subroutine gets cloud droplet size distribution parameters. More...
|
|
elemental subroutine | micro_mg_utils::size_dist_param_basic_line (props, qic, nic, lam, n0) |
| Basic routine for getting size distribution parameters. More...
|
|
subroutine | micro_mg_utils::size_dist_param_basic_vect (props, qic, nic, lam, mgncol, n0) |
| This subroutine calculates. More...
|
|
elemental subroutine | micro_mg_utils::size_dist_param_ice_line (props, qic, nic, lam, n0) |
| ice routine for getting size distribution parameters. More...
|
|
subroutine | micro_mg_utils::size_dist_param_ice_vect (props, qic, nic, lam, mgncol, n0) |
| This subroutine. More...
|
|
real(r8) elemental function, public | micro_mg_utils::avg_diameter (q, n, rho_air, rho_sub) |
| Finds the average diameter of particles given their density, and mass/number concentrations in the air. Assumes that diameter follows an exponential distribution. More...
|
|
elemental real(r8) function | micro_mg_utils::var_coef_r8 (relvar, a) |
| Finds a coefficient for process rates based on the relative variance of cloud water. More...
|
|
elemental real(r8) function | micro_mg_utils::var_coef_integer (relvar, a) |
| Finds a coefficient for process rates based on the relative variance of cloud water. More...
|
|
subroutine, public | micro_mg_utils::ice_deposition_sublimation (t, qv, qi, ni, icldm, rho, dv, qvl, qvi, berg, vap_dep, ice_sublim, mgncol) |
| Initial ice deposition and sublimation loop. Run before the main loop This subroutine written by Peter Caldwell. More...
|
|
subroutine, public | micro_mg_utils::kk2000_liq_autoconversion (microp_uniform, qcic, ncic, rho, relvar, prc, nprc, nprc1, mgncol) |
| autoconversion of cloud liquid water to rain formula from Khrouditnov and Kogan (2000), modified for sub-grid distribution of qc minimum qc of 1 x 10^-8 prevents floating point error More...
|
|
subroutine, public | micro_mg_utils::sb2001v2_liq_autoconversion (pgam, qc, nc, qr, rho, relvar, au, nprc, nprc1, mgncol) |
| This subroutine. More...
|
|
subroutine, public | micro_mg_utils::liu_liq_autoconversion (pgam, qc, nc, qr, rho, relvar, au, nprc, nprc1, mgncol) |
| Anning Cheng 10/5/2017 add Liu et al. autoconversion. More...
|
|
subroutine, public | micro_mg_utils::sb2001v2_accre_cld_water_rain (qc, nc, qr, rho, relvar, pra, npra, mgncol) |
|
subroutine, public | micro_mg_utils::ice_autoconversion (t, qiic, lami, n0i, dcs, ac_time, prci, nprci, mgncol) |
| Autoconversion of cloud ice to snow similar to Ferrier (1994) More...
|
|
subroutine, public | micro_mg_utils::gmao_ice_autoconversion (t, qiic, niic, lami, n0i, dcs, ac_time, prci, nprci, mgncol) |
| GMAO ice autoconversion. More...
|
|
subroutine, public | micro_mg_utils::immersion_freezing (microp_uniform, t, pgam, lamc, qcic, ncic, relvar, mnuccc, nnuccc, mgncol) |
| immersion freezing (Bigg, 1953) More...
|
|
subroutine, public | micro_mg_utils::contact_freezing (microp_uniform, t, p, rndst, nacon, pgam, lamc, qcic, ncic, relvar, mnucct, nnucct, mgncol, mdust) |
| contact freezing (-40<T<-3 C) (Young, 1974) with hooks into simulated dust dust size and number in multiple bins are read in from companion routine More...
|
|
subroutine, public | micro_mg_utils::snow_self_aggregation (t, rho, asn, rhosn, qsic, nsic, nsagg, mgncol) |
| snow self-aggregation from passarelli, 1978, used by reisner, 1998 More...
|
|
subroutine, public | micro_mg_utils::accrete_cloud_water_snow (t, rho, asn, uns, mu, qcic, ncic, qsic, pgam, lamc, lams, n0s, psacws, npsacws, mgncol) |
| accretion of cloud droplets onto snow/graupel More...
|
|
subroutine, public | micro_mg_utils::secondary_ice_production (t, psacws, msacwi, nsacwi, mgncol) |
| add secondary ice production due to accretion of droplets by snow More...
|
|
subroutine, public | micro_mg_utils::accrete_rain_snow (t, rho, umr, ums, unr, uns, qric, qsic, lamr, n0r, lams, n0s, pracs, npracs, mgncol) |
| accretion of rain water by snow More...
|
|
subroutine, public | micro_mg_utils::heterogeneous_rain_freezing (t, qric, nric, lamr, mnuccr, nnuccr, mgncol) |
| heterogeneous freezing of rain drops More...
|
|
subroutine, public | micro_mg_utils::accrete_cloud_water_rain (microp_uniform, qric, qcic, ncic, relvar, accre_enhan, pra, npra, mgncol) |
| accretion of cloud liquid water by rain formula from Khrouditnov and Kogan (2000) More...
|
|
subroutine, public | micro_mg_utils::self_collection_rain (rho, qric, nric, nragg, mgncol) |
| Self-collection of rain drops from Beheng(1994) More...
|
|
subroutine, public | micro_mg_utils::accrete_cloud_ice_snow (t, rho, asn, qiic, niic, qsic, lams, n0s, prai, nprai, mgncol) |
| Accretion of cloud ice by snow. More...
|
|
subroutine, public | micro_mg_utils::evaporate_sublimate_precip (t, rho, dv, mu, sc, q, qvl, qvi, lcldm, precip_frac, arn, asn, qcic, qiic, qric, qsic, lamr, n0r, lams, n0s, pre, prds, am_evp_st, mgncol) |
| calculate evaporation/sublimation of rain and snow More...
|
|
subroutine | micro_mg_utils::evaporate_sublimate_precip_graupel (t, rho, dv, mu, sc, q, qvl, qvi, lcldm, precip_frac, arn, asn, agn, bg, qcic, qiic, qric, qsic, qgic, lamr, n0r, lams, n0s, lamg, n0g, pre, prds, prdg, am_evp_st, mgncol) |
| evaporation/sublimation of rain, snow and graupel More...
|
|
subroutine, public | micro_mg_utils::bergeron_process_snow (t, rho, dv, mu, sc, qvl, qvi, asn, qcic, qsic, lams, n0s, bergs, mgncol) |
| bergeron process - evaporation of droplets and deposition onto snow More...
|
|
subroutine | micro_mg_utils::graupel_collecting_snow (qsic, qric, umr, ums, rho, lamr, n0r, lams, n0s, psacr, mgncol) |
| Collection of snow by rain to form graupel. More...
|
|
subroutine | micro_mg_utils::graupel_collecting_cld_water (qgic, qcic, ncic, rho, n0g, lamg, bg, agn, psacwg, npsacwg, mgncol) |
| Collection of cloud water by graupel. More...
|
|
subroutine | micro_mg_utils::graupel_riming_liquid_snow (psacws, qsic, qcic, nsic, rho, rhosn, rhog, asn, lams, n0s, dtime, pgsacw, nscng, mgncol) |
| Conversion of rimed cloud water onto snow to graupel/hail. More...
|
|
subroutine | micro_mg_utils::graupel_collecting_rain (qric, qgic, umg, umr, ung, unr, rho, n0r, lamr, n0g, lamg, pracg, npracg, mgncol) |
| CHANGE IN Q,N COLLECTION RAIN BY GRAUPEL. More...
|
|
subroutine | micro_mg_utils::graupel_rain_riming_snow (pracs, npracs, psacr, qsic, qric, nric, nsic, n0s, lams, n0r, lamr, dtime, pgracs, ngracs, mgncol) |
| Rain riming snow to graupel. More...
|
|
subroutine | micro_mg_utils::graupel_rime_splintering (t, qcic, qric, qgic, psacwg, pracg, qmultg, nmultg, qmultrg, nmultrg, mgncol) |
| Rime splintering. More...
|
|
pure real(r8) function | micro_mg_utils::no_limiter () |
|
pure logical function | micro_mg_utils::limiter_is_on (lim) |
|
real(r8) function | micro_mg_utils::gamma_incomp (muice, x) |
|
|
type(mghydrometeorprops), public | micro_mg_utils::mg_liq_props |
|
type(mghydrometeorprops), public | micro_mg_utils::mg_ice_props |
|
type(mghydrometeorprops), public | micro_mg_utils::mg_rain_props |
|
type(mghydrometeorprops), public | micro_mg_utils::mg_snow_props |
|
type(mghydrometeorprops), public | micro_mg_utils::mg_graupel_props |
|
real(r8), parameter, public | micro_mg_utils::pi = 3.14159265358979323846_r8 |
| Pi to 20 digits; more than enough to reach the limit of double precision. More...
|
|
real(r8), parameter, public | micro_mg_utils::omsm = 1._r8 - 1.e-6_r8 |
| "One minus small number": number near unity for round-off issues. More...
|
|
real(r8), parameter, public | micro_mg_utils::qsmall = 1.e-18_r8 |
| Smallest mixing ratio considered in microphysics. More...
|
|
real(r8), parameter, public | micro_mg_utils::mincld = 0.000001_r8 |
| minimum allowed cloud fraction More...
|
|
real(r8), parameter, public | micro_mg_utils::rhosn = 250._r8 |
| bulk density snow More...
|
|
real(r8), parameter, public | micro_mg_utils::rhoi = 500._r8 |
| bulk density ice More...
|
|
real(r8), parameter, public | micro_mg_utils::rhow = 1000._r8 |
| bulk density liquid More...
|
|
real(r8), parameter, public | micro_mg_utils::rhows = 917._r8 |
| bulk density water solid More...
|
|
real(r8), parameter, public | micro_mg_utils::rhog = 500._r8 |
|
real(r8), parameter, public | micro_mg_utils::rhoh = 400._r8 |
|
real(r8), parameter, public | micro_mg_utils::ac = 3.e7_r8 |
|
real(r8), parameter, public | micro_mg_utils::bc = 2._r8 |
|
real(r8), parameter, public | micro_mg_utils::as = 11.72_r8 |
|
real(r8), parameter, public | micro_mg_utils::bs = 0.41_r8 |
|
real(r8), parameter, public | micro_mg_utils::ai = 700._r8 |
|
real(r8), parameter, public | micro_mg_utils::bi = 1._r8 |
|
real(r8), parameter, public | micro_mg_utils::aj = ac*((rhoi/rhows)**(bc/3._r8))*rhows/rhow |
|
real(r8), parameter, public | micro_mg_utils::bj = bc |
|
real(r8), parameter, public | micro_mg_utils::ar = 841.99667_r8 |
|
real(r8), parameter, public | micro_mg_utils::br = 0.8_r8 |
|
real(r8), parameter, public | micro_mg_utils::ag = 19.3_r8 |
|
real(r8), parameter, public | micro_mg_utils::bg = 0.37_r8 |
|
real(r8), parameter, public | micro_mg_utils::ah = 114.5_r8 |
|
real(r8), parameter, public | micro_mg_utils::bh = 0.5_r8 |
|
real(r8), parameter, public | micro_mg_utils::mi0 = 4._r8/3._r8*pi*rhoi*(1.e-6_r8)**3 |
| mass of new crystal due to aerosol freezing and growth (kg) Make this consistent with the lower bound, to support UTLS and stratospheric ice, and the smaller ice size limit. More...
|
|
real(r8), parameter, public | micro_mg_utils::mg0 = 1.6e-10_r8 |
|
real(r8), parameter, public | micro_mg_utils::mmult = 4._r8/3._r8*pi*rhoi*(5.e-6_r8)**3 |
|
integer(i8), parameter | micro_mg_utils::limiter_off = int(Z'7FF1111111111111', i8) |
|
real(r8), parameter | micro_mg_utils::icsmall = 1.e-8_r8 |
|
real(r8), parameter | micro_mg_utils::dsph = 3._r8 |
|
real(r8), dimension(2), parameter | micro_mg_utils::lam_bnd_rain = 1._r8/[500.e-6_r8, 20.e-6_r8] |
|
real(r8), dimension(2), parameter | micro_mg_utils::lam_bnd_snow = 1._r8/[2000.e-6_r8, 10.e-6_r8] |
|
real(r8), parameter | micro_mg_utils::min_mean_mass_liq = 1.e-20_r8 |
|
real(r8), parameter | micro_mg_utils::min_mean_mass_ice = 1.e-20_r8 |
|
real(r8), parameter | micro_mg_utils::f1s = 0.86_r8 |
|
real(r8), parameter | micro_mg_utils::f2s = 0.28_r8 |
|
real(r8), parameter | micro_mg_utils::f1r = 0.78_r8 |
|
real(r8), parameter | micro_mg_utils::f2r = 0.308_r8 |
|
real(r8), parameter | micro_mg_utils::eii = 0.2_r8 |
|
real(r8), parameter, public | micro_mg_utils::ecid = 0.7_r8 |
|
real(r8), parameter, public | micro_mg_utils::ecr = 1.0_r8 |
|
real(r8), parameter | micro_mg_utils::bimm = 100._r8 |
|
real(r8), parameter | micro_mg_utils::aimm = 0.66_r8 |
|
real(r8), parameter | micro_mg_utils::droplet_mass_25um = 4._r8/3._r8*pi*rhow*(25.e-6_r8)**3 |
|
real(r8), parameter | micro_mg_utils::droplet_mass_40um = 4._r8/3._r8*pi*rhow*(40.e-6_r8)**3 |
|
real(r8), parameter | micro_mg_utils::droplet_mass_40umi = 1._r8/droplet_mass_40um |
|
real(r8) | micro_mg_utils::rv |
|
real(r8) | micro_mg_utils::cpp |
|
real(r8) | micro_mg_utils::tmelt |
|
real(r8) | micro_mg_utils::ra |
|
real(r8) | micro_mg_utils::xxlv |
|
real(r8) | micro_mg_utils::xlf |
|
real(r8) | micro_mg_utils::xxls |
|
real(r8) | micro_mg_utils::gamma_bs_plus3 |
|
real(r8) | micro_mg_utils::gamma_half_br_plus5 |
|
real(r8) | micro_mg_utils::gamma_half_bs_plus5 |
|
real(r8) | micro_mg_utils::gamma_2bs_plus2 |
|
real(r8), parameter | micro_mg_utils::zero = 0._r8 |
|
real(r8), parameter | micro_mg_utils::one = 1._r8 |
|
real(r8), parameter | micro_mg_utils::two = 2._r8 |
|
real(r8), parameter | micro_mg_utils::three = 3._r8 |
|
real(r8), parameter | micro_mg_utils::four = 4._r8 |
|
real(r8), parameter | micro_mg_utils::five = 5._r8 |
|
real(r8), parameter | micro_mg_utils::six = 6._r8 |
|
real(r8), parameter | micro_mg_utils::pio6 = pi/six |
|
real(r8), parameter | micro_mg_utils::pio3 = pi/three |
|
real(r8), parameter | micro_mg_utils::half = 0.5_r8 |
|
real(r8), parameter | micro_mg_utils::oneo3 = one/three |
|
real(r8), parameter | micro_mg_utils::twopi = pi + pi |
|