This scheme (1) performs pre-mynnedmf work, (2) runs the mynnedmf, and (3) performs post-mynnedmf work. More...
Modules | |
| module | bl_mynn_common |
| This module defines model-specific constants/parameters. | |
Functions/Subroutines | |
| subroutine | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::retrieve_exchange_coeffs (kts, kte, dfm, dfh, dz, k_m, k_h) |
| subroutine | module_bl_mynn::tridiag (n, a, b, c, d) |
| subroutine | module_bl_mynn::tridiag2 (n, a, b, c, d, x) |
| subroutine | module_bl_mynn::tridiag3 (kte, a, b, c, d, x) |
| subroutine | module_bl_mynn::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 | module_bl_mynn::condensation_edmf (qt, thl, p, zagl, thv, qc) |
| This subroutine. | |
| real(kind_phys) function | module_bl_mynn::esat_blend (t) |
| real(kind_phys) function | module_bl_mynn::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 | module_bl_mynn::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) [30], Appendix. | |
| subroutine | module_bl_mynn::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 | module_bl_mynn::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 | module_bl_mynn::get_pblh (kts, kte, zi, thetav1d, qke1d, zw1d, dz1d, landsea, kzi) |
| This subroutine calculates hybrid diagnotic boundary-layer height (PBLH). | |
This scheme (1) performs pre-mynnedmf work, (2) runs the mynnedmf, and (3) performs post-mynnedmf work.
| subroutine module_bl_mynn::boulac_length | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qtke, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | theta, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | lb1, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | 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.
Definition at line 2418 of file module_bl_mynn.F90.
Referenced by module_bl_mynn::mym_length().
| subroutine module_bl_mynn::boulac_length0 | ( | integer, intent(in) | k, |
| integer, intent(in) | kts, | ||
| integer, intent(in) | kte, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qtke, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | theta, | ||
| real(kind_phys), intent(out) | lb1, | ||
| real(kind_phys), intent(out) | 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.
Definition at line 2259 of file module_bl_mynn.F90.
| subroutine module_bl_mynn::condensation_edmf | ( | real(kind_phys), intent(in) | qt, |
| real(kind_phys), intent(in) | thl, | ||
| real(kind_phys), intent(in) | p, | ||
| real(kind_phys), intent(in) | zagl, | ||
| real(kind_phys), intent(out) | thv, | ||
| real(kind_phys), intent(inout) | qc | ||
| ) |
This subroutine.
Definition at line 6830 of file module_bl_mynn.F90.
References module_bl_mynn::condensation_edmf(), and module_bl_mynn::qsat_blend().
Referenced by module_bl_mynn::condensation_edmf(), and module_bl_mynn::dmp_mf().
| subroutine module_bl_mynn::dmp_mf | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | dt, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | p, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | rho, | ||
| integer, intent(in) | momentum_opt, | ||
| integer, intent(in) | tke_opt, | ||
| integer, intent(in) | scalar_opt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | w, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | th, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tk, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qke, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qnc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qni, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qnwfa, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qnifa, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qnbca, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | exner, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | vt, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | vq, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sgm, | ||
| real(kind_phys), intent(in) | ust, | ||
| real(kind_phys), intent(in) | flt, | ||
| real(kind_phys), intent(in) | fltv, | ||
| real(kind_phys), intent(in) | flq, | ||
| real(kind_phys), intent(in) | flqv, | ||
| real(kind_phys), intent(in) | pblh, | ||
| integer, intent(in) | kpbl, | ||
| real(kind_phys), intent(in) | dx, | ||
| real(kind_phys), intent(in) | landsea, | ||
| real(kind_phys), intent(in) | ts, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_a, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_w, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_qt, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_thl, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_ent, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | edmf_qc, | ||
| real(kind_phys), dimension(kts:kte+1) | s_aw, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awthl, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqt, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqv, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqc, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awu, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awv, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqke, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqnc, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqni, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqnwfa, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqnifa, | ||
| real(kind_phys), dimension(kts:kte+1) | s_awqnbca, | ||
| real(kind_phys), dimension(kts:kte) | sub_thl, | ||
| real(kind_phys), dimension(kts:kte) | sub_sqv, | ||
| real(kind_phys), dimension(kts:kte) | sub_u, | ||
| real(kind_phys), dimension(kts:kte) | sub_v, | ||
| real(kind_phys), dimension(kts:kte) | det_thl, | ||
| real(kind_phys), dimension(kts:kte) | det_sqv, | ||
| real(kind_phys), dimension(kts:kte) | det_sqc, | ||
| real(kind_phys), dimension(kts:kte) | det_u, | ||
| real(kind_phys), dimension(kts:kte) | det_v, | ||
| integer, intent(in) | nchem, | ||
| real(kind_phys), dimension(:, :) | chem1, | ||
| real(kind_phys), dimension(kts:kte+1, nchem) | s_awchem, | ||
| logical, intent(in) | mix_chem, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qc_bl1d, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | cldfra_bl1d, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qc_bl1d_old, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | cldfra_bl1d_old, | ||
| logical, optional | f_qc, | ||
| logical, optional | f_qi, | ||
| logical, optional | f_qnc, | ||
| logical, optional | f_qni, | ||
| logical, optional | f_qnwfa, | ||
| logical, optional | f_qnifa, | ||
| logical, optional | f_qnbca, | ||
| real(kind_phys), intent(in) | psig_shcu, | ||
| real(kind_phys), intent(out) | maxwidth, | ||
| integer, intent(out) | ktop, | ||
| real(kind_phys), intent(out) | maxmf, | ||
| real(kind_phys), intent(out) | ztop, | ||
| integer, intent(in) | spp_pbl, | ||
| real(kind_phys), dimension(kts:kte) | rstoch_col | ||
| ) |
This subroutine is the Dynamic Multi-Plume (DMP) Mass-Flux Scheme.
dmp_mf() calculates the nonlocal turbulent transport from the dynamic multiplume mass-flux scheme as well as the shallow-cumulus component of the subgrid clouds. Note that this mass-flux scheme is called when the namelist paramter bl_mynn_edmf is set to 1 (recommended).
Much thanks to Kay Suslj of NASA-JPL for contributing the original version of this mass-flux scheme. Considerable changes have been made from it's original form. Some additions include:
This scheme remains under development, so consider it experimental code.
Definition at line 5680 of file module_bl_mynn.F90.
References module_bl_mynn::condensation_edmf(), module_bl_mynn::esat_blend(), module_bl_mynn::qsat_blend(), and module_bl_mynn::xl_blend().
Referenced by module_bl_mynn::mynn_bl_driver().
| real(kind_phys) function module_bl_mynn::esat_blend | ( | real(kind_phys), intent(in) | t | ) |
Definition at line 7395 of file module_bl_mynn.F90.
References module_bl_mynn::esat_blend().
Referenced by module_bl_mynn::dmp_mf(), module_bl_mynn::esat_blend(), and module_bl_mynn::mym_condensation().
| subroutine module_bl_mynn::get_pblh | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(out) | zi, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thetav1d, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qke1d, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw1d, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz1d, | ||
| real(kind_phys), intent(in) | landsea, | ||
| integer | kzi | ||
| ) |
This subroutine calculates hybrid diagnotic boundary-layer height (PBLH).
NOTES ON THE PBLH FORMULATION: The 1.5-theta-increase method defines PBL heights as the level at. which the potential temperature first exceeds the minimum potential. temperature within the boundary layer by 1.5 K. When applied to. observed temperatures, this method has been shown to produce PBL- height estimates that are unbiased relative to profiler-based. estimates (Nielsen-Gammon et al. 2008 [149]). However, their study did not include LLJs. Banta and Pichugina (2008) [164] show that a TKE-based. threshold is a good estimate of the PBL height in LLJs. Therefore, a hybrid definition is implemented that uses both methods, weighting the TKE-method more during stable conditions (PBLH < 400 m). A variable tke threshold (TKEeps) is used since no hard-wired value could be found to work best in all conditions.
Definition at line 5518 of file module_bl_mynn.F90.
Referenced by module_bl_mynn::mynn_bl_driver().
| subroutine module_bl_mynn::mym_condensation | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | dx, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), intent(in) | xland, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qi, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qs, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | p, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | exner, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cov, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | sh, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | el, | ||
| integer, intent(in) | bl_mynn_cloudpdf, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qc_bl1d, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qi_bl1d, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | cldfra_bl1d, | ||
| real(kind_phys), intent(in) | pblh1, | ||
| real(kind_phys), intent(in) | hfx1, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | vt, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | vq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | th, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sgm, | ||
| real(kind_phys), intent(in) | rmo, | ||
| integer, intent(in) | spp_pbl, | ||
| real(kind_phys), dimension(kts:kte) | 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 .
Definition at line 3603 of file module_bl_mynn.F90.
References module_bl_mynn::esat_blend(), module_bl_mynn::qsat_blend(), and module_bl_mynn::xl_blend().
Referenced by module_bl_mynn::mynn_bl_driver().
| subroutine module_bl_mynn::mym_initialize | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | xland, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), intent(in) | dx, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qw, | ||
| real(kind_phys), intent(in) | zi, | ||
| real(kind_phys), dimension(kts:kte) | theta, | ||
| real(kind_phys), dimension(kts:kte) | thetav, | ||
| real(kind_phys), dimension(kts:kte) | sh, | ||
| real(kind_phys), dimension(kts:kte) | sm, | ||
| real(kind_phys), intent(in) | ust, | ||
| real(kind_phys), intent(in) | rmo, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | el, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qke, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | tsq, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qsq, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | cov, | ||
| real(kind_phys), intent(in) | psig_bl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cldfra_bl1d, | ||
| integer, intent(in) | bl_mynn_mixlength, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_w1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_a1, | ||
| logical, intent(in) | initialize_qke, | ||
| integer | spp_pbl, | ||
| real(kind_phys), dimension(kts:kte) | rstoch_col | ||
| ) |
This subroutine initializes the mixing length, TKE, \(\theta^{'2}\), \(q^{'2}\), and \(\theta^{'}q^{'}\).
Definition at line 1515 of file module_bl_mynn.F90.
References module_bl_mynn::mym_length(), and module_bl_mynn::mym_level2().
Referenced by module_bl_mynn::mynn_bl_driver().
| subroutine module_bl_mynn::mym_length | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | xland, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), intent(in) | dx, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), intent(in) | rmo, | ||
| real(kind_phys), intent(in) | flt, | ||
| real(kind_phys), intent(in) | fltv, | ||
| real(kind_phys), intent(in) | flq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qke, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dtv, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | el, | ||
| real(kind_phys), intent(in) | zi, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | theta, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qkw, | ||
| real(kind_phys), intent(in) | psig_bl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cldfra_bl1d, | ||
| integer, intent(in) | bl_mynn_mixlength, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_w1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_a1 | ||
| ) |
This subroutine calculates the mixing lengths.
Definition at line 1850 of file module_bl_mynn.F90.
References module_bl_mynn::boulac_length().
Referenced by module_bl_mynn::mym_initialize(), and module_bl_mynn::mym_turbulence().
| subroutine module_bl_mynn::mym_level2 | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thetav, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | ql, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vq, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dtl, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dqw, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dtv, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | gm, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | gh, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | sm, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | 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\).
| kts | horizontal dimension |
| kte | vertical dimension |
| dz | vertical grid spacings ( \(m\)) |
| u | west-east component of the horizontal wind ( \(m s^{-1}\)) |
| v | south-north component of the horizontal wind ( \(m s^{-1}\)) |
| thl | liquid water potential temperature |
| qw | total water content \(Q_w\) |
| ql | liquid water content ( \(kg kg^{-1}\)) |
| vt | |
| vq | |
| dtl | vertical gradient of \(\theta_l\) ( \(K m^{-1}\)) |
| dqw | vertical gradient of \(Q_w\) |
| dtv | vertical gradient of \(\theta_V\) ( \(K m^{-1}\)) |
| gm | \(G_M\) divided by \(L^{2}/q^{2}\) ( \(s^{-2}\)) |
| gh | \(G_H\) divided by \(L^{2}/q^{2}\) ( \(s^{-2}\)) |
| sm | stability function for momentum, at Level 2 |
| sh | stability function for heat, at Level 2 |
@ {
Definition at line 1719 of file module_bl_mynn.F90.
Referenced by module_bl_mynn::mym_initialize(), and module_bl_mynn::mym_turbulence().
| subroutine module_bl_mynn::mym_predict | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | closure, | ||
| real(kind_phys), intent(in) | delt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), intent(in) | ust, | ||
| real(kind_phys), intent(in) | flt, | ||
| real(kind_phys), intent(in) | flq, | ||
| real(kind_phys), intent(in) | pmz, | ||
| real(kind_phys), intent(in) | phh, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | el, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dfq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | rho, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | pdk, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | pdt, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | pdq, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | pdc, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qke, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | tsq, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qsq, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | cov, | ||
| real(kind_phys), dimension(kts:kte+1), intent(inout) | s_aw, | ||
| real(kind_phys), dimension(kts:kte+1), intent(inout) | s_awqke, | ||
| integer, intent(in) | bl_mynn_edmf_tke, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qwt1d, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qdiss1d, | ||
| integer, intent(in) | tke_budget | ||
| ) |
This subroutine predicts the turbulent quantities at the next step.
Definition at line 3197 of file module_bl_mynn.F90.
Referenced by module_bl_mynn::mynn_bl_driver().
| subroutine module_bl_mynn::mym_turbulence | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), intent(in) | xland, | ||
| real(kind_phys), intent(in) | closure, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), intent(in) | dx, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | zw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | thetav, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | ql, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qw, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qke, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cov, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | vq, | ||
| real(kind_phys), intent(in) | rmo, | ||
| real(kind_phys), intent(in) | flt, | ||
| real(kind_phys), intent(in) | fltv, | ||
| real(kind_phys), intent(in) | flq, | ||
| real(kind_phys), intent(in) | zi, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | theta, | ||
| real(kind_phys), dimension(kts:kte) | sh, | ||
| real(kind_phys), dimension(kts:kte) | sm, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | el, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dfm, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dfh, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | dfq, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | tcd, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | qcd, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | pdk, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | pdt, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | pdq, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | pdc, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qwt1d, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qshear1d, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qbuoy1d, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qdiss1d, | ||
| integer, intent(in) | tke_budget, | ||
| real(kind_phys), intent(in) | psig_bl, | ||
| real(kind_phys), intent(in) | psig_shcu, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cldfra_bl1d, | ||
| integer, intent(in) | bl_mynn_mixlength, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_w1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | edmf_a1, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tkeprodtd, | ||
| integer, intent(in) | spp_pbl, | ||
| real(kind_phys), dimension(kts:kte) | rstoch_col | ||
| ) |
This subroutine calculates the vertical diffusivity coefficients and the production terms for the turbulent quantities.
Two subroutines mym_level2() and mym_length() are called within this subrouine to collect variable to carry out successive calculations:
tke_budget is set to True) Definition at line 2619 of file module_bl_mynn.F90.
References module_bl_mynn::mym_length(), and module_bl_mynn::mym_level2().
Referenced by module_bl_mynn::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 | ||
| ) |
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\).
bl_mynn_cloudpdf.bl_mynn_topdown =1.Definition at line 361 of file module_bl_mynn.F90.
References module_bl_mynn::dmp_mf(), module_bl_mynn::get_pblh(), module_bl_mynn::mym_condensation(), module_bl_mynn::mym_initialize(), module_bl_mynn::mym_predict(), module_bl_mynn::mym_turbulence(), and module_bl_mynn::mynn_tendencies().
Referenced by mynnedmf_wrapper::mynnedmf_wrapper_init().
| subroutine module_bl_mynn::mynn_tendencies | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| integer, intent(in) | i, | ||
| real(kind_phys), intent(in) | delt, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | rho, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | th, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tk, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qi, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qs, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qnc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qni, | ||
| real(kind_phys), intent(in) | psfc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | p, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | exner, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | thl, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sqv, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sqc, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sqi, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sqs, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | sqw, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qnwfa, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qnifa, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | qnbca, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | ozone, | ||
| real(kind_phys), intent(in) | ust, | ||
| real(kind_phys), intent(in) | flt, | ||
| real(kind_phys), intent(in) | flq, | ||
| real(kind_phys), intent(in) | flqv, | ||
| real(kind_phys), intent(in) | flqc, | ||
| real(kind_phys), intent(in) | wspd, | ||
| real(kind_phys), intent(in) | uoce, | ||
| real(kind_phys), intent(in) | voce, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qsq, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cov, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | tcd, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | qcd, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dfm, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dfh, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dfq, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | du, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dv, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dth, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqv, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqc, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqi, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqs, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqnc, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqni, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqnwfa, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqnifa, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dqnbca, | ||
| real(kind_phys), dimension(kts:kte), intent(inout) | dozone, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | diss_heat, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_aw, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awthl, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqt, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqv, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqc, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awu, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awv, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqnc, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqni, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqnwfa, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqnifa, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | s_awqnbca, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_aw, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awthl, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awqt, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awqv, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awqc, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awu, | ||
| real(kind_phys), dimension(kts:kte+1), intent(in) | sd_awv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | sub_thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | sub_sqv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | sub_u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | sub_v, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | det_thl, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | det_sqv, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | det_sqc, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | det_u, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | det_v, | ||
| 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, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | cldfra_bl1d, | ||
| integer, intent(in) | bl_mynn_cloudmix, | ||
| integer, intent(in) | bl_mynn_mixqt, | ||
| integer, intent(in) | bl_mynn_edmf, | ||
| integer, intent(in) | bl_mynn_edmf_mom, | ||
| integer, intent(in) | bl_mynn_mixscalars | ||
| ) |
This subroutine solves for tendencies of U, V, \(\theta\), qv, qc, and qi.
Definition at line 4027 of file module_bl_mynn.F90.
References module_bl_mynn::qsat_blend().
Referenced by module_bl_mynn::mynn_bl_driver().
| real(kind_phys) function module_bl_mynn::qsat_blend | ( | real(kind_phys), intent(in) | t, |
| real(kind_phys), intent(in) | p | ||
| ) |
This function extends function "esat" and returns a "blended" saturation mixing ratio. Tice currently set to 240 K, t0c = 273.15 K.
Definition at line 7446 of file module_bl_mynn.F90.
References module_bl_mynn::qsat_blend().
Referenced by module_bl_mynn::condensation_edmf(), module_bl_mynn::dmp_mf(), module_bl_mynn::mym_condensation(), module_bl_mynn::mynn_tendencies(), and module_bl_mynn::qsat_blend().
| subroutine module_bl_mynn::retrieve_exchange_coeffs | ( | integer, intent(in) | kts, |
| integer, intent(in) | kte, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dfm, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dfh, | ||
| real(kind_phys), dimension(kts:kte), intent(in) | dz, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | k_m, | ||
| real(kind_phys), dimension(kts:kte), intent(out) | k_h | ||
| ) |
Definition at line 5359 of file module_bl_mynn.F90.
| subroutine module_bl_mynn::tridiag | ( | integer, intent(in) | n, |
| real(kind_phys), dimension(n), intent(in) | a, | ||
| real(kind_phys), dimension(n), intent(in) | b, | ||
| real(kind_phys), dimension(n), intent(inout) | c, | ||
| real(kind_phys), dimension(n), intent(inout) | d | ||
| ) |
Definition at line 5387 of file module_bl_mynn.F90.
| subroutine module_bl_mynn::tridiag2 | ( | integer, intent(in) | n, |
| real(kind_phys), dimension(n), intent(in) | a, | ||
| real(kind_phys), dimension(n), intent(in) | b, | ||
| real(kind_phys), dimension(n), intent(in) | c, | ||
| real(kind_phys), dimension(n), intent(in) | d, | ||
| real(kind_phys), dimension(n), intent(out) | x | ||
| ) |
Definition at line 5423 of file module_bl_mynn.F90.
| subroutine module_bl_mynn::tridiag3 | ( | integer, intent(in) | kte, |
| real(kind_phys), dimension(kte) | a, | ||
| real(kind_phys), dimension(kte) | b, | ||
| real(kind_phys), dimension(kte) | c, | ||
| real(kind_phys), dimension(kte) | d, | ||
| real(kind_phys), dimension(kte), intent(out) | x | ||
| ) |
Definition at line 5458 of file module_bl_mynn.F90.
| real(kind_phys) function module_bl_mynn::xl_blend | ( | real(kind_phys), intent(in) | t | ) |
This function interpolates the latent heats of vaporization and sublimation into a single, temperature-dependent, "blended" value, following Chaboureau and Bechtold (2002) [30], Appendix.
Definition at line 7504 of file module_bl_mynn.F90.
References module_bl_mynn::xl_blend().
Referenced by module_bl_mynn::dmp_mf(), module_bl_mynn::mym_condensation(), and module_bl_mynn::xl_blend().