CCPP Scientific Documentation
v4.1.0
micro_mg_utils Module Reference

Data Types

interface  mghydrometeorprops
 
interface  rising_factorial
 
interface  size_dist_param_basic
 
interface  size_dist_param_ice
 
interface  size_dist_param_liq
 
interface  var_coef
 

Functions/Subroutines

subroutine, public micro_mg_utils_init (kind, rair, rh2o, cpair, tmelt_in, latvap, latice, dcs)
 Initialize module variables. More...
 
type(mghydrometeorprops) function newmghydrometeorprops (rho, eff_dim, lambda_bounds, min_mean_mass)
 Constructor for a constituent property object. More...
 
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 More...
 
subroutine size_dist_param_liq_vect (props, qcic, ncic, rho, pgam, lamc, mgncol)
 This subroutine gets cloud droplet size distribution parameters. More...
 
elemental subroutine size_dist_param_basic_line (props, qic, nic, lam, n0)
 Basic routine for getting size distribution parameters. More...
 
subroutine size_dist_param_basic_vect (props, qic, nic, lam, mgncol, n0)
 This subroutine calculates. More...
 
elemental subroutine size_dist_param_ice_line (props, qic, nic, lam, n0)
 ice routine for getting size distribution parameters. More...
 
subroutine size_dist_param_ice_vect (props, qic, nic, lam, mgncol, n0)
 This subroutine. More...
 
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. More...
 
elemental real(r8) function var_coef_r8 (relvar, a)
 Finds a coefficient for process rates based on the relative variance of cloud water. More...
 
elemental real(r8) function var_coef_integer (relvar, a)
 Finds a coefficient for process rates based on the relative variance of cloud water. More...
 
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. More...
 
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 More...
 
subroutine, public sb2001v2_liq_autoconversion (pgam, qc, nc, qr, rho, relvar, au, nprc, nprc1, mgncol)
 This subroutine. More...
 
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. More...
 
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) More...
 
subroutine, public gmao_ice_autoconversion (t, qiic, niic, lami, n0i, dcs, ac_time, prci, nprci, mgncol)
 GMAO ice autoconversion. More...
 
subroutine, public immersion_freezing (microp_uniform, t, pgam, lamc, qcic, ncic, relvar, mnuccc, nnuccc, mgncol)
 immersion freezing (Bigg, 1953) More...
 
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 More...
 
subroutine, public snow_self_aggregation (t, rho, asn, rhosn, qsic, nsic, nsagg, mgncol)
 snow self-aggregation from passarelli, 1978, used by reisner, 1998 More...
 
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 More...
 
subroutine, public secondary_ice_production (t, psacws, msacwi, nsacwi, mgncol)
 add secondary ice production due to accretion of droplets by snow More...
 
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 More...
 
subroutine, public heterogeneous_rain_freezing (t, qric, nric, lamr, mnuccr, nnuccr, mgncol)
 heterogeneous freezing of rain drops More...
 
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) More...
 
subroutine, public self_collection_rain (rho, qric, nric, nragg, mgncol)
 Self-collection of rain drops from Beheng(1994) More...
 
subroutine, public accrete_cloud_ice_snow (t, rho, asn, qiic, niic, qsic, lams, n0s, prai, nprai, mgncol)
 Accretion of cloud ice by snow. More...
 
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 More...
 
subroutine 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 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 graupel_collecting_snow (qsic, qric, umr, ums, rho, lamr, n0r, lams, n0s, psacr, mgncol)
 Collection of snow by rain to form graupel. More...
 
subroutine graupel_collecting_cld_water (qgic, qcic, ncic, rho, n0g, lamg, bg, agn, psacwg, npsacwg, mgncol)
 Collection of cloud water by graupel. More...
 
subroutine 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 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 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 graupel_rime_splintering (t, qcic, qric, qgic, psacwg, pracg, qmultg, nmultg, qmultrg, nmultrg, mgncol)
 Rime splintering. More...
 
pure real(r8) function no_limiter ()
 
pure logical function limiter_is_on (lim)
 
real(r8) function gamma_incomp (muice, x)
 

Variables

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. More...
 
real(r8), parameter, public omsm = 1._r8 - 1.e-6_r8
 "One minus small number": number near unity for round-off issues. More...
 
real(r8), parameter, public qsmall = 1.e-18_r8
 Smallest mixing ratio considered in microphysics. More...
 
real(r8), parameter, public mincld = 0.000001_r8
 minimum allowed cloud fraction More...
 
real(r8), parameter, public rhosn = 250._r8
 bulk density snow More...
 
real(r8), parameter, public rhoi = 500._r8
 bulk density ice More...
 
real(r8), parameter, public rhow = 1000._r8
 bulk density liquid More...
 
real(r8), parameter, public rhows = 917._r8
 bulk density water solid More...
 
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. More...
 
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