CAM
micro_mg2_0 Module Reference

Functions/Subroutines

subroutine, public micro_mg_init (kind, gravit, rair, rh2o, cpair, tmelt_in, latvap, latice, rhmini_in, micro_mg_dcs, micro_mg_dcs_tdep, microp_uniform_in, do_cldice_in, use_hetfrz_classnuc_in, do_nccons_in, do_nicons_in, ncnst_in, ninst_in, micro_mg_precip_frac_method_in, micro_mg_berg_eff_factor_in, allow_sed_supersat_in, ice_sed_ai, prc_coef1_in, prc_exp_in, prc_exp1_in, cld_sed_in, mg_prc_coeff_fix_in, alpha_grad_in, beta_grad_in, errstring)
 
subroutine, public micro_mg_tend (mgncol, nlev, deltatin, t, q, qcn, qin, ncn, nin, qrn, qsn, nrn, nsn, relvar, accre_enhan, precip_off, p, pdel, cldn, liqcldf, icecldf, qcsinksum_rate1ord, naai, npccn, rndst, nacon, tlat, qvlat, qctend, qitend, nctend, nitend, qrtend, qstend, nrtend, nstend, effc, effc_fn, effi, prect, preci, nevapr, evapsnow, prain, prodsnow, cmeout, deffi, pgamrad, lamcrad, qsout, dsout, lflx, iflx, rflx, sflx, qrout, reff_rain, reff_snow, qcsevap, qisevap, qvres, cmeitot, vtrmc, vtrmi, umr, ums, qcsedten, qisedten, qrsedten, qssedten, pratot, prctot, mnuccctot, mnuccttot, msacwitot, psacwstot, bergstot, bergtot, melttot, homotot, qcrestot, prcitot, praitot, qirestot, mnuccrtot, pracstot, meltsdttot, frzrdttot, mnuccdtot, nrout, nsout, refl, arefl, areflz, frefl, csrfl, acsrfl, fcsrfl, rercld, ncai, ncal, qrout2, qsout2, nrout2, nsout2, drout2, dsout2, freqs, freqr, nfice, qcrat, errstring, tnd_qsnow, tnd_nsnow, re_ice, prer_evap, frzimm, frzcnt, frzdep)
 
elemental subroutine calc_rercld (lamr, n0r, lamc, pgam, qric, qcic, ncic, rercld)
 
pure subroutine, public micro_mg_get_cols (ncol, nlev, top_lev, qcn, qin, qrn, qsn, mgncol, mgcols)
 
subroutine get_dcst (ncol, pver, temp, dcst)
 

Variables

real(r8), parameter csmin = -30._r8
 
real(r8), parameter csmax = 26._r8
 
real(r8), parameter mindbz = -99._r8
 
real(r8), parameter minrefl = 1.26e-10_r8
 
real(r8) dcs
 
logical dcs_tdep
 
real(r8), parameter mi0l_min = 4._r8/3._r8*pi*rhow*(4.e-6_r8)**3
 
real(r8) g
 
real(r8) r
 
real(r8) rv
 
real(r8) cpp
 
real(r8) tmelt
 
real(r8) prc_coef1 = huge(1.0_r8)
 
real(r8) prc_exp = huge(1.0_r8)
 
real(r8) prc_exp1 = huge(1.0_r8)
 
real(r8) cld_sed = huge(1.0_r8)
 
logical mg_prc_coeff_fix = .false.
 
real(r8) xxlv
 
real(r8) xlf
 
real(r8) xxls
 
real(r8) rhmini
 
logical microp_uniform
 
logical do_cldice
 
logical do_nccons
 
logical do_nicons
 
logical use_hetfrz_classnuc
 
real(r8) ncnst
 
real(r8) ninst
 
real(r8) rhosu
 
real(r8) icenuct
 
real(r8) snowmelt
 
real(r8) rainfrze
 
real(r8) alpha_grad
 
real(r8) beta_grad
 
real(r8) gamma_br_plus1
 
real(r8) gamma_br_plus4
 
real(r8) gamma_bs_plus1
 
real(r8) gamma_bs_plus4
 
real(r8) gamma_bi_plus1
 
real(r8) gamma_bi_plus4
 
real(r8) xxlv_squared
 
real(r8) xxls_squared
 
character(len=16) micro_mg_precip_frac_method
 
real(r8) micro_mg_berg_eff_factor
 
logical allow_sed_supersat
 
logical nccons
 
logical nicons
 

Function/Subroutine Documentation

◆ calc_rercld()

elemental subroutine micro_mg2_0::calc_rercld ( real(r8), intent(in)  lamr,
real(r8), intent(in)  n0r,
real(r8), intent(in)  lamc,
real(r8), intent(in)  pgam,
real(r8), intent(in)  qric,
real(r8), intent(in)  qcic,
real(r8), intent(in)  ncic,
real(r8), intent(inout)  rercld 
)
Here is the caller graph for this function:

◆ get_dcst()

subroutine micro_mg2_0::get_dcst ( integer, intent(in)  ncol,
integer, intent(in)  pver,
real(r8), dimension(ncol,pver), intent(in)  temp,
real(r8), dimension(ncol,pver), intent(out)  dcst 
)
private
Here is the caller graph for this function:

◆ micro_mg_get_cols()

pure subroutine, public micro_mg2_0::micro_mg_get_cols ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
integer, intent(in)  top_lev,
real(r8), dimension(:,:), intent(in)  qcn,
real(r8), dimension(:,:), intent(in)  qin,
real(r8), dimension(:,:), intent(in)  qrn,
real(r8), dimension(:,:), intent(in)  qsn,
integer, intent(out)  mgncol,
integer, dimension(:), intent(out), allocatable  mgcols 
)

◆ micro_mg_init()

subroutine, public micro_mg2_0::micro_mg_init ( integer, intent(in)  kind,
real(r8), intent(in)  gravit,
real(r8), intent(in)  rair,
real(r8), intent(in)  rh2o,
real(r8), intent(in)  cpair,
real(r8), intent(in)  tmelt_in,
real(r8), intent(in)  latvap,
real(r8), intent(in)  latice,
real(r8), intent(in)  rhmini_in,
real(r8), intent(in)  micro_mg_dcs,
logical, intent(in)  micro_mg_dcs_tdep,
logical, intent(in)  microp_uniform_in,
logical, intent(in)  do_cldice_in,
logical, intent(in)  use_hetfrz_classnuc_in,
logical, intent(in)  do_nccons_in,
logical, intent(in)  do_nicons_in,
real(r8), intent(in)  ncnst_in,
real(r8), intent(in)  ninst_in,
character(len=16), intent(in)  micro_mg_precip_frac_method_in,
real(r8), intent(in)  micro_mg_berg_eff_factor_in,
logical, intent(in)  allow_sed_supersat_in,
real(r8), intent(in)  ice_sed_ai,
real(r8), intent(in)  prc_coef1_in,
real(r8), intent(in)  prc_exp_in,
real(r8), intent(in)  prc_exp1_in,
real(r8), intent(in)  cld_sed_in,
logical, intent(in)  mg_prc_coeff_fix_in,
real(r8), intent(in)  alpha_grad_in,
real(r8), intent(in)  beta_grad_in,
character(128), intent(out)  errstring 
)
Here is the call graph for this function:

◆ micro_mg_tend()

subroutine, public micro_mg2_0::micro_mg_tend ( integer, intent(in)  mgncol,
integer, intent(in)  nlev,
real(r8), intent(in)  deltatin,
real(r8), dimension(:,:), intent(in)  t,
real(r8), dimension(:,:), intent(in)  q,
real(r8), dimension(:,:), intent(in)  qcn,
real(r8), dimension(:,:), intent(in)  qin,
real(r8), dimension(:,:), intent(in)  ncn,
real(r8), dimension(:,:), intent(in)  nin,
real(r8), dimension(:,:), intent(in)  qrn,
real(r8), dimension(:,:), intent(in)  qsn,
real(r8), dimension(:,:), intent(in)  nrn,
real(r8), dimension(:,:), intent(in)  nsn,
real(r8), dimension(:,:), intent(in)  relvar,
real(r8), dimension(:,:), intent(in)  accre_enhan,
logical, intent(in)  precip_off,
real(r8), dimension(:,:), intent(in)  p,
real(r8), dimension(:,:), intent(in)  pdel,
real(r8), dimension(:,:), intent(in)  cldn,
real(r8), dimension(:,:), intent(in)  liqcldf,
real(r8), dimension(:,:), intent(in)  icecldf,
real(r8), dimension(:,:), intent(out)  qcsinksum_rate1ord,
real(r8), dimension(:,:), intent(in)  naai,
real(r8), dimension(:,:), intent(in)  npccn,
real(r8), dimension(:,:,:), intent(in)  rndst,
real(r8), dimension(:,:,:), intent(in)  nacon,
real(r8), dimension(:,:), intent(out)  tlat,
real(r8), dimension(:,:), intent(out)  qvlat,
real(r8), dimension(:,:), intent(out)  qctend,
real(r8), dimension(:,:), intent(out)  qitend,
real(r8), dimension(:,:), intent(out)  nctend,
real(r8), dimension(:,:), intent(out)  nitend,
real(r8), dimension(:,:), intent(out)  qrtend,
real(r8), dimension(:,:), intent(out)  qstend,
real(r8), dimension(:,:), intent(out)  nrtend,
real(r8), dimension(:,:), intent(out)  nstend,
real(r8), dimension(:,:), intent(out)  effc,
real(r8), dimension(:,:), intent(out)  effc_fn,
real(r8), dimension(:,:), intent(out)  effi,
real(r8), dimension(:), intent(out)  prect,
real(r8), dimension(:), intent(out)  preci,
real(r8), dimension(:,:), intent(out)  nevapr,
real(r8), dimension(:,:), intent(out)  evapsnow,
real(r8), dimension(:,:), intent(out)  prain,
real(r8), dimension(:,:), intent(out)  prodsnow,
real(r8), dimension(:,:), intent(out)  cmeout,
real(r8), dimension(:,:), intent(out)  deffi,
real(r8), dimension(:,:), intent(out)  pgamrad,
real(r8), dimension(:,:), intent(out)  lamcrad,
real(r8), dimension(:,:), intent(out)  qsout,
real(r8), dimension(:,:), intent(out)  dsout,
real(r8), dimension(:,:), intent(out)  lflx,
real(r8), dimension(:,:), intent(out)  iflx,
real(r8), dimension(:,:), intent(out)  rflx,
real(r8), dimension(:,:), intent(out)  sflx,
real(r8), dimension(:,:), intent(out)  qrout,
real(r8), dimension(:,:), intent(out)  reff_rain,
real(r8), dimension(:,:), intent(out)  reff_snow,
real(r8), dimension(:,:), intent(out)  qcsevap,
real(r8), dimension(:,:), intent(out)  qisevap,
real(r8), dimension(:,:), intent(out)  qvres,
real(r8), dimension(:,:), intent(out)  cmeitot,
real(r8), dimension(:,:), intent(out)  vtrmc,
real(r8), dimension(:,:), intent(out)  vtrmi,
real(r8), dimension(:,:), intent(out)  umr,
real(r8), dimension(:,:), intent(out)  ums,
real(r8), dimension(:,:), intent(out)  qcsedten,
real(r8), dimension(:,:), intent(out)  qisedten,
real(r8), dimension(:,:), intent(out)  qrsedten,
real(r8), dimension(:,:), intent(out)  qssedten,
real(r8), dimension(:,:), intent(out)  pratot,
real(r8), dimension(:,:), intent(out)  prctot,
real(r8), dimension(:,:), intent(out)  mnuccctot,
real(r8), dimension(:,:), intent(out)  mnuccttot,
real(r8), dimension(:,:), intent(out)  msacwitot,
real(r8), dimension(:,:), intent(out)  psacwstot,
real(r8), dimension(:,:), intent(out)  bergstot,
real(r8), dimension(:,:), intent(out)  bergtot,
real(r8), dimension(:,:), intent(out)  melttot,
real(r8), dimension(:,:), intent(out)  homotot,
real(r8), dimension(:,:), intent(out)  qcrestot,
real(r8), dimension(:,:), intent(out)  prcitot,
real(r8), dimension(:,:), intent(out)  praitot,
real(r8), dimension(:,:), intent(out)  qirestot,
real(r8), dimension(:,:), intent(out)  mnuccrtot,
real(r8), dimension(:,:), intent(out)  pracstot,
real(r8), dimension(:,:), intent(out)  meltsdttot,
real(r8), dimension(:,:), intent(out)  frzrdttot,
real(r8), dimension(:,:), intent(out)  mnuccdtot,
real(r8), dimension(:,:), intent(out)  nrout,
real(r8), dimension(:,:), intent(out)  nsout,
real(r8), dimension(:,:), intent(out)  refl,
real(r8), dimension(:,:), intent(out)  arefl,
real(r8), dimension(:,:), intent(out)  areflz,
real(r8), dimension(:,:), intent(out)  frefl,
real(r8), dimension(:,:), intent(out)  csrfl,
real(r8), dimension(:,:), intent(out)  acsrfl,
real(r8), dimension(:,:), intent(out)  fcsrfl,
real(r8), dimension(:,:), intent(out)  rercld,
real(r8), dimension(:,:), intent(out)  ncai,
real(r8), dimension(:,:), intent(out)  ncal,
real(r8), dimension(:,:), intent(out)  qrout2,
real(r8), dimension(:,:), intent(out)  qsout2,
real(r8), dimension(:,:), intent(out)  nrout2,
real(r8), dimension(:,:), intent(out)  nsout2,
real(r8), dimension(:,:), intent(out)  drout2,
real(r8), dimension(:,:), intent(out)  dsout2,
real(r8), dimension(:,:), intent(out)  freqs,
real(r8), dimension(:,:), intent(out)  freqr,
real(r8), dimension(:,:), intent(out)  nfice,
real(r8), dimension(:,:), intent(out)  qcrat,
character(128), intent(out)  errstring,
real(r8), dimension(:,:), intent(in), pointer  tnd_qsnow,
real(r8), dimension(:,:), intent(in), pointer  tnd_nsnow,
real(r8), dimension(:,:), intent(in), pointer  re_ice,
real(r8), dimension(:,:), intent(out)  prer_evap,
real(r8), dimension(:,:), intent(in), pointer  frzimm,
real(r8), dimension(:,:), intent(in), pointer  frzcnt,
real(r8), dimension(:,:), intent(in), pointer  frzdep 
)
Here is the call graph for this function:

Variable Documentation

◆ allow_sed_supersat

logical micro_mg2_0::allow_sed_supersat
private

◆ alpha_grad

real(r8) micro_mg2_0::alpha_grad
private

◆ beta_grad

real(r8) micro_mg2_0::beta_grad
private

◆ cld_sed

real(r8) micro_mg2_0::cld_sed = huge(1.0_r8)
private

◆ cpp

real(r8) micro_mg2_0::cpp
private

◆ csmax

real(r8), parameter micro_mg2_0::csmax = 26._r8
private

◆ csmin

real(r8), parameter micro_mg2_0::csmin = -30._r8
private

◆ dcs

real(r8) micro_mg2_0::dcs
private

◆ dcs_tdep

logical micro_mg2_0::dcs_tdep
private

◆ do_cldice

logical micro_mg2_0::do_cldice
private

◆ do_nccons

logical micro_mg2_0::do_nccons
private

◆ do_nicons

logical micro_mg2_0::do_nicons
private

◆ g

real(r8) micro_mg2_0::g
private

◆ gamma_bi_plus1

real(r8) micro_mg2_0::gamma_bi_plus1
private

◆ gamma_bi_plus4

real(r8) micro_mg2_0::gamma_bi_plus4
private

◆ gamma_br_plus1

real(r8) micro_mg2_0::gamma_br_plus1
private

◆ gamma_br_plus4

real(r8) micro_mg2_0::gamma_br_plus4
private

◆ gamma_bs_plus1

real(r8) micro_mg2_0::gamma_bs_plus1
private

◆ gamma_bs_plus4

real(r8) micro_mg2_0::gamma_bs_plus4
private

◆ icenuct

real(r8) micro_mg2_0::icenuct
private

◆ mg_prc_coeff_fix

logical micro_mg2_0::mg_prc_coeff_fix = .false.
private

◆ mi0l_min

real(r8), parameter micro_mg2_0::mi0l_min = 4._r8/3._r8*pi*rhow*(4.e-6_r8)**3
private

◆ micro_mg_berg_eff_factor

real(r8) micro_mg2_0::micro_mg_berg_eff_factor
private

◆ micro_mg_precip_frac_method

character(len=16) micro_mg2_0::micro_mg_precip_frac_method
private

◆ microp_uniform

logical micro_mg2_0::microp_uniform
private

◆ mindbz

real(r8), parameter micro_mg2_0::mindbz = -99._r8
private

◆ minrefl

real(r8), parameter micro_mg2_0::minrefl = 1.26e-10_r8
private

◆ nccons

logical micro_mg2_0::nccons
private

◆ ncnst

real(r8) micro_mg2_0::ncnst
private

◆ nicons

logical micro_mg2_0::nicons
private

◆ ninst

real(r8) micro_mg2_0::ninst
private

◆ prc_coef1

real(r8) micro_mg2_0::prc_coef1 = huge(1.0_r8)
private

◆ prc_exp

real(r8) micro_mg2_0::prc_exp = huge(1.0_r8)
private

◆ prc_exp1

real(r8) micro_mg2_0::prc_exp1 = huge(1.0_r8)
private

◆ r

real(r8) micro_mg2_0::r
private

◆ rainfrze

real(r8) micro_mg2_0::rainfrze
private

◆ rhmini

real(r8) micro_mg2_0::rhmini
private

◆ rhosu

real(r8) micro_mg2_0::rhosu
private

◆ rv

real(r8) micro_mg2_0::rv
private

◆ snowmelt

real(r8) micro_mg2_0::snowmelt
private

◆ tmelt

real(r8) micro_mg2_0::tmelt
private

◆ use_hetfrz_classnuc

logical micro_mg2_0::use_hetfrz_classnuc
private

◆ xlf

real(r8) micro_mg2_0::xlf
private

◆ xxls

real(r8) micro_mg2_0::xxls
private

◆ xxls_squared

real(r8) micro_mg2_0::xxls_squared
private

◆ xxlv

real(r8) micro_mg2_0::xxlv
private

◆ xxlv_squared

real(r8) micro_mg2_0::xxlv_squared
private