CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
module_bl_mynn Module Reference

This module contains the entity of MYNN-EDMF PBL scheme.

Functions/Subroutines

subroutine mym_level2 (kts, kte, dz, u, v, thl, thetav, qw, ql, vt, vq, dtl, dqw, dtv, gm, gh, sm, sh)
 This subroutine calculates the level 2, non-dimensional wind shear \(G_M\) and vertical temperature gradient \(G_H\) as well as the level 2 stability funcitons \(S_h\) and \(S_m\).
 
subroutine mym_length (kts, kte, xland, dz, dx, zw, rmo, flt, fltv, flq, vt, vq, u1, v1, qke, dtv, el, zi, theta, qkw, psig_bl, cldfra_bl1d, bl_mynn_mixlength, edmf_w1, edmf_a1)
 This subroutine calculates the mixing lengths.
 
subroutine boulac_length0 (k, kts, kte, zw, dz, qtke, theta, lb1, lb2)
 This subroutine was taken from the BouLac scheme in WRF-ARW and modified for integration into the MYNN PBL scheme. WHILE loops were added to reduce the computational expense. This subroutine computes the length scales up and down and then computes the min, average of the up/down length scales, and also considers the distance to the surface.
 
subroutine boulac_length (kts, kte, zw, dz, qtke, theta, lb1, lb2)
 This subroutine was taken from the BouLac scheme in WRF-ARW and modified for integration into the MYNN PBL scheme. WHILE loops were added to reduce the computational expense. This subroutine computes the length scales up and down and then computes the min, average of the up/down length scales, and also considers the distance to the surface.
 
subroutine mym_turbulence (kts, kte, xland, closure, dz, dx, zw, u, v, thl, thetav, ql, qw, qke, tsq, qsq, cov, vt, vq, rmo, flt, fltv, flq, zi, theta, sh, sm, el, dfm, dfh, dfq, tcd, qcd, pdk, pdt, pdq, pdc, qwt1d, qshear1d, qbuoy1d, qdiss1d, tke_budget, psig_bl, psig_shcu, cldfra_bl1d, bl_mynn_mixlength, edmf_w1, edmf_a1, tkeprodtd, spp_pbl, rstoch_col)
 This subroutine calculates the vertical diffusivity coefficients and the production terms for the turbulent quantities.

 
subroutine mym_predict (kts, kte, closure, delt, dz, ust, flt, flq, pmz, phh, el, dfq, rho, pdk, pdt, pdq, pdc, qke, tsq, qsq, cov, s_aw, s_awqke, bl_mynn_edmf_tke, qwt1d, qdiss1d, tke_budget)
 This subroutine predicts the turbulent quantities at the next step.
 
subroutine mym_condensation (kts, kte, dx, dz, zw, xland, thl, qw, qv, qc, qi, qs, p, exner, tsq, qsq, cov, sh, el, bl_mynn_cloudpdf, qc_bl1d, qi_bl1d, cldfra_bl1d, pblh1, hfx1, vt, vq, th, sgm, rmo, spp_pbl, rstoch_col)
 This subroutine calculates 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 .
 
subroutine mynn_tendencies (kts, kte, i, delt, dz, rho, u, v, th, tk, qv, qc, qi, qs, qnc, qni, psfc, p, exner, thl, sqv, sqc, sqi, sqs, sqw, qnwfa, qnifa, qnbca, ozone, ust, flt, flq, flqv, flqc, wspd, uoce, voce, tsq, qsq, cov, tcd, qcd, dfm, dfh, dfq, du, dv, dth, dqv, dqc, dqi, dqs, dqnc, dqni, dqnwfa, dqnifa, dqnbca, dozone, diss_heat, s_aw, s_awthl, s_awqt, s_awqv, s_awqc, s_awu, s_awv, s_awqnc, s_awqni, s_awqnwfa, s_awqnifa, s_awqnbca, sd_aw, sd_awthl, sd_awqt, sd_awqv, sd_awqc, sd_awu, sd_awv, sub_thl, sub_sqv, sub_u, sub_v, det_thl, det_sqv, det_sqc, det_u, det_v, flag_qc, flag_qi, flag_qnc, flag_qni, flag_qs, flag_qnwfa, flag_qnifa, flag_qnbca, cldfra_bl1d, bl_mynn_cloudmix, bl_mynn_mixqt, bl_mynn_edmf, bl_mynn_edmf_mom, bl_mynn_mixscalars)
 This subroutine solves for tendencies of U, V, \(\theta\), qv, qc, and qi.
 
subroutine moisture_check (kte, delt, dp, exner, qv, qc, qi, qs, th, dqv, dqc, dqi, dqs, dth)
 
subroutine mynn_mix_chem (kts, kte, i, delt, dz, pblh, nchem, kdvel, ndvel, chem1, vd1, rho, flt, tcd, qcd, dfh, s_aw, s_awchem, emis_ant_no, frp, rrfs_sd, enh_mix, smoke_dbg)
 
subroutine retrieve_exchange_coeffs (kts, kte, dfm, dfh, dz, k_m, k_h)
 
subroutine tridiag (n, a, b, c, d)
 
subroutine tridiag2 (n, a, b, c, d, x)
 
subroutine tridiag3 (kte, a, b, c, d, x)
 
subroutine dmp_mf (kts, kte, dt, zw, dz, p, rho, momentum_opt, tke_opt, scalar_opt, u, v, w, th, thl, thv, tk, qt, qv, qc, qke, qnc, qni, qnwfa, qnifa, qnbca, exner, vt, vq, sgm, ust, flt, fltv, flq, flqv, pblh, kpbl, dx, landsea, ts, edmf_a, edmf_w, edmf_qt, edmf_thl, edmf_ent, edmf_qc, s_aw, s_awthl, s_awqt, s_awqv, s_awqc, s_awu, s_awv, s_awqke, s_awqnc, s_awqni, s_awqnwfa, s_awqnifa, s_awqnbca, sub_thl, sub_sqv, sub_u, sub_v, det_thl, det_sqv, det_sqc, det_u, det_v, nchem, chem1, s_awchem, mix_chem, qc_bl1d, cldfra_bl1d, qc_bl1d_old, cldfra_bl1d_old, f_qc, f_qi, f_qnc, f_qni, f_qnwfa, f_qnifa, f_qnbca, psig_shcu, maxwidth, ktop, maxmf, ztop, spp_pbl, rstoch_col)
 This subroutine is the Dynamic Multi-Plume (DMP) Mass-Flux Scheme.
 
subroutine condensation_edmf (qt, thl, p, zagl, thv, qc)
 This subroutine.
 
subroutine condensation_edmf_r (qt, thl, p, zagl, thv, qc)
 
subroutine ddmf_jpl (kts, kte, dt, zw, dz, p, u, v, th, thl, thv, tk, qt, qv, qc, rho, exner, ust, wthl, wqt, pblh, kpbl, edmf_a_dd, edmf_w_dd, edmf_qt_dd, edmf_thl_dd, edmf_ent_dd, edmf_qc_dd, sd_aw, sd_awthl, sd_awqt, sd_awqv, sd_awqc, sd_awu, sd_awv, sd_awqke, qc_bl1d, cldfra_bl1d, rthraten)
 
subroutine scale_aware (dx, pbl1, psig_bl, psig_shcu)
 
real(kind_phys) function esat_blend (t)
 
real(kind_phys) function qsat_blend (t, p)
 This function extends function "esat" and returns a "blended" saturation mixing ratio. Tice currently set to 240 K, t0c = 273.15 K.
 
real(kind_phys) function xl_blend (t)
 This function interpolates the latent heats of vaporization and sublimation into a single, temperature-dependent, "blended" value, following Chaboureau and Bechtold (2002) [29], Appendix.
 
real(kind_phys) function phim (zet)
 
real(kind_phys) function phih (zet)
 
subroutine topdown_cloudrad (kts, kte, dz1, zw, xland, kpbl, pblh, sqc, sqi, sqw, thl, th1, ex1, p1, rho1, thetav, cldfra_bl1d, rthraten, maxkhtopdown, khtopdown, tkeprodtd)
 
subroutine mynn_bl_driver (initflag, restart, cycling, delt, dz, dx, znt, u, v, w, th, sqv3d, sqc3d, sqi3d, sqs3d, qnc, qni, qnwfa, qnifa, qnbca, ozone, p, exner, rho, t3d, xland, ts, qsfc, ps, ust, ch, hfx, qfx, rmol, wspd, uoce, voce, qke, qke_adv, sh3d, sm3d, nchem, kdvel, ndvel, chem3d, vdep, smoke_dbg, frp, emis_ant_no, mix_chem, enh_mix, rrfs_sd, tsq, qsq, cov, rublten, rvblten, rthblten, rqvblten, rqcblten, rqiblten, rqncblten, rqniblten, rqsblten, rqnwfablten, rqnifablten, rqnbcablten, dozone, exch_h, exch_m, pblh, kpbl, el_pbl, dqke, qwt, qshear, qbuoy, qdiss, qc_bl, qi_bl, cldfra_bl, bl_mynn_tkeadvect, tke_budget, bl_mynn_cloudpdf, bl_mynn_mixlength, icloud_bl, closure, bl_mynn_edmf, bl_mynn_edmf_mom, bl_mynn_edmf_tke, bl_mynn_mixscalars, bl_mynn_output, bl_mynn_cloudmix, bl_mynn_mixqt, edmf_a, edmf_w, edmf_qt, edmf_thl, edmf_ent, edmf_qc, sub_thl3d, sub_sqv3d, det_thl3d, det_sqv3d, maxwidth, maxmf, ztop_plume, ktop_plume, spp_pbl, pattern_spp_pbl, rthraten, flag_qc, flag_qi, flag_qnc, flag_qni, flag_qs, flag_qnwfa, flag_qnifa, flag_qnbca, flag_ozone, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte)
 This subroutine is the MYNN-EDNF PBL driver routine,which encompassed the majority of the subroutines that comprise the procedures that ultimately solve for tendencies of \(U, V, \theta, q_v, q_c, and q_i\).
 
subroutine mym_initialize (kts, kte, xland, dz, dx, zw, u, v, thl, qw, zi, theta, thetav, sh, sm, ust, rmo, el, qke, tsq, qsq, cov, psig_bl, cldfra_bl1d, bl_mynn_mixlength, edmf_w1, edmf_a1, initialize_qke, spp_pbl, rstoch_col)
 This subroutine initializes the mixing length, TKE, \(\theta^{'2}\), \(q^{'2}\), and \(\theta^{'}q^{'}\).
 
subroutine get_pblh (kts, kte, zi, thetav1d, qke1d, zw1d, dz1d, landsea, kzi)
 This subroutine calculates hybrid diagnotic boundary-layer height (PBLH).
 

Variables

real(kind_phys), parameter cphm_st =5.0
 
real(kind_phys), parameter cphm_unst =16.0
 
real(kind_phys), parameter cphh_st =5.0
 
real(kind_phys), parameter cphh_unst =16.0
 
real(kind_phys), parameter pr = 0.74
 
real(kind_phys), parameter g1 = 0.235
 
real(kind_phys), parameter b1 = 24.0
 
real(kind_phys), parameter b2 = 15.0
 
real(kind_phys), parameter c2 = 0.729
 
real(kind_phys), parameter c3 = 0.340
 
real(kind_phys), parameter c4 = 0.0
 
real(kind_phys), parameter c5 = 0.2
 
real(kind_phys), parameter a1 = b1*( 1.0-3.0*g1 )/6.0
 
real(kind_phys), parameter c1 = g1 -1.0/( 3.0*a1*2.88449914061481660)
 
real(kind_phys), parameter a2 = a1*( g1-c1 )/( g1*pr )
 
real(kind_phys), parameter g2 = b2/b1*( 1.0-c3 ) +2.0*a1/b1*( 3.0-2.0*c2 )
 
real(kind_phys), parameter cc2 = 1.0-c2
 
real(kind_phys), parameter cc3 = 1.0-c3
 
real(kind_phys), parameter e1c = 3.0*a2*b2*cc3
 
real(kind_phys), parameter e2c = 9.0*a1*a2*cc2
 
real(kind_phys), parameter e3c = 9.0*a2*a2*cc2*( 1.0-c5 )
 
real(kind_phys), parameter e4c = 12.0*a1*a2*cc2
 
real(kind_phys), parameter e5c = 6.0*a1*a1
 
real(kind_phys), parameter qmin =0.0
 
real(kind_phys), parameter zmax =1.0
 
real(kind_phys), parameter sqfac =3.0
 
real(kind_phys), parameter gpw =5./3.
 
real(kind_phys), parameter qcgmin =1.e-8
 
real(kind_phys), parameter qkemin =1.e-12
 
real(kind_phys), parameter tliq = 269.
 
real(kind_phys), parameter rr2 =0.7071068
 
real(kind_phys), parameter rrp =0.3989423
 
real(kind_phys), parameter ckmod =1.
 Use Canuto/Kitamura mod (remove Ric and negative TKE) (1:yes, 0:no) For more info, see Canuto et al. (2008 JAS) and Kitamura (Journal of the Meteorological Society of Japan, Vol. 88, No. 5, pp. 857-864, 2010). Note that this change required further modification of other parameters above (c2, c3). If you want to remove this option, set c2 and c3 constants (above) back to NN2009 values (see commented out lines next to the parameters above). This only removes the negative TKE problem but does not necessarily improve performance - neutral impact.
 
real(kind_phys), parameter scaleaware =1.
 Use Ito et al. (2015, BLM) scale-aware (0: no, 1: yes). Note that this also has impacts on the cloud PDF and mass-flux scheme, using Honnert et al. (2011) similarity function for TKE in the upper PBL/cloud layer.
 
integer, parameter bl_mynn_topdown = 0
 Of the following the options, use one OR the other, not both. Adding top-down diffusion driven by cloud-top radiative cooling.
 
integer, parameter bl_mynn_edmf_dd = 0
 Option to activate downdrafts, from Elynn Wu (0: deactive, 1: active)
 
integer, parameter dheat_opt = 1
 Option to activate heating due to dissipation of TKE (to activate, set to 1.0)
 
logical, parameter env_subs = .false.
 
integer, parameter bl_mynn_stfunc = 1
 
logical, parameter debug_code = .false.
 
integer, parameter idbg = 23
 
integer mynn_level