This module contains MG microphysics version 3.0 - Update of MG microphysics with prognostic hail OR graupel. More...
Contributions from: Sean Santos, Peter Caldwell, Xiaohong Liu and Steve Ghan
invoked in CAM by specifying -microphys=mg3
References:
      Gettelman, A. and H. Morrison, Advanced Two-Moment Microphysics for Global Models.
      Part I: Off line tests and comparisons with other schemes.
      J. Climate, 28, 1268-1287. doi: 10.1175/JCLI-D-14-00102.1, 2015.
      Gettelman, A., H. Morrison, S. Santos, P. Bogenschutz and P. H. Caldwell
      Advanced Two-Moment Microphysics for Global Models.
      Part II: Global model solutions and Aerosol-Cloud Interactions.
      J. Climate, 28, 1288-1307. doi:10.1175/JCLI-D-14-00103.1 , 2015.
NOTE: Modified to allow other microphysics packages (e.g. CARMA) to do ice microphysics in cooperation with the MG liquid microphysics. This is controlled by the do_cldice variable.
If do_cldice is false, then MG microphysics should not update CLDICE or NUMICE; it is assumed that the other microphysics scheme will have updated CLDICE and NUMICE. The other microphysics should handle the following processes that would have been done by MG:
This option has not been updated since the introduction of prognostic precipitation, and probably should be adjusted to cover snow as well.
Modules | |
| module | micro_mg3_0 | 
Functions/Subroutines | |
| subroutine, public | micro_mg3_0::micro_mg_init ( kind, gravit, rair, rh2o, cpair, tmelt_in, latvap, latice, rhmini_in, micro_mg_dcs, ts_auto, mg_qcvar, micro_mg_do_hail_in, micro_mg_do_graupel_in, microp_uniform_in, do_cldice_in, use_hetfrz_classnuc_in, micro_mg_precip_frac_method_in, micro_mg_berg_eff_factor_in, allow_sed_supersat_in, do_sb_physics_in, do_ice_gmao_in, do_liq_liu_in, nccons_in, nicons_in, ncnst_in, ninst_in, ngcons_in, ngnst_in) | 
| This subroutine initializes microphysics routine, should be called once at start of simulation.  More... | |
| subroutine | micro_mg3_0::calc_rercld (lamr, n0r, lamc, pgam, qric, qcic, ncic, rercld, mgncol, nlev) | 
| This subroutine calculates effective radius for rain and cloud.  More... | |
Variables | |
| logical | micro_mg3_0::nicons | 
| nicons = .true. to specify constant cloud ice number  More... | |
| logical | micro_mg3_0::ngcons | 
| ngcons = .true. to specify constant graupel number  More... | |
| real(r8) | micro_mg3_0::ncnst | 
| droplet num concentration when nccons=.true. (m-3)  More... | |
| real(r8) | micro_mg3_0::ninst | 
| ice num concentration when nicons=.true. (m-3)  More... | |
| real(r8) | micro_mg3_0::ngnst | 
| graupel num concentration when ngcons=.true. (m-3)  More... | |
| real(r8), parameter | micro_mg3_0::csmin = -30._r8 | 
| Range of cloudsat reflectivities (dBz) for analytic simulator.  More... | |
| real(r8), parameter | micro_mg3_0::csmax = 26._r8 | 
| real(r8), parameter | micro_mg3_0::mindbz = -99._r8 | 
| real(r8), parameter | micro_mg3_0::minrefl = 1.26e-10_r8 | 
| real(r8) | micro_mg3_0::dcs | 
| real(r8) | micro_mg3_0::ts_au | 
| real(r8) | micro_mg3_0::ts_au_min | 
| real(r8), public | micro_mg3_0::qcvar | 
| real(r8), parameter | micro_mg3_0::mi0l_min = 4._r8/3._r8*pi*rhow*(4.e-6_r8)**3 | 
| real(r8), parameter | micro_mg3_0::sublim_factor = 0.0_r8 | 
| real(r8), parameter | micro_mg3_0::zero =0.0_r8 | 
| real(r8), parameter | micro_mg3_0::one =1.0_r8 | 
| real(r8), parameter | micro_mg3_0::two =2.0_r8 | 
| real(r8), parameter | micro_mg3_0::three =3.0_r8 | 
| real(r8), parameter | micro_mg3_0::four =4.0_r8 | 
| real(r8), parameter | micro_mg3_0::five =5.0_r8 | 
| real(r8), parameter | micro_mg3_0::six =6._r8 | 
| real(r8), parameter | micro_mg3_0::half =0.5_r8 | 
| real(r8), parameter | micro_mg3_0::ten =10.0_r8 | 
| real(r8), parameter | micro_mg3_0::forty =40.0_r8 | 
| real(r8), parameter | micro_mg3_0::oneo6 =one/six | 
| real(r8) | micro_mg3_0::g | 
| gravity  More... | |
| real(r8) | micro_mg3_0::r | 
| dry air gas constant  More... | |
| real(r8) | micro_mg3_0::rv | 
| water vapor gas constant  More... | |
| real(r8) | micro_mg3_0::cpp | 
| specific heat of dry air  More... | |
| real(r8) | micro_mg3_0::tmelt | 
| freezing point of water (K)  More... | |
| real(r8) | micro_mg3_0::xxlv | 
| vaporization  More... | |
| real(r8) | micro_mg3_0::xlf | 
| freezing  More... | |
| real(r8) | micro_mg3_0::xxls | 
| sublimation  More... | |
| real(r8) | micro_mg3_0::rhmini | 
| Minimum rh for ice cloud fraction > 0.  More... | |
| logical | micro_mg3_0::microp_uniform | 
| logical | micro_mg3_0::do_cldice | 
| logical | micro_mg3_0::use_hetfrz_classnuc | 
| real(r8) | micro_mg3_0::rhosu | 
| typical 850mn air density  More... | |
| real(r8) | micro_mg3_0::icenuct | 
| ice nucleation temperature: currently -5 degrees C  More... | |
| real(r8) | micro_mg3_0::snowmelt | 
| what temp to melt all snow: currently 2 degrees C  More... | |
| real(r8) | micro_mg3_0::rainfrze | 
| what temp to freeze all rain: currently -5 degrees C  More... | |
| real(r8) | micro_mg3_0::rhogtmp | 
| hail or graupel density (kg m-3)  More... | |
| real(r8) | micro_mg3_0::agtmp | 
| tmp ag/ah parameter  More... | |
| real(r8) | micro_mg3_0::bgtmp | 
| tmp fall speed parameter  More... | |
| real(r8) | micro_mg3_0::gamma_br_plus1 | 
| real(r8) | micro_mg3_0::gamma_bs_plus1 | 
| real(r8) | micro_mg3_0::gamma_bi_plus1 | 
| real(r8) | micro_mg3_0::gamma_bj_plus1 | 
| real(r8) | micro_mg3_0::gamma_bg_plus1 | 
| real(r8) | micro_mg3_0::gamma_br_plus4 | 
| real(r8) | micro_mg3_0::gamma_bs_plus4 | 
| real(r8) | micro_mg3_0::gamma_bi_plus4 | 
| real(r8) | micro_mg3_0::gamma_bj_plus4 | 
| real(r8) | micro_mg3_0::gamma_bg_plus4 | 
| real(r8) | micro_mg3_0::xxlv_squared | 
| real(r8) | micro_mg3_0::xxls_squared | 
| real(r8) | micro_mg3_0::omeps | 
| character(len=16) | micro_mg3_0::micro_mg_precip_frac_method | 
| type of precipitation fraction method  More... | |
| real(r8) | micro_mg3_0::micro_mg_berg_eff_factor | 
| berg efficiency factor  More... | |
| logical | micro_mg3_0::allow_sed_supersat | 
| Allow supersaturated conditions after sedimentation loop.  More... | |
| logical | micro_mg3_0::do_sb_physics | 
| do SB 2001 autoconversion or accretion physics  More... | |
| logical | micro_mg3_0::do_ice_gmao | 
| logical | micro_mg3_0::do_liq_liu | 
| subroutine, public | micro_mg3_0::micro_mg_tend ( mgncol, nlev, deltatin, t, q, qcn, qin, ncn, nin, qrn, qsn, nrn, nsn, qgr, ngr, relvar, accre_enhan_i, p, pdel, cldn, liqcldf, icecldf, qsatfac, qcsinksum_rate1ord, naai, npccnin, rndst, nacon, tlat, qvlat, qctend, qitend, nctend, nitend, qrtend, qstend, nrtend, nstend, qgtend, ngtend, effc, effc_fn, effi, sadice, sadsnow, prect, preci, nevapr, evapsnow, am_evp_st, prain, prodsnow, cmeout, deffi, pgamrad, lamcrad, qsout, dsout, qgout, ngout, dgout, lflx, iflx, gflx, rflx, sflx, qrout, reff_rain, reff_snow, reff_grau, qcsevap, qisevap, qvres, cmeitot, vtrmc, vtrmi, umr, ums, umg, qgsedten, qcsedten, qisedten, qrsedten, qssedten, pratot, prctot, mnuccctot, mnuccttot, msacwitot, psacwstot, bergstot, bergtot, melttot, homotot, qcrestot, prcitot, praitot, qirestot, mnuccrtot, mnuccritot, pracstot, meltsdttot, frzrdttot, mnuccdtot, pracgtot, psacwgtot, pgsacwtot, pgracstot, prdgtot, qmultgtot, qmultrgtot, psacrtot, npracgtot, nscngtot, ngracstot, nmultgtot, nmultrgtot, npsacwgtot, nrout, nsout, refl, arefl, areflz, frefl, csrfl, acsrfl, fcsrfl, rercld, ncai, ncal, qrout2, qsout2, nrout2, nsout2, drout2, dsout2, qgout2, ngout2, dgout2, freqg, freqs, freqr, nfice, qcrat, prer_evap, xlat, xlon, lprnt, iccn, aero_in, nlball) | 
| This subroutine calculates calculate MG3 microphysical processes and other utilities.  More... | |