CCPP SciDoc v7.0.x  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ mynn_bl_driver()

subroutine module_bl_mynn::mynn_bl_driver ( integer, intent(in)  initflag,
logical, intent(in)  restart,
logical, intent(in)  cycling,
real(kind_phys), intent(in)  delt,
real(kind_phys), dimension(:,:), intent(in)  dz,
real(kind_phys), dimension(:), intent(in)  dx,
real(kind_phys), dimension(:), intent(in)  znt,
real(kind_phys), dimension(:,:), intent(in)  u,
real(kind_phys), dimension(:,:), intent(in)  v,
real(kind_phys), dimension(:,:), intent(in)  w,
real(kind_phys), dimension(:,:), intent(in)  th,
real(kind_phys), dimension(:,:), intent(in)  sqv3d,
real(kind_phys), dimension(:,:), intent(in)  sqc3d,
real(kind_phys), dimension(:,:), intent(in)  sqi3d,
real(kind_phys), dimension(:,:), intent(in)  sqs3d,
real(kind_phys), dimension(:,:), intent(in)  qnc,
real(kind_phys), dimension(:,:), intent(in)  qni,
real(kind_phys), dimension(:,:), intent(in)  qnwfa,
real(kind_phys), dimension(:,:), intent(in)  qnifa,
real(kind_phys), dimension(:,:), intent(in)  qnbca,
real(kind_phys), dimension(:,:), intent(in)  ozone,
real(kind_phys), dimension(:,:), intent(in)  p,
real(kind_phys), dimension(:,:), intent(in)  exner,
real(kind_phys), dimension(:,:), intent(in)  rho,
real(kind_phys), dimension(:,:), intent(in)  t3d,
real(kind_phys), dimension(:), intent(in)  xland,
real(kind_phys), dimension(:), intent(in)  ts,
real(kind_phys), dimension(:), intent(in)  qsfc,
real(kind_phys), dimension(:), intent(in)  ps,
real(kind_phys), dimension(:), intent(in)  ust,
real(kind_phys), dimension(:), intent(in)  ch,
real(kind_phys), dimension(:), intent(in)  hfx,
real(kind_phys), dimension(:), intent(in)  qfx,
real(kind_phys), dimension(:), intent(inout)  rmol,
real(kind_phys), dimension(:), intent(in)  wspd,
real(kind_phys), dimension(:), intent(in)  uoce,
real(kind_phys), dimension(:), intent(in)  voce,
real(kind_phys), dimension(:,:), intent(inout)  qke,
real(kind_phys), dimension(:,:), intent(inout)  qke_adv,
real(kind_phys), dimension(:,:), intent(out)  sh3d,
real(kind_phys), dimension(:,:), intent(out)  sm3d,
integer, intent(in)  nchem,
integer, intent(in)  kdvel,
integer, intent(in)  ndvel,
real(kind_phys), dimension(:,:,:), intent(inout), optional  chem3d,
real(kind_phys), dimension(:,:), intent(in), optional  vdep,
logical, intent(in)  smoke_dbg,
real(kind_phys), dimension(:), intent(in), optional  frp,
real(kind_phys), dimension(:), intent(in)  emis_ant_no,
logical, intent(in)  mix_chem,
logical, intent(in)  enh_mix,
logical, intent(in)  rrfs_sd,
real(kind_phys), dimension(:,:), intent(inout)  tsq,
real(kind_phys), dimension(:,:), intent(inout)  qsq,
real(kind_phys), dimension(:,:), intent(inout)  cov,
real(kind_phys), dimension(:,:), intent(inout)  rublten,
real(kind_phys), dimension(:,:), intent(inout)  rvblten,
real(kind_phys), dimension(:,:), intent(inout)  rthblten,
real(kind_phys), dimension(:,:), intent(inout)  rqvblten,
real(kind_phys), dimension(:,:), intent(inout)  rqcblten,
real(kind_phys), dimension(:,:), intent(inout)  rqiblten,
real(kind_phys), dimension(:,:), intent(inout)  rqncblten,
real(kind_phys), dimension(:,:), intent(inout)  rqniblten,
real(kind_phys), dimension(:,:), intent(inout)  rqsblten,
real(kind_phys), dimension(:,:), intent(inout)  rqnwfablten,
real(kind_phys), dimension(:,:), intent(inout)  rqnifablten,
real(kind_phys), dimension(:,:), intent(inout)  rqnbcablten,
real(kind_phys), dimension(:,:), intent(inout)  dozone,
real(kind_phys), dimension(:,:), intent(out)  exch_h,
real(kind_phys), dimension(:,:), intent(out)  exch_m,
real(kind_phys), dimension(:), intent(inout)  pblh,
integer, dimension(:), intent(inout)  kpbl,
real(kind_phys), dimension(:,:), intent(inout)  el_pbl,
real(kind_phys), dimension(:,:), intent(inout), optional  dqke,
real(kind_phys), dimension(:,:), intent(inout), optional  qwt,
real(kind_phys), dimension(:,:), intent(inout), optional  qshear,
real(kind_phys), dimension(:,:), intent(inout), optional  qbuoy,
real(kind_phys), dimension(:,:), intent(inout), optional  qdiss,
real(kind_phys), dimension(:,:), intent(inout)  qc_bl,
real(kind_phys), dimension(:,:), intent(inout)  qi_bl,
real(kind_phys), dimension(:,:), intent(inout)  cldfra_bl,
logical, intent(in)  bl_mynn_tkeadvect,
integer, intent(in)  tke_budget,
integer, intent(in)  bl_mynn_cloudpdf,
integer, intent(in)  bl_mynn_mixlength,
integer, intent(in)  icloud_bl,
real(kind_phys), intent(in)  closure,
integer, intent(in)  bl_mynn_edmf,
integer, intent(in)  bl_mynn_edmf_mom,
integer, intent(in)  bl_mynn_edmf_tke,
integer, intent(in)  bl_mynn_mixscalars,
integer, intent(in)  bl_mynn_output,
integer, intent(in)  bl_mynn_cloudmix,
integer, intent(in)  bl_mynn_mixqt,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_a,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_w,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_qt,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_thl,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_ent,
real(kind_phys), dimension(:,:), intent(inout), optional  edmf_qc,
real(kind_phys), dimension(:,:), intent(inout), optional  sub_thl3d,
real(kind_phys), dimension(:,:), intent(inout), optional  sub_sqv3d,
real(kind_phys), dimension(:,:), intent(inout), optional  det_thl3d,
real(kind_phys), dimension(:,:), intent(inout), optional  det_sqv3d,
real(kind_phys), dimension(:), intent(out)  maxwidth,
real(kind_phys), dimension(:), intent(out)  maxmf,
real(kind_phys), dimension(:), intent(out)  ztop_plume,
integer, dimension(:), intent(inout)  ktop_plume,
integer, intent(in)  spp_pbl,
real(kind_phys), dimension(:,:), intent(in), optional  pattern_spp_pbl,
real(kind_phys), dimension(:,:), intent(in)  rthraten,
logical, intent(in)  flag_qc,
logical, intent(in)  flag_qi,
logical, intent(in)  flag_qnc,
logical, intent(in)  flag_qni,
logical, intent(in)  flag_qs,
logical, intent(in)  flag_qnwfa,
logical, intent(in)  flag_qnifa,
logical, intent(in)  flag_qnbca,
logical, intent(in)  flag_ozone,
integer, intent(in)  ids,
integer, intent(in)  ide,
integer, intent(in)  jds,
integer, intent(in)  jde,
integer, intent(in)  kds,
integer, intent(in)  kde,
integer, intent(in)  ims,
integer, intent(in)  ime,
integer, intent(in)  jms,
integer, intent(in)  jme,
integer, intent(in)  kms,
integer, intent(in)  kme,
integer, intent(in)  its,
integer, intent(in)  ite,
integer, intent(in)  jts,
integer, intent(in)  jte,
integer, intent(in)  kts,
integer, intent(in)  kte 
)

mynn_bl_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_{v}-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_{v}-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}\).

Definition at line 361 of file module_bl_mynn.F90.

References dmp_mf(), get_pblh(), mym_condensation(), mym_initialize(), mym_predict(), mym_turbulence(), mynn_tendencies(), and retrieve_exchange_coeffs().

Referenced by mynnedmf_wrapper::mynnedmf_wrapper_run().

Here is the call graph for this function:
Here is the caller graph for this function: