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 |