Skip to content

K14

Overview

Implements the Kok et al. (2014) dust emission scheme (K14). This is the most physically detailed dust scheme in CECE, incorporating Shao threshold friction velocity, Zender gravimetric soil moisture, Fécan moisture correction, configurable clay parameterization, MacKinnon drag partition, Laurent erodibility, IGBP vegetation masking, and the Kok (2012, 2014) vertical dust flux formulation.

References: - Kok, J.F., et al. (2012), An improved dust emission model, ACP, 12, 7413–7430. - Kok, J.F., et al. (2014), An improved dust emission model — Part 2, ACP, 14, 13023–13041. - MacKinnon, D.J., et al. (2004), A geomorphological approach, JGR, 109, F01013. - Laurent, B., et al. (2008), Modeling mineral dust emissions, ACP, 8, 395–409. - Fécan, F., et al. (1999), Annales Geophysicae, 17, 149–157.

Registration Names

  • Native C++: "k14"
  • Fortran bridge: "k14_fortran"

Configuration Parameters

YAML Key Type Default Description
ch_du double 0.8e-9 Global dust emission tuning constant
f_w double 1.0 Soil moisture scaling factor
f_c double 1.0 Clay fraction scaling factor
uts_gamma double 1.65e-4 Shao inter-particle cohesion parameter [kg/s²]
undef double 1.0e15 Undefined/sentinel value
grav double 9.81 Gravitational acceleration [m/s²]
von_karman double 0.4 Von Kármán constant
opt_clay int 0 Clay parameterization option (0=Kok2014, 1=ItoKok2017-v1, 2=ItoKok2017-v2)
num_bins int 5 Number of dust size bins

Import Fields

Field Name Units Description
friction_velocity m/s Surface friction velocity (u*)
soil_temperature K Soil temperature
volumetric_soil_moisture fraction Volumetric soil moisture
air_density kg/m³ Surface air density
roughness_length m Aeolian roughness length (z0)
height m Reference height for wind
u_wind m/s Zonal wind at reference height
v_wind m/s Meridional wind at reference height
land_fraction fraction Land fraction [0–1]
snow_fraction fraction Snow cover fraction [0–1]
dust_source dimensionless Dust source / preferential source map
sand_fraction fraction Fractional sand content [0–1]
silt_fraction fraction Fractional silt content [0–1]
clay_fraction fraction Fractional clay content [0–1]
soil_texture index Soil texture class (1–12)
vegetation_type index IGBP vegetation type
vegetation_fraction fraction Green vegetation fraction [0–1]

Export Fields

Field Name Units Description
k14_dust_emissions kg/m²/s Size-resolved dust emission flux (3D: nx × ny × nbins)

Algorithm

The K14 kernel executes 13 steps per grid cell:

  1. Skip check: Skip cells with no land fraction or invalid roughness (z0 ≥ 5e-4 m or z0 ≤ 0).

  2. Shao threshold friction velocity: Compute smooth-surface threshold using particle properties: u_ts = sqrt(a_n * ((ρ_p/ρ_air)*g*D_p + γ/(ρ_air*D_p))) where D_p = 75 μm, ρ_p = 2650 kg/m³.

  3. Gravimetric soil moisture (Zender): Convert volumetric to gravimetric moisture: w_g = 100 * f_w * ρ_water / ρ_soil / (1 − v_sat) * w_top, where v_sat = 0.489 − 0.126 * f_sand.

  4. Fécan moisture correction: Compute dry limit from clay content (w_gt = 14*clay² + 17*clay), then H_w = sqrt(1 + 1.21*(w_g − w_gt)^0.68) if w_g > w_gt.

  5. Clay parameterization (opt_clay):

  6. 0 (default, Kok 2014): k_gamma = clay
  7. 1 (Ito & Kok 2017 v1): Piecewise — 0.05 if clay < 0.05, clay if 0.05–0.2, 0.2 if clay > 0.2
  8. 2 (Ito & Kok 2017 v2): k_gamma = 1/(1.4 − clay − silt) or 1/(1 + clay − silt)

  9. Smooth roughness length: Look up z0s from soil texture class using a 12-element table of characteristic diameters divided by 30.

  10. MacKinnon drag partition: R = 1 − ln(z0/z0s) / ln(0.7*(122.55/z0s)^0.8), clamped to 1.0 for z0 ≤ z0s or z0 ≥ z0_max.

  11. Soil friction velocity: u = R * u*.

  12. Soil threshold friction velocity: u_t = u_ts * H_w.

  13. Laurent erodibility: Compute erodibility from roughness length: f_erod = 0.7304 − 0.0804*log10(100*z0) for z0 in [3e-5, 5e-4], else 1.0. Texture 15 (ice) returns 0.

  14. IGBP vegetation mask: Allow emissions only from open shrublands (type 7) and barren (type 16), modulated by green vegetation fraction (GVF < 0.8).

  15. Final erodibility: f_erod = f_erod * f_veg * f_land * (1 − f_snow), further scaled by dust_source if available.

  16. Kok vertical dust flux: If f_erod > 0 and u > u_t:

    • Standardized threshold: u_st = max(u_t * sqrt(ρ_air/ρ_a0), 0.16)
    • Dust coefficient: C_d = 4.4e-5 * exp(−2*(u_st − 0.16)/0.16)
    • Flux: C_d * f_erod * k_gamma * ρ_air * (u² − u_t²)/u_st * (u/u_t)^(2.7*(u_st−0.16)/0.16)
    • Scale by ch_du and replicate across all bins.

YAML Configuration Example

physics:
  - name: k14
    config:
      ch_du: 0.8e-9
      f_w: 1.0
      f_c: 1.0
      opt_clay: 0
      num_bins: 5
      uts_gamma: 1.65e-4

Implementation Notes

  • Available as both native C++ (Kokkos) and Fortran bridge implementations
  • Requires 17 import fields — the most input-intensive scheme in CECE
  • Produces multi-bin (3D) output; currently all bins receive the same flux value (no size-resolved distribution)
  • Uses GPU-portable Kokkos:: math functions throughout the kernel
  • The opt_clay parameter selects between three published clay parameterizations
  • Physical constants (a_n, D_p, ρ_p, ρ_water, ρ_soil, z0_max) are hard-coded as constexpr in the kernel
  • The smooth roughness lookup table contains 12 entries corresponding to USDA soil texture classes