Version: dev

GHGForcing

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).

.esm schema
1.0.0
Source
components/gaschem/climate/ghg_forcing.esm

Description

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).

Reference

_source_ref: GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309:src/climate_forcing.jl:104

Upstream GHGForcing is an MTK @component declaring five @constants (the five IPCC TAR 2001 reference radiative forcings: ΔF_CO2_ref = 1.46 W/m² for the industrial-era CO₂ rise from ~280 to ~370 ppm, ΔF_CH4_ref = 0.48 W/m² for CH₄ from ~700 to ~1750 ppb, ΔF_N2O_ref = 0.15 W/m² for N₂O from ~270 to ~314 ppb, ΔF_O3_trop_ref = 0.4 W/m² for tropospheric O₃ accumulation from anthropogenic NOx/VOC emissions, ΔF_halo_ref = 0.34 W/m² for the CFC/HCFC/HFC halocarbon family — all from S&P p. 1039 reproducing IPCC TAR Figure 6.6), five @parameters (the five dimensionless scaling factors f_CO2 = f_CH4 = f_N2O = f_O3 = f_halo = 1.0 — all defaulting to 1.0 so the default run reproduces the IPCC TAR 2001 baseline), six time-indexed @variables (ΔF_CO2, ΔF_CH4, ΔF_N2O, ΔF_O3, ΔF_halo, ΔF_total — all in W/m², all algebraic with no derivative), and six algebraic equations (ΔF_CO2 ~ f_CO2 · ΔF_CO2_ref, ΔF_CH4 ~ f_CH4 · ΔF_CH4_ref, ΔF_N2O ~ f_N2O · ΔF_N2O_ref, ΔF_O3 ~ f_O3 · ΔF_O3_trop_ref, ΔF_halo ~ f_halo · ΔF_halo_ref, ΔF_total ~ ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo). Identical structure preserved here. Upstream structural test (GHGForcing structural verification, test/climate_forcing_test.jl:116-127) asserts length(equations(sys)) == 6 and that ΔF_total, ΔF_CO2, and ΔF_CH4 are in the unknowns list — matched here by the six entries in equations and the six state declarations in variables.

The five upstream @constants (ΔF_CO2_ref, ΔF_CH4_ref, ΔF_N2O_ref, ΔF_O3_trop_ref, ΔF_halo_ref) are encoded here as type: parameter with the upstream default values, matching the rig-wide convention used by sibling .esm migrations (gwp.esm at components/gaschem/climate/gwp.esm encodes its two @constants τ_CO2/a_CO2 the same way; chapman.esm at components/gaschem/stratospheric/chapman.esm encodes its four @constants k2_A/k4_A/C_k4/T_ref the same way; the convention makes the upstream @constants overridable from a downstream consumer’s parameter_overrides block, which is the natural way to reproduce IPCC revisions to the reference forcings between TAR/AR4/AR5/AR6 without forking the component). The five upstream @parameters (f_CO2, f_CH4, f_N2O, f_O3, f_halo) are also type: parameter with the upstream defaults f_X = 1.0 — at the all-defaults scenario, each ΔF_X = 1.0 · ΔF_X_ref = ΔF_X_ref reproduces the IPCC TAR 2001 baseline.

Observability classification: this component is observed-only — every output variable is given by a single algebraic equation in the inputs (no time derivative, the (t) time index has no role since there is no D(·) operator in any of the six equations). Test scenarios use time_span: [0.0, 1.0] and sample at t=0 to mirror the convention used by sibling observed-only ESM files in this rig (gwp.esm at components/gaschem/climate/gwp.esm, typical.esm at components/gaschem/combined/typical.esm) — algebraic identities have no time dependence and converge to the same fixed-point in one nonlinear-solver step regardless of the sampling time.

Physics structure: the IPCC AR-era radiative-forcing budget (S&P §23.3) is the standard top-down accounting of the human contribution to the Earth’s energy balance. Each well-mixed greenhouse gas (CO₂, CH₄, N₂O, the CFC/HCFC/HFC halocarbon family) and the short-lived photochemically-produced tropospheric O₃ has a radiative forcing ΔF_X computed from its industrial-era concentration change via a logarithmic (CO₂), square-root (CH₄, N₂O), or linear (O₃, halocarbons) functional form (S&P Table 23.4). This component does not re-derive ΔF_X from concentration changes — instead, it parameterizes the radiative forcing directly as the product of a scaling factor f_X and a reference value ΔF_X_ref. The reference values are the IPCC TAR 2001 industrial-era totals; the scaling factors let a downstream consumer adjust each channel’s contribution to model scenarios, alternative IPCC vintages, or counterfactual attributions without re-implementing the underlying concentration→forcing transfer functions. The total ΔF_total is the sum of the five channels, which is the headline anthropogenic radiative forcing diagnostic in IPCC summary tables (Figure 6.6 in TAR, equivalent figures in AR4/AR5/AR6).

Numerical defaults (IPCC TAR 2001, S&P Page 1039): ΔF_CO2_ref = 1.46 W/m² (CO₂ industrial-era forcing, S&P p. 1039 — from ~280 to ~370 ppm CO₂) ΔF_CH4_ref = 0.48 W/m² (CH₄ industrial-era forcing, S&P p. 1039 — from ~700 to ~1750 ppb CH₄) ΔF_N2O_ref = 0.15 W/m² (N₂O industrial-era forcing, S&P p. 1039 — from ~270 to ~314 ppb N₂O) ΔF_O3_trop_ref = 0.4 W/m² (tropospheric O₃ forcing, S&P p. 1039 — accumulated anthropogenic O₃) ΔF_halo_ref = 0.34 W/m² (halocarbon family forcing, S&P p. 1039 — CFCs/HCFCs/HFCs net) f_CO2 = 1.0 (CO₂ scaling factor, defaults to 1 → reproduce TAR baseline) f_CH4 = 1.0 (CH₄ scaling factor) f_N2O = 1.0 (N₂O scaling factor) f_O3 = 1.0 (tropospheric O₃ scaling factor) f_halo = 1.0 (halocarbon scaling factor) At these defaults the six state variables evaluate to: ΔF_CO2 = 1.0 · 1.46 = 1.46 W/m² ΔF_CH4 = 1.0 · 0.48 = 0.48 W/m² ΔF_N2O = 1.0 · 0.15 = 0.15 W/m² ΔF_O3 = 1.0 · 0.4 = 0.4 W/m² ΔF_halo = 1.0 · 0.34 = 0.34 W/m² ΔF_total = (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 = 2.8299999999999996 W/m² The last sum is not exactly 2.83 in IEEE-754 because the intermediate (((1.46+0.48)+0.15)+0.4) = 2.4899999999999998 is the closest double to 2.49 (and not 2.49 exactly because 0.15 and 0.4 cannot be exactly represented in binary floating-point), so the final +0.34 inherits that ULP-level rounding error. The pinned expected value 2.8299999999999996 reproduces the exact left-associative IEEE-754 result to within 0 ULP — anchoring single-ULP regression detection.

Upstream test reproduction:

  • The upstream GHGForcing structural verification test (test/climate_forcing_test.jl:116-127) asserts the system has 6 equations and ΔF_total, ΔF_CO2, ΔF_CH4 are in the unknowns list — reproduced by the .esm structural shape (six entries in equations, all six ΔF variables typed as state in variables).
  • The upstream GHGForcing reference values test (test/climate_forcing_test.jl:129-146) asserts at the all-defaults scenario (no parameter overrides) the five individual forcings ΔF_CO2 = 1.46, ΔF_CH4 = 0.48, ΔF_N2O = 0.15, ΔF_O3 = 0.4 (no ΔF_halo upstream assertion but the value is 0.34 by construction), and the total ΔF_total = 1.46 + 0.48 + 0.15 + 0.4 + 0.34 = 2.83 at rtol = 1e-6. Reproduced and tightened by upstream_reference_values_at_defaults to rel = 1e-10 — pins each of the six state variables at the exact IEEE-754 closed-form value with single-ULP regression detection.

Tolerance rationale (model-level rel = 1e-10): observed-only algebraic system with a single multiplication or sum per equation. Each individual ΔF_X equation evaluates exactly one multiplication f_X · ΔF_X_ref which is IEEE-754 correctly-rounded to within 0 or 1 ULP. The ΔF_total equation evaluates four additions which accumulate at most ~5 ULP relative error (left-associative). The worst-case combined error path is ~5 ULP × 1e-16 relative ≈ 5e-16, leaving over 5 orders of magnitude of headroom above the 1e-10 model-level tolerance. Matches the convention used by sibling algebraic .esm files in this rig (gwp.esm at rel = 1e-10, typical.esm at rel = 1e-10).

Unit balance (verified): all six equations balance dimensionally. ΔF_CO2 ~ f_CO2 · ΔF_CO2_ref: dimensionless · W/m² = W/m² ✓ ΔF_CH4 ~ f_CH4 · ΔF_CH4_ref: dimensionless · W/m² = W/m² ✓ ΔF_N2O ~ f_N2O · ΔF_N2O_ref: dimensionless · W/m² = W/m² ✓ ΔF_O3 ~ f_O3 · ΔF_O3_trop_ref: dimensionless · W/m² = W/m² ✓ ΔF_halo ~ f_halo · ΔF_halo_ref: dimensionless · W/m² = W/m² ✓ ΔF_total ~ ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo: W/m² + W/m² + W/m² + W/m² + W/m² = W/m² ✓ The migrated .esm preserves the upstream units verbatim — all radiative forcings in SI W/m² and all scaling factors dimensionless. SI throughout; no unit conversion at parse or runtime._

Parameters

NameUnitsDefaultDescription
ΔF_CO2_refW/m^21.46Industrial-era CO₂ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 1.46 W/m² is the radiative forcing from the pre-industrial-to-2001 CO₂ rise from ~280 ppm to ~370 ppm, computed from the logarithmic CO₂ forcing formula ΔF = α · ln(C/C₀) with α ≈ 5.35 W/m² (S&P Table 23.4, originally Myhre et al. 1998). This is the largest single component of the anthropogenic radiative forcing total (52% of the 2.83 W/m² sum at defaults). Encoded as a type: parameter (rather than a hardcoded constant) so a downstream consumer can override to the IPCC AR4/AR5/AR6 revised values (AR5 estimates CO₂ industrial-era forcing at ~1.82 W/m² reflecting the CO₂ rise to ~400 ppm) without forking the component.
ΔF_CH4_refW/m^20.48Industrial-era CH₄ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.48 W/m² is the radiative forcing from the pre-industrial-to-2001 CH₄ rise from ~700 ppb to ~1750 ppb, computed from the square-root CH₄ forcing formula ΔF = β · (√C - √C₀) with β ≈ 0.036 W/m² ppb^(-1/2) (S&P Table 23.4, Myhre et al. 1998 fit). CH₄ is the second-largest contributor to the anthropogenic radiative forcing total at defaults (17% of the 2.83 W/m² sum). Note the upstream value does not include the indirect CH₄ contributions through tropospheric O₃ and stratospheric H₂O — those would add another ~0.1-0.2 W/m² to CH₄’s effective forcing per IPCC AR6 attribution. Encoded as type: parameter for AR4/AR5/AR6 override flexibility.
ΔF_N2O_refW/m^20.15Industrial-era N₂O radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.15 W/m² is the radiative forcing from the pre-industrial-to-2001 N₂O rise from ~270 ppb to ~314 ppb, computed from the square-root N₂O forcing formula ΔF = γ · (√C - √C₀) with γ ≈ 0.12 W/m² ppb^(-1/2) (S&P Table 23.4). N₂O is the third-largest well-mixed GHG forcing at defaults (5.3% of the total), driven primarily by agricultural fertilizer use and biomass burning. Encoded as type: parameter for AR4/AR5/AR6 override flexibility.
ΔF_O3_trop_refW/m^20.4Tropospheric O₃ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.4 W/m² is the radiative forcing from the industrial-era buildup of tropospheric O₃ from photochemical production over polluted continents (anthropogenic NOx + VOC + sunlight → O₃ chain). Unlike the well-mixed GHGs (CO₂, CH₄, N₂O), tropospheric O₃ is short-lived (lifetime ~weeks to months) and spatially inhomogeneous, so its forcing is harder to quantify precisely — IPCC TAR’s 0.4 W/m² has a relatively large uncertainty range of ~0.2-0.7 W/m². Tropospheric O₃ is the fourth-largest contributor at defaults (14% of the 2.83 W/m² sum). Encoded as type: parameter for downstream sensitivity studies that probe the tropospheric O₃ uncertainty range or for AR4/AR5/AR6 revised central values (AR5 estimates ~0.4 W/m² consistent with TAR, AR6 revises upward to ~0.47 W/m²).
ΔF_halo_refW/m^20.34Halocarbon radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.34 W/m² is the radiative forcing from the industrial-era accumulation of the CFC/HCFC/HFC halocarbon family — predominantly CFC-11, CFC-12, CFC-113 (legacy refrigerants, foam-blowing agents, aerosol propellants peaked in late 1980s and declining post-Montreal Protocol), HCFC-22 (transitional refrigerant), and HFC-134a (modern refrigerant). The halocarbons are very-long-lived (lifetimes 12-1700 yr depending on species) and have very-high radiative efficiencies per molecule, making them disproportionately important per-mass relative to CO₂ (typical halocarbon GWP₁₀₀ ranges 1000-10000). Halocarbon family is the fifth-largest contributor at defaults (12% of the 2.83 W/m² sum). Encoded as type: parameter so a downstream consumer can override to AR4/AR5/AR6 revised values (the halocarbon forcing peaked in the late-1990s and is now declining due to the Montreal Protocol — AR6 estimates ~0.36 W/m² in 2019, with a slow declining trend).
f_CO211.0Dimensionless scaling factor for the CO₂ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_CO2 = 1.46 W/m². Use cases for overrides: (i) attribution scenarios that zero out the CO₂ contribution (f_CO2 = 0 → ΔF_CO2 = 0); (ii) future-projection scenarios that scale up the CO₂ forcing (f_CO2 = 2 → ΔF_CO2 = 2.92 W/m², approximately reproducing the 2xCO₂ radiative forcing of 3.7 W/m² targeted by the climate sensitivity definition when combined with a tuned reference); (iii) cross-IPCC comparison (f_CO2 = 1.24 reproduces the AR5 CO₂ forcing 1.82 W/m² from the TAR 1.46 baseline). The scaling-factor design preserves the upstream MTK component’s per-channel overrideability without re-implementing the underlying concentration→forcing transfer function.
f_CH411.0Dimensionless scaling factor for the CH₄ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_CH4 = 0.48 W/m². Use cases for overrides: (i) methane-emission-reduction policy scenarios (f_CH4 < 1 → reduced ΔF_CH4); (ii) high-methane scenarios (f_CH4 > 1 → amplified ΔF_CH4, e.g., for hydrate-release counterfactuals or fugitive-emission inventories); (iii) including indirect CH₄ effects on tropospheric O₃ and stratospheric H₂O (effective f_CH4 ~ 1.3-1.5 per AR6 attribution).
f_N2O11.0Dimensionless scaling factor for the N₂O forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_N2O = 0.15 W/m². N₂O is dominated by agricultural soil emissions (fertilizer N → nitrification/denitrification → N₂O), so overrides typically reflect alternative agricultural-emission inventories or fertilizer-policy scenarios.
f_O311.0Dimensionless scaling factor for the tropospheric O₃ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_O3 = 0.4 W/m². Tropospheric O₃ has the largest relative uncertainty among the five channels (~50% in TAR), so overrides typically span the f_O3 ∈ [0.5, 1.75] range corresponding to the TAR 0.2-0.7 W/m² uncertainty interval. NOx/VOC emission-control scenarios also enter through this scaling factor.
f_halo11.0Dimensionless scaling factor for the halocarbon family forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_halo = 0.34 W/m². The halocarbon forcing peaked in the late-1990s and is now slowly declining due to the Montreal Protocol’s phaseout of CFCs and HCFCs, so historical-trend overrides typically span f_halo ∈ [0.0, 1.1] across the 1980-2050 trajectory. HFC-substitute growth (under Kigali Amendment) partly offsets the CFC decline.

Observed

NameUnitsDefaultDescription
ΔF_CO2W/m^2Radiative forcing from the CO₂ channel. Equals f_CO2 · ΔF_CO2_ref by construction. At the defaults (f_CO2 = 1.0, ΔF_CO2_ref = 1.46) this evaluates to 1.46 W/m² — the IPCC TAR 2001 industrial-era CO₂ forcing baseline. Largest single contributor to ΔF_total (52% at defaults).
ΔF_CH4W/m^2Radiative forcing from the CH₄ channel. Equals f_CH4 · ΔF_CH4_ref by construction. At the defaults this evaluates to 0.48 W/m² — second-largest contributor to ΔF_total (17% at defaults). Does not include indirect CH₄ effects through tropospheric O₃ or stratospheric H₂O — those are bundled into ΔF_O3 and not separately exposed at this component level.
ΔF_N2OW/m^2Radiative forcing from the N₂O channel. Equals f_N2O · ΔF_N2O_ref by construction. At the defaults this evaluates to 0.15 W/m² — third-smallest contributor to ΔF_total (5.3% at defaults).
ΔF_O3W/m^2Radiative forcing from the tropospheric O₃ channel. Equals f_O3 · ΔF_O3_trop_ref by construction. At the defaults this evaluates to 0.4 W/m² — fourth-largest contributor to ΔF_total (14% at defaults). Note: this is the tropospheric O₃ forcing only — the stratospheric O₃ forcing (also relevant under Antarctic ozone-depletion attribution) is not exposed by this component; the upstream MTK component is specifically named ΔF_O3_trop_ref to disambiguate.
ΔF_haloW/m^2Radiative forcing from the halocarbon family channel (CFCs, HCFCs, HFCs aggregated). Equals f_halo · ΔF_halo_ref by construction. At the defaults this evaluates to 0.34 W/m² — fifth-largest contributor to ΔF_total (12% at defaults). The aggregation across the halocarbon family (rather than per-species CFC-11 / CFC-12 / etc.) reflects the upstream model’s choice to expose a single bulk halocarbon channel — for per-species halocarbon analysis a downstream consumer would extend or compose with the GWP component (components/gaschem/climate/gwp.esm) using per-species τ_A and a_A values.
ΔF_totalW/m^2Total anthropogenic radiative forcing from the five well-mixed-GHG + tropospheric-O₃ channels. Equals ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo by construction (left-associative sum). At the defaults this evaluates to (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 = 2.8299999999999996 W/m² (the closest IEEE-754 double to 2.83 — not exactly 2.83 because 0.15 and 0.4 have non-terminating binary representations that produce 1 ULP rounding error at the intermediate (((1.46+0.48)+0.15)+0.4) = 2.4899999999999998 step, propagated through to the final sum). This 2.83 W/m² total matches the IPCC TAR 2001 industrial-era headline radiative forcing for the well-mixed GHGs + tropospheric O₃ (S&P p. 1039) — does not include aerosol negative forcings (-0.5 to -1.5 W/m² in TAR), surface-albedo / land-use forcings (~-0.2 W/m²), or solar irradiance variability (~0.3 W/m²), which would bring the all-anthropogenic-forcing total down to the canonical net ~1.6 W/m² industrial-era value.

Observed expressions

$$ ΔF_{CO2} = f_{CO2} \cdot ΔF_{CO2\,ref} $$

Radiative forcing from the CO₂ channel. Equals f_CO2 · ΔF_CO2_ref by construction. At the defaults (f_CO2 = 1.0, ΔF_CO2_ref = 1.46) this evaluates to 1.46 W/m² — the IPCC TAR 2001 industrial-era CO₂ forcing baseline. Largest single contributor to ΔF_total (52% at defaults).

$$ ΔF_{CH4} = f_{CH4} \cdot ΔF_{CH4\,ref} $$

Radiative forcing from the CH₄ channel. Equals f_CH4 · ΔF_CH4_ref by construction. At the defaults this evaluates to 0.48 W/m² — second-largest contributor to ΔF_total (17% at defaults). Does not include indirect CH₄ effects through tropospheric O₃ or stratospheric H₂O — those are bundled into ΔF_O3 and not separately exposed at this component level.

$$ ΔF_{N2O} = f_{N2O} \cdot ΔF_{N2O\,ref} $$

Radiative forcing from the N₂O channel. Equals f_N2O · ΔF_N2O_ref by construction. At the defaults this evaluates to 0.15 W/m² — third-smallest contributor to ΔF_total (5.3% at defaults).

$$ ΔF_{O3} = f_{O3} \cdot ΔF_{O3\,trop\,ref} $$

Radiative forcing from the tropospheric O₃ channel. Equals f_O3 · ΔF_O3_trop_ref by construction. At the defaults this evaluates to 0.4 W/m² — fourth-largest contributor to ΔF_total (14% at defaults). Note: this is the tropospheric O₃ forcing only — the stratospheric O₃ forcing (also relevant under Antarctic ozone-depletion attribution) is not exposed by this component; the upstream MTK component is specifically named ΔF_O3_trop_ref to disambiguate.

$$ ΔF_{halo} = f_{halo} \cdot ΔF_{halo\,ref} $$

Radiative forcing from the halocarbon family channel (CFCs, HCFCs, HFCs aggregated). Equals f_halo · ΔF_halo_ref by construction. At the defaults this evaluates to 0.34 W/m² — fifth-largest contributor to ΔF_total (12% at defaults). The aggregation across the halocarbon family (rather than per-species CFC-11 / CFC-12 / etc.) reflects the upstream model’s choice to expose a single bulk halocarbon channel — for per-species halocarbon analysis a downstream consumer would extend or compose with the GWP component (components/gaschem/climate/gwp.esm) using per-species τ_A and a_A values.

$$ ΔF_{total} = ΔF_{CO2} + ΔF_{CH4} + ΔF_{N2O} + ΔF_{O3} + ΔF_{halo} $$

Total anthropogenic radiative forcing from the five well-mixed-GHG + tropospheric-O₃ channels. Equals ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo by construction (left-associative sum). At the defaults this evaluates to (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 = 2.8299999999999996 W/m² (the closest IEEE-754 double to 2.83 — not exactly 2.83 because 0.15 and 0.4 have non-terminating binary representations that produce 1 ULP rounding error at the intermediate (((1.46+0.48)+0.15)+0.4) = 2.4899999999999998 step, propagated through to the final sum). This 2.83 W/m² total matches the IPCC TAR 2001 industrial-era headline radiative forcing for the well-mixed GHGs + tropospheric O₃ (S&P p. 1039) — does not include aerosol negative forcings (-0.5 to -1.5 W/m² in TAR), surface-albedo / land-use forcings (~-0.2 W/m²), or solar irradiance variability (~0.3 W/m²), which would bring the all-anthropogenic-forcing total down to the canonical net ~1.6 W/m² industrial-era value.

Analyses

co2_scaling_sweep

Sweep f_CO2 across the policy-relevant range [0, 3] holding all other channels at TAR defaults. Surfaces the linear-in-f_CO2 scaling of ΔF_CO2 (slope 1.46 W/m² per unit f_CO2) and the corresponding linear shift of ΔF_total around its non-CO₂ baseline of 1.37 W/m². The sweep covers the no-CO₂-attribution endpoint (f_CO2 = 0 → ΔF_total = 1.37), the TAR baseline (f_CO2 = 1 → ΔF_total = 2.83), the doubled-CO₂ scenario (f_CO2 = 2 → ΔF_total = 4.29), and the tripled-CO₂ scenario (f_CO2 = 3 → ΔF_total = 5.75). The 2xCO₂ ≈ 3.7 W/m² radiative forcing used to define climate sensitivity corresponds to f_CO2 ≈ 2.534 (3.7 / 1.46) in this parameterization.

Time span: 0.0 → 1.0

Swept over: f_CO2

ΔF_CO2 vs f_CO2 on a linear scale — a 1:1 line of slope 1.46 W/m² (the ΔF_CO2_ref constant). Confirms the linear-in-f scaling of the individual CO₂ channel.

ΔF_total vs f_CO2 on a linear scale — a 1:1 line of slope 1.46 W/m² offset by the constant non-CO₂ contribution 1.37 W/m². Confirms the linear scaling of ΔF_total in f_CO2 with the correct constant offset from the other four channels.

co2_ch4_joint_sweep

Joint 2D sweep over (f_CO2, f_CH4) ∈ [0, 3] × [0, 3] holding the N₂O, O₃, and halocarbon channels at TAR defaults. Surfaces the bilinear ΔF_total surface in the dominant-two-channel plane (CO₂ + CH₄ together account for 69% of the TAR total). The surface is exactly planar (bilinearity is exact in linear scaling), with slopes 1.46 W/m² per unit f_CO2 (steeper axis) and 0.48 W/m² per unit f_CH4 (shallower axis). Useful for visualizing the relative leverage of CO₂ vs CH₄ emission reductions on the total forcing budget — a 1-unit cut in f_CO2 is 3× more effective than a 1-unit cut in f_CH4 at the TAR baseline.

Time span: 0.0 → 1.0

Swept over: f_CO2, f_CH4

ΔF_total as a function of (f_CO2, f_CH4) at the TAR defaults for the other three channels — a tilted-plane heatmap surface confirming the bilinear scaling of ΔF_total in (f_CO2, f_CH4). The constant-ΔF_total iso-contours are straight lines of slope -3.04 (=1.46/0.48) in the (f_CO2, f_CH4) plane, anchoring the CO₂/CH₄ relative-leverage ratio for emission-reduction policy.

ar5_co2_reference_sweep

Sweep ΔF_CO2_ref across the TAR-to-AR6 range [1.46, 2.0] W/m² holding all scaling factors at default. Reproduces the IPCC-vintage evolution of the CO₂ industrial-era forcing baseline: TAR 2001 at 1.46, AR4 2007 at ~1.66, AR5 2014 at ~1.82, AR6 2021 at ~1.96 W/m². Surfaces the linear-in-ΔF_CO2_ref scaling of ΔF_CO2 (slope 1.0 at f_CO2 = 1) and the corresponding linear shift of ΔF_total around its non-CO₂ baseline. Anchors the design choice that the reference-forcing constants are type: parameter and overrideable — a downstream consumer can re-bind to any IPCC vintage without forking the component.

Time span: 0.0 → 1.0

Swept over: ΔF_CO2_ref

ΔF_CO2 vs ΔF_CO2_ref on a linear scale — a 1:1 line of slope 1.0 confirming the multiplicative scaling at f_CO2 = 1 default.

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "notes": "source_ref: GasChem.jl@8c12c048482b515fb8eb2110bf8ab4b4f4e71309:src/climate_forcing.jl:104\n\nUpstream `GHGForcing` is an MTK `@component` declaring five `@constants` (the five IPCC TAR 2001 reference radiative forcings: ΔF_CO2_ref = 1.46 W/m² for the industrial-era CO₂ rise from ~280 to ~370 ppm, ΔF_CH4_ref = 0.48 W/m² for CH₄ from ~700 to ~1750 ppb, ΔF_N2O_ref = 0.15 W/m² for N₂O from ~270 to ~314 ppb, ΔF_O3_trop_ref = 0.4 W/m² for tropospheric O₃ accumulation from anthropogenic NOx/VOC emissions, ΔF_halo_ref = 0.34 W/m² for the CFC/HCFC/HFC halocarbon family — all from S&P p. 1039 reproducing IPCC TAR Figure 6.6), five `@parameters` (the five dimensionless scaling factors f_CO2 = f_CH4 = f_N2O = f_O3 = f_halo = 1.0 — all defaulting to 1.0 so the default run reproduces the IPCC TAR 2001 baseline), six time-indexed `@variables` (ΔF_CO2, ΔF_CH4, ΔF_N2O, ΔF_O3, ΔF_halo, ΔF_total — all in W/m², all algebraic with no derivative), and six algebraic equations (`ΔF_CO2 ~ f_CO2 · ΔF_CO2_ref`, `ΔF_CH4 ~ f_CH4 · ΔF_CH4_ref`, `ΔF_N2O ~ f_N2O · ΔF_N2O_ref`, `ΔF_O3 ~ f_O3 · ΔF_O3_trop_ref`, `ΔF_halo ~ f_halo · ΔF_halo_ref`, `ΔF_total ~ ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo`). Identical structure preserved here. Upstream structural test (`GHGForcing structural verification`, test/climate_forcing_test.jl:116-127) asserts `length(equations(sys)) == 6` and that `ΔF_total`, `ΔF_CO2`, and `ΔF_CH4` are in the unknowns list — matched here by the six entries in `equations` and the six state declarations in `variables`.\n\nThe five upstream `@constants` (ΔF_CO2_ref, ΔF_CH4_ref, ΔF_N2O_ref, ΔF_O3_trop_ref, ΔF_halo_ref) are encoded here as `type: parameter` with the upstream default values, matching the rig-wide convention used by sibling .esm migrations (gwp.esm at components/gaschem/climate/gwp.esm encodes its two `@constants` τ_CO2/a_CO2 the same way; chapman.esm at components/gaschem/stratospheric/chapman.esm encodes its four `@constants` k2_A/k4_A/C_k4/T_ref the same way; the convention makes the upstream `@constants` overridable from a downstream consumer's `parameter_overrides` block, which is the natural way to reproduce IPCC revisions to the reference forcings between TAR/AR4/AR5/AR6 without forking the component). The five upstream `@parameters` (f_CO2, f_CH4, f_N2O, f_O3, f_halo) are also `type: parameter` with the upstream defaults f_X = 1.0 — at the all-defaults scenario, each ΔF_X = 1.0 · ΔF_X_ref = ΔF_X_ref reproduces the IPCC TAR 2001 baseline.\n\nObservability classification: this component is observed-only — every output variable is given by a single algebraic equation in the inputs (no time derivative, the `(t)` time index has no role since there is no `D(·)` operator in any of the six equations). Test scenarios use `time_span: [0.0, 1.0]` and sample at t=0 to mirror the convention used by sibling observed-only ESM files in this rig (gwp.esm at components/gaschem/climate/gwp.esm, typical.esm at components/gaschem/combined/typical.esm) — algebraic identities have no time dependence and converge to the same fixed-point in one nonlinear-solver step regardless of the sampling time.\n\nPhysics structure: the IPCC AR-era radiative-forcing budget (S&P §23.3) is the standard top-down accounting of the human contribution to the Earth's energy balance. Each well-mixed greenhouse gas (CO₂, CH₄, N₂O, the CFC/HCFC/HFC halocarbon family) and the short-lived photochemically-produced tropospheric O₃ has a radiative forcing ΔF_X computed from its industrial-era concentration change via a logarithmic (CO₂), square-root (CH₄, N₂O), or linear (O₃, halocarbons) functional form (S&P Table 23.4). This component does *not* re-derive ΔF_X from concentration changes — instead, it parameterizes the radiative forcing directly as the product of a scaling factor f_X and a reference value ΔF_X_ref. The reference values are the IPCC TAR 2001 industrial-era totals; the scaling factors let a downstream consumer adjust each channel's contribution to model scenarios, alternative IPCC vintages, or counterfactual attributions without re-implementing the underlying concentration→forcing transfer functions. The total ΔF_total is the sum of the five channels, which is the headline anthropogenic radiative forcing diagnostic in IPCC summary tables (Figure 6.6 in TAR, equivalent figures in AR4/AR5/AR6).\n\nNumerical defaults (IPCC TAR 2001, S&P Page 1039):\n  ΔF_CO2_ref     = 1.46 W/m²    (CO₂ industrial-era forcing, S&P p. 1039 — from ~280 to ~370 ppm CO₂)\n  ΔF_CH4_ref     = 0.48 W/m²    (CH₄ industrial-era forcing, S&P p. 1039 — from ~700 to ~1750 ppb CH₄)\n  ΔF_N2O_ref     = 0.15 W/m²    (N₂O industrial-era forcing, S&P p. 1039 — from ~270 to ~314 ppb N₂O)\n  ΔF_O3_trop_ref = 0.4 W/m²     (tropospheric O₃ forcing, S&P p. 1039 — accumulated anthropogenic O₃)\n  ΔF_halo_ref    = 0.34 W/m²    (halocarbon family forcing, S&P p. 1039 — CFCs/HCFCs/HFCs net)\n  f_CO2          = 1.0          (CO₂ scaling factor, defaults to 1 → reproduce TAR baseline)\n  f_CH4          = 1.0          (CH₄ scaling factor)\n  f_N2O          = 1.0          (N₂O scaling factor)\n  f_O3           = 1.0          (tropospheric O₃ scaling factor)\n  f_halo         = 1.0          (halocarbon scaling factor)\nAt these defaults the six state variables evaluate to:\n  ΔF_CO2    = 1.0 · 1.46    = 1.46  W/m²\n  ΔF_CH4    = 1.0 · 0.48    = 0.48  W/m²\n  ΔF_N2O    = 1.0 · 0.15    = 0.15  W/m²\n  ΔF_O3     = 1.0 · 0.4     = 0.4   W/m²\n  ΔF_halo   = 1.0 · 0.34    = 0.34  W/m²\n  ΔF_total  = (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 = 2.8299999999999996 W/m²\nThe last sum is not exactly 2.83 in IEEE-754 because the intermediate (((1.46+0.48)+0.15)+0.4) = 2.4899999999999998 is the closest double to 2.49 (and not 2.49 exactly because 0.15 and 0.4 cannot be exactly represented in binary floating-point), so the final +0.34 inherits that ULP-level rounding error. The pinned expected value 2.8299999999999996 reproduces the exact left-associative IEEE-754 result to within 0 ULP — anchoring single-ULP regression detection.\n\nUpstream test reproduction:\n- The upstream `GHGForcing structural verification` test (test/climate_forcing_test.jl:116-127) asserts the system has 6 equations and ΔF_total, ΔF_CO2, ΔF_CH4 are in the unknowns list — reproduced by the .esm structural shape (six entries in `equations`, all six ΔF variables typed as `state` in `variables`).\n- The upstream `GHGForcing reference values` test (test/climate_forcing_test.jl:129-146) asserts at the all-defaults scenario (no parameter overrides) the five individual forcings ΔF_CO2 = 1.46, ΔF_CH4 = 0.48, ΔF_N2O = 0.15, ΔF_O3 = 0.4 (no ΔF_halo upstream assertion but the value is 0.34 by construction), and the total ΔF_total = 1.46 + 0.48 + 0.15 + 0.4 + 0.34 = 2.83 at rtol = 1e-6. Reproduced and tightened by `upstream_reference_values_at_defaults` to rel = 1e-10 — pins each of the six state variables at the exact IEEE-754 closed-form value with single-ULP regression detection.\n\nTolerance rationale (model-level rel = 1e-10): observed-only algebraic system with a single multiplication or sum per equation. Each individual ΔF_X equation evaluates exactly one multiplication f_X · ΔF_X_ref which is IEEE-754 correctly-rounded to within 0 or 1 ULP. The ΔF_total equation evaluates four additions which accumulate at most ~5 ULP relative error (left-associative). The worst-case combined error path is ~5 ULP × 1e-16 relative ≈ 5e-16, leaving over 5 orders of magnitude of headroom above the 1e-10 model-level tolerance. Matches the convention used by sibling algebraic .esm files in this rig (gwp.esm at rel = 1e-10, typical.esm at rel = 1e-10).\n\nUnit balance (verified): all six equations balance dimensionally.\n  `ΔF_CO2 ~ f_CO2 · ΔF_CO2_ref`: dimensionless · W/m² = W/m² ✓\n  `ΔF_CH4 ~ f_CH4 · ΔF_CH4_ref`: dimensionless · W/m² = W/m² ✓\n  `ΔF_N2O ~ f_N2O · ΔF_N2O_ref`: dimensionless · W/m² = W/m² ✓\n  `ΔF_O3 ~ f_O3 · ΔF_O3_trop_ref`: dimensionless · W/m² = W/m² ✓\n  `ΔF_halo ~ f_halo · ΔF_halo_ref`: dimensionless · W/m² = W/m² ✓\n  `ΔF_total ~ ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo`: W/m² + W/m² + W/m² + W/m² + W/m² = W/m² ✓\nThe migrated `.esm` preserves the upstream units verbatim — all radiative forcings in SI W/m² and all scaling factors dimensionless. SI throughout; no unit conversion at parse or runtime."
  },
  "tolerance": {
    "rel": 1e-10
  },
  "variables": {
    "ΔF_CO2_ref": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 1.46,
      "description": "Industrial-era CO₂ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 1.46 W/m² is the radiative forcing from the pre-industrial-to-2001 CO₂ rise from ~280 ppm to ~370 ppm, computed from the logarithmic CO₂ forcing formula ΔF = α · ln(C/C₀) with α ≈ 5.35 W/m² (S&P Table 23.4, originally Myhre et al. 1998). This is the largest single component of the anthropogenic radiative forcing total (52% of the 2.83 W/m² sum at defaults). Encoded as a `type: parameter` (rather than a hardcoded constant) so a downstream consumer can override to the IPCC AR4/AR5/AR6 revised values (AR5 estimates CO₂ industrial-era forcing at ~1.82 W/m² reflecting the CO₂ rise to ~400 ppm) without forking the component."
    },
    "ΔF_CH4_ref": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 0.48,
      "description": "Industrial-era CH₄ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.48 W/m² is the radiative forcing from the pre-industrial-to-2001 CH₄ rise from ~700 ppb to ~1750 ppb, computed from the square-root CH₄ forcing formula ΔF = β · (√C - √C₀) with β ≈ 0.036 W/m² ppb^(-1/2) (S&P Table 23.4, Myhre et al. 1998 fit). CH₄ is the second-largest contributor to the anthropogenic radiative forcing total at defaults (17% of the 2.83 W/m² sum). Note the upstream value does not include the indirect CH₄ contributions through tropospheric O₃ and stratospheric H₂O — those would add another ~0.1-0.2 W/m² to CH₄'s effective forcing per IPCC AR6 attribution. Encoded as `type: parameter` for AR4/AR5/AR6 override flexibility."
    },
    "ΔF_N2O_ref": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 0.15,
      "description": "Industrial-era N₂O radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.15 W/m² is the radiative forcing from the pre-industrial-to-2001 N₂O rise from ~270 ppb to ~314 ppb, computed from the square-root N₂O forcing formula ΔF = γ · (√C - √C₀) with γ ≈ 0.12 W/m² ppb^(-1/2) (S&P Table 23.4). N₂O is the third-largest well-mixed GHG forcing at defaults (5.3% of the total), driven primarily by agricultural fertilizer use and biomass burning. Encoded as `type: parameter` for AR4/AR5/AR6 override flexibility."
    },
    "ΔF_O3_trop_ref": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 0.4,
      "description": "Tropospheric O₃ radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.4 W/m² is the radiative forcing from the industrial-era buildup of tropospheric O₃ from photochemical production over polluted continents (anthropogenic NOx + VOC + sunlight → O₃ chain). Unlike the well-mixed GHGs (CO₂, CH₄, N₂O), tropospheric O₃ is short-lived (lifetime ~weeks to months) and spatially inhomogeneous, so its forcing is harder to quantify precisely — IPCC TAR's 0.4 W/m² has a relatively large uncertainty range of ~0.2-0.7 W/m². Tropospheric O₃ is the fourth-largest contributor at defaults (14% of the 2.83 W/m² sum). Encoded as `type: parameter` for downstream sensitivity studies that probe the tropospheric O₃ uncertainty range or for AR4/AR5/AR6 revised central values (AR5 estimates ~0.4 W/m² consistent with TAR, AR6 revises upward to ~0.47 W/m²)."
    },
    "ΔF_halo_ref": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 0.34,
      "description": "Halocarbon radiative forcing reference value (IPCC TAR 2001, S&P p. 1039). The upstream 0.34 W/m² is the radiative forcing from the industrial-era accumulation of the CFC/HCFC/HFC halocarbon family — predominantly CFC-11, CFC-12, CFC-113 (legacy refrigerants, foam-blowing agents, aerosol propellants peaked in late 1980s and declining post-Montreal Protocol), HCFC-22 (transitional refrigerant), and HFC-134a (modern refrigerant). The halocarbons are very-long-lived (lifetimes 12-1700 yr depending on species) and have very-high radiative efficiencies per molecule, making them disproportionately important per-mass relative to CO₂ (typical halocarbon GWP₁₀₀ ranges 1000-10000). Halocarbon family is the fifth-largest contributor at defaults (12% of the 2.83 W/m² sum). Encoded as `type: parameter` so a downstream consumer can override to AR4/AR5/AR6 revised values (the halocarbon forcing peaked in the late-1990s and is now declining due to the Montreal Protocol — AR6 estimates ~0.36 W/m² in 2019, with a slow declining trend)."
    },
    "f_CO2": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Dimensionless scaling factor for the CO₂ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_CO2 = 1.46 W/m². Use cases for overrides: (i) attribution scenarios that zero out the CO₂ contribution (f_CO2 = 0 → ΔF_CO2 = 0); (ii) future-projection scenarios that scale up the CO₂ forcing (f_CO2 = 2 → ΔF_CO2 = 2.92 W/m², approximately reproducing the 2xCO₂ radiative forcing of 3.7 W/m² targeted by the climate sensitivity definition when combined with a tuned reference); (iii) cross-IPCC comparison (f_CO2 = 1.24 reproduces the AR5 CO₂ forcing 1.82 W/m² from the TAR 1.46 baseline). The scaling-factor design preserves the upstream MTK component's per-channel overrideability without re-implementing the underlying concentration→forcing transfer function."
    },
    "f_CH4": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Dimensionless scaling factor for the CH₄ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_CH4 = 0.48 W/m². Use cases for overrides: (i) methane-emission-reduction policy scenarios (f_CH4 < 1 → reduced ΔF_CH4); (ii) high-methane scenarios (f_CH4 > 1 → amplified ΔF_CH4, e.g., for hydrate-release counterfactuals or fugitive-emission inventories); (iii) including indirect CH₄ effects on tropospheric O₃ and stratospheric H₂O (effective f_CH4 ~ 1.3-1.5 per AR6 attribution)."
    },
    "f_N2O": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Dimensionless scaling factor for the N₂O forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_N2O = 0.15 W/m². N₂O is dominated by agricultural soil emissions (fertilizer N → nitrification/denitrification → N₂O), so overrides typically reflect alternative agricultural-emission inventories or fertilizer-policy scenarios."
    },
    "f_O3": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Dimensionless scaling factor for the tropospheric O₃ forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_O3 = 0.4 W/m². Tropospheric O₃ has the largest relative uncertainty among the five channels (~50% in TAR), so overrides typically span the f_O3 ∈ [0.5, 1.75] range corresponding to the TAR 0.2-0.7 W/m² uncertainty interval. NOx/VOC emission-control scenarios also enter through this scaling factor."
    },
    "f_halo": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Dimensionless scaling factor for the halocarbon family forcing channel. Default 1.0 reproduces the IPCC TAR 2001 baseline ΔF_halo = 0.34 W/m². The halocarbon forcing peaked in the late-1990s and is now slowly declining due to the Montreal Protocol's phaseout of CFCs and HCFCs, so historical-trend overrides typically span f_halo ∈ [0.0, 1.1] across the 1980-2050 trajectory. HFC-substitute growth (under Kigali Amendment) partly offsets the CFC decline."
    },
    "ΔF_CO2": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Radiative forcing from the CO₂ channel. Equals f_CO2 · ΔF_CO2_ref by construction. At the defaults (f_CO2 = 1.0, ΔF_CO2_ref = 1.46) this evaluates to 1.46 W/m² — the IPCC TAR 2001 industrial-era CO₂ forcing baseline. Largest single contributor to ΔF_total (52% at defaults)."
    },
    "ΔF_CH4": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Radiative forcing from the CH₄ channel. Equals f_CH4 · ΔF_CH4_ref by construction. At the defaults this evaluates to 0.48 W/m² — second-largest contributor to ΔF_total (17% at defaults). Does not include indirect CH₄ effects through tropospheric O₃ or stratospheric H₂O — those are bundled into ΔF_O3 and not separately exposed at this component level."
    },
    "ΔF_N2O": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Radiative forcing from the N₂O channel. Equals f_N2O · ΔF_N2O_ref by construction. At the defaults this evaluates to 0.15 W/m² — third-smallest contributor to ΔF_total (5.3% at defaults)."
    },
    "ΔF_O3": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Radiative forcing from the tropospheric O₃ channel. Equals f_O3 · ΔF_O3_trop_ref by construction. At the defaults this evaluates to 0.4 W/m² — fourth-largest contributor to ΔF_total (14% at defaults). Note: this is the tropospheric O₃ forcing only — the stratospheric O₃ forcing (also relevant under Antarctic ozone-depletion attribution) is not exposed by this component; the upstream MTK component is specifically named ΔF_O3_trop_ref to disambiguate."
    },
    "ΔF_halo": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Radiative forcing from the halocarbon family channel (CFCs, HCFCs, HFCs aggregated). Equals f_halo · ΔF_halo_ref by construction. At the defaults this evaluates to 0.34 W/m² — fifth-largest contributor to ΔF_total (12% at defaults). The aggregation across the halocarbon family (rather than per-species CFC-11 / CFC-12 / etc.) reflects the upstream model's choice to expose a single bulk halocarbon channel — for per-species halocarbon analysis a downstream consumer would extend or compose with the GWP component (`components/gaschem/climate/gwp.esm`) using per-species τ_A and a_A values."
    },
    "ΔF_total": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Total anthropogenic radiative forcing from the five well-mixed-GHG + tropospheric-O₃ channels. Equals ΔF_CO2 + ΔF_CH4 + ΔF_N2O + ΔF_O3 + ΔF_halo by construction (left-associative sum). At the defaults this evaluates to (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 = 2.8299999999999996 W/m² (the closest IEEE-754 double to 2.83 — not exactly 2.83 because 0.15 and 0.4 have non-terminating binary representations that produce ~1 ULP rounding error at the intermediate (((1.46+0.48)+0.15)+0.4) = 2.4899999999999998 step, propagated through to the final sum). This 2.83 W/m² total matches the IPCC TAR 2001 industrial-era headline radiative forcing for the well-mixed GHGs + tropospheric O₃ (S&P p. 1039) — does not include aerosol negative forcings (~-0.5 to -1.5 W/m² in TAR), surface-albedo / land-use forcings (~-0.2 W/m²), or solar irradiance variability (~0.3 W/m²), which would bring the all-anthropogenic-forcing total down to the canonical net ~1.6 W/m² industrial-era value."
    }
  },
  "equations": [
    {
      "lhs": "ΔF_CO2",
      "rhs": {
        "op": "*",
        "args": [
          "f_CO2",
          "ΔF_CO2_ref"
        ]
      }
    },
    {
      "lhs": "ΔF_CH4",
      "rhs": {
        "op": "*",
        "args": [
          "f_CH4",
          "ΔF_CH4_ref"
        ]
      }
    },
    {
      "lhs": "ΔF_N2O",
      "rhs": {
        "op": "*",
        "args": [
          "f_N2O",
          "ΔF_N2O_ref"
        ]
      }
    },
    {
      "lhs": "ΔF_O3",
      "rhs": {
        "op": "*",
        "args": [
          "f_O3",
          "ΔF_O3_trop_ref"
        ]
      }
    },
    {
      "lhs": "ΔF_halo",
      "rhs": {
        "op": "*",
        "args": [
          "f_halo",
          "ΔF_halo_ref"
        ]
      }
    },
    {
      "lhs": "ΔF_total",
      "rhs": {
        "op": "+",
        "args": [
          "ΔF_CO2",
          "ΔF_CH4",
          "ΔF_N2O",
          "ΔF_O3",
          "ΔF_halo"
        ]
      }
    }
  ],
  "tests": [
    {
      "id": "upstream_reference_values_at_defaults",
      "description": "Default scenario: all five scaling factors at their f_X = 1.0 default and all five reference forcings at the IPCC TAR 2001 values. Reproduces the upstream `GHGForcing reference values` test (GasChem.jl test/climate_forcing_test.jl:129-146) which asserts the four upstream-explicit per-channel forcings (ΔF_CO2 = 1.46, ΔF_CH4 = 0.48, ΔF_N2O = 0.15, ΔF_O3 = 0.4) and the total ΔF_total = 1.46 + 0.48 + 0.15 + 0.4 + 0.34 = 2.83 W/m² at rtol=1e-6. The .esm migration tightens to rel=1e-10 and pins all six state variables — both the four upstream-explicit values and the upstream-implicit ΔF_halo = 0.34 — to single-ULP regression-detection precision. The pinned ΔF_total = 2.8299999999999996 is the exact IEEE-754 left-associative sum (((1.46 + 0.48) + 0.15) + 0.4) + 0.34 — not 2.83 exactly because 0.15 and 0.4 cannot be exactly represented in binary floating-point, producing ~1 ULP rounding at the intermediate sum step.",
      "parameter_overrides": {},
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 1.46,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.48,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.15,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.4,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.34,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 2.8299999999999996,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "zero_co2_forcing_attribution",
      "description": "CO₂-attribution scenario: zero out the CO₂ channel by overriding f_CO2 = 0. All other channels remain at TAR defaults. Result: ΔF_CO2 = 0 exactly (multiplication by zero is bit-exact in IEEE-754), ΔF_total = 0 + 0.48 + 0.15 + 0.4 + 0.34 = 1.37 W/m² — the non-CO₂ anthropogenic radiative forcing total. This scenario answers the attribution question 'what fraction of the industrial-era anthropogenic radiative forcing is *not* CO₂?' — the answer is 1.37 / 2.83 ≈ 48% at the TAR baseline. Uses abs=1e-12 tolerance on the zero-output channel because rel tolerance is undefined at zero and a stuck-at-non-zero regression must not silently pass. Anchors the design choice that the five scaling factors are mutually independent (zeroing one does not bleed into another).",
      "parameter_overrides": {
        "f_CO2": 0.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.48,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.15,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.4,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.34,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 1.37,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "doubled_co2_scaling_scenario",
      "description": "Doubled-CO₂-emissions scenario: f_CO2 = 2.0 doubles the CO₂ channel only (the dimensionless scaling factor design rules out a literal 2xCO₂ concentration via the logarithmic forcing formula — that would scale by ln(2 × C/C₀)/ln(C/C₀) which is implicit in the TAR baseline — but f_CO2 = 2 cleanly tests the linear-in-f scaling path). All other channels remain at TAR defaults. Result: ΔF_CO2 = 2.0 · 1.46 = 2.92 W/m² (close to the canonical 3.7 W/m² 2×CO₂ radiative forcing used to define the climate sensitivity in the sibling ClimateFeedback component — the difference reflects f_CO2 = 2.534 being the exact factor that reproduces 3.7 W/m²), ΔF_total = 2.92 + 0.48 + 0.15 + 0.4 + 0.34 = 4.29 W/m². Anchors the linear-in-f_X scaling path and the channel-independence property (only the CO₂ channel is affected).",
      "parameter_overrides": {
        "f_CO2": 2.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 2.92,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.48,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.15,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.4,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.34,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 4.29,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "all_channels_zero_no_anthropogenic_forcing",
      "description": "Counterfactual no-anthropogenic-forcing scenario: zero out all five scaling factors. Result: every individual ΔF_X = 0 exactly, ΔF_total = 0 + 0 + 0 + 0 + 0 = 0 exactly. Uses abs=1e-12 tolerance on all six zero outputs (rel is undefined at zero). While not physically meaningful — a real pre-industrial atmosphere still has natural radiative forcings from solar, volcanic, and orbital variations — the scenario verifies the multiplicative-by-zero pathway through all five channels simultaneously and the sum-of-zeros total. Anchors the structural identity that any one of the five scaling factors being zero zeroes out only that channel (independence) and that all five being zero zeroes out the total.",
      "parameter_overrides": {
        "f_CO2": 0.0,
        "f_CH4": 0.0,
        "f_N2O": 0.0,
        "f_O3": 0.0,
        "f_halo": 0.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-12
          }
        }
      ]
    },
    {
      "id": "all_channels_doubled_linearity_check",
      "description": "All-channels-doubled scenario: all five scaling factors at 2.0. Result: each ΔF_X = 2 · ΔF_X_ref and ΔF_total = 2 · 2.83 = 5.659999999999999 W/m² (the closest IEEE-754 double to 5.66, not exact for the same binary-representation reason as the all-defaults total). Anchors the linear-in-f scaling identity ΔF_total(2 · f_X for all X) = 2 · ΔF_total(f_X for all X) by direct comparison with the default scenario's 2.8299999999999996 — and the relationship 2 · 2.8299999999999996 = 5.659999999999999 (which is the same value, off by one ULP from the directly-computed sum due to multiplication-then-add associativity).",
      "parameter_overrides": {
        "f_CO2": 2.0,
        "f_CH4": 2.0,
        "f_N2O": 2.0,
        "f_O3": 2.0,
        "f_halo": 2.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 2.92,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.96,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.3,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.8,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.68,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 5.659999999999999,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "independent_channels_asymmetric_overrides",
      "description": "Channel-independence test: each of the five scaling factors set to a different value (f_CO2 = 1.5, f_CH4 = 0.8, f_N2O = 1.2, f_O3 = 0.5, f_halo = 2.0). Result: each ΔF_X tracks its own f_X · ΔF_X_ref with no cross-channel leakage, and ΔF_total = 1.5·1.46 + 0.8·0.48 + 1.2·0.15 + 0.5·0.4 + 2.0·0.34 = 2.19 + 0.384 + 0.18 + 0.2 + 0.68 = 3.6340000000000003 W/m². Sanity check that the five equations are independent identities — there is no coupling term that would make a change to f_CO2 affect ΔF_CH4 or any other channel. Pairs with `zero_co2_forcing_attribution` and `doubled_co2_scaling_scenario` to cover the full one-channel-at-a-time independence pattern.",
      "parameter_overrides": {
        "f_CO2": 1.5,
        "f_CH4": 0.8,
        "f_N2O": 1.2,
        "f_O3": 0.5,
        "f_halo": 2.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 2.19,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.384,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.18,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.2,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.68,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 3.6340000000000003,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "ar5_co2_reference_override",
      "description": "Override the upstream `@constants` ΔF_CO2_ref from the TAR 2001 value 1.46 W/m² to the AR5 2014 value 1.82 W/m² (S&P TAR baseline vs IPCC AR5 Ch. 8 best-estimate industrial-era CO₂ forcing — the change reflects the CO₂ rise from ~370 ppm at TAR to ~400 ppm at AR5). All scaling factors at default 1.0. Result: ΔF_CO2 = 1.82 W/m² (the AR5 value rather than the TAR baseline), ΔF_total = 1.82 + 0.48 + 0.15 + 0.4 + 0.34 = 3.1899999999999995 W/m² (the AR5-aligned total with the other four channels still at TAR defaults — a mixed-vintage diagnostic but not physically meaningful; a full AR5 reproduction would also override the other four ΔF_X_ref). Anchors the design choice that the five reference-forcing values are encoded as `type: parameter` rather than hardcoded constants, so a downstream consumer can re-bind to any IPCC vintage (TAR/AR4/AR5/AR6) without forking the component. Catches a regression where ΔF_CO2_ref is accidentally hardcoded inside the equation rather than being an overrideable parameter.",
      "parameter_overrides": {
        "ΔF_CO2_ref": 1.82
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": 1.82,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.48,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.15,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.4,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.34,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": 3.1899999999999995,
          "tolerance": {
            "rel": 1e-10
          }
        }
      ]
    },
    {
      "id": "negative_scaling_cooling_counterfactual",
      "description": "Negative-scaling counterfactual: f_CO2 = -1.0 (and all others at default). This is a non-physical override — a real CO₂ channel cannot produce a negative radiative forcing under the upstream logarithmic ΔF = α·ln(C/C₀) formula because the natural log is monotone and the reference C₀ is the pre-industrial value — but the @component's linear-in-f_X scaling factor is sign-agnostic, so the equation cleanly evaluates to ΔF_CO2 = -1.46 W/m². Pairs with the all-zeros and all-doubled tests to cover the full f_CO2 ∈ {-1, 0, 1, 2} signed-scaling axis. The total ΔF_total = -1.46 + 0.48 + 0.15 + 0.4 + 0.34 = -0.09 W/m² — a near-zero residual that anchors a +CO₂-removal counterfactual (CO₂ direct removal sufficient to fully offset the industrial-era CO₂ forcing — IPCC AR6 long-term mitigation scenarios contemplate such CDR pathways).",
      "parameter_overrides": {
        "f_CO2": -1.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔF_CO2",
          "time": 0.0,
          "expected": -1.46,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_CH4",
          "time": 0.0,
          "expected": 0.48,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_N2O",
          "time": 0.0,
          "expected": 0.15,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_O3",
          "time": 0.0,
          "expected": 0.4,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_halo",
          "time": 0.0,
          "expected": 0.34,
          "tolerance": {
            "rel": 1e-10
          }
        },
        {
          "variable": "ΔF_total",
          "time": 0.0,
          "expected": -0.09,
          "tolerance": {
            "abs": 1e-12
          }
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "co2_scaling_sweep",
      "description": "Sweep f_CO2 across the policy-relevant range [0, 3] holding all other channels at TAR defaults. Surfaces the linear-in-f_CO2 scaling of ΔF_CO2 (slope 1.46 W/m² per unit f_CO2) and the corresponding linear shift of ΔF_total around its non-CO₂ baseline of 1.37 W/m². The sweep covers the no-CO₂-attribution endpoint (f_CO2 = 0 → ΔF_total = 1.37), the TAR baseline (f_CO2 = 1 → ΔF_total = 2.83), the doubled-CO₂ scenario (f_CO2 = 2 → ΔF_total = 4.29), and the tripled-CO₂ scenario (f_CO2 = 3 → ΔF_total = 5.75). The 2xCO₂ ≈ 3.7 W/m² radiative forcing used to define climate sensitivity corresponds to f_CO2 ≈ 2.534 (3.7 / 1.46) in this parameterization.",
      "initial_state": {},
      "parameters": {},
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "f_CO2",
            "range": {
              "start": 0.0,
              "stop": 3.0,
              "count": 31,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "co2_forcing_vs_f_co2",
          "type": "line",
          "description": "ΔF_CO2 vs f_CO2 on a linear scale — a 1:1 line of slope 1.46 W/m² (the ΔF_CO2_ref constant). Confirms the linear-in-f scaling of the individual CO₂ channel.",
          "x": {
            "variable": "f_CO2",
            "label": "f_CO2 (dimensionless)"
          },
          "y": {
            "variable": "ΔF_CO2",
            "label": "ΔF_CO2 (W/m^2)"
          }
        },
        {
          "id": "total_forcing_vs_f_co2",
          "type": "line",
          "description": "ΔF_total vs f_CO2 on a linear scale — a 1:1 line of slope 1.46 W/m² offset by the constant non-CO₂ contribution 1.37 W/m². Confirms the linear scaling of ΔF_total in f_CO2 with the correct constant offset from the other four channels.",
          "x": {
            "variable": "f_CO2",
            "label": "f_CO2 (dimensionless)"
          },
          "y": {
            "variable": "ΔF_total",
            "label": "ΔF_total (W/m^2)"
          }
        }
      ]
    },
    {
      "id": "co2_ch4_joint_sweep",
      "description": "Joint 2D sweep over (f_CO2, f_CH4) ∈ [0, 3] × [0, 3] holding the N₂O, O₃, and halocarbon channels at TAR defaults. Surfaces the bilinear ΔF_total surface in the dominant-two-channel plane (CO₂ + CH₄ together account for 69% of the TAR total). The surface is exactly planar (bilinearity is exact in linear scaling), with slopes 1.46 W/m² per unit f_CO2 (steeper axis) and 0.48 W/m² per unit f_CH4 (shallower axis). Useful for visualizing the relative leverage of CO₂ vs CH₄ emission reductions on the total forcing budget — a 1-unit cut in f_CO2 is 3× more effective than a 1-unit cut in f_CH4 at the TAR baseline.",
      "initial_state": {},
      "parameters": {},
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "f_CO2",
            "range": {
              "start": 0.0,
              "stop": 3.0,
              "count": 16,
              "scale": "linear"
            }
          },
          {
            "parameter": "f_CH4",
            "range": {
              "start": 0.0,
              "stop": 3.0,
              "count": 16,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "total_forcing_heatmap",
          "type": "heatmap",
          "description": "ΔF_total as a function of (f_CO2, f_CH4) at the TAR defaults for the other three channels — a tilted-plane heatmap surface confirming the bilinear scaling of ΔF_total in (f_CO2, f_CH4). The constant-ΔF_total iso-contours are straight lines of slope -3.04 (=1.46/0.48) in the (f_CO2, f_CH4) plane, anchoring the CO₂/CH₄ relative-leverage ratio for emission-reduction policy.",
          "x": {
            "variable": "f_CO2",
            "label": "f_CO2 (dimensionless)"
          },
          "y": {
            "variable": "f_CH4",
            "label": "f_CH4 (dimensionless)"
          },
          "value": {
            "variable": "ΔF_total",
            "reduce": "final"
          }
        }
      ]
    },
    {
      "id": "ar5_co2_reference_sweep",
      "description": "Sweep ΔF_CO2_ref across the TAR-to-AR6 range [1.46, 2.0] W/m² holding all scaling factors at default. Reproduces the IPCC-vintage evolution of the CO₂ industrial-era forcing baseline: TAR 2001 at 1.46, AR4 2007 at ~1.66, AR5 2014 at ~1.82, AR6 2021 at ~1.96 W/m². Surfaces the linear-in-ΔF_CO2_ref scaling of ΔF_CO2 (slope 1.0 at f_CO2 = 1) and the corresponding linear shift of ΔF_total around its non-CO₂ baseline. Anchors the design choice that the reference-forcing constants are `type: parameter` and overrideable — a downstream consumer can re-bind to any IPCC vintage without forking the component.",
      "initial_state": {},
      "parameters": {},
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "ΔF_CO2_ref",
            "range": {
              "start": 1.46,
              "stop": 2.0,
              "count": 28,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "co2_forcing_vs_co2_ref",
          "type": "line",
          "description": "ΔF_CO2 vs ΔF_CO2_ref on a linear scale — a 1:1 line of slope 1.0 confirming the multiplicative scaling at f_CO2 = 1 default.",
          "x": {
            "variable": "ΔF_CO2_ref",
            "label": "ΔF_CO2_ref (W/m^2)"
          },
          "y": {
            "variable": "ΔF_CO2",
            "label": "ΔF_CO2 (W/m^2)"
          }
        }
      ]
    }
  ]
}