CCPP SciDoc for UFS-SRW v3.0.0  SRW v3.0.0
Common Community Physics Package Developed at DTC

◆ dmp_mf()

subroutine module_bl_mynn::dmp_mf ( integer, intent(in)  kts,
integer, intent(in)  kte,
real(kind_phys), intent(in)  dt,
real(kind_phys), dimension(kts:kte+1), intent(in)  zw,
real(kind_phys), dimension(kts:kte), intent(in)  dz,
real(kind_phys), dimension(kts:kte), intent(in)  p,
real(kind_phys), dimension(kts:kte), intent(in)  rho,
integer, intent(in)  momentum_opt,
integer, intent(in)  tke_opt,
integer, intent(in)  scalar_opt,
real(kind_phys), dimension(kts:kte), intent(in)  u,
real(kind_phys), dimension(kts:kte), intent(in)  v,
real(kind_phys), dimension(kts:kte), intent(in)  w,
real(kind_phys), dimension(kts:kte), intent(in)  th,
real(kind_phys), dimension(kts:kte), intent(in)  thl,
real(kind_phys), dimension(kts:kte), intent(in)  thv,
real(kind_phys), dimension(kts:kte), intent(in)  tk,
real(kind_phys), dimension(kts:kte), intent(in)  qt,
real(kind_phys), dimension(kts:kte), intent(in)  qv,
real(kind_phys), dimension(kts:kte), intent(in)  qc,
real(kind_phys), dimension(kts:kte), intent(in)  qke,
real(kind_phys), dimension(kts:kte), intent(in)  qnc,
real(kind_phys), dimension(kts:kte), intent(in)  qni,
real(kind_phys), dimension(kts:kte), intent(in)  qnwfa,
real(kind_phys), dimension(kts:kte), intent(in)  qnifa,
real(kind_phys), dimension(kts:kte), intent(in)  qnbca,
real(kind_phys), dimension(kts:kte), intent(in)  exner,
real(kind_phys), dimension(kts:kte), intent(inout)  vt,
real(kind_phys), dimension(kts:kte), intent(inout)  vq,
real(kind_phys), dimension(kts:kte), intent(inout)  sgm,
real(kind_phys), intent(in)  ust,
real(kind_phys), intent(in)  flt,
real(kind_phys), intent(in)  fltv,
real(kind_phys), intent(in)  flq,
real(kind_phys), intent(in)  flqv,
real(kind_phys), intent(in)  pblh,
integer, intent(in)  kpbl,
real(kind_phys), intent(in)  dx,
real(kind_phys), intent(in)  landsea,
real(kind_phys), intent(in)  ts,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_a,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_w,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_qt,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_thl,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_ent,
real(kind_phys), dimension(kts:kte), intent(out)  edmf_qc,
real(kind_phys), dimension(kts:kte+1)  s_aw,
real(kind_phys), dimension(kts:kte+1)  s_awthl,
real(kind_phys), dimension(kts:kte+1)  s_awqt,
real(kind_phys), dimension(kts:kte+1)  s_awqv,
real(kind_phys), dimension(kts:kte+1)  s_awqc,
real(kind_phys), dimension(kts:kte+1)  s_awu,
real(kind_phys), dimension(kts:kte+1)  s_awv,
real(kind_phys), dimension(kts:kte+1)  s_awqke,
real(kind_phys), dimension(kts:kte+1)  s_awqnc,
real(kind_phys), dimension(kts:kte+1)  s_awqni,
real(kind_phys), dimension(kts:kte+1)  s_awqnwfa,
real(kind_phys), dimension(kts:kte+1)  s_awqnifa,
real(kind_phys), dimension(kts:kte+1)  s_awqnbca,
real(kind_phys), dimension(kts:kte)  sub_thl,
real(kind_phys), dimension(kts:kte)  sub_sqv,
real(kind_phys), dimension(kts:kte)  sub_u,
real(kind_phys), dimension(kts:kte)  sub_v,
real(kind_phys), dimension(kts:kte)  det_thl,
real(kind_phys), dimension(kts:kte)  det_sqv,
real(kind_phys), dimension(kts:kte)  det_sqc,
real(kind_phys), dimension(kts:kte)  det_u,
real(kind_phys), dimension(kts:kte)  det_v,
integer, intent(in)  nchem,
real(kind_phys), dimension(:, :)  chem1,
real(kind_phys), dimension(kts:kte+1, nchem)  s_awchem,
logical, intent(in)  mix_chem,
real(kind_phys), dimension(kts:kte), intent(inout)  qc_bl1d,
real(kind_phys), dimension(kts:kte), intent(inout)  cldfra_bl1d,
real(kind_phys), dimension(kts:kte), intent(inout)  qc_bl1D_old,
real(kind_phys), dimension(kts:kte), intent(inout)  cldfra_bl1D_old,
logical, optional  F_QC,
logical, optional  F_QI,
logical, optional  F_QNC,
logical, optional  F_QNI,
logical, optional  F_QNWFA,
logical, optional  F_QNIFA,
logical, optional  F_QNBCA,
real(kind_phys), intent(in)  Psig_shcu,
integer, intent(out)  nup2,
integer, intent(out)  ktop,
real(kind_phys), intent(out)  maxmf,
real(kind_phys), intent(out)  ztop,
integer, intent(in)  spp_pbl,
real(kind_phys), dimension(kts:kte)  rstoch_col 
)

dmp_mf() calculates the nonlocal turbulent transport from the dynamic multiplume mass-flux scheme as well as the shallow-cumulus component of the subgrid clouds. Note that this mass-flux scheme is called when the namelist paramter bl_mynn_edmf is set to 1 (recommended).

Much thanks to Kay Suslj of NASA-JPL for contributing the original version of this mass-flux scheme. Considerable changes have been made from it's original form. Some additions include:

  1. scale-aware tapering as dx -> 0
  2. transport of TKE (extra namelist option)
  3. Chaboureau-Bechtold cloud fraction & coupling to radiation (when icloud_bl > 0)
  4. some extra limits for numerical stability

This scheme remains under development, so consider it experimental code.