Version: dev

WSM6WarmRain

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.

.esm schema
1.2.0
Source
components/atmospheric_dynamics/wsm6/warm_rain.esm

Description

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/_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.

Reference

  • Hong, S.-Y., and J.-O. J. Lim (2006). The WRF single-moment 6-class microphysics scheme (WSM6). J. Korean Meteor. Soc. 42, 129-151.
  • Hong, S.-Y., J. Dudhia, and S.-H. Chen (2004). A revised approach to ice microphysical processes for the bulk parameterization of clouds and precipitation. Mon. Wea. Rev. 132, 103-120.
  • NCAR/MMM-physics mp_wsm6.F90 at commit 550b5b4 (WRF 4.8 phys/physics_mmm submodule).

Parameters

NameUnitsDefaultDescription
qv_inkg/kg0.0Coupling-target parameter (additive): receives the vapor mixing ratio from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers input_qv to this name. Unused by the standalone inline tests, which lower input_qv to a dumped column profile instead.
qc_inkg/kg0.0Coupling-target parameter (additive): receives the cloud-water mixing ratio from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers input_qc to this name. Unused by the standalone inline tests, which lower input_qc to a dumped column profile instead.
qsat_inkg/kg0.0Coupling-target parameter (additive): receives the start-of-sub-step saturation mixing ratio over water from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers input_qsat to this name. Unused by the standalone inline tests, which lower input_qsat to a dumped column profile instead.
rh_in10.0Coupling-target parameter (additive): receives the start-of-sub-step relative humidity over water from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers input_rh to this name. Unused by the standalone inline tests, which lower input_rh to a dumped column profile instead.
xl_inJ/kg0.0Coupling-target parameter (additive): receives the start-of-sub-step latent heat of vaporization from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers input_xl to this name. Unused by the standalone inline tests, which lower input_xl to a dumped column profile instead.
dtclds60.0Length of the WSM6 sub-time step; enters only the rate limiters.

Observed

NameUnitsDefaultDescription
qvkg/kgWater-vapor mixing ratio (WSM6 q).
qckg/kgCloud-water mixing ratio.
qsatkg/kgSaturation mixing ratio over water at the start-of-step state (saturation.esm qsat_w).
rh1Relative humidity with respect to water at the start-of-step state (saturation.esm rh_w).
xlJ/kgLatent heat of vaporization at the start-of-step temperature (saturation.esm xl).
qc0kg/kgAutoconversion threshold (4/3) pi rho_w r0^3 N_c / rho0 (WSM6 qc0).
qck11/sAutoconversion rate constant 0.104 g E_auto / (N_c rho_w)^(1/3) / mu rho0^(4/3) (WSM6 qck1).
pacrr1/(m^(19/5)*s)Accretion coefficient pi n0r a Gamma(3 + b) E_rc / 4 (WSM6 pacrr); units for b = 4/5.
precr11/m^4Rain evaporation coefficient of the non-ventilated term, 2 pi n0r a_v (WSM6 precr1).
precr21/(m^(39/10)*s^(1/2))Rain evaporation coefficient of the ventilated term, 2 pi n0r b_v a^(1/2) Gamma(2.5 + b/2) (WSM6 precr2); units for b = 4/5.
f_diffs/m^2Diffusional-growth denominator rho xl^2/(ka r_v T^2) + 1/(qsat Dv) (WSM6 work1(:,:,1)).
prautkg/kg/sAutoconversion rate of cloud water to rain, unlimited (HDC eq. 16).
praut_limkg/kg/sAutoconversion rate after the kernel’s time-step limiter min(praut, qc/dtcld) (WSM6 praut as applied).
pracwkg/kg/sAccretion rate of cloud water by rain, unlimited (HL eq. A40).
pracw_limkg/kg/sAccretion rate after the kernel’s time-step limiter min(pracw, qc/dtcld) (WSM6 pracw as applied).
prevpkg/kg/sRain evaporation (negative) / condensation (positive) rate, unlimited (HDC eq. 14).
satdtkg/kg/sVapor excess over saturation per sub-step, (max(qv, qmin) - qsat)/dtcld (WSM6 satdt).
prevp_limkg/kg/sRain evaporation/condensation rate after the kernel’s time-step limiters (WSM6 prevp as applied).

Observed expressions

$$ qv = \mathrm{input_qv}\left(\right) $$

Water-vapor mixing ratio (WSM6 q).

$$ qc = \mathrm{input_qc}\left(\right) $$

Cloud-water mixing ratio.

$$ qsat = \mathrm{input_qsat}\left(\right) $$

Saturation mixing ratio over water at the start-of-step state (saturation.esm qsat_w).

$$ rh = \mathrm{input_rh}\left(\right) $$

Relative humidity with respect to water at the start-of-step state (saturation.esm rh_w).

$$ xl = \mathrm{input_xl}\left(\right) $$

Latent heat of vaporization at the start-of-step temperature (saturation.esm xl).

$$ qc0 = \frac{\frac{\mathrm{const}\left(\right)}{\mathrm{const}\left(\right)} \cdot wrf.piconst \cdot wrf.rhowater \cdot par.r0^{3} \cdot par.xncr}{wrf.rhoair0} $$

Autoconversion threshold (4/3) pi rho_w r0^3 N_c / rho0 (WSM6 qc0).

$$ qck1 = \frac{par.autoconv_{coef} \cdot par.g_{autoconv} \cdot par.peaut}{\left(par.xncr \cdot wrf.rhowater\right)^{\frac{1}{3}} \cdot par.xmyu} \cdot wrf.rhoair0^{\frac{4}{3}} $$

Autoconversion rate constant 0.104 g E_auto / (N_c rho_w)^(1/3) / mu rho0^(4/3) (WSM6 qck1).

$$ pacrr = \frac{wrf.piconst \cdot par.n0r \cdot par.avtr \cdot par.g3pbr \cdot par.eacrr}{\mathrm{const}\left(\right)} $$

Accretion coefficient pi n0r a Gamma(3 + b) E_rc / 4 (WSM6 pacrr); units for b = 4/5.

$$ precr1 = \mathrm{const}\left(\right) \cdot wrf.piconst \cdot par.n0r \cdot par.vent_{a} $$

Rain evaporation coefficient of the non-ventilated term, 2 pi n0r a_v (WSM6 precr1).

$$ precr2 = \mathrm{const}\left(\right) \cdot wrf.piconst \cdot par.n0r \cdot par.vent_{b} \cdot \sqrt{par.avtr} \cdot par.g5pbro2 $$

Rain evaporation coefficient of the ventilated term, 2 pi n0r b_v a^(1/2) Gamma(2.5 + b/2) (WSM6 precr2); units for b = 4/5.

$$ f_{diff} = \mathrm{diffusional_growth_denominator}\left(L=xl, T=sd.T, rho=sd.rho, ka=sd.ka, r_{v}=wrf.r_{v}, qsat=qsat, Dv=sd.Dv\right) $$

Diffusional-growth denominator rho xl^2/(ka r_v T^2) + 1/(qsat Dv) (WSM6 work1(:,:,1)).

$$ praut = \mathrm{hdc_autoconversion}\left(qc=qc, qc0=qc0, qck1=qck1\right) $$

Autoconversion rate of cloud water to rain, unlimited (HDC eq. 16).

$$ praut_{lim} = \mathrm{sink_rate_limiter}\left(rate=praut, q=qc, dt=dtcld\right) $$

Autoconversion rate after the kernel’s time-step limiter min(praut, qc/dtcld) (WSM6 praut as applied).

$$ pracw = \mathrm{accretion_of_cloud_by_rain}\left(qc=qc, qr=sd.qr, rslope3=sd.rslope3_{r}, rslopeb=sd.rslopeb_{r}, pacrr=pacrr, denfac=sd.denfac, qr_{min}=par.qcrmin, qc_{min}=par.qmin\right) $$

Accretion rate of cloud water by rain, unlimited (HL eq. A40).

$$ pracw_{lim} = \mathrm{sink_rate_limiter}\left(rate=pracw, q=qc, dt=dtcld\right) $$

Accretion rate after the kernel’s time-step limiter min(pracw, qc/dtcld) (WSM6 pracw as applied).

$$ prevp = \mathrm{rain_evaporation}\left(qr=sd.qr, rh=rh, rslope2=sd.rslope2_{r}, coeres=sd.coeres_{r}, f_{vent}=sd.f_{vent}, f_{diff}=f_{diff}, precr1=precr1, precr2=precr2\right) $$

Rain evaporation (negative) / condensation (positive) rate, unlimited (HDC eq. 14).

$$ satdt = \frac{\mathrm{max}\left(qv, par.qmin\right) - qsat}{dtcld} $$

Vapor excess over saturation per sub-step, (max(qv, qmin) - qsat)/dtcld (WSM6 satdt).

$$ prevp_{lim} = \mathrm{rain_evaporation_limiter}\left(prevp=prevp, qr=sd.qr, satdt=satdt, dt=dtcld\right) $$

Rain evaporation/condensation rate after the kernel’s time-step limiters (WSM6 prevp as applied).

Raw .esm

Raw .esm JSON (this component)
{
  "expression_template_imports": [
    {
      "ref": "./microphysics_templates.esm"
    }
  ],
  "subsystems": {
    "wrf": {
      "ref": "../../../lib/wrf_constants.esm"
    },
    "par": {
      "ref": "./wsm6_parameters.esm"
    },
    "sd": {
      "ref": "./hydrometeor_slopes.esm",
      "bindings": {
        "NLEV": "NLEV"
      }
    }
  },
  "variables": {
    "qv_in": {
      "type": "parameter",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "default": 0.0,
      "description": "Coupling-target parameter (additive): receives the vapor mixing ratio from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers `input_qv` to this name. Unused by the standalone inline tests, which lower `input_qv` to a dumped column profile instead."
    },
    "qc_in": {
      "type": "parameter",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "default": 0.0,
      "description": "Coupling-target parameter (additive): receives the cloud-water mixing ratio from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers `input_qc` to this name. Unused by the standalone inline tests, which lower `input_qc` to a dumped column profile instead."
    },
    "qsat_in": {
      "type": "parameter",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "default": 0.0,
      "description": "Coupling-target parameter (additive): receives the start-of-sub-step saturation mixing ratio over water from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers `input_qsat` to this name. Unused by the standalone inline tests, which lower `input_qsat` to a dumped column profile instead."
    },
    "rh_in": {
      "type": "parameter",
      "units": "1",
      "shape": [
        "lev"
      ],
      "default": 0.0,
      "description": "Coupling-target parameter (additive): receives the start-of-sub-step relative humidity over water from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers `input_rh` to this name. Unused by the standalone inline tests, which lower `input_rh` to a dumped column profile instead."
    },
    "xl_in": {
      "type": "parameter",
      "units": "J/kg",
      "shape": [
        "lev"
      ],
      "default": 0.0,
      "description": "Coupling-target parameter (additive): receives the start-of-sub-step latent heat of vaporization from the upstream stage through a document coupling (EqWeFiC couplings/microphysics_column*.esm), where the mount-edge template library lowers `input_xl` to this name. Unused by the standalone inline tests, which lower `input_xl` to a dumped column profile instead."
    },
    "qv": {
      "type": "unknown",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "description": "Water-vapor mixing ratio (WSM6 q)."
    },
    "qc": {
      "type": "unknown",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "description": "Cloud-water mixing ratio."
    },
    "qsat": {
      "type": "unknown",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "description": "Saturation mixing ratio over water at the start-of-step state (saturation.esm qsat_w)."
    },
    "rh": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Relative humidity with respect to water at the start-of-step state (saturation.esm rh_w)."
    },
    "xl": {
      "type": "unknown",
      "units": "J/kg",
      "shape": [
        "lev"
      ],
      "description": "Latent heat of vaporization at the start-of-step temperature (saturation.esm xl)."
    },
    "dtcld": {
      "type": "parameter",
      "units": "s",
      "default": 60.0,
      "description": "Length of the WSM6 sub-time step; enters only the rate limiters."
    },
    "qc0": {
      "type": "unknown",
      "units": "kg/kg",
      "description": "Autoconversion threshold (4/3) pi rho_w r0^3 N_c / rho0 (WSM6 qc0)."
    },
    "qck1": {
      "type": "unknown",
      "units": "1/s",
      "description": "Autoconversion rate constant 0.104 g E_auto / (N_c rho_w)^(1/3) / mu rho0^(4/3) (WSM6 qck1)."
    },
    "pacrr": {
      "type": "unknown",
      "units": "1/(m^(19/5)*s)",
      "description": "Accretion coefficient pi n0r a Gamma(3 + b) E_rc / 4 (WSM6 pacrr); units for b = 4/5."
    },
    "precr1": {
      "type": "unknown",
      "units": "1/m^4",
      "description": "Rain evaporation coefficient of the non-ventilated term, 2 pi n0r a_v (WSM6 precr1)."
    },
    "precr2": {
      "type": "unknown",
      "units": "1/(m^(39/10)*s^(1/2))",
      "description": "Rain evaporation coefficient of the ventilated term, 2 pi n0r b_v a^(1/2) Gamma(2.5 + b/2) (WSM6 precr2); units for b = 4/5."
    },
    "f_diff": {
      "type": "unknown",
      "units": "s/m^2",
      "shape": [
        "lev"
      ],
      "description": "Diffusional-growth denominator rho xl^2/(ka r_v T^2) + 1/(qsat Dv) (WSM6 work1(:,:,1))."
    },
    "praut": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Autoconversion rate of cloud water to rain, unlimited (HDC eq. 16)."
    },
    "praut_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Autoconversion rate after the kernel's time-step limiter min(praut, qc/dtcld) (WSM6 praut as applied)."
    },
    "pracw": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion rate of cloud water by rain, unlimited (HL eq. A40)."
    },
    "pracw_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion rate after the kernel's time-step limiter min(pracw, qc/dtcld) (WSM6 pracw as applied)."
    },
    "prevp": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Rain evaporation (negative) / condensation (positive) rate, unlimited (HDC eq. 14)."
    },
    "satdt": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Vapor excess over saturation per sub-step, (max(qv, qmin) - qsat)/dtcld (WSM6 satdt)."
    },
    "prevp_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Rain evaporation/condensation rate after the kernel's time-step limiters (WSM6 prevp as applied)."
    }
  },
  "equations": [
    {
      "lhs": "qv",
      "rhs": {
        "op": "input_qv",
        "args": []
      }
    },
    {
      "lhs": "qc",
      "rhs": {
        "op": "input_qc",
        "args": []
      }
    },
    {
      "lhs": "qsat",
      "rhs": {
        "op": "input_qsat",
        "args": []
      }
    },
    {
      "lhs": "rh",
      "rhs": {
        "op": "input_rh",
        "args": []
      }
    },
    {
      "lhs": "xl",
      "rhs": {
        "op": "input_xl",
        "args": []
      }
    },
    {
      "lhs": "qc0",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  {
                    "op": "const",
                    "args": [],
                    "value": 4,
                    "units": "1"
                  },
                  {
                    "op": "const",
                    "args": [],
                    "value": 3,
                    "units": "1"
                  }
                ]
              },
              "wrf.piconst",
              "wrf.rhowater",
              {
                "op": "^",
                "args": [
                  "par.r0",
                  3
                ]
              },
              "par.xncr"
            ]
          },
          "wrf.rhoair0"
        ]
      }
    },
    {
      "lhs": "qck1",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  "par.autoconv_coef",
                  "par.g_autoconv",
                  "par.peaut"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "par.xncr",
                          "wrf.rhowater"
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          1,
                          3
                        ]
                      }
                    ]
                  },
                  "par.xmyu"
                ]
              }
            ]
          },
          {
            "op": "^",
            "args": [
              "wrf.rhoair0",
              {
                "op": "/",
                "args": [
                  4,
                  3
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "pacrr",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "wrf.piconst",
              "par.n0r",
              "par.avtr",
              "par.g3pbr",
              "par.eacrr"
            ]
          },
          {
            "op": "const",
            "args": [],
            "value": 4,
            "units": "1"
          }
        ]
      }
    },
    {
      "lhs": "precr1",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "const",
            "args": [],
            "value": 2,
            "units": "1"
          },
          "wrf.piconst",
          "par.n0r",
          "par.vent_a"
        ]
      }
    },
    {
      "lhs": "precr2",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "const",
            "args": [],
            "value": 2,
            "units": "1"
          },
          "wrf.piconst",
          "par.n0r",
          "par.vent_b",
          {
            "op": "sqrt",
            "args": [
              "par.avtr"
            ]
          },
          "par.g5pbro2"
        ]
      }
    },
    {
      "lhs": "f_diff",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "diffusional_growth_denominator",
        "bindings": {
          "L": "xl",
          "T": "sd.T",
          "rho": "sd.rho",
          "ka": "sd.ka",
          "r_v": "wrf.r_v",
          "qsat": "qsat",
          "Dv": "sd.Dv"
        }
      }
    },
    {
      "lhs": "praut",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "hdc_autoconversion",
        "bindings": {
          "qc": "qc",
          "qc0": "qc0",
          "qck1": "qck1"
        }
      }
    },
    {
      "lhs": "praut_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "praut",
          "q": "qc",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pracw",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "accretion_of_cloud_by_rain",
        "bindings": {
          "qc": "qc",
          "qr": "sd.qr",
          "rslope3": "sd.rslope3_r",
          "rslopeb": "sd.rslopeb_r",
          "pacrr": "pacrr",
          "denfac": "sd.denfac",
          "qr_min": "par.qcrmin",
          "qc_min": "par.qmin"
        }
      }
    },
    {
      "lhs": "pracw_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "pracw",
          "q": "qc",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "prevp",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "rain_evaporation",
        "bindings": {
          "qr": "sd.qr",
          "rh": "rh",
          "rslope2": "sd.rslope2_r",
          "coeres": "sd.coeres_r",
          "f_vent": "sd.f_vent",
          "f_diff": "f_diff",
          "precr1": "precr1",
          "precr2": "precr2"
        }
      }
    },
    {
      "lhs": "satdt",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "-",
            "args": [
              {
                "op": "max",
                "args": [
                  "qv",
                  "par.qmin"
                ]
              },
              "qsat"
            ]
          },
          "dtcld"
        ]
      }
    },
    {
      "lhs": "prevp_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "rain_evaporation_limiter",
        "bindings": {
          "prevp": "prevp",
          "qr": "sd.qr",
          "satdt": "satdt",
          "dt": "dtcld"
        }
      }
    }
  ],
  "tests": [
    {
      "id": "qss_step250_row23_col24_mature_warm_rain",
      "description": "Reference: WRF 4.8 em_quarter_ss idealized supercell (GNU real32 build, dx = 2 km, dt = 12 s, 40 layers, WSM6 only, no radiation/surface physics) dumped by the instrumented ctessum-claude/WRF fork (module_esm_dump with esm_dump_inner hooks inside mp_wsm6_run of the ctessum-claude/MMM-physics fork, commit 52cfbd7) and replayed through the real64 (kind_phys = real64) standalone kernels/wsm6_driver at the WRF step. The test is POINTWISE and step-free: the inputs are the evaluation state the kernel dumps immediately before its warm-rain block (t_rates, q_rates, qc_rates, qr_rates: the state after the sub-step's sedimentation, melting and freezing; den and p: kernel arguments; qsat_w, rh_w, xl: the start-of-sub-step saturation block, see saturation.esm), the expected values are the process rates the kernel dumps right after evaluating them (`<rate>_raw`: after each process's own time-step limiter, before the mass-conservation rescaling) and the intermediates rslope*, work1 (f_diff), work2 (f_vent), denfac and the mp_wsm6_init coefficients, all taken from the real64 replay. No small-dt replay is used because WSM6's increments are not rate x dt (EqWeFiC FORTRAN_BUGS.md note N3). Real64 replay vs real32 in-model dump (compare_dump.py): 1.5e-7 (praut), 8e-7 (pracw), 7.5e-6 (prevp), 3-4e-7 (rslope*), 1.5e-6 (work1), 3.6e-7 (work2); the real32 driver reproduces the dump bit-for-bit. Residual mismatch between this component and the real64 kernel comes from the kernel's default-real literals and the real32 WRF constants it receives (bvtr = 0.800000011920929, avtr = 841.9000244, den0 = 1.27999997, cpv = 1846.4000244, rv = 461.6000061, .104, 9.8, .55, .78, .31, 1.496e-6, 8.794e-5, 1.414e3), which this component takes at their nominal values from lib/wrf_constants.esm and wsm6_parameters.esm (EqWeFiC FORTRAN_BUGS.md note N2-style rounding); measured with zero tolerances over all four tests it is <= 4.1e-7 relative in the rates (praut; pracw 1.2e-7, prevp 2.1e-7), 1.9e-7 in the coefficients (qck1), 2e-7 of the column maximum in f_diff, 1e-7 in f_vent and <= 9e-8 in rslope*, denfac. Tolerances are set 5-10x above the measured residual: relative 1e-6 on the mp_wsm6_init coefficients and on every spot check, absolute Linf_error bounds on the whole columns at 1e-6 of each column's maximum. The unlimited rates praut, pracw, prevp are the physics and are spot-checked at layers where the kernel's limiter is provably inactive (there the dumped `<rate>_raw` equals the unlimited rate); the limited observeds praut_lim, pracw_lim, prevp_lim are compared with the dumped `<rate>_raw` over the whole column. Regime: supercell step 250 (t = 50 min), tile row j = 23, tile column i = 24 (the column with the strongest warm-rain rates): qc up to 2.4e-3, qr up to 1.3e-2 kg/kg, autoconversion active in layers 3-18 (qc > qc0), accretion and rain evaporation/condensation in layers 1-16 (rain present), rh_w 0.68-1.36 so prevp changes sign within the column, freezing level at layer 9. No limiter is active anywhere in the column (checked in the dump: no praut/pracw equals qc/dtcld and no prevp equals -qr/dtcld or satdt/2), so the whole `<rate>_raw` columns equal the unlimited rates.",
      "parameter_overrides": {
        "dtcld": 12.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/qss_step250_row23_col24_mature_warm_rain_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "sd.pidn0r",
          "time": 0.0,
          "expected": 25132741928.100586,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r_max",
          "time": 0.0,
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qc0",
          "time": 0.0,
          "expected": 0.0005026548609702604,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qck1",
          "time": 0.0,
          "expected": 6.773894126490344,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "pacrr",
          "time": 0.0,
          "expected": 24813389640.68711,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr1",
          "time": 0.0,
          "expected": 39207075.969729885,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr2",
          "time": 0.0,
          "expected": 825851896.7563319,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.074297648601964,
                    1.0988758165188706,
                    1.1288867811848777,
                    1.1602700614599697,
                    1.192123954468512,
                    1.2246820558855798,
                    1.2582500928449838,
                    1.292808506687401,
                    1.3283037231725008,
                    1.3645763776496205,
                    1.4020583602973977,
                    1.4396854385640094,
                    1.4835556358342181,
                    1.5248115440101326,
                    1.5664510609796232,
                    1.6091176379658874,
                    1.6525457933489218,
                    1.6967181474622186,
                    1.74166539824332,
                    1.787388938078431,
                    1.833815931787568,
                    1.8819464686130778,
                    1.930171827665902,
                    1.9789910276164668,
                    2.0287444851154315,
                    2.08004478930757,
                    2.1338844217674344,
                    2.192584031512916,
                    2.272919650733487,
                    2.4071314861423874,
                    2.517537815782692,
                    2.628772485136029,
                    2.7445896462038344,
                    2.862603538137479,
                    2.982749200059628,
                    3.1061754351938746,
                    3.2347614364631796,
                    3.3704631345827436,
                    3.515037802394403,
                    3.669399516419166
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 4e-06,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    7.9906646804699e-05,
                    0.00010344421944512668,
                    0.00021317834431825756,
                    0.0003944255263410482,
                    0.0004749145060720375,
                    0.0005322665799138319,
                    0.0005865828066762028,
                    0.0006378598144903875,
                    0.000680213262012178,
                    0.0007167133495901135,
                    0.000748229217723808,
                    0.000731039049265215,
                    0.0005477001284392731,
                    0.0003818205211059693,
                    0.00010327801509185513,
                    5.158844364893619e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0005273103263606614,
                    0.0006482834490548203,
                    0.0011560973990689856,
                    0.0018913502902156607,
                    0.0021942813327791373,
                    0.0024038276134050246,
                    0.0025981452386019876,
                    0.0027783065045619247,
                    0.0029249337807164357,
                    0.003049835094343676,
                    0.0031566591719503065,
                    0.003098506584138366,
                    0.0024594286924326633,
                    0.0018428389041946107,
                    0.0006474500348220588,
                    0.0003715710671083134,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 3e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope2_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    6.385072203570913e-09,
                    1.0700706536611525e-08,
                    4.544500648627358e-08,
                    1.5557149582941292e-07,
                    2.2554378807764737e-07,
                    2.833077120931676e-07,
                    3.4407938908813156e-07,
                    4.068651429417116e-07,
                    4.626900818172478e-07,
                    5.136780254806803e-07,
                    5.598469622555817e-07,
                    5.344180915505894e-07,
                    2.999754306923963e-07,
                    1.4578691033763395e-07,
                    1.0666348401313457e-08,
                    2.661367518119465e-09,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope3_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    5.10209709393242e-13,
                    1.106926235191144e-12,
                    9.687891240276277e-12,
                    6.136136912618038e-11,
                    1.071140167125122e-10,
                    1.507952269790429e-10,
                    2.0183105377074944e-10,
                    2.5952292459940517e-10,
                    3.1472792985359166e-10,
                    3.6815989825309403e-10,
                    4.188938546135442e-10,
                    3.9068049355727353e-10,
                    1.6429658191885172e-10,
                    5.5664434075544614e-11,
                    1.101599291165836e-12,
                    1.3729580823761518e-13,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-15,
            "rel": 0.0
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    8026923.628296606,
                    8724937.277866924,
                    8862682.386295747,
                    8840272.999362536,
                    8896180.11765483,
                    9029443.909470104,
                    9205681.067335943,
                    9435431.52079011,
                    9739340.73215329,
                    10166408.14029887,
                    10686235.875643294,
                    11686565.685692739,
                    12306627.362419438,
                    12357103.654849898,
                    13752494.88233852,
                    15577013.497022197,
                    17987442.01666145,
                    21417462.378376856,
                    26307490.85644968,
                    33299710.65183302,
                    43937031.56645844,
                    59202770.64996356,
                    79919954.785101,
                    115186361.15481491,
                    173031421.44883773,
                    267062083.79733422,
                    409256740.2904048,
                    591973896.5522459,
                    518819066.56359154,
                    135112867.36483318,
                    76686559.57602045,
                    49289149.418583125,
                    33082964.099474166,
                    24305543.16126555,
                    19468250.79815123,
                    16628945.578797702,
                    14734741.231603855,
                    13245944.358569387,
                    11909106.520231215,
                    10719542.821695829
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1000.0,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    215.66746749988326,
                    214.99770293889614,
                    212.99754010605017,
                    210.71883066670142,
                    208.55202995290898,
                    206.47645846783593,
                    204.43375007890464,
                    202.4288932846614,
                    200.47333917478738,
                    198.59808883035583,
                    196.73813657764694,
                    195.0666605339713,
                    192.95448778712415,
                    190.87965610040038,
                    189.33757212213962,
                    187.81505562441393,
                    186.35779808079897,
                    185.01291560347877,
                    183.76476594533966,
                    182.5988136845486,
                    181.52434655680216,
                    180.49965470159694,
                    179.47912823632174,
                    178.63969031128053,
                    177.89162032668648,
                    177.16837338433513,
                    176.34192828880916,
                    175.21225631432188,
                    172.1169989746095,
                    164.42380794185368,
                    159.77840085288665,
                    155.65967372473284,
                    151.74328181824455,
                    148.20338511239007,
                    145.01879197500634,
                    142.09679500102663,
                    139.32346863356622,
                    136.60782183194635,
                    133.89246707329647,
                    131.1778088005834
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 0.0002,
            "rel": 0.0
          }
        },
        {
          "variable": "praut_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    1.9357958410801186e-07,
                    1.5774301493694098e-06,
                    3.3410524737266776e-06,
                    4.5624024655531545e-06,
                    4.776001900199129e-06,
                    3.925067850146925e-06,
                    2.668110856689126e-06,
                    1.6133035731154066e-06,
                    8.784625818746462e-07,
                    6.284418778649147e-07,
                    3.302129684531748e-07,
                    1.7435399076357076e-07,
                    1.745086051384306e-07,
                    1.9620485800765876e-07,
                    1.9953221741739934e-07,
                    1.6882265722717114e-07,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pracw_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    3.712819835883861e-15,
                    1.786532330414269e-12,
                    1.8341137124693437e-07,
                    4.800049279886456e-06,
                    1.3777336674382236e-05,
                    2.4946501079627984e-05,
                    3.7812017892275785e-05,
                    4.911112058600663e-05,
                    5.459983662964868e-05,
                    5.5146213362748744e-05,
                    5.142366138469022e-05,
                    4.187624920846814e-05,
                    1.0932496007256233e-05,
                    2.16952438039549e-06,
                    1.5502256262088853e-08,
                    1.1976954087040937e-09,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-10,
            "rel": 0.0
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    -1.919336376612395e-08,
                    -5.046321260634071e-09,
                    2.72013353462863e-08,
                    1.9365009457152554e-07,
                    4.049782907551879e-07,
                    6.894363749532956e-07,
                    1.0755427116322918e-06,
                    1.5630348696389676e-06,
                    2.0883337312921383e-06,
                    2.6345260559294498e-06,
                    3.1747321039452112e-06,
                    3.34692873339902e-06,
                    1.5919515457107215e-06,
                    4.817579702512617e-07,
                    1.9406031082072022e-08,
                    3.774408074586362e-09,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 3
          },
          "expected": 1.9357958410801186e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 3.925067850146925e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 6.284418778649147e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 18
          },
          "expected": 1.6882265722717114e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 3.712819835883861e-15,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 5
          },
          "expected": 1.3777336674382236e-05,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 5.5146213362748744e-05,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.1976954087040937e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": -1.919336376612395e-08,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 4
          },
          "expected": 1.9365009457152554e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 2.0883337312921383e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 3.774408074586362e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 7.9906646804699e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 0.0006378598144903875,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 5.158844364893619e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 30
          },
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 0.0005273103263606614,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 0.0027783065045619247,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 0.0003715710671083134,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 8026923.628296606,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 10166408.14029887,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 33299710.65183302,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 10719542.821695829,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 215.66746749988326,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 198.59808883035583,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 182.5988136845486,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 131.1778088005834,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 1.074297648601964,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 1.787388938078431,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 3.669399516419166,
          "tolerance": {
            "rel": 1e-06
          }
        }
      ]
    },
    {
      "id": "qss_step250_row22_col25_second_column",
      "description": "Reference: WRF 4.8 em_quarter_ss idealized supercell (GNU real32 build, dx = 2 km, dt = 12 s, 40 layers, WSM6 only, no radiation/surface physics) dumped by the instrumented ctessum-claude/WRF fork (module_esm_dump with esm_dump_inner hooks inside mp_wsm6_run of the ctessum-claude/MMM-physics fork, commit 52cfbd7) and replayed through the real64 (kind_phys = real64) standalone kernels/wsm6_driver at the WRF step. The test is POINTWISE and step-free: the inputs are the evaluation state the kernel dumps immediately before its warm-rain block (t_rates, q_rates, qc_rates, qr_rates: the state after the sub-step's sedimentation, melting and freezing; den and p: kernel arguments; qsat_w, rh_w, xl: the start-of-sub-step saturation block, see saturation.esm), the expected values are the process rates the kernel dumps right after evaluating them (`<rate>_raw`: after each process's own time-step limiter, before the mass-conservation rescaling) and the intermediates rslope*, work1 (f_diff), work2 (f_vent), denfac and the mp_wsm6_init coefficients, all taken from the real64 replay. No small-dt replay is used because WSM6's increments are not rate x dt (EqWeFiC FORTRAN_BUGS.md note N3). Real64 replay vs real32 in-model dump (compare_dump.py): 1.5e-7 (praut), 8e-7 (pracw), 7.5e-6 (prevp), 3-4e-7 (rslope*), 1.5e-6 (work1), 3.6e-7 (work2); the real32 driver reproduces the dump bit-for-bit. Residual mismatch between this component and the real64 kernel comes from the kernel's default-real literals and the real32 WRF constants it receives (bvtr = 0.800000011920929, avtr = 841.9000244, den0 = 1.27999997, cpv = 1846.4000244, rv = 461.6000061, .104, 9.8, .55, .78, .31, 1.496e-6, 8.794e-5, 1.414e3), which this component takes at their nominal values from lib/wrf_constants.esm and wsm6_parameters.esm (EqWeFiC FORTRAN_BUGS.md note N2-style rounding); measured with zero tolerances over all four tests it is <= 4.1e-7 relative in the rates (praut; pracw 1.2e-7, prevp 2.1e-7), 1.9e-7 in the coefficients (qck1), 2e-7 of the column maximum in f_diff, 1e-7 in f_vent and <= 9e-8 in rslope*, denfac. Tolerances are set 5-10x above the measured residual: relative 1e-6 on the mp_wsm6_init coefficients and on every spot check, absolute Linf_error bounds on the whole columns at 1e-6 of each column's maximum. The unlimited rates praut, pracw, prevp are the physics and are spot-checked at layers where the kernel's limiter is provably inactive (there the dumped `<rate>_raw` equals the unlimited rate); the limited observeds praut_lim, pracw_lim, prevp_lim are compared with the dumped `<rate>_raw` over the whole column. Regime: supercell step 250, tile row j = 22, tile column i = 25: the strongest autoconversion of the reference run (praut up to 1.0e-5 kg/kg/s in layers 3-19), accretion up to 7.0e-5 and rain evaporation/condensation in layers 1-16, rh_w 0.70-1.44. No limiter active.",
      "parameter_overrides": {
        "dtcld": 12.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/qss_step250_row22_col25_second_column_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "sd.pidn0r",
          "time": 0.0,
          "expected": 25132741928.100586,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r_max",
          "time": 0.0,
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qc0",
          "time": 0.0,
          "expected": 0.0005026548609702604,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qck1",
          "time": 0.0,
          "expected": 6.773894126490344,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "pacrr",
          "time": 0.0,
          "expected": 24813389640.68711,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr1",
          "time": 0.0,
          "expected": 39207075.969729885,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr2",
          "time": 0.0,
          "expected": 825851896.7563319,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.074025297697386,
                    1.0987267483437506,
                    1.1289690560444792,
                    1.1603510611021222,
                    1.192350992337824,
                    1.2250040483265952,
                    1.258421320437587,
                    1.2926926614156569,
                    1.3278852262826213,
                    1.3638983686227832,
                    1.4011674906802092,
                    1.438910350795757,
                    1.4819530620592738,
                    1.523477806894931,
                    1.5653034081449397,
                    1.6082845578269638,
                    1.6522289248533488,
                    1.697133408840694,
                    1.7429764231246212,
                    1.7896871303839719,
                    1.8370840861737252,
                    1.8861539081703533,
                    1.9352169745712706,
                    1.9845217377577526,
                    2.0343709423457703,
                    2.085367242166731,
                    2.1369078569299558,
                    2.1911905199664905,
                    2.2597594029856896,
                    2.3871007159118562,
                    2.510083773249196,
                    2.629492764476209,
                    2.7489568614160484,
                    2.8676574462180784,
                    2.9863905756497466,
                    3.1075948183954445,
                    3.2342685104519178,
                    3.3689730209323296,
                    3.5135693464967437,
                    3.6689180513052677
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 4e-06,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0001235998623938123,
                    9.574795661677236e-05,
                    0.00013656219946635347,
                    0.00022475180416360406,
                    0.00032990292757093155,
                    0.0004131917715769635,
                    0.00048025755437094877,
                    0.0005308300854100411,
                    0.0005660842792845646,
                    0.0005977706522307166,
                    0.0006458337796417643,
                    0.0006513780237418175,
                    0.0004920813180136228,
                    0.00034371380881194347,
                    0.00015053090253255985,
                    6.276541872099981e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0007475054152246396,
                    0.0006094015627109753,
                    0.0008095885480018096,
                    0.0012060422044175957,
                    0.0016394904607455049,
                    0.001963004481439728,
                    0.00221400870661246,
                    0.0023986362025272927,
                    0.002525252656846689,
                    0.002637713566700722,
                    0.002806057507498271,
                    0.00282531219331701,
                    0.0022575088543431722,
                    0.001694172168763481,
                    0.0008751862519829711,
                    0.0004346866418082571,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 3e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope2_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.5276925983769335e-08,
                    9.167671196287321e-09,
                    1.864923432308811e-08,
                    5.0513373474795035e-08,
                    1.088359416198713e-07,
                    1.7072744009890957e-07,
                    2.306473185303648e-07,
                    2.817805795764315e-07,
                    3.204514112531249e-07,
                    3.573297526683363e-07,
                    4.1710127092636695e-07,
                    4.242933298137958e-07,
                    2.421440235380242e-07,
                    1.1813918236801323e-07,
                    2.2659552617267033e-08,
                    3.939497787222433e-09,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope3_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.888225949394345e-12,
                    8.77785783978952e-13,
                    2.546780457524324e-12,
                    1.1352971822850126e-11,
                    3.5905295765334535e-11,
                    7.054317343126836e-11,
                    1.1077011711961022e-10,
                    1.49577609123448e-10,
                    1.814025061849468e-10,
                    2.13601239313992e-10,
                    2.6937809029575913e-10,
                    2.763753506609455e-10,
                    1.1915455025171266e-10,
                    4.060606834163862e-11,
                    3.4109629064612353e-12,
                    2.472642281654682e-13,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-15,
            "rel": 0.0
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    8090063.467720749,
                    8781538.91144324,
                    8877591.728959419,
                    8869748.65339145,
                    8935489.489595287,
                    9086571.831618795,
                    9321551.082805023,
                    9647019.199903,
                    10077803.490531059,
                    10650120.443616102,
                    11317738.909417909,
                    12473147.038612567,
                    13387144.98696275,
                    13512006.360040346,
                    14981514.526179355,
                    16993945.485875603,
                    19492972.45739197,
                    22901663.798043083,
                    27629618.99680331,
                    34186358.17104824,
                    44103092.85720208,
                    58095553.77235058,
                    75942047.84966688,
                    106105818.88844089,
                    156093453.37821534,
                    240052136.76767537,
                    388248477.2643209,
                    631099845.6329187,
                    746996598.0217602,
                    218993570.386977,
                    90225070.8626191,
                    48388277.5402721,
                    30267637.449642397,
                    22047905.39329865,
                    18167709.223729122,
                    16151399.908548076,
                    14793457.750405848,
                    13527584.031027673,
                    12166017.156746767,
                    10795997.545564944
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1000.0,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    215.79314433890104,
                    215.0877396843175,
                    213.00465475828636,
                    210.74287611205034,
                    208.57999392942895,
                    206.5155851916542,
                    204.52861233330188,
                    202.60629896746562,
                    200.74183357468416,
                    198.94699194533598,
                    197.14732894501742,
                    195.47623684539383,
                    193.338800449876,
                    191.3561811338405,
                    189.80841013509362,
                    188.25245917996023,
                    186.71619862037196,
                    185.26394884984785,
                    183.8928417336973,
                    182.59243957534682,
                    181.38964495661412,
                    180.2611509882808,
                    179.12072156877056,
                    178.1805830206925,
                    177.38252470291394,
                    176.6766754335836,
                    176.0917307632946,
                    175.4274261700719,
                    173.48556323838395,
                    166.2699414387448,
                    160.40587316519597,
                    155.59318109065765,
                    151.406241500313,
                    147.83526247306878,
                    144.76266829712074,
                    141.99406678167932,
                    139.34268469831076,
                    136.68593404921228,
                    133.96841784735756,
                    131.20215802851985
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 0.0002,
            "rel": 0.0
          }
        },
        {
          "variable": "praut_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    2.1644457486470636e-07,
                    1.8282070564241106e-06,
                    4.707902061271937e-06,
                    7.678546272027564e-06,
                    9.601382769876943e-06,
                    1.026608762315614e-05,
                    9.877315337016933e-06,
                    9.01332121258206e-06,
                    6.697446775548392e-06,
                    5.055526945262356e-06,
                    2.906096830384476e-06,
                    1.3284117913776648e-06,
                    7.670560290149495e-07,
                    5.184366148630599e-07,
                    4.227306426057178e-07,
                    3.2447046455267913e-07,
                    2.007107254006031e-07,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pracw_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.5713017030890004e-15,
                    1.6297367753930926e-12,
                    3.5421773662809364e-08,
                    6.03311894083013e-07,
                    3.997697793983836e-06,
                    1.1915243748851273e-05,
                    2.3856791578943517e-05,
                    3.689515702468493e-05,
                    4.75955464893726e-05,
                    5.781407891439986e-05,
                    7.016068811270063e-05,
                    6.597775040018314e-05,
                    1.846374675016266e-05,
                    3.4707658937654375e-06,
                    1.2229255405812236e-07,
                    3.824820071294295e-09,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-10,
            "rel": 0.0
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    -5.3380300350291026e-08,
                    -2.6670253952367282e-09,
                    8.633837187583226e-09,
                    4.573833699189972e-08,
                    1.7106992653602842e-07,
                    4.031150848105375e-07,
                    7.397916955121329e-07,
                    1.1375949763902689e-06,
                    1.538593794888291e-06,
                    1.9594875092941618e-06,
                    2.569750250341392e-06,
                    2.9150727441379584e-06,
                    1.4004575928398127e-06,
                    4.2355065516858433e-07,
                    5.42714848562475e-08,
                    6.607388330064374e-09,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 3
          },
          "expected": 2.1644457486470636e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 9.01332121258206e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 19
          },
          "expected": 2.007107254006031e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 2
          },
          "expected": 1.6297367753930926e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 3.689515702468493e-05,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 3.824820071294295e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 2
          },
          "expected": -2.6670253952367282e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 1.1375949763902689e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 6.607388330064374e-09,
          "tolerance": {
            "rel": 2e-06
          }
        }
      ]
    },
    {
      "id": "qss_step200_row20_col27_early_storm_limiter_active",
      "description": "Reference: WRF 4.8 em_quarter_ss idealized supercell (GNU real32 build, dx = 2 km, dt = 12 s, 40 layers, WSM6 only, no radiation/surface physics) dumped by the instrumented ctessum-claude/WRF fork (module_esm_dump with esm_dump_inner hooks inside mp_wsm6_run of the ctessum-claude/MMM-physics fork, commit 52cfbd7) and replayed through the real64 (kind_phys = real64) standalone kernels/wsm6_driver at the WRF step. The test is POINTWISE and step-free: the inputs are the evaluation state the kernel dumps immediately before its warm-rain block (t_rates, q_rates, qc_rates, qr_rates: the state after the sub-step's sedimentation, melting and freezing; den and p: kernel arguments; qsat_w, rh_w, xl: the start-of-sub-step saturation block, see saturation.esm), the expected values are the process rates the kernel dumps right after evaluating them (`<rate>_raw`: after each process's own time-step limiter, before the mass-conservation rescaling) and the intermediates rslope*, work1 (f_diff), work2 (f_vent), denfac and the mp_wsm6_init coefficients, all taken from the real64 replay. No small-dt replay is used because WSM6's increments are not rate x dt (EqWeFiC FORTRAN_BUGS.md note N3). Real64 replay vs real32 in-model dump (compare_dump.py): 1.5e-7 (praut), 8e-7 (pracw), 7.5e-6 (prevp), 3-4e-7 (rslope*), 1.5e-6 (work1), 3.6e-7 (work2); the real32 driver reproduces the dump bit-for-bit. Residual mismatch between this component and the real64 kernel comes from the kernel's default-real literals and the real32 WRF constants it receives (bvtr = 0.800000011920929, avtr = 841.9000244, den0 = 1.27999997, cpv = 1846.4000244, rv = 461.6000061, .104, 9.8, .55, .78, .31, 1.496e-6, 8.794e-5, 1.414e3), which this component takes at their nominal values from lib/wrf_constants.esm and wsm6_parameters.esm (EqWeFiC FORTRAN_BUGS.md note N2-style rounding); measured with zero tolerances over all four tests it is <= 4.1e-7 relative in the rates (praut; pracw 1.2e-7, prevp 2.1e-7), 1.9e-7 in the coefficients (qck1), 2e-7 of the column maximum in f_diff, 1e-7 in f_vent and <= 9e-8 in rslope*, denfac. Tolerances are set 5-10x above the measured residual: relative 1e-6 on the mp_wsm6_init coefficients and on every spot check, absolute Linf_error bounds on the whole columns at 1e-6 of each column's maximum. The unlimited rates praut, pracw, prevp are the physics and are spot-checked at layers where the kernel's limiter is provably inactive (there the dumped `<rate>_raw` equals the unlimited rate); the limited observeds praut_lim, pracw_lim, prevp_lim are compared with the dumped `<rate>_raw` over the whole column. Regime: supercell step 200 (t = 40 min), tile row j = 20, tile column i = 27: an early, weak warm-rain column (praut in layers 8-11 only, pracw up to 1.5e-7 in layers 6-15). Rain is present but below qcrmin in layers 1, 2 and 4 (0 < qr <= 1e-9), so there the inverse slope is held at rslope_max and rain evaporation is capped by the kernel's -qr/dtcld limiter (layers 1-5 are limiter-active in the dump); prevp_lim is checked over the whole column and at those layers explicitly, the unlimited prevp only at limiter-inactive layers.",
      "parameter_overrides": {
        "dtcld": 12.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/qss_step200_row20_col27_early_storm_limiter_active_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "sd.pidn0r",
          "time": 0.0,
          "expected": 25132741928.100586,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r_max",
          "time": 0.0,
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qc0",
          "time": 0.0,
          "expected": 0.0005026548609702604,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qck1",
          "time": 0.0,
          "expected": 6.773894126490344,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "pacrr",
          "time": 0.0,
          "expected": 24813389640.68711,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr1",
          "time": 0.0,
          "expected": 39207075.969729885,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr2",
          "time": 0.0,
          "expected": 825851896.7563319,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.0750203036195107,
                    1.1024424290355563,
                    1.1299036142992922,
                    1.157334391714791,
                    1.1860695348254628,
                    1.215399527824106,
                    1.2445859158273895,
                    1.2775546186387448,
                    1.310449903249298,
                    1.3432995581910092,
                    1.3785436363173034,
                    1.4166935638729212,
                    1.4564949379102992,
                    1.4971951471028861,
                    1.5386808475960996,
                    1.5806756773014847,
                    1.6231206263164528,
                    1.6671293363753246,
                    1.7127263147696359,
                    1.7590371364943087,
                    1.8066217926720392,
                    1.855911527705402,
                    1.9083092545765066,
                    1.9663640496654045,
                    2.0321830170759503,
                    2.1032550345830083,
                    2.1819460849979735,
                    2.270344336518286,
                    2.3609959322875285,
                    2.4529588901240698,
                    2.5463586146685633,
                    2.641394049992052,
                    2.7390498540526536,
                    2.8416113951110527,
                    2.951759414937571,
                    3.0716483885355927,
                    3.202381560908287,
                    3.344247490345262,
                    3.497268052320202,
                    3.6627145270031605
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 4e-06,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.25e-05,
                    1.25e-05,
                    1.4287005368204459e-05,
                    1.25e-05,
                    2.1234395302315153e-05,
                    2.9404511314935513e-05,
                    0.00011988593107710556,
                    0.00016099935971568518,
                    0.0001720678323724581,
                    0.00013046322147922357,
                    5.7839865555198295e-05,
                    5.813531173971759e-05,
                    9.94264837931543e-05,
                    8.153689365069769e-05,
                    5.148463431639595e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.000133031016193978,
                    0.00011954404638495534,
                    0.0001826551251580966,
                    0.00023699059910693606,
                    0.0007294819152408261,
                    0.0009235475783563429,
                    0.0009740016784817084,
                    0.000780531495721693,
                    0.00040717562279427483,
                    0.0004088386579556176,
                    0.0006280606972745851,
                    0.0005358994123222018,
                    0.0003709727887286696,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 3e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope2_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.5625e-10,
                    1.5625e-10,
                    2.0411852239110304e-10,
                    1.5625e-10,
                    4.508995438549839e-10,
                    8.646252856701706e-10,
                    1.4372636470224505e-08,
                    2.5920793828860594e-08,
                    2.960733893735634e-08,
                    1.702065215873694e-08,
                    3.345450047443414e-09,
                    3.3797144710741457e-09,
                    9.885625679470373e-09,
                    6.648265026205185e-09,
                    2.6506675706930153e-09,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope3_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.953125e-15,
                    1.953125e-15,
                    2.9162424251516512e-15,
                    1.953125e-15,
                    9.574579155850315e-15,
                    2.542388399566788e-14,
                    1.7230769052656286e-12,
                    4.173231209768839e-12,
                    5.094470633267582e-12,
                    2.2205691123061223e-12,
                    1.9350038096575883e-13,
                    1.964807543671302e-13,
                    9.828930014050509e-13,
                    5.42078878403345e-13,
                    1.364686505714595e-13,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-15,
            "rel": 0.0
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    8028755.057886114,
                    8333824.311371038,
                    8647775.752336368,
                    8958617.951863753,
                    9285382.856544988,
                    9872659.790045928,
                    10960844.380185355,
                    11595158.570640009,
                    12554413.058061466,
                    14021069.38172349,
                    15416313.82862994,
                    16470215.720915014,
                    17545762.877823524,
                    18977982.74577833,
                    20949700.957248982,
                    23815618.693494163,
                    27999624.87120814,
                    33198437.278835714,
                    39615783.8091453,
                    49075857.465912044,
                    62320581.400102615,
                    80192451.71858807,
                    100787779.5344526,
                    115739767.1936047,
                    115525067.84632443,
                    108191241.01576096,
                    90563076.82898295,
                    65867490.88836875,
                    50469045.523618914,
                    41529835.17538319,
                    36507218.383736305,
                    34124157.05041371,
                    33327870.50474309,
                    32734973.66793616,
                    31067216.816504516,
                    27806345.19512362,
                    23458770.089004576,
                    18957940.744431123,
                    14986748.287757155,
                    11625572.149860196
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1000.0,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    215.63527112759914,
                    214.1715766474716,
                    212.55494269716348,
                    210.78402302516224,
                    208.9835178119438,
                    207.4951956890503,
                    206.4392914149101,
                    204.68811094651946,
                    203.10379242088226,
                    201.72284296989707,
                    200.11869322337444,
                    198.22616050324052,
                    196.2794948154758,
                    194.4128961843098,
                    192.64850078379916,
                    191.0283672641058,
                    189.5570294356823,
                    188.06342970468705,
                    186.55099020140216,
                    185.1817713634307,
                    183.86917331669034,
                    182.55574430803452,
                    181.07478341351563,
                    179.14703115751306,
                    176.59265582971324,
                    173.78072809190024,
                    170.52218776902382,
                    166.71309899088163,
                    163.163535841422,
                    159.94492422680602,
                    157.02439387849464,
                    154.3694282593483,
                    151.89563712719905,
                    149.44449981572748,
                    146.8644517179366,
                    144.0734022451641,
                    141.07831654399024,
                    137.9417701018318,
                    134.73773593287316,
                    131.4735667628829
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 0.0002,
            "rel": 0.0
          }
        },
        {
          "variable": "praut_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    1.9272702978443584e-07,
                    5.680485946643456e-07,
                    4.214273290321954e-07,
                    1.7353291842808245e-07,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pracw_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    6.88449156170289e-15,
                    2.748491602100046e-13,
                    7.129217251332897e-08,
                    1.4962344453906321e-07,
                    4.7138774208862334e-08,
                    1.5034490822789091e-09,
                    1.0241623226218556e-09,
                    6.031693974672861e-09,
                    2.512347697343544e-09,
                    3.473295471853768e-10,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-10,
            "rel": 0.0
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    -1.0259924402817779e-26,
                    -6.694481340582376e-13,
                    -8.70354728544243e-11,
                    -7.92960210142119e-12,
                    -4.679813645143914e-10,
                    -1.0179622179656236e-09,
                    -3.17362239002322e-09,
                    3.2767382721223283e-09,
                    5.6960147068556985e-09,
                    3.308759632994668e-09,
                    4.717566347522986e-10,
                    4.888994172957477e-10,
                    1.7597651332283274e-09,
                    1.013464354835134e-09,
                    2.999473816537237e-10,
                    1.0761152106690579e-11,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 1.9272702978443584e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praut",
          "time": 0.0,
          "coords": {
            "lev": 11
          },
          "expected": 1.7353291842808245e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 6
          },
          "expected": 6.88449156170289e-15,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracw",
          "time": 0.0,
          "coords": {
            "lev": 15
          },
          "expected": 3.473295471853768e-10,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 6
          },
          "expected": -1.0179622179656236e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 3.308759632994668e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.0761152106690579e-11,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": -1.0259924402817779e-26,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "coords": {
            "lev": 3
          },
          "expected": -8.70354728544243e-11,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "coords": {
            "lev": 5
          },
          "expected": -4.679813645143914e-10,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 4
          },
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 0.00013046322147922357,
          "tolerance": {
            "rel": 1e-06
          }
        }
      ]
    },
    {
      "id": "scm_call120_no_condensate_zero_rates",
      "description": "Reference: WRF 4.8 em_quarter_ss idealized supercell (GNU real32 build, dx = 2 km, dt = 12 s, 40 layers, WSM6 only, no radiation/surface physics) dumped by the instrumented ctessum-claude/WRF fork (module_esm_dump with esm_dump_inner hooks inside mp_wsm6_run of the ctessum-claude/MMM-physics fork, commit 52cfbd7) and replayed through the real64 (kind_phys = real64) standalone kernels/wsm6_driver at the WRF step. The test is POINTWISE and step-free: the inputs are the evaluation state the kernel dumps immediately before its warm-rain block (t_rates, q_rates, qc_rates, qr_rates: the state after the sub-step's sedimentation, melting and freezing; den and p: kernel arguments; qsat_w, rh_w, xl: the start-of-sub-step saturation block, see saturation.esm), the expected values are the process rates the kernel dumps right after evaluating them (`<rate>_raw`: after each process's own time-step limiter, before the mass-conservation rescaling) and the intermediates rslope*, work1 (f_diff), work2 (f_vent), denfac and the mp_wsm6_init coefficients, all taken from the real64 replay. No small-dt replay is used because WSM6's increments are not rate x dt (EqWeFiC FORTRAN_BUGS.md note N3). Real64 replay vs real32 in-model dump (compare_dump.py): 1.5e-7 (praut), 8e-7 (pracw), 7.5e-6 (prevp), 3-4e-7 (rslope*), 1.5e-6 (work1), 3.6e-7 (work2); the real32 driver reproduces the dump bit-for-bit. Residual mismatch between this component and the real64 kernel comes from the kernel's default-real literals and the real32 WRF constants it receives (bvtr = 0.800000011920929, avtr = 841.9000244, den0 = 1.27999997, cpv = 1846.4000244, rv = 461.6000061, .104, 9.8, .55, .78, .31, 1.496e-6, 8.794e-5, 1.414e3), which this component takes at their nominal values from lib/wrf_constants.esm and wsm6_parameters.esm (EqWeFiC FORTRAN_BUGS.md note N2-style rounding); measured with zero tolerances over all four tests it is <= 4.1e-7 relative in the rates (praut; pracw 1.2e-7, prevp 2.1e-7), 1.9e-7 in the coefficients (qck1), 2e-7 of the column maximum in f_diff, 1e-7 in f_vent and <= 9e-8 in rslope*, denfac. Tolerances are set 5-10x above the measured residual: relative 1e-6 on the mp_wsm6_init coefficients and on every spot check, absolute Linf_error bounds on the whole columns at 1e-6 of each column's maximum. The unlimited rates praut, pracw, prevp are the physics and are spot-checked at layers where the kernel's limiter is provably inactive (there the dumped `<rate>_raw` equals the unlimited rate); the limited observeds praut_lim, pracw_lim, prevp_lim are compared with the dumped `<rate>_raw` over the whole column. Regime: the em_scm_xy single-column run (mp = 6, dt = 60 s, 59 layers) at call 120 (step 60, 20:00 UTC) has no liquid condensate anywhere (qc = qr = 0, qi <= 5e-5), so every warm-rain rate must be exactly zero, the inverse slope equals rslope_max in every layer, and only the state-dependent intermediates (denfac, f_diff, f_vent) carry information. The component's lev axis has 40 layers (the supercell size, esm-spec 6.6 tests cannot rebind a metaparameter), so this test uses the lowest 40 of the 59 SCM layers; the rates are pointwise, so the truncation is exact.",
      "parameter_overrides": {
        "dtcld": 60.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/scm_call120_no_condensate_zero_rates_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "sd.pidn0r",
          "time": 0.0,
          "expected": 25132741928.100586,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r_max",
          "time": 0.0,
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qc0",
          "time": 0.0,
          "expected": 0.0005026548609702604,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "qck1",
          "time": 0.0,
          "expected": 6.773894126490344,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "pacrr",
          "time": 0.0,
          "expected": 24813389640.68711,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr1",
          "time": 0.0,
          "expected": 39207075.969729885,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "precr2",
          "time": 0.0,
          "expected": 825851896.7563319,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.denfac",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.0405973658526613,
                    1.0425709388950055,
                    1.0448538041574482,
                    1.0472789564529348,
                    1.049816155587038,
                    1.052456994040821,
                    1.0551994270508662,
                    1.0580445337593312,
                    1.0609945823697964,
                    1.064052070338877,
                    1.067219508937984,
                    1.0704977681791714,
                    1.0738806360326125,
                    1.077303463579879,
                    1.084140992328241,
                    1.093551664377981,
                    1.0991876781966248,
                    1.1049656396209935,
                    1.1109509161170106,
                    1.1171622723413854,
                    1.1236162338392661,
                    1.1303267727068882,
                    1.1373096727478578,
                    1.1445800887637476,
                    1.1521527727380338,
                    1.1600462822130808,
                    1.1678757941861255,
                    1.1760429783650443,
                    1.1845778643479985,
                    1.1935038844837065,
                    1.202850445054329,
                    1.2126435173640735,
                    1.2229155395837406,
                    1.2337016544377146,
                    1.2450392916678263,
                    1.2569666071225496,
                    1.2689077684003733,
                    1.2813285160161358,
                    1.294160708423875,
                    1.3065005309770057
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 4e-06,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05,
                    1.25e-05
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslopeb_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534,
                    0.00011954404638495534
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 3e-09,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope2_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10,
                    1.5625e-10
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.rslope3_r",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15,
                    1.953125e-15
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-15,
            "rel": 0.0
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    12517992.133937672,
                    12703791.310712745,
                    12861280.624327201,
                    13017864.416639041,
                    13179457.897916038,
                    13348713.256994095,
                    13527336.68612187,
                    13716784.584725967,
                    13918460.597531926,
                    14133837.424906842,
                    14364668.629377099,
                    14613172.963435967,
                    14883331.807364065,
                    15192998.794244168,
                    14319115.334942743,
                    12576160.64500912,
                    12437239.2155873,
                    12319882.903676461,
                    12208085.683908798,
                    12100099.395608619,
                    11995119.10488715,
                    11893308.852021435,
                    11794581.063923825,
                    11699417.653352609,
                    11608700.239315953,
                    11522451.078271609,
                    11459830.833936825,
                    11402850.02743076,
                    11351995.505405929,
                    11308225.297510203,
                    11271717.59567406,
                    11244201.543182738,
                    11226786.167405665,
                    11220910.118745424,
                    11228661.906597454,
                    11253120.58209607,
                    11423737.573184159,
                    11666138.799987303,
                    12023045.430579485,
                    12795345.650109466
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1000.0,
            "rel": 0.0
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    222.0768143962771,
                    222.0380488453342,
                    221.961422105995,
                    221.87300860143154,
                    221.77776810497807,
                    221.67740091479473,
                    221.57264781526675,
                    221.46385542448027,
                    221.35118965204023,
                    221.234768859336,
                    221.1147747497532,
                    220.9915203418611,
                    220.86632418934684,
                    220.74972039240632,
                    219.67966146156118,
                    217.66430151606926,
                    217.15822180729745,
                    216.6607335674825,
                    216.15493793097426,
                    215.63855751969587,
                    215.11019138771954,
                    214.569321873706,
                    214.0152343454284,
                    213.44762274502753,
                    212.8666259328099,
                    212.2713573416524,
                    211.66681580072242,
                    211.04689373610626,
                    210.41117200822973,
                    209.75928855938002,
                    209.09000761009835,
                    208.4034257952214,
                    207.69878187851677,
                    206.97543377717352,
                    206.2330188507215,
                    205.4717610959292,
                    204.80828092851536,
                    204.16027872300273,
                    203.55245527224776,
                    203.19940488955848
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 0.0002,
            "rel": 0.0
          }
        },
        {
          "variable": "praut_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pracw_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-10,
            "rel": 0.0
          }
        },
        {
          "variable": "prevp_lim",
          "time": 0.0,
          "reduce": "Linf_error",
          "expected": 0.0,
          "reference": {
            "op": "faq",
            "output_idx": [
              "k"
            ],
            "args": [],
            "ranges": {
              "k": {
                "from": "lev"
              }
            },
            "expr": {
              "op": "index",
              "args": [
                {
                  "op": "const",
                  "args": [],
                  "value": [
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 12517992.133937672,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 12100099.395608619,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_diff",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 12795345.650109466,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 222.0768143962771,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 215.63855751969587,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.f_vent",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 203.19940488955848,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "sd.rslope_r",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 1.25e-05,
          "tolerance": {
            "rel": 1e-06
          }
        }
      ]
    }
  ]
}