SfclayRevParameters
Scheme constants of WRF's revised MM5 surface-layer scheme (sf_sfclay_physics = 1, `sf_sfclayrev_run` in phys/physics_mmm/sf_sfclayrev.F90, WRF 4.8 / NCAR MMM-physics; Jimenez et al. 2012), transcribed from the module `parameter` declarations and the in-line literals of the kernel so that no tuning constant is written inline in the physics. Mounted by the SfclayRev component as subsystem `par`. Values are the nominal (decimal) values written in the Fortran source. The coefficients of the similarity functions themselves (Cheng-Brutsaert 6.1/2.5 and 5.3/1.1, Kansas 16, free-convection 10/34 and the 0.33 exponent) and the psi lookup-table discretisation (step 0.01, 1000 nodes) are properties of the published functions, not tuning constants, and live with the functions in similarity_functions.esm. NOTE (FORTRAN_BUGS.md N2/N10): the kernel's literals are default-real, so a real64 build runs with their single-precision roundings (e.g. 1/2.5 = 0.4000000059604645, sqrt(3.) and atan(1.) evaluated in real32, the lookup-table nodes float(n)*0.01 rounded to real32); the SfclayRev tests document the resulting O(1e-7) relative mismatch in their tolerances rather than reproducing the rounding here.
Description
Scheme constants of WRF’s revised MM5 surface-layer scheme (sf_sfclay_physics = 1, sf_sfclayrev_run in phys/physics_mmm/sf_sfclayrev.F90, WRF 4.8 / NCAR MMM-physics; Jimenez et al. 2012), transcribed from the module parameter declarations and the in-line literals of the kernel so that no tuning constant is written inline in the physics. Mounted by the SfclayRev component as subsystem par. Values are the nominal (decimal) values written in the Fortran source. The coefficients of the similarity functions themselves (Cheng-Brutsaert 6.1/2.5 and 5.3/1.1, Kansas 16, free-convection 10/34 and the 0.33 exponent) and the psi lookup-table discretisation (step 0.01, 1000 nodes) are properties of the published functions, not tuning constants, and live with the functions in similarity_functions.esm. NOTE (FORTRAN_BUGS.md N2/N10): the kernel’s literals are default-real, so a real64 build runs with their single-precision roundings (e.g. 1/2.5 = 0.4000000059604645, sqrt(3.) and atan(1.) evaluated in real32, the lookup-table nodes float(n)*0.01 rounded to real32); the SfclayRev tests document the resulting O(1e-7) relative mismatch in their tolerances rather than reproducing the rounding here.
Reference
- Jimenez, P. A., Dudhia, J., Gonzalez-Rouco, J. F., Navarro, J., Montavez, J. P., and Garcia-Bustamante, E. (2012). A revised scheme for the WRF surface layer formulation. Mon. Wea. Rev. 140, 898-918.
- Cheng, Y. and Brutsaert, W. (2005). Flux-profile relationships for wind speed and temperature in the stable atmospheric boundary layer. Bound.-Layer Meteor. 114, 519-538.
- Fairall, C. W., Bradley, E. F., Hare, J. E., Grachev, A. A., and Edson, J. B. (2003). Bulk parameterization of air-sea fluxes: updates and verification for the COARE algorithm. J. Climate 16, 571-591.
- Jimenez, P. A. and Dudhia, J. (2018). On the need to modify the sea surface roughness formulation over shallow waters. J. Appl. Meteor. Climatol. 57, 1101-1110.
- WRF 4.8 phys/physics_mmm/sf_sfclayrev.F90 lines 12-16 (module parameters), 181-183 (xka, prt, salinity_factor), 300, 333, 348, 357, 360-362, 391, 399, 499-505, 539-543, 603, 643, 675, 737-739, 831-833, 848-854, 957-967, 1129-1139 (in-line literals).
Parameters
| Name | Units | Default | Description |
|---|---|---|---|
vconvc | 1 | 1.0 | Coefficient of the Beljaars (1994) convective velocity scale over land (module parameter vconvc). |
vconv_exp | 1 | 0.33 | Exponent of the Beljaars (1994) convective velocity scale over land, (g/T h F)^0.33 (line 348; the kernel’s literal .33, not 1/3). |
czo | 1 | 0.0185 | Charnock coefficient of the sea-surface roughness (module parameter czo). |
ozo | m | 1.59e-05 | Smooth-flow sea-surface roughness offset used by the isftcflx AHW roughness (module parameter ozo). |
varf_min | m | 5.0 | Minimum subgrid orography standard deviation for the KIM turbulent orographic form drag (module parameter varf_min; the branch is not transcribed, see FORTRAN_BUGS.md B3). |
ca_square | 1 | 0.16 | Squared drag constant 0.4^2 of the KIM form drag (module parameter ca_square). |
xka | m^2/s | 2.4e-05 | Molecular diffusivity of water vapour in the land psiq roughness sublayer term karman ust z/xka (local parameter xka). |
prt | 1 | 1.0 | Turbulent Prandtl number in the temperature scale mol = karman dtg/(psit prt) (local parameter prt). |
salinity_factor | 1 | 0.98 | Saturation vapour pressure reduction over salt water (local parameter salinity_factor). |
z_landsub | m | 0.01 | Effective roughness of the land moisture sublayer (literal 0.01 in zl over land, lines 333, 527, 859). |
dx_ref | m | 5000.0 | Grid-length scale of the Mahrt and Sun (1995) subgrid velocity vsgd = 0.32 max(dx/5000 - 1, 0)^0.33 (line 360). |
vsgd_coef | m/s | 0.32 | Prefactor of the Mahrt and Sun subgrid velocity (line 360). |
vsgd_exp | 1 | 0.33 | Exponent of the Mahrt and Sun subgrid velocity (line 360). |
wspd_min | m/s | 0.1 | Floor of the effective wind speed (line 362). |
br_max | 1 | 250.0 | Clamp of |Ri_b| passed to the z/L solver (lines 391, 402). |
ust_min_land | m/s | 0.001 | Floor of u* over land, and the threshold below which the first-guess z/L = Ri_b ln((z+z0)/z0) is used instead of the solver (lines 399, 797). |
psi_limit_frac | 1 | 0.9 | Unstable-regime cap psi <= 0.9 ln((z+z0)/z0) that keeps the flux denominators away from zero (lines 499-505). |
dtthx_min | K | 1e-05 | Minimum |thx - thgb| below which the heat exchange coefficient flhc is set to zero (line 865). |
cpm_qfac | 1 | 0.8 | Moist heat capacity factor cpm = cp (1 + 0.8 qv) (line 300). |
visc_a | m^2/s | 1.32e-05 | Kinematic viscosity of air at 0 degC in visc = (1.32 + 0.009 (T - 273.15)) 1e-5 (lines 539, 640, 731). |
visc_b | m^2/(s*K) | 9e-08 | Temperature slope of the kinematic viscosity of air (0.009 1e-5 per K). |
visc_t0 | K | 273.15 | Reference temperature of the viscosity fit. |
z0t_fairall_coef | m | 5.5e-05 | Fairall et al. (2003) thermal roughness over water z0t = 5.5e-5 Re*^-0.6 (line 541). |
z0t_fairall_exp | 1 | -0.6 | Roughness-Reynolds exponent of the Fairall thermal roughness. |
z0t_water_max | m | 0.0001 | Upper bound of the Fairall thermal roughness (line 542). |
z0t_water_min | m | 2e-09 | Lower bound of the Fairall thermal roughness (line 543). |
z0q_isftcflx1 | m | 0.0001 | Fixed moisture roughness over water for isftcflx = 1 (line 603). |
garratt_k | 1 | 0.4 | von Karman constant as hard-wired in the Garratt (1992) roughness sublayer terms for isftcflx = 2 (lines 643, 675). |
garratt_a | 1 | 7.3 | Brutsaert (1975) coefficient 7.3 in ln(z0/z0t) = k (7.3 Re*^(1/4) Pr^(1/2) - 5). |
garratt_b | 1 | 5.0 | Brutsaert (1975) offset 5. |
prandtl_garratt | 1 | 0.71 | Prandtl number of the Garratt thermal roughness. |
schmidt_garratt | 1 | 0.6 | Schmidt number of the Garratt moisture roughness. |
czil_ref | 1 | 0.1 | Traditional Zilitinkevich coefficient for iz0tlnd = 2 (line 739). |
czil_cz_exp | 1 | -0.4 | Chen and Zhang (2009) exponent in czil = 10^(-0.4 z0/0.07) for iz0tlnd = 1 (line 737). |
czil_cz_z0ref | m | 0.07 | Chen and Zhang (2009) roughness scale 0.07 m. |
z0_smooth_coef | 1 | 0.11 | Smooth-flow coefficient 0.11 of the sea roughness z0 = czo u*^2/g + 0.11 nu/u* (line 831). |
nu_sea | m^2/s | 1.5e-05 | Kinematic viscosity used in the smooth-flow sea roughness term (line 831). |
z0_water_max | m | 0.00285 | Upper bound of the sea-surface roughness (lines 833, 853). |
z0_water_min_ahw | m | 1.27e-07 | Lower bound of the AHW (isftcflx /= 0) sea roughness (line 854). |
ahw_ust_ref | m/s | 1.06 | u* scale of the AHW blending weight zw = min((u*/1.06)^0.3, 1) (line 848). |
ahw_zw_exp | 1 | 0.3 | Exponent of the AHW blending weight. |
ahw_charnock | 1 | 0.011 | Charnock coefficient of the AHW low-wind roughness zn1 (line 849). |
ahw_zn2_coef | m | 10.0 | Prefactor of the AHW high-wind roughness zn2 = 10 exp(-9.5 u*^(-1/3)) (line 850). |
ahw_zn2_exp | 1 | 9.5 | Coefficient 9.5 of the AHW high-wind roughness exponent. |
ahw_zn2_ust_exp | 1 | -0.3333 | u* exponent -0.3333 of the AHW high-wind roughness (literal -.3333, not -1/3). |
ahw_ust_min | m/s | 0.01 | u* floor in the AHW smooth-flow term (line 851). |
shal_depth_min | m | 10.0 | Lower clamp of the water depth in the Jimenez-Dudhia (2018) shallow-water roughness (line 1130). |
shal_depth_max | m | 100.0 | Upper clamp of the water depth (line 1131). |
shal_b_coef | 1 | 0.03333333333333333 | 1/30 in depth_b = (1/30) ln(1260/depth) (line 1137). |
shal_b_scale | m | 1260.0 | Depth scale 1260 m of depth_b. |
shal_c1 | 1 | 2.7 | z0 = exp((2.7 u* - 1.8/depth_b)/(u* + 0.17/depth_b)) coefficient 2.7 (line 1138). |
shal_c2 | m/s | 1.8 | Coefficient 1.8 of the shallow-water roughness. |
shal_c3 | m/s | 0.17 | Coefficient 0.17 of the shallow-water roughness. |
shal_z0_max | m | 0.1 | Upper bound of the shallow-water roughness (line 1139). |
secant_bracket | 1 | 5.0 | Initial secant bracket |z/L| = 5 of the Ri_b -> z/L solver zolri (lines 957-962). |
secant_tol | 1 | 0.01 | Termination |x1 - x2| <= 0.01 of the zolri secant iteration (line 967). |
z_2m | m | 2.0 | Height of the 2 m temperature and moisture diagnostics (literal 2. in gz2oz0, zol2, zl2, psiq2). |
z_10m | m | 10.0 | Height of the 10 m wind diagnostics (literal 10. in gz10oz0, zol10, zl10, psiq10). |
unit_velocity | m/s | 1.0 | 1 m/s. The kernel raises dimensioned velocities to non-integer powers (vconv = (g/T h w)^0.33, zn2 = 10 exp(-9.5 u*^-0.3333)), which is dimensionally inconsistent; the esm divides the base by this unit velocity so the expression is dimensionally consistent and numerically identical in SI. |
unit_length | m | 1.0 | 1 m. The Jimenez-Dudhia (2018) shallow-water roughness exp((2.7 u* - 1.8/b)/(u* + 0.17/b)) is a pure number used as metres; multiplied by this unit length in the esm. |
unit_kelvin | K | 1.0 | 1 K. The kernel’s over-water convective velocity vconv = sqrt(max(tskv - thvx, 0)) takes the square root of a temperature difference and uses it as m/s (the old MM5/Wyngaard form with its coefficient 2 m/s/K^(1/2) reduced to 1 in V3.7); the esm divides by this unit temperature and multiplies by unit_velocity so the expression is dimensionally consistent and numerically identical in SI. |
Raw .esm
Raw .esm JSON (this component)
{
"variables": {
"vconvc": {
"type": "parameter",
"units": "1",
"default": 1.0,
"description": "Coefficient of the Beljaars (1994) convective velocity scale over land (module parameter vconvc)."
},
"vconv_exp": {
"type": "parameter",
"units": "1",
"default": 0.33,
"description": "Exponent of the Beljaars (1994) convective velocity scale over land, (g/T h F)^0.33 (line 348; the kernel's literal .33, not 1/3)."
},
"czo": {
"type": "parameter",
"units": "1",
"default": 0.0185,
"description": "Charnock coefficient of the sea-surface roughness (module parameter czo)."
},
"ozo": {
"type": "parameter",
"units": "m",
"default": 1.59e-05,
"description": "Smooth-flow sea-surface roughness offset used by the isftcflx AHW roughness (module parameter ozo)."
},
"varf_min": {
"type": "parameter",
"units": "m",
"default": 5.0,
"description": "Minimum subgrid orography standard deviation for the KIM turbulent orographic form drag (module parameter varf_min; the branch is not transcribed, see FORTRAN_BUGS.md B3)."
},
"ca_square": {
"type": "parameter",
"units": "1",
"default": 0.16,
"description": "Squared drag constant 0.4^2 of the KIM form drag (module parameter ca_square)."
},
"xka": {
"type": "parameter",
"units": "m^2/s",
"default": 2.4e-05,
"description": "Molecular diffusivity of water vapour in the land psiq roughness sublayer term karman ust z/xka (local parameter xka)."
},
"prt": {
"type": "parameter",
"units": "1",
"default": 1.0,
"description": "Turbulent Prandtl number in the temperature scale mol = karman dtg/(psit prt) (local parameter prt)."
},
"salinity_factor": {
"type": "parameter",
"units": "1",
"default": 0.98,
"description": "Saturation vapour pressure reduction over salt water (local parameter salinity_factor)."
},
"z_landsub": {
"type": "parameter",
"units": "m",
"default": 0.01,
"description": "Effective roughness of the land moisture sublayer (literal 0.01 in zl over land, lines 333, 527, 859)."
},
"dx_ref": {
"type": "parameter",
"units": "m",
"default": 5000.0,
"description": "Grid-length scale of the Mahrt and Sun (1995) subgrid velocity vsgd = 0.32 max(dx/5000 - 1, 0)^0.33 (line 360)."
},
"vsgd_coef": {
"type": "parameter",
"units": "m/s",
"default": 0.32,
"description": "Prefactor of the Mahrt and Sun subgrid velocity (line 360)."
},
"vsgd_exp": {
"type": "parameter",
"units": "1",
"default": 0.33,
"description": "Exponent of the Mahrt and Sun subgrid velocity (line 360)."
},
"wspd_min": {
"type": "parameter",
"units": "m/s",
"default": 0.1,
"description": "Floor of the effective wind speed (line 362)."
},
"br_max": {
"type": "parameter",
"units": "1",
"default": 250.0,
"description": "Clamp of |Ri_b| passed to the z/L solver (lines 391, 402)."
},
"ust_min_land": {
"type": "parameter",
"units": "m/s",
"default": 0.001,
"description": "Floor of u* over land, and the threshold below which the first-guess z/L = Ri_b ln((z+z0)/z0) is used instead of the solver (lines 399, 797)."
},
"psi_limit_frac": {
"type": "parameter",
"units": "1",
"default": 0.9,
"description": "Unstable-regime cap psi <= 0.9 ln((z+z0)/z0) that keeps the flux denominators away from zero (lines 499-505)."
},
"dtthx_min": {
"type": "parameter",
"units": "K",
"default": 1e-05,
"description": "Minimum |thx - thgb| below which the heat exchange coefficient flhc is set to zero (line 865)."
},
"cpm_qfac": {
"type": "parameter",
"units": "1",
"default": 0.8,
"description": "Moist heat capacity factor cpm = cp (1 + 0.8 qv) (line 300)."
},
"visc_a": {
"type": "parameter",
"units": "m^2/s",
"default": 1.32e-05,
"description": "Kinematic viscosity of air at 0 degC in visc = (1.32 + 0.009 (T - 273.15)) 1e-5 (lines 539, 640, 731)."
},
"visc_b": {
"type": "parameter",
"units": "m^2/(s*K)",
"default": 9e-08,
"description": "Temperature slope of the kinematic viscosity of air (0.009 1e-5 per K)."
},
"visc_t0": {
"type": "parameter",
"units": "K",
"default": 273.15,
"description": "Reference temperature of the viscosity fit."
},
"z0t_fairall_coef": {
"type": "parameter",
"units": "m",
"default": 5.5e-05,
"description": "Fairall et al. (2003) thermal roughness over water z0t = 5.5e-5 Re*^-0.6 (line 541)."
},
"z0t_fairall_exp": {
"type": "parameter",
"units": "1",
"default": -0.6,
"description": "Roughness-Reynolds exponent of the Fairall thermal roughness."
},
"z0t_water_max": {
"type": "parameter",
"units": "m",
"default": 0.0001,
"description": "Upper bound of the Fairall thermal roughness (line 542)."
},
"z0t_water_min": {
"type": "parameter",
"units": "m",
"default": 2e-09,
"description": "Lower bound of the Fairall thermal roughness (line 543)."
},
"z0q_isftcflx1": {
"type": "parameter",
"units": "m",
"default": 0.0001,
"description": "Fixed moisture roughness over water for isftcflx = 1 (line 603)."
},
"garratt_k": {
"type": "parameter",
"units": "1",
"default": 0.4,
"description": "von Karman constant as hard-wired in the Garratt (1992) roughness sublayer terms for isftcflx = 2 (lines 643, 675)."
},
"garratt_a": {
"type": "parameter",
"units": "1",
"default": 7.3,
"description": "Brutsaert (1975) coefficient 7.3 in ln(z0/z0t) = k (7.3 Re*^(1/4) Pr^(1/2) - 5)."
},
"garratt_b": {
"type": "parameter",
"units": "1",
"default": 5.0,
"description": "Brutsaert (1975) offset 5."
},
"prandtl_garratt": {
"type": "parameter",
"units": "1",
"default": 0.71,
"description": "Prandtl number of the Garratt thermal roughness."
},
"schmidt_garratt": {
"type": "parameter",
"units": "1",
"default": 0.6,
"description": "Schmidt number of the Garratt moisture roughness."
},
"czil_ref": {
"type": "parameter",
"units": "1",
"default": 0.1,
"description": "Traditional Zilitinkevich coefficient for iz0tlnd = 2 (line 739)."
},
"czil_cz_exp": {
"type": "parameter",
"units": "1",
"default": -0.4,
"description": "Chen and Zhang (2009) exponent in czil = 10^(-0.4 z0/0.07) for iz0tlnd = 1 (line 737)."
},
"czil_cz_z0ref": {
"type": "parameter",
"units": "m",
"default": 0.07,
"description": "Chen and Zhang (2009) roughness scale 0.07 m."
},
"z0_smooth_coef": {
"type": "parameter",
"units": "1",
"default": 0.11,
"description": "Smooth-flow coefficient 0.11 of the sea roughness z0 = czo u*^2/g + 0.11 nu/u* (line 831)."
},
"nu_sea": {
"type": "parameter",
"units": "m^2/s",
"default": 1.5e-05,
"description": "Kinematic viscosity used in the smooth-flow sea roughness term (line 831)."
},
"z0_water_max": {
"type": "parameter",
"units": "m",
"default": 0.00285,
"description": "Upper bound of the sea-surface roughness (lines 833, 853)."
},
"z0_water_min_ahw": {
"type": "parameter",
"units": "m",
"default": 1.27e-07,
"description": "Lower bound of the AHW (isftcflx /= 0) sea roughness (line 854)."
},
"ahw_ust_ref": {
"type": "parameter",
"units": "m/s",
"default": 1.06,
"description": "u* scale of the AHW blending weight zw = min((u*/1.06)^0.3, 1) (line 848)."
},
"ahw_zw_exp": {
"type": "parameter",
"units": "1",
"default": 0.3,
"description": "Exponent of the AHW blending weight."
},
"ahw_charnock": {
"type": "parameter",
"units": "1",
"default": 0.011,
"description": "Charnock coefficient of the AHW low-wind roughness zn1 (line 849)."
},
"ahw_zn2_coef": {
"type": "parameter",
"units": "m",
"default": 10.0,
"description": "Prefactor of the AHW high-wind roughness zn2 = 10 exp(-9.5 u*^(-1/3)) (line 850)."
},
"ahw_zn2_exp": {
"type": "parameter",
"units": "1",
"default": 9.5,
"description": "Coefficient 9.5 of the AHW high-wind roughness exponent."
},
"ahw_zn2_ust_exp": {
"type": "parameter",
"units": "1",
"default": -0.3333,
"description": "u* exponent -0.3333 of the AHW high-wind roughness (literal -.3333, not -1/3)."
},
"ahw_ust_min": {
"type": "parameter",
"units": "m/s",
"default": 0.01,
"description": "u* floor in the AHW smooth-flow term (line 851)."
},
"shal_depth_min": {
"type": "parameter",
"units": "m",
"default": 10.0,
"description": "Lower clamp of the water depth in the Jimenez-Dudhia (2018) shallow-water roughness (line 1130)."
},
"shal_depth_max": {
"type": "parameter",
"units": "m",
"default": 100.0,
"description": "Upper clamp of the water depth (line 1131)."
},
"shal_b_coef": {
"type": "parameter",
"units": "1",
"default": 0.03333333333333333,
"description": "1/30 in depth_b = (1/30) ln(1260/depth) (line 1137)."
},
"shal_b_scale": {
"type": "parameter",
"units": "m",
"default": 1260.0,
"description": "Depth scale 1260 m of depth_b."
},
"shal_c1": {
"type": "parameter",
"units": "1",
"default": 2.7,
"description": "z0 = exp((2.7 u* - 1.8/depth_b)/(u* + 0.17/depth_b)) coefficient 2.7 (line 1138)."
},
"shal_c2": {
"type": "parameter",
"units": "m/s",
"default": 1.8,
"description": "Coefficient 1.8 of the shallow-water roughness."
},
"shal_c3": {
"type": "parameter",
"units": "m/s",
"default": 0.17,
"description": "Coefficient 0.17 of the shallow-water roughness."
},
"shal_z0_max": {
"type": "parameter",
"units": "m",
"default": 0.1,
"description": "Upper bound of the shallow-water roughness (line 1139)."
},
"secant_bracket": {
"type": "parameter",
"units": "1",
"default": 5.0,
"description": "Initial secant bracket |z/L| = 5 of the Ri_b -> z/L solver zolri (lines 957-962)."
},
"secant_tol": {
"type": "parameter",
"units": "1",
"default": 0.01,
"description": "Termination |x1 - x2| <= 0.01 of the zolri secant iteration (line 967)."
},
"z_2m": {
"type": "parameter",
"units": "m",
"default": 2.0,
"description": "Height of the 2 m temperature and moisture diagnostics (literal 2. in gz2oz0, zol2, zl2, psiq2)."
},
"z_10m": {
"type": "parameter",
"units": "m",
"default": 10.0,
"description": "Height of the 10 m wind diagnostics (literal 10. in gz10oz0, zol10, zl10, psiq10)."
},
"unit_velocity": {
"type": "parameter",
"units": "m/s",
"default": 1.0,
"description": "1 m/s. The kernel raises dimensioned velocities to non-integer powers (vconv = (g/T h w)^0.33, zn2 = 10 exp(-9.5 u*^-0.3333)), which is dimensionally inconsistent; the esm divides the base by this unit velocity so the expression is dimensionally consistent and numerically identical in SI."
},
"unit_length": {
"type": "parameter",
"units": "m",
"default": 1.0,
"description": "1 m. The Jimenez-Dudhia (2018) shallow-water roughness exp((2.7 u* - 1.8/b)/(u* + 0.17/b)) is a pure number used as metres; multiplied by this unit length in the esm."
},
"unit_kelvin": {
"type": "parameter",
"units": "K",
"default": 1.0,
"description": "1 K. The kernel's over-water convective velocity vconv = sqrt(max(tskv - thvx, 0)) takes the square root of a temperature difference and uses it as m/s (the old MM5/Wyngaard form with its coefficient 2 m/s/K^(1/2) reduced to 1 in V3.7); the esm divides by this unit temperature and multiplies by unit_velocity so the expression is dimensionally consistent and numerically identical in SI."
}
},
"equations": [],
"tests": []
}