Version: dev

YSUParameters

Scheme constants of the YSU (Yonsei University) nonlocal boundary-layer scheme, transcribed from the `parameter` declarations and in-line literals of phys/physics_mmm/bl_ysu.F90 (WRF 4.8, NCAR/MMM-physics CCPP kernel `bl_ysu_run`). Mounted by the YSU component as subsystem `par` so that no tuning constant is written inline in the physics. Values are the nominal (decimal) values written in the Fortran source. NOTE (recorded in FORTRAN_BUGS.md of EarthSciML/EqWeFiC): the kernel declares these as real(kind_phys) but initialises them from default-real literals, so a real64 build actually runs with the single-precision roundings (e.g. h1 = 0.33333335 -> 0.3333333432674408, not 1/3; afac = 6.800000190734863); the YSU tests document the resulting O(1e-7) relative mismatch in their tolerances rather than reproducing the rounding here.

Domain
atmospheric_dynamics
Subdomain
ysu
Type
model
.esm schema
1.2.0
Source
components/atmospheric_dynamics/ysu/ysu_parameters.esm
Tags
#atmospheric_dynamics #ysu #model #wrf #boundary-layer #scheme-constants

Description

Scheme constants of the YSU (Yonsei University) nonlocal boundary-layer scheme, transcribed from the parameter declarations and in-line literals of phys/physics_mmm/bl_ysu.F90 (WRF 4.8, NCAR/MMM-physics CCPP kernel bl_ysu_run). Mounted by the YSU component as subsystem par so that no tuning constant is written inline in the physics. Values are the nominal (decimal) values written in the Fortran source. NOTE (recorded in FORTRAN_BUGS.md of EarthSciML/EqWeFiC): the kernel declares these as real(kind_phys) but initialises them from default-real literals, so a real64 build actually runs with the single-precision roundings (e.g. h1 = 0.33333335 -> 0.3333333432674408, not 1/3; afac = 6.800000190734863); the YSU tests document the resulting O(1e-7) relative mismatch in their tolerances rather than reproducing the rounding here.

Reference

  • Hong, S.-Y., Noh, Y., and Dudhia, J. (2006). A new vertical diffusion package with an explicit treatment of entrainment processes. Mon. Wea. Rev. 134, 2318-2341.
  • Hong, S.-Y. (2010). A new stable boundary-layer mixing scheme and its impact on the simulated East Asian summer monsoon. Q. J. R. Meteorol. Soc. 136, 1481-1496.
  • NCAR/MMM-physics bl_ysu.F90 at commit 550b5b4 (WRF 4.8 phys/physics_mmm submodule).

Parameters

NameUnitsDefaultDescription
xkzminmm^2/s0.1Background (minimum) eddy diffusivity for momentum added to every interface, xkzom.
xkzminhm^2/s0.01Background (minimum) eddy diffusivity for heat and moisture added to every interface, xkzoh.
xkzmaxm^2/s1000.0Upper cap on every eddy diffusivity.
rimin1-100.0Lower bound on the (negative) gradient Richardson number and on the surface-layer stability parameter br fm^2/fh.
rlamm30.0Asymptotic mixing length of the free-atmosphere (local) diffusivity, lower bound of rlamdz = min(max(0.1 dz, rlam), rlam_max).
rlam_maxm300.0Upper bound of the free-atmosphere asymptotic mixing length rlamdz (the literal 300. in bl_ysu.F90).
prmin10.25Lower bound of the PBL Prandtl number.
prmax14.0Upper bound of the PBL and stable free-atmosphere Prandtl numbers.
brcr_ub10.0Critical bulk Richardson number for the unstable (convective) boundary-layer height search.
brcr_sb10.25Critical bulk Richardson number for the stable boundary-layer height search over land.
brcr_sbro_a10.16Prefactor of the Rossby-number dependent critical bulk Richardson number over water, brcr = min(brcr_sbro_a (1e-7 Ro)^brcr_sbro_b, brcr_sbro_max) (Vickers and Mahrt 2004).
brcr_sbro_b1-0.18Exponent of the Rossby-number dependent critical bulk Richardson number over water.
brcr_sbro_scale11e-07Rossby-number scaling inside the over-water critical bulk Richardson number (the literal 1.e-7).
brcr_sbro_max10.3Upper bound of the over-water critical bulk Richardson number (the literal .3).
cori1/s0.0001Nominal Coriolis parameter used in the surface Rossby number Ro = |U10| / (cori z0).
afac16.8Thermal-excess coefficient a of the boundary-layer-top search, vpert = a (hgamt + ep_1 theta_1 hgamq) / b.
bfac16.8Counter-gradient coefficient b: gamma = b (w’c’)_s / (w_s h).
pfac12.0Profile exponent p of the K-profile K = k w_s z (1 - z/h)^p for momentum and heat.
pfac_q12.0Profile exponent of the moisture K-profile (applied as zfac^(pfac_q - pfac) on top of the momentum profile).
phifac18.0Coefficient of the convective velocity in the mixed-layer velocity scale w_s = (u_^3 + phifac k w_^3 (1 - z/h))^(1/3).
sfcfrac10.1Surface-layer fraction of the boundary-layer depth (z_s = sfcfrac h).
d110.02Entrainment-zone thickness coefficient: delta = min(d1 h + d2 w_m^2 / (g/theta_1 d3 h), delta_max).
d2m0.05Entrainment-zone thickness coefficient (see d1). Carries the length unit: w_m^2/delb is dimensionless, so the d2 term of delta = d1 h + d2 w_m^2/delb is a length only with d2 in m (WRF writes the bare literal 0.05).
d3K0.001Entrainment-zone thickness coefficient (see d1): a potential-temperature scale, so that delb = (g/theta_1) d3 h is a squared velocity (WRF writes the bare literal 0.001).
delta_maxm100.0Upper cap on the entrainment-zone thickness delta (the literal 100.).
zfmin11e-08Lower bound of the normalised height factor zfac = 1 - (z - z_1)/(h - z_1) and of |z/L|.
aphi515.0Stable similarity-function coefficient: phi_m = phi_h = 1 + aphi5 z/L.
aphi16116.0Unstable similarity-function coefficient: phi_m = (1 - aphi16 z/L)^(-1/4), phi_h = (1 - aphi16 z/L)^(-1/2).
tminK0.01Floor on the inversion-layer jumps of theta and theta_v used by the entrainment flux (WRF tmin).
dux_minm/s0.01Dead band of the wind jump across the boundary-layer top in the momentum entrainment flux (ufxpbl, vfxpbl). WRF reuses the theta floor tmin = 1.e-2 for this comparison; it is a separate parameter here because it is a velocity.
gamcrtK3.0Upper cap on the counter-gradient heat term hgamt.
gamcrqkg/kg0.002Upper cap on the counter-gradient moisture term hgamq.
xlsJ/kg2834000.0Latent heat of sublimation used by YSU’s liquid-ice potential temperature (the literal 2.834E6 in bl_ysu.F90; differs from WRF’s module constant xls = 2.85e6).
cent_bfx10.15Entrainment buoyancy-flux ratio: (w’theta_v’)_h = -cent_bfx theta_v1/g w_m^3 / h (the literal 0.15).
cwm_ust15.0Friction-velocity weight in the entrainment velocity scale w_m^3 = w_^3 + cwm_ust u_^3 (the literal 5.).
cgam_m115.9Momentum counter-gradient / Prandtl coefficient (the literal 15.9): gamma_u = -cgam_m u_^2 w_^3 u_1 / (|U| w_s^4) and prfac2 = cgam_m w_^3/u_^3 / (1 + 4 k w_^3/u_^3).
cpr_ws14.0Coefficient in the denominator of prfac2 (the literal 4.).
cpr_z13.0Coefficient of the Prandtl-number height taper prnumfac = -cpr_z max(z - sfcfrac h, 0)^2 / h^2 (the literal 3.).
wscale_minm/s0.001Floor on the stable-case velocity scale u_*/phi_m(z) (the literal 0.001).
ss_min1/s^21e-09Floor added to the squared wind shear of the local Richardson number (the literal 1.e-9).
eps_wspdm/s1e-09Guard added to the lowest-level wind speed |U_1| (the literal 1.e-9).
qcloud_minkg/kg1e-05Condensate threshold (qc + qi > qcloud_min, the literal 0.01e-3) for the in-cloud moist Richardson number and the cloud-top flag.
ri_a18.0Unstable local-diffusivity coefficient: K = l^2 S (1 + ri_a (-Ri) / (1 + ri_b sqrt(-Ri))).
ri_b_m11.746Unstable local-diffusivity denominator coefficient for momentum.
ri_b_h11.286Unstable local-diffusivity denominator coefficient for heat.
ri_c15.0Stable local-diffusivity coefficient: K_h = l^2 S / (1 + ri_c Ri)^2.
pr_stab12.1Stable free-atmosphere Prandtl number slope: Pr = min(1 + pr_stab Ri, prmax).
rlam_frac10.1Fraction of the layer spacing entering the asymptotic mixing length rlamdz = min(max(rlam_frac dz, rlam), rlam_max) (the literal 0.1).
entfac_max14.6Entrainment-zone extent: interfaces with ((z - h)/delta)^2 < entfac_max above the PBL top take the entrainment diffusivity (the literal 4.6).
zhalf10.5Normalised height z/h = 1/2 at which the bulk mixed-layer velocity scale w_s is evaluated (the literal 0.5 in wscale).
spd2_minm^2/s^21.0Floor on the squared wind speed in the bulk Richardson number (the literal 1. in spdk2).
es0_boltonPa611.2Reference saturation vapour pressure of the Bolton (1980) fit used by the cloud-top entrainment branch, 100 * 6.112 (bl_ysu.F90 writes it in hPa).
a_bolton117.67Exponent coefficient of the Bolton (1980) saturation fit e_s = es0 exp(a (T - T0)/(T - b)).
b_boltonK29.65Temperature offset b of the Bolton (1980) saturation fit.
t0_bolton_firstK273.16Reference temperature of the FIRST Bolton evaluation of the cloud-top branch (the literal 273.16 in rvls=100.*6.112*EXP(17.67*(templ-273.16)/(templ-29.65))); the second evaluation uses 273.15 (t0_bolton). Kept apart because the two literals differ in the Fortran.
t0_boltonK273.15Reference temperature of the second Bolton evaluation (the literal 273.15).
dthv_min_cldK0.1Floor of the theta_v jumps in the cloud-top entrainment branch (the literal 0.1; the surface-thermal entrainment uses tmin).
ent_eff_coef11.6Coefficient of the cloud-top entrainment efficiency ent_eff = min(ent_eff_coef L_v/c_p rcldb/(pi dtheta_v), ent_eff_max), the literal product 0.2 * 8.
ent_eff_max10.4Cap of the cloud-top entrainment efficiency (the literal 0.4).

Raw .esm

Raw .esm JSON (this component)
{
  "variables": {
    "xkzminm": {
      "type": "parameter",
      "units": "m^2/s",
      "default": 0.1,
      "description": "Background (minimum) eddy diffusivity for momentum added to every interface, xkzom."
    },
    "xkzminh": {
      "type": "parameter",
      "units": "m^2/s",
      "default": 0.01,
      "description": "Background (minimum) eddy diffusivity for heat and moisture added to every interface, xkzoh."
    },
    "xkzmax": {
      "type": "parameter",
      "units": "m^2/s",
      "default": 1000.0,
      "description": "Upper cap on every eddy diffusivity."
    },
    "rimin": {
      "type": "parameter",
      "units": "1",
      "default": -100.0,
      "description": "Lower bound on the (negative) gradient Richardson number and on the surface-layer stability parameter br fm^2/fh."
    },
    "rlam": {
      "type": "parameter",
      "units": "m",
      "default": 30.0,
      "description": "Asymptotic mixing length of the free-atmosphere (local) diffusivity, lower bound of rlamdz = min(max(0.1 dz, rlam), rlam_max)."
    },
    "rlam_max": {
      "type": "parameter",
      "units": "m",
      "default": 300.0,
      "description": "Upper bound of the free-atmosphere asymptotic mixing length rlamdz (the literal 300. in bl_ysu.F90)."
    },
    "prmin": {
      "type": "parameter",
      "units": "1",
      "default": 0.25,
      "description": "Lower bound of the PBL Prandtl number."
    },
    "prmax": {
      "type": "parameter",
      "units": "1",
      "default": 4.0,
      "description": "Upper bound of the PBL and stable free-atmosphere Prandtl numbers."
    },
    "brcr_ub": {
      "type": "parameter",
      "units": "1",
      "default": 0.0,
      "description": "Critical bulk Richardson number for the unstable (convective) boundary-layer height search."
    },
    "brcr_sb": {
      "type": "parameter",
      "units": "1",
      "default": 0.25,
      "description": "Critical bulk Richardson number for the stable boundary-layer height search over land."
    },
    "brcr_sbro_a": {
      "type": "parameter",
      "units": "1",
      "default": 0.16,
      "description": "Prefactor of the Rossby-number dependent critical bulk Richardson number over water, brcr = min(brcr_sbro_a (1e-7 Ro)^brcr_sbro_b, brcr_sbro_max) (Vickers and Mahrt 2004)."
    },
    "brcr_sbro_b": {
      "type": "parameter",
      "units": "1",
      "default": -0.18,
      "description": "Exponent of the Rossby-number dependent critical bulk Richardson number over water."
    },
    "brcr_sbro_scale": {
      "type": "parameter",
      "units": "1",
      "default": 1e-07,
      "description": "Rossby-number scaling inside the over-water critical bulk Richardson number (the literal 1.e-7)."
    },
    "brcr_sbro_max": {
      "type": "parameter",
      "units": "1",
      "default": 0.3,
      "description": "Upper bound of the over-water critical bulk Richardson number (the literal .3)."
    },
    "cori": {
      "type": "parameter",
      "units": "1/s",
      "default": 0.0001,
      "description": "Nominal Coriolis parameter used in the surface Rossby number Ro = |U10| / (cori z0)."
    },
    "afac": {
      "type": "parameter",
      "units": "1",
      "default": 6.8,
      "description": "Thermal-excess coefficient a of the boundary-layer-top search, vpert = a (hgamt + ep_1 theta_1 hgamq) / b."
    },
    "bfac": {
      "type": "parameter",
      "units": "1",
      "default": 6.8,
      "description": "Counter-gradient coefficient b: gamma = b (w'c')_s / (w_s h)."
    },
    "pfac": {
      "type": "parameter",
      "units": "1",
      "default": 2.0,
      "description": "Profile exponent p of the K-profile K = k w_s z (1 - z/h)^p for momentum and heat."
    },
    "pfac_q": {
      "type": "parameter",
      "units": "1",
      "default": 2.0,
      "description": "Profile exponent of the moisture K-profile (applied as zfac^(pfac_q - pfac) on top of the momentum profile)."
    },
    "phifac": {
      "type": "parameter",
      "units": "1",
      "default": 8.0,
      "description": "Coefficient of the convective velocity in the mixed-layer velocity scale w_s = (u_*^3 + phifac k w_*^3 (1 - z/h))^(1/3)."
    },
    "sfcfrac": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Surface-layer fraction of the boundary-layer depth (z_s = sfcfrac h)."
    },
    "d1": {
      "type": "parameter",
      "units": "1",
      "default": 0.02,
      "description": "Entrainment-zone thickness coefficient: delta = min(d1 h + d2 w_m^2 / (g/theta_1 d3 h), delta_max)."
    },
    "d2": {
      "type": "parameter",
      "units": "m",
      "default": 0.05,
      "description": "Entrainment-zone thickness coefficient (see d1). Carries the length unit: w_m^2/delb is dimensionless, so the d2 term of delta = d1 h + d2 w_m^2/delb is a length only with d2 in m (WRF writes the bare literal 0.05)."
    },
    "d3": {
      "type": "parameter",
      "units": "K",
      "default": 0.001,
      "description": "Entrainment-zone thickness coefficient (see d1): a potential-temperature scale, so that delb = (g/theta_1) d3 h is a squared velocity (WRF writes the bare literal 0.001)."
    },
    "delta_max": {
      "type": "parameter",
      "units": "m",
      "default": 100.0,
      "description": "Upper cap on the entrainment-zone thickness delta (the literal 100.)."
    },
    "zfmin": {
      "type": "parameter",
      "units": "1",
      "default": 1e-08,
      "description": "Lower bound of the normalised height factor zfac = 1 - (z - z_1)/(h - z_1) and of |z/L|."
    },
    "aphi5": {
      "type": "parameter",
      "units": "1",
      "default": 5.0,
      "description": "Stable similarity-function coefficient: phi_m = phi_h = 1 + aphi5 z/L."
    },
    "aphi16": {
      "type": "parameter",
      "units": "1",
      "default": 16.0,
      "description": "Unstable similarity-function coefficient: phi_m = (1 - aphi16 z/L)^(-1/4), phi_h = (1 - aphi16 z/L)^(-1/2)."
    },
    "tmin": {
      "type": "parameter",
      "units": "K",
      "default": 0.01,
      "description": "Floor on the inversion-layer jumps of theta and theta_v used by the entrainment flux (WRF tmin)."
    },
    "dux_min": {
      "type": "parameter",
      "units": "m/s",
      "default": 0.01,
      "description": "Dead band of the wind jump across the boundary-layer top in the momentum entrainment flux (ufxpbl, vfxpbl). WRF reuses the theta floor tmin = 1.e-2 for this comparison; it is a separate parameter here because it is a velocity."
    },
    "gamcrt": {
      "type": "parameter",
      "units": "K",
      "default": 3.0,
      "description": "Upper cap on the counter-gradient heat term hgamt."
    },
    "gamcrq": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 0.002,
      "description": "Upper cap on the counter-gradient moisture term hgamq."
    },
    "xls": {
      "type": "parameter",
      "units": "J/kg",
      "default": 2834000.0,
      "description": "Latent heat of sublimation used by YSU's liquid-ice potential temperature (the literal 2.834E6 in bl_ysu.F90; differs from WRF's module constant xls = 2.85e6)."
    },
    "cent_bfx": {
      "type": "parameter",
      "units": "1",
      "default": 0.15,
      "description": "Entrainment buoyancy-flux ratio: (w'theta_v')_h = -cent_bfx theta_v1/g w_m^3 / h (the literal 0.15)."
    },
    "cwm_ust": {
      "type": "parameter",
      "units": "1",
      "default": 5.0,
      "description": "Friction-velocity weight in the entrainment velocity scale w_m^3 = w_*^3 + cwm_ust u_*^3 (the literal 5.)."
    },
    "cgam_m": {
      "type": "parameter",
      "units": "1",
      "default": 15.9,
      "description": "Momentum counter-gradient / Prandtl coefficient (the literal 15.9): gamma_u = -cgam_m u_*^2 w_*^3 u_1 / (|U| w_s^4) and prfac2 = cgam_m w_*^3/u_*^3 / (1 + 4 k w_*^3/u_*^3)."
    },
    "cpr_ws": {
      "type": "parameter",
      "units": "1",
      "default": 4.0,
      "description": "Coefficient in the denominator of prfac2 (the literal 4.)."
    },
    "cpr_z": {
      "type": "parameter",
      "units": "1",
      "default": 3.0,
      "description": "Coefficient of the Prandtl-number height taper prnumfac = -cpr_z max(z - sfcfrac h, 0)^2 / h^2 (the literal 3.)."
    },
    "wscale_min": {
      "type": "parameter",
      "units": "m/s",
      "default": 0.001,
      "description": "Floor on the stable-case velocity scale u_*/phi_m(z) (the literal 0.001)."
    },
    "ss_min": {
      "type": "parameter",
      "units": "1/s^2",
      "default": 1e-09,
      "description": "Floor added to the squared wind shear of the local Richardson number (the literal 1.e-9)."
    },
    "eps_wspd": {
      "type": "parameter",
      "units": "m/s",
      "default": 1e-09,
      "description": "Guard added to the lowest-level wind speed |U_1| (the literal 1.e-9)."
    },
    "qcloud_min": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 1e-05,
      "description": "Condensate threshold (qc + qi > qcloud_min, the literal 0.01e-3) for the in-cloud moist Richardson number and the cloud-top flag."
    },
    "ri_a": {
      "type": "parameter",
      "units": "1",
      "default": 8.0,
      "description": "Unstable local-diffusivity coefficient: K = l^2 S (1 + ri_a (-Ri) / (1 + ri_b sqrt(-Ri)))."
    },
    "ri_b_m": {
      "type": "parameter",
      "units": "1",
      "default": 1.746,
      "description": "Unstable local-diffusivity denominator coefficient for momentum."
    },
    "ri_b_h": {
      "type": "parameter",
      "units": "1",
      "default": 1.286,
      "description": "Unstable local-diffusivity denominator coefficient for heat."
    },
    "ri_c": {
      "type": "parameter",
      "units": "1",
      "default": 5.0,
      "description": "Stable local-diffusivity coefficient: K_h = l^2 S / (1 + ri_c Ri)^2."
    },
    "pr_stab": {
      "type": "parameter",
      "units": "1",
      "default": 2.1,
      "description": "Stable free-atmosphere Prandtl number slope: Pr = min(1 + pr_stab Ri, prmax)."
    },
    "rlam_frac": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Fraction of the layer spacing entering the asymptotic mixing length rlamdz = min(max(rlam_frac dz, rlam), rlam_max) (the literal 0.1)."
    },
    "entfac_max": {
      "type": "parameter",
      "units": "1",
      "default": 4.6,
      "description": "Entrainment-zone extent: interfaces with ((z - h)/delta)^2 < entfac_max above the PBL top take the entrainment diffusivity (the literal 4.6)."
    },
    "zhalf": {
      "type": "parameter",
      "units": "1",
      "default": 0.5,
      "description": "Normalised height z/h = 1/2 at which the bulk mixed-layer velocity scale w_s is evaluated (the literal 0.5 in wscale)."
    },
    "spd2_min": {
      "type": "parameter",
      "units": "m^2/s^2",
      "default": 1.0,
      "description": "Floor on the squared wind speed in the bulk Richardson number (the literal 1. in spdk2)."
    },
    "es0_bolton": {
      "type": "parameter",
      "units": "Pa",
      "default": 611.2,
      "description": "Reference saturation vapour pressure of the Bolton (1980) fit used by the cloud-top entrainment branch, 100 * 6.112 (bl_ysu.F90 writes it in hPa)."
    },
    "a_bolton": {
      "type": "parameter",
      "units": "1",
      "default": 17.67,
      "description": "Exponent coefficient of the Bolton (1980) saturation fit e_s = es0 exp(a (T - T0)/(T - b))."
    },
    "b_bolton": {
      "type": "parameter",
      "units": "K",
      "default": 29.65,
      "description": "Temperature offset b of the Bolton (1980) saturation fit."
    },
    "t0_bolton_first": {
      "type": "parameter",
      "units": "K",
      "default": 273.16,
      "description": "Reference temperature of the FIRST Bolton evaluation of the cloud-top branch (the literal 273.16 in `rvls=100.*6.112*EXP(17.67*(templ-273.16)/(templ-29.65))`); the second evaluation uses 273.15 (t0_bolton). Kept apart because the two literals differ in the Fortran."
    },
    "t0_bolton": {
      "type": "parameter",
      "units": "K",
      "default": 273.15,
      "description": "Reference temperature of the second Bolton evaluation (the literal 273.15)."
    },
    "dthv_min_cld": {
      "type": "parameter",
      "units": "K",
      "default": 0.1,
      "description": "Floor of the theta_v jumps in the cloud-top entrainment branch (the literal 0.1; the surface-thermal entrainment uses tmin)."
    },
    "ent_eff_coef": {
      "type": "parameter",
      "units": "1",
      "default": 1.6,
      "description": "Coefficient of the cloud-top entrainment efficiency ent_eff = min(ent_eff_coef L_v/c_p rcldb/(pi dtheta_v), ent_eff_max), the literal product 0.2 * 8."
    },
    "ent_eff_max": {
      "type": "parameter",
      "units": "1",
      "default": 0.4,
      "description": "Cap of the cloud-top entrainment efficiency (the literal 0.4)."
    }
  },
  "equations": []
}