Components
All .esm components in the catalog.
All components
Below is every .esm component currently in the repository. Use the taxonomy
links at the top of the page, or the search box, to narrow the list.
Facet links:
- By domain — gaschem, aerosol, …
- By component type — model, reaction_system, …
- By subdomain — cloud_physics, radiative_forcing, …
- AbsorptivePartitioning
model
aerosol
organic
Absorptive partitioning model for equilibrium gas–particle partitioning of semivolatile organic compounds. A compound distributes between the gas phase and an absorbing organic aerosol phase according to a mass-based partition coefficient K_om and the total absorbing organic aerosol mass C_oa. From Seinfeld and Pandis (2006), Chapter 9, Section 9.4, Equation 9.23.
- AdjustedLayerThickness
model
urban_canopy
temps
Adjusted top layer thickness for pervious and impervious road surfaces in the urban canopy thermal scheme. The adjustment compensates for the offset between the layer-averaged temperature carried by the finite-volume soil column and the surface temperature used in the surface-energy-balance kernel, using the tunable Yang (1998) coefficient c_a = 0.34. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:601 (`AdjustedLayerThickness` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.30. Parameterized as observed-only: z_i, z_h_im1, z_ip1, c_a are inputs (parameters); Δz_star is the algebraic output.
- AerodynamicDiameter
model
aerosol
particle_dyn
Equivalent particle diameters for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:390 (`AerodynamicDiameter` @component). Computes the classical aerodynamic diameter D_ca (the diameter of a unit-density sphere with the same settling velocity) and its continuum-limit approximation (Seinfeld & Pandis 2006, Chapter 9, Eqs. 9.110 and 9.112).
- AerodynamicResistance
model
atmospheric_deposition
sp_ch19
ModelingToolkit implementation of the aerodynamic resistance to dry deposition from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition), Eq. 19.14. Computes the aerodynamic resistance r_a [s/m] -- the resistance to turbulent transport of a depositing species through the surface layer, from the reference height z down to the roughness height z_0 -- under neutral atmospheric stability. Eq. 19.14, r_a = ln(z/z_0)/(kappa*u_star), is the integral of the neutral-stability logarithmic wind profile: r_a falls inversely with the friction velocity u_star (stronger turbulence carries the species down faster) and with the logarithm of the height ratio z/z_0 (a rougher surface, larger z_0, is more efficiently coupled to the atmosphere and presents less aerodynamic resistance). Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:106 (the AerodynamicResistance @component). Purely algebraic: no differential states, a single explicit equation.
- AerosolDistribution
model
aerosol
size
ModelingToolkit implementation of a multi-modal lognormal atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"). The model represents the aerosol number, surface-area and volume distributions as a sum of three lognormal modes (Eq. 8.54), and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl AerosolDistribution. Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at the default and documented n_modes = 3; default mode parameters are the Urban distribution of Table 8.3.
- AerosolDynamics
model
aerosol
dynamics
Combined aerosol population dynamics: condensation growth (DiameterGrowthRate) and Brownian coagulation (BrownianCoagulationCoefficient + MonodisperseCoagulation), coupled so that the Fuchs-form coagulation coefficient K_12 drives the number-concentration ODE and the shared temperature T and particle density ρ_p parameterize both growth and coagulation. Implements Seinfeld & Pandis (2006) Ch. 13 Eqs. 13.11-13.13 (condensation), 13.47 and Table 13.1 (coagulation coefficient), and 13.65-13.67 (number-concentration dynamics). Migrated from Aerosol.jl src/dynamics.jl:279 (esm-540).
- AerosolExtinction
model
aerosol
mie
Extinction, scattering, and absorption coefficients for a monodisperse aerosol population, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 15, Eqs. 15.6 and 15.27-15.30. For a monodisperse population the bulk optical coefficients (b_ext, b_scat, b_abs) are the product of the single-particle cross-section area (pi/4)*D_p^2 times the number concentration N times the corresponding Mie efficiency (Q_ext, Q_scat, Q_abs). The single-scattering albedo omega = b_scat / b_ext completes the optical description. The Mie efficiencies Q_ext and Q_scat are accepted as input parameters (their default values correspond to the Mie solution at D_p = 0.5 um, lambda = 550 nm, n_refr = 1.5, k_refr = 0 using the Bohren & Huffman algorithm). The size parameter alpha = pi * D_p / lambda is computed as an algebraic observed output for reference. Migrated from Aerosol.jl AerosolExtinction.
- AerosolLayerRadiativeForcing
model
aerosol
radiative_forcing
Aerosol layer radiative forcing from two-stream scattering-absorbing model — Seinfeld & Pandis (2006) Ch. 24 §24.1, Eqs. 24.1–24.10.
- AerosolScavenging
model
aerosol
cloud_physics
Aerosol scavenging by cloud droplets (Seinfeld & Pandis 2006, Eqs. 17.84-17.92). Computes mass and number scavenging ratios and the scavenging coefficient for a monodisperse cloud-droplet population.
- AirRefreshingLimitation
model
atmospheric_deposition
luo2023
Air refreshing limitation on wet scavenging from Luo & Yu (2023), Eqs. 2, 5, 10, 11. The air refreshing limited removal rate R_A accounts for the finite time needed for species in subgrid cloud-free (rain-free) air to mix into cloudy (rainy) air before being subject to wet scavenging; the standard well-mixed assumption overestimates wet scavenging when the subgrid air mixing time scale is comparable to the model time step. When turbulent mixing is strong (large TKE) the grid refreshing time goes to zero and R_A approaches f*Rᵢ (the standard model); when mixing is weak R_A falls below f*Rᵢ. Migrated from AtmosphericDeposition.jl@e4468c79 src/luo2023.jl:210 (`AirRefreshingLimitation` @component). Observed-only algebraic system: cloud fraction f, in-cloud removal rate Rᵢ, turbulence kinetic energy TKE, and the grid spacings Δx/Δy/Δz are input parameters; Kᵢ, τ_A, and R_A are the algebraic outputs fixed by three explicit equations.
- Anderson13FuelTable
model
wildland_fire
fire_behavior
The Anderson (1982) 13-category surface fuel table exactly as fire_behavior carries it (physics/fuel_anderson_mod.F90 Init_anderson_fuel_model, plus the derived quantities of share/fuel_mod.F90 Calc_wind_adjustment_factor, state/state_mod.F90 Init_fuel_vars and fmc_wrffire_mod Init_fmc_wrffire), as a lookup on the integer category code: fuel load fgi (fire_behavior's own kg/m^2 values), bed depth, mass-loss weight, chaparral flag, particle density, surface-area-to-volume ratio, mineral contents, moisture of extinction, the Albini (1976) 1-h/10-h/100-h/1000-h/live load proportions, the canopy fuel parameters, and the derived wind adjustment factor, fuel e-folding time and fuel-moisture class weights. Category 14 is 'no fuel'. Each property is a piecewise-linear interpolation through the 14 integer nodes, exact at the nodes (the same spelling as the EarthSciModels wildland_fire/fuel_model_lookup.esm, which this component does NOT reuse because its numbers differ: that file converts Anderson's ton/acre loads to SI -- 0.449 kg/m^2 for category 2 where fire_behavior has 0.896 -- rounds the depths differently (1.8288 vs 1.829 m) and divides the residence time by 0.8514 instead of 0.85). Tests are the dumped fuel tables and waf array of the instrumented fire_behavior (real32), rel 1e-6 on the transcribed literals and 1e-5 on the derived waf.
- AnelasticMassContinuity
model
atmospheric_dynamics
clark1977
Anelastic mass continuity equation from Clark (1977), Eq. 2.4. The component forms the three density-weighted velocity components rho_u = ρ̄u, rho_v = ρ̄v, rho_w = ρ̄w from the base-state density ρ̄ and the velocity field (u, v, w), and computes the anelastic mass-continuity residual mass_continuity as the sum of the three externally-supplied density-weighted divergence terms ∂(ρ̄u)/∂x + ∂(ρ̄v)/∂y + ∂(ρ̄w)/∂z. The anelastic approximation constrains this residual to zero, filtering acoustic (sound) waves from the dynamics by replacing the geometric velocity divergence with the density-weighted one. Four purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:369 (`AnelasticMassContinuity` @component).
- AnelasticMomentum
model
atmospheric_dynamics
clark1977
Anelastic momentum equations from Clark (1977), 'A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation', Journal of Computational Physics 24, 186-215. A diagnostic (purely algebraic) component that evaluates the residuals of the three nonlinear anelastic momentum equations (Eqs. 2.1-2.3) in Cartesian coordinates. Given the velocity components (u, v, w), their material derivatives (du/dt, dv/dt, dw/dt), the perturbation-pressure gradients (∂p'/∂x, ∂p'/∂y, ∂p'/∂z), the base-state and perturbation densities (ρ̄, ρ'), the Reynolds-stress divergences ((∇·τ)₁, (∇·τ)₂, (∇·τ)₃), the Coriolis parameter f and the Rayleigh-friction time scale τ_R, it returns the three momentum-equation residuals mom_u, mom_v, mom_w. Each residual is the sum of the inertial term ρ̄·(dV/dt), the Coriolis term ρ̄·V·f (horizontal components only), the perturbation-pressure gradient, the negative Reynolds-stress divergence, the buoyancy term ρ'·g (vertical component only) and the negative Rayleigh-friction sink ρ̄·V/τ_R; the residual vanishes when the momentum balance is exactly satisfied. The model has 3 algebraic variables (no time integration), 3 equations and 17 parameters (1 physical constant + 16 inputs). All quantities are SI. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:282 (`AnelasticMomentum` @component).
- AnelasticThermodynamics
model
atmospheric_dynamics
clark1977
Anelastic thermodynamics equation (the first law of thermodynamics) with Smagorinsky turbulent heat flux, from Clark (1977), 'A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation'. Given the base-state air density rho_bar, the eddy heat diffusivity K_H, and the potential-temperature gradients, the component computes the three turbulent heat-flux components H1, H2, H3 = rho_bar*K_H*grad(theta) (Eq. 2.19), the heat-flux divergence term div_H = -div(H), and the residual of the anelastic thermodynamic equation rho_bar*dtheta/dt = -div(H) (Eq. 2.14) — which vanishes for an energy-conserving solution. Five purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:426 (`AnelasticThermodynamics` @component).
- AqueousDiffusionReaction
model
aerosol
transport
Correction factor Q for the aqueous-phase reaction rate when intra-droplet diffusion limits access to the reactive interior (Seinfeld & Pandis 2006, Chapter 12, Eqs. 12.105 and 12.110). Computes the dimensionless Hatta number q = R_p √(k_rxn/D_aq) and the corresponding correction factor Q = 3(q·coth q − 1)/q², which scales the effective reaction rate from the well-mixed limit (Q = 1) down toward zero as the droplet becomes increasingly diffusion-limited. Migrated from Aerosol.jl src/aqueous_transport.jl:14.
- AqueousDiffusionTimescale
model
aerosol
timescales
Characteristic timescale for aqueous-phase diffusion within a droplet — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12, Eq. 12.75. The aqueous-phase diffusion timescale τ_da = R_p²/(π²D_aq) is the characteristic time for a dissolved species to diffuse throughout the interior of a droplet of radius R_p with aqueous-phase diffusivity D_aq. It is the e-folding decay time of the fundamental (slowest) mode of the spherical diffusion equation, whose lowest eigenvalue contributes the π² factor. Migrated from Aerosol.jl AqueousDiffusionTimescale.
- AqueousEquilibrationTimescale
model
aerosol
timescales
Characteristic timescale for a gas to equilibrate with aqueous aerosol particles — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12, Eq. 12.147. The aqueous equilibration timescale τ_a is the solid-particle equilibration timescale τ_s scaled by the dimensionless buffering factor m_w/K_A, where m_w is the aerosol water mass concentration and K_A is an equilibrium constant. The factor accounts for the additional buffering effect of Henry's-law dissolution of the gas into the aerosol aqueous phase: a larger aqueous reservoir m_w relative to K_A lengthens the time to reach equilibrium. Migrated from Aerosol.jl AqueousEquilibrationTimescale.
- AqueousEquilibria
model
aerosol
aq_eq
Coupled gas-aqueous chemical equilibrium for cloud droplets and aerosol water. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:642. Composes WaterEquilibrium, CO2Equilibria, SO2Equilibria, NH3Equilibria, HNO3Equilibria, H2O2Equilibria, and O3Equilibria via a quadratic charge-balance approximation for H+. Reference: Seinfeld & Pandis (2016) Ch. 7 §7.3.
- AquiferWaterBalance
model
urban_canopy
hydro
Aquifer water-storage update for the case when the water table lies below the soil column. The rate of change of aquifer water dW_a (kg/(m^2*s)) is the balance of recharge into the aquifer and sub-surface drainage out of it (Oleson et al. 2010, CLM Tech Note Ch. 5, Eq. 5.143). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:791 (`AquiferWaterBalance` @component). Observed-only: both inputs are parameters and dW_a is given by a single algebraic equation.
- arr_3rd
model
gaschem
The five SuperFast rate-law helper functions migrated from GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309 src/SuperFast.jl — the reusable builder functions the SuperFast() chemical mechanism uses to construct the rate coefficient of every gas-phase reaction. Each is migrated as its own observed-only algebraic `models` entry: rate_toppb (SuperFast.jl:6) the constant-rate / `constant_k` converter, arrh (:33) the modified-Arrhenius workhorse, arr_3rd (:64) the third-body / Troe-falloff law, rate_2HO2 (:102) the HO2+HO2 law with water-vapour enhancement, and rate_OH_CO (:142) the JPL 15-10 OH+CO law. Upstream each function returns a one-variable ReactionSystem (`@variables k(t)`); the composed builders (arr_3rd, rate_2HO2, rate_OH_CO) compose `arrh` sub-systems. This file reproduces each function's compiled rate as a topologically-ordered cascade of `type: state` algebraic equations whose named intermediates mirror the upstream Julia locals and sub-system k's verbatim, with the Arrhenius coefficients exposed as `type: parameter` (defaults taken from the representative SuperFast reaction each builder serves). All five models are purely algebraic — no time derivatives — so each rate coefficient is constant in time. Units follow the upstream's mixed CGS / ppb system (rate coefficients in 1/(s*ppb), Arrhenius pre-exponentials in cm^3/molec/s).
- arr_3rdbody
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arr_3rdbody_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrh
model
gaschem
The five SuperFast rate-law helper functions migrated from GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309 src/SuperFast.jl — the reusable builder functions the SuperFast() chemical mechanism uses to construct the rate coefficient of every gas-phase reaction. Each is migrated as its own observed-only algebraic `models` entry: rate_toppb (SuperFast.jl:6) the constant-rate / `constant_k` converter, arrh (:33) the modified-Arrhenius workhorse, arr_3rd (:64) the third-body / Troe-falloff law, rate_2HO2 (:102) the HO2+HO2 law with water-vapour enhancement, and rate_OH_CO (:142) the JPL 15-10 OH+CO law. Upstream each function returns a one-variable ReactionSystem (`@variables k(t)`); the composed builders (arr_3rd, rate_2HO2, rate_OH_CO) compose `arrh` sub-systems. This file reproduces each function's compiled rate as a topologically-ordered cascade of `type: state` algebraic equations whose named intermediates mirror the upstream Julia locals and sub-system k's verbatim, with the Arrhenius coefficients exposed as `type: parameter` (defaults taken from the representative SuperFast reaction each builder serves). All five models are purely algebraic — no time derivatives — so each rate coefficient is constant in time. Units follow the upstream's mixed CGS / ppb system (rate coefficients in 1/(s*ppb), Arrhenius pre-exponentials in cm^3/molec/s).
- arrhenius_mlc_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrhenius_mlc_SI
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrhenius_ppb
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrhenius_ppb_3
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrplus_mlc_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- arrplus_ppb
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- AtmosphericBudget
model
gaschem
lifetime
Fundamental mass-conservation (budget) equation for an atmospheric species in a single reservoir, from Seinfeld & Pandis (2006) Ch. 2 (Atmospheric Trace Constituents), Eqs. 2.1-2.2, pp. 25-30. The reservoir mass Q evolves under the balance of transport (inflow minus outflow) and chemistry (production minus removal): dQ/dt = (F_in - F_out) + (P - R_removal) — the most basic statement of a trace-species budget, on which the lifetime, multiple-removal and tropospheric-budget formulations of the same chapter are built. The component additionally computes two diagnostic decomposition terms: the net transport contribution net_transport = F_in - F_out and the net chemistry contribution net_chemistry = P - R_removal; their sum is dQ/dt, and the steady-state condition (Eq. 2.2) dQ/dt = 0 ⇔ F_in + P = F_out + R_removal is reached when net_transport = -net_chemistry. One time-resolved ODE state (the reservoir mass Q) plus two observed (algebraic) diagnostic states (net_transport, net_chemistry); the four flux terms F_in, F_out, P, R_removal are externally-supplied inputs encoded as parameters. Migrated from GasChem.jl@8c12c048 src/AtmosphericLifetime.jl:64 (`AtmosphericBudget` @component); the upstream removal-rate @variable `R` is renamed `R_removal` here because the ESS schema reserves the bare name `R` for the ideal gas constant.
- AtmosphericDiffusion
model
atmospheric_dynamics
Atmospheric eddy-diffusivity and wind-profile parameterizations from Seinfeld & Pandis (2006) Ch. 18, Sec. 18.12. Given a height z above ground, the component computes the mean wind speed u_wind from a power-law profile (Eq. 18.118) and the vertical and horizontal eddy diffusivities K_zz, K_yy that govern turbulent transport of trace species in the planetary boundary layer. K_zz is selected by atmospheric stability from the Monin-Obukhov length L_MO: an unstable four-piece convective profile (Eq. 18.121, Lamb & Duran 1977), a neutral profile (Eq. 18.122, Myrup & Ranzieri 1976), or a stable profile (Eq. 18.125, Businger & Arya 1974). K_yy is 0.1*w_star*z_i under unstable conditions (Eq. 18.128) and equals K_zz otherwise. Three purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/atmospheric_diffusion.jl:30 (`AtmosphericDiffusion` @component).
- AtmosphericPressureProfile
model
atmospheric_dynamics
sp_ch1
Atmospheric pressure, density, and vertical pressure gradient as a function of altitude for an isothermal atmosphere. Couples the hydrostatic equation with the ideal gas law: the scale height H = R*T/(M_air*g) (Eq. 1.4) sets the e-folding altitude, the barometric formula p = p_0*exp(-z/H) (Eq. 1.5) gives pressure, the ideal gas law rho = M_air*p/(R*T) (Eq. 1.2) gives density, and the hydrostatic equation dpdz = -rho*g (Eqs. 1.1/1.3) gives the pressure gradient. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:151 (`AtmosphericPressureProfile` @component). Implements Seinfeld & Pandis (2006) Chapter 1 Equations 1.1-1.5 for an isothermal atmosphere — the integrated, constant-scale-height form; a non-isothermal atmosphere would require numerical integration of Eq. 1.3. Parameterized as observed-only: altitude z and temperature T are inputs (parameters in standalone form, with R, M_air, g, p_0 as further parameter inputs carrying their upstream @constant values), and H, p, rho, dpdz are the four algebraic outputs. The upstream `5.3 AtmosphericPressureProfile Compilation` test compiles the component with `inputs = [app_nns.T]`, confirming T is an input.
- AtmosphericStability
model
atmospheric_dynamics
local_scale
Atmospheric static-stability diagnostics from Seinfeld & Pandis (2006) Ch. 16 (Meteorology of the Local Scale). Given the air temperature T and pressure p at a height z, the air temperature T_below one layer below, and the layer spacing delta_z, the component computes the potential temperature theta = T*(p_0/p)^(R_air/c_p) (Eq. 16.14), the actual temperature lapse rate dT_dz = (T - T_below)/delta_z, the potential-temperature gradient dtheta_dz = dT_dz + Gamma_d (Eqs. 16.16-16.18), and the static-stability parameter S = dtheta_dz: S > 0 stable, S = 0 neutral, S < 0 unstable. Four purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/local_scale_meteorology.jl:32 (`AtmosphericStability` @component).
- AtmosphericThermodynamics
model
atmospheric_dynamics
sp_ch1
Atmospheric thermodynamic profile for an isothermal atmosphere: given altitude and temperature it computes the scale height H = R*T/(M_air*g) (Eq. 1.4), the atmospheric pressure p = p_0*exp(-z/H) from the barometric formula (Eq. 1.5), the air density rho = M_air*p/(R*T) from the ideal gas law (Eq. 1.2), and the total molar concentration c_total = p/(R*T) (Eq. 1.7). Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:479 (`AtmosphericThermodynamics` @component). Implements Seinfeld & Pandis (2006) Chapter 1 Equations 1.2, 1.4, 1.5, 1.7. Despite the upstream docstring describing it as 'combining' equations from other components, the Julia @component is a flat model — it re-derives the four equations directly via `System(eqs, t; name)` with no MTK subsystems — so it is migrated here as a flat algebraic model (not subsystem-composed), mirroring the structurally identical sibling pressure_profile.esm. Parameterized as observed-only: altitude z and temperature T are inputs (parameters in standalone form, with R, M_air, g, p_0 as further parameter inputs carrying their upstream @constant values), and H, p, rho, c_total are the four algebraic outputs. The upstream `5.9 AtmosphericThermodynamics Compilation` test compiles the component with `inputs = [at_nns.T]`, confirming T is an input.
- BarometricFormula
model
atmospheric_dynamics
sp_ch1
Barometric formula for an isothermal atmosphere: p(z) = p_0 * exp(-z/H). Gives the pressure at altitude z from the sea-level pressure p_0 and the atmospheric scale height H. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:201 (`BarometricFormula` @component). Implements Seinfeld & Pandis Ch 1 Eq. 1.5 — the integrated form of the hydrostatic equation for an isothermal atmosphere. Parameterized as observed-only: z, H, and p_0 are inputs (parameters in standalone form), pressure_ratio and p are the algebraic outputs.
- BelowCloudGasScavenging
model
atmospheric_deposition
sp06_ch20
Irreversible below-cloud (washout) scavenging of a gas-phase species by falling raindrops, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 20 (Wet Deposition), Eqs. 20.22, 20.24, 20.25. The gas scavenging coefficient Λ_gas = 6·p₀·K_c/(D_p·U_t) (Eq. 20.25) for monodisperse drops is constant in time, so the below-cloud gas concentration decays exponentially via dC_g/dt = −Λ_gas·C_g (Eq. 20.24) and the below-cloud scavenging flux is F_bc = Λ_gas·h·C_g (Eq. 20.22). 'Irreversible' means the gas is assumed to be taken up and not re-released — the limiting case opposite to the reversible (Henry's-law-equilibrium) treatment of the sibling ReversibleGasScavenging component. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:234 (`BelowCloudGasScavenging` @component). ODE system: C_g is the single differential state; Λ_gas and F_bc are algebraic outputs (upstream `@variables`, serialized as type `state` with explicit algebraic equations); K_c, U_t, D_p, h, p₀ are input parameters.
- BETAdsorption
model
aerosol
organic
BET (Brunauer-Emmett-Teller) adsorption isotherm for multilayer adsorption. Extends the Langmuir model to include formation of additional molecular layers, assuming each adsorbed molecule can serve as an adsorption site for the next layer. From Seinfeld and Pandis (2006), Chapter 14, Section 14.5.3, Equation 14.45.
- BinaryMolality
model
aerosol
isorropia
Binary aqueous molality of an inorganic salt as a function of relative humidity, using the 5th-order polynomial fit from Table 7 of Fountoukis and Nenes (2007). The polynomial m_aw(RH) = (k_0 + k_1*RH + k_2*RH^2 + k_3*RH^3 + k_4*RH^4 + k_5*RH^5) * m_one is used in Equation 16 of ISORROPIA II to compute the ZSR water content contribution from each salt. Multiple BinaryMolality instances (one per salt) are composed into the Aqueous component. Migrated from Aerosol.jl src/isorropia/aqueous.jl BinaryMolality (esm-406).
- BlackbodyRadiation
model
gaschem
radiation
Planck's blackbody radiation law (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.2) — the monochromatic emissive power F_B_λ of a blackbody at temperature T as a function of wavelength λ via Planck's constant h, the speed of light c, and the Boltzmann constant k_B: F_B_λ = 2π·c²·h·λ⁻⁵ / (exp(c·h/(k_B·λ·T)) - 1). The component is observed-only: one algebraic equation on one state variable (F_B_λ the monochromatic emissive power per unit wavelength in W/m³) driven by two input parameters (T temperature in K, λ wavelength in m) and four constants (h Planck's constant, c speed of light, k_B Boltzmann constant, π_val mathematical π as a Float64 value). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:73 (`BlackbodyRadiation` @component). The Planck function is the spectral energy density of thermal radiation from an opaque, non-reflective body in thermodynamic equilibrium — the foundational equation of quantum radiative transfer. Integrating F_B_λ over all wavelengths gives the Stefan-Boltzmann total flux σT⁴ (see stefan_boltzmann.esm); the wavelength where F_B_λ peaks is λ_max = b/T from Wien's displacement law (see wien.esm). At the default T=5800 K (Sun's effective surface temperature) and λ=500 nm (visible green, the canonical solar-peak wavelength), F_B_λ ≈ 8.46e13 W/m³ — the peak intensity that anchors the Sun's irradiance at Earth's distance and the solar-driven photochemistry of the atmosphere. At T=300 K (Earth surface) and λ=10 μm (thermal-IR), F_B_λ ≈ 3.12e7 W/m³ — the canonical longwave outgoing radiation peak that drives the planetary energy balance.
- BoundaryLayerMixingKC
model
environmental_transport
Kantha-Clayson & Garratt boundary-layer turbulence parameterization for Lagrangian particle dispersion, as described in NOAA ARL-224 and the HYSPLIT documentation. Computes turbulent velocity standard deviations (sigmaw, sigma_u, sigma_v), Lagrangian vertical time scale (TL_v), Monin-Obukhov length (Lmo), and convective velocity scale (wstar) from surface-layer similarity theory; integrates stochastic Langevin equations for the turbulent velocity components (wprime, uprime_x, uprime_y) and the resulting Lagrangian particle position (lon, lat, lev). The upstream Julia source uses a single @brownians Bw term on all three velocity ODEs (gt-kuxo gap); this ESM migrates the deterministic drift equations only. Migrated from EnvironmentalTransport.jl@a48559c4114eb9f06668ecf9f06235aad20f63f0:src/BoundaryLayerMixingKC.jl:15.
- BrownianCoagulationCoefficient
model
aerosol
dynamics
Brownian coagulation coefficient K_12 for two particles using the Fuchs interpolation formula (Seinfeld & Pandis 2006, Table 13.1). Valid across the continuum, transition, and free-molecular regimes. Computes Knudsen numbers, Cunningham slip corrections, Brownian diffusion coefficients, mean thermal velocities, particle mean free paths, and the Fuchs interpolation parameters g_1, g_2 as intermediate observed variables before assembling K_12. Migrated from Aerosol.jl src/dynamics.jl:75.
- BrownianDiffusion
model
aerosol
particle_dyn
Brownian (Stokes-Einstein) diffusion coefficient for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:172 (`BrownianDiffusion` @component). Computes the Brownian diffusivity D of a particle via the Stokes-Einstein relation with Cunningham slip correction (Seinfeld & Pandis 2006, Chapter 9, Eq. 9.73).
- BrOxCycle
model
gaschem
stratospheric
Stratospheric bromine catalytic ozone-destruction cycle (BrOx). Three ODEs (Br, BrO, HOBr) and two algebraic family identities (BrOx = Br + BrO; Bry = Br + BrO + HOBr). Reactions: Br + O3 → BrO + O2 (Arrhenius); BrO + O → Br + O2; BrO + ClO → Br + Cl + O2 (constant rate); BrO + HO2 → HOBr + O2; HOBr + hν → OH + Br (photolysis). Unlike chlorine, bromine has no stable HBr reservoir because Br + CH4 is endothermic (Seinfeld & Pandis Page 169). Bromine is approximately 50× more effective than chlorine in destroying ozone on an atom-for-atom basis. Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:390 (`BrOxCycle` @component). Rate coefficients converted CGS → SI: cm³/molec/s × 1e-6 → m³/s.
- BuildingTemperature
model
urban_canopy
temps
Weighted-average internal building temperature from canyon and roof surface temperatures, implementing Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.37–4.38. The roof length L_roof in an infinite canyon (Eq. 4.38) and the unclamped building temperature T_iB_unclamped (Eq. 4.37) are both algebraic functions of the canyon geometry (H_canyon, H_W, W_roof) and the inner-surface temperatures of the shaded wall, sunlit wall, and roof. T_iB is the area-weighted average with the two walls contributing 2*H_canyon of effective length and the roof contributing L_roof. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:401 (`BuildingTemperature` @component). NOTE: the migration-tracker entry listed `blocking_gap: other:discretization-plan` citing line :1152, but that line belongs to `RoofWallHeatConduction` (a separate non-exported helper function). `BuildingTemperature` itself is a pure two-equation algebraic `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- BurningIndex
model
wildland_fire
nfdrs
Burning Index (BI) from the National Fire Danger Rating System (NFDRS). BI is numerically equivalent to 10 times the predicted flame length in feet. BI = 3.01 × (SC × ERC)^0.46, where SC is the spread component (m/s) and ERC is the energy release component (dimensionless). From Cohen & Deeming (1985), page 12.
- BurnProbability
model
wildland_fire
fsim
Burn probability calculation for wildland fire FSIM
- CarbonCycle
model
atmospheric_dynamics
global_cycles
Seven-reservoir model of the global carbon cycle from Schmitz (2002), as presented in Seinfeld & Pandis (2006) Ch. 22 (Global Cycles: Sulfur and Carbon), Table 22.1 and Fig. 22.6, pp. 1009-1015. Carbon is tracked as a mass (kg) in seven reservoirs — atmosphere (M1), warm ocean surface waters (M2), cool ocean surface waters (M3), deep ocean waters (M4), terrestrial biota (M5), soils and detritus (M6), and fossil fuel reserves (M7) — plus a dimensionless land-use-change scaling factor G that modulates biotic uptake (Eq. 22.21). Inter-reservoir transport uses first-order exchange coefficients k_ij (Table 22.1), except three nonlinear fluxes carried as auxiliary algebraic variables: the saturating atmosphere-to-biota photosynthetic uptake F15 (Eq. 22.19) and the carbonate-buffer power-law ocean-to-atmosphere outgassing fluxes F21 and F31 (Eq. 22.18). Three external forcing parameters drive the anthropogenic perturbation — fossil fuel emissions Ff, deforestation Fd, and reforestation Fr — all zero by default, recovering the preindustrial (~1850) steady state. The system is an 11-unknown ODE model (8 time-differentiated reservoir states M1-M7,G + 3 algebraic flux states F15/F21/F31) with 11 equations and 25 parameters (22 first-order/derived constants + 3 forcing fluxes). All quantities are SI (kg for mass, s for time); the source material's Pg C (1 Pg = 1e12 kg) and years (1 yr = 31557600 s) are converted to maintain unit consistency. Migrated from AtmosphericDynamics.jl@816cc391 src/global_cycles.jl:115 (`CarbonCycle` @component).
- CEDS
model
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_BC
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_CH4
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_CO
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_CO2
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_N2O
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_NH3
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_NMVOC
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_NOx
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_OC
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- CEDS_SO2
data_source
earthsci_data
CEDS (Community Emissions Data System) global gridded anthropogenic emissions data loader. Provides monthly surface emission fluxes (kg m⁻² s⁻¹) at 0.5° × 0.5° global resolution for 10 species: BC, CH4, CO, CO2, N2O, NH3, NMVOC, NOx, OC, SO2.
- ChapmanMechanism
model
gaschem
stratospheric
Stratospheric Chapman mechanism for ozone production and destruction (Seinfeld & Pandis 2006 Ch. 5, §5.2, Eqs. 5.1-5.17). Two-state ODE on atomic oxygen O and ozone O3 driven by the four canonical Chapman reactions: O2 photolysis (j_O2), three-body recombination O + O2 + M → O3 + M (k2 with power-law T-dependence (T_ref/T)^2.4), O3 photolysis (j_O3), and the O + O3 → 2 O2 odd-oxygen sink (k4 with Arrhenius temperature dependence). Odd oxygen Ox = O + O3 is *not* exactly conserved — the Chapman cycle has a net Ox source (2·j_O2·O2·M from O2 photolysis) balanced against an Ox sink (2·k4·O·O3 from the O+O3 reaction) — but on short timescales (≲ 10 s under default mid-stratosphere conditions) the net change is small (~4e-5 relative drift) and the upstream test treats it as quasi-conserved at rtol=1e-4. Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:51 (`ChapmanMechanism` @component). Rate coefficients carry SI units throughout, converted from Seinfeld & Pandis CGS values via cm^6/molec^2/s × 1e-12 → m^6/s for the 3-body k2 and cm^3/molec/s × 1e-6 → m^3/s for the bimolecular k4.
- Clark1977AnelasticSystem
model
atmospheric_dynamics
clark1977
Complete 3D anelastic atmospheric dynamics system in terrain-following coordinates from Clark (1977), 'A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation', Journal of Computational Physics 24, 186-215. The full nonlinear Clark (1977) model assembled as a hierarchical composition of eight subsystems: the isentropic base state (Eqs. 2.6-2.9), Witch-of-Agnesi mountain topography (Eq. 7.1), the terrain-following coordinate transformation (Eqs. 2.20-2.27), the Smagorinsky turbulence closure (Eqs. 2.15-2.19), the anelastic momentum residuals (Eqs. 2.1-2.3), anelastic mass continuity (Eq. 2.4), anelastic thermodynamics with turbulent heat flux (Eq. 2.14) and the diagnostic pressure equation (Section 4). Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:582 (`Clark1977AnelasticSystem` @component) — a pure subsystem composition (`System(Equation[], t; systems=[...])`, no coupling equations): the eight subsystems are inlined verbatim under `subsystems` (ESS spec §4.7) and remain dynamically independent. Purely algebraic — every subsystem is a diagnostic (observed-only) system with no time derivative. SI units throughout.
- Clark1996ConvectiveFroudeNumber
model
wildland_fire
clark1996
Square of the convective Froude number (Eq. 1, Clark et al., 1996), a diagnostic of fire-atmosphere coupling strength: F_c^2 = (U - S_f)^2 / (g * (Δθ/θ̄) * W_f). Large F_c^2 indicates wind-dominated (weak coupling); small F_c^2 indicates buoyancy-dominated (strong coupling). Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:253 (`Clark1996ConvectiveFroudeNumber` @component). Observed-only: U, S_f, delta_theta_over_theta, W_f are inputs (parameters); F_c_sq is an algebraic output.
- Clark1996FireSpread
model
wildland_fire
clark1996
Coupled atmosphere-fire model for a dry eucalyptus forest implementing the McArthur fire-spread formula and four-fuel-type consumption from Clark et al. (1996). Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:81 (`Clark1996FireSpread` @component). Five ODE states (M_litter, M_trash, M_scrub, M_canopy, Q_cumulative) and seven algebraic state variables (B_ratio, S_f, canopy_burning, ground_burn_rate, total_burn_rate, F_s, F_l). The cumulative ground heat flux Q_cumulative drives an automatic canopy ignition threshold at 170 kJ/m^2 (p. 180, Clark et al. 1996); each ground fuel is gated by an ifelse against eps_fuel so consumption stops cleanly when the pool is depleted.
- Clark1996HeatFluxProfile
model
wildland_fire
clark1996
Vertical profile of fire-induced sensible (F_s) and latent (F_l) heat fluxes via the simple e-folding extinction-depth formulation of Clark et al. (1996), Eq. 10. F_s(z) = F_s_sfc * exp(-z/alpha_ext); F_l(z) = F_l_sfc * exp(-z/alpha_ext) with alpha_ext = 50 m. Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:206 (`Clark1996HeatFluxProfile` @component). Observed-only: z, F_s_sfc, F_l_sfc are inputs (parameters); F_s, F_l are algebraic outputs.
- Clark1996WindProfile
model
wildland_fire
clark1996
Hyperbolic-tangent vertical wind profile used in the FR7CS1 experiment of Clark et al. (1996), Eq. 11. U(z) = 3 - 3*(1 + tanh((z - 500)/100)) m/s — gives U ≈ +3 m/s near the surface, reverses sign at z = 500 m, and is asymptotic to -3 m/s aloft. Migrated from WildlandFire.jl@126976f2 src/clark1996.jl:299 (`Clark1996WindProfile` @component). Observed-only: z is the input (parameter); U_z is an algebraic output.
- ClassicalNucleationRate
model
aerosol
nucleation
Simplified single-component classical nucleation rate (Eq. 11.47) from Seinfeld & Pandis (2006), Chapter 11. Computes only the steady-state nucleation rate J from the Zeldovich pre-exponential factor and the free-energy-barrier exponential. Use this component when the critical-cluster properties (i*, r*, ΔG*) are not needed; see the Nucleation component for the full coupled system.
- ClimateFeedback
model
gaschem
climate
Climate-feedback diagnostic (Seinfeld & Pandis 2006 Ch. 23 §23.4 Eqs. 23.1-23.4 and Eq. 23.7 p. 1045) — the linear-response relation between a top-of-atmosphere radiative forcing perturbation ΔF and the equilibrium surface temperature change ΔT_s through the feedback-amplified climate sensitivity λ. Six observed-only algebraic equations on six state variables (ΔT_s the feedback-amplified equilibrium response, ΔT_0 the no-feedback Planck response, λ_0 the no-feedback sensitivity factor, ΔF_e the efficacy-weighted effective forcing, ΔF_r the forcing equivalent of realized warming, ΔT_unrealized the warming commitment) driven by five input parameters (ΔF the forcing perturbation, λ the feedback-amplified sensitivity, λ_CO2 the CO₂-doubling sensitivity reference, E_i the efficacy of the forcing agent, ΔT_r the realized warming to date) and two reference constants (ΔF_2xCO2 the CO₂-doubling radiative forcing, ΔT0_2xCO2 the no-feedback temperature change for CO₂ doubling). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/climate_forcing.jl:32 (`ClimateFeedback` @component). The component extends the no-feedback Planck response of the sibling `ClimateSensitivity` model (components/gaschem/radiation/climate_sensitivity.esm, S&P §4.2 Eqs. 4.8-4.10) by introducing the feedback-amplified sensitivity factor λ and the warming-commitment relation ΔT_unrealized = (ΔF - ΔF_r)·λ that captures the lag between achieved (ΔT_r) and equilibrium (ΔT_s) warming under a non-zero forcing perturbation. At Earth's nominal 2×CO₂ forcing ΔF = 3.7 W/m² and λ = 0.8 K·m²/W (IPCC AR4 central estimate), the component reproduces the textbook canonical ΔT_s ≈ 2.96 K equilibrium warming (S&P Page 1040), λ_0 ≈ 0.338 K·m²/W no-feedback Planck response, and ΔT_unrealized ≈ 0.49 K warming commitment for the present-day p. 1045 scenario (λ = 0.7, ΔF = 1.7, ΔT_r = 0.7).
- ClimateSensitivity
model
gaschem
radiation
Climate-sensitivity diagnostic (Seinfeld & Pandis 2006 Ch. 4, Eqs. 4.8-4.10) — the linear-response relation between a top-of-atmosphere radiative-forcing perturbation ΔF_net and the resulting change in planetary equilibrium temperature ΔT_e through the no-feedback climate-sensitivity factor λ_0 = 1 / (4·σ·T_e^3) = T_e / (4·F_L). The component is observed-only: four algebraic equations on four state variables (ΔF_net the net forcing, λ_0 the sensitivity factor, ΔT_e the temperature response, F_L the reference longwave flux) driven by three input parameters (T_e the reference equilibrium temperature, ΔF_S the forcing-side perturbation, ΔF_L the longwave-side perturbation) and one constant (σ the Stefan-Boltzmann constant). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:268 (`ClimateSensitivity` @component). The blackbody reference state (F_L = σ·T_e^4) and the analytic differentiation of Stefan-Boltzmann (dF_L/dT_e = 4·σ·T_e^3 → λ_0 = 1 / (4·σ·T_e^3)) together encode the no-feedback Planck response — the only baseline against which feedback-amplified climate sensitivities (water vapor, lapse rate, albedo, cloud) are conventionally reported in IPCC assessments. At Earth's nominal T_e = 255 K the component reproduces the textbook λ_0 ≈ 0.27 K·m^2/W and a CO2-doubling ΔT_e ≈ 1.22 K (S&P Page 105) using a forcing-doubling estimate of 4.6 W/m^2.
- CLMUAtmosphere
model
urban_canopy
Atmospheric interface for the Community Land Model Urban (CLMU) parameterization, following Chapter 1 of Oleson et al. (2010). Computes three diagnostic outputs from atmospheric forcing inputs: atmospheric vapor pressure (e_atm = q_atm P_atm / (epsilon + (1-epsilon) q_atm)), atmospheric air density (rho_atm = (P_atm - (1-epsilon) e_atm) / (R_da T_atm)), and the reference height for flux computations (z_atm = z_prime_atm + z_0 + z_d). Here epsilon = MW_wv/MW_da = 0.622 is the molecular-weight ratio of water vapor to dry air, and R_da = R_gas/MW_da is the specific gas constant for dry air. The urban canyon is represented as a roof + sunlit/shaded wall + pervious/impervious road five-column system; this component defines the atmospheric forcing interface that the rest of the canopy column reads. Migrated from UrbanCanopy.jl@9200edd4 src/clmu_introduction.jl:22 (`CLMUAtmosphere` @component). Parameterized as observed-only: forcings (q_atm, P_atm, T_atm, z_prime_atm, z_0, z_d, etc.) are inputs (parameters); e_atm, rho_atm, z_atm are the algebraic state outputs.
- CloudAlbedo
model
aerosol
radiative_forcing
Cloud albedo from two-stream approximation — Seinfeld & Pandis (2006) Ch. 24 §24.8.1, Eqs. 24.37–24.38.
- CloudAlbedoSensitivity
model
aerosol
radiative_forcing
Sensitivity of cloud albedo to cloud droplet number concentration (Twomey susceptibility) — Seinfeld & Pandis (2006) Ch. 24 §24.8.2, Eqs. 24.40–24.41.
- CloudChemistry
model
aerosol
cloud_chemistry
Full cloud chemistry system with pH computed from the electroneutrality condition — Seinfeld & Pandis (2006), Ch. 7. The model composes AqueousEquilibria (quadratic charge-balance H⁺ from dissolved CO2, SO2, NH3, HNO3, H2O2, and O3 equilibria) with SulfateFormation (S(IV) oxidation kinetics via O3, H2O2, and Fe/Mn pathways). Unlike CloudChemistryFixedpH, which prescribes H⁺ from an external pH_input, this model self-consistently solves for the cloud-water pH from the trace-gas composition. Migrated from Aerosol.jl@c8c640bb src/cloud_chemistry.jl:73.
- CloudChemistryFixedpH
model
aerosol
cloud_chemistry
Simplified cloud chemistry system with pH as an externally prescribed input parameter — Seinfeld & Pandis (2006), Ch. 7. Instead of computing pH from the electroneutrality condition (as in the full CloudChemistry model), this variant takes pH_input as an input and derives H_plus = C_ref × 10^(-pH_input). This is useful for sensitivity studies that vary pH, for cases where unmeasured ions affect pH, or for quick calculations that bypass the full equilibrium solve. The model composes seven aqueous-equilibrium subsystems (WaterEquilibrium, CO2Equilibria, SO2Equilibria, NH3Equilibria, HNO3Equilibria, H2O2Equilibria, O3Equilibria) and the SulfateFormation oxidation kinetics module (O3, H2O2, and Fe/Mn-synergism pathways). All equilibria use van't Hoff temperature dependence from Table 7.4. Migrated from Aerosol.jl@c8c640bb src/cloud_chemistry.jl:269.
- CloudChemistryODE
model
aerosol
cloud_chemistry
Dynamic cloud droplet chemistry: time evolution of sulfate concentration as S(IV) is oxidized to S(VI) via O3, H2O2, and Fe/Mn-catalyzed pathways (Seinfeld & Pandis 2006, Chapter 7, Eqs. 7.79-7.102). Gas-liquid equilibria (SO2, H2O2, O3) are assumed instantaneous; the sulfate ODE tracks the kinetic accumulation. Migrated from Aerosol.jl src/cloud_chemistry.jl:422.
- CloudDynamics
model
aerosol
cloud_physics
Adiabatic cooling and cloud-base thermodynamics — Seinfeld & Pandis (2006), Ch. 17. Computes five purely-algebraic quantities that characterize when and where a lifted air parcel reaches its lifting condensation level (LCL): the dry adiabatic lapse rate Γ_d, the saturation vapor pressure p_sat (Magnus formula), the saturation mixing ratio w_vs, the dew-point temperature T_d (Eq. 17.43), and the LCL height h_LCL (Eq. 17.49). Migrated from Aerosol.jl CloudDynamics.
- CloudIceUptakeLimitation
model
atmospheric_deposition
luo2023
Cloud ice uptake limitation on cold-cloud wet scavenging from Luo & Yu (2023), Eqs. 12-15. In cold clouds, water-soluble aerosols are captured by ice crystals via coagulation and then removed by precipitation; this component computes the cold-cloud rainout efficiency F_I from ice-crystal properties, turbulence, grid geometry, and temperature. The cloud ice uptake rate R_U is approximated by the HNO3 uptake rate of Jacob (2000) (Eq. 14); the temperature-dependent uptake efficiency gamma follows Hudson et al. (2002) (Eq. 15: gamma = 0.003 at T >= 220 K rising linearly to 0.007 at T <= 209 K); the cloudy-air refreshing rate Ki comes from turbulence kinetic energy and grid spacing (Eq. 11); the air-refreshing limited uptake rate R_AU applies the Eq. 2 refreshing-limit structure to R_U (Eq. 13); and F_I = 1 - exp(-R_AU*dt) (Eq. 12). Migrated from AtmosphericDeposition.jl@e4468c79 src/luo2023.jl:260 (`CloudIceUptakeLimitation` @component). Observed-only: the 5 equations are algebraic, so gamma, R_U, Ki, R_AU, F_I are the algebraic outputs while the 12 ice/turbulence/grid inputs and 9 module constants are parameters.
- CloudKelvinEffect
model
aerosol
cloud_physics
Kelvin effect on the equilibrium vapor pressure over a curved cloud droplet surface — Seinfeld & Pandis (2006), Ch. 17. Computes the Kelvin length parameter A_K = 4 σ_w M_w / (R T ρ_w) and the Kelvin saturation ratio S_K = exp(A_K / D_p), the factor by which surface curvature enhances equilibrium vapor pressure over a small droplet relative to a flat surface. Used as the curvature term in the Köhler equation (Eq. 17.27). Migrated from Aerosol.jl CloudKelvinEffect.
- CloudOpticalDepth
model
aerosol
radiative_forcing
Cloud optical depth from liquid water content and droplet number concentration — Seinfeld & Pandis (2006) Ch. 24 §24.8.1, Eq. 24.36.
- CloudPhysics
model
aerosol
cloud_physics
Composed cloud microphysics model (Seinfeld & Pandis 2006, Ch. 17). Flat composition of CloudDynamics (adiabatic thermodynamics, LCL height), IcePhysics (freezing point depression, ice nuclei), RainFormation (collision-coalescence, raindrop spectra), and AerosolScavenging (scavenging ratios and coefficient). Shared physical constants M_w and R unify CloudDynamics and IcePhysics. Ice particle diameter (D_p_ice) and collector drop diameter (D_p_rain) are kept as independent parameters. Migrated from Aerosol.jl src/cloud_physics.jl:735 (esm-c8z).
- CloudWaterProperties
model
aerosol
cloud_physics
Thermodynamic properties of water and aqueous solutions for cloud-physics calculations: temperature offset, specific heat of liquid water, latent heats of vaporization and melting, surface tension, and saturation vapor pressure over water and ice. Based on Seinfeld & Pandis (2006), Chapter 17, Equations 17.1–17.6 and Table 17.2. Migrated from Aerosol.jl src/cloud_physics.jl:15.
- ClOxCycle
model
gaschem
stratospheric
Stratospheric ClOx catalytic ozone destruction cycle (Seinfeld & Pandis 2006, Ch. 5 §5.5.1). Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:272 (`ClOxCycle` @component). Implements 4 ODEs (Cl, ClO, HCl, ClONO2) coupled to 2 algebraic family sums (ClOx = Cl + ClO, Cly = Cl + ClO + HCl + ClONO2). Rate coefficients are Arrhenius (k = A·exp(C/T)) for the five binary reactions and a (T_ref/T)^3.4 form for the termolecular ClO + NO2 + M → ClONO2 channel. All upstream `@constants` are encoded as parameters with their literal SI defaults; physical-condition `@parameters` (T, M, photolysis rates, fixed-bath species O, O3, NO, NO2, OH, CH4) are also parameters so the cycle can be exercised at different atmospheric conditions.
- CO2Equilibria
model
aerosol
aq_eq
CO2 dissolution and dissociation equilibria with van't Hoff temperature dependence (Seinfeld & Pandis Ch 7 §7.3.2, Eqs 7.14–7.24). Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:140 (`CO2Equilibria` @component). Parameterized as observed-only: T, H_plus, p_CO2 are inputs and the carbonate-system species (CO2_aq, HCO3-, CO3^2-, total dissolved C, effective Henry constant) are algebraic outputs.
- constant_k
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- constant_k_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- COOxidation
model
gaschem
co_oxidation
CO oxidation chemistry diagnostics from Seinfeld & Pandis (2006) Ch. 6 §6.3 Eqs. 6.9-6.18, pp. 212-219. CO oxidation is the simplest hydrocarbon-oxidation mechanism and illustrates the catalytic HOx cycling that drives tropospheric ozone production (net: CO + 2O₂ + hν → CO₂ + O₃, with OH regenerated through HO₂ + NO). This observed-only algebraic component implements six diagnostic relations: the OH loss rate L_OH (to CO, NO₂, O₃), the HO₂ loss rate L_HO2 (to NO, the HO₂ self-reaction, and O₃), the HOx radical-termination loss rate L_HOx (OH+NO₂→HNO₃ plus the HO₂ self-reaction), the high-NOx HO₂ steady-state concentration HO2_ss (Eq. 6.18), the net ozone production rate P_O3 (HO₂+NO production minus the OH+O₃ and HO₂+O₃ loss channels), and the HOx chain length (propagation rate over termination rate — the number of OH-HO₂ cycles before radical termination). Observed-only algebraic system (no time derivatives): twelve variables (six inputs CO/OH/HO₂/NO/NO₂/O₃ encoded as parameters, six outputs L_OH/L_HO2/L_HOx/HO2_ss/P_O3/chain_length as state), six rate-constant parameters (k_CO_OH, k_HO2_NO, k_HO2_HO2, k_OH_NO2, k_HO2_O3, k_OH_O3), one dimensionless stoichiometric constant (two), and six algebraic equations. Migrated from GasChem.jl@8c12c048 src/co_oxidation.jl:88 (`COOxidation` @component).
- CriticalCluster
model
aerosol
nucleation
Critical cluster properties for classical homogeneous nucleation theory following Seinfeld & Pandis (2006), Chapter 11, Equations 11.27, 11.35, 11.52, and 11.53. Computes the dimensionless surface tension parameter (theta), critical cluster size (i*), critical radius (r*), and free energy barrier (ΔG*) as purely algebraic functions of temperature, saturation ratio, surface tension, and molecular volume. Use this component for parameter sensitivity studies or when the full nucleation rate (ClassicalNucleationRate) is not needed.
- CriticalSingleScatteringAlbedo
model
aerosol
radiative_forcing
Critical single-scattering albedo at which an aerosol layer transitions from cooling to heating — Seinfeld & Pandis (2006) Ch. 24 §24.2, Eq. 24.15.
- Dahneke
model
aerosol
mass_transfer
Dahneke transition-regime correction factor f_D for gas-particle mass transfer. f_D is the ratio J/J_c of the actual particle-surface flux to the continuum-regime flux (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.42): f_D = (1 + Kn) / (1 + 2 Kn(1 + Kn) / α). In the continuum limit (Kn ≪ 1) f_D → 1, recovering J_c with no correction; in the free-molecular limit (Kn ≫ 1) f_D ≈ α / (2 Kn) → 0, reflecting strong reduction in flux for very small particles or very long mean free paths. Migrated from Aerosol.jl src/mass_transfer.jl `Dahneke`.
- DahnekeCapillaryPenetration
model
aerosol
dahneke
Parameters for aerosol penetration through a fine capillary tube via convective diffusion (Dahneke 1983, Section 9). Computes the velocity-profile normalization factor σ and the dimensionless tube length z' = DL/(σv̄R²) from which the penetration fraction ϕ(z') = Σ B_i exp(−ω_i² z') can be evaluated using the tabulated eigenvalues in Tables 3–5 of the reference. Migrated from Aerosol.jl src/dahneke_brownian_diffusion.jl:372.
- DahnekeCoagulationRate
model
aerosol
dahneke
Transition-regime Brownian coagulation rate constant K for two aerosol particle species using the Dahneke (1983) non-continuum correction formula (Eqs. 8.8, 8.13, 8.15). Computes particle masses, Stokes friction coefficients, Einstein diffusion coefficients, mean thermal velocities, mutual transport quantities, collision radius, diffusion Knudsen number Kn_D, continuum-limit coagulation constant K_o, and the Dahneke non-continuum correction β₂ as intermediate observed variables before assembling K. Migrated from Aerosol.jl src/dahneke_brownian_diffusion.jl:235.
- DahnekeCondensationEvaporation
model
aerosol
dahneke
Transition-regime condensation/evaporation model coupling mass and heat transfer via Dahneke (1983) correction factors β and β_q. Inlines DahnekeMassTransportCorrection (Eqs. 6.2, 3.6, 5.5) and DahnekeHeatTransportCorrection (Eq. 5.7) subsystems and adds the Maxwell flux equations (Eqs. 2.1–2.2) and Dahneke-corrected rates (Eqs. 5.4, 5.6). Migrated from Aerosol.jl src/dahneke_brownian_diffusion.jl:157.
- DahnekeHeatTransportCorrection
model
aerosol
dahneke
Correction factor β_q for heat conduction to a sphere, valid across all Knudsen numbers from the continuum to the free-molecular regime. Exactly parallel to the Dahneke mass transport correction. Computes the heat transfer Knudsen number Kn_K = 2κ/(c̄'n'_gas m_gas c_v r) and the correction factor β_q = (Kn_K+1)/(2Kn_K(Kn_K+1)/α+1). Migrated from Aerosol.jl src/dahneke_brownian_diffusion.jl:93.
- DahnekeMassTransportCorrection
model
aerosol
dahneke
Correction factor β for diffusional mass transport to a sphere, valid across all Knudsen numbers from the continuum to the free-molecular regime (Dahneke 1983, Eq. 5.5). Computes the mean thermal velocity c̄, diffusional mean-free-path ℓ_D, diffusion Knudsen number Kn_D, and the correction factor β = (Kn_D+1)/(2Kn_D(Kn_D+1)/δ_m+1) as purely algebraic observed variables. Migrated from Aerosol.jl src/dahneke_brownian_diffusion.jl:33.
- DesertAerosol
model
aerosol
size
ModelingToolkit implementation of the Desert atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Desert distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [726, 114, 0.178] cm^-3, D_g = [0.002, 0.038, 21.60] um, log10 sigma = [0.247, 0.770, 0.438]) — two fine modes plus a coarse mineral-dust mode at 21.6 um. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl DesertAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Desert Table 8.3 mode parameters as defaults.
- DiagnosticPressure
model
atmospheric_dynamics
clark1977
Diagnostic pressure equation for the anelastic atmosphere in terrain-following coordinates, from Clark (1977) "A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation", Section 4. Observed-only algebraic component: from the pressure-gradient-force divergences, the pressure-perturbation Laplacian terms, and a momentum-divergence source it computes the pressure-gradient-force divergence div_PF (with the terrain-following Jacobian factor G^(1/2) scaling the vertical term), the pressure Laplacian laplacian_p, and the diagnostic pressure equation residual pressure_residual (Eq. 4.2), which vanishes when the anelastic mass-continuity constraint is satisfied. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:499 (`DiagnosticPressure` @component); the upstream @constant g is declared as a fixed-default parameter.
- DiameterGrowthRate
model
aerosol
dynamics
Diameter growth rate due to vapor condensation in the continuum regime (Seinfeld & Pandis 2006, Ch. 13, Eq. 13.11-13.13). Algebraic growth parameter A = 4·D_diff·M_i·Δp / (R_gas·T·ρ_p), algebraic growth rate I_D = A/D_p, ODE D(D_p) = I_D. Source: Aerosol.jl@c8c640bb:src/dynamics.jl:22.
- DiscreteCoagulation
model
aerosol
dynamics
5-bin discrete coagulation model for a monodisperse initial distribution with constant coagulation coefficient (Seinfeld & Pandis 2006, Ch. 13, Eqs. 13.59, 13.67, 13.71). Tracks the evolution of five k-mer bins (N1..N5) under Brownian coagulation. Source: Aerosol.jl@c8c640bb:src/dynamics.jl:221 (n_bins=5 instantiation, esm-isv).
- DRHTemperature
model
aerosol
sp_ch10
Temperature-dependent deliquescence relative humidity (DRH) of a crystalline inorganic salt — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 10, Equation 10.72. DRH is the relative humidity at which a crystalline salt spontaneously absorbs water and forms a saturated aqueous solution; it shifts away from its 298 K reference value with temperature according to the salt's enthalpy of solution and its solubility-vs-temperature polynomial. Migrated from Aerosol.jl DRHTemperature at the upstream default parameterization salt = :NH4NO3.
- DropletGrowth
model
aerosol
cloud_physics
Diffusional growth rate of a cloud droplet by condensation of water vapor. Accounts for vapor-phase diffusion (D_v), the kinetic correction to the diffusivity (D_v'), thermal conductivity of air (k_a and k_a'), and the curvature + solute (Köhler) contributions to the equilibrium saturation ratio S_eq over the droplet surface. Output is the droplet-diameter growth rate dD_p/dt (m/s) from Seinfeld & Pandis (2006) Eq. 17.70. Source: Aerosol.jl@c8c640bb src/cloud_physics.jl:322 (mtk2esm-scaffolded, mdl-43a).
- DropletMassBalance
model
aerosol
transport
Coupled gas-phase and aqueous-phase mass balance for cloud droplet chemistry. Tracks the time evolution of bulk gas-phase partial pressure and aqueous-phase concentration, including gas-to-aqueous mass transfer and aqueous-phase chemical reaction (Seinfeld & Pandis 2006, Ch. 12, Eqs. 12.122-12.123). Migrated from Aerosol.jl src/aqueous_transport.jl:112.
- DryDepositionAerosol
model
atmospheric_deposition
ModelingToolkit implementation of particle (aerosol) dry deposition from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition), Eq. 19.7. Computes the particle dry deposition velocity v [m/s] for a single aerosol size and the corresponding first-order deposition rate k = v/z [1/s], as a resistance network: v = 1/(R_a + R_b + R_a*R_b*V_s) + V_s, where R_a is the aerodynamic resistance (Eqs. 19.13-19.14), R_b is the quasi-laminar sublayer resistance (Eq. 19.27), and V_s is the gravitational settling velocity (Eq. 9.42). R_b combines Brownian diffusion (Schmidt number), inertial impaction (Stokes number) and interception, with land-use-dependent collector geometry from the Seinfeld & Pandis Table 19.2 characteristic-radius table. Migrated from AtmosphericDeposition.jl@e4468c79 src/dry_deposition.jl:1040 (the DryDepositionAerosol builder); its DryDepParticle kernel (src/dry_deposition.jl:272) and the whole helper chain (ra, mu, mfp, cc, vs, dParticle, sc, stSmooth/stVeg, RbParticle) are inlined. Purely algebraic: no differential states -- the 27 computed quantities are observed variables defined by inline expressions.
- DryDepositionGas
model
atmospheric_deposition
Wesley (1989) gas-phase dry deposition model. Computes dry deposition velocities v_* [m/s] and rates k_* [1/s] for 132 atmospheric trace gas species. Each species is characterized by its GasData (Dh2oPerDx, Hstar, Fo) constants from Wesely (1989) Table 2 and extended GEOS-Chem species data. The deposition velocity v_i = ifelse(lev==1,1,0) / (Ra + Rb_i + Rc_i) where Ra is the aerodynamic resistance (shared), Rb_i = 5*Sc_i^(2/3)/u_star is the quasi-laminar sublayer resistance, and Rc_i is the Wesley (1989) surface resistance computed inline with species constants substituted. Rain and dew are hardcoded false in the upstream DryDepositionGas builder. Migrated from AtmosphericDeposition.jl@e4468c79 src/dry_deposition.jl:323.
- DryDepositionGas
model
atmospheric_deposition
sp_ch19
ModelingToolkit implementation of the complete gas dry-deposition velocity model from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition), Eq. 19.2 (deposition velocity) and Eq. 19.1 (deposition flux). The gas dry-deposition velocity follows the resistance-in-series model: a depositing gas crosses three resistances stacked in series between the reference height and the surface -- the aerodynamic resistance r_a (turbulent transport through the surface layer, Eq. 19.14), the quasi-laminar resistance r_b (molecular diffusion across the thin stagnant sublayer in contact with the surface, Eq. 19.17), and the surface resistance r_c (uptake by the canopy along four parallel pathways, Wesely 1989, Eq. 19.50). The deposition velocity is the reciprocal of their sum, v_d = 1/(r_a + r_b + r_c), and the downward deposition flux is F = -v_d*C for a gas concentration C at the reference height. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:416 (`DryDepositionGas` @component), which composes three MTK subsystems via `System(eqs, t; systems=[aero, qlam, surf])` plus its own coupling equations. Represented here as a subsystem-composed ESS model (spec section 4.7): the `aero` subsystem inlines the already-migrated AerodynamicResistance component (aerodynamic_resistance.esm, esm-x8pg), `qlam` inlines QuasiLaminarResistanceGas (quasi_laminar_gas.esm, esm-t3wp), and `surf` inlines SurfaceResistance (surface_resistance.esm, esm-ug1i), wired together by seven top-level coupling equations. Algebraic (no time derivative): u_star, C, G and T_s are input parameters; r_t, v_d and F are algebraic state outputs.
- DryDepositionParticle
model
atmospheric_deposition
sp_ch19
Composite particle dry-deposition model from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition). Given the surface-layer friction velocity and an aerosol particle's properties it computes the particle dry deposition velocity v_d (Eq. 19.7) and the resulting downward deposition flux F (Eq. 19.1). Eq. 19.7, v_d = 1/(r_a + r_b + r_a*r_b*v_s) + v_s, combines the resistance-network pathway -- turbulent transport through the aerodynamic resistance r_a and the quasi-laminar boundary-layer resistance r_b, with the r_a*r_b*v_s cross term capturing gravitational settling acting inside the resistance network -- with a direct gravitational-settling term v_s; the flux F = -v_d*C (Eq. 19.1) is negative for downward transport. The competition between Brownian diffusion (efficient for sub-0.1 um particles) and inertial impaction (efficient for super-um particles) leaves a deposition-velocity minimum at accumulation-mode sizes. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:479 (the DryDepositionParticle @component), which composes three MTK subsystems via System(eqs, t; systems=[aero, settling, qlam]). Represented here as a subsystem-composed ESS model (spec §4.7): the aero subsystem inlines the already-migrated AerodynamicResistance component (aerodynamic_resistance.esm, esm-x8pg), settling inlines ParticleSettling (particle_settling.esm, esm-egwt) and qlam inlines QuasiLaminarResistanceParticle (quasi_laminar_particle.esm, esm-brbr), wired by six top-level coupling equations. Purely algebraic (no D() time-derivative anywhere): u_star and C are input parameters; v_d and F are algebraic state outputs.
- DudhiaSW
model
atmospheric_radiation
dudhia_sw
The Dudhia (1989) shortwave radiation scheme of WRF (ra_sw_physics = 1, SUBROUTINE SWPARA of phys/module_ra_sw.F, WRF 4.8) as a single-column component on the EarthSciDiscretizations grids/column_nonuniform_1d grid (layer index `lev`, layer 1 at the surface; interface index `lev_nodes`, interface 1 the surface, interface NLEV+1 the top of the atmosphere). The scheme is a single downward pass of the direct solar beam S(z) that is depleted by four processes: absorption by water vapour, absorption by cloud, reflection by cloud, and Rayleigh/aerosol scattering. The first three are functions of CUMULATIVE slant paths from the top of the atmosphere, written here as the integrals W(z) = int_z^top rho q_l,eff dz (effective liquid water path, q_l,eff = qc + 0.1 qi + 0.05 qr + 0.02 qs + 0.05 qg) and U(z) = int_z^top rho qv dz (water-vapour path), lowered by the grid's integral_lev_nodes_cumulative_to_top rule: the vapour absorptance A_v(U/mu) is the Lacis-Hansen (1974) fit, the cloud reflectance R_c(mu, alw) and absorptance A_c(mu, alw) are Stephens (1978) tables in alw = log10(W/(mu 1 g/m^2) + 1), and a layer's fractional contribution is the downward increment of each cumulative function across the layer (SWPARA: TOTABS-OLDABS, ALBA-OLDALB, ABSC-OLDABC, clamped at 0). Scattering is a per-layer fraction cssca rho dz / mu. The beam itself is a genuinely sequential sweep, because SWPARA applies each layer's fraction not to S but to partial beams -- vapour absorption to the beam depleted only by cloud and scattering, cloud reflection and absorption to the beam depleted only by scattering and vapour -- which SWPARA bookkeeps with the running sums DABS, DSCLD, DSCA of the raw (unrenormalised) layer fluxes. The beam S and the two partial beams P_vap = SDOWN(1) - DSCLD - DSCA and P_cld = SDOWN(1) - DSCA - DABS are carried as three interleaved cells of ONE causal recurrence V_sweep (esm-spec 4.3.1.1), each step reading the previous triple at a fixed lag; one recurrence because the format forbids an edge between two distinct recurrence variables. The sweep runs top-down, i.e. against the lev index, and a recurrence folds only ascending, so the sweep variables live on the reversed index sets lev_down / lev_down_nodes / sweep (m = 1 the top layer, n = 1 the top of the atmosphere) and are mapped back by the reversal templates; all physics fields stay on lev / lev_nodes (lev_down: m = 1 the top layer, lev = NLEV + 1 - m; lev_down_nodes: n = 1 the top of the atmosphere, lev_nodes = NLEV + 2 - n; layer m lies between nodes m and m + 1). The heating rate is the applied (renormalised) vapour plus cloud absorption of each layer per unit volume, q_abs, divided by rho cp (SWPARA TTEN); the reflected and scattered parts leave the column without heating it, exactly as in SWPARA, and the surface absorbs (1 - albedo) S(surface). The theta tendency is dT/dt divided by the Exner function (SWRAD: RTHRATEN = RTHRATEN + TTEN1D/PI3D). Night: SWPARA returns all-zero when cos(zenith) <= 1e-9 or the top-of-atmosphere irradiance <= 1e-9 W/m^2; here the sweep is evaluated with the formal value mu = 1 at night (a near-zero mu would overflow the 1/mu slant paths) and the outputs gsw, dT/dt, dtheta/dt carry the factor `daylight`, so a night column yields exactly zero heating and surface flux while the internals are formal. Transcribed guards: negative increments clipped to 0, the table argument clamp alw_max, the renormalisation of a layer whose raw depletion exceeds 1 - tau_min (ff, tau; TRANS0 < 1: FF = 99/(...)), and the beam floor S_min (SDOWN = AMAX1(1.E-9, ...)). Not transcribed: the slope-dependent radiation option (slope_rad and its shadow correction of the surface flux) and the WRF-Chem aerosol optical depth terms (aer_dry1, aer_water1, zero without chemistry; the aerosol absorption XABSA is identically 0 in SWPARA). Reference tests: WRF v4.8.0 em_scm_xy single-column dumps from the instrumented fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e), replayed through that commit's real64 (-fdefault-real-8) standalone kernels/sw_driver; tolerances documented per test.
- DudhiaSWParameters
model
atmospheric_radiation
dudhia_sw
Scheme constants of the Dudhia (1989) shortwave radiation scheme, transcribed from the in-line literals of SUBROUTINE SWPARA in phys/module_ra_sw.F (WRF 4.8). Mounted by the DudhiaSW component as subsystem `par` so that no tuning constant is written inline in the physics. The clear-sky scattering coefficient (namelist swrad_scat, stored by swinit as cssca = swrad_scat * 1e-5 m^2/kg) is a run-time namelist choice and therefore a parameter of the component itself, not of this table. Values are the nominal decimal values of the Fortran source; the real64 kernel build used for the reference tests promotes these default-real literals to binary64 (-fdefault-real-8), so no single-precision rounding note applies here.
- DynamicFuelLoadTransfer
model
wildland_fire
rothermel
Dynamic fuel load transfer from live herbaceous to dead herbaceous fuel based on live-herbaceous fuel moisture, per Andrews (2018) Table 6c. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:320 (`DynamicFuelLoadTransfer` @component). Observed-only: w0_live_herb and Mf_live_herb are inputs (parameters); T_fraction, w0_dead_herb, and w0_live_herb_remaining are algebraic outputs.
- ECTracerMethod
model
aerosol
organic
Elemental carbon (EC) tracer method for estimating secondary organic carbon (OC) from measurements of total OC and EC. Primary OC is estimated as combustion-related OC (proportional to EC via the OC-to-EC ratio) plus noncombustion OC; secondary OC is the non-negative remainder. From Seinfeld and Pandis (2006), Chapter 14, Section 14.3.2, Equations 14.3–14.4.
- EDGAR_v81
data_source
earthsci_data
EDGAR v8.1 monthly global air pollutant emissions data loader. Provides surface-layer volumetric emission rate (kg m⁻³ s⁻¹) for lev < 2 (first vertical layer), and zero above. Configured per substance (species) and emission sector at instantiation time via {species} and {sector} URL template substitutions.
- EDGARv81MonthlyEmis
model
earthsci_data
EDGAR v8.1 monthly global air pollutant emissions data loader. Provides surface-layer volumetric emission rate (kg m⁻³ s⁻¹) for lev < 2 (first vertical layer), and zero above. Configured per substance (species) and emission sector at instantiation time via {species} and {sector} URL template substitutions.
- EffectiveHenrysLaw
model
aerosol
henrys_law
Effective Henry's law constant for species that dissociate in water, accounting for the enhancement due to aqueous dissociation products. The effective constant H* exceeds the intrinsic H because dissolved dissociation products add to the total aqueous loading. Covers diprotic species (CO₂, SO₂) and monoprotic species (HNO₃, K₂=0). From Seinfeld & Pandis Chapter 7, Equations 7.24 (CO₂), 7.41 (SO₂), 7.61 (HNO₃).
- EffectiveMidflameWindSpeed
model
wildland_fire
rothermel
Effective midflame wind speed UE — combines the actual wind factor and slope factor into an equivalent wind speed for fire-behavior calculations. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:410 (`EffectiveMidflameWindSpeed` @component). Observed-only: C_coeff, B_coeff, E_coeff, beta_ratio, phi_w, phi_s are inputs (parameters); phi_E (combined wind+slope factor) and UE (effective midflame wind speed in m/s) are algebraic outputs. Implements Eq. UE, Table 7, Andrews (2018) RMRS-GTR-371.
- ElectricalMobility
model
aerosol
particle_dyn
Electrical mobility and migration velocity for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:273 (`ElectricalMobility` @component). Computes the particle charge q, the electrical mobility B_e relating particle velocity to electric-field strength, and the electrical migration velocity v_e of a charged particle in an electric field (Seinfeld & Pandis 2006, Chapter 9, Eqs. 9.49, 9.50 and 9.51).
- ElementalCarbon
model
aerosol
A holder for elemental carbon (EC) concentrations in the atmosphere. By default it does not include any dynamics — EC is treated as a conserved tracer whose concentration is set as an initial condition and carried forward unchanged. The model carries particle physical properties (density, diameter, temperature, pressure) so that coupled models (e.g. Mie scattering, mass transfer) can access them through the shared system. Particle density default from Fierce et al. (2023).
- EllipticalFireSpread
model
wildland_fire
spread_direction
Fire spread from a single ignition point assuming an elliptical fire shape — calculates eccentricity, spread rate in arbitrary direction, backing fire spread, fire length and width, flanking distance, and ellipse geometric parameters (semi-major axis, focus offset, semi-minor axis). Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fire_spread_direction.jl:174 (`EllipticalFireSpread` @component). Algebraic-only: R_H, Z, γ, elapsed_time are inputs (parameters); e, R_γ, R_B, D_H, D_B, L, W, D_F, f, g, h are algebraic outputs.
- EnergyReleaseComponent
model
wildland_fire
nfdrs
NFDRS Energy Release Component (ERC) - potential energy release per unit area in a burning fuel bed (BTU/ft^2)
- eq_const
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- eq_const_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- EqConst
model
aerosol
isorropia
Equilibrium constant parameterized by Equation 5 of Fountoukis and Nenes (2007): log K(T) = log K(T0) + H_coeff*(T0/T - 1) + C_coeff*(1 + ln(T0/T) - T0/T), where T0 = 298.15 K. Migrated from Aerosol.jl@c8c640bb src/isorropia/equilibria.jl:5 (`EqConst` @component). Parameters logK0, H_coeff, and C_coeff are reaction-specific values from Table 2 of Fountoukis and Nenes (2007). T is an input (driven by parent EquilibriumConstants in the coupled system); logK_eq is an algebraically observed output.
- EquilibriumConstants
model
aerosol
isorropia
Aggregated equilibrium constants for ISORROPIA II. Composes 27 EqConst sub-components (r1...r27) from Table 2 of Fountoukis and Nenes (2007). Each ri.logK_eq(T) = logK0_i + H_i*(T0/T-1) + C_i*(1+ln(T0/T)-T0/T). A single T is broadcast to all subsystems via coupling equations. Migrated from Aerosol.jl@c8c640bb src/isorropia/equilibria.jl:22 (esm-y4v).
- EquilibriumMoistureContent
model
wildland_fire
nfdrs
Equilibrium moisture content (EMC) of dead fuels as a function of temperature and relative humidity per the NFDRS (Cohen & Deeming 1985), page 1, Eqs. 1a/1b/1c. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:79 (`EquilibriumMoistureContent` @component). Observed-only: TEMP and RH are inputs (parameters); EMC is the algebraic output.
- ERA5
model
earthsci_data
ERA5 SINGLE-LEVEL (surface) regridding model — the coupler half of the era5 single-level loader+regridding-model split. Exposes ERA5 near-surface fields — 10 m wind (u10, v10), 2 m temperature (t2m), 2 m dewpoint (d2m) — on the simulation's target grid for coupling into EarthSciML systems. This is the single-level counterpart of era5.esm (pressure-level); it is preferred where genuine near-surface met is needed over terrain, because a 1000 hPa pressure level is at/below ground over elevated terrain.
- ERA5_pl
data_source
earthsci_data
ERA5 regridding model — the coupler half of the era5 loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.1). Exposes ERA5 ECMWF Reanalysis 5th Generation pressure-level fields on the simulation's target grid for coupling into EarthSciML systems.
- ERA5_sl
data_source
earthsci_data
ERA5 SINGLE-LEVEL (surface) regridding model — the coupler half of the era5 single-level loader+regridding-model split. Exposes ERA5 near-surface fields — 10 m wind (u10, v10), 2 m temperature (t2m), 2 m dewpoint (d2m) — on the simulation's target grid for coupling into EarthSciML systems. This is the single-level counterpart of era5.esm (pressure-level); it is preferred where genuine near-surface met is needed over terrain, because a 1000 hPa pressure level is at/below ground over elevated terrain.
- ERCTimeSeries
model
wildland_fire
fsim
Energy Release Component (ERC) time series model — first-order autoregressive (AR(1)) simulation with seasonal trend and white noise. Generates synthetic daily ERC values using an AR(1) process with separate autocorrelation, innovation variance, and seasonal trend parameters. Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fsim.jl:333.
- ExponentialGrid
model
urban_canopy
temps
Exponential vertical grid discretization for pervious and impervious road columns in the urban canopy thermal solver. Computes node depths (Oleson Eq. 4.8), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) with a scaling factor f_s = 0.025 m that produces finer resolution near the surface — a requirement because urban roads overlie real soil and the near-surface diurnal cycle dominates thermal exchange. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:890 (`ExponentialGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.6-4.8). Parameterized as observed-only: f_s is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- FastJX
model
gaschem
fastjx
=== MIGRATION NOTES (mdl-09u) ===
- FHHAdsorption
model
aerosol
organic
FHH (Frenkel-Halsey-Hill) adsorption isotherm for multilayer adsorption on flat surfaces governed by van der Waals forces. Relates adsorbed volume to the gas-phase saturation ratio via two empirical parameters. From Seinfeld and Pandis (2006), Chapter 14, Section 14.5.3, Equation 14.46.
- FireBehaviorParameters
model
wildland_fire
fire_behavior
Scheme constants and unit conversions of NCAR's Community Fire Behavior Model (fire_behavior, the WRF-Fire/SFIRE physics line: physics/ros_wrffire_mod.F90, fuel_anderson_mod.F90, fmc_wrffire_mod.F90, level_set_mod.F90, fire_physics_mod.F90, share/constants_mod.F90 and share/fuel_mod.F90), transcribed from the `parameter` declarations and in-line literals of the Fortran, including the fuel-moisture fits and class tables of fmc_wrffire_mod and the single-precision tiny and epsilon. Mounted by the fire_behavior components as subsystem `par` so that no tuning constant is written inline in the physics. The Rothermel (1972) fits are empirical formulae in US customary units (ft, lb, Btu, min); fire_behavior converts the SI fuel inputs to those units, evaluates the fits, and converts the spread rate back, so the conversion factors are scheme constants here (the Fortran literals 0.3048, 2.205, 196.850, 0.00508, 1055 -- note 196.850 ft/min per m/s and 0.00508 m/s per ft/min are each written independently in the source and are not exact reciprocals). The coefficients of the US-unit fits are dimensionless numbers whose implied units are recorded in their descriptions. Values are the nominal decimal values of the source; fire_behavior is a default-real (real32) code, so every test against it uses rel 1e-5 (the tolerance contract for a single-precision reference).
- FireContainment
model
wildland_fire
fsim
Statistical fire containment probability model
- FireHeatFlux
model
wildland_fire
level_set
Sensible and latent heat flux density released by burning fuel, per Eqs. 4–5 of Mandel et al. (2011). Migrated from WildlandFire.jl@126976f2 src/level_set_fire_spread.jl:295 (`FireHeatFlux` @component). Observed-only: fuel_burn_rate, w_l, h_fuel, M_f are inputs (parameters); phi_h and phi_q are algebraic outputs.
- FireLoadIndex
model
wildland_fire
nfdrs
Fire Load Index (FLI) per the NFDRS (Cohen & Deeming 1985), page 14. FLI combines the Burning Index (BI) with fire occurrence indexes (LOI + MCOI) to provide a comprehensive measure of the expected fire load. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:1605 (`FireLoadIndex` @component). Observed-only: BI, LOI, and MCOI are inputs (parameters); FLI is the algebraic output.
- FireOccurrenceLogistic
model
wildland_fire
fsim
Logistic regression model for large fire occurrence probability
- FirePerimeterSpread
model
wildland_fire
spread_direction
Fire perimeter spread rate and fireline intensity — calculates spread rate normal to the elliptical fire perimeter and Byram's fireline intensity. Migrated from WildlandFire.jl@126976f2508ceacca6c486b21ae6da5b168c6f46:src/fire_spread_direction.jl:264 (`FirePerimeterSpread` @component). Algebraic-only: R_H, f, g, h, γ, H_A are inputs (parameters); cos_θ, sin_θ, θ, R_ψ, ψ, I_B are algebraic outputs.
- FireSpreadDirection
model
wildland_fire
spread_direction
Calculate fire behavior in direction of maximum spread
- FlameLengthCategory
model
wildland_fire
fsim
Flame length categorization into 6 categories (0.6 m thresholds) based on Byram flame length. Migrated from WildlandFire.jl@126976f2 src/fsim.jl:418.
- FlameLengthWRFFire
model
wildland_fire
fire_behavior
Byram (1959) flame length as diagnosed by fire_behavior's Calc_flame_length (physics/fire_physics_mod.F90): L = 0.0775 (iboros ros)^0.46 m on cells containing the fire line (0 < fire_area < 1), with iboros = I_R t_r in kJ/m^2 from RothermelWRFFire so that iboros ros is the fireline intensity in kW/m; zero elsewhere. The EarthSciModels rothermel/fire_spread.esm F_L = c_FL (I_B/IB_ref)^0.46 with I_B in W/m is the same law in SI (0.0775 kW^-0.46 = 0.00323 W^-0.46); it is not reused because its I_B is built from its own (Andrews 2018) reaction intensity. Tests: cells of the instrumented test7 run at step 20 (flame dump) on the front (0 < fire_area < 1), outside it (fire_area = 0) and fully burning behind it (fire_area = 1), rel 1e-5.
- FreeTroposphereAerosol
model
aerosol
size
ModelingToolkit implementation of the Free troposphere atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Free troposphere distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [129, 59.7, 63.5] cm^-3, D_g = [0.007, 0.250, 0.520] um, log10 sigma = [0.645, 0.253, 0.425]) — a nucleation/ultrafine mode at 7 nm plus two sub-micron accumulation modes. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl FreeTroposphereAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Free troposphere Table 8.3 mode parameters as defaults.
- FreezingPointDepression
model
urban_canopy
temps
Maximum liquid water content in a soil layer below the freezing point, following the supercooled-soil-water freezing-point depression treatment of Niu and Yang (2006). Below T_f, liquid coexists with ice via the matric-potential / latent-heat balance of Oleson et al. (2010) Eq. 4.58; above T_f, the layer holds the fully-saturated maximum Δz·θ_sat·ρ_liq. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:949 (`FreezingPointDepression` @component). Parameterized as observed-only: T_i, θ_sat, Δz, ψ_sat, B_i, ρ_liq are inputs (parameters); w_liq_max is the algebraic output.
- FuchsSutugin
model
aerosol
mass_transfer
Fuchs-Sutugin transition-regime correction factor for aerosol mass transfer. f_FS = J/J_c is the ratio of the actual flux to the continuum-regime flux J_c; it interpolates between f_FS → 1 in the continuum limit (Kn ≪ 1) and f_FS → 0 in the free-molecular limit (Kn ≫ 1). The formula f_FS = 0.75α(1+Kn)/(Kn²+Kn+0.283Kn·α+0.75α) (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.43) is the most widely used semi-empirical interpolation across the full Knudsen number range, and extends the original Fuchs (1934) result with an explicit accommodation-coefficient correction due to Sutugin. Migrated from Aerosol.jl src/mass_transfer.jl `FuchsSutugin`.
- FuelConsumption
model
wildland_fire
level_set
Fuel consumption model: exponential decay of remaining fuel fraction F after ignition, per Eq. 3 of Mandel et al. (2011). Migrated from WildlandFire.jl src/level_set_fire_spread.jl:243 (`FuelConsumption` @component). The fuel-fraction ODE D(F) = -is_burning*F/T_f decays with time constant T_f when is_burning ≈ 1; the algebraic w0_effective = F*w0_initial feeds the FireHeatFlux component in the coupled WRF-SFIRE pipeline.
- FuelDepth
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model fuel-bed depth lookup: maps integer fuel model code (1–13) to fuel bed depth δ in metres, converted from the upstream ft values in ANDERSON_FUEL_DATA via δ_m = depth_ft × 0.3048. Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return the fuel-model-1 default 1.0 × 0.3048 = 0.3048 m. Migrated from WildlandFire.jl src/coupling.jl:125 (`@register_symbolic fuel_depth`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- FuelFractionCellWRFFire
model
wildland_fire
fire_behavior
Fuel fraction remaining and burning area fraction of one fire-grid cell as computed by fire_behavior's Calc_fuel_left (physics/level_set_mod.F90): the cell is split into a 2x2 submesh (fuel_left_irl = fuel_left_jrl = 2); at the four corners of every subcell the level-set function and the ignition time are bilinearly interpolated from the 3x3 node neighbourhood of the cell (the node values are the cell-centred lfn and tign_g of the cell and its eight neighbours; subcell (1,1) uses nodes (i-1..i, j-1..j) at fractions 1/2..1, subcell (2,1) nodes (i..i+1, j-1..j) at fractions 0..1/2 and so on); each subcell's burning area is the level-set sign fraction (1 - sum lfn/sum|lfn|)/2 (Mandel et al. 2011 Sect. 3.2) and its remaining fuel is area exp(-(time_now - tign_mean)/fuel_time) + (1 - area) with the mean of the four corner times since ignition (zero for unburnt or not-yet-ignited corners); the cell values are the subcell means. The per-step burnt fraction fuel_frac_before - fuel_frac feeds Calc_fire_fluxes. For a cell that is entirely burning with uniform ignition time this is the exact solution of dF/dt = -F/fuel_time (EarthSciModels level_set/fuel_consumption.esm, Mandel eq. 3), exposed as dfuel_frac_dt_burning; for partly burning cells the subgrid integration has no single-ODE equivalent, which is why this component is transcribed rather than reusing FuelConsumption. Tests: cells of the instrumented test7 run at step 20 (real32), rel 1e-5 (abs 1e-7 where a subcell fraction is exactly 0 or 1).
- FuelHeat
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model heat content lookup: maps integer fuel model code (1–13) to low heat content in J/kg (8,000 BTU/lb for all Anderson models = 18,608,000 J/kg). Non-burnable LANDFIRE codes (91-99) and out-of-range codes return 0.0 J/kg. Migrated from WildlandFire.jl src/coupling.jl:127 (`@register_symbolic fuel_heat`). NOTE: fuel_heat is implementable without a lookup table because all 13 Anderson models share the same h=8000 BTU/lb; see reference notes on the gt-p3ep blocking gap for the other fuel_* functions.
- FuelLoad
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model total fine fuel load lookup: maps integer fuel model code (1–13) to oven-dry fuel load w₀ in kg/m², converted from the upstream lb/ft² values in ANDERSON_FUEL_DATA via w₀_kg_m2 = load_lb_ft2 × (0.45359237/0.09290304). Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return the fuel-model-1 default 0.034 × (0.45359237/0.09290304) ≈ 0.1660 kg/m². Migrated from WildlandFire.jl src/coupling.jl:124 (`@register_symbolic fuel_load`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- FuelModelLookup
model
wildland_fire
Anderson (1982) 13 fuel-model parameter lookup: maps integer fuel model code (1–13) to the six Rothermel fire spread fuel properties (σ, w₀, δ, Mₓ, h, Tᶠ). Aggregates the six registered fuel_* functions (fuel_savr, fuel_load, fuel_depth, fuel_mce, fuel_heat, fuel_weight) into a single observed-variable component. Out-of-range codes (including LANDFIRE non-burnable codes 91–99) return fuel-model-1 defaults for σ, w₀, δ, Mₓ, and Tᶠ, and 0 J/kg for h. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:155 (`FuelModelLookup` @mtkmodel). Resolves the gt-p3ep blocking gap via ifelse + interp.linear for the five variable-valued properties and a simple ifelse for the constant heat content.
- FuelMoistureWRFFire
model
wildland_fire
fire_behavior
Dead and live fuel moisture of the five WRF-SFIRE moisture classes (1-h, 10-h, 100-h, 1000-h dead fuel and live fuel) for one fire-grid cell, as advanced by fire_behavior's Advance_moisture_classes and averaged by Average_moisture_classes (physics/fmc_wrffire_mod.F90; Mandel et al. 2014). From the step-mean 2 m temperature, humidity and surface pressure the relative humidity follows Murphy & Koop (2005) eq. 10; without rain the Van Wagner & Pickett (1972) drying and wetting equilibrium moisture contents bracket the class moisture, which relaxes with its class time lag towards the nearer bracket (a class already between them does not move); with rain above 0.05 mm/h both brackets become the saturation moisture 2.5 and the rate is the wetting lag scaled by 1 - exp(-r/8 mm/h). Every coefficient and class table is a FireBehaviorParameters (par) entry. The physics is the time-lag ODE d m_k/dt = (equi_k - m_k)/tau_k (dfmc_dt); fire_behavior integrates it exactly over its moisture step (exponential form, or the 2nd-order Taylor form when the step covers less than 1 % of the lag), reproduced as fmc_new so the Fortran step can be tested. The cell's ground fuel moisture fmc_g is the load-weighted mean of the classes (Anderson13FuelTable w_1h .. w_live). The assimilation adjustments deltae/deltas (fmep) and their decay are transcribed; the fmc_gc initialisation branches (from the equilibrium or from the namelist) are the consumer's initial condition and are not transcribed. The EarthSciModels wildland_fire/nfdrs moisture components (NFDRS 1-h/10-h/100-h/1000-h models) are a different formulation and are not reused. Tests: cells of the instrumented test7 run with the moisture model on (fmoist_run, fmoist_freq = 1, dt_moisture = 0.5 s, so every class is in the Taylor branch; the 10 s case has no rain, so the wetting branch is transcribed but untested), real32, rel 1e-5.
- FuelSavr
model
wildland_fire
registered_functions
Anderson (1982) 13-fuel-model surface-area-to-volume ratio (SAVR) lookup: maps integer fuel model code (1–13) to σ in m⁻¹, converted from the upstream 1/ft values in ANDERSON_FUEL_DATA via σ = savr_ft / 0.3048. Out-of-range codes return the default 3500/0.3048 ≈ 11482.94 m⁻¹ (fuel model 1). Migrated from WildlandFire.jl src/coupling.jl:123 (`@register_symbolic fuel_savr`). Resolves the gt-p3ep blocking gap via ifelse + interp.linear over the integer axis [1..13].
- GasDiffusionTimescale
model
aerosol
timescales
Characteristic timescale for gas-phase diffusion of a species to an aerosol particle — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12, Eq. 12.49. The gas-phase diffusion timescale τ_dg = R_p²/(4·D_g) is the characteristic time for a gas-phase concentration perturbation to diffuse to the surface of a particle of radius R_p, given the gas-phase molecular diffusivity D_g of the species. It is one of the family of mass-transfer timescales in Ch. 12 — gas-phase diffusion, interfacial transport, aqueous-phase diffusion, aqueous-phase reaction — that are compared against one another to identify the rate-limiting step in gas-to-particle conversion: a short τ_dg means gas-phase diffusion is fast and not the bottleneck. The timescale grows quadratically with the particle radius and inversely with the diffusivity. Migrated from Aerosol.jl GasDiffusionTimescale.
- GasScavengingCoeff
model
atmospheric_deposition
sp06_ch20
Below-cloud gas scavenging coefficient for irreversible uptake of a gas-phase species by falling monodisperse raindrops, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 20 (Wet Deposition), Eq. 20.25. The scavenging coefficient Λ_gas = 6·p₀·K_c/(D_p·U_t) sets the first-order loss rate (s⁻¹) of a soluble gas to rain: it rises linearly with the precipitation rate p₀ and the gas-phase mass transfer coefficient K_c, and falls inversely with the raindrop diameter D_p and terminal velocity U_t. 'Irreversible' uptake assumes the gas is captured and not re-released — the limiting case opposite to the Henry's-law-equilibrium treatment of the sibling ReversibleGasScavenging component. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:116 (`GasScavengingCoeff` @component). Observed-only algebraic model: K_c, U_t, D_p, p₀ are input parameters and Λ_gas is the single algebraic output, fixed by one equation with no time derivative.
- GaussianKC
model
environmental_transport
gaussian
Lagrangian Gaussian puff horizontal dispersion model based on turbulent velocity fluctuation standard deviations (σu). Integrates the growth of horizontal dispersion standard deviations sigma_x and sigma_y from the Kolmogorov-type closure d(sigma)/dt = sqrt(2)*sigma_u, and computes the ground-level centerline concentration per unit mass assuming a top-hat vertical distribution within the lowest grid layer (height dz). Migrated from EnvironmentalTransport.jl@a48559c4 src/GaussianDispersion.jl:378 (GaussianKC @component). When coupled, sigma_u_x and sigma_u_y are provided by BoundaryLayerMixingKC and z_agl is provided by Puff; in standalone mode all three are treated as constant parameters.
- GaussianPGB
model
environmental_transport
gaussian
Classic Gaussian plume dispersion model parameterized with Pasquill-Gifford-Briggs (PGB) stability classification and dispersion coefficients. Given the current puff position (lon, lat) and height above ground (z_agl), classifies atmospheric stability from near-surface meteorology (wind speed, solar radiation, cloud fraction, temperature lapse), selects Briggs dispersion-curve coefficients, computes the haversine downwind distance from the source, and evaluates horizontal (sigma_h) and vertical (sigma_z) dispersion widths and the ground-level Gaussian concentration (C_gl). Migrated from EnvironmentalTransport.jl@a48559c4 src/GaussianDispersion.jl:83. When coupled with Puff, lon/lat/z_agl are supplied by the Puff component; in standalone mode they are treated as constant parameters.
- GeneralCirculation
model
atmospheric_dynamics
General circulation of the atmosphere — Coriolis parameter, tangential speed, geostrophic wind, and thermal-wind relations from Seinfeld & Pandis (2006) Chapter 21. Migrated from AtmosphericDynamics.jl@816cc391 src/general_circulation.jl:60 (`GeneralCirculation` @component).
- GEOSChemGasPhase
reaction_system
gaschem
GEOS-Chem fullchem gas-phase mechanism (~819 reactions, ~272 species). Migrated from GasChem.jl GEOSChemGasPhase via mtk2esm with sub-system rate-law inlining.
- GEOSFP
model
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_A1
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_A3cld
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_A3dyn
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_A3mstC
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_A3mstE
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GEOSFP_I3
data_source
earthsci_data
GEOS-FP regridding model — the coupler half of the geosfp loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, following the esm-3nc.1 era5/wrf pattern). Exposes NASA GMAO GEOS-FP assimilated meteorology (0.25°×0.3125° global, GEOS-Chem 72-level) on the simulation's target grid for coupling into EarthSciML systems.
- GHGForcing
model
gaschem
climate
Greenhouse-gas radiative forcing budget for the well-mixed industrial-era GHGs plus tropospheric ozone (Seinfeld & Pandis 2006 Ch. 23 §23.3, p. 1038-1042, IPCC TAR 2001 baseline reproduced in S&P Figure 23.6 / Table 23.4). The component aggregates the five canonical anthropogenic radiative-forcing channels — CO₂, CH₄, N₂O, tropospheric O₃, and the halocarbon family — and exposes per-channel and total radiative forcing as observable outputs. Each channel is parameterized as a dimensionless scaling factor f_X applied to a fixed IPCC TAR reference forcing ΔF_X_ref: ΔF_X = f_X · ΔF_X_ref. The total ΔF_total = Σ ΔF_X is the headline anthropogenic radiative-forcing diagnostic. Observed-only algebraic component: six equations on six state variables (ΔF_CO2, ΔF_CH4, ΔF_N2O, ΔF_O3, ΔF_halo, ΔF_total) driven by five scaling-factor parameters (f_CO2, f_CH4, f_N2O, f_O3, f_halo) and five reference-forcing constants (ΔF_CO2_ref = 1.46, ΔF_CH4_ref = 0.48, ΔF_N2O_ref = 0.15, ΔF_O3_trop_ref = 0.4, ΔF_halo_ref = 0.34, all in W/m^2). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/climate_forcing.jl:104 (`GHGForcing` @component). The scaling-factor design lets a downstream consumer adjust each individual channel without forking the component — useful for (i) reproducing the IPCC AR4/AR5/AR6 revisions to the industrial-era forcing values (e.g., AR5 CO₂ ≈ 1.82 W/m² vs TAR 1.46), (ii) sensitivity studies that probe each channel's contribution to the total, and (iii) attribution scenarios that zero out individual channels (f_X = 0 ⇒ ΔF_X = 0). At the defaults (all f_X = 1), ΔF_total = 1.46 + 0.48 + 0.15 + 0.4 + 0.34 = 2.83 W/m² which matches the upstream IPCC TAR 2001 industrial-era forcing total (S&P p. 1039, sum of the five well-mixed-GHG + O3 channels excluding aerosols).
- GlobalWarmingPotential
model
gaschem
climate
Global Warming Potential (GWP) for atmospheric trace species with first-order exponential-decay perturbation lifetimes (Seinfeld & Pandis 2006 Ch. 23, Eqs. 23.5-23.6 and Problem 23.3, p. 1050). The GWP is defined as the ratio of the time-integrated radiative forcing from a pulse emission of 1 kg of species A to that of 1 kg of CO₂ over a specified time horizon t_f. For species whose atmospheric perturbation decays exponentially as exp(-t/τ_A), the time-integrated forcing reduces to the closed-form expression τ_A · (1 - exp(-t_f/τ_A)), so the GWP becomes GWP = a_A · τ_A · (1 - exp(-t_f/τ_A)) / [a_CO2 · τ_CO2 · (1 - exp(-t_f/τ_CO2))]. The component is observed-only: five algebraic equations on five state variables (decay_integral_A, decay_integral_CO2, AGWP_A, AGWP_CO2, GWP) driven by three input parameters (τ_A the species lifetime, a_A the radiative efficiency relative to CO₂, t_f the time horizon) and two CO₂-reference constants (τ_CO2 the effective CO₂ lifetime, a_CO2 the reference radiative efficiency). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@280ee50f src/climate_forcing.jl:182 (`GlobalWarmingPotential` @component). The GWP framework is the IPCC standard for comparing the climate impact of different greenhouse gases on a common (CO₂-equivalent) scale and underlies the conversion between mass emissions of CH₄, N₂O, halocarbons, and other well-mixed GHGs to their CO₂-equivalent emissions for policy and inventory accounting. Canonical GWP₁₀₀ values (IPCC AR4 Table 23.1, S&P p. 1042): CH₄ ≈ 23, N₂O ≈ 296, SF₆ ≈ 22800 — the framework's three-order-of-magnitude span anchors the design choice of representing GWP as a derived ratio rather than a hardcoded table.
- GroundwaterDrainage
model
urban_canopy
hydro
Sub-surface drainage out of the soil column as an exponential function of water table depth, modulated by an impermeable-fraction reduction in frozen soils, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.140 (drainage) and 5.141 (impermeable fraction). q_drai = (1 - f_imp) * q_drai_max * exp(-f_drai * z_v); f_imp = max((exp(-α(1 - f_ice_weighted)) - exp(-α)) / (1 - exp(-α)), 0). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:698 (`GroundwaterDrainage` @component). Observed-only: both inputs are parameters and both outputs are given by single algebraic equations.
- H2O2Equilibria
model
aerosol
aq_eq
H2O2 gas-aqueous dissolution and (weak) dissociation equilibria with van't Hoff temperature dependence. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:519 (`H2O2Equilibria` @component). Implements Seinfeld & Pandis Ch 7 §7.3.6: K_H(H2O2, 298 K) = 1.0×10⁵ M/atm, ΔH_sol = −14.5 kcal/mol; K_h1(H2O2, 298 K) = 2.2×10⁻¹² M (temperature-independent, very weak). Parameterized as observed-only: T, H_plus, and p_H2O2 are inputs; H_H2O2, K_h1, H2O2_aq, HO2_minus, H2O2_total, H_H2O2_eff are algebraic outputs.
- HeatFlux
model
urban_canopy
temps
Vertical heat flux across the interface between two soil/snow/road/wall/roof layers via the finite-difference discretization of Fourier's law of heat conduction (Oleson et al. 2010 Eq. 4.11). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:312 (`HeatFlux` @component). Implements the canonical layer-pair flux F = -λ_interface * (T_i - T_{i+1}) / (z_{i+1} - z_i), positive upward (heat flowing from layer i+1 to layer i, i.e. from deeper layer to shallower layer when stacking depth-increasing-downward). λ_interface is the harmonic-mean interface conductivity (Eq. 4.12), produced upstream by InterfaceThermalConductivity from the adjacent-layer bulk conductivities. Parameterized as observed-only with one algebraic equation: F is the state variable; λ_interface, T_i, T_ip1, z_i, z_ip1 are inputs (parameters in standalone form, wired to upstream components in a full column build).
- HeatingCoolingFlux
model
urban_canopy
temps
Heating/cooling fluxes through the building floor for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:638 (`HeatingCoolingFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.51 and 4.52: the building uses HVAC to clamp the internal building temperature T_iB to the prescribed comfort window [T_iB_min, T_iB_max]. The combined floor flux F_combined is the Crank-Nicholson average of F_bottom_n (time n) and F_bottom_np1 (time n+1) per Eq. 4.53/4.54; if T_iB falls below T_iB_min the absolute value of F_combined is reported as the heating flux F_heat (Eq. 4.51); if T_iB rises above T_iB_max the absolute value is reported as the cooling flux F_cool (Eq. 4.52); inside the comfort window both F_heat and F_cool are zero (no HVAC demand). Parameterized as observed-only with three algebraic equations: F_combined, F_heat, F_cool are state variables; T_iB, T_iB_min, T_iB_max, F_bottom_n, F_bottom_np1 are inputs (parameters in standalone form).
- HeavisideBoundaryCondition
model
environmental_transport
surface_runoff
Smoothed Heaviside surface boundary condition for coupling surface and subsurface water flow, from Wang et al. (2020) (Advances in Water Resources 137, 103499), Eqs. 3 and 5. The component switches a single surface node continuously between a ponded (saturated) boundary and an unsaturated boundary as the pressure head h crosses zero, replacing a hard step with the smooth approximations eta_omega(h) = (1/pi)*atan(h/omega) + 1/2 (smoothed Heaviside, Eq. 5a) and delta_omega(h) = (1/pi)*omega/(omega^2 + h^2) (smoothed Dirac delta, Eq. 5b; delta_omega = d eta_omega/dh). The head obeys the boundary condition d/dt[eta_omega(h)*h] = P - I_infil (Eq. 3), stated as the explicit ODE D(h) = (P - I_infil)/(delta_omega*h + eta_omega). h is the single integrated state; eta_omega and delta_omega are algebraic (observed). Migrated from EnvironmentalTransport.jl@a48559c4 src/surface_runoff.jl:232 (`HeavisideBoundaryCondition` @component). Because the head equation conserves eta_omega(h)*h - (P - I_infil)*t, every ODE-integration test below is checked against the exact conservation law, not merely against a prior solver run.
- HenrysLaw
model
aerosol
henrys_law
Basic Henry's law equilibrium at fixed temperature (Seinfeld & Pandis 2006, Chapter 7, Eq. 7.3). Computes the aqueous-phase concentration C_aq = H_A × p_A, where H_A is the Henry's law constant at the reference temperature and p_A is the gas-phase partial pressure of species A. Migrated from Aerosol.jl src/henrys_law.jl `HenrysLaw` (esm-3ro).
- HenrysLawTemperature
model
aerosol
henrys_law
Temperature-dependent Henry's law equilibrium for gas–liquid partitioning of soluble atmospheric species. Computes the temperature-corrected Henry's law constant H_T via the van't Hoff equation (Eq. 7.5), the aqueous concentration C_aq via Eq. 7.3, and the liquid-water distribution diagnostics w_L (Eq. 7.1), f_A (Eq. 7.7), and X_aq (Eq. 7.9). From Seinfeld & Pandis (2006), Chapter 7, Section 7.2.
- HerbaceousFuelMoisture
model
wildland_fire
nfdrs
Herbaceous fuel moisture content (MCHERB) per NFDRS Cohen & Deeming (1985), pages 6-8. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:426 (`HerbaceousFuelMoisture` @component). Calculates moisture stages (pregreen, greenup, green, transition, cured/frozen) based on climate class, 1000-hr moisture, and seasonal flags.
- HNO3Equilibria
model
aerosol
aq_eq
HNO3 gas-aqueous dissolution and dissociation equilibria. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:438 (`HNO3Equilibria` @component). Implements Seinfeld & Pandis Ch 7 §7.3.5 (Eq 7.53–7.54, 7.58, 7.61): K_H(HNO3, 298 K) = 2.1×10⁵ M/atm (temperature-independent, dH≈0), K_n1(HNO3, 298 K) = 15.4 M (temperature-independent). HNO3 is a strong acid (pKa ≈ −1.2) that essentially completely dissociates at all atmospheric pH values. Parameterized as observed-only: T, H_plus, and p_HNO3 are inputs; H_HNO3, K_n1, HNO3_aq, NO3_minus, HNO3_total, H_HNO3_eff are algebraic outputs.
- HoltslagBovilleLocalDiffusion
model
atmospheric_dynamics
holtslag_boville
Local boundary-layer diffusion scheme of Holtslag & Boville (1993) — eddy diffusivity from local gradients of wind and virtual potential temperature, via a height-dependent mixing length and a Richardson-number stability function. Migrated from AtmosphericDynamics.jl@816cc391 src/holtslag_boville_1993.jl:184 (`HoltslagBovilleLocalDiffusion` @component).
- HoltslagBovilleNonlocalABL
model
atmospheric_dynamics
holtslag_boville
Nonlocal atmospheric boundary-layer diffusion scheme of Holtslag & Boville (1993). Given the height z, boundary-layer depth h, friction velocity u_star, surface virtual heat flux wθ_v0, surface scalar flux wC_0, surface virtual potential temperature θ_v0 and Obukhov length L, it computes the convective velocity scale w_star, the φ_m/φ_h Monin-Obukhov similarity profiles, the momentum and scalar velocity scales w_m/w_t, the turbulent Prandtl number Pr, the eddy-diffusivity profile Kc = κ·w_t·z·(1−z/h)² and the countergradient nonlocal transport term γc. The nonlocal scheme represents transport by large convective eddies that the local scheme cannot. Migrated from AtmosphericDynamics.jl@816cc391 src/holtslag_boville_1993.jl:290 (`HoltslagBovilleNonlocalABL` @component); algebraic (observed-only) — the 7 inputs are parameters, the 14 turbulence quantities are algebraic state variables, no ODE integration.
- HoltslagBovilleSurfaceFlux
model
atmospheric_dynamics
holtslag_boville
Parameterized atmospheric-boundary-layer surface fluxes following Holtslag & Boville (1993), 'Local Versus Nonlocal Boundary-Layer Diffusion in a Global Climate Model', J. Climate 6, 1825-1842. A diagnostic (purely algebraic) bulk-aerodynamic scheme: from the lowest-model-level wind (u₁, v₁), the surface and lowest-level potential and virtual potential temperatures (θ₀/θ₁, θᵥ₀/θᵥ₁), and specific humidities (q₀, q₁), it computes the kinematic surface fluxes of momentum (wu₀, wv₀; Eqs. 2.1-2.2), heat (wθ₀; Eq. 2.3) and moisture (wq₀; Eq. 2.4). The stability-dependent exchange coefficients Cₘ and Cₕ (Eqs. 2.5-2.6) are the neutral coefficient Cₙ (Eq. 2.7, a logarithmic function of the roughness ratio) modulated by the stability functions fₘ and fₕ, which switch on the sign of the surface bulk Richardson number Ri₀ (Eq. 2.8): the unstable branch uses the Louis et al. (1982) forms (Eqs. 2.9-2.10) and the stable branch the Holtslag & Beljaars (1989) form (Eq. 2.11). The model has 11 algebraic variables (no time integration), 11 equations, and 15 parameters (4 physical constants + 11 inputs). All quantities are SI. Migrated from AtmosphericDynamics.jl@816cc391 src/holtslag_boville_1993.jl:35 (`HoltslagBovilleSurfaceFlux` @component).
- HOxCycle
model
gaschem
stratospheric
Stratospheric HOx catalytic ozone destruction cycle (Seinfeld & Pandis 2006 Ch. 5, §5.4, Eqs. 5.23-5.28). Two-state ODE on the radicals OH and HO2 driven by reactions with O3, atomic O, and NO; HOx = OH + HO2 is exactly conserved by construction (D(OH) + D(HO2) ≡ 0). Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:187 (`HOxCycle` @component). All rate coefficients are temperature-dependent Arrhenius forms k_X = k_X_A · exp(C_X / T) with the Seinfeld & Pandis bimolecular CGS pre-factors converted to SI via the cm³/molec/s × 1e-6 → m³/s factor; SI rates and SI number-density concentrations (m^-3) are preserved verbatim from upstream.
- HumanFireOccurrenceIndex
model
wildland_fire
nfdrs
Human-caused fire occurrence index (MCOI) from Cohen & Deeming (1985)
- HundredHourFuelMoisture
model
wildland_fire
nfdrs
100-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 5. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:279 (`HundredHourFuelMoisture` @component). State-variable model: MC100, EMCBAR, BNDRYH are time-indexed state variables with daily discrete update equations.
- IcePhysics
model
aerosol
cloud_physics
Ice nucleation and ice-water equilibrium thermodynamics (Seinfeld & Pandis 2006, Eqs. 17.100-17.103). Computes freezing point depression for solutions, equilibrium freezing temperature from water activity, Kelvin curvature factor for ice particles, and empirical ice-nuclei concentration.
- IdealGasLaw
model
atmospheric_dynamics
sp_ch1
Ideal gas law for atmospheric air density: rho = M_air * p / (R * T). Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:68 (`IdealGasLaw` @component). Implements Seinfeld & Pandis Ch 1 Eq 1.2. Parameterized as observed-only: T and p are inputs (parameters in standalone form), rho is the algebraic output. Upstream the Julia @component declares T and p as @variables for composition into a parent system; for standalone serialization (3 unknowns vs 1 equation otherwise), they are declared as parameters here, mirroring the WaterEquilibrium serialization pattern.
- IgnitionComponent
model
wildland_fire
nfdrs
NFDRS Ignition Component (IC) - calculates probability of ignition and reportable fire
- IgnitionTimeWRFFire
model
wildland_fire
fire_behavior
Ignition time of a fire-grid cell as updated by fire_behavior's Update_ignition_times (physics/level_set_mod.F90) after each level-set step: cells the front crosses during the step get the linearly interpolated crossing time ts + dt lfn_in/(lfn_in - lfn_out); cells still unburnt at the end of the step carry time_now (the step end nudged up by two real32 epsilons, so that Calc_fuel_left treats them as not ignited); burning cells keep their ignition time. Tests: cells of the instrumented test7 run at step 20 (ls_tign dump), rel 1e-5 (the interpolated time is a ratio of O(1-100 m) level-set values, real32).
- ImperviousRunoff
model
urban_canopy
hydro
Surface runoff and updated surface liquid-water content for roof and impervious-road surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.47-5.48. With no snow layers (has_snow = 0): runoff is the excess of (w_liq_1/Δt + q_liq_0 - q_seva) above the ponding limit w_pond_max/Δt. With snow layers (has_snow = 1): all liquid water reaching the surface becomes runoff and the surface liquid-water content passes through unchanged. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:991 (`ImperviousRunoff` @component). Parameterized as observed-only: w_liq_1, q_liq_0, q_seva, has_snow are inputs (parameters); q_over_nosnow, q_over, w_liq_1_new are algebraic outputs.
- ImperviousWaterBalance
model
urban_canopy
hydro
Surface water balance for roof and impervious-road urban surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.2-5.5. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:937 (`ImperviousWaterBalance` @component). Parameterized as observed-only: precipitation (q_rain, q_sno) and loss fluxes (E_surface, q_over, q_rgwl, q_snwcp_ice) are inputs; q_grnd_liq, q_grnd_ice, and water_input are algebraic outputs.
- IndirectAerosolForcing
model
aerosol
radiative_forcing
First indirect aerosol effect (Twomey effect): change in shortwave forcing from aerosol-induced increase in cloud droplet number concentration — Seinfeld & Pandis (2006) Ch. 24 §24.8.2, Eqs. 24.42–24.43.
- InterfaceHydraulicConductivity
model
urban_canopy
hydro
Hydraulic conductivity at a soil-layer interface as a Clapp-Hornberger function of the average volumetric water content and porosity of the two adjacent layers, scaled by the unfrozen fraction. Implements Oleson et al. (2010, CLM Tech Note Ch. 5) Eq. 5.69 (interface conductivity) with the frozen-fraction multiplier of Eq. 5.70. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:1053 (`InterfaceHydraulicConductivity` @component). Observed-only: all eight inputs are parameters and k_h is given by a single algebraic equation.
- InterfaceThermalConductivity
model
urban_canopy
temps
Thermal conductivity at the interface between two adjacent thermal layers of the urban canopy column. Implements the conductivity-weighted harmonic mean (Oleson et al. 2010, CLM Tech Note Ch. 4, Eq. 4.12) derived from continuity of conductive heat flux across the interface (Eq. 4.13). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:278 (`InterfaceThermalConductivity` @component). Parameterized as observed-only: λ_i, λ_ip1, z_i, z_ip1, z_h are inputs (parameters); λ_interface is the algebraic output.
- InterfacialTimescale
model
aerosol
timescales
Characteristic timescale to achieve equilibrium at the gas-particle interface for a gas exchanging with an aqueous aerosol droplet — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12, Eqs. 12.61-12.62. Two limiting regimes are computed. For very soluble gases the approach to interfacial equilibrium is controlled by interfacial (accommodation-limited) mass transport, τ_p_soluble ≈ R_p·H*·√(2π·M_A·R·T)/(3α) (Eq. 12.61). For low-solubility gases it is instead controlled by aqueous-phase diffusion within the droplet interior, τ_p_insoluble ≈ R_p²/(π²·D_aq) (Eq. 12.62). Migrated from Aerosol.jl InterfacialTimescale.
- IsentropicBaseState
model
atmospheric_dynamics
clark1977
Isentropic base-state atmosphere for the Clark (1977) terrain-following mountain-wave model, "A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation", Eqs. 2.6-2.9. The base state assumes a constant potential temperature Θ — the deep, isentropic reference atmosphere of Ogura and Phillips (1962) adopted in Clark (1977) Eq. 2.6 — and derives the height-dependent thermodynamic profiles that satisfy hydrostatic balance: from the reference potential temperature Θ, the surface pressure P_0, and the height above the surface z, the component computes the isentropic scale height H_s = c_p*Θ/g, the base-state temperature T_bar = Θ*(1 - z/H_s) (Eq. 2.7), the base-state pressure p_bar = P_0*(1 - z/H_s)^(c_p/R_d) (Eq. 2.8), and the base-state density ρ_bar = P_0/(R_d*Θ)*(1 - z/H_s)^(c_p/R_d - 1) (Eq. 2.9). Temperature falls linearly with height while pressure and density fall as powers of the same (1 - z/H_s) factor, all three vanishing at the top of the isentropic atmosphere z = H_s. Four purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:49 (`IsentropicBaseState` @component); the five upstream @constants — g, R_d, c_p and the derived exponents inv_kappa = c_p/R_d and inv_kappa_m1 = c_p/R_d - 1 — are declared as fixed-default parameters.
- KelvinEffect
model
aerosol
sp_ch10
Kelvin effect on the equilibrium vapor pressure over a curved droplet surface — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 10. Computes the Kelvin saturation ratio S = p_A/p°_A (Eq. 10.86), the factor by which surface curvature enhances the equilibrium vapor pressure of a small droplet relative to a flat surface: S = exp(2 σ M / (R T ρ_l R_p)). The enhancement is significant for nanometre-scale droplets and decays toward unity as the droplet radius grows. Migrated from Aerosol.jl KelvinEffect.
- KnudsenNumber
model
aerosol
mass_transfer
Knudsen number Kn = λ/R_p — the ratio of the gas mean free path λ to the particle radius R_p. Kn determines the transport regime: Kn ≪ 1 (continuum, Fick's law applies), Kn ≫ 1 (free-molecular, kinetic theory applies), Kn ~ 1 (transition regime, interpolation formulas such as Fuchs-Sutugin required). At standard atmospheric conditions λ ≈ 65 nm; Kn ≈ 0.65 for a 100 nm particle and Kn ≈ 0.0065 for a 10 µm droplet. Migrated from Aerosol.jl src/mass_transfer.jl `KnudsenNumber`.
- KohlerTheory
model
aerosol
cloud_physics
Köhler theory for cloud condensation nucleus (CCN) activation — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., §17.3–17.4. Computes the equilibrium saturation ratio S_eq over a solution droplet of diameter D_p (Köhler equation, Eq. 17.50), the critical activation diameter D_pc, and the critical supersaturation sc. S_eq combines the Kelvin curvature enhancement (coefficient A = 4 M_w σ / (R T ρ_w)) and the Raoult solute suppression (coefficient B = 6 n_s M_w / (π ρ_w)); at D_p = D_pc the Köhler curve reaches its maximum and the droplet activates spontaneously. Migrated from Aerosol.jl src/cloud_physics.jl:232.
- LANDFIRE
data_source
earthsci_data
LANDFIRE regridding model — the coupler half of the landfire loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.4). Exposes the LANDFIRE fire-behavior fuel-model code (Anderson 13 / Scott & Burgan 40) on the simulation's target grid for wildland-fire coupling in EarthSciML systems.
- LANDISBiomass
model
vegetation
LANDIS forest growth and biomass module for a single species-age cohort. Tracks aboveground living biomass B and dead woody biomass D_wood under three coupled processes: growth (peaked ANPP function of B_AP = B/B_POT), mortality (logistic biomass-dependent M_BIO + exponential age-dependent M_AGE), and decomposition (M_total - k·D_wood). Migrated from Vegetation.jl src/landis_biomass.jl:28. All quantities in SI base units (kg/m^2 for biomass, seconds for time); upstream paper uses Mg/ha and years (1 Mg/ha = 0.1 kg/m^2, 1 yr = 3.15576e7 s).
- LangmuirAdsorption
model
aerosol
organic
Langmuir adsorption isotherm for the formation of a monolayer of adsorbed molecules on particle surfaces. Assumes all adsorption sites are equivalent, no horizontal interactions, and uniform heat of adsorption. From Seinfeld and Pandis (2006), Chapter 14, Section 14.5.3, Equation 14.44.
- LayerPhaseChangeEnergy
model
urban_canopy
temps
Per-layer phase change energy for the urban canopy snow/soil thermodynamics: the energy required to change a single layer's ice mass from w_ice_n at time n to w_ice_np1 at time n+1 over time step Δt (Oleson et al. 2010 Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1037 (`LayerPhaseChangeEnergy` @component). The column-summed output of this component over all layers is the E_p_layers input of `TotalPhaseChangeEnergy` (Eq. 4.72). Parameterized as observed-only: w_ice_n, w_ice_np1, Δt are inputs (parameters); E_p is the algebraic output.
- LevelSetFireSpread
model
wildland_fire
Level-set fire front propagation PDE: Hamilton-Jacobi equation ∂ψ/∂t + S(n̂)|∇ψ| = 0, where S(n̂) is the Rothermel/Mandel (2011) direction-dependent spread rate projected onto the fire-front normal. Migrated from WildlandFire.jl src/level_set_fire_spread.jl:73. v0.8.0: a DISCRETIZATION-AGNOSTIC library PDE leaf. (1) Spatial derivatives are bare `D` ops (op:D, wrt:x / wrt:y) instead of the `grad` sugar. (2) This leaf imports NO discretization of its own — the scheme is chosen by the ASSEMBLER that mounts this component, which carries the rule imports on its model-ref edge (esm-spec §9.7.10 form A: the edge's `expression_template_imports` register into this component's own template scope). The reference assembler (wildlandfire.esm/level_set_hj_2d.esm) mounts the first-order Godunov (Rouy-Tourin / Osher-Sethian) rule godunov_norm_D2_periodic, which fires by compound match on the gradient-magnitude term sqrt(D(psi,x)² + D(psi,y)²), plus the central rules central_D1x/D1y for the individual ∂ψ/∂x, ∂ψ/∂y in the wind/slope normal projections — but any grid + scheme satisfying the same D-op / grid-geometry contract composes here unchanged. (3) The direction-dependent right-hand side is authored as READABLE INTERMEDIATE array-shaped observed fields over the [x,y] index sets — psi_x, psi_y (central ∂ψ), grad_mag (Godunov |∇ψ|), grad_safe, U_n, tanphi_n (wind/slope normal projections), phi_W, phi_S, and S_n (the spread rate) — so the state equation is simply D(psi,t) = −S_n·grad_mag. Both toolkits evaluate these per cell: the Julia evaluator folds the elementwise ones into the state RHS (leaving the producer stencils psi_x/grad_mag for its index beta-reduction), and the Rust array runtime materializes each as a companion buffer in dependency order — identical numerics either way (front radii match to 4 places at NX=NY=32). The producer observeds (psi_x, psi_y, grad_mag) carry the bare D ops the mounted discretization lowers; grad_mag's exponent is the integer 2 on the bare D ops so the Godunov compound matches. Only the scalar grid observeds (dx, dy) remain scalar. (4) Grid geometry (index sets x,y; spacing dx=Lx/NX, dy=Ly/NY; extent x0,y0) is the consumer-supplied contract of grids/cartesian_uniform_2d/grid.esm (metaparameters NX,NY bound at load; extent Lx,Ly parameters), and BCs come from the mounted discretization. The initial perimeter is supplied by the ASSEMBLER (a §11.4.1 dedicated IC model), not baked here. The D ops assume Cartesian (x,y in meters) coordinates; geographic (lon/lat) usage needs metric-tensor scaling not yet expressible in ESM (other:P3-A-metric-tensor-coord-transforms gap).
- LevelSetTendencyWRFFire
model
wildland_fire
fire_behavior
The level-set propagation equation of fire_behavior (physics/level_set_mod.F90 Calc_tend_ls; Munoz-Esparza et al. 2018) as a PDE on a uniform 2-D grid: d psi/dt = -R |grad psi| + nu |R| (dx d2psi/dx2 + dy d2psi/dy2), the Hamilton-Jacobi front propagation with the rate of spread R normal to the front plus a grid-scaled artificial viscosity. |grad psi| is written as the compound sqrt(D(psi,x)^2 + D(psi,y)^2) and lowered by EarthSciDiscretizations' grids/cartesian_uniform_2d/rules/weno5_eno1_norm_D2_extrapolate_bc, which is fire_behavior's default scheme (fire_upwinding = 9): fifth-order WENO within fire_lsm_band_ngp = 4 cells of the front with the upwind side chosen by the mid-flame wind, first-order ENO (minmod of the one-sided differences) elsewhere and within BDY_ENO1 = 10 cells of the domain boundary. The second derivatives of the viscosity term are lowered by central_D2x_extrapolate_bc and central_D2y_extrapolate_bc. All three rules close the walls as fire_behavior does (Extrapol_var_at_bdys): each wall cell sees a ghost extrapolated linearly from the two innermost cells, max(2a - b, a, b), so the domain edge carries no prescribed level-set value and does not act as a fire front. R is supplied as an input field (it depends on the upwind normal, tested in ROSWRFFire); the propagation term and viscosity are what this component asserts. The viscosity coefficient is the single value fire_viscosity: fire_behavior blends it toward fire_viscosity_bg near the front, and test7 sets the two equal. Tests: the ls_tend dump of Runge-Kutta stage 1 of step 20 (t = 10 s) of test7 with the default scheme, checked at wall, corner, ENO1-band, WENO-band and far-field cells, real32.
- LightningFireOccurrenceIndex model wildland_fire nfdrs
- LiveFuelMoistureExtinction
model
wildland_fire
rothermel
Live fuel moisture of extinction (M_x,live) from dead-fuel moisture, dead-to-live effective load ratio, and dead fuel moisture of extinction. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:367 (`LiveFuelMoistureExtinction` @component). Observed-only: Mx_dead, W_ratio, Mf_dead are inputs (parameters); Mx_live is an algebraic output. Implements Eq. M_x,live, Table 6b in Andrews (2018) RMRS-GTR-371.
- LocalScaleMeteorology
model
atmospheric_dynamics
local_scale
Local-scale boundary-layer meteorology from Seinfeld & Pandis (2006) "Atmospheric Chemistry and Physics", 2nd ed., Chapter 16 "Meteorology of the Local Scale". A flat observed-only algebraic component that combines atmospheric static-stability analysis, Monin-Obukhov surface-layer similarity theory and Pasquill stability-class estimation: from the air temperature and pressure, the surface-layer geometry, the friction velocity u_star and the surface sensible heat flux q_z it computes the potential temperature θ (Eq. 16.14), the actual and potential-temperature lapse rates dT_dz and dθ_dz (Eqs. 16.16-16.18), the Monin-Obukhov length L and its inverse L_inv (Eq. 16.70), the stability parameter ζ = z/L, the Businger-Dyer stability functions φ_m, φ_h and their integrated forms ψ_m, ψ_h (Eqs. 16.75, 16.78-16.79), the stability-corrected mean wind speed ū (Eq. 16.66) and the Pasquill stability class (1=A to 6=F) via the Golder (1972) correlation (Eq. 16.83). Twelve purely-algebraic equations, no time integration. Migrated from AtmosphericDynamics.jl@816cc391 src/local_scale_meteorology.jl:234 (`LocalScaleMeteorology` @component).
- MarineAerosol
model
aerosol
size
ModelingToolkit implementation of the Marine atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Marine distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [133, 66.6, 3.1] cm^-3, D_g = [0.008, 0.266, 0.580] um, log10 sigma = [0.657, 0.210, 0.396]) — a dilute marine boundary-layer background with a nucleation mode, an accumulation mode, and a coarse mode at 0.58 um. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl MarineAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Marine Table 8.3 mode parameters as defaults.
- MassTransfer
model
aerosol
mass_transfer
Complete transition-regime mass transfer model combining mean molecular speed, air density, mean free path, Knudsen number, Fuchs-Sutugin correction, and continuum-regime flux to produce the transition-regime corrected molar flow rate J for particle growth/evaporation across all Knudsen number regimes (Seinfeld & Pandis 2006, Chapter 12, Sections 12.1.1–12.1.4, Eqs. 12.12, 12.24, 12.31, 12.43). Migrated from Aerosol.jl src/mass_transfer.jl `MassTransfer` (esm-44h).
- MassTransferCoeff
model
atmospheric_deposition
sp06_ch20
Gas-phase mass transfer coefficient K_c to a falling raindrop, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 20 (Wet Deposition), Eq. 20.12. K_c is computed from a Sherwood-number correlation K_c = (D_g/D_p)·[2 + 0.6·Re^(1/2)·Sc^(1/3)], where the drop Reynolds number Re = ρ_air·U_t·D_p/μ_air measures the convective flow past the falling drop and the gas Schmidt number Sc = μ_air/(ρ_air·D_g) is the ratio of the momentum to the mass boundary-layer thickness. The leading 2 is the still-air diffusive limit (Sh→2 for an isolated sphere); the 0.6·Re^(1/2)·Sc^(1/3) term is the ventilation enhancement from the drop's fall. K_c sets the gas-uptake rate at the raindrop surface and feeds the below-cloud gas scavenging coefficient computed by the sibling GasScavengingCoeff / BelowCloudGasScavenging components. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:60 (`MassTransferCoeff` @component). Algebraic (observed-only) system: K_c is the single algebraic output (the upstream component's lone `@variable`); D_g, D_p, U_t are input parameters and ρ_air_sp, μ_air_sp are the migrated upstream module `@constants`.
- MassTransferCoefficient
model
aerosol
mass_transfer
Combined gas-phase and interfacial mass transfer coefficient k_mt for gas-particle exchange. k_mt is the inverse of the total resistance to mass transfer, which is the sum of two resistances in series: (1) gas-phase diffusion resistance tau_g = R_p²/(3 D_g), and (2) interfacial resistance tau_i = (R_p/3α) √(2πM_A/(RT)) arising from the finite accommodation probability and molecular speed. The reciprocal relation k_mt = 1/(tau_g + tau_i) (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.116) determines the overall rate at which a gaseous species is transferred to or from the particle surface. Migrated from Aerosol.jl src/mass_transfer.jl `MassTransferCoefficient`.
- MassTransportLimitation
model
aerosol
transport
Mass transport limitation criteria for aqueous-phase chemistry (Seinfeld & Pandis 2006, Chapter 12, Eqs. 12.85, 12.86, 12.93). Computes the threshold values of k₁H* and k₁ below which gas-phase diffusion, aqueous-phase diffusion, and interfacial mass transfer do not limit the aqueous-phase reaction rate by more than 10%. Migrated from Aerosol.jl src/aqueous_transport.jl:53.
- MaxwellianFlux
model
aerosol
mass_transfer
Continuum-regime molar flux of a gas species to a spherical particle. In the continuum limit (Kn ≪ 1) the steady-state diffusive flux is governed by Fick's law on a spherical geometry: J_c = 4πR_p D_g (c_∞ − c_s) (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.12). A positive J_c indicates net uptake (c_∞ > c_s); a negative value indicates net evaporation or desorption (c_s > c_∞). Migrated from Aerosol.jl src/mass_transfer.jl `MaxwellianFlux`.
- McTigueModel
model
geodynamics
McTigue (1987) finite-sphere model for volcanic surface deformation. Extends the Mogi (1958) point-source model by incorporating higher-order correction terms that account for the finite radius of a spherical deformation source. The correction depends on ε = a/d and improves accuracy for larger ε: within 5% of FE models for ε < 0.59, vs ε < 0.37 for Mogi. Three purely-algebraic equations: R = sqrt(x²+d²) (source-to-surface distance), Ur = (Mogi_Ur) × C (Eq. 3, radial displacement), Uz = (Mogi_Uz) × C (Eq. 4, vertical displacement), where C = 1 + (a/d)³ × [(1+ν)/(2(−7+5ν)) + 15d²(−2+ν)/(4R²(−7+5ν))] is the McTigue finite-sphere correction factor. Migrated from Geodynamics.jl@d680af419676cc576d60b16af0d3dd40c0b23eea src/mogi_mctigue.jl:107 (`McTigueModel` @component).
- MeanFreePath
model
aerosol
particle_dyn
Mean free path of air molecules. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:22 (`MeanFreePath` @component). Calculates the mean free path from dynamic viscosity, pressure, molecular weight, and temperature (Seinfeld & Pandis 2006, Chapter 9, Eq. 9.6).
- MeanFreePathMassTransfer
model
aerosol
mass_transfer
Mean free path of gas molecules in air for aerosol mass transfer. Uses the kinetic-theory relation λ = 2μ/(ρ_air c̄_air) where μ is the dynamic viscosity, ρ_air = PM_air/(RT) is the ideal-gas air density, and c̄_air = √(8RT/(πM_air)) is the mean molecular speed of air (S&P 2006, Chapter 12, Section 12.1.3). The resulting λ is the mean free path used to compute the Knudsen number Kn = λ/R_p (see knudsen.esm) and hence the appropriate mass-transfer regime (continuum, transition, or free-molecular). At standard conditions (T=298.15 K, P=101325 Pa) λ ≈ 65 nm. Migrated from Aerosol.jl src/mass_transfer.jl `MeanFreePathMassTransfer`.
- MeanMolecularSpeed
model
aerosol
mass_transfer
Mean molecular speed of gas molecules using kinetic theory (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.24). Computes c̄ = √(8kT/(πm_A)) where m_A = M_A/N_Av is the molecular mass and k_B, N_Av are folded as numeric literals. Migrated from Aerosol.jl src/mass_transfer.jl `MeanMolecularSpeed` (esm-1i9).
- MethaneOxidation
model
gaschem
methane
Methane oxidation reaction-rate diagnostics from Seinfeld & Pandis (2006) Ch. 6 §6.4, Table 6.1, pp. 219-227. Methane oxidation is the archetypal VOC oxidation mechanism in the troposphere, proceeding CH₄ → CH₃O₂ → CH₃O → HCHO → HCO → CO → CO₂. This observed-only algebraic component computes the 17 individual reaction rates R1-R17 of the complete Table 6.1 mechanism (10 bimolecular, 3 termolecular, 4 photolysis reactions) plus three diagnostic aggregates: the gross ozone production rate P_O3_gross = R15 + R3 (the two peroxy-radical + NO channels), the formaldehyde production rate P_HCHO = R6 + R8, and the methane loss rate L_CH4 = R1. Each reaction rate is the product of a 298 K rate constant and the reactant concentrations (R = k·[A]·[B] bimolecular, k·[M]·[A]·[B] termolecular, j·[A] photolysis). The fate of the methylperoxy radical CH₃O₂ — the O₃-producing NO channel R3 versus the chain-terminating HO₂ channel R4 — sets the ozone yield per CH₄ oxidized and is the central NOx-regime diagnostic of the mechanism. Purely algebraic (no time derivatives): 52 variables (15 input species and 17 rate constants encoded as parameters, 20 output diagnostics as state) and 20 equations. Migrated from GasChem.jl@8c12c048 src/methane_oxidation.jl:77 (`MethaneOxidation` @component).
- MethaneOxidationODE
model
gaschem
methane
Full time-resolved ODE system for the methane oxidation mechanism in the polluted-continental troposphere (Seinfeld & Pandis 2006 Ch. 6 §6.4 Table 6.1, pp. 219-227). Eighteen-state stiff ODE on the methane oxidation chain CH₄ → CH₃ → CH₃O₂ → CH₃O → HCHO → HCO → CO → (CO₂) plus the supporting NOx/HOx radical chemistry that recycles OH and converts NO ↔ NO₂. The reaction network has 22 reactions: the 17 canonical Table 6.1 reactions covering the Cl-skeleton oxidation chain through HCHO and ozone-formation chemistry via the peroxy + NO channels, plus 5 auxiliary reactions (CO + OH, OH + NO₂ → HNO₃ termination, HO₂ + HO₂ → H₂O₂ termination, NO + O₃ titration, and a zero-order external OH source representing primary OH production from O(¹D) + H₂O that is implicit in the upstream model). Eight termolecular reactions (R2, R6, R13, R14, R17) and the bimolecular cross-reactions have their O₂ and M dependence folded into effective rate constants k6_eff, k13_eff and the explicit k2_0·M·O₂, k14_0·M·O₂, k17_0·M·O₂ products with M_fixed, O2_fixed parameters at fixed STP-tropospheric values (M = 2.5e25 m⁻³, O₂ = 5.25e24 m⁻³). Migrated from GasChem.jl@8c12c048 src/methane_oxidation.jl:213 (`MethaneOxidationODE` @component / @network_component → Catalyst.ode_model). The reaction-network DSL form upstream is converted to explicit ODE equations here because the migration tracker classifies this as `Model` with `variables, parameters, equations` features (not a ReactionSystem-shaped migration — those go to a separate path; see sibling superfast.esm).
- MidflameWind
model
wildland_fire
Midflame-height wind component — converts horizontal 10m wind components (u_wind, v_wind) to Rothermel's midflame-height wind speed U and wind direction omega relative to the upslope direction. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:249 (`MidflameWind` @component). Observed-only: u_wind, v_wind, slope_aspect, wind_reduction are inputs (parameters); U, omega, u_mf_x, u_mf_y are algebraic outputs. The wind reduction factor (default 0.4 for timber fuels) converts 10m wind speed to midflame height (~6.1 m).
- MieScattering
model
aerosol
mie
Mie theory scattering and extinction efficiencies, cross sections, and mass efficiencies for a spherical particle, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 15, Eqs. 15.3–15.6, 15.41–15.43. The size parameter α = π D_p / λ is algebraic; Q_ext and Q_scat (computed upstream by the Bohren–Huffman algorithm via @register_symbolic Mie functions, ESS gap gt-p3ep) are lifted to input parameters with Mie-computed defaults at D_p = 0.5 µm, λ = 550 nm, n_refr = 1.5, k_refr = 0. Q_abs, ω, the three cross sections (C_scat, C_abs, C_ext), and the three mass efficiencies (E_scat, E_abs, E_ext) are algebraic outputs. Migrated from Aerosol.jl MieScattering.
- MixingRatio
model
atmospheric_dynamics
sp_ch1
Volume (mole) mixing ratio of an atmospheric species: xi = c_i / c_total, the ratio of the species molar concentration to the total molar concentration of air. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:278 (`MixingRatio` @component). Implements Seinfeld & Pandis (2006) Chapter 1 Equation 1.6. The mixing ratio is dimensionless (stored with unit 1) and in the atmosphere spans roughly twelve orders of magnitude — from ~0.78 for the dominant gas N2 down to parts-per-trillion (~1e-12) trace species — so it is conventionally quoted in ppm, ppb, or ppt. Parameterized as observed-only: c_i and c_total are inputs (parameters in standalone form), xi is the algebraic output. Upstream the Julia @component declares c_i, c_total, and xi as @variables for composition into a parent system; for standalone serialization (3 unknowns vs 1 equation otherwise) c_i and c_total are declared as parameters here, mirroring the IdealGasLaw / ScaleHeight / RelativeHumidity serialization pattern in this directory.
- MogiModel
model
geodynamics
Mogi (1958) point-source model for volcanic surface deformation. Computes horizontal-radial (Ur) and vertical (Uz) surface displacements due to a pressurized spherical cavity in an elastic half-space, using the small-sphere (point-source) approximation (ε = a/d ≪ 1). Three purely-algebraic equations: R = sqrt(x²+d²) (source-to-surface distance), Ur = a³ΔP(1−ν)x / (G·R³) (Eq. 1, radial displacement), Uz = a³ΔP(1−ν)d / (G·R³) (Eq. 2, vertical displacement). Migrated from Geodynamics.jl@d680af419676cc576d60b16af0d3dd40c0b23eea src/mogi_mctigue.jl:48 (`MogiModel` @component).
- MonodisperseCoagulation
model
aerosol
dynamics
Total aerosol number concentration evolution for a monodisperse aerosol undergoing Brownian coagulation with constant coagulation coefficient (Seinfeld & Pandis 2006, Ch. 13, Eqs. 13.65-13.67). ODE: dN/dt = -K·N²/2; algebraic characteristic coagulation time τ_c = 2/(K·N₀). Source: Aerosol.jl@c8c640bb:src/dynamics.jl:178.
- MTBS_severity
data_source
earthsci_data
Pure-I/O data loader for MTBS (Monitoring Trends in Burn Severity) post-fire burn-severity products. Provides the time-invariant final burn-severity raster for a single fire: a thematic severity class layer (1=unburned/low … 6=non-processing-area mask) and the continuous dNBR (differenced Normalized Burn Ratio) layer, on the native Albers/geographic raster the MTBS product ships. Sourced as GeoTIFF bands of the per-fire MTBS bundle (one final product per fire — there is no temporal progression).
- MultipleRemovalLifetime
model
gaschem
lifetime
Combined atmospheric lifetime from parallel removal pathways — Seinfeld & Pandis (2006) Ch. 2 (Atmospheric Trace Constituents), Eqs. 2.7-2.9. When a trace species is removed by two independent first-order processes acting simultaneously (rate constants k_1 and k_2), the removal rates add: the inverse lifetimes (1/τ) sum while the lifetimes themselves combine harmonically. This observed-only algebraic component implements four relations: the two individual pathway lifetimes tau_1 = 1/k_1 and tau_2 = 1/k_2 (Eq. 2.6 applied per pathway), the summed inverse lifetime inverse_tau = k_1 + k_2 = 1/tau_1 + 1/tau_2 (Eqs. 2.7-2.8), and the combined lifetime tau_combined = (tau_1·tau_2)/(tau_1+tau_2) = 1/(k_1+k_2) (Eq. 2.9). The combined lifetime is always shorter than either individual pathway lifetime, and the faster (shorter-lifetime) pathway dominates: a fast removal process sets the overall atmospheric lifetime even when a slow pathway is also present; when the two pathways are equal the combined lifetime is exactly half of either. Observed-only algebraic system (no time derivatives): four state variables (tau_1, tau_2, tau_combined in s; inverse_tau in s⁻¹) computed from two rate-constant parameters (k_1, k_2 in s⁻¹) by four algebraic equations. Migrated from GasChem.jl@280ee50f src/AtmosphericLifetime.jl:204 (`MultipleRemovalLifetime` @component).
- NCEPNCAR_Pressure
data_source
earthsci_data
NCEP/NCAR Reanalysis 1 regridding model — the coupler half of the ncep_ncar loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, esm-3nc.1 era5 pattern). Exposes 6-hourly pressure-level atmospheric variables (temperature, geopotential height, vertical velocity, horizontal winds) and static surface geopotential on the simulation's target grid.
- NCEPNCAR_Surface
data_source
earthsci_data
NCEP/NCAR Reanalysis 1 regridding model — the coupler half of the ncep_ncar loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, esm-3nc.1 era5 pattern). Exposes 6-hourly pressure-level atmospheric variables (temperature, geopotential height, vertical velocity, horizontal winds) and static surface geopotential on the simulation's target grid.
- NCEPNCARReanalysis
model
earthsci_data
NCEP/NCAR Reanalysis 1 regridding model — the coupler half of the ncep_ncar loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.2, esm-3nc.1 era5 pattern). Exposes 6-hourly pressure-level atmospheric variables (temperature, geopotential height, vertical velocity, horizontal winds) and static surface geopotential on the simulation's target grid.
- NEI2016
data_source
earthsci_data
US EPA 2016 NEI CMAQ-formatted monthly DataLoader. Converts monthly gridded anthropogenic+biogenic emissions from the 12US1 12-km Lambert Conformal domain to mixing ratio source rates (1/s) for 69 species. Species-specific temporal scaling: CO (day-of-week×diurnal), FORM (diurnal), ISOP (isoprene diurnal), NO/NO2 (NOx day-of-week×NOx diurnal), others (none). The gt-p3ep(lookup) gap is resolved via datetime.hour+floor+interp.linear for diurnal/day-of-week and interp.bilinear for the 94x49 delp_dry_surface field. Migrated from EarthSciData.jl src/nei2016monthly.jl:358 (esm-ftdf).
- NEI2016MonthlyEmis
model
earthsci_data
US EPA 2016 NEI CMAQ-formatted monthly DataLoader. Converts monthly gridded anthropogenic+biogenic emissions from the 12US1 12-km Lambert Conformal domain to mixing ratio source rates (1/s) for 69 species. Species-specific temporal scaling: CO (day-of-week×diurnal), FORM (diurnal), ISOP (isoprene diurnal), NO/NO2 (NOx day-of-week×NOx diurnal), others (none). The gt-p3ep(lookup) gap is resolved via datetime.hour+floor+interp.linear for diurnal/day-of-week and interp.bilinear for the 94x49 delp_dry_surface field. Migrated from EarthSciData.jl src/nei2016monthly.jl:358 (esm-ftdf).
- NH3Equilibria
model
aerosol
aq_eq
Ammonia gas-aqueous dissolution and dissociation equilibria with van't Hoff temperature dependence. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:345 (`NH3Equilibria` @component). Implements Seinfeld & Pandis Ch 7 §7.3.4 (Eq 7.46–7.51) and Table 7.4. Parameterized as observed-only: T, H_plus, and p_NH3 are inputs; H_NH3, K_a1, K_w, OH_minus, NH3_aq, NH4_plus, NH3_total, H_NH3_eff are algebraic outputs.
- NH4NO3Equilibrium
model
aerosol
sp_ch10
ModelingToolkit implementation of ammonium nitrate (NH4NO3) gas-aerosol equilibrium from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 10, Section 10.4.3. NH4NO3 is a semi-volatile aerosol species whose gas-particle partitioning depends strongly on temperature and relative humidity. The component evaluates three temperature- and humidity-dependent quantities: the natural log of the solid-phase dissociation constant ln(Kp) for NH3(g) + HNO3(g) <-> NH4NO3(s) (Eq. 10.91), the deliquescence relative humidity DRH of NH4NO3 (Eq. 10.88), and a phase indicator that is 1 when the ambient RH exceeds the DRH (aqueous aerosol) and 0 otherwise (solid aerosol). Migrated from Aerosol.jl NH4NO3Equilibrium. Purely algebraic: no differential states, three observed outputs and an empty equations array.
- NIFC_burned_fraction
data_source
earthsci_data
Pure-I/O data loader for NIFC / GeoMAC daily wildfire perimeters, RASTERIZED OFFLINE to a burned-fraction grid. Provides a daily burned_fraction(lon,lat) field in [0,1] — the per-cell fraction of area inside the cumulative (or daily) fire perimeter — read as an ordinary gridded time series (one NetCDF per day). This is the day-by-day fire PROGRESSION reference for fire-model validation (campfire-e2e Phase E1/E2).
- NoninteractingSOA
model
aerosol
organic
Gas-particle partitioning model for a secondary organic aerosol (SOA) compound that does not interact with preexisting aerosol. The compound condenses as a pure substance once the reacted ROG exceeds a threshold set by the saturation concentration; below the threshold all product remains in the gas phase. From Seinfeld and Pandis (2006), Chapter 14, Section 14.5.2, Equations 14.6–14.18.
- NOxCycle
model
gaschem
stratospheric
Stratospheric NOx catalytic ozone destruction cycle (Seinfeld & Pandis 2006 Ch. 5 §5.3.2, Eqs. 5.20-5.22). Two-state ODE on the NOx radicals NO and NO2 driven by reactions with O3 and atomic O, plus daytime NO2 photolysis; NOx = NO + NO2 is exactly conserved by construction (D(NO) + D(NO2) ≡ 0). Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:118 (`NOxCycle` @component). Rate coefficients are temperature-dependent Arrhenius forms k_X = k_X_A · exp(C_X / T) with the Seinfeld & Pandis bimolecular CGS pre-factors converted to SI via the cm³/molec/s × 1e-6 → m³/s factor; SI rates and SI number-density concentrations (m^-3) preserved verbatim from upstream.
- NOxPhotochemistry
model
gaschem
nox_photochemistry
The NOx (NO + NO₂) photochemical cycle that governs tropospheric ozone — Seinfeld & Pandis (2006) Ch. 6 §6.2, Eqs. 6.5-6.8, pp. 207-212. During daytime three reactions cycle rapidly between NO, NO₂ and O₃: NO₂ + hν → NO + O (λ < 424 nm), O + O₂ + M → O₃ + M, and NO + O₃ → NO₂ + O₂. In the absence of other oxidants this cycle reaches a photostationary state (the Leighton relationship). Implements four algebraic diagnostic relations: (Eq. 6.5) ground-state O-atom steady-state concentration O = j_NO2·[NO₂] / (k_O_O2_M·[O₂]·[M]), (Eq. 6.6) photostationary-state ozone O3_pss = j_NO2·[NO₂] / (k_NO_O3·[NO]) — the Leighton relationship, (Eq. 6.7) the photostationary-state parameter Φ = j_NO2·[NO₂] / (k_NO_O3·[NO]·[O₃]) which is 1 at exact PSS and deviates when peroxy radicals perturb the cycle, and (Eq. 6.8) the net ozone production rate P_O3 = j_NO2·[NO₂] − k_NO_O3·[NO]·[O₃]. Observed-only algebraic system (no time derivatives): nine variables (five inputs NO/NO2/O3/O2/M encoded as parameters, four outputs O/O3_pss/Φ/P_O3 encoded as state) plus three rate-constant parameters (j_NO2, k_O_O2_M, k_NO_O3). Migrated from GasChem.jl@8c12c048 src/nox_photochemistry.jl:88 (`NOxPhotochemistry` @component). Sibling component PhotostationaryState (src/nox_photochemistry.jl:145) migrates separately to photostationary.esm.
- Nucleation
model
aerosol
nucleation
Full coupled homogeneous nucleation system following classical nucleation theory from Seinfeld & Pandis (2006), Chapter 11. Derives saturation ratio and monomer concentration from partial pressures, then computes critical cluster properties (size, radius, free-energy barrier) and the nucleation rate J. Use this component when the full coupled system is needed; see ClassicalNucleationRate for a lighter variant that takes S and N_1 as direct parameters.
- O3Equilibria
model
aerosol
aq_eq
Ozone (O3) aqueous dissolution equilibrium via temperature-dependent Henry's law. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:589 (`O3Equilibria` @component). Implements Seinfeld & Pandis Ch 7 Table 7.3: K_H(O3, 298 K) = 1.1×10⁻² M/atm, ΔH_sol = −5.04 kcal/mol. O3 does not ionize in water; dissolution is purely described by Henry's law with van't Hoff temperature dependence.
- OfflineModeForcing
model
urban_canopy
Offline-mode atmospheric forcing processor for the Community Land Model Urban (CLMU). Migrated from UrbanCanopy.jl@9200edd4 src/offline_mode.jl:33 (`OfflineModeForcing` @component). Implements Oleson et al. (2010, NCAR Tech Note CLMU Ch. 6): given the raw observational inputs total incident solar radiation S_atm, atmospheric temperature T_atm, pressure P_atm, specific humidity q_atm, wind speed W_atm, and total precipitation rate P_precip, it derives (a) the four-way solar partition into direct/diffuse × visible/NIR via the Eq. 6.7-6.8 cubic polynomials and Eqs. 6.2-6.5 visibility / NIR weighting; (b) the downwelling longwave radiation L_atm_down from the Idso (1981) formula (Eqs. 6.9-6.10) including the vapor-pressure conversion from specific humidity; (c) the rain/snow phase partition from a linear T_atm - T_f ramp (Eqs. 6.11-6.13); and (d) the wind components, potential temperature, and atmospheric reference height (p.149) needed by CLMU's surface-layer routines. Eq. 6.1 (temporal downscaling of 6-hourly solar to model time steps) and Eqs. 6.14-6.15 (specific humidity from RH / dewpoint) are upstream data-preprocessing steps and are intentionally not implemented here; S_atm and q_atm are taken as already at the model time step. Parameterized as observed-only with 18 algebraic equations and 18 state-variable outputs — no time derivatives, no `@register_symbolic` dependencies, no PDE — matching the upstream `length(equations(sys)) == 18` / `length(unknowns(sys)) == 18` structural tests.
- OHProduction
model
gaschem
Tropospheric OH radical production from O₃ photolysis — Seinfeld & Pandis (2006) Ch. 6 §6.1 Eqs. 6.1, 6.3, 6.4, pp. 204-207. The dominant source of OH in the troposphere is O₃ photolysis below 320 nm producing electronically excited O(¹D), which either reacts with H₂O to yield two OH radicals or is collisionally quenched back to ground-state O(³P) by N₂/O₂. Implements three algebraic relations: (Eq. 6.1) O(¹D) steady-state concentration [O(¹D)] = j_O₃·[O₃] / (k₃[M] + k₄[H₂O]), (Eq. 6.4) OH yield ε_OH = 2·k₄[H₂O] / (k₃[M] + k₄[H₂O]) as the fraction of O(¹D) producing OH (the factor of 2 accounts for the 2 OH produced per O(¹D)+H₂O encounter — ε_OH ranges 0..2), (Eq. 6.3) OH production rate P_OH = j_O₃·[O₃]·ε_OH. The effective quenching rate k₃_eff = f_N₂·k₃,N₂ + f_O₂·k₃,O₂ is the air-composition-weighted average of the N₂ and O₂ quenching channels. Observed-only algebraic system (no time derivatives): six variables (three inputs O₃/H₂O/M as parameters, three outputs O₁D/ε_OH/P_OH as state) plus six rate-parameter inputs (j_O₃, k₃_N₂, k₃_O₂, k₄, f_N₂, f_O₂) and one stoichiometric constant (two=2). Migrated from GasChem.jl@8c12c048 src/oh_production.jl:88 (`OHProduction` @component).
- OHReactionLifetime
model
gaschem
lifetime
Atmospheric lifetime against reaction with the hydroxyl radical (OH), from Seinfeld & Pandis (2006) Atmospheric Chemistry and Physics Ch. 2, Eq. 2.12: tau = 1/(k_OH*[OH]). OH is the dominant daytime oxidant of the troposphere, so the OH-reaction lifetime sets how long most reactive trace gases — methane, carbon monoxide, non-methane VOCs — persist in the atmosphere. This observed-only algebraic component implements two relations: an effective pseudo-first-order loss rate constant k_eff = k_OH*OH_conc (the second-order reaction X + OH collapsed onto the approximately constant ambient OH), and the lifetime tau_OH = 1/k_eff. The lifetime is jointly controlled by the species' intrinsic reactivity (k_OH, spanning four-plus decades across tropospheric trace gases) and the ambient oxidising capacity ([OH], varying with season, latitude and pollution): a species may persist for years in clean remote air and only hours in a polluted daytime plume. Purely algebraic system (no time derivatives): four variables — one parameter k_OH, one input OH_conc encoded as a parameter, two outputs k_eff and tau_OH as state — and two equations. Migrated from GasChem.jl@280ee50f src/AtmosphericLifetime.jl:264 (`OHReactionLifetime` @component).
- OneHourFuelMoisture
model
wildland_fire
nfdrs
1-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 3. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:149 (`OneHourFuelMoisture` @component). Observed-only: EMCPRM, MC10, use_fuel_sticks, is_raining are inputs (parameters); MC1 is the algebraic output.
- OpenAQ
model
earthsci_data
OpenAQ regridding model — the coupler half of the openaq loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.5). Exposes ground-based air quality monitoring observations (PM2.5, PM10, O3, NO2, SO2, CO, BC, PM1, NO, NOx) on the simulation's target grid for coupling into EarthSciML systems.
- OpenAQ_obs
data_source
earthsci_data
OpenAQ regridding model — the coupler half of the openaq loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.5). Exposes ground-based air quality monitoring observations (PM2.5, PM10, O3, NO2, SO2, CO, BC, PM1, NO, NOx) on the simulation's target grid for coupling into EarthSciML systems.
- OzoneProductionEfficiency
model
gaschem
co_oxidation
Ozone Production Efficiency (OPE) diagnostic from Seinfeld & Pandis (2006) Ch. 6 §6.3 Eqs. 6.21-6.24, pp. 212-219. OPE = Δ[O₃]/Δ[NOx] is the number of ozone molecules produced per molecule of NOx consumed — a central diagnostic for the NOx-VOC-O₃ regime structure of tropospheric photochemistry. This observed-only algebraic component implements three relations: gross ozone production rate P_O3 = k_HO2_NO·[HO₂]·[NO] + k_RO2_NO·[RO₂]·[NO] (the two peroxy-radical + NO channels — each peroxy+NO reaction makes an NO₂ whose photolysis yields an O₃), NOx loss rate L_NOx = k_OH_NO2·[OH]·[NO₂] (the OH + NO₂ + M → HNO₃ termination, the dominant daytime NOx sink), and OPE = P_O3 / L_NOx. High OPE (low-NOx, NOx-limited regime) means each NOx molecule cycles through many O₃-producing reactions before it is lost as nitric acid; low OPE (high-NOx, VOC-limited regime) means NOx is removed before it can drive much O₃ production. Observed-only algebraic system (no time derivatives): eight variables (five inputs OH/HO₂/RO₂/NO/NO₂ encoded as parameters, three outputs P_O3/L_NOx/OPE as state) plus three rate-constant parameters (k_HO2_NO, k_RO2_NO, k_OH_NO2) and three algebraic equations. Migrated from GasChem.jl@280ee50f src/co_oxidation.jl:183 (`OzoneProductionEfficiency` @component).
- PartialPressureMixingRatio
model
atmospheric_dynamics
sp_ch1
Relates the volume mixing ratio of an atmospheric species to its partial pressure: xi = p_i / p (Seinfeld & Pandis, Atmospheric Chemistry and Physics, Ch. 1, Eq. 1.8). The mixing ratio equals the ratio of the species' partial pressure to the total atmospheric pressure. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:308 (`PartialPressureMixingRatio` @component). Parameterized as observed-only: the partial pressure p_i and total pressure p are inputs (parameters in standalone form), xi is the algebraic output. Upstream the Julia @component declares p_i, p, and xi as @variables for composition into a parent system; for standalone serialization (3 unknowns vs 1 equation otherwise), p_i and p are declared as parameters here, mirroring the IdealGasLaw / ScaleHeight serialization pattern in the same module.
- ParticleCollectionEfficiency
model
atmospheric_deposition
sp06_ch20
Slinn (1983) semi-empirical collision (collection) efficiency E between a falling raindrop and an aerosol particle, the kernel of below-cloud particle scavenging (Eqs. 20.53-20.54, Seinfeld & Pandis, 2006). E is the sum of three collection mechanisms — Brownian diffusion (E_diff, important for sub-0.1 µm particles), interception (E_int), and inertial impaction (E_imp, important for super-µm particles, switched on only when the Stokes number exceeds the critical Stokes number S* of Eq. 20.54) — and is clamped to a maximum of 1. The competition between the diffusion and impaction mechanisms produces the Greenfield gap: a collection-efficiency minimum at accumulation-mode (~0.1-1 µm) particle sizes. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:365 (`ParticleCollectionEfficiency` @component). The upstream component carries the single equation E ~ slinn_collection_efficiency(D_p, U_t, d_p, ρ_p, T); the helper function and its sub-helpers (particle_diffusivity, particle_relaxation_time, particle_terminal_velocity) are decomposed here into 18 named intermediate algebraic states (Re, D_diff, Sc, τ, St, S_star, E_diff, E_int, E_imp, ...) mirroring the helper's local variables, so each equation maps to one source line. Observed-only: all 18 equations are algebraic — the five raindrop/aerosol/thermodynamic inputs and six physical constants are parameters, and Re through E are the algebraic outputs.
- ParticleGrowthRate
model
aerosol
mass_transfer
Rate of change of particle radius due to condensation or evaporation of a trace gas. Models diffusion-limited radial growth in the continuum regime via Eq. 12.14 of Seinfeld & Pandis (2006): dR_p/dt = (D_g M_A / (ρ_p R_p)) (c_∞ − c_s). The quadratic-in-R_p growth law R_p(t)² = R_p0² + 2Kt (K = D_g M_A (c_∞ − c_s)/ρ_p) is the classical result for condensation onto an absorbing sphere in the continuum limit. Migrated from Aerosol.jl src/mass_transfer.jl `ParticleGrowthRate`.
- ParticleMobility
model
aerosol
particle_dyn
Particle mechanical mobility for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:230 (`ParticleMobility` @component). Computes the particle mobility B, which relates an external force on a particle to the steady drift velocity it produces; via the Einstein relation D = B k T it also fixes the Brownian diffusivity (Seinfeld & Pandis 2006, Chapter 9, Eq. 9.78).
- ParticleScavengingCoeff
model
atmospheric_deposition
sp06_ch20
Below-cloud scavenging coefficient Λ_particle for an aerosol particle collected by monodisperse raindrops (Seinfeld & Pandis 2006, Chapter 20, Eq. 20.57): Λ_particle = (3/2)·E·p₀/D_p, where E is the Slinn (1983) raindrop-aerosol collision (collection) efficiency of Eqs. 20.53-20.54, p₀ the precipitation rate and D_p the raindrop diameter. E sums three collection mechanisms — Brownian diffusion, interception, and inertial impaction (switched on only when the Stokes number exceeds the critical Stokes number S*) — and is clamped to a maximum of 1; their competition produces the Greenfield gap, a scavenging minimum at accumulation-mode (~0.1-1 µm) particle sizes. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:414 (`ParticleScavengingCoeff` @component). The upstream slinn_collection_efficiency helper and its diffusivity / relaxation-time / settling-velocity sub-helpers are decomposed into 18 named intermediate algebraic states (Re, D_diff, Sc, τ, St, S_star, E_diff, E_int, E_imp, ...) — identical to the sibling component particle_collection_eff.esm — and a 19th equation applies Eq. 20.57. The five raindrop/aerosol/thermodynamic inputs, the precipitation rate, and six physical constants are parameters; Re through E and Λ_particle are the algebraic outputs.
- ParticleSettling
model
atmospheric_deposition
sp_ch19
Gravitational settling velocity and Brownian diffusivity of an aerosol particle, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition). Two algebraic outputs are computed from the particle and air properties. The settling (terminal) velocity v_s = rho_p*D_p^2*g*C_c/(18*mu) (Eq. 19.18) is the steady gravitational drift speed of a particle in the Stokes (low-Reynolds-number) regime, where aerodynamic drag balances gravity; the Cunningham slip correction factor C_c (>= 1) accounts for the non-continuum reduction in drag when the particle diameter approaches the mean free path of air. The Brownian diffusivity D_diff = k_B*T*C_c/(3*pi*mu*D_p) (Eq. 19.20) is the Stokes-Einstein diffusion coefficient describing the particle's thermal random walk. The two quantities have opposite size dependence -- v_s grows as D_p^2 while D_diff falls as 1/D_p -- which is the physical origin of the dry-deposition-velocity minimum for accumulation-mode (~0.1-1 um) aerosol: such particles settle too slowly to deposit gravitationally yet are too large to diffuse efficiently to the surface. Both quantities feed the Zhang et al. (2001) quasi-laminar resistance and the overall particle dry deposition velocity computed by the sibling sp_ch19 components. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:182 (`ParticleSettling` @component). Observed-only algebraic model: rho_p, D_p, mu, T, C_c are input parameters, g/k_B/pi_val are physical-constant parameters, and v_s and D_diff are the two algebraic outputs, each fixed by one equation with no time derivative.
- PerviousRoadWaterBalance
model
urban_canopy
hydro
Net water-input rate for the pervious-road column (Oleson et al. 2010, CLM Tech Note Ch. 5, Eq. 5.1, p. 110). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:900 (`PerviousRoadWaterBalance` @component). Algebraic single-equation balance: water_input = (precipitation gains) − (evaporation + surface runoff + sub-surface drainage + groundwater liquid runoff + snow-capping solid runoff).
- PhaseChangeAdjustment
model
urban_canopy
temps
Per-layer phase-change adjustment for ice/liquid water redistribution and temperature correction in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:686 (`PhaseChangeAdjustment` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.60–4.65: given the excess/deficit energy H_i (W/m²) available for phase change in layer i (from `PhaseChangeEnergy`), recompute ice mass w_ice^{n+1}, liquid water mass w_liq^{n+1}, and layer temperature T^{n+1}. Melting occurs when H_i > 0 (surplus energy melts ice up to available mass); freezing occurs when H_i < 0 (deficit energy freezes liquid water). Residual energy H_res = H_i - L_f*(w_ice^n - w_ice^{n+1})/Δt that cannot drive further phase change adjusts the layer temperature. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share equations 1–4 (Eqs. 4.60–4.64) and differ only in Eq. 4.65 (temperature correction): the :top variant divides by (1 - (Δt/(c_i*Δz_i))*dh_dT) to account for the linearized surface-heat-flux feedback; the :interior variant uses the denominator = 1 (no surface feedback). Both variants are unified here via a dimensionless switch parameter `is_top` (0.0 = interior, 1.0 = top), identical to the unification strategy used by the sibling `PhaseChangeEnergy` component. NOTE: the migration-tracker entry for this component listed `blocking_gap: other:discretization-plan` citing line :1227, but that line belongs to `RoadHeatConduction` (a separate non-exported helper function). `PhaseChangeAdjustment` itself is a pure algebraic MTK `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- PhaseChangeEnergy
model
urban_canopy
temps
Per-layer energy excess/deficit available for phase change in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:496 (`PhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.59 for layer i: the imbalance between net heat fluxes (Crank-Nicholson average of times n and n+1) and the thermal storage required to bring the layer to the freezing point T_f. When H_excess > 0 the layer has surplus energy that can melt ice; when H_excess < 0 it has deficit energy that can freeze liquid water. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share a Crank-Nicholson bottom-flux contribution and the thermal-storage term but differ in the upper boundary: the :top variant adds a surface heat flux `h_n + dh_dT*(T_f - T_i_n)` (Eq. 4.59 for i = snl+1), while the :interior variant subtracts the upper-interface Crank-Nicholson flux `α_CN*F_im1_n + (1-α_CN)*F_im1_np1` (Eq. 4.59 for i > snl+1). Both variants are merged here into a single algebraic equation switched by an `is_top` dimensionless parameter (0.0 = interior, 1.0 = top); both upstream test fixtures pass against this merged form with the appropriate parameter set.
- PhotonEnergy
model
gaschem
radiation
Photon energy equation (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.1) — the energy Δε and frequency ν of a photon as a function of wavelength λ via Planck's constant h and the speed of light c: ν = c/λ and Δε = hν, equivalently the chained form Δε = hc/λ. The component is observed-only: two algebraic equations on two state variables (Δε the photon energy in J and ν the frequency in Hz) driven by one input parameter (λ the wavelength) and two constants (h Planck's constant and c the speed of light). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:25 (`PhotonEnergy` @component). The photon energy equation is the foundational quantum-radiative bridge that maps continuous-wave radiation to the discrete photon picture: paired with the Planck spectral distribution (BlackbodyRadiation), Stefan-Boltzmann total flux (StefanBoltzmann), and Wien peak displacement (WienDisplacement), it lets a radiative-transfer model convert spectral irradiance to photon fluxes and back — the quantity needed for actinic-flux / photolysis-rate calculations that drive atmospheric photochemistry (e.g., O2 + hν → 2 O at ~242 nm and O3 + hν → O + O2 at ~310 nm, the two Chapman-cycle photolysis channels). The defaults (λ = 500 nm) give ν ≈ 600 THz and Δε ≈ 3.97e-19 J ≈ 2.48 eV — visible green light, the canonical solar-peak wavelength matching Wien's law applied to T_sun ≈ 5800 K.
- PhotostationaryState
model
gaschem
nox_photochemistry
Photostationary-state diagnostic for the NO-NO₂-O₃ Leighton cycle — Seinfeld & Pandis (2006) Ch. 6 §6.2, Eqs. 6.6-6.7, pp. 207-212. Computes the photostationary-state parameter Φ = j_NO2·[NO₂] / (k_NO+O₃·[NO]·[O₃]) and its deviation from unity Φ_deviation = Φ - 1. Φ = 1 is the exact Leighton photostationary state (pure NO-NO₂-O₃ cycling, zero net ozone production); Φ > 1 indicates additional oxidants (peroxy radicals HO₂/RO₂ converting NO→NO₂ and producing ozone), Φ < 1 indicates net ozone loss. This observed-only algebraic component is the simplified companion to NOxPhotochemistry (the full Eqs. 6.5-6.8 diagnostic): five variables (three inputs NO/NO₂/O₃ encoded as parameters, two outputs Φ/Φ_deviation as state), two rate parameters (j_NO2, k_NO_O3) plus the dimensionless unity constant `one`, and two algebraic equations. No time derivatives. Migrated from GasChem.jl@8c12c048 src/nox_photochemistry.jl:145 (`PhotostationaryState` @component).
- PlanetaryEnergyBalance
model
gaschem
radiation
Planetary equilibrium temperature from the top-of-atmosphere energy balance (Seinfeld & Pandis 2006 Ch. 4 Eqs. 4.5-4.7). The absorbed solar flux F_S = S_0/4 * (1 - R_p), the emitted longwave flux F_L = sigma * T_e^4 (Stefan-Boltzmann law), and at equilibrium F_S = F_L. Solving the constraint gives T_e = (S_0/4 * (1-R_p) / sigma)^(1/4). At canonical Earth values (S_0 = 1370 W/m^2, R_p = 0.3), F_S = F_L = 239.75 W/m^2 and T_e = 255 K (S&P p. 101). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:211 (`PlanetaryEnergyBalance` @component).
- PolarAerosol
model
aerosol
size
ModelingToolkit implementation of the Polar atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Polar distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [21.7, 0.186, 3.0e-4] cm^-3, D_g = [0.138, 0.75, 8.6] um, log10 sigma = [0.245, 0.300, 0.291]) — a dilute accumulation mode plus two coarse modes characteristic of the very clean polar atmosphere. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl PolarAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Polar Table 8.3 mode parameters as defaults.
- Pollu
reaction_system
gaschem
POLLU air-pollution photochemistry mechanism from GasChem.jl. 20 species and 25 reactions (15 thermal + 10 photolytic) describing tropospheric NOx / odd-oxygen / hydrocarbon / sulfur chemistry. Introduced by Verwer (1994) as a stiff-ODE benchmark for chemical-kinetics integrators and widely used since as a standard stiff test problem. Hand-translated from the upstream Catalyst @reaction_network in GasChem.jl src/Pollu.jl: 25 rate constants carried verbatim as parameters, 20 species with their declared reservoir defaults, and 25 mass-action reactions numbered R1..R25 in the canonical POLLU order. All reaction rates are bare parameter references and all substrate stoichiometries are 1, so the serialized mass-action system matches the upstream combinatoric_ratelaws=false ReactionSystem exactly.
- Puff
model
environmental_transport
Lagrangian puff transport model that advects a parcel of matter within a 3-D fluid velocity field defined by a DomainInfo coordinate system. The puff position in three coordinates (lev, x, y) evolves under prescribed velocity components (v_lev, v_x, v_y) scaled by coordinate transforms. Vertical boundaries (glo, ghi) are enforced via ifelse clamping of the vertical velocity with a small offset buffer: upward motion is blocked when lev > ghi−offset and downward motion when lev < glo+offset. Lateral domain boundaries trigger simulation termination (FunctionalAffect gap other:P2-C); the effective lateral boundary distance is set via grid_spacing×buffer_cells offsets from the domain edge (parameter gap other:P3-B). Migrated from EnvironmentalTransport.jl@a48559c4114eb9f06668ecf9f06235aad20f63f0 src/puff.jl:24.
- QuasiLaminarResistanceGas
model
atmospheric_deposition
sp_ch19
ModelingToolkit implementation of the quasi-laminar (boundary-layer) resistance to gaseous dry deposition from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition), Eq. 19.17. The quasi-laminar resistance r_b [s/m] is the second of the three series resistances of the gas dry-deposition resistance model (r_a aerodynamic + r_b quasi-laminar + r_c surface) and represents molecular diffusion of the depositing gas across the thin, quasi-laminar sublayer of stagnant air in direct contact with the surface. It is computed as r_b = 5*Sc^(2/3)/u_star, where the Schmidt number Sc = nu/D_g is the ratio of the kinematic viscosity of air nu to the molecular diffusivity D_g of the gas, and u_star is the friction velocity. Slower-diffusing (higher-Sc) gases face a larger boundary-layer resistance, and stronger surface turbulence (higher u_star) thins the sublayer and lowers r_b. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:143 (`QuasiLaminarResistanceGas` @component). Algebraic (no time derivative) two-equation system: Sc and r_b are the algebraic outputs (the upstream component's computed @variables, migrated as type:state); nu and D_g are the input @parameters and u_star is the upstream input @variable (migrated as type:parameter -- it carries no defining equation and the upstream test suite compiles the component with u_star declared as an input).
- QuasiLaminarResistanceParticle
model
atmospheric_deposition
sp_ch19
Zhang et al. (2001) quasi-laminar (boundary-layer) resistance r_b for particle dry deposition, Seinfeld & Pandis (2006) Ch. 19 Eq. 19.27. r_b = 1/(3*u_star*(E_B+E_IM+E_IN)*R_1) sums three size-dependent collection mechanisms — Brownian diffusion E_B (Eq. 19.21), inertial impaction E_IM (Eq. 19.22), and interception E_IN (Eq. 19.25) — scaled by the friction velocity u_star and the rebound-correction sticking fraction R_1 (Eq. 19.26). The competition between diffusion (efficient for sub-0.1 um particles) and impaction (efficient for super-um particles) leaves a deposition minimum at accumulation-mode sizes. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:234 (`QuasiLaminarResistanceParticle` @component). The seven upstream equations are migrated verbatim and one-to-one; the five input @parameters, the @constant g, and the three externally-supplied input @variables (u_star, v_s, D_diff) are all parameters, and the seven equation-defined quantities (Sc, St, E_B, E_IM, E_IN, R_1, r_b) are the algebraic outputs.
- RadiationFundamentals
model
gaschem
radiation
Composed radiation-fundamentals system from Seinfeld & Pandis (2006) Chapter 4 (Eqs. 4.1-4.11). A pure structural aggregation (no coupling equations) of seven independent components: PhotonEnergy (photon energy-frequency-wavelength relations, Eq. 4.1), BlackbodyRadiation (Planck's law, Eq. 4.2), WienDisplacement (peak emission wavelength, Eq. 4.3), StefanBoltzmann (total emissive power, Eq. 4.4), PlanetaryEnergyBalance (Earth's equilibrium temperature, Eqs. 4.5-4.7), ClimateSensitivity (temperature response to forcing, Eqs. 4.8-4.10), and TOARadiativeForcing (net top-of-atmosphere flux, Eq. 4.11). Each component is inlined as a named subsystem; variables are dot-namespaced (RadiationFundamentals.<subsystem>.<var>). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:367 (`RadiationFundamentals` @component).
- RADM2
reaction_system
gaschem
radm2
The RADM2 gas-phase mechanism (Stockwell et al. 1990) exactly as WRF-Chem chem_opt = 101 (the KPP build of RADM2; chem_opt = 1 is the older hand-coded RADM2 of chem/module_radm.F, a different code path) integrates it: the 156 reactions of radm2.eqn (21 photolysis + 135 thermal) over 59 variable species, translated from chem/KPP/mechanisms/radm2/radm2.eqn and radm2.spc of WRF v4.8.0 by a translation script. The reaction system has 157 entries, one more than the .eqn, because the negative product "-0.9 OH" of reaction 60 is written as the extra entry R060x. The document holds three components. The model RADM2RateConstants evaluates every thermal rate coefficient from the hand-authored WRF rate-law templates (radm2_ratelaws.esm) with the .eqn coefficients bound once, and exposes them as observeds tested at t = 0 against the real64 KPP box driver and against a real WRF-Chem chem_opt = 101 single-column run. The reaction system RADM2 carries the stoichiometry only, each rate being a scoped reference to that model (photolysis rates are its parameters j_*). The model RADM2Tendencies exposes the mass-action tendency of every species as an observed, so the right-hand side is tested at t = 0 independently of any integrator. Species are in molec/cm^3 (the KPP units; WRF converts its ppmV chem array with conv = 1e-6 dens2con_a rho). The two KPP fixed species are not species here: air (M) and water vapour (H2O) are the parameters RADM2RateConstants.M and RADM2RateConstants.H2O, the single source of each for the whole document. The rate laws read them as arguments, the five reactions in which KPP multiplies by a fixed species (R022, R024 and R036 by M; R025 and R033 by H2O) multiply their rate by them, and the relative humidity of the heterogeneous N2O5 rate is derived from H2O, M, T and p with WRF's own formula, so no override can leave two copies of one quantity disagreeing. Mass action is that of esm-spec 7.4, v = k prod S_i^n_i with no 1/n_i! factor, which is also what KPP generates. The eight reactions with a doubled substrate (R032 and R033 HO2 + HO2, R036 NO + NO, R119 MO2 + MO2, R140 ACO3 + ACO3, R147 XO2 + XO2, R153 XNO2 + XNO2, R156 OLN + OLN) carry their .eqn coefficients unchanged on that understanding: a binding that lowers this document to Catalyst.jl must build it with combinatoric_ratelaws = false, or those eight rates come out at half the KPP value. Single-precision literals of radm2.eqn and of the WRF-Chem coupler (.20946e0, .78084, -2.3, the constants of rc_n2o5 and of the relative humidity) are transcribed as the binary64 value of the single-precision number, since that is what the Fortran evaluates.
- RADM2RateConstants
model
gaschem
radm2
The RADM2 gas-phase mechanism (Stockwell et al. 1990) exactly as WRF-Chem chem_opt = 101 (the KPP build of RADM2; chem_opt = 1 is the older hand-coded RADM2 of chem/module_radm.F, a different code path) integrates it: the 156 reactions of radm2.eqn (21 photolysis + 135 thermal) over 59 variable species, translated from chem/KPP/mechanisms/radm2/radm2.eqn and radm2.spc of WRF v4.8.0 by a translation script. The reaction system has 157 entries, one more than the .eqn, because the negative product "-0.9 OH" of reaction 60 is written as the extra entry R060x. The document holds three components. The model RADM2RateConstants evaluates every thermal rate coefficient from the hand-authored WRF rate-law templates (radm2_ratelaws.esm) with the .eqn coefficients bound once, and exposes them as observeds tested at t = 0 against the real64 KPP box driver and against a real WRF-Chem chem_opt = 101 single-column run. The reaction system RADM2 carries the stoichiometry only, each rate being a scoped reference to that model (photolysis rates are its parameters j_*). The model RADM2Tendencies exposes the mass-action tendency of every species as an observed, so the right-hand side is tested at t = 0 independently of any integrator. Species are in molec/cm^3 (the KPP units; WRF converts its ppmV chem array with conv = 1e-6 dens2con_a rho). The two KPP fixed species are not species here: air (M) and water vapour (H2O) are the parameters RADM2RateConstants.M and RADM2RateConstants.H2O, the single source of each for the whole document. The rate laws read them as arguments, the five reactions in which KPP multiplies by a fixed species (R022, R024 and R036 by M; R025 and R033 by H2O) multiply their rate by them, and the relative humidity of the heterogeneous N2O5 rate is derived from H2O, M, T and p with WRF's own formula, so no override can leave two copies of one quantity disagreeing. Mass action is that of esm-spec 7.4, v = k prod S_i^n_i with no 1/n_i! factor, which is also what KPP generates. The eight reactions with a doubled substrate (R032 and R033 HO2 + HO2, R036 NO + NO, R119 MO2 + MO2, R140 ACO3 + ACO3, R147 XO2 + XO2, R153 XNO2 + XNO2, R156 OLN + OLN) carry their .eqn coefficients unchanged on that understanding: a binding that lowers this document to Catalyst.jl must build it with combinatoric_ratelaws = false, or those eight rates come out at half the KPP value. Single-precision literals of radm2.eqn and of the WRF-Chem coupler (.20946e0, .78084, -2.3, the constants of rc_n2o5 and of the relative humidity) are transcribed as the binary64 value of the single-precision number, since that is what the Fortran evaluates.
- RADM2Tendencies
model
gaschem
radm2
The RADM2 gas-phase mechanism (Stockwell et al. 1990) exactly as WRF-Chem chem_opt = 101 (the KPP build of RADM2; chem_opt = 1 is the older hand-coded RADM2 of chem/module_radm.F, a different code path) integrates it: the 156 reactions of radm2.eqn (21 photolysis + 135 thermal) over 59 variable species, translated from chem/KPP/mechanisms/radm2/radm2.eqn and radm2.spc of WRF v4.8.0 by a translation script. The reaction system has 157 entries, one more than the .eqn, because the negative product "-0.9 OH" of reaction 60 is written as the extra entry R060x. The document holds three components. The model RADM2RateConstants evaluates every thermal rate coefficient from the hand-authored WRF rate-law templates (radm2_ratelaws.esm) with the .eqn coefficients bound once, and exposes them as observeds tested at t = 0 against the real64 KPP box driver and against a real WRF-Chem chem_opt = 101 single-column run. The reaction system RADM2 carries the stoichiometry only, each rate being a scoped reference to that model (photolysis rates are its parameters j_*). The model RADM2Tendencies exposes the mass-action tendency of every species as an observed, so the right-hand side is tested at t = 0 independently of any integrator. Species are in molec/cm^3 (the KPP units; WRF converts its ppmV chem array with conv = 1e-6 dens2con_a rho). The two KPP fixed species are not species here: air (M) and water vapour (H2O) are the parameters RADM2RateConstants.M and RADM2RateConstants.H2O, the single source of each for the whole document. The rate laws read them as arguments, the five reactions in which KPP multiplies by a fixed species (R022, R024 and R036 by M; R025 and R033 by H2O) multiply their rate by them, and the relative humidity of the heterogeneous N2O5 rate is derived from H2O, M, T and p with WRF's own formula, so no override can leave two copies of one quantity disagreeing. Mass action is that of esm-spec 7.4, v = k prod S_i^n_i with no 1/n_i! factor, which is also what KPP generates. The eight reactions with a doubled substrate (R032 and R033 HO2 + HO2, R036 NO + NO, R119 MO2 + MO2, R140 ACO3 + ACO3, R147 XO2 + XO2, R153 XNO2 + XNO2, R156 OLN + OLN) carry their .eqn coefficients unchanged on that understanding: a binding that lowers this document to Catalyst.jl must build it with combinatoric_ratelaws = false, or those eight rates come out at half the KPP value. Single-precision literals of radm2.eqn and of the WRF-Chem coupler (.20946e0, .78084, -2.3, the constants of rc_n2o5 and of the relative humidity) are transcribed as the binary64 value of the single-precision number, since that is what the Fortran evaluates.
- RainFormation
model
aerosol
cloud_physics
Rain formation by collision and coalescence (Seinfeld & Pandis 2006, Eqs. 17.104-17.108). Computes collection efficiency, continuous accretion rate, and raindrop size distributions (Best CDF and Marshall-Palmer number density).
- rate_2HO2
model
gaschem
The five SuperFast rate-law helper functions migrated from GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309 src/SuperFast.jl — the reusable builder functions the SuperFast() chemical mechanism uses to construct the rate coefficient of every gas-phase reaction. Each is migrated as its own observed-only algebraic `models` entry: rate_toppb (SuperFast.jl:6) the constant-rate / `constant_k` converter, arrh (:33) the modified-Arrhenius workhorse, arr_3rd (:64) the third-body / Troe-falloff law, rate_2HO2 (:102) the HO2+HO2 law with water-vapour enhancement, and rate_OH_CO (:142) the JPL 15-10 OH+CO law. Upstream each function returns a one-variable ReactionSystem (`@variables k(t)`); the composed builders (arr_3rd, rate_2HO2, rate_OH_CO) compose `arrh` sub-systems. This file reproduces each function's compiled rate as a topologically-ordered cascade of `type: state` algebraic equations whose named intermediates mirror the upstream Julia locals and sub-system k's verbatim, with the Arrhenius coefficients exposed as `type: parameter` (defaults taken from the representative SuperFast reaction each builder serves). All five models are purely algebraic — no time derivatives — so each rate coefficient is constant in time. Units follow the upstream's mixed CGS / ppb system (rate coefficients in 1/(s*ppb), Arrhenius pre-exponentials in cm^3/molec/s).
- rate_ALK
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_DMSOH
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_EPO
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_GLYCOH_a
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_GLYCOH_b
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_GLYXNO3
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_HACOH_a
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_HACOH_b
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_HO2HO2
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_ISO1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_ISO2
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_NIT
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_OH_CO
model
gaschem
The five SuperFast rate-law helper functions migrated from GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309 src/SuperFast.jl — the reusable builder functions the SuperFast() chemical mechanism uses to construct the rate coefficient of every gas-phase reaction. Each is migrated as its own observed-only algebraic `models` entry: rate_toppb (SuperFast.jl:6) the constant-rate / `constant_k` converter, arrh (:33) the modified-Arrhenius workhorse, arr_3rd (:64) the third-body / Troe-falloff law, rate_2HO2 (:102) the HO2+HO2 law with water-vapour enhancement, and rate_OH_CO (:142) the JPL 15-10 OH+CO law. Upstream each function returns a one-variable ReactionSystem (`@variables k(t)`); the composed builders (arr_3rd, rate_2HO2, rate_OH_CO) compose `arrh` sub-systems. This file reproduces each function's compiled rate as a topologically-ordered cascade of `type: state` algebraic equations whose named intermediates mirror the upstream Julia locals and sub-system k's verbatim, with the Arrhenius coefficients exposed as `type: parameter` (defaults taken from the representative SuperFast reaction each builder serves). All five models are purely algebraic — no time derivatives — so each rate coefficient is constant in time. Units follow the upstream's mixed CGS / ppb system (rate coefficients in 1/(s*ppb), Arrhenius pre-exponentials in cm^3/molec/s).
- rate_OHCO
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_OHHNO3
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_PAN_abab
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_PAN_acac
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_RO2HO2
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_RO2NO_a1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_RO2NO_a2
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_RO2NO_b1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_RO2NO_b2
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- rate_toppb
model
gaschem
The five SuperFast rate-law helper functions migrated from GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309 src/SuperFast.jl — the reusable builder functions the SuperFast() chemical mechanism uses to construct the rate coefficient of every gas-phase reaction. Each is migrated as its own observed-only algebraic `models` entry: rate_toppb (SuperFast.jl:6) the constant-rate / `constant_k` converter, arrh (:33) the modified-Arrhenius workhorse, arr_3rd (:64) the third-body / Troe-falloff law, rate_2HO2 (:102) the HO2+HO2 law with water-vapour enhancement, and rate_OH_CO (:142) the JPL 15-10 OH+CO law. Upstream each function returns a one-variable ReactionSystem (`@variables k(t)`); the composed builders (arr_3rd, rate_2HO2, rate_OH_CO) compose `arrh` sub-systems. This file reproduces each function's compiled rate as a topologically-ordered cascade of `type: state` algebraic equations whose named intermediates mirror the upstream Julia locals and sub-system k's verbatim, with the Arrhenius coefficients exposed as `type: parameter` (defaults taken from the representative SuperFast reaction each builder serves). All five models are purely algebraic — no time derivatives — so each rate coefficient is constant in time. Units follow the upstream's mixed CGS / ppb system (rate coefficients in 1/(s*ppb), Arrhenius pre-exponentials in cm^3/molec/s).
- RayleighAtmosphere
model
aerosol
mie
Rayleigh scattering coefficient and maximum visual range for a clean Rayleigh atmosphere. The scattering coefficient b_sg scales as λ^-4 (Seinfeld & Pandis 2006, Chapter 15, Problem 15.1A), and the maximum visual range x_v_max = 3.912/b_sg (Eq. 15.36). Both outputs depend only on temperature, pressure, and wavelength — no aerosol loading. Migrated from Aerosol.jl src/mie_scattering.jl `RayleighAtmosphere`.
- RayleighScattering
model
aerosol
mie
Optical scattering, absorption, and extinction properties of small particles in the Rayleigh regime (size parameter α = πD_p/λ << 1), from Seinfeld & Pandis (2006) Atmospheric Chemistry and Physics, 2nd ed., Chapter 15, Eqs. 15.4, 15.5, 15.19, 15.21, and 15.41-15.43. Computes the size parameter α, the Clausius-Mossotti factor (m²-1)/(m²+2), and from them the Rayleigh scattering efficiency Q_scat, absorption efficiency Q_abs, extinction efficiency Q_ext, single-scattering albedo ω, and mass efficiencies E_ext/E_scat/E_abs. The two upstream @register_symbolic helper functions (rayleigh_m2_factor_real, rayleigh_m2_factor_imag) are resolved as closed-form algebraic AST, closing the gt-p3ep blocking gap. Migrated from Aerosol.jl src/mie_scattering.jl.
- ReactionTimescale
model
aerosol
timescales
ModelingToolkit implementation of the characteristic timescale for aqueous-phase chemical reaction within a cloud droplet or wetted aerosol particle, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12, Eqs. 12.76-12.78. The component reports two diagnostics for a first-order aqueous reaction: the aqueous-phase reaction timescale τ_ra = 1/k_rxn (Eq. 12.76), the e-folding time of a dissolved species consumed by a first-order reaction of rate constant k_rxn; and the gas-phase reference reaction timescale τ_rg = τ_ra/(H*·R·T) (Eq. 12.78), the same timescale referenced to the gas phase through the dimensionless effective Henry's law solubility H*·R·T. Migrated from Aerosol.jl ReactionTimescale. Purely algebraic: no differential states, two observed outputs and an empty equations array.
- regress_T
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- RelativeHumidity
model
atmospheric_dynamics
sp_ch1
Relative humidity from water-vapor partial pressure and saturation vapor pressure: RH = 100 * p_H2O / p_sat. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:397 (`RelativeHumidity` @component). Implements Seinfeld & Pandis Ch 1 Eq. 1.9. Relative humidity is expressed as a percentage (0-100 for subsaturated air, >100 under transient supersaturation), stored as a dimensionless ratio scaled by 100. Parameterized as observed-only: p_H2O and p_sat are inputs (parameters in standalone form), RH is the algebraic output. Upstream the Julia @component declares p_H2O and p_sat as @variables for composition into a parent system; for standalone serialization (3 unknowns vs 1 equation otherwise), they are declared as parameters here, mirroring the IdealGasLaw / ScaleHeight serialization pattern in this directory.
- RemoteConditions
model
gaschem
combined
Parameters-preset model representing typical remote/background tropospheric conditions with low NOx. Migrated from GasChem.jl@8c12c048 src/combined_system.jl:261 (`RemoteConditions` @component). Eleven species concentrations are declared as parameters in SI units (m⁻³); the model exposes them as algebraic outputs (`*_out`) so a parent system or test harness can read presets without depending on MTK parameter-introspection APIs. Based on Seinfeld & Pandis Chapter 6 background conditions: ~30 ppb O₃, ~10 ppt NO, ~20 ppt NO₂, ~80 ppb CO.
- RemoteContinentalAerosol
model
aerosol
size
ModelingToolkit implementation of the Remote-continental atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Remote-continental distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [3200, 2900, 0.3] cm^-3, D_g = [0.020, 0.116, 1.800] um, log10 sigma = [0.161, 0.217, 0.380]) — a number-rich continental background of two fine modes plus a sparse coarse mode at 1.8 um. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl RemoteContinentalAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Remote-continental Table 8.3 mode parameters as defaults.
- ReversibleGasScavenging
model
atmospheric_deposition
sp06_ch20
Below-cloud scavenging of a reversibly-absorbed (Henry's-law) trace gas by falling raindrops, from Chapter 20 (Wet Deposition) of Seinfeld & Pandis (2006). Unlike the irreversible-uptake parameterizations used for highly soluble species such as HNO3, this component retains the equilibrium (Henry's law) ceiling: a raindrop falling through polluted air relaxes toward -- but cannot exceed -- the aqueous concentration in equilibrium with the local gas phase, and a drop entering the layer already overloaded (C_aq0 above equilibrium) instead desorbs gas back to the air. Two algebraic outputs: C_aq_ground (Eq. 20.33, which is Eq. 20.28 evaluated at the cloud-base fall distance h) is the aqueous-phase concentration in a drop arriving at the ground; F_bc (Eq. 20.35) is the total below-cloud scavenging flux. Both are governed by the single dimensionless exponent alpha = 6*K_c*h/(D_p*U_t*HRT): the drop relaxes from its initial aqueous concentration C_aq0 toward the Henry's-law equilibrium C_eq = C_g*HRT, and (1 - exp(-alpha)) is the fraction of that equilibrium uptake realised over the fall. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:194 (`ReversibleGasScavenging` @component). The upstream component is a flat MTK System whose two equations call the module helper functions reversible_drop_conc (Eq. 20.28) and reversible_scavenging_flux (Eq. 20.35); both helpers are inlined into the equation ASTs here. The eight upstream @parameters (C_g, HRT, K_c, D_p, U_t, h, C_aq0, p0) map directly to type:parameter and the two upstream @variables(t) (C_aq_ground, F_bc) to type:state, each fixed by one explicit algebraic equation. HRT is the dimensionless product H* x R x T x 1000 (effective Henry's law coefficient x gas constant x temperature x unit conversion); for HNO3 at 298 K, HRT = 2.1e5 x 8.206e-5 x 298 x 1000 is approximately 5.14e6 (the declared default). Observed-only algebraic system: both equations are algebraic (no D operator), so the two outputs are the algebraic solution while the gas-phase, drop, and precipitation inputs are parameters; system_kind is left unset.
- ROSWRFFire
model
wildland_fire
fire_behavior
Rate of spread normal to the fire front as evaluated by fire_behavior's Calc_ros_wrffire (physics/ros_wrffire_mod.F90) at one cell and time step, from the level-set normal (nvx, nvy), the mid-flame wind (uf, vf), the terrain slope and the cell's Rothermel constants (RothermelWRFFire). With FIRE_ADVECTION = 1 (the compiled setting) the wind and slope factors are evaluated from the TOTAL wind speed and TOTAL slope and then multiplied by the clipped cosines of their angles to the spread direction: ros = min(r_0 (1 + phi_w(|U|) cos_w + phi_s(|grad z|) cos_s), 6 m/s) with cos_w = max(0, U.n/|U|), cos_s = max(0, grad z . n/|grad z|). DIFFERENCE from EarthSciModels level_set_fire_spread.esm (Mandel 2011 form phi_W(max(0, U.n)), phi_S(max(0, grad z . n)^2)): there the PROJECTED speed enters the power laws, |U|^B cos_w vs (|U| cos_w)^B and |grad z|^2 cos_s vs (grad z . n)^2, and that file has neither the 30 m/s wind cap, the 6 m/s ROS cap nor the chaparral branch, so it is not reused. Chaparral (ischap > 0) uses the Clark et al. (2004) law ros_wind = max(1.2974 |U|^1.41, 0.033) m/s with no base or slope term. Tests: per-cell values of the instrumented test7 run (ls_tend dump, RK stage 1 of step 20, t = 10 s; real32; FORTRAN's speed and slope carry tiny(real32) additions reproduced here), rel 1e-5.
- RothermelFireSpread
model
wildland_fire
rothermel
Rothermel (1972) surface fire spread model — predicts rate of spread (R), fireline intensity (IB), flame length (F_L), and related outputs from fuel-bed properties, fuel moisture, wind speed, and terrain slope. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:70 (`RothermelFireSpread` @component). Observed-only (algebraic): all 27 unknowns are defined by algebraic equations; no ODE states. Implements Table 3 and Table 7 in Andrews (2018) RMRS-GTR-371 using SI units. All empirical coefficients are converted from US customary. See reference notes for the complete Unicode→ASCII identifier map and the coupling interface (RothermelCoupler couple2 methods).
- RothermelWRFFire
model
wildland_fire
fire_behavior
Rothermel (1972) fuel-bed spread parameters as evaluated by fire_behavior's Set_ros_parameters_wrffire (physics/ros_wrffire_mod.F90) for one cell: from the category's fuel properties and the ground fuel moisture, the packing ratio, optimum packing ratio, reaction velocity, moisture and mineral damping, reaction intensity, propagating flux ratio, heat of preignition and effective heating number, and hence the no-wind no-slope spread rate r_0 (ft/min, and ros_base in m/s), the wind-factor coefficients bbb (exponent B) and phiwc, and I_R t_r (iboros) for Byram's flame length. The fits are evaluated in US customary units exactly as the Fortran does (SI load and depth converted with 0.3048 and 2.205), so the intermediates are dimensionless carriers of lb/ft^2, ft, 1/ft, Btu/lb quantities. DIFFERENCES from the EarthSciModels rothermel/fire_spread.esm (Andrews 2018 SI form), which is therefore NOT reused: (1) the reaction-velocity exponent is Rothermel's original A = 1/(4.774 savr^0.1 - 7.27), not Albini's 133 savr^-0.7913; (2) the net load is w_0/(1 + S_T), not w_0 (1 - S_T); (3) the moisture ratio and the mineral damping are not capped at 1; (4) the load entering the fits is the DRY part (1 - M/(1+M)) of fgi, fire_behavior treating fgi as the moist load; (5) the wind factor is split into the cell constants B and phiwc = C (beta/beta_op)^-E applied per time step in ROSWRFFire. The no-fuel category (has_fuel = 0) returns betafl = bbb = 1, phiwc = r_0 = iboros = 0 as the Fortran does. Tests are the dumped per-cell intermediates of the instrumented fire_behavior test7 run (real32; a real64 re-evaluation of the same formulae agrees to <= 8e-7 relative), rel 1e-5.
- RRTMColumn
model
atmospheric_radiation
rrtm_lw
The RRTM radiation column that WRF builds from a model column (SUBROUTINE MM5ATM and the column-amount part of SETCOEF in phys/module_ra_rrtm.F, WRF 4.8): the NLEV model layers plus NBUF buffer layers above the model top, on the index sets `rlay` (RRTM layers, 1 = lowest, NLEV + NBUF members) and `rlev` (RRTM levels, 1 = surface, NLEV + NBUF + 1 members). MM5ATM: (1) the model part is a plain copy in the bottom-up order shared by this grid (PZ(L) = Pw(kte+1-L) undoes the top-down order of the wrapper's 1-D arrays): pz = p_e/100 hPa, tz = T_e, pavel = p/100, tavel = T for the model layers; (2) the buffer part continues the column to p = 0 in steps of deltap = 4 hPa (pz[j] = p_top - deltap (j - NLEV - 1) for the NBUF - 1 full buffer levels, then pz[NLEV+NBUF+1] = 0, so the top buffer layer is thinner) with layer pressures the level means; (3) buffer temperatures follow the MM5 standard atmosphere T_std(p) (the 60-point PPROF/TPROF table, linear in pressure, clamped to its 0.10 hPa end; template standard_atmosphere_temperature) shifted so that it is continuous at the model top, tz = T_std(pz) + (T_e[top] - T_std(p_top)), and tavel the level means; (4) the dry-air column of every layer coldry = (dp/g)(N_A/amm)/(1 + w) in molecules/cm^2 with w the water-vapour volume mixing ratio (qv amdw, floored at 1e-12 kg/kg, in the model layers; the constant 5e-6 above the model top) and amm = (1 - w) amd + w amw the moist molecular weight; (5) the scaled molecular column amounts of SETCOEF, col_x = 1e-20 coldry vmr_x for H2O, CO2 (co2vmr), N2O (n2ovmr) and CH4 (ch4vmr), all uniform above the model top except H2O (the O2 column COLO2 is identically 0, because MM5ATM never fills WKL(7), and RRTM's longwave bands do not read it); (6) the longwave cloud optical depth of the model layers, taucloud = abcw CLWP + abice CIWP + abrn PLWP + absn PIWP with the paths in g/m^2 (CLWP = rho qc dz, the ice path likewise, and the (rho q)^0.75 rain and snow paths), 0 above the model top, and the layer cloud fraction cldfrac = cldfra forced to 1 where taucloud > 0.01 and 0 above the model top; (7) the surface boundary temperature tbound = tsk capped at 339.99 K (the Planck table limit) and the 16-band surface emissivity semiss = emiss. NOT in this component: the ozone column colo3, which MM5ATM takes from the O3DATA annual-mean climatology (31-bin layer-mean average of the summer/winter tables, INIRAD) evaluated on the EXTENDED column PZR -- a pressure-weighted mean of a piecewise-constant profile that will be written as an `integral` over pressure in the next pass (the dumped o3prof is the same climatology on the model column only and is not what colo3 uses; they differ by 33 %); the 1e-32 floors of SETCOEF on zero CO2/N2O/CH4 columns (never active with the WRF trace-gas inputs); and the cross-section species WX (all zero in WRF). NBUF is a metaparameter because RRTMINIT fixes it once from the model top, NLAYERS = kme + nint(p_top/(100 deltap)) - 1, i.e. NBUF = nint(p_top/(100 deltap)); 44 for the reference column with p_top = 177.6 hPa. Inputs are REWRITE-TARGET ops `input_<name>` that the consumer lowers (in the inline tests through a per-test expression_template_imports library extracted from the WRF dumps). Ozone (added 2026-09-06): the annual-mean O3DATA climatology of MM5ATM/O3PROF2 as the layer integral of a piecewise-constant profile, including WRF's one-layer shift (EqWeFiC FORTRAN_BUGS.md B5), and colo3. EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RRTMGasOptics
model
atmospheric_radiation
rrtm_lw
The gaseous optical depths and Planck fractions of WRF's RRTM longwave scheme (SUBROUTINE GASABS and the sixteen band routines TAUGB1-TAUGB16 of phys/module_ra_rrtm.F, WRF 4.8) for the RRTM column of rrtm_column.esm, from the interpolation coefficients of rrtm_setcoef.esm. Every band interpolates its g-point-reduced k-tables (rrtm_kdist_bandNN.esm, transcribed from RRTM_DATA and the module's DATA statements) bilinearly in ln p and temperature with SETCOEF's weights, adds the water-vapour self continuum (linear in temperature between two SELFREF rows) and, where the band has one, the foreign continuum and minor absorbers (N2O as an excess over a reference atmosphere, CO2 through CO2MULT, the CFC/CCl4 cross sections, zero in WRF). Two-species bands add a third interpolation dimension, the species parameter ca/(ca + STRRAT cb), with band-specific re-binning of its intervals (bands 3, 4, 9). Layers 1..LAYTROP use the lower-atmosphere tables ABSA, the rest ABSB (band 8 switches at LAYSWTCH; bands 6, 12, 13, 15, 16 have no upper-atmosphere absorption). GASABS then quantises the diffusivity-weighted optical depth into the table index ITR = INT(5000 od/(BPADE + od) + 0.5) that rtrn_sweep.esm consumes. The scheme is diagnostic. Fortran INT() is written as floor() (every argument is non-negative). Because esm evaluates both branches of an ifelse, the table rows of the inactive lower/upper branch are clamped into range (jp_lo, jp_up); the clamped values never reach a result. The per-band outputs taug_bNN/pfrac_bNN are the tested quantities (the g-points of one band with the band's own tolerance); taug/pfrac/itr are their assembly over the 140 g-points. Reference: real32 WRF dumps (no standalone driver), tolerance contract rel 1e-5. Reference: Mlawer et al. (1997) JGR 102, 16663; WRF 4.8 phys/module_ra_rrtm.F lines 4483-6275 and 6721-6873. EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RRTMLWHeating
model
atmospheric_radiation
rrtm_lw
Longwave heating of a model column from the RRTM up- and downwelling fluxes (WRF ra_lw_physics = 1, SUBROUTINE RTRN heating-rate loop 7000 and the TTEN/GLW/OLR mapping of SUBROUTINE RRTM in phys/module_ra_rrtm.F, WRF 4.8), written as the pressure-coordinate flux-divergence PDE dT/dt = -(g/cp) dF_net/ds, s = p_sfc - p on the EarthSciDiscretizations grids/column_nonuniform_1d grid. The grid's interface coordinate `ze` is here the PRESSURE DISTANCE ABOVE THE SURFACE s = p_e[1] - p_e (Pa, monotone increasing with lev), so the grid's layer measure dz is the layer pressure thickness p_e[k] - p_e[k+1] and the imported face_flux_D_lev_supplied_faces rule lowers D(F_net, lev) to (F_net[k+1] - F_net[k]) / (p_e[k] - p_e[k+1]); with the RRTM value of g/cp (HEATFAC) this is exactly RTRN's HTR(L-1) = HEATFAC (FNET(L-1) - FNET(L)) / (PZ(L-1) - PZ(L)), L = 1..NLAYERS, PZ in hPa, HTR in K/day, verified against the instrumented WRF dumps to real32 roundoff (this is the convention the instrumentation pass could not reproduce: HTR(L-1), not HTR(L), is the heating of layer L, and HTR(NLAYERS) is simply set to 0). Column mapping: RRTM indexes its column BOTTOM-UP like this grid -- RRTM layer L is model layer L for L <= NLEV (MM5ATM: PAVEL(L) = p(kte+1-L) undoes the top-down ordering of the RRTMLWRAD 1-D arrays), RRTM level L is the model interface L+1 (PZ(0) the surface p8w(1), PZ(NLEV) the model top p_top) -- and MM5ATM extends the column above p_top with NLAYERS - NLEV buffer layers of thickness deltap = 4 hPa down to PZ(NLAYERS) = 0 (temperatures from a standard profile offset to match the model top, constant water vapour 5e-6, model-top CH4/N2O, climatological ozone) so that the fluxes at the model interfaces include the emission of the atmosphere above the model top. Only the fluxes at the NLEV+1 MODEL interfaces enter this component (inputs F_up, F_dn of shape [lev_nodes], the first NLEV+1 entries of TOTUFLUX/TOTDFLUX); the buffer layers are heated by RTRN but their heating is discarded (RRTM: TTEN(K) = HTR(kte-K)/86400 for K = 1..kte, in the wrapper's top-down order). Outputs: dTdt (K/s, WRF TTEN reversed to bottom-up), dthdt = dTdt/exner (the increment RRTMLWRAD adds to RTHRATEN), glw = F_dn at the surface (GLW = TOTDFLUX(0)) and olr = F_up at the MODEL TOP (WRF sets OLR = TOTUFLUX(kte), the upward flux at p_top, not TOTUFLUX(NLAYERS) at the top of the RRTM column; the two differ by 3-7 W/m^2 in the reference run). The fluxes themselves (the RTRN two-stream sweep over 140 g-points and the gas optics) are the later stages of the RRTM transcription; this component is the flux-to-tendency stage that every longwave scheme shares. Inputs are REWRITE-TARGET ops `input_<name>` that the consumer lowers (in the inline tests through a per-test expression_template_imports library extracted from the WRF dumps, because esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RRTMParameters
model
atmospheric_radiation
rrtm_lw
Scheme constants of WRF's RRTM longwave radiation (ra_lw_physics = 1, phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997), collected as named parameters so that no literal appears inline in the RRTM components. Physical constants shared with the rest of WRF live in lib/wrf_constants.esm; the values here are the ones RRTM hard-wires for itself, several of which deliberately differ from WRF's (HEATFAC uses g = 9.8066 m/s^2 and cp = 1.004 kJ/(kg K), not WRF's 9.81 and 1004.5). Mounted as subsystem `par` by the RRTM components.
- RRTMSetcoef
model
atmospheric_radiation
rrtm_lw
The pressure/temperature interpolation coefficients of WRF's RRTM longwave scheme (SUBROUTINE SETCOEF of phys/module_ra_rrtm.F, WRF 4.8) for the RRTM column of rrtm_column.esm. For every RRTM layer the reference-pressure bin JP of ln(pavel) on the 0.2-wide grid PREFLOG, the reference-temperature bins JT (at PREF(JP)) and JT1 (at PREF(JP+1)) on the 15 K grid around TREF, the four bilinear weights FAC00, FAC10, FAC01, FAC11 that the band routines TAUGBn apply to the k-tables, the foreign- and self-continuum scalings FORFAC and SELFFAC with the self-continuum temperature row INDSELF and fraction SELFFRAC, the CO2 excess weighting CO2MULT, and the three layer counts LAYTROP (lower-atmosphere k-tables), LAYSWTCH (band 8) and LAYLOW (band 9). Inputs are the column's layer pressures and temperatures and the dry-air, water-vapour and CO2 columns (rrtm_column.esm pavel, tavel, coldry, colh2o, colco2). The scheme is diagnostic. Fortran INT() truncations are written as floor(): every truncated argument is either positive or is followed by a clamp that makes floor and truncation agree (documented per variable). SELFFAC, SELFFRAC and INDSELF are assigned by SETCOEF only below LAYTROP and are left undefined above it; here they are defined on every layer by the same formula, and the tests compare them below LAYTROP only. Reference: real32 WRF dumps (no standalone driver), tolerance contract rel 1e-5; the residual is dominated by the real32 PREFLOG/TREF table values and ln(). Reference: Mlawer, E. J., S. J. Taubman, P. D. Brown, M. J. Iacono and S. A. Clough (1997), RRTM, a validated correlated-k model for the longwave, J. Geophys. Res. 102, 16663-16682; WRF 4.8 phys/module_ra_rrtm.F SUBROUTINE SETCOEF (lines 4267-4450). EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RTRNSweep
model
atmospheric_radiation
rrtm_lw
RRTM longwave radiative transfer (SUBROUTINE RTRN of phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997, Iacono's CCM revision): from the quantised gas optical depths ITR and Planck fractions PFRAC of GASABS, the cloud optical depths and fractions, and the layer/level temperatures of the extended RRTM column, compute the Planck sources, the one-angle (diffusivity-angle, secant 1.66) downward and upward radiance sweeps for all 140 g-points with the RRTM cloud-fraction overlap, the clear-sky sweeps, the band-summed and total up/down fluxes, and RRTM's heating rates HTR/HTRC. The two sweeps are esm-spec 4.3.1.1 recurrences over the level index (one per g-point): each level's radiance is the previous level's radiance transmitted through the intervening layer plus that layer's emission, a genuinely sequential integration of the Schwarzschild equation that has no closed form once the layer sources vary (EqWeFiC CLAUDE.md: recurrences are reserved for sequential sweeps such as two-stream up/down passes). Layer 1 of rlay is the lowest RRTM layer (surface), level 1 of rlev the surface; the downward sweep is written on a top-counted index and gathered back so that the recurrence reads strictly earlier cells. Gas optics (GASABS/TAUGB1-16) are not part of this component: ITR and PFRAC are inputs, computed by rrtm_gas_optics.esm. EqWeFiC, cited here for CLAUDE.md, FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RuralAerosol
model
aerosol
size
ModelingToolkit implementation of the Rural atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Rural distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [6650, 147, 1990] cm^-3, D_g = [0.015, 0.054, 0.084] um, log10 sigma = [0.225, 0.557, 0.266]) — three sub-micron continental-background modes, with no coarse mode. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl RuralAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Rural Table 8.3 mode parameters as defaults.
- SaintVenantPDE
model
environmental_transport
surface_runoff
Full 1D Saint-Venant PDE system for surface overland flow: mass conservation ∂h̃/∂t = −∂q/∂l + (P − I) and momentum conservation ∂q/∂t = −∂F/∂l + g·h̃·(S₀ − Sᶠ), where the momentum flux F = q²/h̃ + g·h̃²/2 is an auxiliary (observed) PDE field. Migrated from EnvironmentalTransport.jl@a48559c4 src/surface_runoff.jl:117 (SaintVenantPDE builder). This is a DISCRETIZATION-AGNOSTIC leaf (esm-spec §9.7.10): the spatial fluxes are written with the rewrite-target spatial derivative op `D(·, wrt: l)` and the component imports NO discretization of its own, so it can be composed under different schemes. Its inline tests and examples inject a discretization (form C) — here the sibling adapter `saint_venant_upwind1_inflow.esm` (first-order upwind, per-variable inflow BC) — for that run only; the persisted leaf keeps its spatial `D` intact. The 1D spatial variable l is the along-slope coordinate; the sibling SurfaceRunoff component (surface_runoff_component.esm) is the single-node ODE reduction of this same PDE system with the spatial-divergence terms exposed as input parameters.
- SaturationVaporPressure
model
atmospheric_dynamics
sp_ch1
Saturation vapor pressure of water over liquid water as a function of temperature: p_sat = p_std * exp(c1*a - c2*a^2 - c3*a^3 - c4*a^4) with a = 1 - T_boil/T (Seinfeld & Pandis Eq. 1.10). An empirical fit valid for liquid water (T > 273 K). Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:351 (`SaturationVaporPressure` @component). Algebraic (observed-only): T is an input parameter; a and p_sat are algebraic state outputs fixed by two explicit equations. Pressure is reported in Pa (the upstream module uses P_0 = 101325 Pa = 1013.25 mbar).
- ScaleHeight
model
atmospheric_dynamics
sp_ch1
Atmospheric scale height H = R*T/(M_air*g) — the altitude increase over which atmospheric pressure decreases by a factor of e (~2.718) for an isothermal atmosphere. Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:109 (`ScaleHeight` @component). Implements Seinfeld & Pandis Eq. 1.4. Parameterized as observed-only: T is an input parameter, H is the algebraic observed output.
- SettlingVelocity
model
aerosol
particle_dyn
Terminal settling velocity and relaxation time for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:113 (`SettlingVelocity` @component). Computes the terminal settling velocity v_t and the relaxation time τ (time constant for velocity adjustment) for a spherical particle falling under gravity in a viscous fluid (Seinfeld & Pandis 2006, Chapter 9, Eqs. 9.38 and 9.42).
- SfclayRev
model
atmospheric_dynamics
sfclayrev
WRF's revised MM5 surface-layer scheme (sf_sfclay_physics = 1; Jimenez et al. 2012), transcribed from the CCPP kernel sf_sfclayrev_run of phys/physics_mmm/sf_sfclayrev.F90 (WRF 4.8, NCAR/MMM-physics 550b5b4 with the kind-generic fixes of the ctessum-claude fork 52cfbd7). The scheme is a diagnostic (time-step-free) Monin-Obukhov surface layer for one grid column: from the lowest-model-level state (u, v, T, qv, p, layer thickness), the surface pressure and skin temperature, the surface type and the previous step's roughness, friction velocity, temperature scale and surface humidity it computes (1) the potential, virtual and surface saturation quantities; (2) an effective wind speed that adds the Beljaars (1994) convective velocity over land or the Wyngaard form over water and the Mahrt and Sun (1995) subgrid velocity; (3) the bulk Richardson number Ri_b = g za (theta_v1 - theta_vs)/(theta_1 |U|^2), which fixes the stability regime (1 stable, 3 neutral, 4 unstable); (4) the stability parameter zol = za/L by inverting Ri_b = zol psi_h(zol)/psi_m(zol)^2 with the Jimenez et al. (2012) integrated similarity functions (Cheng-Brutsaert stable, Kansas/free-convection unstable), which the kernel does with a secant iteration stopped at 0.01 (bulk_richardson_zol.esm: transcribed step by step as one recurrence over the 33-cell index set secant_steps because the stopping rule leaves zol up to 8e-5 relative from the exact root), or from the first guess zol = Ri_b ln((za+z0)/z0) when the previous friction velocity is below 1 mm/s; (5) the integrated stability corrections psi_m, psi_h between z0 (or the thermal/moisture roughness z0t, z0q over water and for iz0tlnd > 0 over land) and the first level, 2 m and 10 m; (6) the friction velocity u* = k |U|/psi_m relaxed 50/50 against the previous value, the temperature scale mol = k (theta_1 - theta_s)/psi_h, the 2 m and 10 m diagnostics and the drag/exchange coefficients ck, cka, cd, cda; and (7), when surface fluxes are enabled (isfflx), the updated sea-surface roughness (Charnock + smooth flow, AHW, or Jimenez-Dudhia shallow water), the exchange coefficients flhc, flqc, chs, chs2, cqs2 and the sensible, latent and moisture fluxes. Every quantity is a scalar observed; the only array is the secant recurrence. Constants: lib/wrf_constants.esm as subsystem wrf; scheme constants sfclayrev_parameters.esm as subsystem par (note the kernel receives real32 copies of the WRF constants, g = 9.8100004, karman = 0.40000001, ep1 = 0.60836244, svp1 = 0.61119998, and its literals are default-real, which bounds the agreement of a real64 build with this component at about 1e-7 relative -- FORTRAN_BUGS.md N2, N10). Previous-step inputs are named *_in (WRF intent(inout) arguments read before being overwritten: znt, ust, mol, qsfc, hfx, qfx, ustm, chs, chs2, cqs2). Option flags are numeric parameters (isfflx, shalwater_z0, scm_force_flux as 0/1; isftcflx, iz0tlnd as 0/1/2). NOT transcribed: the KIM turbulent orographic form drag (if_kim_tofd), whose Fortran uses the uninitialised variable dx_factor on its own right-hand side (FORTRAN_BUGS.md B3), so cf = 0; the optional TKE-coupling ustm is included. lh is xlv qfx always, whereas the kernel leaves lh unassigned when isfflx is false or scm_force_flux is true (FORTRAN_BUGS.md N11). The 0.9 ln((z+z0)/z0) caps that the kernel applies to psi_m, psi_h, psi_h2, psi_m10, psi_h10 in the unstable regime only are applied unconditionally here, which is equivalent because the stable and neutral corrections are non-positive. Regime selection by the sign of zol inside the profile templates is equivalent to the kernel's selection by the sign of Ri_b because zol has the sign of Ri_b or is zero.
- SfclayRevParameters
model
atmospheric_dynamics
sfclayrev
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.
- SingleParticleDynamics
model
aerosol
particle_dyn
Comprehensive composed model combining all single-particle aerosol dynamics equations. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:440 (`SingleParticleDynamics` @component). Composes MeanFreePath, SlipCorrection, and SettlingVelocity as coupled subsystems, then adds the Brownian diffusion and related properties inline. Covers Seinfeld & Pandis (2006), Chapter 9, Eqs. 9.6, 9.1, 9.34, 9.38, 9.42, 9.73, 9.78, 9.87, 9.88, 9.112.
- SlabLandSurface
model
land_surface
slab
WRF's 5-layer slab (thermal diffusion) land-surface scheme, SUBROUTINE SLAB1D of phys/module_sf_slab.F (sf_surface_physics = 1), written as instantaneous tendencies. Surface energy balance: net radiation gsw + emiss (glw - sigma tsk^4), sensible and latent heat fluxes from consumer-supplied bulk exchange coefficients (the surface-layer scheme's FLHC, FLQC), the latent flux driven by the saturation deficit at the skin temperature, and the residual G = rnet - (hfx + lh) conducted into the soil. Soil: the heat equation capg dT/dt = d/dz( capg difsl dT/dz ) on a column of NLEV prognostic layers, written as the flux-form operator D(K_soil D(T_s) - F_soil) and lowered by the EarthSciDiscretizations column_nonuniform_1d rule varcoeff_face_flux_laplacian_lev, with the surface heat flux G entering through the prescribed interface flux F_soil[1] and the deepest WRF soil layer -- which SLAB1D never updates -- acting as a fixed reservoir at temperature T_deep and depth z_deep that closes the bottom boundary through F_soil[NLEV+1]. Orientation: `lev` is the soil layer index with layer 1 at the surface and `ze` the interface DEPTH below ground (positive downward, ze[1] = 0, increasing with the index, the grid's required orientation); the grid-derived zc reproduce WRF's ZS and dz its DZS, and the lowered stencil is exactly SLAB1D's FLUX(L+1) = -DIFSL CAPG (T(L+1)-T(L))/(ZS(L+1)-ZS(L)), DTSDT = -(FLUX(L+1)-FLUX(L))/(DZS(L) CAPG). NLEV = num_soil_layers - 1 (4 for WRF's default 5 layers). The skin temperature follows layer 1: SLAB1D advances TSK by the layer-1 tendency (DTHGDT), so dTsk_dt = dTs_dt[1]; the surface fluxes themselves are evaluated at the consumer-supplied tsk. Water points (xland >= 1.5) are frozen (tendencies multiplied by the land indicator). Not expressible as a rate and therefore reported as the indicator snow_cap_active only: with IFSNOW = 1 SLAB1D caps the layer-1 and skin temperatures at 273.16 K wherever snow covers a land point, a projection of the state applied after each step. The one-layer force-restore form (num_soil_layers = 1: dTg/dt = (rnet - qs)/capg - hm) is not transcribed; hm is computed as WRF does but does not enter the multi-layer tendency. Consumer-supplied column fields (ze, T_s) are rewrite-target ops `input_<name>` lowered by the consumer, in the inline tests through per-test expression_template_imports libraries under tests/ (esm-spec 6.6 parameter_overrides admit scalars only). Test provenance: every inline-test input and expected value comes from a WRF v4.8.0 em_scm_xy single-column run of the instrumented fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e, branch earthsciml-instrumented), whose module_esm_dump hooks in phys/module_sf_slab.F dump SLAB1D's arguments; the dumps and the standalone replay driver are not part of this repository, so the values are recorded data rather than regenerable output.
- SlabParameters
model
land_surface
slab
Scheme constants of the WRF 5-layer slab (thermal diffusion) land-surface scheme, transcribed from the module parameters and in-line literals of phys/module_sf_slab.F (WRF 4.8, SUBROUTINE SLAB1D). Mounted by the slab component as subsystem `par` so that no tuning constant is written inline in the physics. Values are the nominal (decimal) values of the Fortran source; the WRF build evaluates them in single precision.
- SlipCorrection
model
aerosol
particle_dyn
Cunningham slip correction factor for noncontinuum aerosol effects. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:64 (`SlipCorrection` @component). Calculates the slip correction factor C_c and Knudsen number Kn for particle-gas interactions.
- SmagorinskyTurbulence
model
atmospheric_dynamics
clark1977
Smagorinsky (1963) subgrid-scale turbulence closure as used in Clark (1977), 'A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation', J. Comput. Phys. 24, 186-215. A diagnostic (purely algebraic) eddy-viscosity scheme: from the six independent components of the resolved-flow deformation tensor (D11, D22, D33, D12, D13, D23; Eq. 2.16) and the grid filter width Δ_grid it computes the total deformation magnitude |Def| (Eq. 2.18), the Smagorinsky eddy viscosity coefficient K_M = (k·Δ)²·|Def| (Eq. 2.17), and the turbulent heat diffusivity K_H, which Clark sets equal to the eddy viscosity (Eq. 2.19, unit turbulent Prandtl number). The model has 3 algebraic variables (no time integration), 3 equations, and 9 parameters (2 physical constants — the Smagorinsky constant k = 0.25 and a unit reference deformation rate — plus 7 inputs). All quantities are SI. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:214 (`SmagorinskyTurbulence` @component).
- SnowCappingRunoff
model
urban_canopy
hydro
Solid and liquid runoff from snow capping for snow-covered surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.153-5.154. When the model has reached its prescribed maximum snow water equivalent, additional precipitation and atmospheric deposition cannot accumulate on the snowpack and is shed to the surface as `snow capping runoff` — the solid stream comes from solid precipitation plus frost (Eq. 5.153) and the liquid stream from liquid precipitation plus dew (Eq. 5.154). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:823 (`SnowCappingRunoff` @component). Parameterized as observed-only: q_grnd_ice, q_grnd_liq, q_frost, q_dew are inputs (parameters); q_snwcp_ice and q_snwcp_liq are algebraic outputs.
- SnowCompaction
model
urban_canopy
hydro
Total fractional snow-layer compaction rate combining destructive metamorphism (Eq. 5.26), overburden pressure (Eq. 5.28), and melt-induced compaction (Eq. 5.31). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:174 (`SnowCompaction` @component). Implements Oleson et al. (2010) CLM4 Tech Note Chapter 5, Section 5.1.4, Eqs. 5.24–5.33. Parameterized as observed-only: T_i, w_ice, w_liq, dz, P_s, f_ice_n, f_ice_n1 are inputs; c_1, c_2, C_R1, eta, C_R2, C_R3, C_R are algebraic outputs.
- SnowDensity
model
urban_canopy
hydro
Bulk density of newly fallen snow as a piecewise function of atmospheric temperature, following Anderson (1976) as parameterized in Eq. 5.10 of Oleson et al. (2010, CLM Tech Note Ch. 5). Three regimes: (1) warm snow (T_atm > T_f + 2 K) → rho_sno = 50 + 1.7*17^1.5 (saturated warm-side value); (2) intermediate (T_f - 15 K < T_atm <= T_f + 2 K) → rho_sno = 50 + 1.7*((T_atm - T_f + 15)/1K)^1.5; (3) cold (T_atm <= T_f - 15 K) → rho_sno = 50 (saturated cold-side floor). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:25 (`SnowDensity` @component). Parameterized as observed-only: T_atm is the input parameter; rho_sno is an algebraic output.
- SnowIceContent
model
urban_canopy
hydro
Conservation of ice mass in snow layers and new snowfall accumulation (Oleson et al. 2010, CLM4 Tech Note Ch. 5, Section 5.1.1, Eqs. 5.6-5.14). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:79 (`SnowIceContent` @component). Parameterized as observed-only: q_grnd_ice, q_frost, q_subl, rho_sno are inputs (parameters); dz_sno_dt, q_ice_top are algebraic outputs.
- SnowLayerCombination
model
urban_canopy
hydro
Combined-layer properties when two snow layers are merged (Oleson et al. 2010, Section 5.1.5.1, Eqs. 5.38–5.42). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:253 (`SnowLayerCombination` @component). Observed-only: per-layer thicknesses, water/ice contents, and temperatures are inputs (parameters); combined thickness/water/ice/enthalpies/temperature are algebraic outputs.
- SnowLayerGeometry
model
urban_canopy
temps
Single-layer snow-pack geometry for the CLMU urban canopy thermal stack: given the total snow depth z_sno, computes the bottom-layer thickness, node depth, and top interface depth used by the snow conduction column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:33 (`SnowLayerGeometry` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) §4.1 Eqs. 4.9-4.10 in the simplest snl = -1 (single snow layer) regime, where Δz_0 = z_sno (pp. 92-93). Parameterized as observed-only: z_sno is the input (parameter); Δz_snow_0, z_node_snow_0, z_interface_snow_neg1 are the algebraic outputs of three identity/linear equations.
- SnowMeltNoLayers
model
urban_canopy
temps
Surface snow melt for the no-layer (single-layer-flag) snow model: discrete-time update of snow mass and depth from excess top-soil-layer energy, with residual energy and phase-change diagnostics. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:773 (`SnowMeltNoLayers` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.66-4.71. Parameterized as observed-only: H_1, W_sno_n, z_sno_n, Δt are inputs (parameters); W_sno_np1, z_sno_np1, H_residual, M_1S, E_p1S are algebraic outputs.
- SnowSoilBlendedHeatCapacity
model
urban_canopy
temps
Blended snow/soil heat capacity for the urban canopy top-soil layer when a thin (no-layer) snowpack rides on top: combines the dry soil volumetric heat capacity with the additional contribution of the overlying snow mass. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1003 (`SnowSoilBlendedHeatCapacity` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.88. Parameterized as observed-only: c_soil, W_sno, Δz are inputs (parameters); c_blended is the algebraic output.
- SnowThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity of an urban-canopy snow layer. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:190 (`SnowThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3) Eq. 4.84 for snow bulk density, Eq. 4.83 (Jordan 1991 quadratic) for thermal conductivity, and Eq. 4.87 (additive ice + liquid contributions) for volumetric heat capacity. Parameterized as observed-only: w_ice, w_liq, Δz are inputs (parameters); ρ_sno, λ_snow, c_snow are algebraic outputs.
- SnowWaterContent
model
urban_canopy
hydro
Volumetric ice/liquid contents and outgoing liquid-water flux for a snow layer (Oleson et al. 2010, CLM4 Tech Note Ch. 5, Eqs. 5.18–5.20). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:119 (`SnowWaterContent` @component). Parameterized as observed-only: w_ice, w_liq, dz are inputs (parameters); theta_ice, theta_liq, q_liq_out are algebraic outputs.
- SO2Equilibria
model
aerosol
aq_eq
SO2 gas-aqueous dissolution and dissociation equilibria with van't Hoff temperature dependence. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:240 (`SO2Equilibria` @component). Implements Seinfeld & Pandis Ch 7 §7.3.3 (Eq 7.33-7.35, 7.39, 7.41, 7.43-7.45) and Table 7.4. Parameterized as observed-only: T, H_plus, and p_SO2 are inputs; H_SO2, K_s1, K_s2, SO2_aq, HSO3_minus, SO3_2minus, S_IV_total, H_SO2_eff, alpha_0, alpha_1, alpha_2 are algebraic outputs.
- Sofiev2012PlumeRise
model
environmental_transport
plume_rise
Wildfire plume-rise model based on Sofiev et al. (2012). Computes plume top height H_p (m) as a function of atmospheric boundary-layer height H_abl (m), free-troposphere Brunt-Väisälä frequency N_ft (s⁻¹), and fire radiative power P_fr (W) via one empirical algebraic equation: H_p = α·H_abl + β·(P_fr/P_f0)^γ · exp(−δ·N_ft²/N_0²). The five empirical constants (α=0.24, β=170 m, γ=0.35, δ=0.6, N_0=√(2.5×10⁻⁴) s⁻¹) are from Sofiev et al. (2012). In a coupled model H_abl and N_ft are supplied by GEOSFP reanalysis; the additional variable lev_p (plume-top pressure level index) is computed from H_p by the GEOSFP coupler via a Newton-iteration height-to-level mapping. Migrated from EnvironmentalTransport.jl@a48559c4114eb9f06668ecf9f06235aad20f63f0 src/plume_rise/sofiev_2012.jl:14.
- SoilHydraulicProperties
model
urban_canopy
hydro
Soil hydraulic properties for an urban-canopy pervious-road soil column following Section 5.3.1 of Oleson et al. (2010, CLM4 Tech Note). Computes five Clapp-Hornberger / Cosby-style properties from the soil sand and clay fractions and the local volumetric water content: saturated hydraulic conductivity k_sat (Eq. 5.70), porosity θ_sat (Eq. 5.71), Clapp-Hornberger exponent B (Eq. 5.72), saturated matric potential ψ_sat (Eq. 5.74), and matric potential ψ (Eq. 5.73, clamped on both sides). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:322 (`SoilHydraulicProperties` @component). Observed-only: all three inputs are parameters and all five outputs are given by single algebraic equations.
- SoilThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity for soil layers in the pervious-road column of the urban canopy thermal solver. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:75 (`SoilThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3): thermal conductivity follows Farouki (1981) using the Kersten-number method (Eqs. 4.77-4.82); volumetric heat capacity follows de Vries (1963) (Eqs. 4.85-4.86). Parameterized as observed-only: pct_sand, pct_clay, θ_sat, θ_liq, T_i, w_ice, w_liq, Δz are inputs (parameters); λ_s, λ_sat, λ_dry, ρ_d, S_r, K_e, λ_soil, c_s, c_soil are algebraic outputs. The component carries two temperature-conditioned `ifelse` branches: λ_sat and K_e switch between frozen (T_i < T_f) and unfrozen (T_i ≥ T_f) regimes, while λ_soil falls back to λ_dry whenever S_r drops below a small numerical threshold.
- SoilWaterContentCalc
model
urban_canopy
hydro
Total volumetric soil water content from per-layer liquid-water and ice masses, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eq. 5.137. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:1091 (`SoilWaterContentCalc` @component). Parameterized as observed-only: w_liq, w_ice, Δz are inputs (parameters); θ_i is an algebraic output combining both phases via their respective densities.
- SoilWaterEquilibrium
model
urban_canopy
hydro
Layer-averaged equilibrium volumetric water content (θ_E, Eq. 5.101) and equilibrium matric potential at the layer node (ψ_E, Eq. 5.106) for a single soil layer, following Oleson et al. (2010, CLM4 Tech Note Ch. 5, §5.3.2.1, Eqs. 5.98–5.106). θ_E is fully saturated (θ_sat) when the water table is above the layer (z_v < z_h_upper), otherwise is computed by integrating the hydrostatic-equilibrium Clapp-Hornberger profile across the layer, clamped to [0, θ_sat]. ψ_E is derived from the Brooks-Corey inverse relation with a 1% saturation floor and a hard lower bound at ψ_min = −10⁵ m to prevent numerical underflow. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:509 (`SoilWaterEquilibrium` @component). Note: the migration-tracker row for this component carried the blocking_gap `other:discretization-plan` because the row description mentioned an in-file Richards-equation PDE at src/hydrology.jl:674. Inspection shows that PDESystem lives in a separate non-`@component` helper function (`RichardsEquation`) and is not part of `SoilWaterEquilibrium`, which is a plain two-equation algebraic `@component`. No discretization plan is needed.
- SoilWaterFlux
model
urban_canopy
hydro
Soil water flux at the interface between two adjacent soil layers, computed from Darcy's law with the Zeng and Decker (2009) equilibrium-potential correction (Oleson et al. 2010, CLM4 Tech Note Eq. 5.88). q = -k_interface * ((ψ_upper - ψ_lower) + (ψ_E_lower - ψ_E_upper)) / (z_lower - z_upper), positive upward. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:471 (`SoilWaterFlux` @component). Observed-only: the seven inputs are parameters and q is given by a single algebraic equation.
- Solid
model
aerosol
isorropia
A solid-phase aerosol species placeholder in the ISORROPIA II inorganic thermodynamic equilibrium model. Holds the molarity of a single solid salt in air. In isolation the concentration is conserved (D(M)/dt = 0); source and sink terms are added through the coupling mechanism when Solid instances are composed into the full Isorropia system. Reference: Fountoukis and Nenes (2007), ISORROPIA II.
- SolidEquilibrationTimescale
model
aerosol
timescales
Characteristic timescale for a gas to equilibrate with solid aerosol particles — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 12. Computes the solid-particle gas-equilibration timescale in two equivalent forms: τ_s = ρ_p R_p²/(3 D_A m_p f) expressed via the aerosol mass concentration m_p (Eq. 12.135), and τ_s_alt = 1/(4π N R_p D_A f) expressed via the particle number concentration N and radius R_p (Eq. 12.139). The two forms coincide when the mass and number parameterizations are mutually consistent. Migrated from Aerosol.jl SolidEquilibrationTimescale.
- Solids
model
aerosol
isorropia
Aggregate container for the 19 solid-phase salt species in the ISORROPIA II inorganic thermodynamic equilibrium model. Composes 19 named Solid instances — one per solid salt that can form in the K⁺-Ca²⁺-Mg²⁺-NH₄⁺-Na⁺-SO₄²⁻-NO₃⁻-Cl⁻-H₂O system — into a single subsystem bundle. Each Solid carries a single state variable M(t) [mol/m³] representing the molarity of that salt in air; in isolation M is conserved (D(M)/dt = 0). Source/sink terms are injected through the coupling mechanism when Solids is composed into the parent Isorropia system. Reference: Fountoukis and Nenes (2007), ISORROPIA II.
- Species
model
aerosol
isorropia
Conserved total concentration of a single inorganic aerosol species (e.g. NH, Na, Ca, K, Mg, Cl, NO3, SO4) in the ISORROPIA v1 thermodynamic equilibrium model. The total concentration `total` is held constant over time (D(total)/dt = 0), representing the user-supplied input constraint: the total moles per unit air volume of that ionic group across all phases (gas + aqueous + solid). This component is instantiated once per tracked ion group inside the top-level Isorropia system. Migrated from Aerosol.jl src/isorropia/isorropia.jl `Species`.
- SpeciesLifetime
model
gaschem
lifetime
Atmospheric-lifetime calculator for a trace species, from Seinfeld & Pandis (2006) Ch. 2 (Atmospheric Trace Constituents), Eqs. 2.3-2.6. The component is observed-only: four algebraic equations, no time derivative, expressing the four textbook definitions of atmospheric lifetime as functions of the species burden Q and the removal/production/outflow rates. tau_general = Q/(R_removal + F_out) is the general lifetime accounting for both chemical removal R_removal and outflow F_out to other reservoirs (Eq. 2.3); tau_removal = Q/R_removal is the global-atmosphere limit with no outflow (Eq. 2.4); tau_production = Q/P is the production-based lifetime, equal to tau_removal at steady state (Eq. 2.5); and tau_first_order = 1/lambda is the lifetime when removal follows first-order kinetics R_removal = lambda*Q (Eq. 2.6). The four definitions interlock: Eq. 2.3 reduces to Eq. 2.4 as F_out -> 0, Eqs. 2.4 and 2.5 coincide when production balances removal, and Eq. 2.6 coincides with Eq. 2.4 when lambda is the consistent first-order rate constant R_removal/Q. Migrated from GasChem.jl@280ee50f src/AtmosphericLifetime.jl:132 (`SpeciesLifetime` @component). Every equation is a closed-form algebraic expression in the parameters, so every inline-test expected value below is the exact arithmetic evaluation of the textbook formula.
- StagePrognosis
model
vegetation
Stochastic individual-tree growth model for lodgepole pine (Pinus contorta) based on the Prognosis Model for Stand Development (Stage 1973). Tracks squared diameter (Dsq = DBH²), total height (HT), height to crown base (HCB), and tree density (N_trees) under four coupled processes: basal area increment (Stage 1973 Eq. 1), height growth (Eq. 2), crown recession (Eq. 3), and endemic mortality (Eq. 4). The upstream Julia source includes a multiplicative Brownian noise term on DDS_rate (gt-kuxo gap); this ESM migrates the deterministic drift equations only. All quantities in SI base units (m, s); upstream regression fitted in imperial units (inches, feet, years) — parameters encode the conversion constants. Migrated from Vegetation.jl@010c3774dc5646d81806c6119c8a029a70f6c9a0:src/stage_prognosis.jl:29.
- StagePrognosisHCB
model
vegetation
Stage (1973) static regression model for height to crown base (HCB) of lodgepole pine. Predicts HCB from tree height, stand density (CCF), elevation, relative tree size (DBH/RMSQD), and habitat type. Single explicit-algebraic equation: HCB = one_foot*(b0 + b1*HT_ft + b2*ln(CCF) + b3*EL_100ft + b4*DBH_in/RMSQD_in + HAB). All regression coefficients are in feet-space; result converted to meters. Migrated from Vegetation.jl@010c3774dc5646d81806c6119c8a029a70f6c9a0:src/stage_prognosis.jl:257.
- StefanBoltzmann
model
gaschem
radiation
Stefan-Boltzmann law for blackbody radiation — Seinfeld & Pandis (2006) Ch. 4 Eq. 4.4. Total emissive power F_B of a blackbody at temperature T integrated over all wavelengths: F_B = σ·T^4, where σ = 5.671×10⁻⁸ W·m⁻²·K⁻⁴. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:164 (`StefanBoltzmann` @component). One observed binding (F_B) over two parameters (T input + σ as a fixed-default parameter encoding the upstream `@constants` block per the rig convention of translating `@constants` to fixed-default parameters so units flow through MTK's unit checker — matches sibling clmu_atmosphere.esm/surface_energy_flux.esm). Closed-form algebraic: after mtkcompile the system has zero ODE states and the inline-test runner exercises F_B at its observed algebraic value.
- StochasticCollectionConstant
model
aerosol
Two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion, Feingold & Levin 1989), scalarized to I=5 mass-doubling categories. Two models, one per collection kernel: StochasticCollectionConstant (K=K0) and StochasticCollectionGolovin (K=C(x+y)). Each tracks number concentration N_k and mass concentration M_k in every category and closes the higher moments with the non-dimensional parameter xi_p. Migrated from the array-variable @component in Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (esm-ar1e); the upstream @arrayop/@makearray array operations were scalarized to flat scalar states and equations.
- StochasticCollectionGolovin
model
aerosol
Two-moment stochastic collection equation (SCE) for cloud-droplet coalescence (Tzivion, Feingold & Levin 1989), scalarized to I=5 mass-doubling categories. Two models, one per collection kernel: StochasticCollectionConstant (K=K0) and StochasticCollectionGolovin (K=C(x+y)). Each tracks number concentration N_k and mass concentration M_k in every category and closes the higher moments with the non-dimensional parameter xi_p. Migrated from the array-variable @component in Aerosol.jl src/stochastic_collection.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1 (esm-ar1e); the upstream @arrayop/@makearray array operations were scalarized to flat scalar states and equations.
- StokesNumber
model
aerosol
particle_dyn
Stokes number and stop distance for aerosol single-particle dynamics. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:329 (`StokesNumber` @component). Computes the particle relaxation time τ, the stop distance s_p (the distance a particle travels before coming to rest), and the dimensionless Stokes number St characterizing particle inertia relative to a flow (Seinfeld & Pandis 2006, Chapter 9, Eqs. 9.38, 9.98 and 9.101).
- StratosphericOzoneSystem
model
gaschem
stratospheric
Comprehensive stratospheric ozone chemistry (Seinfeld & Pandis 2006, Chapter 5) — a monolithic 15-state ODE plus 5 algebraic family sums combining the Chapman mechanism, O(1D) photochemistry, the N2O NOx source, and the NOx / HOx / ClOx / BrOx catalytic ozone-destruction cycles. Migrated from GasChem.jl@8c12c048 src/StratosphericChemistry.jl:497. SI units throughout.
- SulfateFormation
model
aerosol
sulfate
Combined aqueous-phase S(IV)->S(VI) oxidation kinetics — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Section 7.5, with the Section 7.4 rate conversions. The model composes five S(IV)-oxidation pathway subsystems — O3 (Eqs. 7.79-7.80), H2O2 (Eq. 7.84), Fe(III)-catalyzed (Eq. 7.92), Mn(II)-catalyzed (Eq. 7.101), and Fe/Mn synergism (Eq. 7.102) — wired to shared cloud-droplet inputs by coupling equations. The total oxidation rate R_total sums the O3, H2O2 and Fe/Mn-synergism rates (the femn_ox subsystem already carries Fe-only and Mn-only terms, so the standalone fe_ox/mn_ox rates are excluded to avoid double-counting). It also reports sulfate production S_VI_production = R_total and three Section 7.4 diagnostics: the rate in ppb/hr (Eq. 7.75) and %/hr (Eq. 7.76) and the SO2 lifetime tau_SO2 (Eq. 7.78). Migrated from Aerosol.jl SulfateFormation as a subsystem-composed model (ESS spec §4.7).
- SulfateFormationFe
model
aerosol
sulfate
ModelingToolkit implementation of the aqueous-phase S(IV)→S(VI) oxidation rate catalyzed by dissolved Fe(III), from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Eq. 7.92. The component reports a single diagnostic, the Fe(III)-catalyzed oxidation rate R_Fe = k·[Fe(III)]·[S(IV)]/[H+], for the low-pH (pH 0-3.6) regime: the rate rises in proportion to the dissolved-iron catalyst and the total S(IV) substrate, and falls inversely with the hydrogen-ion concentration. Migrated from Aerosol.jl SulfateFormationFe. Purely algebraic: no differential states, one observed output and an empty equations array.
- SulfateFormationFeMn
model
aerosol
sulfate
ModelingToolkit implementation of the S(IV) → S(VI) aqueous-phase oxidation rate catalysed by O2 with Fe(III)/Mn(II) synergism, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Section 7.5.5, Eq. 7.102. The component reports the three additive contributions to the catalysed oxidation rate of dissolved S(IV) — a Mn(II)-only term (k_Mn·[Mn(II)]·[S(IV)]), an Fe(III)-only term (k_Fe·[Fe(III)]·[S(IV)]), and a synergistic term (k_FeMn·[Mn(II)]·[Fe(III)]·[S(IV)]) that is greatly enhanced when both transition metals are present — together with their sum R_FeMn. Migrated from Aerosol.jl SulfateFormationFeMn. Purely algebraic: no differential states; the four rate outputs are algebraic states defined by four equations.
- SulfateFormationH2O2
model
aerosol
sulfate
Aqueous-phase S(IV)→S(VI) oxidation rate by hydrogen peroxide — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Section 7.5.2, Eq. 7.84. Hydrogen peroxide is the dominant oxidant converting dissolved sulfur(IV) (SO2·H2O, HSO3-, SO3^2-) to sulfate in cloud and fog droplets at low pH, where the competing O3 oxidation pathway is slow. The rate law R_H2O2 = k·[H+]·[H2O2]·[HSO3-]/(1+K_eq·[H+]) is first-order in aqueous H2O2 and in bisulfite, rises with acidity, and saturates toward k·[H2O2]·[HSO3-]/K_eq at very high [H+]. Because the equilibrium bisulfite concentration itself scales as 1/[H+], the overall H2O2 oxidation rate (when [HSO3-] is tied to gas-phase SO2) is famously almost pH-independent across cloud-water pH 2-6 — but within this standalone component [HSO3-] is an independent input, so the rate computed here does scale with [H+]. Migrated from Aerosol.jl SulfateFormationH2O2.
- SulfateFormationMn
model
aerosol
sulfate
Mn(II)-catalyzed aqueous-phase S(IV) oxidation rate (sulfate formation) — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Section 7.5.4, Eq. 7.101. In cloud and fog droplets, dissolved S(IV) (SO2·H2O, HSO3⁻, SO3²⁻) is oxidized to S(VI) (sulfate) by dissolved O2, a reaction strongly accelerated by transition-metal catalysts. This component implements the manganese(II)-catalyzed pathway in the low-S(IV) (< 1 µM) regime, where the rate law R_Mn = k0·[Mn(II)]·[S(IV)] is first-order in both the Mn(II) catalyst and the total dissolved S(IV). (In the high-S(IV) regime, > 100 µM, the rate instead becomes zero-order in S(IV) and second-order in Mn — a separate regime not implemented here.) The Mn(II) pathway, together with the O3, H2O2, and Fe(III) pathways and the Fe/Mn synergistic term, controls how fast SO2 is converted to sulfate aerosol within clouds — a dominant route for atmospheric sulfate production. Migrated from Aerosol.jl SulfateFormationMn.
- SulfateFormationO3
model
aerosol
sulfate
Aqueous-phase S(IV)→S(VI) oxidation rate by dissolved ozone — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 7, Section 7.5.1, Eqs. 7.79-7.80. Dissolved S(IV) (sulfur in the +4 oxidation state) partitions in cloud and fog droplets among three species — un-ionized SO₂·H₂O, bisulfite HSO₃⁻, and sulfite SO₃²⁻ — set by the S(IV) acid-dissociation equilibria. Each is oxidized to S(VI) (sulfate) by dissolved ozone through a parallel second-order channel, and the total oxidation rate is their sum: R_O3 = (k0·[SO₂·H₂O] + k1·[HSO₃⁻] + k2·[SO₃²⁻])·[O₃(aq)], first-order in each S(IV) species and first-order in dissolved O₃. The three rate constants climb steeply with the degree of ionization — k0 = 24, k1 = 370, k2 = 1.5×10⁶ m³ mol⁻¹ s⁻¹ — so the channel is strongly pH-dependent: at high droplet pH the sulfite term dominates and oxidation is fast, at low pH it is slow. The S(IV)+O₃ pathway is one of the principal in-cloud sulfate-production routes. Migrated from Aerosol.jl SulfateFormationO3.
- SuperFast
reaction_system
gaschem
SuperFast gas-phase atmospheric chemistry mechanism from GasChem.jl. 12 active species + 3 quasi-constant reservoirs (O2/CH4/H2O; constant=true per ESS gt-ertm), 27 reactions covering tropospheric ozone chemistry. Regenerated from the upstream MTK ReactionSystem via mtk2esm (ESS gt-dod2). Fractional stoichiometries preserved directly (ESS gt-1e96); rate-law wrappers (arrhenius, third-body falloff, JPL 15-10 OH+CO, H2O-dependent HO2+HO2) inlined as Expression trees.
- SuperFastDepositionSink
model
atmospheric_deposition
Operator model that turns first-order dry + wet deposition loss-rate coefficients into additive sink terms on a SuperFast-family gas-phase mechanism. Each equation is D(<X>) ~ -(k_dry + k_wet)*<X> over the model's OWN species unknowns; when this model is merged with a SuperFast reaction system via an `operator_compose` coupling (systems: [<Chem>, SuperFastDepositionSink]), the flattener matches each sink equation's dependent variable to the chemistry system's state of the same species name and sums the two right-hand sides (dc/dt += -k*c), then retires the sink's own declaration of that name (esm-spec 10.1/10.2 — direct match, else the bare-name match). The deposition rate coefficients are exposed as parameters so they can be driven from the full DryDepositionGas (Wesley 1989) and WetDeposition (EMEP) components via param_to_var edges in an assembly. Species->rate mapping mirrors AtmosphericDeposition.jl/ext/GasChemExt.jl couple2(SuperFastCoupler, DryDepositionGasCoupler / WetDepositionCoupler): NO reuses NO2's dry-dep rate; CH2O uses the formaldehyde (HCHO) dry-dep rate; the wet rate k_wet is the lumped soluble-gas WetDeposition.k_othergas applied to HNO3, H2O2, CH2O, CH3OOH.
- SurfaceEnergyFlux
model
urban_canopy
temps
Net surface heat flux and its derivative with respect to surface temperature for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:347 (`SurfaceEnergyFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.26, 4.28, and 4.29: the surface heat flux h is the algebraic sum of absorbed solar radiation, net longwave radiation, sensible heat, latent heat, and waste/AC heat (Eq. 4.26); the longwave-derivative diagnostic dL_g_dT = 4*epsilon_g*sigma_SB*T_g_n^3 (Eq. 4.29) is the Stefan-Boltzmann temperature derivative of the upward longwave emission at the current surface temperature; the total flux derivative dh_dT = -dL_g_dT - dH_g_dT - dlambdaE_g_dT (Eq. 4.28) drives the linearized Crank-Nicholson scheme of Eq. 4.19. Parameterized as observed-only: S_g, L_g, H_g, lambdaE_g, H_wasteheat_g, H_aircond_g, epsilon_g, T_g_n, dH_g_dT, dlambdaE_g_dT are inputs (parameters); h, dL_g_dT, dh_dT are the algebraic state outputs.
- SurfaceLayerProfile
model
atmospheric_dynamics
local_scale
Monin-Obukhov surface-layer similarity theory for the atmospheric surface layer, from Seinfeld & Pandis (2006) "Atmospheric Chemistry and Physics", 2nd ed., Chapter 16 "Meteorology of the Local Scale". Observed-only algebraic component: from the friction velocity u_star, surface sensible heat flux q_z, and surface-layer geometry it computes the Monin-Obukhov length L (Eq. 16.70), the dimensionless stability parameter ζ = z/L, the Businger-Dyer stability functions φ_m and φ_h (Eq. 16.75), their integrated forms ψ_m and ψ_h (Eq. 16.78-16.79), and the stability-corrected mean wind speed ū (Eq. 16.66 with the Eq. 16.77 correction). Migrated from AtmosphericDynamics.jl@816cc391 src/local_scale_meteorology.jl:107 (`SurfaceLayerProfile` @component); the 4 upstream @constants (g, κ, ĉ_p, ε_q) are declared as fixed-default parameters.
- SurfaceLayerUpdate
model
urban_canopy
hydro
Top-layer ice and liquid water mass-rate updates from surface dew, frost, and sublimation, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.150-5.152. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:860 (`SurfaceLayerUpdate` @component). Parameterized as observed-only: q_sdew, q_frost, q_subl are inputs (parameters); dw_liq_1, dw_ice_1_frost, dw_ice_1_subl are algebraic outputs that pass each input through (with a sign flip on sublimation). Applies to the top layer of all surfaces (roof, pervious road, impervious road).
- SurfaceResistance
model
atmospheric_deposition
sp_ch19
ModelingToolkit implementation of the surface (canopy) resistance to gaseous dry deposition from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 19 (Dry Deposition), Eqs. 19.50-19.52 -- the Wesely (1989) resistance model. Computes the total surface resistance r_c [s/m] as four parallel deposition pathways (Eq. 19.50): the combined stomatal+mesophyll pathway, the cuticular/outer-surface pathway r_lu, the lower-canopy pathway r_dc+r_cl, and the ground pathway r_ac+r_gs. The stomatal resistance r_st (Eq. 19.51) responds to solar irradiance G and surface temperature T_s through dimensionless light and temperature factors; the mesophyll resistance r_m (Eq. 19.52) is set by the gas's effective Henry's-law solubility H_star and reactivity f_0. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_ch19.jl:311 (the SurfaceResistance @component). Purely algebraic: no differential states, six explicit equations evaluated as a triangular cascade.
- SurfaceRunoff
model
environmental_transport
surface_runoff
Single-node surface-runoff model based on the Saint-Venant overland-flow equations, from Wang et al. (2020), Eq. 1. The component tracks two ODE states at one surface computing node — the ponded flow depth h_tilde and the surface runoff flux per unit width q — plus one algebraic (observed) state, the Manning friction slope S_f. Mass conservation (Eq. 1a) reads dh_tilde/dt = -dqdl + (P - I_infil): the flow depth rises with the net of precipitation P over infiltration I_infil and falls with the spatial divergence of runoff flux dqdl. Momentum conservation (Eq. 1b) reads dq/dt = -dFdl + g*max(h_tilde,h_tilde_0)*(S_0 - S_f): the runoff flux is driven by the imbalance between the surface slope S_0 and the friction slope S_f, minus the spatial divergence of momentum flux dFdl. The friction slope closes the system via Manning's equation S_f = (n_mann*q)^2 / h_tilde^(10/3), written here in non-dimensionalized form so the fractional powers act on dimensionless bases. Because this is a single-node reduction of a spatial PDE, the two spatial-divergence terms dqdl and dFdl are exposed as input parameters to be supplied by a discretization scheme or a coupled model; with both at zero the component reduces to the local mass/momentum response. Migrated from EnvironmentalTransport.jl@a48559c4 src/surface_runoff.jl:35 (`SurfaceRunoff` @component).
- SurfaceRunoffInfiltration
model
urban_canopy
hydro
Surface runoff and infiltration for the pervious-road urban surface, following Oleson et al. (2010, CLM Tech Note Ch. 5) §5.2, Eqs. 5.49-5.57. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:384 (`SurfaceRunoffInfiltration` @component). Implements the SIMTOP-based (Niu et al., 2005) runoff partition with frozen-soil-modulated saturated fraction (Eqs. 5.50-5.51), a maximum infiltration capacity built from top-layer matric-potential and saturation (Eqs. 5.52-5.55), and snow-aware surface infiltration (Eqs. 5.56-5.57). Observed-only: all 14 inputs are parameters and the seven outputs (f_frz_1, f_sat, s, v, q_infl_max, q_over, q_infl) are given by algebraic equations.
- tbranch
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- TenHourFuelMoisture
model
wildland_fire
nfdrs
10-hour timelag dead fuel moisture content per the NFDRS (Cohen & Deeming 1985), page 4. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:207 (`TenHourFuelMoisture` @component). Observed-only: EMCPRM, use_fuel_sticks, WT, AGE, CLIMAT are inputs (parameters); MC10 is the algebraic output.
- TerrainFollowingTransform
model
atmospheric_dynamics
clark1977
Terrain-following coordinate transformation from Clark (1977) "A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation", Eqs. 2.20-2.23 and 2.27. Observed-only algebraic component: from the terrain surface height z_s, the domain height H, the transformed vertical coordinate z_bar, and the two terrain slopes dz_s_dx and dz_s_dy it computes the transformation Jacobian G^(1/2) = 1 - z_s/H (G_sqrt), the two metric coefficients G^(1/2)G^13 and G^(1/2)G^23 that carry the terrain slope into the transformed equations (G_sqrt_G13, G_sqrt_G23), the physical height z_phys recovered from z_bar (the inverse of the mapping z_bar = H(z - z_s)/(H - z_s)), and the diagnostic Jacobian factor ω_diag used to recover the contravariant vertical velocity ω (Eq. 2.27). The transformation maps the irregular lower boundary z = z_s(x,y) to the flat computational surface z_bar = 0 while preserving the rigid lid z = H at z_bar = H. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:157 (`TerrainFollowingTransform` @component).
- TerrainSlope
model
wildland_fire
Terrain slope magnitude and aspect from elevation gradients. Migrated from WildlandFire.jl@126976f2 src/coupling.jl:205 (`TerrainSlope` @component). Observed-only: dzdx and dzdy are inputs (parameters); tan_phi, slope_aspect, dzdx_out, dzdy_out are algebraic outputs.
- ThousandHourFuelMoisture
model
wildland_fire
nfdrs
1000-hour timelag dead fuel moisture content per the 1978 NFDRS (Cohen & Deeming 1985), basic equations. Migrated from WildlandFire.jl@126976f2 src/nfdrs.jl:354 (`ThousandHourFuelMoisture` @component). Algebraic state-variable model: BNDRYT (today's boundary value) is computed from precipitation duration and the 24-hour average EMC; MC1000 is updated from the previous day's value (PM1000) using the 7-day boundary average (BDYBAR) and a fixed 1000-hour response coefficient.
- TOARadiativeForcing
model
gaschem
radiation
Top-of-atmosphere (TOA) radiative-flux balance for a 0-D planetary climate model, following Seinfeld & Pandis (2006) Chapter 4 Eq. 4.11. Implements the net incoming flux F_net = S_0/4 · (1 - R_p) - F_L as a single algebraic relation between the absorbed shortwave flux F_S = S_0/4 · (1 - R_p) (Eq. 4.5, the spherical-projection factor of 1/4 accounts for the planet receiving solar flux over its cross-section πR² but emitting over its full surface 4πR²) and the outgoing longwave flux F_L (input parameter, typically supplied by the sibling PlanetaryEnergyBalance / StefanBoltzmann components in this domain). Sign convention: positive F_net means the planet is gaining energy (warming); negative F_net means losing energy (cooling). At default parameters (S_0=1370 W/m², R_p=0.3, F_L=239.75 W/m²) the planet is in exact radiative equilibrium (F_net = 0). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:327 (`TOARadiativeForcing` @component). Sibling component to PhotonEnergy (Eq. 4.1), BlackbodyRadiation (Eq. 4.2), WienDisplacement (Eq. 4.3), StefanBoltzmann (Eq. 4.4), PlanetaryEnergyBalance (Eqs. 4.5-4.7), ClimateSensitivity (Eqs. 4.8-4.10) — together they compose the upstream RadiationFundamentals (radiation_fundamentals.jl:367) system.
- TOMAS
model
aerosol
TwO-Moment Aerosol Sectional (TOMAS) Brownian-coagulation model with five mass-doubling size bins. Each bin k carries two moments - particle number concentration N_k and mass concentration M_k - and the bins are coupled by Brownian coagulation: intra- and inter-bin collisions remove particles and transfer mass toward larger bins at rates set by a precomputed 5x5 coagulation-coefficient matrix. f_k and psi_k are the within-bin linear number-distribution reconstruction coefficients of the two-moment scheme, evaluated algebraically from N_k. Migrated from the module-level script Aerosol.jl src/TOMAS.jl @ c8c640bb636b22f2425460e9ed5cba50793bfee1; the upstream array-variable ODESystem was scalarized to 20 scalar unknowns and mtk2esm-scaffolded. All coagulation coefficients, bin masses and the bin-spacing factor xi are baked in as numeric literals, so the model has no free parameters.
- TotalMolarConcentration
model
atmospheric_dynamics
sp_ch1
Total molar concentration of air from the ideal gas law: c_total = N/V = p / (R * T) (Seinfeld & Pandis Eq. 1.7). Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:244 (`TotalMolarConcentration` @component). Algebraic (observed-only): T and p are input parameters; c_total is the algebraic output fixed by one explicit equation. Upstream the Julia @component declares T and p as @variables for composition into a parent system; for standalone serialization (3 unknowns vs 1 equation otherwise), they are declared as parameters here, mirroring the sibling ideal_gas.esm / sat_vapor_pressure.esm pattern.
- TotalPhaseChangeEnergy
model
urban_canopy
temps
Column-total phase change energy for the urban canopy snow/soil thermodynamics: the sum of the surface snow melt energy E_p1S (Oleson et al. 2010 Eq. 4.71) and the column-summed per-layer phase change energies E_p_layers (Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1071 (`TotalPhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.72. Parameterized as observed-only: E_p1S and E_p_layers are inputs (parameters); E_p_total is the algebraic output.
- TroposphericBudget
model
gaschem
lifetime
Complete tropospheric mass-budget model for a trace species, from Seinfeld & Pandis (2006) Ch. 2 §2.3, Eqs. 2.13-2.17. A single linear first-order ODE on the species burden Q drives the dynamics: dQ/dt = (P_n + P_a + P_c) - (k_d + k_w + k_c + k_t)·Q — total production from natural emissions, anthropogenic emissions, and in-troposphere chemical production, balanced against first-order removal by dry deposition, wet deposition, chemical loss, and cross-tropopause transport to the stratosphere. The model also reports the algebraic diagnostics that the textbook builds on this budget: the total production rate P_total and removal rate R_total, the total first-order removal rate constant k_total, the per-pathway lifetimes tau_dry/tau_wet/tau_chem/tau_transport = 1/k_X, the total atmospheric lifetime tau_total = 1/k_total (Eq. 2.15), and the production-based lifetime tau_production = Q/P_total (Eqs. 2.16-2.17), which equals tau_total once the burden has relaxed to steady state. Migrated from GasChem.jl@280ee50f src/AtmosphericLifetime.jl:336 (`TroposphericBudget` @component). The system is linear with constant coefficients, so the burden has the exact closed form Q(t) = Q_ss + (Q_0 - Q_ss)·exp(-k_total·t) with steady state Q_ss = P_total/k_total; every inline-test expected value below is that analytic solution.
- TroposphericChemistrySystem
model
gaschem
combined
Combined tropospheric chemistry diagnostic system (Seinfeld & Pandis 2006, Chapter 6) — couples three photochemical subsystems into a comprehensive steady-state diagnostic model of tropospheric photochemistry: OH production from O3 photolysis (§6.1), the NOx photochemical cycle (§6.2), and CO oxidation chemistry (§6.3). Migrated from GasChem.jl@8c12c048 src/combined_system.jl:54 (`TroposphericChemistrySystem` @component). The three subsystems — `oh` (OHProduction), `nox` (NOxPhotochemistry), `co` (COOxidation) — are inlined verbatim (ESS spec §4.7 subsystem composition) from their already-migrated standalone .esm files; the parent supplies 14 coupling equations feeding the shared species (O3, NO, NO2, OH, HO2, CO, CH3O2, H2O, M, O2) into the subsystems and 9 combined-diagnostic equations (total/net O3 production, ozone production efficiency, NOx loss rate, HOx chain length). Purely algebraic — a steady-state diagnostic system with no time derivatives. SI units throughout (m^-3 for concentrations, m^3/s for bimolecular rate constants).
- tunplus_mlc_1
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- tunplus_ppb
model
gaschem
GEOS-Chem gas-phase reaction rate laws — the 37 rate-coefficient builder functions of GasChem.jl src/geoschem_ratelaws.jl, adapted from the GEOS-Chem KPP/fullchem mechanism (github.com/geoschem/geos-chem, commit 4722f288). Each builder computes a single reaction rate coefficient k from temperature and air number density: constant rates (constant_k, constant_k_1), modified-Arrhenius forms in ppb and SI molecular units (arrhenius_ppb, arrhenius_ppb_3, arrhenius_mlc_SI, arrhenius_mlc_1, arrplus_*, tunplus_*), Troe / third-body pressure-dependent falloff rates (arr_3rdbody, arr_3rdbody_1, rate_OHCO, rate_PAN_abab, rate_PAN_acac, eq_const, eq_const_1), and a family of mechanism-specific rates for HO2, RO2+NO, isoprene, glycolaldehyde, DMS and HNO3 chemistry. Each rate law is migrated as an independent purely-algebraic model: the inputs (T, num_density, Arrhenius coefficients) are parameters, the rate coefficient k is the single state variable defined by one algebraic equation, and an inline test reproduces the rate constant asserted by the corresponding @testitem in GasChem.jl test/geoschem_ratelaws_test.jl (compiled at T=293 K, num_density = 2.7e19 molec/cm^3). The GEOS-Chem license applies (github.com/geoschem/geos-chem/blob/main/LICENSE.txt).
- TwoProductSOA
model
aerosol
organic
Two-product model for secondary organic aerosol (SOA) formation (Odum et al., 1996). Represents the complex mixture of oxidation products from a reactive organic gas (ROG) as two lumped surrogate products that partition between gas and aerosol phases according to an ideal-solution absorptive-partitioning equilibrium. Yields and saturation concentrations correspond to alpha-pinene oxidation from Seinfeld and Pandis (2006) Table 14.12.
- TypicalConditions
model
gaschem
combined
Parameters-preset component that exposes typical lower-troposphere chemical composition (Seinfeld & Pandis 2006, Chapter 6) as observable outputs. Migrated from GasChem.jl@280ee50f src/combined_system.jl:177 (`TypicalConditions` @component). The component declares 11 species concentrations as parameters with fixed default values in SI units (m^-3) for typical mid-latitude lower-tropospheric daytime conditions — total air number density M = 2.5e25 m^-3 at STP, O2 = 5.25e24 m^-3 (21% of M), H2O = 4.0e23 m^-3 (~50% RH at 298 K), O3 = 1.0e18 m^-3 (~40 ppb), NO = 2.5e15 m^-3 (~0.1 ppb), NO2 = 2.5e16 m^-3 (~1 ppb), CO = 2.5e18 m^-3 (~100 ppb), CH4 = 4.5e19 m^-3 (~1800 ppb), OH = 1.0e12 m^-3 (typical daytime), HO2 = 1.0e14 m^-3 (typical daytime), CH3O2 = 1.0e14 m^-3 (typical daytime) — and 11 passthrough algebraic equations of the form `<species>_out ~ <species>` that publish each species parameter on the canonical `<species>_out(t)` observable name. This design exists because the upstream `TroposphericChemistrySystem` consumes species concentrations on the bare names (M, O2, H2O, O3, NO, NO2, OH, HO2, CO, CH4, CH3O2) and a downstream consumer can compose a conditions preset by binding its preset parameters into those input variables — the `_out` suffix makes the conditions component a publishable upstream of any compose graph. Parameterized as observed-only with 11 passthrough/identity equations — no time derivatives, no `@register_symbolic` dependencies, no PDE — matching the upstream `length(equations(sys)) == 11` / `length(unknowns(sys)) == 11` structural shape.
- UniformGrid
model
urban_canopy
temps
Uniform vertical grid discretization for roof and wall columns in the urban canopy thermal solver. Computes node depths at layer midpoints (Oleson Eq. 4.5), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) for a column of total thickness `dz_total` divided into N equal-thickness layers. Used for roofs and walls (homogeneous opaque material — concrete, brick, etc.); the road column uses the exponential grid (sibling `exponential_grid.esm`) because it overlies real soil where near-surface diurnal cycles dominate. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:830 (`UniformGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.5-4.7). Parameterized as observed-only: `dz_total` is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- UptakeCoefficient
model
aerosol
mass_transfer
Effective uptake coefficient γ for gas-particle mass transfer. γ is the net probability that a gas molecule striking the particle surface is irreversibly taken up; it accounts for three resistances in series: (1) gas-phase diffusion to the surface (term_diff), (2) surface accommodation (term_acc), and (3) aqueous-phase reaction-diffusion within the droplet (term_rxn). The reciprocal relation 1/γ = term_diff + term_acc + term_rxn (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.121) expresses resistances additively, analogous to resistors in series. Migrated from Aerosol.jl src/mass_transfer.jl `UptakeCoefficient`.
- UrbanAerosol
model
aerosol
size
ModelingToolkit implementation of the Urban atmospheric aerosol size distribution, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 8 ("Properties of the Atmospheric Aerosol"), Table 8.3. The Urban distribution is a preset of the multi-modal lognormal AerosolDistribution model: three lognormal modes (N = [99300, 1110, 36400] cm^-3, D_g = [0.013, 0.014, 0.050] um, log10 sigma = [0.245, 0.666, 0.337]) — a nucleation mode and an Aitken mode at sub-20 nm plus an accumulation mode at 50 nm, characteristic of polluted urban air. The model represents the aerosol number, surface-area and volume distributions as a sum of the three modes (Eq. 8.54) and reports the total number/surface/volume concentrations, the mode-1 Hatch-Choate diameters, and the vertical aerosol mass profile (Eq. 8.55). Migrated from Aerosol.jl UrbanAerosol, a preset wrapper around AerosolDistribution(3). Purely algebraic: ten observed outputs, no differential states, an empty equations array. The upstream length-n_modes array parameters are scalarized at n_modes = 3 with the Urban Table 8.3 mode parameters as defaults.
- UrbanCanopyModel
model
urban_canopy
Top-level composed diagnostic urban canopy model following the Community Land Model Urban (CLMU) parameterization of Oleson et al. (2010). Wires four CLMU subsystems — OfflineModeForcing (raw met → derived forcing), CLMUAtmosphere (atmospheric interface diagnostics), UrbanRadiation (solar/longwave radiation), and HeatMomentumFluxes (Monin-Obukhov surface fluxes) — via top-level coupling equations. All subsystems are inlined (ESS spec §4.7 composed-model pattern). Surface temperatures are prescribed as parameters (diagnostic mode). Migrated from UrbanCanopy.jl@9200edd4 src/urban_canopy_model.jl:41.
- UrbanConditions
model
gaschem
combined
Parameter-preset condition system representing typical urban-air-quality lower-troposphere conditions with elevated NOx, CO, and reduced HOx, following Seinfeld & Pandis (2006) Chapter 6. Migrated from GasChem.jl@8c12c048 src/combined_system.jl:219 (`UrbanConditions` @component). The component declares 11 species number-density parameters (M, O2, H2O, O3, NO, NO2, CO, CH4, OH, HO2, CH3O2) with urban-regime defaults in SI units (m^-3) and 11 corresponding `_out` output state variables, one per parameter, defined by identity equations `*_out ~ *`. The component is a sibling preset to `TypicalConditions` (background-air defaults) and `RemoteConditions` (clean-remote defaults); together they parametrize the three canonical regimes the upstream `TroposphericChemistrySystem` is exercised against. Compared to TypicalConditions: NO is 100x higher (10 vs 0.1 ppb), NO2 is 30x higher (30 vs 1 ppb), CO is 20x higher (2000 vs 100 ppb), and OH/HO2 are reduced 2x (titrated by the elevated NOx and CO oxidation chain). All concentrations are positive number densities at standard temperature and pressure; the `_out` indirection lets downstream consumers wire the preset values into the canonical tropospheric-chemistry input interface without renaming.
- UrbanRadiation
model
urban_canopy
Urban albedos and radiative fluxes for the Community Land Model Urban (CLMU) parameterization, following Chapter 2 of Oleson et al. (2010). Computes view factors, incident direct beam and diffuse solar radiation, absorbed and reflected solar radiation (with closed-form multi-reflection solution for the urban canyon), incident longwave radiation, and absorbed/reflected/emitted longwave radiation for urban surfaces: roof, sunlit wall, shaded wall, and road. The urban canyon is represented as an infinitely long canyon of width W bordered by buildings of height H. The iterative multi-reflection scheme (Eqs. 2.63-2.85, 2.138-2.170) is solved in closed form using the matrix geometric series S_absorbed = (I - A) * (I - T*A)^{-1} * S_0, where A is the albedo matrix, T is the view-factor transport matrix, and S_0 is the initial incident radiation vector. Migrated from UrbanCanopy.jl@9200edd4 src/albedos_radiative_fluxes.jl:27 (`UrbanRadiation` @component). Parameterized as observed-only: H_W, W_roof, S_atm_*, L_atm_down, μ_zen, surface albedos α_*, emissivities ε_*, and surface temperatures T_* are inputs (parameters); 62 view factor, intermediate, absorbed-flux, and reflected-flux quantities are algebraic state outputs.
- UrbanSurfaceThermalProperties
model
urban_canopy
temps
Prescribed thermal conductivity and volumetric heat capacity for urban surface layers (roof, wall, and impervious road) in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:245 (`UrbanSurfaceThermalProperties` @component). Implements Section 4.3 of Oleson et al. (2010, CLM Tech Note Ch. 4): for roof, wall, and impervious road layers (i = 1, ..., N_imprvrd) the thermal conductivity λ_surf and the volumetric heat capacity c_surf are specified by the surface dataset (Table 1.3) rather than computed from the layer state. The component takes those prescribed values as parameters and returns them as time-indexed observables — a passthrough/identity wrapper that exposes the surface dataset values on the canonical (λ_surf, c_surf) names the downstream HeatFlux / SurfaceEnergyFlux components consume. Parameterized as observed-only with two algebraic equations: λ_surf and c_surf are state variables; λ_prescribed and c_prescribed are inputs (parameters in standalone form).
- USGS3DEP
model
earthsci_data
USGS 3DEP regridding model — the coupler half of the usgs3dep loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.4). Exposes USGS 3D Elevation Program terrain elevation (a pure-I/O loader passthrough) for terrain coupling in EarthSciML systems.
- USGS3DEP_data
data_source
earthsci_data
USGS 3DEP regridding model — the coupler half of the usgs3dep loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.4). Exposes USGS 3D Elevation Program terrain elevation (a pure-I/O loader passthrough) for terrain coupling in EarthSciML systems.
- VIIRS_active_fire
data_source
earthsci_data
Pure-I/O data loader for NASA FIRMS VIIRS active-fire detections. Provides per-overpass point detections (one row per fire pixel per satellite pass): fire radiative power, brightness temperature, and detection confidence at irregular (lon,lat) detection locations resolved at runtime. This is the SUB-DAILY fire-front timing reference for fire-model validation (campfire-e2e Phase E1/E2) — the best progression signal between daily perimeters.
- Visibility
model
aerosol
mie
Visibility calculation from extinction coefficient. Computes visual range using the Koschmeider equation (Eq. 15.36) and related visibility metrics. Visual range is the distance at which a black object against a white background reaches the threshold contrast of 0.02.
- WasteHeatAirConditioning
model
urban_canopy
temps
Waste heat and air-conditioning heat removal aggregation for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:440 (`WasteHeatAirConditioning` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.55-4.56: the unclamped total waste heat H_wasteheat_unclamped distributes heating/cooling fluxes from the roof and the two walls (sunlit and shaded) into the canyon air, weighted by the efficiency factors f_heat = 1/0.75 and f_cool = 1/0.25, the roof area fraction W_roof, and the canyon-wall geometry factor (1 - W_roof) * H_W per Eq. 4.55; this is clamped at H_wasteheat_max = 100 W/m^2 to produce H_wasteheat. The air-conditioning heat removal H_aircond is the sum of the three cooling fluxes (F_cool_roof + F_cool_sunwall + F_cool_shdwall) per Eq. 4.56. Parameterized as observed-only with three algebraic equations: H_wasteheat_unclamped, H_wasteheat, H_aircond are state variables; F_heat_roof, F_cool_roof, F_heat_sunwall, F_cool_sunwall, F_heat_shdwall, F_cool_shdwall, W_roof, H_W are inputs (parameters in standalone form).
- WasteHeatAllocation
model
urban_canopy
temps
Allocates the column-total anthropogenic waste heat (H_wasteheat) and air conditioning heat removal (H_aircond) to the pervious and impervious urban road surfaces under the CLMU urban canopy model. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:561 (`WasteHeatAllocation` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.27: per the CLMU convention, waste heat and air-conditioning heat are deposited ONLY on the pervious and impervious road tiles (walls and roof receive zero by construction); each road tile receives the same per-unit-area flux equal to the column total divided by the non-roof areal fraction (1 - W_roof). Parameterized as observed-only with four algebraic equations: H_wasteheat_prvrd, H_wasteheat_imprvrd, H_aircond_prvrd, H_aircond_imprvrd are state variables; H_wasteheat, H_aircond, W_roof are inputs (parameters in standalone form).
- WaterEquilibrium
model
aerosol
aq_eq
Water autoionization equilibrium with van't Hoff temperature dependence. Migrated from Aerosol.jl@c8c640bb src/aqueous_equilibria.jl:76 (`WaterEquilibrium` @component). Serialized via EarthSciAST.mtk2esm. Implements Seinfeld & Pandis Ch 7 Eq 7.10–7.13 and Table 7.4. Parameterized as observed-only: T and [H+] are inputs, K_w/[OH-]/pH are algebraic outputs.
- WaterProperties
model
aerosol
nucleation
Temperature-dependent physical properties of water for nucleation calculations following Seinfeld & Pandis (2006), Chapter 11, Tables 11.1 and 11.4. Provides surface tension, molecular volume, molecular mass, and saturation vapor pressure as functions of temperature.
- WaterTableDepth
model
urban_canopy
hydro
Water table depth z_v as a function of unconfined-aquifer water storage W_a and the depth of the bottom soil interface z_h_bottom. Implements Oleson et al. (2010) CLM Tech Note Eq. 5.146 (p. 143) with hard clamps at z_v_min = 0.05 m and z_v_max = 80 m. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:743 (`WaterTableDepth` @component). Observed-only: z_h_bottom and W_a are parameters and z_v is given by a single algebraic equation.
- WaterVaporThermodynamics
model
atmospheric_dynamics
sp_ch1
Composite water-vapor thermodynamics system from Seinfeld & Pandis (2006) Chapter 1: given air temperature and water-vapor partial pressure it computes the saturation vapor pressure of water over liquid water (Eq. 1.10) and the relative humidity (Eq. 1.9). Migrated from AtmosphericDynamics.jl@816cc391 src/seinfeld_pandis_ch1.jl:433 (`WaterVaporThermodynamics` @component), which composes two MTK subsystems via `System(eqs, t; systems=[sat, rh])`. Represented here as a subsystem-composed ESS model (spec §4.7): the `sat` subsystem inlines the already-migrated SaturationVaporPressure component (sat_vapor_pressure.esm, esm-zuku) and the `rh` subsystem inlines RelativeHumidity (relative_humidity.esm, esm-vann), wired together by five top-level coupling equations. Algebraic (observed-only): T and p_H2O are input parameters; p_sat and RH are algebraic state outputs. The flattened chain T -> sat.a -> sat.p_sat -> rh.p_sat -> rh.RH is fully explicit and triangular.
- WesleySurfaceResistance
model
atmospheric_deposition
wesley1989
Wesely (1989) bulk surface (canopy) resistance to gaseous dry deposition. Computes the total surface resistance r_c [s/m] along Wesely's three parallel mass-transfer pathways — the upper-canopy leaf cuticles, the lower-canopy structures, and the ground — from the gas species' Henry's-law solubility and reactivity, solar irradiation, surface air temperature, terrain slope, season, land-use category, and surface wetness (rain/dew). Migrated from AtmosphericDeposition.jl@e4468c79 src/wesley1989.jl:360 (the `WesleySurfaceResistance` builder function); implements Wesely (1989) Eq. 2 with the stomatal, mesophyll, cuticle, lower-canopy and ground sub-resistances of Eqs. 3-14 and the Walmsley & Wesely (1996) corrections.
- WetDeposition
model
atmospheric_deposition
EMEP-formulation wet deposition model for PM2.5, SO2, and other gases. Computes three first-order wet deposition rate coefficients (k_particle, k_SO2, k_othergas [1/s]) from cloud fraction (cloudFrac), rain mixing ratio (qrain), air density (rho_air), and the atmospheric level index (lev). Subcloud scavenging rates scale as qrain*rho_air/Dz times a species-specific washout coefficient; in-cloud scavenging additionally scales with cloudFrac; the particle subcloud term uses A_wd*E*qrain*rho_air without the 1/Dz factor. The layer depth Dz is looked up from a 72-entry constant table (GEOS-Chem-derived model-level thicknesses in metres) indexed by lev. The gt-p3ep blocking gap (get_lev_depth is @register_symbolic) is resolved by expressing the lookup as an interp.linear AST composition over the 72-entry integer-axis table — matching the FastJX_interpolation_troposphere precedent. Migrated from AtmosphericDeposition.jl@e4468c79 src/wet_deposition.jl:147 (the WetDeposition builder) and src/wet_deposition.jl:82 (_WetDeposition helper). Purely algebraic: no differential states; k_particle, k_SO2, k_othergas are observed variables.
- WetDepositionFlux
model
atmospheric_deposition
sp06_ch20
Net wet deposition diagnostics — wet deposition flux, washout ratio, and wet deposition velocity — for a trace species removed from the atmosphere by falling rain, from Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 20 (Wet Deposition), Eqs. 20.6-20.9. Given the species concentration in ground-level rainwater (C_rain), its gas-phase concentration in air (C_air), and the precipitation rate (p₀), the component evaluates three quantities: the wet deposition flux F_w = C_rain·p₀ (Eq. 20.7) — the downward species mass flux carried to the surface by rain; the dimensionless washout ratio w_r = C_rain/C_air (Eq. 20.6) — a measure of how strongly the species partitions into rainwater; and the wet deposition velocity u_w = F_w/C_air (Eq. 20.8), equivalently w_r·p₀ (Eq. 20.9) — the flux normalized by the air-phase concentration. Migrated from AtmosphericDeposition.jl@e4468c79 src/seinfeld_pandis_2006_ch20.jl:451 (`WetDepositionFlux` @component). Flat observed-only algebraic model: C_rain, C_air and p₀ are the input parameters and F_w, w_r, u_w are the algebraic outputs, each fixed by one equation with no time derivative. The upstream @component is a single flat System with no subsystems; the migration-tracker `coupling.couple` feature tag and `depends_on: ParticleScavengingCoeff, GasScavengingCoeff` describe a conceptual relationship that the source code does not implement, so this is migrated as a standalone flat model.
- WetScavengingLimitations
model
atmospheric_deposition
luo2023
Combined air refreshing and cloud ice uptake limitations on wet scavenging from Luo & Yu (2023). This component unifies the two novel parameterizations of the paper into a single algebraic system: (1) the air refreshing limitation (Section 2.1, Eqs. 2/5/10/11), which reduces the wet-scavenging removal rate R_A when subgrid cloud-free (rain-free) air mixes into cloudy (rainy) air slower than the model time step; and (2) the cloud ice uptake limitation (Section 2.2, Eqs. 12-15), which limits the cold-cloud rainout efficiency F_I by the rate R_U at which water-soluble aerosols are captured by ice crystals -- the HNO3 ice uptake rate of Jacob (2000), with the temperature-dependent uptake efficiency gamma of Hudson et al. (2002). Migrated from AtmosphericDeposition.jl@e4468c79 src/luo2023.jl:326 (`WetScavengingLimitations` @component). The upstream component is a flat MTK System that inlines the equations of both AirRefreshingLimitation and CloudIceUptakeLimitation -- it does not `couple` them -- so this migration is the union of air_refreshing.esm (esm-1i3m) and cloud_ice_uptake.esm (esm-3hh9): 13 input parameters, 9 module constants, and 7 algebraic state variables (Kᵢ, τ_A, R_A, gamma, R_U, R_AU, F_I) fixed by 7 explicit equations. Observed-only: every equation is algebraic, so the 7 outputs are the algebraic solution while the ice/turbulence/grid/temperature inputs and module constants are parameters.
- WienDisplacement
model
gaschem
radiation
Wien's displacement law (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.3) — the peak emission wavelength λ_max of a blackbody at temperature T is given by the simple inverse relation λ_max = b / T where b is Wien's displacement constant (2.897×10⁻³ m·K). The component is observed-only: one algebraic equation on one state variable (λ_max the peak wavelength) driven by one input parameter (T the temperature) and one constant (b the displacement constant). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:121 (`WienDisplacement` @component). Wien's law is one half of the radiative-transfer toolkit for blackbody emission: paired with the Stefan-Boltzmann law σT⁴ (total emitted power) and the Planck function (spectral distribution), it lets a radiative-transfer model identify which spectral region a body's emission concentrates in. The 5800 K Sun peaks at ~500 nm (visible green); the 255 K Earth peaks at ~10 μm (thermal infrared); the 3 K cosmic microwave background peaks at ~1 mm (microwave). The temperature-inverse scaling means hotter sources emit at shorter wavelengths — the canonical fact behind the visible spectrum of stars (red giants vs blue dwarfs) and the separation of solar (shortwave) from terrestrial (longwave) radiation that anchors the planetary energy balance.
- WindLimit
model
wildland_fire
rothermel
Maximum effective wind speed (U_limit) above which the wind factor in the Rothermel surface fire spread model saturates. Migrated from WildlandFire.jl@126976f2 src/rothermel.jl:465 (`WindLimit` @component). Observed-only: IR is the input parameter; U_limit is the algebraic output. Both upstream branches are preserved here as a single `ifelse` on the dimensionless `use_corrected` indicator parameter — corrected (Andrews et al. 2013) when use_corrected > 0.5 (the upstream default), original when use_corrected ≤ 0.5. Implements Eq. Ulimit, Table 7 in Andrews (2018) RMRS-GTR-371.
- WitchOfAgnesi
model
atmospheric_dynamics
clark1977
"Witch of Agnesi" bell-shaped mountain topography from Clark (1977) "A Small-Scale Dynamic Model Using a Terrain-Following Coordinate Transformation", Equation 7.1 — the canonical idealized terrain for mountain-wave simulations. Algebraic component: from the mountain half-width a, peak height h_mtn, and horizontal position x relative to the mountain center it computes the terrain surface height z_s = a^2 h_mtn / (a^2 + x^2) (Eq. 7.1) and the terrain slope dz_s_dx = d(z_s)/dx. Migrated from AtmosphericDynamics.jl@816cc391 src/clark1977.jl:107 (`WitchOfAgnesi` @component); z_s and dz_s_dx are upstream `@variables` bound by algebraic equations and migrate as state-typed variables.
- WoodyFuelMoisture
model
wildland_fire
nfdrs
Woody fuel (1000-hour) moisture content per NFDRS (Cohen & Deeming 1985), pages 8-9.
- WRF
model
earthsci_data
WRF regridding model — the coupler half of the wrf loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.1). Exposes WRF regional weather fields (UCAR RDA d340000, WRF-Chem v3.9.1 CONUS 12 km) on the simulation's target grid for advection and chemistry coupling in EarthSciML systems.
- WRF_hourly_d01
data_source
earthsci_data
WRF regridding model — the coupler half of the wrf loader+regridding-model split (RFC pure-io-data-loaders §6/§7; bead esm-3nc.1). Exposes WRF regional weather fields (UCAR RDA d340000, WRF-Chem v3.9.1 CONUS 12 km) on the simulation's target grid for advection and chemistry coupling in EarthSciML systems.
- WSM6ColdAccretion
model
atmospheric_dynamics
wsm6
Collection (accretion) process rates between the six water species of the WRF single-moment 6-class microphysics scheme below and above freezing (WSM6; Hong and Lim 2006 appendix A; Lin et al. 1983; Rutledge and Hobbs 1983, 1984), transcribed from the cold-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): accretion of cloud ice by rain (praci), of rain by cloud ice (piacr), of cloud ice by snow (psaci) and by graupel (pgaci) -- all only below 0 C --, of cloud water by snow (psacw) and by graupel (pgacw) and their snow/graupel-weighted combination (paacw), of snow by rain (pracs, below 0 C), of rain by snow (psacr) and by graupel (pgacr), the eliminated snow-by-graupel term (pgacs = 0 since WRF V3.0, when snow and graupel received a common fall speed), and the enhanced melting of snow and graupel above 0 C by the sensible heat of the liquid water they collect (pseml, pgeml). Each collection rate is the geometric sweep-out of one species by another: pi/4 n0 |V_a - V_b| times a size-distribution kernel (collection_kernel_* templates) times the collected mixing ratio, with the collection efficiencies (eacrs = exp(-0.07 (T0 - T)) for ice, 1 for water) and WSM6's empirical reduction min(max(0, q_collector/q_collected), 1)^2 folded into the UNLIMITED rate because they are functions of the state alone. The kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step; pseml/pgeml are also floored at zero), exposed separately as <rate>_lim with the sub-step length dtcld as a parameter -- time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3); the mass-conservation rescaling applied afterwards is not part of this component. The size distributions, number concentrations and fall speeds are supplied by hydrometeor_slopes.esm mounted as subsystem `sd` (referenced as sd.<name>), exactly as the kernel evaluates them once per sub-step and reuses them here; cloud water qc and the sub-step dtcld are this component's own inputs. Scheme constants come from wsm6_parameters.esm (subsystem `par`), physical constants from lib/wrf_constants.esm (`wrf`). Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e) (esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6HydrometeorSlopes
model
atmospheric_dynamics
wsm6
Size-distribution and fall-speed diagnostics of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006), transcribed from slope_wsm6 and the cold-rain preamble of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): the temperature-dependent snow intercept factor n0s(T)/n0s (HDC 2004 eq. 6), the inverse slopes lambda^-1 of the exponential rain, snow and graupel distributions and their powers lambda^-b, lambda^-2, lambda^-3 (held at 1/lambda_max below the threshold qcrmin), the diagnosed ice crystal number concentration N_i (HDC eq. 5c), mean ice crystal diameter D_i (HDC eq. 5b) and fall speed V_i (HDC eq. 5a), the mass-weighted fall speeds of rain, snow and graupel V = a Gamma(4+b)/6 lambda^-b (rho0/rho)^(1/2), the ventilation coefficients precs1/2 and precg1/2 of the snow and graupel distributions (mp_wsm6_init products shared by deposition, evaporation and melting), and the combined snow/graupel fall speed WSM6 uses since V3.0. Everything is a pointwise function of the layer state on the layer index `lev` (WRF k, layer 1 at the surface). It also holds the transport properties of air at T and p (kinematic viscosity, vapor diffusivity, thermal conductivity; lib/wrf_air_properties.esm), the ventilation factor (WSM6 work2) and the ventilation moments coeres of rain, snow and graupel. The process-rate components (warm_rain.esm, cold_accretion.esm, ice_deposition.esm) mount this component as subsystem `sd` and take all of these from it, mirroring how the kernel computes them once per sub-step (slope_wsm6) and reuses them in every process; melting_freezing.esm evaluates the same templates at its own, earlier state. Scheme constants come from wsm6_parameters.esm (subsystem `par`) and physical constants from lib/wrf_constants.esm (subsystem `wrf`). Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6IceDeposition
model
atmospheric_dynamics
wsm6
Vapor-exchange and conversion process rates of the ice phase of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006; Hong, Dudhia and Chen 2004), transcribed from the cold-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): deposition/sublimation of vapor on cloud ice (pidep, HDC eq. 9), snow (psdep, HDC eq. 14) and graupel (pgdep, HL A21) below 0 C; ice nucleation from vapor (pigen, HDC eqs. 7-8); aggregation of ice to snow (psaut, HDC eq. 12) and of snow to graupel (pgaut, LFO eq. 37); and evaporation of melting snow (psevp, HL A35) and graupel (pgevp, HL A25) above 0 C. The UNLIMITED rates are the physics: pidep = 4 D_i N_i (rh_i - 1)/F_i, psdep/pgdep/psevp/pgevp the ventilated diffusional growth (rh - 1)(c1 lambda^-2 + c2 f_v coeres)/F, pgaut = alpha2(T) max(0, qs - qs0). Two processes are instantaneous adjustments that the kernel writes as rates: nucleation relaxes the ice content to the target q_i0(T) = 4.92e-11 N_i0(T)^1.33/rho and ice-to-snow aggregation removes the excess of q_i over q_imax = 2.08e22 D_max^8/rho; here the physical quantities are the targets q_i0 and q_imax (observeds qi_nucleation_target, qi_max) and the rates pigen, psaut carry the sub-step dtcld as a parameter (EqWeFiC FORTRAN_BUGS.md N3). WSM6 limits the deposition processes SEQUENTIALLY against the vapor budget: after the rain evaporation prevp of the warm-rain block (an INPUT here, from warm_rain.esm), each of pidep, psdep, pgdep may take at most half the supersaturation over ice per sub-step (satdt/2) and at most what the earlier processes left (supice), a sublimating species may not lose more than it holds, and once the running sum of the limited rates reaches satdt the flag ifsat closes the remaining processes and the nucleation; that chain is transcribed pointwise as the <rate>_lim observeds and the ifsat_* indicators, all time-step artefacts kept apart from the physics. The saturation state over water and ice (qsat_w, rh_w, qsat_i, rh_i, xl) is an INPUT from saturation.esm evaluated at the start of the sub-step (EqWeFiC FORTRAN_BUGS.md N4); the size distributions, N_i, D_i come from hydrometeor_slopes.esm mounted as subsystem `sd`; the deposition coefficients precs1/2, precg1/2, the transport properties of air, the ventilation factor and the ventilation moments live there too; the diffusional-growth denominators over water and ice are computed here with the same template as warm_rain.esm. Constants: wsm6_parameters.esm (`par`), lib/wrf_constants.esm (`wrf`). Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6MassConservation
model
atmospheric_dynamics
wsm6
Mass-conservation rescaling of the WSM6 process rates and the state update it feeds, transcribed from the block 'check mass conservation of generation terms and feedback to the large scale' of mp_wsm6_run (phys/physics_mmm/mp_wsm6.F90, WRF 4.8 NCAR/MMM-physics). The process rates of warm_rain.esm, cold_accretion.esm and ice_deposition.esm each carry their OWN limiter (a single process may not drain more than q/dtcld), but nothing stops the SUM of the processes draining one species from overdrawing it within a sub-step; WSM6 therefore walks the five species budgets in the fixed order cloud water, cloud ice, rain, snow, graupel (four in the warm branch: cloud water, rain, snow, graupel) and, whenever the total sink S of a species over one sub-step exceeds the mass v = max(q_floor, q) available, multiplies EVERY rate entering that budget by v/S. The factors are written branch-free as v/max(S, v) (microphysics_templates.esm mass_conservation_factor), which is 1 for a budget that is not overdrawn and for a net source. Because the blocks run in sequence, a rate that appears in several budgets is scaled once per budget, so its final value is the raw rate times the PRODUCT of the factors of the species whose budgets it drains -- praut = praut_raw f_qc f_qr, paacw = paacw_raw f_qc f_qs f_qg, piacr = piacr_raw f_qr f_qs f_qg, and so on -- which is how the cascade is written here, one factor per species instead of one rescaled copy per block. This is a TIME-STEP ARTEFACT of the explicit operator splitting, not physics: every factor depends on dtcld and all of them are 1 in the dtcld -> 0 limit (EqWeFiC FORTRAN_BUGS.md note N3). The same block then applies the rescaled rates to the state ('feedback to the large scale'): the vapor tendency dqv_dt (WSM6 work2), the latent-heating tendency dT_dt (WSM6 -xlwork2/cpm, with the latent heats xl of vaporization, xls of sublimation and xls - xl of fusion), and the updated mixing ratios, each floored at zero. Below 0 C (`cold`) the deposition/ice branch runs and the ice-rain collection products are partitioned between snow and graupel by the switches delta2, delta3 (rain and snow below the threshold par.q_delta = 1e-4 kg/kg send the products to snow); above 0 C only evaporation of melting precipitation, enhanced melting and pgacs act, cloud ice is untouched, and the accreted cloud water goes to rain rather than to the collector. The two branches are blended with the indicator `cold` rather than an ifelse per quantity, so that each updated field is one expression. The latent heats xl and cpm are INPUTS from saturation.esm at the START-of-sub-step state, as WSM6 uses them (EqWeFiC FORTRAN_BUGS.md note N4), while the mixing ratios and temperature are the state at which the rates were evaluated (after the sub-step's sedimentation, melting and freezing). Consumer-supplied inputs: the column fields T, qv, qc, qi, qr, qs, qg, xl, cpm and the 22 raw process rates are REWRITE-TARGET ops `input_<name>` (esm-spec 4.2 open tier) that the consumer lowers -- in the inline tests through a per-test `expression_template_imports` library (tests/<id>_inputs.esm, extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e)) because esm-spec 6.6 `parameter_overrides` admit scalars only, and in EqWeFiC couplings/microphysics_column*.esm through the additive `<name>_in` coupling-target parameters. psacw and pgacw are not inputs: only their mixing-ratio-weighted mean paacw enters the budgets and the update. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6MeltingFreezing
model
atmospheric_dynamics
wsm6
Melting and freezing block of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006), transcribed from the first part of the minor loop of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics), which the kernel applies IN PLACE, layer by layer and in a fixed order, between the sedimentation of the precipitation and the evaluation of the process rates: (1) melting of snow above 0 C by heat conduction and ventilation (psmlt, HL A33, RH83 A25), (2) melting of graupel (pgmlt, HL A23, LFO 47) evaluated at the temperature already lowered by the snow melting, (3) instantaneous melting of all cloud ice above 0 C (pimlt, HL A47), (4) homogeneous freezing of all cloud water colder than -40 C (pihmf, HL A45), (5) heterogeneous Bigg freezing of cloud water (pihtf, HL A44) and (6) probabilistic Bigg freezing of rain to graupel (pgfrz, HL A20, LFO 45), the last four sharing one supercooling and one latent heat of fusion evaluated after the melting. The physics are the melting RATES psmlt_rate, pgmlt_rate (kg/kg/s) and the freezing RATES pihtf_rate, pgfrz_rate; pimlt and pihmf are total conversions with no rate. Because the block is an in-place step, the quantities the kernel actually applies are INCREMENTS (kg/kg) over the sub-step dtcld with per-process limiters (a melting increment may not exceed the frozen mass, a freezing increment the liquid mass) -- exposed as <process>_inc with dtcld as a parameter, time-step artefacts kept apart from the rates (EqWeFiC FORTRAN_BUGS.md N3) -- and the component also returns the state after the block (T_out, qc_out, qi_out, qr_out, qs_out, qg_out) so that a consumer can chain it into the rate components and the tests can close the water and energy budgets against the kernel. Inputs are the state at the START of the block: the sub-step's initial temperature T (the kernel's t is untouched before this block), cloud water qc (unchanged by sedimentation), the post-sedimentation rain, snow, graupel and cloud-ice mixing ratios, density rho, pressure p (both read by `sd`), and the start-of-step cpm and xl (saturation.esm); the size distributions of the post-sedimentation state come from hydrometeor_slopes.esm mounted as subsystem `sd` (the kernel calls slope_wsm6 right after the sedimentation and reuses those slopes here; mstep, the sedimentation sub-step count of older WSM6 versions, is identically 1 in this version). The transport properties and the ventilation factor come from `sd`, evaluated once at the initial temperature, exactly as the kernel does (work2), while the conductivity entering the graupel melting is re-evaluated at the temperature after the snow melting. Constants: wsm6_parameters.esm (`par`), lib/wrf_constants.esm (`wrf`); templates from microphysics_templates.esm and lib/wrf_air_properties.esm. Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6Parameters
model
atmospheric_dynamics
wsm6
Scheme constants of the WRF single-moment 6-class microphysics scheme (WSM6), transcribed from the `parameter` declarations, the mp_wsm6_init products and the in-line literals of phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics CCPP kernel mp_wsm6_run). Mounted by the WSM6 components as subsystem `par` so that no tuning constant is written inline in the physics. Values are the nominal (decimal) values of the Fortran source; the two Gamma-function constants are the values WSM6 itself computes with its `rgmma` routine (a Weierstrass product truncated after 10000 factors), which differ from the exact Gamma function by about 7e-4 (recorded in EqWeFiC FORTRAN_BUGS.md) -- the scheme's effective constants are the rgmma values, so those are what the tests reproduce. NOTE (also in EqWeFiC FORTRAN_BUGS.md): the kernel declares its constants real(kind_phys) but initialises them from default-real literals, so a real64 build runs with single-precision roundings (bvtr = 0.800000011920929, avtr = 841.9000244); the WSM6 tests document the resulting O(1e-7) relative mismatch in their tolerances rather than reproducing the rounding here. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6Saturation
model
atmospheric_dynamics
wsm6
Thermodynamic state of a column as the WSM6 microphysics scheme evaluates it once per sub-time step (phys/physics_mmm/mp_wsm6.F90, the inlined fpvs block and the cpmcal/xlcal statement functions of mp_wsm6_run): saturation vapor pressure and mixing ratio over water and over ice from the integrated Clausius-Clapeyron relation with temperature-linear latent heats (lib/wrf_thermo.esm saturation_vapor_pressure_fpvs), the relative humidities, the latent heat of vaporization and the moist heat capacity. Layer index `lev` (WRF k, layer 1 at the surface); all fields are pointwise functions of the layer state, so no grid geometry is needed. The ice formula is used only below the triple point, above it the ice saturation equals the water saturation (the Fortran branch). The vapor pressure is capped at es_cap p and the saturation mixing ratio and relative humidity are floored at qmin, exactly as the kernel does. This model is a separate component from the process rates (warm_rain.esm) because WSM6 computes it from the temperature and vapor at the START of the sub-step and does not update it after sedimentation, melting and freezing have changed the temperature (EqWeFiC FORTRAN_BUGS.md note N4); the process-rate components therefore take qsat, rh and xl as inputs so that a consumer can bind either this model's outputs or, to reproduce the kernel, its start-of-step values. Consumer-supplied inputs: the column fields T (temperature), qv (vapor mixing ratio) and p (pressure) are REWRITE-TARGET ops `input_<name>` (esm-spec 4.2 open tier) that the consumer lowers -- in the inline tests through a per-test `expression_template_imports` library (tests/<id>_inputs.esm, extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e)) because esm-spec 6.6 `parameter_overrides` admit scalars only. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6SaturationAdjustment
model
atmospheric_dynamics
wsm6
Saturation adjustment of cloud water in the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006), transcribed from the pcond block at the end of each sub-time step of mp_wsm6_run (phys/physics_mmm/mp_wsm6.F90, WRF 4.8, NCAR/MMM-physics; the statement function conden and the loop labelled 'pcond: condensational/evaporational rate of cloud water [HL A46] [RH83 A6]'). After every process rate has been applied and the hydrometeors have fallen, the kernel recomputes the saturation mixing ratio OVER WATER from the updated temperature and vapor (the inlined fpvs block, water branch only -- ice saturation plays no part here, whatever the temperature) and removes the remaining super- or sub-saturation with the one-step Newton (Asai 1965; Rutledge and Hobbs 1983 eq. A6) increment dq = (qv - qsat) / (1 + L^2 qsat / (r_v cpm T^2)), the linearisation of the Clausius-Clapeyron feedback of the latent heating on qsat. Condensation (dq > 0) is capped by the available vapor, evaporation (dq < 0) happens only where cloud water exists and is capped by the cloud water present, so that a layer that dries out loses all its cloud (the kernel then pads qc <= qmin to 0). The latent heat L and the moist heat capacity cpm are the START-OF-CALL values (EqWeFiC FORTRAN_BUGS.md note N4), so they are inputs here (saturation.esm xl, cpm); the saturation state at the adjusted temperature comes from saturation.esm mounted as subsystem `sat` on the same inputs. This is an INSTANTANEOUS ADJUSTMENT, not a rate: WSM6 applies the whole increment dq once per sub-step and stores pcond = dq/dtcld only for bookkeeping, so the stored 'rate' scales with 1/dtcld (EqWeFiC FORTRAN_BUGS.md note N3) and a small-dt replay of the kernel is meaningless for it. The model therefore exposes (i) the adjusted target state T*, qv*, qc* and the applied increment dq_applied, which are step-free and are what the tests check against the kernel, (ii) pcond = dq_applied/dtcld as the kernel reports it, and (iii) the relaxation-rate form pcond_relax = dq_adj/tau with an adjustment time tau as a parameter: for tau = dtcld it reproduces the kernel's unlimited rate, and a continuous model that cannot take an instantaneous step would use this form with a physical tau (a few seconds to tens of seconds) as the condensation tendency. Layer index `lev` (WRF k, layer 1 at the surface), pointwise, no grid geometry. Consumer-supplied inputs are the REWRITE-TARGET ops input_T, input_qv, input_p (read by the `sat` subsystem and re-exported), input_qc, input_xl and input_cpm, lowered in the inline tests through a per-test expression_template_imports library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e) (esm-spec 6.6 admits scalar overrides only). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6Sedimentation
model
atmospheric_dynamics
wsm6
Sedimentation (fallout) of the precipitating hydrometeors of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006), written as the flux-form continuity law of each falling category, dq/dt = -(1/rho) d/dz(rho v_t q), with the mass-weighted terminal fall speeds v_t of hydrometeor_slopes.esm (mounted as subsystem sd) and lowered on the column_nonuniform_1d grid by EarthSciDiscretizations sedimentation_jh2010_flux_D_lev (PR #42), the dt -> 0 limit of WSM6's own forward semi-Lagrangian fallout (nislfv_rain_plm, Juang and Hong 2010): the flux through a layer's lower face is a third-order interpolated interface fall speed times the monotone average-slope face value of the layer above (FORTRAN_BUGS N77), nothing enters through the model top, and the outflow through the lowest face is the surface precipitation rate. Rain falls at its own speed v_r; snow and graupel fall TOGETHER at the mixing-ratio-weighted speed v_sg (WSM6 sediments the two categories jointly since V3.0, nislfv_rain_plm6 with the combined worka), so the snow and graupel fluxes both use W_sg; cloud ice falls at v_i (Heymsfield-Donner power law of the mean crystal diameter); cloud water does not fall. Negative input mixing ratios (round-off in the kernel inputs) are advected as zero mass; WSM6 advects den*q with the negatives in it, which in these tests changes the tendencies by <= 1.1e-9 of the column maximum. THIS IS THE METHOD-OF-LINES (INSTANTANEOUS DERIVATIVE) FORM: WSM6 integrates fallout with that semi-Lagrangian scheme, whose increment over one WRF step is not dt times this derivative, but as dt -> 0 its tendency converges to exactly the operator written here (measured against the verbatim Fortran routine in every test, to <= 1.14e-7 of the column maximum for rain, snow and graupel and 6.4e-6 for ice; the ice gap is the one branch the rule omits, the upwind side of a face whose interpolated speed overshoots below zero). The fall speeds are set to zero where WSM6 zeroes them (rain where q_r <= 0, ice where q_i <= 0, the joint snow/graupel speed where q_s + q_g <= 1e-15): with donor-cell that was immaterial, because the flux of an empty layer is zero either way, but the jh2010 interface speed reads the NEIGHBOURS' speeds and switches to the layer above wherever a speed is exactly zero, and without the zero the early-storm rain tendency was 16 % off. The kernel's `fall` flux DIAGNOSTIC converges (linearly in dt) to the layer-centred fluxes rho v_t q, which is what the FLUX assertions pin; they do not depend on the rule. Until 2026-09-22 this component imported the first-order donor-cell rule sedimentation_upwind1_flux_D_lev, which differs from WRF's converged fallout by 16-112 % of the column maximum in these tests. Transcribed from the fallout block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics fork ctessum-claude/MMM-physics@52cfbd7): slope_wsm6 -> workr/worka -> nislfv_rain_plm/plm6 -> fall, and the ice fallout work1c -> nislfv_rain_plm -> fallc. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- WSM6WarmRain
model
atmospheric_dynamics
wsm6
Warm-rain process rates of the WRF single-moment 6-class microphysics scheme (WSM6; Hong and Lim 2006, Hong, Dudhia and Chen 2004), transcribed from the warm-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): autoconversion of cloud water to rain praut = qck1 qc^(7/3) above the threshold qc0 (HDC eq. 16), accretion of cloud water by rain pracw = pacrr lambda^-(3+b) qc (rho0/rho)^(1/2) (HL eq. A40), and evaporation/condensation of rain prevp = (rh - 1)(precr1 lambda^-2 + precr2 f_v coeres)/F (HDC eq. 14), all in kg/kg/s as pointwise functions of the layer state on the layer index `lev` (WRF k, layer 1 at the surface; no grid geometry is needed). The raindrop size distribution (the inverse slope lambda^-1 and its powers, the density factor), the transport properties of air (kinematic viscosity, vapor diffusivity, thermal conductivity), the ventilation factor and the rain ventilation moment come from hydrometeor_slopes.esm mounted as subsystem `sd`, which the cold-rain, deposition, melting and sedimentation components mount too, so every process sees one size distribution and one work2 for a given state, as in the kernel; the diffusional-growth denominator F, which needs the saturation state, is computed here (microphysics_templates.esm); the scheme constants (n0r, a, b, r0, N_c, ...) come from wsm6_parameters.esm as subsystem `par` and the physical constants from lib/wrf_constants.esm as subsystem `wrf`. The derived rate coefficients qc0 = (4/3) pi rho_w r0^3 N_c / rho0, qck1 = 0.104 g E / (N_c rho_w)^(1/3) / mu rho0^(4/3), pacrr = pi n0r a Gamma(3+b) E_rc/4, precr1 = 2 pi n0r a_v and precr2 = 2 pi n0r b_v a^(1/2) Gamma(2.5+b/2) are observeds so that they can be checked against the values mp_wsm6_init computes. The saturation state (qsat, rh, xl) is an INPUT rather than computed here: WSM6 evaluates it once at the start of each sub-time step (saturation.esm) and does not refresh it after sedimentation, melting and freezing have changed the temperature, so the rates are evaluated at a temperature that differs from the one behind qsat/rh/xl (EqWeFiC FORTRAN_BUGS.md note N4); a consumer binds saturation.esm's outputs at the state of its choice. The UNLIMITED rates praut, pracw, prevp are the physics; the kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step, rain evaporation/condensation may not exceed half the vapor deficit/excess per sub-step), which are exposed separately as praut_lim, pracw_lim, prevp_lim with the sub-step length dtcld as a parameter -- they are time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3), and the mass-conservation rescaling the kernel applies afterwards is not part of this component. Consumer-supplied inputs: the column fields qv, qc, qsat, rh, xl here and T, qr, qi, qs, qg, rho, p in `sd` (ice, snow and graupel enter only sd's diagnostics, not the warm-rain rates) are REWRITE-TARGET ops `input_<name>` (esm-spec 4.2 open tier) that the consumer lowers -- in the inline tests through a per-test `expression_template_imports` library (tests/<id>_inputs.esm, extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e)) because esm-spec 6.6 `parameter_overrides` admit scalars only. EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- YSU
model
atmospheric_dynamics
ysu
The YSU (Yonsei University) nonlocal boundary-layer scheme of Hong, Noh and Dudhia (2006), with the stable-regime (Hong 2010) and top-down (theta_li) boundary-layer-top diagnostics of WRF 4.8, written as a single-column PDE component on the EarthSciDiscretizations grids/column_nonuniform_1d grid (layer index `lev`, layer 1 at the surface; interface index `lev_nodes`, interface 1 the surface). The physics is transcribed from the CCPP kernel bl_ysu_run in phys/physics_mmm/bl_ysu.F90 (NCAR/MMM-physics, the WRF 4.8 submodule). Prognostic column fields theta (potential temperature), u, v, qv, qc and qi obey the density-weighted flux-form vertical diffusion d(c)/dt = (1/rho) d/dz[ rho K_c dc/dz - Phi_c ], where K_c is the interface eddy diffusivity of the field (K_h for theta, K_m for u and v, K_q for water) and Phi_c is the prescribed (non-gradient) part of the turbulent flux: the surface flux on interface 1 (-hfx/cp for theta, -qfx for qv, rho_s u_*^2 u_1/|U| for momentum -- the sign convention of the ESD flux rule, Phi = rho K dc/dz on the face) and, inside the boundary layer, the YSU nonlocal (counter-gradient) flux rho K_c gamma_c plus the entrainment flux (w'c')_h ((z - z_1)/(h - z_1))^3, zero on the top interface. The gradient term is lowered by the ESD rule varcoeff_face_laplacian_lev_flux_bc applied to (rho K) on the interfaces (its own prescribed face fluxes kdudz_bot/kdudz_top are zero here because every prescribed flux is carried by Phi so that the six prognostic fields can share one rule instance), the prescribed-flux term by face_flux_D_lev_supplied_faces. The density weighting is exactly the hydrostatic sigma-coordinate form of the Fortran: rho on an interface is (p[k] - p[k+1])/(g (zc[k+1] - zc[k])) and in a layer (p_int[k] - p_int[k+1])/(g dz[k]), so with WRF's pressures and heights the lowered operator reproduces bl_ysu_run's tridiagonal coefficients term by term (dsig xkzh rdz / del). Boundary-layer height: the bulk-Richardson search of components/atmospheric_dynamics/ysu/bulk_richardson.esm is applied (1) with the lowest-level theta_v, (2) with the thermal excess of the surface heat and moisture fluxes when the surface layer is unstable and the buoyancy flux positive, (3) the top-down theta_li scan that raises the top to just above the highest theta_li-unstable level (ysu_topdown_pblmix; it starts at the previous kpbl and evaluates the bulk Richardson number from theta_li at every level it visits, level 1 included -- brli1 -- rather than seeding level 1 with the surface-layer br), and (4) the stable-regime search with the Hong (2010) critical value (0.25 over land, Rossby-number dependent over water) when the surface layer is stable and no boundary layer was found; each search is an aggregate over the level index and never a recurrence (see bulk_richardson.esm). Diffusivities: inside the boundary layer the K-profile K_m = k w_s z (1 - z/h)^p with the surface-layer velocity scale w_s = (u_*^3 + phifac k w_*^3 (1 - z/h))^(1/3) (or u_*/phi_m(z) when stable), K_h = K_m / Pr with the height-tapered Prandtl number of Hong et al. (2006, their eq. A10), K_q likewise; above the boundary layer the local Ri-dependent mixing-length diffusivity of Louis type with the in-cloud moist Richardson number; in the entrainment zone ((z - h)/delta)^2 < 4.6 the geometric mean of the local value and the entrainment-flux value -w_e dz_h exp(-((z - h)/delta)^2). Every diffusivity is floored by the background values and capped by xkzmax. Consumer-supplied inputs: the column fields (p, p_int, exner, ze and the initial theta, u, v, qv, qc, qi) are REWRITE-TARGET ops `input_<name>` (esm-spec 4.2 open tier) that the consumer lowers -- in the inline tests through a per-test `expression_template_imports` library (tests/<test id>_inputs.esm) because esm-spec 6.6 `parameter_overrides` admit scalars only; surface-layer scalars (hfx, qfx, u_*, psi_m, psi_h, br, |U|, U10, land mask, z0, psfc) are ordinary parameters. NOT transcribed (inactive in every test regime): the BEP/BEP+BEM urban forcing terms, the optional ocean-current (uox/vox) surface drag, the topo_wind corrections (ctopo = ctopo2 = 1), the extra passive-tracer mixing (nmix = 0), and the WRF diagnostic outputs u10/v10 (pass-through), dusfc/dvsfc/dtsfc/dqsfc (column sums) and the TKE/hybrid-PBLH diagnostics. The cloud-top radiative-entrainment branch (ysu_topdown_pblmix, WRF cloudflg: a cloud layer at kpbl-1 whose integrated radiative cooling radsum drives top-down thermals wstar3_2, extra entrainment we_rad, a counter-gradient term hgamt2 and a second K-profile term wscalek2) is transcribed (exercised by synthetic_cloudtop_call120, and switched off by topdown = 0 in synthetic_notopdown_cloudtop_call120); radsum is the cumulative column integral of the radiative cooling. Fractional powers of quantities that vanish identically outside their regime (w_*^3 in a stable column, wstar3_2 below a cloud-free top) are gated with ifelse, so that a Jacobian of the right-hand side never evaluates the derivative of a root at zero. Tendencies are observed variables (`dthdt`, `dudt`, `dvdt`, `dqvdt`, `dqcdt`, `dqidt`) so that the inline tests assert the instantaneous right-hand side at time 0 against the real64 kernel's tendency extrapolated to dt -> 0 (Richardson extrapolation of the implicit step over dt = 0.04, 0.02, 0.01 s; the Fortran solves the diffusion implicitly, so its finite-step tendency differs from the derivative by O(dt K / dz^2)). Test provenance: the inputs and expected values come from a WRF v4.8.0 em_scm_xy single-column run of the instrumented fork ctessum-claude/WRF (branch earthsciml-instrumented, module_esm_dump; physics_mmm at ctessum-claude/MMM-physics 52cfbd7) and from replays of the dumped kernel calls through that fork's real64 kernels/ysu_driver; the synthetic_* tests replay a dumped column after the modification their description states. The numbers were transcribed by tools/fill_tests.py of EarthSciML/EqWeFiC. The dumps, the driver and the generator are not part of this repository, so the values are recorded data rather than regenerable output.
- YSUParameters
model
atmospheric_dynamics
ysu
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.
- ZSRWaterContent
model
aerosol
sp_ch10
ZSR (Zdanovskii-Stokes-Robinson) mixing rule for aerosol liquid water content — Seinfeld & Pandis (2006), Atmospheric Chemistry and Physics, 2nd ed., Chapter 10. Computes the total aerosol liquid water content W of a multicomponent inorganic-salt solution as the sum over species of the water each salt holds in its own binary solution at the ambient water activity (Eq. 10.98), with the water activity set equal to the relative humidity for an equilibrium aerosol (Eq. 10.63). Migrated from Aerosol.jl ZSRWaterContent at the upstream default parameterization n_species = 3.