Version: dev

WSM6ColdAccretion

Collection (accretion) process rates between the six water species of the WRF single-moment 6-class microphysics scheme below and above freezing (WSM6; Hong and Lim 2006 appendix A; Lin et al. 1983; Rutledge and Hobbs 1983, 1984), transcribed from the cold-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): accretion of cloud ice by rain (praci), of rain by cloud ice (piacr), of cloud ice by snow (psaci) and by graupel (pgaci) -- all only below 0 C --, of cloud water by snow (psacw) and by graupel (pgacw) and their snow/graupel-weighted combination (paacw), of snow by rain (pracs, below 0 C), of rain by snow (psacr) and by graupel (pgacr), the eliminated snow-by-graupel term (pgacs = 0 since WRF V3.0, when snow and graupel received a common fall speed), and the enhanced melting of snow and graupel above 0 C by the sensible heat of the liquid water they collect (pseml, pgeml). Each collection rate is the geometric sweep-out of one species by another: pi/4 n0 |V_a - V_b| times a size-distribution kernel (collection_kernel_* templates) times the collected mixing ratio, with the collection efficiencies (eacrs = exp(-0.07 (T0 - T)) for ice, 1 for water) and WSM6's empirical reduction min(max(0, q_collector/q_collected), 1)^2 folded into the UNLIMITED rate because they are functions of the state alone. The kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step; pseml/pgeml are also floored at zero), exposed separately as <rate>_lim with the sub-step length dtcld as a parameter -- time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3); the mass-conservation rescaling applied afterwards is not part of this component. The size distributions, number concentrations and fall speeds are supplied by hydrometeor_slopes.esm mounted as subsystem `sd` (referenced as sd.<name>), exactly as the kernel evaluates them once per sub-step and reuses them here; cloud water qc and the sub-step dtcld are this component's own inputs. Scheme constants come from wsm6_parameters.esm (subsystem `par`), physical constants from lib/wrf_constants.esm (`wrf`). Consumer-supplied inputs are the rewrite-target ops `input_<name>` lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e) (esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.

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

Description

Collection (accretion) process rates between the six water species of the WRF single-moment 6-class microphysics scheme below and above freezing (WSM6; Hong and Lim 2006 appendix A; Lin et al. 1983; Rutledge and Hobbs 1983, 1984), transcribed from the cold-rain block of mp_wsm6_run in phys/physics_mmm/mp_wsm6.F90 (WRF 4.8, NCAR/MMM-physics): accretion of cloud ice by rain (praci), of rain by cloud ice (piacr), of cloud ice by snow (psaci) and by graupel (pgaci) – all only below 0 C –, of cloud water by snow (psacw) and by graupel (pgacw) and their snow/graupel-weighted combination (paacw), of snow by rain (pracs, below 0 C), of rain by snow (psacr) and by graupel (pgacr), the eliminated snow-by-graupel term (pgacs = 0 since WRF V3.0, when snow and graupel received a common fall speed), and the enhanced melting of snow and graupel above 0 C by the sensible heat of the liquid water they collect (pseml, pgeml). Each collection rate is the geometric sweep-out of one species by another: pi/4 n0 |V_a - V_b| times a size-distribution kernel (collection_kernel_* templates) times the collected mixing ratio, with the collection efficiencies (eacrs = exp(-0.07 (T0 - T)) for ice, 1 for water) and WSM6’s empirical reduction min(max(0, q_collector/q_collected), 1)^2 folded into the UNLIMITED rate because they are functions of the state alone. The kernel additionally applies per-process time-step limiters (a sink may not remove more than q/dtcld per sub-step; pseml/pgeml are also floored at zero), exposed separately as _lim with the sub-step length dtcld as a parameter – time-step artefacts, not physics (EqWeFiC FORTRAN_BUGS.md note N3); the mass-conservation rescaling applied afterwards is not part of this component. The size distributions, number concentrations and fall speeds are supplied by hydrometeor_slopes.esm mounted as subsystem sd (referenced as sd.), exactly as the kernel evaluates them once per sub-step and reuses them here; cloud water qc and the sub-step dtcld are this component’s own inputs. Scheme constants come from wsm6_parameters.esm (subsystem par), physical constants from lib/wrf_constants.esm (wrf). Consumer-supplied inputs are the rewrite-target ops input_<name> lowered in the inline tests through a per-test template library extracted from kernel dumps of the instrumented WRF fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e) (esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md and couplings/, is https://github.com/EarthSciML/EqWeFiC , where these components were developed and are coupled into a WRF column.

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. Appendix A eqs. A6, A7, A10-A13, A15, A17, A19, A24, A34.
  • 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 (eq. 10, psaci).
  • Lin, Y.-L., R. D. Farley, and H. D. Orville (1983). Bulk parameterization of the snow field in a cloud model. J. Climate Appl. Meteor. 22, 1065-1092 (eqs. 24-29, 40-42).
  • Rutledge, S. A., and P. V. Hobbs (1984). The mesoscale and microscale structure and organization of clouds and precipitation in midlatitude cyclones. XII. J. Atmos. Sci. 41, 2949-2972 (eqs. A21-A22, enhanced melting).
  • NCAR/MMM-physics mp_wsm6.F90 at commit 550b5b4 (WRF 4.8 phys/physics_mmm submodule), cold-rain block lines 968-1140.

Parameters

NameUnitsDefaultDescription
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.
dtclds60.0Length of the WSM6 sub-time step; enters only the rate limiters.

Observed

NameUnitsDefaultDescription
qckg/kgCloud-water mixing ratio.
pacrc1/(m^(341/100)*s)Snow-cloud accretion coefficient pi n0s avts Gamma(3 + bvts) E_sc/4 (WSM6 pacrc); units for bvts = 0.41.
pacrg1/(m^(19/5)*s)Graupel-cloud accretion coefficient pi n0g avtg Gamma(3 + bvtg)/4 (WSM6 pacrg); units for bvtg = 0.8.
supcolKSupercooling T0 - T (positive below freezing; WSM6 supcol).
eacrs1Collection efficiency of cloud ice by snow and graupel, exp(-0.07 (T0 - T)) (WSM6 eacrs = egi).
K_rim^3Collection kernel of ice crystals by rain, 2 lambda_r^-3 + 2 D_i lambda_r^-2 + D_i^2 lambda_r^-1.
K_sim^3Collection kernel of ice crystals by snow.
K_gim^3Collection kernel of ice crystals by graupel.
K_srm^7Collection kernel of snow (collected) by rain (collector).
K_rsm^7Collection kernel of rain (collected) by snow (collector).
K_rgm^7Collection kernel of rain (collected) by graupel (collector).
E_ri1Efficiency reduction min(max(0, qr/qi), 1)^2 of praci.
E_ir1Efficiency reduction min(max(0, qi/qr), 1)^2 of piacr.
E_sc1Efficiency reduction min(max(0, qs/qc), 1)^2 of psacw.
E_gc1Efficiency reduction min(max(0, qg/qc), 1)^2 of pgacw.
E_rs1Efficiency reduction min(max(0, qr/qs), 1)^2 of pracs.
E_sr1Efficiency reduction min(max(0, qs/qr), 1)^2 of psacr.
E_gr1Efficiency reduction min(max(0, qg/qr), 1)^2 of pgacr.
pracikg/kg/sAccretion of cloud ice by rain below 0 C (I->R; HL A15, LFO 25), unlimited.
praci_limkg/kg/spraci after the limiter min(praci, qi/dtcld) (WSM6 praci as applied).
piacrkg/kg/sAccretion of rain by cloud ice below 0 C (R->S or R->G; HL A19, LFO 26), pi^2 a_r n0r rho_w N_i (rho0/rho)^(1/2) Gamma(6 + b_r) lambda_r^-(6+b_r)/(24 rho) times the efficiency reduction, unlimited.
piacr_limkg/kg/spiacr after the limiter min(piacr, qr/dtcld).
psacikg/kg/sAccretion of cloud ice by snow below 0 C (I->S; HDC 10), pi/4 qi E_si n0s(T) |V_sg - V_i| K_si, unlimited.
psaci_limkg/kg/spsaci after the limiter min(psaci, qi/dtcld).
pgacikg/kg/sAccretion of cloud ice by graupel below 0 C (I->G; HL A17, LFO 41), unlimited.
pgaci_limkg/kg/spgaci after the limiter min(pgaci, qi/dtcld).
psacwkg/kg/sAccretion of cloud water by snow (C->S below 0 C, C->R above; HL A7, LFO 24), pacrc n0s(T)/n0s lambda_s^-(3+b_s) qc (rho0/rho)^(1/2) times the efficiency reduction, unlimited.
psacw_limkg/kg/spsacw after the limiter min(psacw, qc/dtcld).
pgacwkg/kg/sAccretion of cloud water by graupel (C->G below 0 C, C->R above; HL A6, LFO 40), unlimited.
pgacw_limkg/kg/spgacw after the limiter min(pgacw, qc/dtcld).
paacwkg/kg/sAccretion of cloud water by the combined snow/graupel category, the mixing-ratio-weighted mean of the limited psacw and pgacw (WSM6 paacw; this is the term the kernel actually applies to cloud water).
pracskg/kg/sAccretion of snow by rain below 0 C (S->G; HL A11, LFO 27), pi^2 n0r n0s(T) |V_r - V_sg| (rho_s/rho) K_sr times the efficiency reduction, unlimited.
pracs_limkg/kg/spracs after the limiter min(pracs, qs/dtcld).
psacrkg/kg/sAccretion of rain by snow (R->S or R->G below 0 C; enhances snow melting above; HL A10, LFO 28), pi^2 n0r n0s(T) |V_sg - V_r| (rho_w/rho) K_rs times the efficiency reduction, unlimited.
psacr_limkg/kg/spsacr after the limiter min(psacr, qr/dtcld).
pgacrkg/kg/sAccretion of rain by graupel (R->G below 0 C; enhances graupel melting above; HL A12, LFO 42), unlimited.
pgacr_limkg/kg/spgacr after the limiter min(pgacr, qr/dtcld).
pgacskg/kg/sAccretion of snow by graupel (HL A13, LFO 29): identically zero since WRF V3.0, when snow and graupel were given the common fall speed V_sg (WSM6 sets pgacs = 0).
psemlkg/kg/sEnhanced melting of snow above 0 C by the sensible heat of the accreted liquid water, c_l (T0 - T)(paacw + psacr_lim)/L_f (negative; HL A34, RH84 A21), unlimited.
pseml_limkg/kg/spseml after the limiter min(max(pseml, -qs/dtcld), 0).
pgemlkg/kg/sEnhanced melting of graupel above 0 C by the accreted liquid water, c_l (T0 - T)(paacw + pgacr_lim)/L_f (negative; HL A24, RH84 A22), unlimited.
pgeml_limkg/kg/spgeml after the limiter min(max(pgeml, -qg/dtcld), 0).

Observed expressions

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

Cloud-water mixing ratio.

$$ pacrc = \frac{wrf.piconst \cdot par.n0s \cdot par.avts \cdot par.g3pbs \cdot par.eacrc}{\mathrm{const}\left(\right)} $$

Snow-cloud accretion coefficient pi n0s avts Gamma(3 + bvts) E_sc/4 (WSM6 pacrc); units for bvts = 0.41.

$$ pacrg = \frac{wrf.piconst \cdot par.n0g \cdot par.avtg \cdot par.g3pbr}{\mathrm{const}\left(\right)} $$

Graupel-cloud accretion coefficient pi n0g avtg Gamma(3 + bvtg)/4 (WSM6 pacrg); units for bvtg = 0.8.

$$ supcol = wrf.svpt0 - sd.T $$

Supercooling T0 - T (positive below freezing; WSM6 supcol).

$$ eacrs = e^{-par.eacrs_{coef} \cdot supcol} $$

Collection efficiency of cloud ice by snow and graupel, exp(-0.07 (T0 - T)) (WSM6 eacrs = egi).

$$ K_{ri} = \mathrm{collection_kernel_ice_by_precipitation}\left(D=sd.D_{i}, rslope=sd.rslope_{r}, rslope2=sd.rslope2_{r}, rslope3=sd.rslope3_{r}\right) $$

Collection kernel of ice crystals by rain, 2 lambda_r^-3 + 2 D_i lambda_r^-2 + D_i^2 lambda_r^-1.

$$ K_{si} = \mathrm{collection_kernel_ice_by_precipitation}\left(D=sd.D_{i}, rslope=sd.rslope_{s}, rslope2=sd.rslope2_{s}, rslope3=sd.rslope3_{s}\right) $$

Collection kernel of ice crystals by snow.

$$ K_{gi} = \mathrm{collection_kernel_ice_by_precipitation}\left(D=sd.D_{i}, rslope=sd.rslope_{g}, rslope2=sd.rslope2_{g}, rslope3=sd.rslope3_{g}\right) $$

Collection kernel of ice crystals by graupel.

$$ K_{sr} = \mathrm{collection_kernel_precipitation_by_precipitation}\left(rslope_{a}=sd.rslope_{s}, rslope2_{a}=sd.rslope2_{s}, rslope3_{a}=sd.rslope3_{s}, rslope_{b}=sd.rslope_{r}, rslope2_{b}=sd.rslope2_{r}, rslope3_{b}=sd.rslope3_{r}\right) $$

Collection kernel of snow (collected) by rain (collector).

$$ K_{rs} = \mathrm{collection_kernel_precipitation_by_precipitation}\left(rslope_{a}=sd.rslope_{r}, rslope2_{a}=sd.rslope2_{r}, rslope3_{a}=sd.rslope3_{r}, rslope_{b}=sd.rslope_{s}, rslope2_{b}=sd.rslope2_{s}, rslope3_{b}=sd.rslope3_{s}\right) $$

Collection kernel of rain (collected) by snow (collector).

$$ K_{rg} = \mathrm{collection_kernel_precipitation_by_precipitation}\left(rslope_{a}=sd.rslope_{r}, rslope2_{a}=sd.rslope2_{r}, rslope3_{a}=sd.rslope3_{r}, rslope_{b}=sd.rslope_{g}, rslope2_{b}=sd.rslope2_{g}, rslope3_{b}=sd.rslope3_{g}\right) $$

Collection kernel of rain (collected) by graupel (collector).

$$ E_{ri} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qr, q_{collected}=sd.qi, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qr/qi), 1)^2 of praci.

$$ E_{ir} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qi, q_{collected}=sd.qr, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qi/qr), 1)^2 of piacr.

$$ E_{sc} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qs, q_{collected}=qc, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qs/qc), 1)^2 of psacw.

$$ E_{gc} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qg, q_{collected}=qc, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qg/qc), 1)^2 of pgacw.

$$ E_{rs} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qr, q_{collected}=sd.qs, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qr/qs), 1)^2 of pracs.

$$ E_{sr} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qs, q_{collected}=sd.qr, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qs/qr), 1)^2 of psacr.

$$ E_{gr} = \mathrm{collection_efficiency_reduction}\left(q_{collector}=sd.qg, q_{collected}=sd.qr, q_{min}=par.qmin, expn=par.wilt_{exp}\right) $$

Efficiency reduction min(max(0, qg/qr), 1)^2 of pgacr.

$$ praci = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(supcol, 0\right), \mathrm{>}\left(sd.qi, par.qmin\right), \mathrm{>}\left(sd.qr, par.qcrmin\right)\right), \frac{wrf.piconst}{\mathrm{const}\left(\right)} \cdot sd.qi \cdot par.n0r \cdot \left|sd.vt_{r} - sd.vt_{i}\right| \cdot K_{ri} \cdot E_{ri}, 0\right) $$

Accretion of cloud ice by rain below 0 C (I->R; HL A15, LFO 25), unlimited.

$$ praci_{lim} = \mathrm{sink_rate_limiter}\left(rate=praci, q=sd.qi, dt=dtcld\right) $$

praci after the limiter min(praci, qi/dtcld) (WSM6 praci as applied).

$$ piacr = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(supcol, 0\right), \mathrm{>}\left(sd.qi, par.qmin\right), \mathrm{>}\left(sd.qr, par.qcrmin\right)\right), \frac{wrf.piconst^{2} \cdot par.avtr \cdot par.n0r \cdot wrf.rhowater \cdot sd.xni \cdot sd.denfac \cdot par.g6pbr \cdot sd.rslope3_{r} \cdot sd.rslope3_{r} \cdot sd.rslopeb_{r}}{\mathrm{const}\left(\right) \cdot sd.rho} \cdot E_{ir}, 0\right) $$

Accretion of rain by cloud ice below 0 C (R->S or R->G; HL A19, LFO 26), pi^2 a_r n0r rho_w N_i (rho0/rho)^(1/2) Gamma(6 + b_r) lambda_r^-(6+b_r)/(24 rho) times the efficiency reduction, unlimited.

$$ piacr_{lim} = \mathrm{sink_rate_limiter}\left(rate=piacr, q=sd.qr, dt=dtcld\right) $$

piacr after the limiter min(piacr, qr/dtcld).

$$ psaci = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(supcol, 0\right), \mathrm{>}\left(sd.qi, par.qmin\right), \mathrm{>}\left(sd.qs, par.qcrmin\right)\right), \frac{wrf.piconst}{\mathrm{const}\left(\right)} \cdot sd.qi \cdot eacrs \cdot par.n0s \cdot sd.n0sfac \cdot \left|sd.vt_{sg} - sd.vt_{i}\right| \cdot K_{si}, 0\right) $$

Accretion of cloud ice by snow below 0 C (I->S; HDC 10), pi/4 qi E_si n0s(T) |V_sg - V_i| K_si, unlimited.

$$ psaci_{lim} = \mathrm{sink_rate_limiter}\left(rate=psaci, q=sd.qi, dt=dtcld\right) $$

psaci after the limiter min(psaci, qi/dtcld).

$$ pgaci = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(supcol, 0\right), \mathrm{>}\left(sd.qi, par.qmin\right), \mathrm{>}\left(sd.qg, par.qcrmin\right)\right), \frac{wrf.piconst}{\mathrm{const}\left(\right)} \cdot eacrs \cdot sd.qi \cdot par.n0g \cdot \left|sd.vt_{sg} - sd.vt_{i}\right| \cdot K_{gi}, 0\right) $$

Accretion of cloud ice by graupel below 0 C (I->G; HL A17, LFO 41), unlimited.

$$ pgaci_{lim} = \mathrm{sink_rate_limiter}\left(rate=pgaci, q=sd.qi, dt=dtcld\right) $$

pgaci after the limiter min(pgaci, qi/dtcld).

$$ psacw = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(sd.qs, par.qcrmin\right), \mathrm{>}\left(qc, par.qmin\right)\right), pacrc \cdot sd.n0sfac \cdot sd.rslope3_{s} \cdot sd.rslopeb_{s} \cdot E_{sc} \cdot qc \cdot sd.denfac, 0\right) $$

Accretion of cloud water by snow (C->S below 0 C, C->R above; HL A7, LFO 24), pacrc n0s(T)/n0s lambda_s^-(3+b_s) qc (rho0/rho)^(1/2) times the efficiency reduction, unlimited.

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

psacw after the limiter min(psacw, qc/dtcld).

$$ pgacw = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(sd.qg, par.qcrmin\right), \mathrm{>}\left(qc, par.qmin\right)\right), pacrg \cdot sd.rslope3_{g} \cdot sd.rslopeb_{g} \cdot E_{gc} \cdot qc \cdot sd.denfac, 0\right) $$

Accretion of cloud water by graupel (C->G below 0 C, C->R above; HL A6, LFO 40), unlimited.

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

pgacw after the limiter min(pgacw, qc/dtcld).

$$ paacw = \mathrm{snow_graupel_weighted_mean}\left(x_{s}=psacw_{lim}, q_{s}=sd.qs, x_{g}=pgacw_{lim}, q_{g}=sd.qg, q_{floor}=par.qmin\right) $$

Accretion of cloud water by the combined snow/graupel category, the mixing-ratio-weighted mean of the limited psacw and pgacw (WSM6 paacw; this is the term the kernel actually applies to cloud water).

$$ pracs = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(sd.qs, par.qcrmin\right), \mathrm{>}\left(sd.qr, par.qcrmin\right), \mathrm{>}\left(supcol, 0\right)\right), wrf.piconst^{2} \cdot par.n0r \cdot par.n0s \cdot sd.n0sfac \cdot \left|sd.vt_{r} - sd.vt_{sg}\right| \cdot \frac{par.dens}{sd.rho} \cdot K_{sr} \cdot E_{rs}, 0\right) $$

Accretion of snow by rain below 0 C (S->G; HL A11, LFO 27), pi^2 n0r n0s(T) |V_r - V_sg| (rho_s/rho) K_sr times the efficiency reduction, unlimited.

$$ pracs_{lim} = \mathrm{sink_rate_limiter}\left(rate=pracs, q=sd.qs, dt=dtcld\right) $$

pracs after the limiter min(pracs, qs/dtcld).

$$ psacr = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(sd.qs, par.qcrmin\right), \mathrm{>}\left(sd.qr, par.qcrmin\right)\right), wrf.piconst^{2} \cdot par.n0r \cdot par.n0s \cdot sd.n0sfac \cdot \left|sd.vt_{sg} - sd.vt_{r}\right| \cdot \frac{wrf.rhowater}{sd.rho} \cdot K_{rs} \cdot E_{sr}, 0\right) $$

Accretion of rain by snow (R->S or R->G below 0 C; enhances snow melting above; HL A10, LFO 28), pi^2 n0r n0s(T) |V_sg - V_r| (rho_w/rho) K_rs times the efficiency reduction, unlimited.

$$ psacr_{lim} = \mathrm{sink_rate_limiter}\left(rate=psacr, q=sd.qr, dt=dtcld\right) $$

psacr after the limiter min(psacr, qr/dtcld).

$$ pgacr = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(sd.qg, par.qcrmin\right), \mathrm{>}\left(sd.qr, par.qcrmin\right)\right), wrf.piconst^{2} \cdot par.n0r \cdot par.n0g \cdot \left|sd.vt_{sg} - sd.vt_{r}\right| \cdot \frac{wrf.rhowater}{sd.rho} \cdot K_{rg} \cdot E_{gr}, 0\right) $$

Accretion of rain by graupel (R->G below 0 C; enhances graupel melting above; HL A12, LFO 42), unlimited.

$$ pgacr_{lim} = \mathrm{sink_rate_limiter}\left(rate=pgacr, q=sd.qr, dt=dtcld\right) $$

pgacr after the limiter min(pgacr, qr/dtcld).

$$ pgacs = \mathrm{const}\left(\right) \cdot sd.qs $$

Accretion of snow by graupel (HL A13, LFO 29): identically zero since WRF V3.0, when snow and graupel were given the common fall speed V_sg (WSM6 sets pgacs = 0).

$$ pseml = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{<=}\left(supcol, 0\right), \mathrm{>}\left(sd.qs, 0\right)\right), \mathrm{enhanced_melting_by_accretion}\left(T=sd.T, t0=wrf.svpt0, accreted=paacw + psacr_{lim}, cliq=wrf.cliq, xlf=wrf.xlf\right), 0\right) $$

Enhanced melting of snow above 0 C by the sensible heat of the accreted liquid water, c_l (T0 - T)(paacw + psacr_lim)/L_f (negative; HL A34, RH84 A21), unlimited.

$$ pseml_{lim} = \mathrm{negative_sink_limiter}\left(rate=pseml, q=sd.qs, dt=dtcld\right) $$

pseml after the limiter min(max(pseml, -qs/dtcld), 0).

$$ pgeml = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{<=}\left(supcol, 0\right), \mathrm{>}\left(sd.qg, 0\right)\right), \mathrm{enhanced_melting_by_accretion}\left(T=sd.T, t0=wrf.svpt0, accreted=paacw + pgacr_{lim}, cliq=wrf.cliq, xlf=wrf.xlf\right), 0\right) $$

Enhanced melting of graupel above 0 C by the accreted liquid water, c_l (T0 - T)(paacw + pgacr_lim)/L_f (negative; HL A24, RH84 A22), unlimited.

$$ pgeml_{lim} = \mathrm{negative_sink_limiter}\left(rate=pgeml, q=sd.qg, dt=dtcld\right) $$

pgeml after the limiter min(max(pgeml, -qg/dtcld), 0).

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": {
    "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."
    },
    "qc": {
      "type": "unknown",
      "units": "kg/kg",
      "shape": [
        "lev"
      ],
      "description": "Cloud-water mixing ratio."
    },
    "dtcld": {
      "type": "parameter",
      "units": "s",
      "default": 60.0,
      "description": "Length of the WSM6 sub-time step; enters only the rate limiters."
    },
    "pacrc": {
      "type": "unknown",
      "units": "1/(m^(341/100)*s)",
      "description": "Snow-cloud accretion coefficient pi n0s avts Gamma(3 + bvts) E_sc/4 (WSM6 pacrc); units for bvts = 0.41."
    },
    "pacrg": {
      "type": "unknown",
      "units": "1/(m^(19/5)*s)",
      "description": "Graupel-cloud accretion coefficient pi n0g avtg Gamma(3 + bvtg)/4 (WSM6 pacrg); units for bvtg = 0.8."
    },
    "supcol": {
      "type": "unknown",
      "units": "K",
      "shape": [
        "lev"
      ],
      "description": "Supercooling T0 - T (positive below freezing; WSM6 supcol)."
    },
    "eacrs": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Collection efficiency of cloud ice by snow and graupel, exp(-0.07 (T0 - T)) (WSM6 eacrs = egi)."
    },
    "K_ri": {
      "type": "unknown",
      "units": "m^3",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of ice crystals by rain, 2 lambda_r^-3 + 2 D_i lambda_r^-2 + D_i^2 lambda_r^-1."
    },
    "K_si": {
      "type": "unknown",
      "units": "m^3",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of ice crystals by snow."
    },
    "K_gi": {
      "type": "unknown",
      "units": "m^3",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of ice crystals by graupel."
    },
    "K_sr": {
      "type": "unknown",
      "units": "m^7",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of snow (collected) by rain (collector)."
    },
    "K_rs": {
      "type": "unknown",
      "units": "m^7",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of rain (collected) by snow (collector)."
    },
    "K_rg": {
      "type": "unknown",
      "units": "m^7",
      "shape": [
        "lev"
      ],
      "description": "Collection kernel of rain (collected) by graupel (collector)."
    },
    "E_ri": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qr/qi), 1)^2 of praci."
    },
    "E_ir": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qi/qr), 1)^2 of piacr."
    },
    "E_sc": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qs/qc), 1)^2 of psacw."
    },
    "E_gc": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qg/qc), 1)^2 of pgacw."
    },
    "E_rs": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qr/qs), 1)^2 of pracs."
    },
    "E_sr": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qs/qr), 1)^2 of psacr."
    },
    "E_gr": {
      "type": "unknown",
      "units": "1",
      "shape": [
        "lev"
      ],
      "description": "Efficiency reduction min(max(0, qg/qr), 1)^2 of pgacr."
    },
    "praci": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud ice by rain below 0 C (I->R; HL A15, LFO 25), unlimited."
    },
    "praci_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "praci after the limiter min(praci, qi/dtcld) (WSM6 praci as applied)."
    },
    "piacr": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of rain by cloud ice below 0 C (R->S or R->G; HL A19, LFO 26), pi^2 a_r n0r rho_w N_i (rho0/rho)^(1/2) Gamma(6 + b_r) lambda_r^-(6+b_r)/(24 rho) times the efficiency reduction, unlimited."
    },
    "piacr_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "piacr after the limiter min(piacr, qr/dtcld)."
    },
    "psaci": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud ice by snow below 0 C (I->S; HDC 10), pi/4 qi E_si n0s(T) |V_sg - V_i| K_si, unlimited."
    },
    "psaci_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "psaci after the limiter min(psaci, qi/dtcld)."
    },
    "pgaci": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud ice by graupel below 0 C (I->G; HL A17, LFO 41), unlimited."
    },
    "pgaci_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pgaci after the limiter min(pgaci, qi/dtcld)."
    },
    "psacw": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud water by snow (C->S below 0 C, C->R above; HL A7, LFO 24), pacrc n0s(T)/n0s lambda_s^-(3+b_s) qc (rho0/rho)^(1/2) times the efficiency reduction, unlimited."
    },
    "psacw_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "psacw after the limiter min(psacw, qc/dtcld)."
    },
    "pgacw": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud water by graupel (C->G below 0 C, C->R above; HL A6, LFO 40), unlimited."
    },
    "pgacw_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pgacw after the limiter min(pgacw, qc/dtcld)."
    },
    "paacw": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of cloud water by the combined snow/graupel category, the mixing-ratio-weighted mean of the limited psacw and pgacw (WSM6 paacw; this is the term the kernel actually applies to cloud water)."
    },
    "pracs": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of snow by rain below 0 C (S->G; HL A11, LFO 27), pi^2 n0r n0s(T) |V_r - V_sg| (rho_s/rho) K_sr times the efficiency reduction, unlimited."
    },
    "pracs_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pracs after the limiter min(pracs, qs/dtcld)."
    },
    "psacr": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of rain by snow (R->S or R->G below 0 C; enhances snow melting above; HL A10, LFO 28), pi^2 n0r n0s(T) |V_sg - V_r| (rho_w/rho) K_rs times the efficiency reduction, unlimited."
    },
    "psacr_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "psacr after the limiter min(psacr, qr/dtcld)."
    },
    "pgacr": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of rain by graupel (R->G below 0 C; enhances graupel melting above; HL A12, LFO 42), unlimited."
    },
    "pgacr_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pgacr after the limiter min(pgacr, qr/dtcld)."
    },
    "pgacs": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Accretion of snow by graupel (HL A13, LFO 29): identically zero since WRF V3.0, when snow and graupel were given the common fall speed V_sg (WSM6 sets pgacs = 0)."
    },
    "pseml": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Enhanced melting of snow above 0 C by the sensible heat of the accreted liquid water, c_l (T0 - T)(paacw + psacr_lim)/L_f (negative; HL A34, RH84 A21), unlimited."
    },
    "pseml_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pseml after the limiter min(max(pseml, -qs/dtcld), 0)."
    },
    "pgeml": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "Enhanced melting of graupel above 0 C by the accreted liquid water, c_l (T0 - T)(paacw + pgacr_lim)/L_f (negative; HL A24, RH84 A22), unlimited."
    },
    "pgeml_lim": {
      "type": "unknown",
      "units": "kg/kg/s",
      "shape": [
        "lev"
      ],
      "description": "pgeml after the limiter min(max(pgeml, -qg/dtcld), 0)."
    }
  },
  "equations": [
    {
      "lhs": "qc",
      "rhs": {
        "op": "input_qc",
        "args": []
      }
    },
    {
      "lhs": "pacrc",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "wrf.piconst",
              "par.n0s",
              "par.avts",
              "par.g3pbs",
              "par.eacrc"
            ]
          },
          {
            "op": "const",
            "args": [],
            "value": 4,
            "units": "1"
          }
        ]
      }
    },
    {
      "lhs": "pacrg",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              "wrf.piconst",
              "par.n0g",
              "par.avtg",
              "par.g3pbr"
            ]
          },
          {
            "op": "const",
            "args": [],
            "value": 4,
            "units": "1"
          }
        ]
      }
    },
    {
      "lhs": "supcol",
      "rhs": {
        "op": "-",
        "args": [
          "wrf.svpt0",
          "sd.T"
        ]
      }
    },
    {
      "lhs": "eacrs",
      "rhs": {
        "op": "exp",
        "args": [
          {
            "op": "-",
            "args": [
              {
                "op": "*",
                "args": [
                  "par.eacrs_coef",
                  "supcol"
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "K_ri",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_ice_by_precipitation",
        "bindings": {
          "D": "sd.D_i",
          "rslope": "sd.rslope_r",
          "rslope2": "sd.rslope2_r",
          "rslope3": "sd.rslope3_r"
        }
      }
    },
    {
      "lhs": "K_si",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_ice_by_precipitation",
        "bindings": {
          "D": "sd.D_i",
          "rslope": "sd.rslope_s",
          "rslope2": "sd.rslope2_s",
          "rslope3": "sd.rslope3_s"
        }
      }
    },
    {
      "lhs": "K_gi",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_ice_by_precipitation",
        "bindings": {
          "D": "sd.D_i",
          "rslope": "sd.rslope_g",
          "rslope2": "sd.rslope2_g",
          "rslope3": "sd.rslope3_g"
        }
      }
    },
    {
      "lhs": "K_sr",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_precipitation_by_precipitation",
        "bindings": {
          "rslope_a": "sd.rslope_s",
          "rslope2_a": "sd.rslope2_s",
          "rslope3_a": "sd.rslope3_s",
          "rslope_b": "sd.rslope_r",
          "rslope2_b": "sd.rslope2_r",
          "rslope3_b": "sd.rslope3_r"
        }
      }
    },
    {
      "lhs": "K_rs",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_precipitation_by_precipitation",
        "bindings": {
          "rslope_a": "sd.rslope_r",
          "rslope2_a": "sd.rslope2_r",
          "rslope3_a": "sd.rslope3_r",
          "rslope_b": "sd.rslope_s",
          "rslope2_b": "sd.rslope2_s",
          "rslope3_b": "sd.rslope3_s"
        }
      }
    },
    {
      "lhs": "K_rg",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_kernel_precipitation_by_precipitation",
        "bindings": {
          "rslope_a": "sd.rslope_r",
          "rslope2_a": "sd.rslope2_r",
          "rslope3_a": "sd.rslope3_r",
          "rslope_b": "sd.rslope_g",
          "rslope2_b": "sd.rslope2_g",
          "rslope3_b": "sd.rslope3_g"
        }
      }
    },
    {
      "lhs": "E_ri",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qr",
          "q_collected": "sd.qi",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_ir",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qi",
          "q_collected": "sd.qr",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_sc",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qs",
          "q_collected": "qc",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_gc",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qg",
          "q_collected": "qc",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_rs",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qr",
          "q_collected": "sd.qs",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_sr",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qs",
          "q_collected": "sd.qr",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "E_gr",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "collection_efficiency_reduction",
        "bindings": {
          "q_collector": "sd.qg",
          "q_collected": "sd.qr",
          "q_min": "par.qmin",
          "expn": "par.wilt_exp"
        }
      }
    },
    {
      "lhs": "praci",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qi",
                  "par.qmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qr",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  "wrf.piconst",
                  {
                    "op": "const",
                    "args": [],
                    "value": 4,
                    "units": "1"
                  }
                ]
              },
              "sd.qi",
              "par.n0r",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_r",
                      "sd.vt_i"
                    ]
                  }
                ]
              },
              "K_ri",
              "E_ri"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "praci_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "praci",
          "q": "sd.qi",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "piacr",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qi",
                  "par.qmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qr",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "wrf.piconst",
                          2
                        ]
                      },
                      "par.avtr",
                      "par.n0r",
                      "wrf.rhowater",
                      "sd.xni",
                      "sd.denfac",
                      "par.g6pbr",
                      "sd.rslope3_r",
                      "sd.rslope3_r",
                      "sd.rslopeb_r"
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "const",
                        "args": [],
                        "value": 24,
                        "units": "1"
                      },
                      "sd.rho"
                    ]
                  }
                ]
              },
              "E_ir"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "piacr_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "piacr",
          "q": "sd.qr",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "psaci",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qi",
                  "par.qmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qs",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  "wrf.piconst",
                  {
                    "op": "const",
                    "args": [],
                    "value": 4,
                    "units": "1"
                  }
                ]
              },
              "sd.qi",
              "eacrs",
              "par.n0s",
              "sd.n0sfac",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_sg",
                      "sd.vt_i"
                    ]
                  }
                ]
              },
              "K_si"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "psaci_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "psaci",
          "q": "sd.qi",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pgaci",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qi",
                  "par.qmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qg",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  "wrf.piconst",
                  {
                    "op": "const",
                    "args": [],
                    "value": 4,
                    "units": "1"
                  }
                ]
              },
              "eacrs",
              "sd.qi",
              "par.n0g",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_sg",
                      "sd.vt_i"
                    ]
                  }
                ]
              },
              "K_gi"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "pgaci_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "pgaci",
          "q": "sd.qi",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "psacw",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "sd.qs",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "qc",
                  "par.qmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "pacrc",
              "sd.n0sfac",
              "sd.rslope3_s",
              "sd.rslopeb_s",
              "E_sc",
              "qc",
              "sd.denfac"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "psacw_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "psacw",
          "q": "qc",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pgacw",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "sd.qg",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "qc",
                  "par.qmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              "pacrg",
              "sd.rslope3_g",
              "sd.rslopeb_g",
              "E_gc",
              "qc",
              "sd.denfac"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "pgacw_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "pgacw",
          "q": "qc",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "paacw",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "snow_graupel_weighted_mean",
        "bindings": {
          "x_s": "psacw_lim",
          "q_s": "sd.qs",
          "x_g": "pgacw_lim",
          "q_g": "sd.qg",
          "q_floor": "par.qmin"
        }
      }
    },
    {
      "lhs": "pracs",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "sd.qs",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qr",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "supcol",
                  0
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "wrf.piconst",
                  2
                ]
              },
              "par.n0r",
              "par.n0s",
              "sd.n0sfac",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_r",
                      "sd.vt_sg"
                    ]
                  }
                ]
              },
              {
                "op": "/",
                "args": [
                  "par.dens",
                  "sd.rho"
                ]
              },
              "K_sr",
              "E_rs"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "pracs_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "pracs",
          "q": "sd.qs",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "psacr",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "sd.qs",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qr",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "wrf.piconst",
                  2
                ]
              },
              "par.n0r",
              "par.n0s",
              "sd.n0sfac",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_sg",
                      "sd.vt_r"
                    ]
                  }
                ]
              },
              {
                "op": "/",
                "args": [
                  "wrf.rhowater",
                  "sd.rho"
                ]
              },
              "K_rs",
              "E_sr"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "psacr_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "psacr",
          "q": "sd.qr",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pgacr",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "sd.qg",
                  "par.qcrmin"
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qr",
                  "par.qcrmin"
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "^",
                "args": [
                  "wrf.piconst",
                  2
                ]
              },
              "par.n0r",
              "par.n0g",
              {
                "op": "abs",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "sd.vt_sg",
                      "sd.vt_r"
                    ]
                  }
                ]
              },
              {
                "op": "/",
                "args": [
                  "wrf.rhowater",
                  "sd.rho"
                ]
              },
              "K_rg",
              "E_gr"
            ]
          },
          0
        ]
      }
    },
    {
      "lhs": "pgacr_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "sink_rate_limiter",
        "bindings": {
          "rate": "pgacr",
          "q": "sd.qr",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pgacs",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "const",
            "args": [],
            "value": 0,
            "units": "1/s"
          },
          "sd.qs"
        ]
      }
    },
    {
      "lhs": "pseml",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": "<=",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qs",
                  0
                ]
              }
            ]
          },
          {
            "op": "apply_expression_template",
            "args": [],
            "name": "enhanced_melting_by_accretion",
            "bindings": {
              "T": "sd.T",
              "t0": "wrf.svpt0",
              "accreted": {
                "op": "+",
                "args": [
                  "paacw",
                  "psacr_lim"
                ]
              },
              "cliq": "wrf.cliq",
              "xlf": "wrf.xlf"
            }
          },
          0
        ]
      }
    },
    {
      "lhs": "pseml_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "negative_sink_limiter",
        "bindings": {
          "rate": "pseml",
          "q": "sd.qs",
          "dt": "dtcld"
        }
      }
    },
    {
      "lhs": "pgeml",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": "<=",
                "args": [
                  "supcol",
                  0
                ]
              },
              {
                "op": ">",
                "args": [
                  "sd.qg",
                  0
                ]
              }
            ]
          },
          {
            "op": "apply_expression_template",
            "args": [],
            "name": "enhanced_melting_by_accretion",
            "bindings": {
              "T": "sd.T",
              "t0": "wrf.svpt0",
              "accreted": {
                "op": "+",
                "args": [
                  "paacw",
                  "pgacr_lim"
                ]
              },
              "cliq": "wrf.cliq",
              "xlf": "wrf.xlf"
            }
          },
          0
        ]
      }
    },
    {
      "lhs": "pgeml_lim",
      "rhs": {
        "op": "apply_expression_template",
        "args": [],
        "name": "negative_sink_limiter",
        "bindings": {
          "rate": "pgeml",
          "q": "sd.qg",
          "dt": "dtcld"
        }
      }
    }
  ],
  "tests": [
    {
      "id": "qss_step250_row23_col24_mixed_phase_accretion",
      "description": "Reference: WRF 4.8 em_quarter_ss idealized supercell (GNU real32 build, dx = 2 km, dt = 12 s, 40 layers, WSM6 only) 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. POINTWISE and step-free: the inputs are the state at which the kernel evaluates its process rates (t_rates, qc/qi/qr/qs/qg_rates after the sub-step's sedimentation, melting, freezing and slope update; den), the expected values the 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 mp_wsm6_init coefficients, from the real64 replay. No small-dt replay because WSM6's increments are not rate x dt (EqWeFiC FORTRAN_BUGS.md N3). The size distributions, N_i, D_i and fall speeds come from hydrometeor_slopes.esm mounted as subsystem sd on the same inputs (its own tests pin them to the dump). Real64 replay vs real32 dump: <= 1e-5 relative in these rates. Residual esm-vs-real64 mismatch, from the kernel's default-real literals and real32 WRF constants (pi, avtr, bvtr, bvts, n0s, dens, 0.07, 1.49e4, 1.31, 5.38e7, 11.9, ...; EqWeFiC FORTRAN_BUGS.md N2), measured with zero tolerances: <= 1.7e-7 of each column's maximum (psaci; praci 8e-9, piacr 6e-8, pgaci 3e-8, psacw 9e-8, pracs 2e-8, psacr 1.4e-8, pgacr 5e-9, pgeml 6e-8). Tolerances are set 5-10x above: relative 1e-6 on the coefficients, absolute Linf_error bounds on the limited whole columns at 1e-6 of each column's maximum, and relative 2e-6 spot checks of the UNLIMITED rates at layers where the kernel's limiter is provably inactive (the dumped rate is below half of q/dtcld there; in this column only pracs at layer 11 and pgacr at layer 13 are limited). Regime: supercell step 250 (t = 50 min), row j = 23, column i = 24: freezing level at layer 9; rain 1-16, cloud water 1-20, snow 6-33, graupel 1-33, ice 9-39; every accretion process is active (praci/piacr/pracs/psacr in 9-16, psaci/pgaci in 9-32, psacw 9-20, pgacw/pgacr from layer 8, where T is just above 0 C so pgeml is active at 1.5e-18 kg/kg/s and pseml is zero because there is no snow). Exception: pseml and pgeml are proportional to the supercooling T0 - T, which is -0.15 K in the only active layer, so the kernel's real32 T0 = 273.1499939 K (6e-6 K off) shows up as a 4e-6 relative difference; their tolerances are therefore rel 5e-5 and Linf 1e-4 of the column maximum.",
      "parameter_overrides": {
        "dtcld": 12.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/qss_step250_row23_col24_mixed_phase_accretion_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "pacrc",
          "time": 0.0,
          "expected": 55442087.06914436,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "pacrg",
          "time": 0.0,
          "expected": 4863058762.307106,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "praci_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,
                    1.7742779547889016e-08,
                    5.2382123851688705e-08,
                    8.633719130029905e-08,
                    1.287084015752049e-07,
                    1.0384242305687417e-07,
                    5.1200057112345464e-08,
                    1.0501429310278737e-09,
                    5.447637515036745e-13,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-13,
            "rel": 0.0
          }
        },
        {
          "variable": "piacr_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,
                    1.6864174216429474e-12,
                    7.79423122522383e-12,
                    1.6326338838155124e-11,
                    5.2258939915413226e-11,
                    4.706499221933182e-10,
                    2.062412355542352e-09,
                    1.6532004761700903e-08,
                    2.2812468574407131e-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
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-14,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci_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,
                    4.339835454639444e-12,
                    2.4106617193676473e-11,
                    6.638244337634433e-11,
                    3.428058574008553e-10,
                    8.446006305846094e-09,
                    2.665202947460932e-08,
                    6.289731382809265e-08,
                    1.31229141504122e-07,
                    2.395131840509679e-07,
                    4.2908049060317376e-07,
                    7.372017308606025e-07,
                    1.6739087658603757e-06,
                    5.032118617131792e-06,
                    4.118301737381418e-06,
                    3.4488400414139816e-06,
                    3.0444491211844277e-06,
                    2.646873879998877e-06,
                    1.972396437567465e-06,
                    1.4131207930606903e-06,
                    7.634808242932739e-07,
                    1.756231001760978e-07,
                    3.4129810707218883e-09,
                    1.1076622760351909e-16,
                    3.289826611548454e-19,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pgaci_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,
                    1.470982207727957e-11,
                    9.026321917318153e-11,
                    3.821256516850523e-10,
                    3.6193921737600494e-09,
                    3.288552589997903e-08,
                    6.639779741698793e-08,
                    9.0927856804158e-08,
                    1.2208262057958115e-07,
                    1.501529200206558e-07,
                    1.894299127078329e-07,
                    2.3217751494915538e-07,
                    3.718096361221166e-07,
                    7.669520708033682e-07,
                    4.3899429126914413e-07,
                    2.653686348620898e-07,
                    1.6549109775712073e-07,
                    1.0195838504869484e-07,
                    5.416063036039372e-08,
                    2.781136798327825e-08,
                    1.0763953452650221e-08,
                    2.0061039405410337e-09,
                    5.741101514373344e-11,
                    1.2226108773459104e-17,
                    4.3214150260816666e-20,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "psacw_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,
                    6.175678017918024e-18,
                    5.104294382887524e-17,
                    3.592863248795173e-16,
                    2.2009365397742987e-14,
                    3.7530059878347275e-09,
                    1.397175338732231e-07,
                    1.0145144386469564e-06,
                    2.723200224984411e-06,
                    3.715033121995188e-06,
                    4.3783405094861465e-06,
                    4.489786431631322e-06,
                    4.060686659324286e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacw_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.4556137326140967e-21,
                    6.651315680803464e-14,
                    4.600327024872958e-12,
                    9.095083302299403e-10,
                    1.5946865205348746e-06,
                    1.1563187211762363e-05,
                    1.3874329387647139e-05,
                    1.4562835193228891e-05,
                    1.5464931840936465e-05,
                    1.4907640176152569e-05,
                    1.3532460625819758e-05,
                    1.1157247010067202e-05,
                    8.423977120380946e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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": 3e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "paacw",
          "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.4556137326140967e-21,
                    6.474424433135573e-14,
                    4.53986580509129e-12,
                    9.056177974370575e-10,
                    1.5924417224955671e-06,
                    1.1426845758687226e-05,
                    1.3563888687542648e-05,
                    1.4012909443501124e-05,
                    1.4694771918424788e-05,
                    1.3992088984433094e-05,
                    1.2615216277536616e-05,
                    1.0380753415058703e-05,
                    7.85861818441924e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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": 3e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pracs_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,
                    4.923515715746202e-09,
                    1.1524362441532116e-08,
                    2.3465029520851334e-08,
                    8.686132885783782e-08,
                    4.06555603256008e-06,
                    3.6488848323555907e-06,
                    5.988025005841963e-10,
                    1.0356973424941688e-12,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-11,
            "rel": 0.0
          }
        },
        {
          "variable": "psacr_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,
                    1.3534168348208638e-14,
                    6.764179035644899e-14,
                    2.8295612412106983e-13,
                    7.37013701667065e-12,
                    1.03121197873361e-07,
                    1.342289884098848e-06,
                    1.1443426277640317e-07,
                    9.725981247282894e-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": 3e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacr_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,
                    8.30136207033696e-17,
                    4.5337243169982624e-11,
                    8.90146163302038e-10,
                    3.793556240769671e-08,
                    9.984931457767396e-06,
                    0.0003240617047759342,
                    3.102904369910376e-05,
                    1.5084787511794335e-07,
                    1.0542515388160218e-08,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-09,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacs",
          "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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pseml_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pgeml_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.5309678351649967e-18,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-22,
            "rel": 0.0
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 13
          },
          "expected": 1.0384242305687417e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 14
          },
          "expected": 5.1200057112345464e-08,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 15
          },
          "expected": 1.0501429310278737e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 5.447637515036745e-13,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "piacr",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 1.6864174216429474e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "piacr",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 5.2258939915413226e-11,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "piacr",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 2.2812468574407131e-10,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 4.339835454639444e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.31229141504122e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 24
          },
          "expected": 3.0444491211844277e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 32
          },
          "expected": 3.289826611548454e-19,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgaci",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 1.470982207727957e-11,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgaci",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.2208262057958115e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgaci",
          "time": 0.0,
          "coords": {
            "lev": 24
          },
          "expected": 1.6549109775712073e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgaci",
          "time": 0.0,
          "coords": {
            "lev": 32
          },
          "expected": 4.3214150260816666e-20,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 6.175678017918024e-18,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 14
          },
          "expected": 1.397175338732231e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 4.060686659324286e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacw",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 1.4556137326140967e-21,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacw",
          "time": 0.0,
          "coords": {
            "lev": 14
          },
          "expected": 1.3874329387647139e-05,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacw",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 8.423977120380946e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracs",
          "time": 0.0,
          "coords": {
            "lev": 14
          },
          "expected": 3.6488848323555907e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracs",
          "time": 0.0,
          "coords": {
            "lev": 15
          },
          "expected": 5.988025005841963e-10,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pracs",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.0356973424941688e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 9
          },
          "expected": 1.3534168348208638e-14,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 7.37013701667065e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 9.725981247282894e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 8.30136207033696e-17,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 10
          },
          "expected": 8.90146163302038e-10,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 9.984931457767396e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 16
          },
          "expected": 1.0542515388160218e-08,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgeml",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": -1.5309678351649967e-18,
          "tolerance": {
            "rel": 5e-05
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 20
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "praci",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 1
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 33
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci",
          "time": 0.0,
          "coords": {
            "lev": 40
          },
          "expected": 0.0,
          "tolerance": {
            "abs": 0,
            "rel": 0.0
          }
        }
      ]
    },
    {
      "id": "qss_step250_row23_col25_enhanced_melting",
      "description": "Same reference chain, regime and tolerance reasoning as qss_step250_row23_col24_mixed_phase_accretion, one tile column to the east (i = 25): the layer just above freezing (layer 8, T = 273.3 K) holds snow, graupel, rain and cloud water at once, so both enhanced-melting terms pseml (1.3e-15) and pgeml (1.7e-14 kg/kg/s) are active and unlimited there, together with the above-freezing accretions psacw, pgacw, psacr and pgacr that feed them. Measured residual <= 6e-8 of column maximum in every accretion rate; pseml and pgeml differ by 1.6e-5 relative because they multiply the supercooling T0 - T = -0.15 K, where the kernel's real32 T0 (273.1499939 K) is 6e-6 K off, hence rel 5e-5 / Linf 1e-4 of column maximum for those two.",
      "parameter_overrides": {
        "dtcld": 12.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/qss_step250_row23_col25_enhanced_melting_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "pseml_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.3012579280437537e-15,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-19,
            "rel": 0.0
          }
        },
        {
          "variable": "pgeml_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.6989378654573032e-14,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-18,
            "rel": 0.0
          }
        },
        {
          "variable": "pseml",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": -1.3012579280437537e-15,
          "tolerance": {
            "rel": 5e-05
          }
        },
        {
          "variable": "pgeml",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": -1.6989378654573032e-14,
          "tolerance": {
            "rel": 5e-05
          }
        },
        {
          "variable": "psacw_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.6716229206748802e-16,
                    1.8152021301129775e-15,
                    1.88159063466701e-15,
                    2.933900640654038e-13,
                    1.8474456582235372e-09,
                    2.0782011674490543e-07,
                    1.8693773743761933e-06,
                    4.4054108480680165e-06,
                    5.13290059706574e-06,
                    5.352553148041909e-06,
                    4.962948870554045e-06,
                    4.1186174913882e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacw_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.3254133134614642e-15,
                    2.2508679958741385e-15,
                    2.677660650159687e-11,
                    3.091976182377436e-08,
                    1.0703187996059274e-05,
                    1.4599371048016719e-05,
                    1.3827793124973968e-05,
                    1.2916477756480019e-05,
                    1.1547148448158391e-05,
                    9.933583651003268e-06,
                    7.960884298814176e-06,
                    5.935199512176686e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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": 3e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "paacw",
          "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.036758130878215e-15,
                    2.0830757654614165e-15,
                    2.610565495000023e-11,
                    3.050908459125365e-08,
                    1.0505209767470479e-05,
                    1.3910167462832437e-05,
                    1.2814520850143226e-05,
                    1.1911345406612813e-05,
                    1.0617094269097914e-05,
                    9.179207723313115e-06,
                    7.426831305949175e-06,
                    5.598394651673489e-06,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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": 3e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "psacr_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,
                    2.860442799527414e-13,
                    1.863351276546666e-12,
                    1.6230934015895278e-12,
                    8.972452492217285e-11,
                    9.705867785163537e-08,
                    3.4139803508603156e-06,
                    1.7512181624513474e-07,
                    5.8631962872440914e-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,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacr_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,
                    3.747127503110432e-12,
                    4.438054471281413e-12,
                    4.129542811697731e-09,
                    7.573582963204622e-07,
                    0.00018094048439794638,
                    8.403968699226293e-06,
                    1.3888400546244826e-07,
                    3.982983960212419e-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,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 5e-10,
            "rel": 0.0
          }
        },
        {
          "variable": "praci_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,
                    2.02088492251809e-08,
                    5.612364905043e-08,
                    9.128392408088933e-08,
                    6.898735547079778e-08,
                    3.2808816259537e-08,
                    3.3665720022978115e-09,
                    1.3226225813555507e-13,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-13,
            "rel": 0.0
          }
        },
        {
          "variable": "piacr_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,
                    4.606156425086959e-12,
                    2.0838943822234292e-11,
                    6.856047800611653e-11,
                    5.63585681609114e-10,
                    3.1687023405895772e-09,
                    3.994213994252949e-08,
                    1.0002030143487266e-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-13,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci_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,
                    1.3944197715457764e-11,
                    7.001496827294389e-11,
                    4.330876568029058e-10,
                    7.150953002067829e-09,
                    3.0435806206486105e-08,
                    7.221419551073954e-08,
                    1.414504100601203e-07,
                    2.504347885773683e-07,
                    4.3386400405801775e-07,
                    7.437687168040538e-07,
                    1.4742871651817728e-06,
                    4.11791602380035e-06,
                    3.689025313807853e-06,
                    3.3982906422695922e-06,
                    3.1665694425078287e-06,
                    2.938638292978695e-06,
                    2.479407899658481e-06,
                    2.123797821880992e-06,
                    1.646008956831249e-06,
                    1.074194152177945e-06,
                    4.432416998483729e-07,
                    2.698554514276048e-08,
                    1.3867117197500972e-15,
                    1.4639877895012712e-17,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 1e-11,
            "rel": 0.0
          }
        },
        {
          "variable": "pgaci_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,
                    9.913875808794863e-12,
                    1.810611321777944e-10,
                    1.4462021801022898e-09,
                    2.1236223022035096e-08,
                    4.617760567864698e-08,
                    6.370325434034989e-08,
                    8.337979868451076e-08,
                    1.0601173179059031e-07,
                    1.3719992805523323e-07,
                    1.7909586954944106e-07,
                    2.7124312088469757e-07,
                    5.619902934443104e-07,
                    3.862989616853083e-07,
                    2.8061402877472706e-07,
                    2.0321994943577332e-07,
                    1.4702616038873278e-07,
                    9.684225984777695e-08,
                    6.243688165963448e-08,
                    3.478416336697072e-08,
                    1.638115439562581e-08,
                    4.254044899504508e-09,
                    3.302720841849848e-10,
                    3.3045322449074703e-16,
                    3.26899963809532e-18,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0
                  ]
                },
                "k"
              ]
            }
          },
          "tolerance": {
            "abs": 2e-12,
            "rel": 0.0
          }
        },
        {
          "variable": "pracs_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,
                    3.805590067870658e-08,
                    3.792527062231796e-08,
                    2.3535824561207458e-07,
                    2.813723404729006e-06,
                    3.6011471929533434e-06,
                    1.0455990745403695e-09,
                    2.3822966262964096e-13,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    0.0,
                    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-11,
            "rel": 0.0
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 1.6716229206748802e-16,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 1.8474456582235372e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacw",
          "time": 0.0,
          "coords": {
            "lev": 19
          },
          "expected": 4.1186174913882e-06,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 2.860442799527414e-13,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 12
          },
          "expected": 9.705867785163537e-08,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "psacr",
          "time": 0.0,
          "coords": {
            "lev": 15
          },
          "expected": 5.8631962872440914e-09,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 8
          },
          "expected": 3.747127503110432e-12,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 11
          },
          "expected": 7.573582963204622e-07,
          "tolerance": {
            "rel": 2e-06
          }
        },
        {
          "variable": "pgacr",
          "time": 0.0,
          "coords": {
            "lev": 15
          },
          "expected": 3.982983960212419e-09,
          "tolerance": {
            "rel": 2e-06
          }
        }
      ]
    },
    {
      "id": "scm_call120_ice_only_no_accretion",
      "description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp = 6, sfclay = 1, slab, YSU) at call 120 (step 60, 20:00 UTC), lowest 40 of the 59 layers (esm-spec 6.6 tests cannot rebind NLEV), replayed through the real64 kernels/wsm6_driver. Zero check: the column holds only cloud ice (qi <= 5e-5 in layers 30-40), no cloud water, rain, snow or graupel, so every collection rate and both enhanced-melting terms must be exactly zero although the ice-phase gates (T < 0 C, qi > qmin) are open in layers 25-40; the coefficients are still checked.",
      "parameter_overrides": {
        "dtcld": 60.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/scm_call120_ice_only_no_accretion_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "pacrc",
          "time": 0.0,
          "expected": 55442087.06914436,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "praci_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "piacr_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psaci_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pgaci_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psacw_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacw_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "paacw",
          "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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pracs_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "psacr_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pgacr_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pseml_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": 0,
            "rel": 0.0
          }
        },
        {
          "variable": "pgeml_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": 0,
            "rel": 0.0
          }
        }
      ]
    }
  ]
}