CCPP Scidoc for SRW v2.1.0  SRW v2.1.0
Common Community Physics Package Developed at DTC
module_bl_mynn Module Reference

Functions/Subroutines

subroutine mym_level2 (kts, kte, dz, u, v, thl, thetav, qw, thlsg, qwsg, 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\). More...
 
subroutine mym_length (kts, kte, dz, dx, zw, rmo, flt, flq, vt, vq, u1, v1, qke, dtv, el, zi, theta, qkw, Psig_bl, cldfra_bl1D, bl_mynn_mixlength, edmf_w1, edmf_a1, edmf_qc1, bl_mynn_edmf)
 This subroutine calculates the mixing lengths. More...
 
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. More...
 
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. More...
 
subroutine mym_turbulence (kts, kte, closure, dz, dx, zw, u, v, thl, thetav, ql, qw, thlsg, qwsg, qke, tsq, qsq, cov, vt, vq, rmo, flt, flq, zi, theta, sh, sm, El, Dfm, Dfh, Dfq, Tcd, Qcd, Pdk, Pdt, Pdq, Pdc, qWT1D, qSHEAR1D, qBUOY1D, qDISS1D, bl_mynn_tkebudget, Psig_bl, Psig_shcu, cldfra_bl1D, bl_mynn_mixlength, edmf_w1, edmf_a1, edmf_qc1, bl_mynn_edmf, TKEprodTD, spp_pbl, rstoch_col)
 This subroutine calculates the vertical diffusivity coefficients and the production terms for the turbulent quantities.
More...
 
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, bl_mynn_tkebudget)
 This subroutine predicts the turbulent quantities at the next step. More...
 
subroutine mym_condensation (kts, kte, dx, dz, zw, thl, qw, qv, qc, qi, 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 . More...
 
subroutine mynn_tendencies (kts, kte, i, closure, delt, dz, rho, u, v, th, tk, qv, qc, qi, qnc, qni, psfc, p, exner, thl, sqv, sqc, sqi, sqw, qnwfa, qnifa, ozone, ust, flt, flq, flqv, flqc, wspd, uoce, voce, tsq, qsq, cov, tcd, qcd, dfm, dfh, dfq, Du, Dv, Dth, Dqv, Dqc, Dqi, Dqnc, Dqni, Dqnwfa, Dqnifa, Dozone, vdfg1, diss_heat, s_aw, s_awthl, s_awqt, s_awqv, s_awqc, s_awu, s_awv, s_awqnc, s_awqni, s_awqnwfa, s_awqnifa, 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_QNWFA, FLAG_QNIFA, 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. More...
 
subroutine moisture_check (kte, delt, dp, exner, qv, qc, qi, th, dqv, dqc, dqi, dth)
 ensure non-negative moist species. More...
 
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, fire_turb)
 
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 mynn_bl_init_driver (RUBLTEN, RVBLTEN, RTHBLTEN, RQVBLTEN, RQCBLTEN, RQIBLTEN, QKE, EXCH_H, RESTART, ALLOWED_TO_READ, LEVEL, IDS, IDE, JDS, JDE, KDS, KDE, IMS, IME, JMS, JME, KMS, KME, ITS, ITE, JTS, JTE, KTS, KTE)
 
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, 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, 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, Psig_shcu, nup2, ktop, maxmf, ztop, spp_pbl, rstoch_col)
 This subroutine is the Dynamic Multi-Plume (DMP) Mass-Flux Scheme. More...
 
subroutine condensation_edmf (QT, THL, P, zagl, THV, QC)
 zero or one condensation for edmf: calculates THV and QC More...
 
subroutine condensation_edmf_r (QT, THL, P, zagl, THV, QC)
 zero or one condensation for edmf: calculates THL and QC
similar to condensation_edmf but with different inputs More...
 
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)
 This is the downdraft mass flux scheme - analogus to edmf_JPL but
flipped updraft to downdraft. This scheme is currently only tested for Stratocumulus cloud conditions. For a detailed desctiption of the model, see paper. More...
 
subroutine scale_aware (dx, PBL1, Psig_bl, Psig_shcu)
 Add scale-aware factor (Psig) here, taken from Honnert et al. (2011) [94] and/or from Shin and Hong (2013) [174]. More...
 
real function esat_blend (t)
 
real function qsat_blend (t, P, waterice)
 This function extends function "esat" and returns a "blended" saturation mixing ratio. More...
 
real 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) [33], Appendix. More...
 
real function phim (zet)
 New stability function parameters for momentum (Puhales, 2020, WRF 4.2.1) The forms in unstable conditions (z/L < 0) use Grachev et al. (2000), which are a blend of the classical (Kansas) forms (i.e., Paulson 1970, Dyer and Hicks 1970), valid for weakly unstable conditions (-1 < z/L < 0). The stability functions for stable conditions use an updated form taken from Cheng and Brutsaert (2005), which extends the validity into very stable conditions [z/L ~ O(10)]. More...
 
real function phih (zet)
 New stability function parameters for heat (Puhales, 2020, WRF 4.2.1) The forms in unstable conditions (z/L < 0) use Grachev et al. (2000), which are a blend of the classical (Kansas) forms (i.e., Paulson 1970, Dyer and Hicks 1970), valid for weakly unstable conditions (-1 < z/L < 0). The stability functions for stable conditions use an updated form taken from Cheng and Brutsaert (2005), which extends the validity into very stable conditions [z/L ~ O(10)]. More...
 
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)
 Calculate the buoyancy production of TKE from cloud-top cooling. More...
 
subroutine mynn_bl_driver (initflag, restart, cycling, delt, dz, dx, znt, u, v, w, th, sqv3D, sqc3D, sqi3D, qnc, qni, qnwfa, qnifa, ozone, p, exner, rho, T3D, xland, ts, qsfc, ps, ust, ch, hfx, qfx, rmol, wspd, uoce, voce, vdfg, Qke, qke_adv, sh3d, sm3d, nchem, kdvel, ndvel, chem3d, vdep, frp, EMIS_ANT_NO, mix_chem, fire_turb, rrfs_smoke, Tsq, Qsq, Cov, RUBLTEN, RVBLTEN, RTHBLTEN, RQVBLTEN, RQCBLTEN, RQIBLTEN, RQNCBLTEN, RQNIBLTEN, RQNWFABLTEN, RQNIFABLTEN, DOZONE, exch_h, exch_m, Pblh, kpbl, el_pbl, dqke, qWT, qSHEAR, qBUOY, qDISS, qc_bl, qi_bl, cldfra_bl, bl_mynn_tkeadvect, bl_mynn_tkebudget, 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, nupdraft, maxMF, ktop_plume, spp_pbl, pattern_spp_pbl, RTHRATEN, FLAG_QC, FLAG_QI, FLAG_QNC, FLAG_QNI, FLAG_QNWFA, FLAG_QNIFA, FLAG_OZONE, IDS, IDE, JDS, JDE, KDS, KDE, IMS, IME, JMS, JME, KMS, KME, ITS, ITE, JTS, JTE, KTS, KTE)
 This subroutine is the GSD 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\). More...
 
subroutine mym_initialize (kts, kte, dz, dx, zw, u, v, thl, qw, thlsg, qwsg, zi, theta, thetav, sh, sm, ust, rmo, el, Qke, Tsq, Qsq, Cov, Psig_bl, cldfra_bl1D, bl_mynn_mixlength, edmf_w1, edmf_a1, edmf_qc1, bl_mynn_edmf, INITIALIZE_QKE, spp_pbl, rstoch_col)
 This subroutine gives the closure constants and initializes the turbulent qantities. More...
 
subroutine get_pblh (KTS, KTE, zi, thetav1D, qke1D, zw1D, dz1D, landsea, kzi)
 This subroutine calculates hybrid diagnotic boundary-layer height (PBLH). More...
 

Variables

integer, parameter param_first_scalar = 1
 
integer, parameter p_qc = 2
 
integer, parameter p_qr = 0
 
integer, parameter p_qi = 2
 
integer, parameter p_qs = 0
 
integer, parameter p_qg = 0
 
integer, parameter p_qnc = 0
 
integer, parameter p_qni = 0
 
real, parameter cphm_st =5.0
 
real, parameter cphm_unst =16.0
 
real, parameter cphh_st =5.0
 
real, parameter cphh_unst =16.0
 
real, parameter pr = 0.74
 
real, parameter g1 = 0.235
 
real, parameter b1 = 24.0
 
real, parameter b2 = 15.0
 
real, parameter c2 = 0.729
 
real, parameter c3 = 0.340
 
real, parameter c4 = 0.0
 
real, parameter c5 = 0.2
 
real, parameter a1 = b1*( 1.0-3.0*g1 )/6.0
 
real, parameter c1 = g1 -1.0/( 3.0*a1*2.88449914061481660)
 
real, parameter a2 = a1*( g1-c1 )/( g1*pr )
 
real, parameter g2 = b2/b1*( 1.0-c3 ) +2.0*a1/b1*( 3.0-2.0*c2 )
 
real, parameter cc2 = 1.0-c2
 
real, parameter cc3 = 1.0-c3
 
real, parameter e1c = 3.0*a2*b2*cc3
 
real, parameter e2c = 9.0*a1*a2*cc2
 
real, parameter e3c = 9.0*a2*a2*cc2*( 1.0-c5 )
 
real, parameter e4c = 12.0*a1*a2*cc2
 
real, parameter e5c = 6.0*a1*a1
 
real, parameter qmin =0.0
 
real, parameter zmax =1.0
 
real, parameter sqfac =3.0
 
real, parameter gpw =5./3.
 
real, parameter qcgmin =1.e-8
 
real, parameter qkemin =1.e-12
 
real, parameter rr2 =0.7071068
 
real, parameter rrp =0.3989423
 
real, 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. More...
 
real, 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. More...
 
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. More...
 
integer, parameter bl_mynn_edmf_dd = 0
 Option to activate downdrafts, from Elynn Wu (0: deactive, 1: active) More...
 
integer, parameter dheat_opt = 1
 Option to activate heating due to dissipation of TKE (to activate, set to 1.0) More...
 
logical, parameter env_subs = .false.
 
integer, parameter bl_mynn_stfunc = 1
 
logical, parameter debug_code = .false.
 
integer, parameter idbg = 23
 
real, parameter j0 = .611583699E03
 Constants used for empirical calculations of saturation vapor pressures (in function "esat") and saturation mixing ratios (in function "qsat"), reproduced from module_mp_thompson.F, v3.6. More...
 
real, parameter j1 = .444606896E02
 
real, parameter j2 = .143177157E01
 
real, parameter j3 = .264224321E-1
 
real, parameter j4 = .299291081E-3
 
real, parameter j5 = .203154182E-5
 
real, parameter j6 = .702620698E-8
 
real, parameter j7 = .379534310E-11
 
real, parameter j8 =-.321582393E-13
 
real, parameter k0 = .609868993E03
 
real, parameter k1 = .499320233E02
 
real, parameter k2 = .184672631E01
 
real, parameter k3 = .402737184E-1
 
real, parameter k4 = .565392987E-3
 
real, parameter k5 = .521693933E-5
 
real, parameter k6 = .307839583E-7
 
real, parameter k7 = .105785160E-9
 
real, parameter k8 = .161444444E-12
 
integer mynn_level