CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC

◆ mynn_bl_driver()

subroutine module_bl_mynn::mynn_bl_driver ( integer, intent(in)  initflag,
logical, intent(in)  restart,
logical, intent(in)  cycling,
integer, intent(in)  grav_settling,
real, intent(in)  delt,
real, dimension(ims:ime,kms:kme), intent(in)  dz,
real, dimension(ims:ime), intent(in)  dx,
real, dimension(ims:ime), intent(in)  znt,
real, dimension(ims:ime,kms:kme), intent(in)  u,
real, dimension(ims:ime,kms:kme), intent(in)  v,
real, dimension(ims:ime,kms:kme), intent(in)  w,
real, dimension(ims:ime,kms:kme), intent(in)  th,
real, dimension(ims:ime,kms:kme), intent(in)  sqv3D,
real, dimension(ims:ime,kms:kme), intent(in), optional  sqc3D,
real, dimension(ims:ime,kms:kme), intent(in), optional  sqi3D,
real, dimension(ims:ime,kms:kme), intent(in), optional  qnc,
real, dimension(ims:ime,kms:kme), intent(in), optional  qni,
real, dimension(ims:ime,kms:kme), intent(in), optional  qnwfa,
real, dimension(ims:ime,kms:kme), intent(in), optional  qnifa,
real, dimension(ims:ime,kms:kme), intent(in), optional  ozone,
real, dimension(ims:ime,kms:kme), intent(in)  p,
real, dimension(ims:ime,kms:kme), intent(in)  exner,
real, dimension(ims:ime,kms:kme), intent(in)  rho,
real, dimension(ims:ime,kms:kme), intent(in)  T3D,
real, dimension(ims:ime), intent(in)  xland,
real, dimension(ims:ime), intent(in)  ts,
real, dimension(ims:ime), intent(in)  qsfc,
real, dimension(ims:ime), intent(in)  qcg,
real, dimension(ims:ime), intent(in)  ps,
real, dimension(ims:ime), intent(in)  ust,
real, dimension(ims:ime), intent(in)  ch,
real, dimension(ims:ime), intent(in)  hfx,
real, dimension(ims:ime), intent(in)  qfx,
real, dimension(ims:ime), intent(inout)  rmol,
real, dimension(ims:ime), intent(in)  wspd,
real, dimension(ims:ime), intent(in)  uoce,
real, dimension(ims:ime), intent(in)  voce,
real, dimension(ims:ime), intent(in)  vdfg,
real, dimension(ims:ime,kms:kme), intent(inout)  Qke,
real, dimension(ims:ime,kms:kme), intent(inout)  qke_adv,
logical, intent(in)  bl_mynn_tkeadvect,
  if,
  WRF_CHEM 
)

MYNN-EDMF PBL Driver General Algorithm

  • Within the MYNN-EDMF, there is a dependecy check for the first time step, If true, a three-dimensional initialization loop is entered. Within this loop, several arrays are initialized and k-oriented (vertical) subroutines are called at every i and j point, corresponding to the x- and y- directions, respectively.
  • Call get_pblh() to calculate hybrid ( \(\theta_{vli}-TKE\)) PBL height.
  • Call scale_aware() to calculate similarity functions for scale-adaptive control ( \(P_{\sigma-PBL}\) and \(P_{\sigma-shcu}\)).
  • Call mym_initialize() to initializes the mixing length, TKE, \(\theta^{'2}\), \(q^{'2}\), and \(\theta^{'}q^{'}\). These variables are calculated after obtaining prerequisite variables by calling the following subroutines from within mym_initialize(): mym_level2() and mym_length().
  • After initializing all required variables, the regular procedures performed at every time step are ready for execution.
  • Call get_pblh() to calculate the hybrid \(\theta_{vli}-TKE\) PBL height diagnostic.
  • Call scale_aware() to calculate the similarity functions, \(P_{\sigma-PBL}\) and \(P_{\sigma-shcu}\), to control the scale-adaptive behaviour for the local and nonlocal components, respectively.
  • Call mym_condensation() to calculate the nonconvective component of the subgrid cloud fraction and mixing ratio as well as the functions used to calculate the buoyancy flux. Different cloud PDFs can be selected by use of the namelist parameter bl_mynn_cloudpdf.
  • Add TKE source driven by cloud top cooling Calculate the buoyancy production of TKE from cloud-top cooling when bl_mynn_topdown =1.
  • Call mym_predict() to solve TKE and \(\theta^{'2}, q^{'2}, and \theta^{'}q^{'}\) for the following time step.
  • Call mynn_tendencies() to solve for tendencies of \(U, V, \theta, q_{v}, q_{c}, and q_{i}\).