CCPP SciDoc v7.0.0  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), optional qke,
real(kind_phys), dimension(:,:), intent(inout) qke_adv,
real(kind_phys), dimension(:,:), intent(out), optional sh3d,
real(kind_phys), dimension(:,:), intent(out), optional 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), optional tsq,
real(kind_phys), dimension(:,:), intent(inout), optional qsq,
real(kind_phys), dimension(:,:), intent(inout), optional 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), optional exch_h,
real(kind_phys), dimension(:,:), intent(out), optional exch_m,
real(kind_phys), dimension(:), intent(inout) pblh,
integer, dimension(:), intent(inout) kpbl,
real(kind_phys), dimension(:,:), intent(inout), optional 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), optional qc_bl,
real(kind_phys), dimension(:,:), intent(inout), optional qi_bl,
real(kind_phys), dimension(:,:), intent(inout), optional 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), optional maxwidth,
real(kind_phys), dimension(:), intent(out), optional maxmf,
real(kind_phys), dimension(:), intent(out), optional ztop_plume,
integer, dimension(:), intent(inout), optional 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: