|
subroutine, public | micro_mg_utils_init (kind, rair, rh2o, cpair, tmelt_in, latvap, latice, dcs) |
| Initialize module variables.
|
|
type(mghydrometeorprops) function | newmghydrometeorprops (rho, eff_dim, lambda_bounds, min_mean_mass) |
| Constructor for a constituent property object.
|
|
pure real(r8) function | rising_factorial_r8 (x, n) |
|
pure real(r8) function | rising_factorial_integer (x, n) |
|
elemental real(r8) function | calc_ab (t, qv, xxl) |
|
elemental subroutine | size_dist_param_liq_line (props, qcic, ncic, rho, pgam, lamc) |
| get cloud droplet size distribution parameters
|
|
subroutine | size_dist_param_liq_vect (props, qcic, ncic, rho, pgam, lamc, mgncol) |
| This subroutine gets cloud droplet size distribution parameters.
|
|
elemental subroutine | size_dist_param_basic_line (props, qic, nic, lam, n0) |
| Basic routine for getting size distribution parameters.
|
|
subroutine | size_dist_param_basic_vect (props, qic, nic, lam, mgncol, n0) |
| This subroutine calculates.
|
|
elemental subroutine | size_dist_param_ice_line (props, qic, nic, lam, n0) |
| ice routine for getting size distribution parameters.
|
|
subroutine | size_dist_param_ice_vect (props, qic, nic, lam, mgncol, n0) |
| This subroutine.
|
|
real(r8) elemental function, public | 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.
|
|
elemental real(r8) function | var_coef_r8 (relvar, a) |
| Finds a coefficient for process rates based on the relative variance of cloud water.
|
|
elemental real(r8) function | var_coef_integer (relvar, a) |
| Finds a coefficient for process rates based on the relative variance of cloud water.
|
|
subroutine, public | 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.
|
|
subroutine, public | 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
|
|
subroutine, public | sb2001v2_liq_autoconversion (pgam, qc, nc, qr, rho, relvar, au, nprc, nprc1, mgncol) |
| This subroutine.
|
|
subroutine, public | liu_liq_autoconversion (pgam, qc, nc, qr, rho, relvar, au, nprc, nprc1, mgncol) |
| Anning Cheng 10/5/2017 add Liu et al. autoconversion.
|
|
subroutine, public | sb2001v2_accre_cld_water_rain (qc, nc, qr, rho, relvar, pra, npra, mgncol) |
|
subroutine, public | ice_autoconversion (t, qiic, lami, n0i, dcs, ac_time, prci, nprci, mgncol) |
| Autoconversion of cloud ice to snow similar to Ferrier (1994)
|
|
subroutine, public | gmao_ice_autoconversion (t, qiic, niic, lami, n0i, dcs, ac_time, prci, nprci, mgncol) |
| GMAO ice autoconversion.
|
|
subroutine, public | immersion_freezing (microp_uniform, t, pgam, lamc, qcic, ncic, relvar, mnuccc, nnuccc, mgncol) |
| immersion freezing (Bigg, 1953)
|
|
subroutine, public | 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
|
|
subroutine, public | snow_self_aggregation (t, rho, asn, rhosn, qsic, nsic, nsagg, mgncol) |
| snow self-aggregation from passarelli, 1978, used by reisner, 1998
|
|
subroutine, public | 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
|
|
subroutine, public | secondary_ice_production (t, psacws, msacwi, nsacwi, mgncol) |
| add secondary ice production due to accretion of droplets by snow
|
|
subroutine, public | accrete_rain_snow (t, rho, umr, ums, unr, uns, qric, qsic, lamr, n0r, lams, n0s, pracs, npracs, mgncol) |
| accretion of rain water by snow
|
|
subroutine, public | heterogeneous_rain_freezing (t, qric, nric, lamr, mnuccr, nnuccr, mgncol) |
| heterogeneous freezing of rain drops
|
|
subroutine, public | 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)
|
|
subroutine, public | self_collection_rain (rho, qric, nric, nragg, mgncol) |
| Self-collection of rain drops from Beheng(1994)
|
|
subroutine, public | accrete_cloud_ice_snow (t, rho, asn, qiic, niic, qsic, lams, n0s, prai, nprai, mgncol) |
| Accretion of cloud ice by snow.
|
|
subroutine, public | 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
|
|
subroutine, public | 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
|
|
subroutine, public | 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
|
|
subroutine, public | graupel_collecting_snow (qsic, qric, umr, ums, rho, lamr, n0r, lams, n0s, psacr, mgncol) |
| Collection of snow by rain to form graupel.
|
|
subroutine, public | graupel_collecting_cld_water (qgic, qcic, ncic, rho, n0g, lamg, bg, agn, psacwg, npsacwg, mgncol) |
| Collection of cloud water by graupel.
|
|
subroutine, public | 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.
|
|
subroutine, public | 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.
|
|
subroutine, public | graupel_rain_riming_snow (pracs, npracs, psacr, qsic, qric, nric, nsic, n0s, lams, n0r, lamr, dtime, pgracs, ngracs, mgncol) |
| Rain riming snow to graupel.
|
|
subroutine, public | graupel_rime_splintering (t, qcic, qric, qgic, psacwg, pracg, qmultg, nmultg, qmultrg, nmultrg, mgncol) |
| Rime splintering.
|
|
pure real(r8) function | no_limiter () |
|
pure logical function | limiter_is_on (lim) |
|
real(r8) function | gamma_incomp (muice, x) |
|
|
type(mghydrometeorprops), public | mg_liq_props |
|
type(mghydrometeorprops), public | mg_ice_props |
|
type(mghydrometeorprops), public | mg_rain_props |
|
type(mghydrometeorprops), public | mg_snow_props |
|
type(mghydrometeorprops), public | mg_graupel_props |
|
real(r8), parameter, public | pi = 3.14159265358979323846_r8 |
| Pi to 20 digits; more than enough to reach the limit of double precision.
|
|
real(r8), parameter, public | omsm = 1._r8 - 1.e-6_r8 |
| "One minus small number": number near unity for round-off issues.
|
|
real(r8), parameter, public | qsmall = 1.e-18_r8 |
| Smallest mixing ratio considered in microphysics.
|
|
real(r8), parameter, public | mincld = 0.000001_r8 |
| minimum allowed cloud fraction
|
|
real(r8), parameter, public | rhosn = 250._r8 |
| bulk density snow
|
|
real(r8), parameter, public | rhoi = 500._r8 |
| bulk density ice
|
|
real(r8), parameter, public | rhow = 1000._r8 |
| bulk density liquid
|
|
real(r8), parameter, public | rhows = 917._r8 |
| bulk density water solid
|
|
real(r8), parameter, public | rhog = 500._r8 |
|
real(r8), parameter, public | rhoh = 400._r8 |
|
real(r8), parameter, public | ac = 3.e7_r8 |
|
real(r8), parameter, public | bc = 2._r8 |
|
real(r8), parameter, public | as = 11.72_r8 |
|
real(r8), parameter, public | bs = 0.41_r8 |
|
real(r8), parameter, public | ai = 700._r8 |
|
real(r8), parameter, public | bi = 1._r8 |
|
real(r8), parameter, public | aj = ac*((rhoi/rhows)**(bc/3._r8))*rhows/rhow |
|
real(r8), parameter, public | bj = bc |
|
real(r8), parameter, public | ar = 841.99667_r8 |
|
real(r8), parameter, public | br = 0.8_r8 |
|
real(r8), parameter, public | ag = 19.3_r8 |
|
real(r8), parameter, public | bg = 0.37_r8 |
|
real(r8), parameter, public | ah = 114.5_r8 |
|
real(r8), parameter, public | bh = 0.5_r8 |
|
real(r8), parameter, public | 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.
|
|
real(r8), parameter, public | mg0 = 1.6e-10_r8 |
|
real(r8), parameter, public | mmult = 4._r8/3._r8*pi*rhoi*(5.e-6_r8)**3 |
|
integer(i8), parameter | limiter_off = int(Z'7FF1111111111111', i8) |
|
real(r8), parameter | icsmall = 1.e-8_r8 |
|
real(r8), parameter | dsph = 3._r8 |
|
real(r8), dimension(2), parameter | lam_bnd_rain = 1._r8/[500.e-6_r8, 20.e-6_r8] |
|
real(r8), dimension(2), parameter | lam_bnd_snow = 1._r8/[2000.e-6_r8, 10.e-6_r8] |
|
real(r8), parameter | min_mean_mass_liq = 1.e-20_r8 |
|
real(r8), parameter | min_mean_mass_ice = 1.e-20_r8 |
|
real(r8), parameter | f1s = 0.86_r8 |
|
real(r8), parameter | f2s = 0.28_r8 |
|
real(r8), parameter | f1r = 0.78_r8 |
|
real(r8), parameter | f2r = 0.308_r8 |
|
real(r8), parameter | eii = 0.2_r8 |
|
real(r8), parameter, public | ecid = 0.7_r8 |
|
real(r8), parameter, public | ecr = 1.0_r8 |
|
real(r8), parameter | bimm = 100._r8 |
|
real(r8), parameter | aimm = 0.66_r8 |
|
real(r8), parameter | droplet_mass_25um = 4._r8/3._r8*pi*rhow*(25.e-6_r8)**3 |
|
real(r8), parameter | droplet_mass_40um = 4._r8/3._r8*pi*rhow*(40.e-6_r8)**3 |
|
real(r8), parameter | droplet_mass_40umi = 1._r8/droplet_mass_40um |
|
real(r8) | rv |
|
real(r8) | cpp |
|
real(r8) | tmelt |
|
real(r8) | ra |
|
real(r8) | xxlv |
|
real(r8) | xlf |
|
real(r8) | xxls |
|
real(r8) | gamma_bs_plus3 |
|
real(r8) | gamma_half_br_plus5 |
|
real(r8) | gamma_half_bs_plus5 |
|
real(r8) | gamma_2bs_plus2 |
|
real(r8), parameter | zero = 0._r8 |
|
real(r8), parameter | one = 1._r8 |
|
real(r8), parameter | two = 2._r8 |
|
real(r8), parameter | three = 3._r8 |
|
real(r8), parameter | four = 4._r8 |
|
real(r8), parameter | five = 5._r8 |
|
real(r8), parameter | six = 6._r8 |
|
real(r8), parameter | pio6 = pi/six |
|
real(r8), parameter | pio3 = pi/three |
|
real(r8), parameter | half = 0.5_r8 |
|
real(r8), parameter | oneo3 = one/three |
|
real(r8), parameter | twopi = pi + pi |
|