Version: dev

UrbanCanopyModel

Top-level composed diagnostic urban canopy model following the Community Land Model Urban (CLMU) parameterization of Oleson et al. (2010). Wires four CLMU subsystems — OfflineModeForcing (raw met → derived forcing), CLMUAtmosphere (atmospheric interface diagnostics), UrbanRadiation (solar/longwave radiation), and HeatMomentumFluxes (Monin-Obukhov surface fluxes) — via top-level coupling equations. All subsystems are inlined (ESS spec §4.7 composed-model pattern). Surface temperatures are prescribed as parameters (diagnostic mode). Migrated from UrbanCanopy.jl@9200edd4 src/urban_canopy_model.jl:41.

Domain
urban_canopy
Type
model
.esm schema
1.0.0
Source
components/urban_canopy/urban_canopy_model.esm
Tags
#urban_canopy #model #clmu #composed #diagnostic

Description

Top-level composed diagnostic urban canopy model following the Community Land Model Urban (CLMU) parameterization of Oleson et al. (2010). Wires four CLMU subsystems — OfflineModeForcing (raw met → derived forcing), CLMUAtmosphere (atmospheric interface diagnostics), UrbanRadiation (solar/longwave radiation), and HeatMomentumFluxes (Monin-Obukhov surface fluxes) — via top-level coupling equations. All subsystems are inlined (ESS spec §4.7 composed-model pattern). Surface temperatures are prescribed as parameters (diagnostic mode). Migrated from UrbanCanopy.jl@9200edd4 src/urban_canopy_model.jl:41.

Reference

_source_ref: UrbanCanopy.jl@9200edd4f15609f20339d3a7d104de8064544310:src/urban_canopy_model.jl:41

Composed model (ESS spec §4.7) following the SulfateFormation / WaterVaporThermodynamics pattern: four subsystems inlined under ‘subsystems’, top-level coupling equations wire the data flow.

Subsystem inlining avoids SubsystemRef dependencies on .esm files that may not yet be on main (the original rejection on esm-vmik was SubsystemRefError for heat_momentum_fluxes.esm). All subsystem content is self-contained here.

HeatMomentumFluxes (flux subsystem): the ψ_m/ψ_h piecewise stability functions produce deeply nested ifelse expressions. Under cse=False the _flat_to_sympy_rhs substitution chain explodes (~419K ops). The inline-test gate builds it under the library default cse=True (tools/run_esm_inline_tests.py lists only geoschem_fullchem.esm in CSE_FALSE_FILENAMES), so it needs no entry there and must not be given one; ULP-equivalence of cse=True ↔ cse=False was verified by esm-wqy1.

Variable naming: offline/atmos subsystems use ASCII (theta_atm, rho_atm, z_prime_atm following their standalone ESM convention); rad uses Unicode (μ_zen, α_, ε_ following urban_radiation.esm); flux uses ASCII (theta_atm, rho_atm, zeta_in following the ASCII convention of sibling subsystems). Coupling equations bridge the name differences.

Tolerance: model-level rel=1e-6 (composed algebraic system, no ODE integration; the piecewise ψ stability functions involve logarithms and cube-roots, ULP roundoff ~1e-15 at non-degenerate stability; rel=1e-6 gives comfortable headroom above ULP and matches the composed precedents SulfateFormation and WaterVaporThermodynamics)._

Parameters

NameUnitsDefaultDescription
S_atmW/m^2500.0Total incident solar radiation (Eq. 6.1 output)
T_atmK293.15Atmospheric temperature
P_atmPa101325.0Atmospheric pressure
q_atmkg/kg0.01Atmospheric specific humidity
W_atmm/s7.071Atmospheric wind speed
P_precipkg/(m^2*s)0.0Total precipitation rate
μ_zenrad0.5236Solar zenith angle (30°)
H_W11.0Canyon H/W ratio
W_roof10.5Roof fraction
H_canyonm10.0Canyon height
f_prvrd10.5Pervious road fraction
H_w_estm5.0Height for canyon wind estimate
z_0m1.0Roughness length
z_dm5.0Displacement height
α_roof_dir_vis10.2Roof albedo, direct, vis
α_roof_dir_nir10.25Roof albedo, direct, NIR
α_roof_dif_vis10.2Roof albedo, diffuse, vis
α_roof_dif_nir10.25Roof albedo, diffuse, NIR
α_road_dir_vis10.1Road albedo, direct, vis
α_road_dir_nir10.15Road albedo, direct, NIR
α_road_dif_vis10.1Road albedo, diffuse, vis
α_road_dif_nir10.15Road albedo, diffuse, NIR
α_wall_dir_vis10.3Wall albedo, direct, vis
α_wall_dir_nir10.35Wall albedo, direct, NIR
α_wall_dif_vis10.3Wall albedo, diffuse, vis
α_wall_dif_nir10.35Wall albedo, diffuse, NIR
ε_roof10.93Roof emissivity
ε_road10.95Road emissivity
ε_wall10.9Wall emissivity
T_g_roofK298.0Roof surface temperature
T_g_prvrdK295.0Pervious road surface temperature
T_g_imprvrdK297.0Impervious road surface temperature
T_g_sunwallK299.0Sunlit wall surface temperature
T_g_shdwallK294.0Shaded wall surface temperature
q_g_roofkg/kg0.012Roof surface saturated specific humidity
q_g_prvrdkg/kg0.011Pervious road specific humidity
q_g_imprvrdkg/kg0.012Impervious road saturated specific humidity
f_wet_roof10.2Wetted fraction of roof
f_wet_imprvrd10.1Wetted fraction of impervious road
zeta_in1-0.1Monin-Obukhov stability parameter ζ (external input; negative=unstable)

Equations

$$ UrbanCanopyModel.offline.S_{atm} = S_{atm} $$ $$ UrbanCanopyModel.offline.T_{atm} = T_{atm} $$ $$ UrbanCanopyModel.offline.P_{atm} = P_{atm} $$ $$ UrbanCanopyModel.offline.q_{atm} = q_{atm} $$ $$ UrbanCanopyModel.offline.W_{atm} = W_{atm} $$ $$ UrbanCanopyModel.offline.P_{precip} = P_{precip} $$ $$ UrbanCanopyModel.atmos.z_{prime\,atm} = UrbanCanopyModel.offline.z_{prime\,atm} $$ $$ UrbanCanopyModel.atmos.T_{atm} = T_{atm} $$ $$ UrbanCanopyModel.atmos.P_{atm} = P_{atm} $$ $$ UrbanCanopyModel.atmos.q_{atm} = q_{atm} $$ $$ UrbanCanopyModel.atmos.z_{0} = z_{0} $$ $$ UrbanCanopyModel.atmos.z_{d} = z_{d} $$ $$ UrbanCanopyModel.rad.S_{atm\,dir\,vis} = UrbanCanopyModel.offline.S_{atm\,dir\,vis} $$ $$ UrbanCanopyModel.rad.S_{atm\,dir\,nir} = UrbanCanopyModel.offline.S_{atm\,dir\,nir} $$ $$ UrbanCanopyModel.rad.S_{atm\,dif\,vis} = UrbanCanopyModel.offline.S_{atm\,dif\,vis} $$ $$ UrbanCanopyModel.rad.S_{atm\,dif\,nir} = UrbanCanopyModel.offline.S_{atm\,dif\,nir} $$ $$ UrbanCanopyModel.rad.L_{atm\,down} = UrbanCanopyModel.offline.L_{atm\,down} $$ $$ UrbanCanopyModel.rad.μ_{zen} = μ_{zen} $$ $$ UrbanCanopyModel.rad.H_{W} = H_{W} $$ $$ UrbanCanopyModel.rad.W_{roof} = W_{roof} $$ $$ UrbanCanopyModel.rad.α_{roof\,dir\,vis} = α_{roof\,dir\,vis} $$ $$ UrbanCanopyModel.rad.α_{roof\,dir\,nir} = α_{roof\,dir\,nir} $$ $$ UrbanCanopyModel.rad.α_{roof\,dif\,vis} = α_{roof\,dif\,vis} $$ $$ UrbanCanopyModel.rad.α_{roof\,dif\,nir} = α_{roof\,dif\,nir} $$ $$ UrbanCanopyModel.rad.α_{road\,dir\,vis} = α_{road\,dir\,vis} $$ $$ UrbanCanopyModel.rad.α_{road\,dir\,nir} = α_{road\,dir\,nir} $$ $$ UrbanCanopyModel.rad.α_{road\,dif\,vis} = α_{road\,dif\,vis} $$ $$ UrbanCanopyModel.rad.α_{road\,dif\,nir} = α_{road\,dif\,nir} $$ $$ UrbanCanopyModel.rad.α_{wall\,dir\,vis} = α_{wall\,dir\,vis} $$ $$ UrbanCanopyModel.rad.α_{wall\,dir\,nir} = α_{wall\,dir\,nir} $$ $$ UrbanCanopyModel.rad.α_{wall\,dif\,vis} = α_{wall\,dif\,vis} $$ $$ UrbanCanopyModel.rad.α_{wall\,dif\,nir} = α_{wall\,dif\,nir} $$ $$ UrbanCanopyModel.rad.ε_{roof} = ε_{roof} $$ $$ UrbanCanopyModel.rad.ε_{road} = ε_{road} $$ $$ UrbanCanopyModel.rad.ε_{wall} = ε_{wall} $$ $$ UrbanCanopyModel.rad.T_{roof} = T_{g\,roof} $$ $$ UrbanCanopyModel.rad.T_{road} = T_{g\,imprvrd} $$ $$ UrbanCanopyModel.rad.T_{sunwall} = T_{g\,sunwall} $$ $$ UrbanCanopyModel.rad.T_{shdwall} = T_{g\,shdwall} $$ $$ UrbanCanopyModel.flux.u_{atm} = UrbanCanopyModel.offline.u_{atm} $$ $$ UrbanCanopyModel.flux.v_{atm} = UrbanCanopyModel.offline.v_{atm} $$ $$ UrbanCanopyModel.flux.theta_{atm} = UrbanCanopyModel.offline.theta_{atm} $$ $$ UrbanCanopyModel.flux.q_{atm} = q_{atm} $$ $$ UrbanCanopyModel.flux.rho_{atm} = UrbanCanopyModel.atmos.rho_{atm} $$ $$ UrbanCanopyModel.flux.z_{atm\,m} = UrbanCanopyModel.atmos.z_{atm} $$ $$ UrbanCanopyModel.flux.z_{atm\,h} = UrbanCanopyModel.atmos.z_{atm} $$ $$ UrbanCanopyModel.flux.z_{atm\,w} = UrbanCanopyModel.atmos.z_{atm} $$ $$ UrbanCanopyModel.flux.H_{W} = H_{W} $$ $$ UrbanCanopyModel.flux.H_{canyon} = H_{canyon} $$ $$ UrbanCanopyModel.flux.W_{roof} = W_{roof} $$ $$ UrbanCanopyModel.flux.f_{prvrd} = f_{prvrd} $$ $$ UrbanCanopyModel.flux.H_{w\,est} = H_{w\,est} $$ $$ UrbanCanopyModel.flux.T_{g\,roof} = T_{g\,roof} $$ $$ UrbanCanopyModel.flux.T_{g\,prvrd} = T_{g\,prvrd} $$ $$ UrbanCanopyModel.flux.T_{g\,imprvrd} = T_{g\,imprvrd} $$ $$ UrbanCanopyModel.flux.T_{g\,sunwall} = T_{g\,sunwall} $$ $$ UrbanCanopyModel.flux.T_{g\,shdwall} = T_{g\,shdwall} $$ $$ UrbanCanopyModel.flux.q_{g\,roof} = q_{g\,roof} $$ $$ UrbanCanopyModel.flux.q_{g\,prvrd} = q_{g\,prvrd} $$ $$ UrbanCanopyModel.flux.q_{g\,imprvrd} = q_{g\,imprvrd} $$ $$ UrbanCanopyModel.flux.f_{wet\,roof} = f_{wet\,roof} $$ $$ UrbanCanopyModel.flux.f_{wet\,imprvrd} = f_{wet\,imprvrd} $$ $$ UrbanCanopyModel.flux.zeta_{in} = zeta_{in} $$

Expression Templates

band_det

Parameters: a_r, a_w

$$ 1.0 - \left(a_{w} \cdot T_{ww}\right)^{2.0} - 2.0 \cdot a_{w} \cdot T_{rw} \cdot a_{r} \cdot T_{wr} \cdot \left(1.0 + a_{w} \cdot T_{ww}\right) $$

band_net_road

Parameters: a_r, a_w, S_r, S_sw, S_sh, det_var

$$ \left(1.0 - a_{r}\right) \cdot \frac{\left(1.0 - \left(a_{w} \cdot T_{ww}\right)^{2.0}\right) \cdot S_{r} + a_{w} \cdot T_{rw} \cdot \left(1.0 + a_{w} \cdot T_{ww}\right) \cdot S_{sw} + a_{w} \cdot T_{rw} \cdot \left(1.0 + a_{w} \cdot T_{ww}\right) \cdot S_{sh}}{det_{var}} $$

band_net_sw

Parameters: a_r, a_w, S_r, S_sw, S_sh, det_var

$$ \left(1.0 - a_{w}\right) \cdot \frac{a_{r} \cdot T_{wr} \cdot \left(1.0 + a_{w} \cdot T_{ww}\right) \cdot S_{r} + \left(1.0 - a_{w} \cdot T_{rw} \cdot a_{r} \cdot T_{wr}\right) \cdot S_{sw} + \left(a_{w} \cdot T_{ww} + a_{w} \cdot T_{rw} \cdot a_{r} \cdot T_{wr}\right) \cdot S_{sh}}{det_{var}} $$

band_net_sh

Parameters: a_r, a_w, S_r, S_sw, S_sh, det_var

$$ \left(1.0 - a_{w}\right) \cdot \frac{a_{r} \cdot T_{wr} \cdot \left(1.0 + a_{w} \cdot T_{ww}\right) \cdot S_{r} + \left(a_{w} \cdot T_{ww} + a_{w} \cdot T_{rw} \cdot a_{r} \cdot T_{wr}\right) \cdot S_{sw} + \left(1.0 - a_{w} \cdot T_{rw} \cdot a_{r} \cdot T_{wr}\right) \cdot S_{sh}}{det_{var}} $$

band_refl_sky

Parameters: S_r, S_sw, S_sh, net_road, net_sw, net_sh

$$ S_{r} + \left(S_{sw} + S_{sh}\right) \cdot H_{W} - \left(net_{road} + \left(net_{sw} + net_{sh}\right) \cdot H_{W}\right) $$

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "notes": "source_ref: UrbanCanopy.jl@9200edd4f15609f20339d3a7d104de8064544310:src/urban_canopy_model.jl:41\n\nComposed model (ESS spec §4.7) following the SulfateFormation / WaterVaporThermodynamics pattern: four subsystems inlined under 'subsystems', top-level coupling equations wire the data flow.\n\nSubsystem inlining avoids SubsystemRef dependencies on .esm files that may not yet be on main (the original rejection on esm-vmik was SubsystemRefError for heat_momentum_fluxes.esm). All subsystem content is self-contained here.\n\nHeatMomentumFluxes (flux subsystem): the ψ_m/ψ_h piecewise stability functions produce deeply nested ifelse expressions. Under cse=False the _flat_to_sympy_rhs substitution chain explodes (~419K ops). The inline-test gate builds it under the library default cse=True (tools/run_esm_inline_tests.py lists only geoschem_fullchem.esm in CSE_FALSE_FILENAMES), so it needs no entry there and must not be given one; ULP-equivalence of cse=True ↔ cse=False was verified by esm-wqy1.\n\nVariable naming: offline/atmos subsystems use ASCII (theta_atm, rho_atm, z_prime_atm following their standalone ESM convention); rad uses Unicode (μ_zen, α_*, ε_* following urban_radiation.esm); flux uses ASCII (theta_atm, rho_atm, zeta_in following the ASCII convention of sibling subsystems). Coupling equations bridge the name differences.\n\nTolerance: model-level rel=1e-6 (composed algebraic system, no ODE integration; the piecewise ψ stability functions involve logarithms and cube-roots, ULP roundoff ~1e-15 at non-degenerate stability; rel=1e-6 gives comfortable headroom above ULP and matches the composed precedents SulfateFormation and WaterVaporThermodynamics)."
  },
  "tolerance": {
    "rel": 1e-06
  },
  "variables": {
    "S_atm": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 500.0,
      "description": "Total incident solar radiation (Eq. 6.1 output)"
    },
    "T_atm": {
      "type": "parameter",
      "units": "K",
      "default": 293.15,
      "description": "Atmospheric temperature"
    },
    "P_atm": {
      "type": "parameter",
      "units": "Pa",
      "default": 101325.0,
      "description": "Atmospheric pressure"
    },
    "q_atm": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 0.01,
      "description": "Atmospheric specific humidity"
    },
    "W_atm": {
      "type": "parameter",
      "units": "m/s",
      "default": 7.071,
      "description": "Atmospheric wind speed"
    },
    "P_precip": {
      "type": "parameter",
      "units": "kg/(m^2*s)",
      "default": 0.0,
      "description": "Total precipitation rate"
    },
    "μ_zen": {
      "type": "parameter",
      "units": "rad",
      "default": 0.5236,
      "description": "Solar zenith angle (30°)"
    },
    "H_W": {
      "type": "parameter",
      "units": "1",
      "default": 1.0,
      "description": "Canyon H/W ratio"
    },
    "W_roof": {
      "type": "parameter",
      "units": "1",
      "default": 0.5,
      "description": "Roof fraction"
    },
    "H_canyon": {
      "type": "parameter",
      "units": "m",
      "default": 10.0,
      "description": "Canyon height"
    },
    "f_prvrd": {
      "type": "parameter",
      "units": "1",
      "default": 0.5,
      "description": "Pervious road fraction"
    },
    "H_w_est": {
      "type": "parameter",
      "units": "m",
      "default": 5.0,
      "description": "Height for canyon wind estimate"
    },
    "z_0": {
      "type": "parameter",
      "units": "m",
      "default": 1.0,
      "description": "Roughness length"
    },
    "z_d": {
      "type": "parameter",
      "units": "m",
      "default": 5.0,
      "description": "Displacement height"
    },
    "α_roof_dir_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.2,
      "description": "Roof albedo, direct, vis"
    },
    "α_roof_dir_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.25,
      "description": "Roof albedo, direct, NIR"
    },
    "α_roof_dif_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.2,
      "description": "Roof albedo, diffuse, vis"
    },
    "α_roof_dif_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.25,
      "description": "Roof albedo, diffuse, NIR"
    },
    "α_road_dir_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Road albedo, direct, vis"
    },
    "α_road_dir_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.15,
      "description": "Road albedo, direct, NIR"
    },
    "α_road_dif_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Road albedo, diffuse, vis"
    },
    "α_road_dif_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.15,
      "description": "Road albedo, diffuse, NIR"
    },
    "α_wall_dir_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.3,
      "description": "Wall albedo, direct, vis"
    },
    "α_wall_dir_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.35,
      "description": "Wall albedo, direct, NIR"
    },
    "α_wall_dif_vis": {
      "type": "parameter",
      "units": "1",
      "default": 0.3,
      "description": "Wall albedo, diffuse, vis"
    },
    "α_wall_dif_nir": {
      "type": "parameter",
      "units": "1",
      "default": 0.35,
      "description": "Wall albedo, diffuse, NIR"
    },
    "ε_roof": {
      "type": "parameter",
      "units": "1",
      "default": 0.93,
      "description": "Roof emissivity"
    },
    "ε_road": {
      "type": "parameter",
      "units": "1",
      "default": 0.95,
      "description": "Road emissivity"
    },
    "ε_wall": {
      "type": "parameter",
      "units": "1",
      "default": 0.9,
      "description": "Wall emissivity"
    },
    "T_g_roof": {
      "type": "parameter",
      "units": "K",
      "default": 298.0,
      "description": "Roof surface temperature"
    },
    "T_g_prvrd": {
      "type": "parameter",
      "units": "K",
      "default": 295.0,
      "description": "Pervious road surface temperature"
    },
    "T_g_imprvrd": {
      "type": "parameter",
      "units": "K",
      "default": 297.0,
      "description": "Impervious road surface temperature"
    },
    "T_g_sunwall": {
      "type": "parameter",
      "units": "K",
      "default": 299.0,
      "description": "Sunlit wall surface temperature"
    },
    "T_g_shdwall": {
      "type": "parameter",
      "units": "K",
      "default": 294.0,
      "description": "Shaded wall surface temperature"
    },
    "q_g_roof": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 0.012,
      "description": "Roof surface saturated specific humidity"
    },
    "q_g_prvrd": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 0.011,
      "description": "Pervious road specific humidity"
    },
    "q_g_imprvrd": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 0.012,
      "description": "Impervious road saturated specific humidity"
    },
    "f_wet_roof": {
      "type": "parameter",
      "units": "1",
      "default": 0.2,
      "description": "Wetted fraction of roof"
    },
    "f_wet_imprvrd": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Wetted fraction of impervious road"
    },
    "zeta_in": {
      "type": "parameter",
      "units": "1",
      "default": -0.1,
      "description": "Monin-Obukhov stability parameter ζ (external input; negative=unstable)"
    }
  },
  "subsystems": {
    "offline": {
      "variables": {
        "sigma_SB": {
          "type": "parameter",
          "units": "W/(m^2*K^4)",
          "default": 5.67e-08,
          "description": "Stefan-Boltzmann constant (Oleson Table 1.4) — upstream `@constants` σ_SB; coefficient on the T_atm^4 upward emission term in Eq. 6.9"
        },
        "T_f": {
          "type": "parameter",
          "units": "K",
          "default": 273.15,
          "description": "Freezing temperature of water (Oleson Table 1.4) — reference temperature for the rain/snow partition (Eq. 6.13): below T_f the slope-0.5 ramp goes negative and clamps to 0 (all snow); above T_f + 2 K it goes above 1 and clamps (all rain)"
        },
        "MW_da": {
          "type": "parameter",
          "units": "kg/mol",
          "default": 0.028966,
          "description": "Molecular weight of dry air (Oleson Table 1.4) — upstream `@constants`; used to derive the ε_ratio and one_minus_ε constants below. The derivation is evaluated at the upstream defaults and the resulting ratios are frozen in as their own parameters; this MW_da default is exposed for cross-reference"
        },
        "MW_wv": {
          "type": "parameter",
          "units": "kg/mol",
          "default": 0.018016,
          "description": "Molecular weight of water vapor (Oleson Table 1.4) — upstream `@constants`; used to derive the ε_ratio and one_minus_ε constants below"
        },
        "epsilon_ratio": {
          "type": "parameter",
          "units": "1",
          "default": 0.6219705862045157,
          "description": "Ratio of molecular weights MW_wv/MW_da ≈ 0.622 (Oleson Table 1.4, p. 12) — upstream `@constants` ε_ratio = MW_wv/MW_da, frozen at the upstream-default IEEE-754 value `0.018016 / 0.028966`. Appears in Eq. 6.10 as the constant term in the denominator: e_atm = P_atm * q_atm / (epsilon_ratio + one_minus_epsilon * q_atm)"
        },
        "one_minus_epsilon": {
          "type": "parameter",
          "units": "1",
          "default": 0.37802941379548427,
          "description": "One minus MW_wv/MW_da ≈ 0.378 — upstream `@constants` one_minus_ε = 1.0 - MW_wv/MW_da, frozen at the upstream-default IEEE-754 value. Appears in Eq. 6.10 as the coefficient of q_atm in the denominator. Note: epsilon_ratio + one_minus_epsilon is exactly 1.0 by construction at the upstream defaults"
        },
        "alpha_vis": {
          "type": "parameter",
          "units": "1",
          "default": 0.5,
          "description": "Ratio of visible to total incident solar radiation (Oleson Eq. 6.6) — upstream `@constants` α_vis = 0.5. Within the canonical S_atm = 500 W/m^2 fixture, alpha_vis * S_atm = 250 W/m^2 in visible and (1 - alpha_vis) * S_atm = 250 W/m^2 in NIR. The 50/50 split is a standard solar-band partition for clear-sky surface conditions in CLM"
        },
        "a_0": {
          "type": "parameter",
          "units": "1",
          "default": 0.17639,
          "description": "Visible direct-fraction polynomial coefficient a_0 (Oleson Eq. 6.7, dimensionless) — at zero visible flux R_vis_raw = a_0 = 0.17639 (the y-intercept of the cubic)"
        },
        "a_1": {
          "type": "parameter",
          "units": "m^2/W",
          "default": 0.0038,
          "description": "Visible direct-fraction polynomial coefficient a_1 (Oleson Eq. 6.7) — linear term in (alpha_vis * S_atm)"
        },
        "a_2": {
          "type": "parameter",
          "units": "m^4/W^2",
          "default": -9.0039e-06,
          "description": "Visible direct-fraction polynomial coefficient a_2 (Oleson Eq. 6.7) — quadratic term in (alpha_vis * S_atm); negative, bending the cubic downward at mid-range fluxes"
        },
        "a_3": {
          "type": "parameter",
          "units": "m^6/W^3",
          "default": 8.1351e-09,
          "description": "Visible direct-fraction polynomial coefficient a_3 (Oleson Eq. 6.7) — cubic term in (alpha_vis * S_atm); positive, bending the cubic back upward at high fluxes"
        },
        "b_0": {
          "type": "parameter",
          "units": "1",
          "default": 0.29548,
          "description": "NIR direct-fraction polynomial coefficient b_0 (Oleson Eq. 6.8, dimensionless) — at zero NIR flux R_nir_raw = b_0 = 0.29548"
        },
        "b_1": {
          "type": "parameter",
          "units": "m^2/W",
          "default": 0.00504,
          "description": "NIR direct-fraction polynomial coefficient b_1 (Oleson Eq. 6.8) — linear term in ((1 - alpha_vis) * S_atm)"
        },
        "b_2": {
          "type": "parameter",
          "units": "m^4/W^2",
          "default": -1.4957e-05,
          "description": "NIR direct-fraction polynomial coefficient b_2 (Oleson Eq. 6.8) — quadratic term in ((1 - alpha_vis) * S_atm); negative"
        },
        "b_3": {
          "type": "parameter",
          "units": "m^6/W^3",
          "default": 1.4881e-08,
          "description": "NIR direct-fraction polynomial coefficient b_3 (Oleson Eq. 6.8) — cubic term in ((1 - alpha_vis) * S_atm); positive"
        },
        "idso_base": {
          "type": "parameter",
          "units": "1",
          "default": 0.7,
          "description": "Idso (1981) base emissivity factor (Oleson Eq. 6.9, dimensionless) — the additive constant in the bracketed emissivity factor `[0.70 + idso_coeff * e_atm * exp(idso_T_ref / T_atm)]`. Represents the dry-air contribution to clear-sky atmospheric emissivity"
        },
        "idso_coeff": {
          "type": "parameter",
          "units": "Pa^-1",
          "default": 5.95e-07,
          "description": "Idso (1981) vapor-pressure coefficient (Oleson Eq. 6.9) — encodes the upstream pre-multiplied form `5.95e-5 * 0.01 = 5.95e-7` Pa^-1 from the upstream comment, so the equation reads `idso_base + idso_coeff * e_atm * exp(idso_T_ref / T_atm)` without an inline literal 0.01 factor. The 0.01 factor converts e_atm from Pa to a 100-Pa unit equivalent (a hectopascal) so that the dimensionless product idso_coeff * e_atm is at unit order ~0.1 for moist atmospheres"
        },
        "idso_T_ref": {
          "type": "parameter",
          "units": "K",
          "default": 1500.0,
          "description": "Idso (1981) temperature reference (Oleson Eq. 6.9) — argument of the exp() factor: exp(1500/T_atm). At T_atm = 273.15 K the factor is exp(5.49) ≈ 242; at T_atm = 293.15 K it is exp(5.12) ≈ 167. Captures the strong moisture-temperature coupling of clear-sky downwelling longwave"
        },
        "f_P_slope": {
          "type": "parameter",
          "units": "K^-1",
          "default": 0.5,
          "description": "Rain-fraction slope (Oleson Eq. 6.13) — coefficient of (T_atm - T_f) in the linear rain-fraction ramp. With slope 0.5 K^-1, f_P_raw crosses 0 at T_atm = T_f and crosses 1 at T_atm = T_f + 2 K, giving a 2-K-wide transition zone for the rain/snow partition"
        },
        "R_min": {
          "type": "parameter",
          "units": "1",
          "default": 0.01,
          "description": "Minimum direct fraction (Oleson Eqs. 6.7-6.8, dimensionless) — lower bound of the [R_min, R_max] clamp on R_vis_raw and R_nir_raw; prevents the polynomial fit from producing implausibly small direct fractions at the polynomial's roots / sign changes"
        },
        "R_max": {
          "type": "parameter",
          "units": "1",
          "default": 0.99,
          "description": "Maximum direct fraction (Oleson Eqs. 6.7-6.8, dimensionless) — upper bound of the [R_min, R_max] clamp; prevents the polynomial fit from producing a direct fraction > 1 at high S_atm (where the polynomial extrapolates outside its calibration range)"
        },
        "zero_dimless": {
          "type": "parameter",
          "units": "1",
          "default": 0.0,
          "description": "Zero (dimensionless) — upstream `@constants` zero_dimless used as the lower clamp on f_P (Eq. 6.13). Identically 0.0; the parameter form preserves the upstream contract that all clamp bounds are declared `@constants` rather than inline literals"
        },
        "one_dimless": {
          "type": "parameter",
          "units": "1",
          "default": 1.0,
          "description": "One (dimensionless) — upstream `@constants` one_dimless used (a) as the upper clamp on f_P (Eq. 6.13), (b) as the multiplicand in `(1 - alpha_vis)` for NIR weighting, (c) as the multiplicand in `(1 - R_vis)` and `(1 - R_nir)` for diffuse-fraction extraction, and (d) as the multiplicand in `(1 - f_P)` for the snow-fraction extraction. Identically 1.0"
        },
        "sqrt2_inv": {
          "type": "parameter",
          "units": "1",
          "default": 0.7071067811865475,
          "description": "1/√2 (dimensionless) — upstream `@constants` sqrt2_inv = 1.0 / sqrt(2.0), frozen at the IEEE-754 double value. Used in the wind decomposition u_atm = v_atm = sqrt2_inv * W_atm so that u_atm^2 + v_atm^2 = W_atm^2 exactly (anchored by the wind_decomposition_pythagorean test). The decomposition assumes the wind is equally split between zonal and meridional components in offline mode — a default that downstream CLMU surface-layer routines can override if a wind-direction observation is available"
        },
        "z_prime_atm_val": {
          "type": "parameter",
          "units": "m",
          "default": 30.0,
          "description": "Atmospheric reference height (Oleson CLMU Tech Note p. 149) — upstream `@constants`. The reference height at which the atmospheric forcing inputs (T_atm, q_atm, W_atm) are measured; CLMU's surface-layer turbulence parameterizations use this to compute the Monin-Obukhov stability profile. 30 m is the standard CLMU default; downstream consumers can rebind this parameter for site-specific tower heights"
        },
        "S_atm": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 500.0,
          "description": "Total incident solar radiation at the model time step (Oleson Eq. 6.1 output) — upstream `@parameters`. The single solar-radiation input to the four-way partition (Eqs. 6.2-6.5); already at the model time step (Eq. 6.1 temporal-downscaling is an upstream preprocessing step). Default 500 W/m^2 mirrors the upstream-test canonical fixture"
        },
        "T_atm": {
          "type": "unknown",
          "units": "K",
          "default": 293.15,
          "description": "Atmospheric temperature at z_prime_atm_val (Oleson CLMU Ch. 6) — upstream `@parameters`. Used in the Idso longwave formula (Eq. 6.9), the rain/snow partition (Eq. 6.13), and assigned to theta_atm directly (p. 149). Default 293.15 K (20°C) mirrors the upstream canonical fixture"
        },
        "P_atm": {
          "type": "unknown",
          "units": "Pa",
          "default": 101325.0,
          "description": "Atmospheric pressure at z_prime_atm_val — upstream `@parameters`. Multiplies q_atm in the vapor-pressure formula (Eq. 6.10) — at standard pressure 101325 Pa and q_atm = 0.01 the vapor pressure e_atm ≈ 1619 Pa (about 16 hPa)"
        },
        "q_atm": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.01,
          "description": "Atmospheric specific humidity at z_prime_atm_val — upstream `@parameters`. The single moisture input to the Idso longwave formula (via e_atm in Eq. 6.10). Default 0.01 kg/kg (10 g of water per kg of moist air) is representative of mid-latitude summer surface conditions"
        },
        "W_atm": {
          "type": "unknown",
          "units": "m/s",
          "default": 5.0,
          "description": "Atmospheric wind speed at z_prime_atm_val — upstream `@parameters`. Split equally between zonal and meridional via the sqrt2_inv decomposition (p. 149). Default 5 m/s is a moderate breeze"
        },
        "P_precip": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "default": 0.0,
          "description": "Total precipitation rate (rain + snow) — upstream `@parameters`. Partitioned into q_rain and q_snow via the temperature-dependent f_P ramp (Eqs. 6.11-6.13). Default 0 (dry conditions) so non-precipitation tests do not need to override this parameter"
        },
        "R_vis_raw": {
          "type": "unknown",
          "units": "1",
          "description": "Unclamped visible direct fraction (Oleson Eq. 6.7) — the raw polynomial output `a_0 + a_1*(alpha_vis*S_atm) + a_2*(alpha_vis*S_atm)^2 + a_3*(alpha_vis*S_atm)^3` before the [R_min, R_max] clamp. Exposed so downstream consumers can detect when the clamp activates (the polynomial may exceed 0.99 or fall below 0.01 at extreme S_atm)"
        },
        "R_nir_raw": {
          "type": "unknown",
          "units": "1",
          "description": "Unclamped NIR direct fraction (Oleson Eq. 6.8) — the raw polynomial output `b_0 + b_1*((1-alpha_vis)*S_atm) + b_2*((1-alpha_vis)*S_atm)^2 + b_3*((1-alpha_vis)*S_atm)^3` before the [R_min, R_max] clamp"
        },
        "R_vis": {
          "type": "unknown",
          "units": "1",
          "description": "Visible direct fraction clamped to [R_min, R_max] (Oleson Eq. 6.7): max(R_min, min(R_max, R_vis_raw)). The fraction of the visible incident flux that is direct beam (rest is diffuse)"
        },
        "R_nir": {
          "type": "unknown",
          "units": "1",
          "description": "NIR direct fraction clamped to [R_min, R_max] (Oleson Eq. 6.8): max(R_min, min(R_max, R_nir_raw))"
        },
        "S_atm_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct-beam visible solar radiation at the surface (Oleson Eq. 6.2): R_vis * (alpha_vis * S_atm). The shortwave-vis component that hits a horizontal surface from the direct solar beam"
        },
        "S_atm_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct-beam NIR solar radiation at the surface (Oleson Eq. 6.3): R_nir * ((1 - alpha_vis) * S_atm)"
        },
        "S_atm_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse visible solar radiation at the surface (Oleson Eq. 6.4): (1 - R_vis) * (alpha_vis * S_atm)"
        },
        "S_atm_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse NIR solar radiation at the surface (Oleson Eq. 6.5): (1 - R_nir) * ((1 - alpha_vis) * S_atm)"
        },
        "e_atm": {
          "type": "unknown",
          "units": "Pa",
          "description": "Atmospheric vapor pressure (Oleson Eq. 6.10): P_atm * q_atm / (epsilon_ratio + one_minus_epsilon * q_atm). The partial pressure of water vapor in the atmosphere derived from specific humidity using the molecular-weight-ratio formula. Zero at q_atm = 0; bounded above by P_atm * q_atm / epsilon_ratio at small q_atm"
        },
        "L_atm_down": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Atmospheric downwelling longwave radiation at the surface (Oleson Eq. 6.9, after Idso 1981): (idso_base + idso_coeff * e_atm * exp(idso_T_ref / T_atm)) * sigma_SB * T_atm^4. Sum of a clear-sky dry-air contribution and a moisture-amplification term — increases monotonically with both T_atm (Stefan-Boltzmann ^4) and q_atm (through e_atm)"
        },
        "f_P_raw": {
          "type": "unknown",
          "units": "1",
          "description": "Unclamped rain fraction (Oleson Eq. 6.13): f_P_slope * (T_atm - T_f). The linear T_atm - T_f ramp before the [0, 1] clamp. Negative below freezing, > 1 above T_f + 2 K"
        },
        "f_P": {
          "type": "unknown",
          "units": "1",
          "description": "Rain fraction clamped to [zero_dimless, one_dimless] (Oleson Eq. 6.13): max(zero_dimless, min(one_dimless, f_P_raw)). The fraction of total precipitation that falls as rain; complement (1 - f_P) falls as snow"
        },
        "q_rain": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Rain (liquid precipitation) rate (Oleson Eq. 6.11): P_precip * f_P. Zero below T_f; equals P_precip above T_f + 2 K"
        },
        "q_snow": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Snow (solid precipitation) rate (Oleson Eq. 6.12): P_precip * (one_dimless - f_P). Equals P_precip below T_f; zero above T_f + 2 K. By construction q_rain + q_snow = P_precip for all T_atm"
        },
        "u_atm": {
          "type": "unknown",
          "units": "m/s",
          "description": "Zonal (east-west) wind component (Oleson CLMU p. 149): sqrt2_inv * W_atm. Equal-split assumption — offline mode lacks wind-direction information, so the wind is decomposed isotropically. By construction u_atm^2 + v_atm^2 = W_atm^2"
        },
        "v_atm": {
          "type": "unknown",
          "units": "m/s",
          "description": "Meridional (north-south) wind component (Oleson CLMU p. 149): sqrt2_inv * W_atm. Equal-split assumption, see u_atm"
        },
        "theta_atm": {
          "type": "unknown",
          "units": "K",
          "description": "Atmospheric potential temperature (Oleson CLMU p. 149) — upstream `θ_atm`; identified with T_atm in offline mode (no atmospheric layer above z_prime_atm_val, so the potential-temperature reference is the surface). Used by CLMU's Monin-Obukhov surface-layer routine"
        },
        "z_prime_atm": {
          "type": "unknown",
          "units": "m",
          "description": "Atmospheric reference height (Oleson CLMU p. 149) — assigned to z_prime_atm_val (default 30 m). Exposed as a state output so a coupled CLMU build can wire it to the surface-layer routine via observed-equation forwarding"
        }
      },
      "equations": [
        {
          "lhs": "R_vis_raw",
          "rhs": {
            "op": "+",
            "args": [
              "a_0",
              {
                "op": "*",
                "args": [
                  "a_1",
                  {
                    "op": "*",
                    "args": [
                      "alpha_vis",
                      "S_atm"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "a_2",
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "alpha_vis",
                          "S_atm"
                        ]
                      },
                      2.0
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "a_3",
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "alpha_vis",
                          "S_atm"
                        ]
                      },
                      3.0
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "R_nir_raw",
          "rhs": {
            "op": "+",
            "args": [
              "b_0",
              {
                "op": "*",
                "args": [
                  "b_1",
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          "one_dimless",
                          "alpha_vis"
                        ]
                      },
                      "S_atm"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "b_2",
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              "one_dimless",
                              "alpha_vis"
                            ]
                          },
                          "S_atm"
                        ]
                      },
                      2.0
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "b_3",
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              "one_dimless",
                              "alpha_vis"
                            ]
                          },
                          "S_atm"
                        ]
                      },
                      3.0
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "R_vis",
          "rhs": {
            "op": "max",
            "args": [
              "R_min",
              {
                "op": "min",
                "args": [
                  "R_max",
                  "R_vis_raw"
                ]
              }
            ]
          }
        },
        {
          "lhs": "R_nir",
          "rhs": {
            "op": "max",
            "args": [
              "R_min",
              {
                "op": "min",
                "args": [
                  "R_max",
                  "R_nir_raw"
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_atm_dir_vis",
          "rhs": {
            "op": "*",
            "args": [
              "R_vis",
              {
                "op": "*",
                "args": [
                  "alpha_vis",
                  "S_atm"
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_atm_dir_nir",
          "rhs": {
            "op": "*",
            "args": [
              "R_nir",
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "one_dimless",
                      "alpha_vis"
                    ]
                  },
                  "S_atm"
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_atm_dif_vis",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "one_dimless",
                  "R_vis"
                ]
              },
              {
                "op": "*",
                "args": [
                  "alpha_vis",
                  "S_atm"
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_atm_dif_nir",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  "one_dimless",
                  "R_nir"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      "one_dimless",
                      "alpha_vis"
                    ]
                  },
                  "S_atm"
                ]
              }
            ]
          }
        },
        {
          "lhs": "e_atm",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  "P_atm",
                  "q_atm"
                ]
              },
              {
                "op": "+",
                "args": [
                  "epsilon_ratio",
                  {
                    "op": "*",
                    "args": [
                      "one_minus_epsilon",
                      "q_atm"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_atm_down",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "+",
                "args": [
                  "idso_base",
                  {
                    "op": "*",
                    "args": [
                      "idso_coeff",
                      "e_atm",
                      {
                        "op": "exp",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "idso_T_ref",
                              "T_atm"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              "sigma_SB",
              {
                "op": "^",
                "args": [
                  "T_atm",
                  4.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "f_P_raw",
          "rhs": {
            "op": "*",
            "args": [
              "f_P_slope",
              {
                "op": "-",
                "args": [
                  "T_atm",
                  "T_f"
                ]
              }
            ]
          }
        },
        {
          "lhs": "f_P",
          "rhs": {
            "op": "max",
            "args": [
              "zero_dimless",
              {
                "op": "min",
                "args": [
                  "one_dimless",
                  "f_P_raw"
                ]
              }
            ]
          }
        },
        {
          "lhs": "q_rain",
          "rhs": {
            "op": "*",
            "args": [
              "P_precip",
              "f_P"
            ]
          }
        },
        {
          "lhs": "q_snow",
          "rhs": {
            "op": "*",
            "args": [
              "P_precip",
              {
                "op": "-",
                "args": [
                  "one_dimless",
                  "f_P"
                ]
              }
            ]
          }
        },
        {
          "lhs": "u_atm",
          "rhs": {
            "op": "*",
            "args": [
              "sqrt2_inv",
              "W_atm"
            ]
          }
        },
        {
          "lhs": "v_atm",
          "rhs": {
            "op": "*",
            "args": [
              "sqrt2_inv",
              "W_atm"
            ]
          }
        },
        {
          "lhs": "theta_atm",
          "rhs": "T_atm"
        },
        {
          "lhs": "z_prime_atm",
          "rhs": "z_prime_atm_val"
        }
      ]
    },
    "atmos": {
      "variables": {
        "kappa_boltz": {
          "type": "parameter",
          "units": "J/K",
          "default": 1.38065e-23,
          "description": "Boltzmann constant (Oleson Table 1.4) — upstream `@constants` κ_boltz; the per-particle gas constant for Avogadro-scaling the universal gas constant"
        },
        "N_A": {
          "type": "parameter",
          "units": "mol^-1",
          "default": 6.02214e+23,
          "description": "Avogadro's number (Oleson Table 1.4) — upstream `@constants` N_A; the conversion factor from per-mole to per-particle (Oleson uses kmol in the table; this value is converted to SI mol)"
        },
        "MW_da": {
          "type": "parameter",
          "units": "kg/mol",
          "default": 0.028966,
          "description": "Molecular weight of dry air (Oleson Table 1.4) — upstream `@constants` MW_da; standard atmospheric mean (Oleson reports 28.966 kg/kmol; here in SI kg/mol)"
        },
        "MW_wv": {
          "type": "parameter",
          "units": "kg/mol",
          "default": 0.018016,
          "description": "Molecular weight of water vapor (Oleson Table 1.4) — upstream `@constants` MW_wv; standard H2O molecular weight (Oleson reports 18.016 kg/kmol; here in SI kg/mol)"
        },
        "R_gas": {
          "type": "parameter",
          "units": "J/(K*mol)",
          "default": 8.314467591,
          "description": "Universal gas constant R_gas = N_A * kappa_boltz (Oleson Table 1.4) — upstream `@constants` R_gas; the IEEE-754 double-precision product of the upstream Avogadro and Boltzmann defaults (matches Julia bit-for-bit). Not used in this component's equations but preserved as part of the upstream component's public constant interface"
        },
        "R_da": {
          "type": "parameter",
          "units": "J/(K*kg)",
          "default": 287.0423113650487,
          "description": "Specific gas constant for dry air R_da = R_gas / MW_da (Oleson Table 1.4) — upstream `@constants` R_da; appears as the denominator scale of the ideal-gas law in Eq. 2 of this component. The IEEE-754 double-precision quotient of the upstream R_gas / MW_da defaults (matches Julia bit-for-bit, slightly tighter than the rounded 287.042 used in the upstream test docstring)"
        },
        "epsilon_ratio": {
          "type": "parameter",
          "units": "1",
          "default": 0.6219705862045157,
          "description": "Ratio of molecular weights epsilon = MW_wv / MW_da (Oleson Table 1.4) — upstream `@constants` ε_ratio; appears in the denominator of the vapor-pressure inversion (Eq. 1). The IEEE-754 double-precision quotient of MW_wv / MW_da (matches Julia bit-for-bit; commonly rounded to 0.622 in textbook references)"
        },
        "one_minus_epsilon": {
          "type": "parameter",
          "units": "1",
          "default": 0.37802941379548427,
          "description": "Complement 1 - epsilon = 1 - MW_wv / MW_da (Oleson Table 1.4) — upstream `@constants` one_minus_ε; appears as the coefficient of q_atm in the vapor-pressure denominator (Eq. 1) and as the coefficient of e_atm in the air-density numerator (Eq. 2). The IEEE-754 double-precision 1.0 - epsilon_ratio (commonly rounded to 0.378)"
        },
        "z_prime_atm": {
          "type": "unknown",
          "units": "m",
          "default": 30.0,
          "description": "Atmospheric reference height from the driving atmospheric model (Oleson Table 1.1) — z'_atm, the height above the zero datum at which the atmospheric forcing variables are reported. Combined with z_0 and z_d in Eq. 3 to produce the effective z_atm used by the urban-canopy flux computations"
        },
        "u_atm": {
          "type": "parameter",
          "units": "m/s",
          "default": 0.0,
          "description": "Zonal wind at the atmospheric reference height (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy momentum-flux components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "v_atm": {
          "type": "parameter",
          "units": "m/s",
          "default": 0.0,
          "description": "Meridional wind at the atmospheric reference height (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy momentum-flux components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "theta_atm": {
          "type": "parameter",
          "units": "K",
          "default": 293.15,
          "description": "Atmospheric potential temperature at the reference height (Oleson Table 1.1) — upstream `@parameters` θ_atm; passthrough atmospheric forcing input consumed by downstream urban-canopy sensible-heat-flux components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "q_atm": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.01,
          "description": "Specific humidity at the atmospheric reference height (Oleson Table 1.1) — input to the vapor-pressure inversion (Eq. 1) and indirectly the air-density correction (Eq. 2). Mass of water vapor per mass of moist air; typical mid-latitude values 0.001-0.02 kg/kg"
        },
        "P_atm": {
          "type": "unknown",
          "units": "Pa",
          "default": 101325.0,
          "description": "Atmospheric pressure at the reference height (Oleson Table 1.1) — total pressure, input to both Eq. 1 (numerator of vapor-pressure inversion) and Eq. 2 (numerator of ideal-gas law). Default is the standard sea-level atmosphere (101325 Pa)"
        },
        "T_atm": {
          "type": "unknown",
          "units": "K",
          "default": 293.15,
          "description": "Atmospheric temperature at the reference height (Oleson Table 1.1) — input to the ideal-gas air-density equation (Eq. 2). Default is the standard sea-level temperature (293.15 K = 20 degC)"
        },
        "L_atm_down": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Incident downward longwave radiation at the reference height (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy longwave-flux components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "q_rain": {
          "type": "parameter",
          "units": "kg/(m^2*s)",
          "default": 0.0,
          "description": "Liquid precipitation rate (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy hydrology components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "q_sno": {
          "type": "parameter",
          "units": "kg/(m^2*s)",
          "default": 0.0,
          "description": "Solid precipitation rate (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy snow components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "S_atm_dir_vis": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Incident direct-beam visible solar radiation (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy shortwave-radiation components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "S_atm_dir_nir": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Incident direct-beam near-infrared solar radiation (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy shortwave-radiation components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "S_atm_dif_vis": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Incident diffuse visible solar radiation (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy shortwave-radiation components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "S_atm_dif_nir": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Incident diffuse near-infrared solar radiation (Oleson Table 1.1) — passthrough atmospheric forcing input consumed by downstream urban-canopy shortwave-radiation components; declared by the upstream interface component but not used in the three diagnostic equations of CLMUAtmosphere itself"
        },
        "z_0": {
          "type": "unknown",
          "units": "m",
          "default": 1.0,
          "description": "Roughness length (Oleson Table 1.3, Footnote 1 p.16) — characteristic length scale of the surface drag for the log-law wind profile. Typical urban values 0.5-3 m. Input to Eq. 3 (effective reference height)"
        },
        "z_d": {
          "type": "unknown",
          "units": "m",
          "default": 5.0,
          "description": "Displacement height (Oleson Table 1.3, Footnote 1 p.16) — vertical offset of the log-law wind profile, representing the effective height of the canopy bulk drag center. Typical urban values 1-15 m (a fraction of building height H). Input to Eq. 3 (effective reference height)"
        },
        "e_atm": {
          "type": "unknown",
          "units": "Pa",
          "description": "Atmospheric vapor pressure (Oleson Ch. 1 p.17, Eq. 1): e_atm = q_atm * P_atm / (epsilon + (1-epsilon) * q_atm). Bolton-style inversion of specific humidity to vapor pressure for the moist-air state used by downstream flux components. At q_atm = 0 gives e_atm = 0; bounded above by P_atm at q_atm = 1"
        },
        "rho_atm": {
          "type": "unknown",
          "units": "kg/m^3",
          "description": "Atmospheric air density (Oleson Ch. 1 p.17, Eq. 2): rho_atm = (P_atm - (1-epsilon) * e_atm) / (R_da * T_atm). Ideal-gas density of moist air, with the (1-epsilon)*e_atm correction subtracted from P_atm to give the dry-air partial pressure (which then divides by R_da*T_atm). The humidity correction makes moist air slightly less dense than dry air at the same P and T"
        },
        "z_atm": {
          "type": "unknown",
          "units": "m",
          "description": "Effective atmospheric reference height for flux computations (Oleson Ch. 1 Footnote 1 p.16, Eq. 3): z_atm = z_prime_atm + z_0 + z_d. Linear sum of the model-reported height and the surface drag-profile parameters; used by downstream urban-canopy momentum and turbulent-flux subcomponents as the height at which the atmospheric forcings are evaluated"
        }
      },
      "equations": [
        {
          "lhs": "e_atm",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  "q_atm",
                  "P_atm"
                ]
              },
              {
                "op": "+",
                "args": [
                  "epsilon_ratio",
                  {
                    "op": "*",
                    "args": [
                      "one_minus_epsilon",
                      "q_atm"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "rho_atm",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  "P_atm",
                  {
                    "op": "*",
                    "args": [
                      "one_minus_epsilon",
                      "e_atm"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "R_da",
                  "T_atm"
                ]
              }
            ]
          }
        },
        {
          "lhs": "z_atm",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "+",
                "args": [
                  "z_prime_atm",
                  "z_0"
                ]
              },
              "z_d"
            ]
          }
        }
      ]
    },
    "rad": {
      "variables": {
        "σ_SB": {
          "type": "parameter",
          "units": "W/(m^2*K^4)",
          "default": 5.67e-08,
          "description": "Stefan-Boltzmann constant (Oleson Table 1.4) — upstream `@constants` σ_SB; the coefficient of T^4 in the Stefan-Boltzmann law for upward longwave emission used in Eqs. 2.102, 2.111-2.113"
        },
        "π_val": {
          "type": "parameter",
          "units": "1",
          "default": 3.141592653589793,
          "description": "Pi (dimensionless) — upstream `@constants` π_val = Float64(π); appears in the direct-beam canyon-orientation factors of Eqs. 2.16-2.17"
        },
        "one_rad": {
          "type": "parameter",
          "units": "rad",
          "default": 1.0,
          "description": "Unit-angle reference (1 rad) — upstream `@constants` one_rad; used in `μ_zen / one_rad` to make the argument of `tan` dimensionless and in `asin(...) * one_rad` to restore rad dimension on θ_0 (Eq. 2.11). Value is exactly 1.0 by construction; numerically a no-op."
        },
        "one_wm2": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 1.0,
          "description": "Unit radiative flux (1 W/m²) — upstream `@constants` one_wm2; declared by the upstream component but unused in the equation block (kept here for 1:1 parameter-count fidelity with upstream `length(parameters(sys)) == 31`). The unit-balancing role of one_wm2 is taken by `zero_wm2` in the canyon-albedo guard."
        },
        "zero_wm2": {
          "type": "parameter",
          "units": "W/m^2",
          "default": 0.0,
          "description": "Zero radiative flux (0 W/m²) — upstream `@constants` zero_wm2; used as the comparison RHS in the canyon-albedo guard `ifelse(incident > zero_wm2, refl/incident, 0.0)` to keep the `>` comparison unit-consistent with the W/m² LHS"
        },
        "H_W": {
          "type": "unknown",
          "units": "1",
          "default": 1.0,
          "description": "Canyon height-to-width ratio H/W (dimensionless) — controls all view factor geometry (Eqs. 2.22-2.28); typical urban values 0.5-3, but the implementation is valid for 0 (flat) to large (deep canyon)"
        },
        "W_roof": {
          "type": "unknown",
          "units": "1",
          "default": 0.25,
          "description": "Roof fraction of urban surface (dimensionless) — controls the area-weighted combination of roof and canyon contributions to total net radiation in Eqs. 2.95 and 2.175"
        },
        "S_atm_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 200.0,
          "description": "Incident direct beam visible solar radiation from the atmosphere (upstream `@parameters` S_atm_dir_vis)"
        },
        "S_atm_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 150.0,
          "description": "Incident direct beam NIR solar radiation from the atmosphere"
        },
        "S_atm_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 80.0,
          "description": "Incident diffuse visible solar radiation from the atmosphere"
        },
        "S_atm_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 60.0,
          "description": "Incident diffuse NIR solar radiation from the atmosphere"
        },
        "L_atm_down": {
          "type": "unknown",
          "units": "W/m^2",
          "default": 350.0,
          "description": "Incident longwave radiation from the atmosphere (downwelling)"
        },
        "μ_zen": {
          "type": "unknown",
          "units": "rad",
          "default": 0.5236,
          "description": "Solar zenith angle (rad) — appears in `tan(μ_zen)` in the direct-beam factor of Eq. 2.16-2.17. Default 0.5236 rad ≈ 30 degrees."
        },
        "α_roof_dir_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.2,
          "description": "Roof albedo, direct beam, visible (dimensionless) — surface optical property; appears in Eq. 2.34-2.35 for absorbed solar by the roof"
        },
        "α_roof_dir_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.2,
          "description": "Roof albedo, direct beam, NIR (dimensionless)"
        },
        "α_roof_dif_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.2,
          "description": "Roof albedo, diffuse, visible (dimensionless)"
        },
        "α_roof_dif_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.2,
          "description": "Roof albedo, diffuse, NIR (dimensionless)"
        },
        "α_road_dir_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.08,
          "description": "Effective road albedo, direct beam, visible (dimensionless) — weighted average over pervious/impervious road fraction, computed upstream"
        },
        "α_road_dir_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.08,
          "description": "Effective road albedo, direct beam, NIR (dimensionless)"
        },
        "α_road_dif_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.08,
          "description": "Effective road albedo, diffuse, visible (dimensionless)"
        },
        "α_road_dif_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.08,
          "description": "Effective road albedo, diffuse, NIR (dimensionless)"
        },
        "α_wall_dir_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.25,
          "description": "Wall albedo, direct beam, visible (dimensionless)"
        },
        "α_wall_dir_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.25,
          "description": "Wall albedo, direct beam, NIR (dimensionless)"
        },
        "α_wall_dif_vis": {
          "type": "unknown",
          "units": "1",
          "default": 0.25,
          "description": "Wall albedo, diffuse, visible (dimensionless)"
        },
        "α_wall_dif_nir": {
          "type": "unknown",
          "units": "1",
          "default": 0.25,
          "description": "Wall albedo, diffuse, NIR (dimensionless)"
        },
        "ε_roof": {
          "type": "unknown",
          "units": "1",
          "default": 0.9,
          "description": "Roof longwave emissivity (dimensionless) — Stefan-Boltzmann pre-factor in upward LW emission (Eq. 2.102); typical urban roof values 0.85-0.95"
        },
        "ε_road": {
          "type": "unknown",
          "units": "1",
          "default": 0.95,
          "description": "Effective road longwave emissivity (dimensionless) — weighted average over pervious/impervious road fraction"
        },
        "ε_wall": {
          "type": "unknown",
          "units": "1",
          "default": 0.85,
          "description": "Wall longwave emissivity (dimensionless)"
        },
        "T_roof": {
          "type": "unknown",
          "units": "K",
          "default": 305.0,
          "description": "Roof surface temperature — appears as T^4 in the Stefan-Boltzmann upward emission (Eq. 2.102)"
        },
        "T_road": {
          "type": "unknown",
          "units": "K",
          "default": 310.0,
          "description": "Road surface temperature — appears as T^4 in the road LW emission (Eq. 2.111)"
        },
        "T_sunwall": {
          "type": "unknown",
          "units": "K",
          "default": 315.0,
          "description": "Sunlit wall surface temperature — appears as T^4 in the sunlit-wall LW emission (Eq. 2.112)"
        },
        "T_shdwall": {
          "type": "unknown",
          "units": "K",
          "default": 300.0,
          "description": "Shaded wall surface temperature — appears as T^4 in the shaded-wall LW emission (Eq. 2.113)"
        },
        "Ψ_wall_sky": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: wall to sky (Oleson Eq. 2.24) — fraction of radiation leaving a wall that reaches the sky"
        },
        "Ψ_wall_road": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: wall to road (Oleson Eq. 2.26) — equal to Ψ_wall_sky by reciprocity"
        },
        "Ψ_wall_wall": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: wall to opposite wall (Oleson Eq. 2.28) — closure of the row-sum 1 = Ψ_wall_sky + Ψ_wall_road + Ψ_wall_wall"
        },
        "Ψ_road_sky": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: road to sky (Oleson Eq. 2.25) — fraction of radiation leaving the road that reaches the sky; decreases with H/W"
        },
        "Ψ_road_wall": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: road to wall (Oleson Eq. 2.27) — fraction of radiation leaving the road that reaches one wall; two walls so 2*Ψ_road_wall = 1 - Ψ_road_sky"
        },
        "Ψ_sky_road": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: sky to road (Oleson Eq. 2.25) — equal to Ψ_road_sky by reciprocity"
        },
        "Ψ_sky_wall": {
          "type": "unknown",
          "units": "1",
          "description": "View factor: sky to wall, per unit wall area (Oleson Eq. 2.24) — equal to Ψ_wall_sky by reciprocity"
        },
        "θ_0": {
          "type": "unknown",
          "units": "rad",
          "description": "Critical canyon orientation angle (Oleson Eq. 2.11) — the canyon-orientation azimuth threshold separating sunlit-wall from shadowed-wall geometries integrated to derive the canyon-averaged direct-beam radiation factors"
        },
        "S_sunwall_factor": {
          "type": "unknown",
          "units": "1",
          "description": "Sunlit wall direct beam factor (Oleson Eq. 2.16) — dimensionless fraction of atmospheric direct-beam radiation that lands on the sunlit wall per unit wall area, integrated over canyon orientation"
        },
        "S_road_factor": {
          "type": "unknown",
          "units": "1",
          "description": "Road direct beam factor (Oleson Eq. 2.17) — dimensionless fraction of atmospheric direct-beam radiation that lands on the road per unit ground area; conservation Eq. 2.18 requires S_road_factor + H/W * S_sunwall_factor = 1"
        },
        "S_road_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct beam VIS incident on road (Oleson Eq. 2.17): S_road_factor * S_atm_dir_vis"
        },
        "S_road_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct beam NIR incident on road: S_road_factor * S_atm_dir_nir"
        },
        "S_sunwall_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct beam VIS incident on sunlit wall (Oleson Eq. 2.16): S_sunwall_factor * S_atm_dir_vis"
        },
        "S_sunwall_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Direct beam NIR incident on sunlit wall: S_sunwall_factor * S_atm_dir_nir"
        },
        "S_road_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse VIS incident on road (Oleson Eq. 2.30): S_atm_dif_vis * Ψ_sky_road"
        },
        "S_road_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse NIR incident on road: S_atm_dif_nir * Ψ_sky_road"
        },
        "S_wall_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse VIS incident on each wall (Oleson Eqs. 2.31-2.32): S_atm_dif_vis * Ψ_sky_wall — same on sunlit and shaded walls for diffuse radiation"
        },
        "S_wall_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Diffuse NIR incident on each wall: S_atm_dif_nir * Ψ_sky_wall"
        },
        "T_rw": {
          "type": "unknown",
          "units": "1",
          "description": "Transport matrix element: wall to road (Oleson Section 2.5, p. 42-43) = H/W * Ψ_wall_road — accounts for the wall-to-road area ratio in the multi-reflection transport matrix T"
        },
        "T_wr": {
          "type": "unknown",
          "units": "1",
          "description": "Transport matrix element: road to wall = Ψ_road_wall / (H/W) — accounts for the road-to-wall area ratio (per unit wall area)"
        },
        "T_ww": {
          "type": "unknown",
          "units": "1",
          "description": "Transport matrix element: wall to opposite wall = Ψ_wall_wall — the off-diagonal that couples the sunlit and shaded walls in the canyon-reflection geometric series"
        },
        "det_dir_vis": {
          "type": "unknown",
          "units": "1",
          "description": "Determinant of (I - T*A) for direct VIS waveband: (1 - d²) - 2bc(1 + d), where b = a_w*T_rw, c = a_r*T_wr, d = a_w*T_ww — denominator of the closed-form multi-reflection solution"
        },
        "det_dir_nir": {
          "type": "unknown",
          "units": "1",
          "description": "Determinant of (I - T*A) for direct NIR waveband"
        },
        "det_dif_vis": {
          "type": "unknown",
          "units": "1",
          "description": "Determinant of (I - T*A) for diffuse VIS waveband"
        },
        "det_dif_nir": {
          "type": "unknown",
          "units": "1",
          "description": "Determinant of (I - T*A) for diffuse NIR waveband"
        },
        "S_net_roof": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net absorbed solar by roof (Oleson Eqs. 2.34-2.35): Σ S_atm_*_*(1 - α_roof_*_*) summed over all four wavebands"
        },
        "S_net_road_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by road, direct VIS waveband: (1 - α_road_dir_vis) * Q_road_dir_vis where Q_road_dir_vis is the per-waveband closed-form M⁻¹*S_0 multi-reflection result"
        },
        "S_net_road_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by road, direct NIR waveband"
        },
        "S_net_road_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by road, diffuse VIS waveband"
        },
        "S_net_road_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by road, diffuse NIR waveband"
        },
        "S_net_sunwall_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by sunlit wall, direct VIS waveband (per unit wall area)"
        },
        "S_net_sunwall_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by sunlit wall, direct NIR waveband"
        },
        "S_net_sunwall_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by sunlit wall, diffuse VIS waveband"
        },
        "S_net_sunwall_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by sunlit wall, diffuse NIR waveband"
        },
        "S_net_shdwall_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by shaded wall, direct VIS waveband — non-zero only via multi-reflection from road and sunlit wall (no direct beam reaches the shaded wall)"
        },
        "S_net_shdwall_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by shaded wall, direct NIR waveband"
        },
        "S_net_shdwall_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by shaded wall, diffuse VIS waveband — equal to sunwall diffuse VIS by symmetry"
        },
        "S_net_shdwall_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Absorbed solar by shaded wall, diffuse NIR waveband"
        },
        "S_net_road": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total net absorbed solar by road: sum of S_net_road_* over the four wavebands"
        },
        "S_net_sunwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total net absorbed solar by sunlit wall per unit wall area: sum of S_net_sunwall_* over the four wavebands"
        },
        "S_net_shdwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total net absorbed solar by shaded wall per unit wall area: sum of S_net_shdwall_* over the four wavebands"
        },
        "S_net_uc": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net absorbed solar by the urban canyon per unit ground area: S_net_road + (S_net_sunwall + S_net_shdwall) * H/W"
        },
        "S_net_total": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total net absorbed solar (Oleson Eq. 2.95): W_roof * S_net_roof + (1 - W_roof) * S_net_uc — area-weighted total over roof and canyon"
        },
        "S_refl_sky_dir_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Solar reflected back to sky from the canyon, direct VIS waveband — energy-balance closure: incident_canyon - absorbed_canyon (per unit ground area)"
        },
        "S_refl_sky_dir_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Solar reflected back to sky from the canyon, direct NIR waveband"
        },
        "S_refl_sky_dif_vis": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Solar reflected back to sky from the canyon, diffuse VIS waveband"
        },
        "S_refl_sky_dif_nir": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Solar reflected back to sky from the canyon, diffuse NIR waveband"
        },
        "α_uc_dir_vis": {
          "type": "unknown",
          "units": "1",
          "description": "Canyon direct beam albedo, VIS (Oleson Eq. 2.93): S_refl_sky_dir_vis / incident_canyon — the ratio of reflected to incident summed over the canyon (excluding the roof). Guarded against divide-by-zero when there is no incident radiation in this waveband."
        },
        "α_uc_dir_nir": {
          "type": "unknown",
          "units": "1",
          "description": "Canyon direct beam albedo, NIR"
        },
        "α_uc_dif_vis": {
          "type": "unknown",
          "units": "1",
          "description": "Canyon diffuse albedo, VIS (Oleson Eq. 2.94)"
        },
        "α_uc_dif_nir": {
          "type": "unknown",
          "units": "1",
          "description": "Canyon diffuse albedo, NIR"
        },
        "L_up_roof": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Upward longwave radiation from roof (Oleson Eq. 2.102): ε_roof * σ_SB * T_roof^4 + (1 - ε_roof) * L_atm_down — Stefan-Boltzmann emission plus reflection of the downwelling atmospheric LW"
        },
        "L_net_roof": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net longwave for roof (Oleson Eq. 2.101): L_up_roof - L_atm_down — positive when the roof is losing more LW than it absorbs"
        },
        "L_emit_road": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Emitted longwave from road (Oleson Eq. 2.111): ε_road * σ_SB * T_road^4 — Stefan-Boltzmann emission only, before multi-reflection"
        },
        "L_emit_sunwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Emitted longwave from sunlit wall (Oleson Eq. 2.112): ε_wall * σ_SB * T_sunwall^4"
        },
        "L_emit_shdwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Emitted longwave from shaded wall (Oleson Eq. 2.113): ε_wall * σ_SB * T_shdwall^4"
        },
        "det_lw": {
          "type": "unknown",
          "units": "1",
          "description": "Determinant of (I - T*A) for longwave: (1 - d_lw²) - 2*b_lw*c_lw*(1 + d_lw), where b_lw = (1-ε_wall)*T_rw, c_lw = (1-ε_road)*T_wr, d_lw = (1-ε_wall)*T_ww — structurally identical to the solar determinant but with reflectivity (1 - ε) in place of albedo α"
        },
        "L_net_road": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net longwave for road: L_emit_road - ε_road * Q_road_lw, where Q_road_lw is the canyon-trapped incoming LW from atmosphere and wall emission via the multi-reflection M⁻¹*S_0_lw solution. Positive when the road loses more LW than it absorbs."
        },
        "L_net_sunwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net longwave for sunlit wall per unit wall area: L_emit_sunwall - ε_wall * Q_sw_lw"
        },
        "L_net_shdwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net longwave for shaded wall per unit wall area: L_emit_shdwall - ε_wall * Q_sh_lw"
        },
        "L_net_uc": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Net longwave for urban canyon per unit ground area (Oleson Eq. 2.172): L_net_road + (L_net_sunwall + L_net_shdwall) * H/W"
        },
        "L_net_total": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total net longwave (Oleson Eq. 2.175): W_roof * L_net_roof + (1 - W_roof) * L_net_uc — area-weighted total over roof and canyon"
        }
      },
      "equations": [
        {
          "lhs": "Ψ_sky_wall",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "H_W",
                      1.0
                    ]
                  },
                  {
                    "op": "sqrt",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          1.0,
                          {
                            "op": "^",
                            "args": [
                              "H_W",
                              2.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  2.0,
                  "H_W"
                ]
              }
            ]
          }
        },
        {
          "lhs": "Ψ_wall_sky",
          "rhs": "Ψ_sky_wall"
        },
        {
          "lhs": "Ψ_road_sky",
          "rhs": {
            "op": "-",
            "args": [
              {
                "op": "sqrt",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      1.0,
                      {
                        "op": "^",
                        "args": [
                          "H_W",
                          2.0
                        ]
                      }
                    ]
                  }
                ]
              },
              "H_W"
            ]
          }
        },
        {
          "lhs": "Ψ_sky_road",
          "rhs": "Ψ_road_sky"
        },
        {
          "lhs": "Ψ_wall_road",
          "rhs": "Ψ_wall_sky"
        },
        {
          "lhs": "Ψ_road_wall",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  1.0,
                  "Ψ_road_sky"
                ]
              },
              2.0
            ]
          }
        },
        {
          "lhs": "Ψ_wall_wall",
          "rhs": {
            "op": "-",
            "args": [
              {
                "op": "-",
                "args": [
                  1.0,
                  "Ψ_wall_sky"
                ]
              },
              "Ψ_wall_road"
            ]
          }
        },
        {
          "lhs": "T_rw",
          "rhs": {
            "op": "*",
            "args": [
              "H_W",
              "Ψ_wall_road"
            ]
          }
        },
        {
          "lhs": "T_wr",
          "rhs": {
            "op": "/",
            "args": [
              "Ψ_road_wall",
              "H_W"
            ]
          }
        },
        {
          "lhs": "T_ww",
          "rhs": "Ψ_wall_wall"
        },
        {
          "lhs": "θ_0",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "asin",
                "args": [
                  {
                    "op": "min",
                    "args": [
                      {
                        "op": "/",
                        "args": [
                          1.0,
                          {
                            "op": "*",
                            "args": [
                              "H_W",
                              {
                                "op": "tan",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      "μ_zen",
                                      "one_rad"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      1.0
                    ]
                  }
                ]
              },
              "one_rad"
            ]
          }
        },
        {
          "lhs": "S_sunwall_factor",
          "rhs": {
            "op": "*",
            "args": [
              2.0,
              {
                "op": "+",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "/",
                        "args": [
                          1.0,
                          "H_W"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          0.5,
                          {
                            "op": "/",
                            "args": [
                              "θ_0",
                              {
                                "op": "*",
                                "args": [
                                  "π_val",
                                  "one_rad"
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              1.0,
                              "π_val"
                            ]
                          },
                          {
                            "op": "tan",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  "μ_zen",
                                  "one_rad"
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          1.0,
                          {
                            "op": "cos",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  "θ_0",
                                  "one_rad"
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_sunwall_dir_vis",
          "rhs": {
            "op": "*",
            "args": [
              "S_sunwall_factor",
              "S_atm_dir_vis"
            ]
          }
        },
        {
          "lhs": "S_sunwall_dir_nir",
          "rhs": {
            "op": "*",
            "args": [
              "S_sunwall_factor",
              "S_atm_dir_nir"
            ]
          }
        },
        {
          "lhs": "S_road_factor",
          "rhs": {
            "op": "-",
            "args": [
              {
                "op": "*",
                "args": [
                  2.0,
                  {
                    "op": "/",
                    "args": [
                      "θ_0",
                      {
                        "op": "*",
                        "args": [
                          "π_val",
                          "one_rad"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              2.0,
                              "π_val"
                            ]
                          },
                          "H_W"
                        ]
                      },
                      {
                        "op": "tan",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "μ_zen",
                              "one_rad"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      {
                        "op": "cos",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "θ_0",
                              "one_rad"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "S_road_dir_vis",
          "rhs": {
            "op": "*",
            "args": [
              "S_road_factor",
              "S_atm_dir_vis"
            ]
          }
        },
        {
          "lhs": "S_road_dir_nir",
          "rhs": {
            "op": "*",
            "args": [
              "S_road_factor",
              "S_atm_dir_nir"
            ]
          }
        },
        {
          "lhs": "S_road_dif_vis",
          "rhs": {
            "op": "*",
            "args": [
              "S_atm_dif_vis",
              "Ψ_sky_road"
            ]
          }
        },
        {
          "lhs": "S_road_dif_nir",
          "rhs": {
            "op": "*",
            "args": [
              "S_atm_dif_nir",
              "Ψ_sky_road"
            ]
          }
        },
        {
          "lhs": "S_wall_dif_vis",
          "rhs": {
            "op": "*",
            "args": [
              "S_atm_dif_vis",
              "Ψ_sky_wall"
            ]
          }
        },
        {
          "lhs": "S_wall_dif_nir",
          "rhs": {
            "op": "*",
            "args": [
              "S_atm_dif_nir",
              "Ψ_sky_wall"
            ]
          }
        },
        {
          "lhs": "S_net_roof",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "S_atm_dir_vis",
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "α_roof_dir_vis"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          "S_atm_dir_nir",
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "α_roof_dir_nir"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "S_atm_dif_vis",
                      {
                        "op": "-",
                        "args": [
                          1.0,
                          "α_roof_dif_vis"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  "S_atm_dif_nir",
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "α_roof_dif_nir"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "det_dir_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_det",
            "bindings": {
              "a_r": "α_road_dir_vis",
              "a_w": "α_wall_dir_vis"
            }
          }
        },
        {
          "lhs": "S_net_road_dir_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_road",
            "bindings": {
              "a_r": "α_road_dir_vis",
              "a_w": "α_wall_dir_vis",
              "S_r": "S_road_dir_vis",
              "S_sw": "S_sunwall_dir_vis",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_vis"
            }
          }
        },
        {
          "lhs": "S_net_sunwall_dir_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sw",
            "bindings": {
              "a_r": "α_road_dir_vis",
              "a_w": "α_wall_dir_vis",
              "S_r": "S_road_dir_vis",
              "S_sw": "S_sunwall_dir_vis",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_vis"
            }
          }
        },
        {
          "lhs": "S_net_shdwall_dir_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sh",
            "bindings": {
              "a_r": "α_road_dir_vis",
              "a_w": "α_wall_dir_vis",
              "S_r": "S_road_dir_vis",
              "S_sw": "S_sunwall_dir_vis",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_vis"
            }
          }
        },
        {
          "lhs": "S_refl_sky_dir_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_refl_sky",
            "bindings": {
              "S_r": "S_road_dir_vis",
              "S_sw": "S_sunwall_dir_vis",
              "S_sh": "zero_wm2",
              "net_road": "S_net_road_dir_vis",
              "net_sw": "S_net_sunwall_dir_vis",
              "net_sh": "S_net_shdwall_dir_vis"
            }
          }
        },
        {
          "lhs": "det_dir_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_det",
            "bindings": {
              "a_r": "α_road_dir_nir",
              "a_w": "α_wall_dir_nir"
            }
          }
        },
        {
          "lhs": "S_net_road_dir_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_road",
            "bindings": {
              "a_r": "α_road_dir_nir",
              "a_w": "α_wall_dir_nir",
              "S_r": "S_road_dir_nir",
              "S_sw": "S_sunwall_dir_nir",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_nir"
            }
          }
        },
        {
          "lhs": "S_net_sunwall_dir_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sw",
            "bindings": {
              "a_r": "α_road_dir_nir",
              "a_w": "α_wall_dir_nir",
              "S_r": "S_road_dir_nir",
              "S_sw": "S_sunwall_dir_nir",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_nir"
            }
          }
        },
        {
          "lhs": "S_net_shdwall_dir_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sh",
            "bindings": {
              "a_r": "α_road_dir_nir",
              "a_w": "α_wall_dir_nir",
              "S_r": "S_road_dir_nir",
              "S_sw": "S_sunwall_dir_nir",
              "S_sh": "zero_wm2",
              "det_var": "det_dir_nir"
            }
          }
        },
        {
          "lhs": "S_refl_sky_dir_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_refl_sky",
            "bindings": {
              "S_r": "S_road_dir_nir",
              "S_sw": "S_sunwall_dir_nir",
              "S_sh": "zero_wm2",
              "net_road": "S_net_road_dir_nir",
              "net_sw": "S_net_sunwall_dir_nir",
              "net_sh": "S_net_shdwall_dir_nir"
            }
          }
        },
        {
          "lhs": "det_dif_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_det",
            "bindings": {
              "a_r": "α_road_dif_vis",
              "a_w": "α_wall_dif_vis"
            }
          }
        },
        {
          "lhs": "S_net_road_dif_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_road",
            "bindings": {
              "a_r": "α_road_dif_vis",
              "a_w": "α_wall_dif_vis",
              "S_r": "S_road_dif_vis",
              "S_sw": "S_wall_dif_vis",
              "S_sh": "S_wall_dif_vis",
              "det_var": "det_dif_vis"
            }
          }
        },
        {
          "lhs": "S_net_sunwall_dif_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sw",
            "bindings": {
              "a_r": "α_road_dif_vis",
              "a_w": "α_wall_dif_vis",
              "S_r": "S_road_dif_vis",
              "S_sw": "S_wall_dif_vis",
              "S_sh": "S_wall_dif_vis",
              "det_var": "det_dif_vis"
            }
          }
        },
        {
          "lhs": "S_net_shdwall_dif_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sh",
            "bindings": {
              "a_r": "α_road_dif_vis",
              "a_w": "α_wall_dif_vis",
              "S_r": "S_road_dif_vis",
              "S_sw": "S_wall_dif_vis",
              "S_sh": "S_wall_dif_vis",
              "det_var": "det_dif_vis"
            }
          }
        },
        {
          "lhs": "S_refl_sky_dif_vis",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_refl_sky",
            "bindings": {
              "S_r": "S_road_dif_vis",
              "S_sw": "S_wall_dif_vis",
              "S_sh": "S_wall_dif_vis",
              "net_road": "S_net_road_dif_vis",
              "net_sw": "S_net_sunwall_dif_vis",
              "net_sh": "S_net_shdwall_dif_vis"
            }
          }
        },
        {
          "lhs": "det_dif_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_det",
            "bindings": {
              "a_r": "α_road_dif_nir",
              "a_w": "α_wall_dif_nir"
            }
          }
        },
        {
          "lhs": "S_net_road_dif_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_road",
            "bindings": {
              "a_r": "α_road_dif_nir",
              "a_w": "α_wall_dif_nir",
              "S_r": "S_road_dif_nir",
              "S_sw": "S_wall_dif_nir",
              "S_sh": "S_wall_dif_nir",
              "det_var": "det_dif_nir"
            }
          }
        },
        {
          "lhs": "S_net_sunwall_dif_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sw",
            "bindings": {
              "a_r": "α_road_dif_nir",
              "a_w": "α_wall_dif_nir",
              "S_r": "S_road_dif_nir",
              "S_sw": "S_wall_dif_nir",
              "S_sh": "S_wall_dif_nir",
              "det_var": "det_dif_nir"
            }
          }
        },
        {
          "lhs": "S_net_shdwall_dif_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_net_sh",
            "bindings": {
              "a_r": "α_road_dif_nir",
              "a_w": "α_wall_dif_nir",
              "S_r": "S_road_dif_nir",
              "S_sw": "S_wall_dif_nir",
              "S_sh": "S_wall_dif_nir",
              "det_var": "det_dif_nir"
            }
          }
        },
        {
          "lhs": "S_refl_sky_dif_nir",
          "rhs": {
            "op": "apply_expression_template",
            "args": [],
            "name": "band_refl_sky",
            "bindings": {
              "S_r": "S_road_dif_nir",
              "S_sw": "S_wall_dif_nir",
              "S_sh": "S_wall_dif_nir",
              "net_road": "S_net_road_dif_nir",
              "net_sw": "S_net_sunwall_dif_nir",
              "net_sh": "S_net_shdwall_dif_nir"
            }
          }
        },
        {
          "lhs": "S_net_road",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_net_road_dir_vis",
                      "S_net_road_dir_nir"
                    ]
                  },
                  "S_net_road_dif_vis"
                ]
              },
              "S_net_road_dif_nir"
            ]
          }
        },
        {
          "lhs": "S_net_sunwall",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_net_sunwall_dir_vis",
                      "S_net_sunwall_dir_nir"
                    ]
                  },
                  "S_net_sunwall_dif_vis"
                ]
              },
              "S_net_sunwall_dif_nir"
            ]
          }
        },
        {
          "lhs": "S_net_shdwall",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_net_shdwall_dir_vis",
                      "S_net_shdwall_dir_nir"
                    ]
                  },
                  "S_net_shdwall_dif_vis"
                ]
              },
              "S_net_shdwall_dif_nir"
            ]
          }
        },
        {
          "lhs": "S_net_uc",
          "rhs": {
            "op": "+",
            "args": [
              "S_net_road",
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_net_sunwall",
                      "S_net_shdwall"
                    ]
                  },
                  "H_W"
                ]
              }
            ]
          }
        },
        {
          "lhs": "α_uc_dir_vis",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_road_dir_vis",
                      {
                        "op": "*",
                        "args": [
                          "S_sunwall_dir_vis",
                          "H_W"
                        ]
                      }
                    ]
                  },
                  "zero_wm2"
                ]
              },
              {
                "op": "/",
                "args": [
                  "S_refl_sky_dir_vis",
                  {
                    "op": "+",
                    "args": [
                      "S_road_dir_vis",
                      {
                        "op": "*",
                        "args": [
                          "S_sunwall_dir_vis",
                          "H_W"
                        ]
                      }
                    ]
                  }
                ]
              },
              0.0
            ]
          }
        },
        {
          "lhs": "α_uc_dir_nir",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_road_dir_nir",
                      {
                        "op": "*",
                        "args": [
                          "S_sunwall_dir_nir",
                          "H_W"
                        ]
                      }
                    ]
                  },
                  "zero_wm2"
                ]
              },
              {
                "op": "/",
                "args": [
                  "S_refl_sky_dir_nir",
                  {
                    "op": "+",
                    "args": [
                      "S_road_dir_nir",
                      {
                        "op": "*",
                        "args": [
                          "S_sunwall_dir_nir",
                          "H_W"
                        ]
                      }
                    ]
                  }
                ]
              },
              0.0
            ]
          }
        },
        {
          "lhs": "α_uc_dif_vis",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_road_dif_vis",
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "S_wall_dif_vis"
                            ]
                          },
                          "H_W"
                        ]
                      }
                    ]
                  },
                  "zero_wm2"
                ]
              },
              {
                "op": "/",
                "args": [
                  "S_refl_sky_dif_vis",
                  {
                    "op": "+",
                    "args": [
                      "S_road_dif_vis",
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "S_wall_dif_vis"
                            ]
                          },
                          "H_W"
                        ]
                      }
                    ]
                  }
                ]
              },
              0.0
            ]
          }
        },
        {
          "lhs": "α_uc_dif_nir",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": ">",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_road_dif_nir",
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "S_wall_dif_nir"
                            ]
                          },
                          "H_W"
                        ]
                      }
                    ]
                  },
                  "zero_wm2"
                ]
              },
              {
                "op": "/",
                "args": [
                  "S_refl_sky_dif_nir",
                  {
                    "op": "+",
                    "args": [
                      "S_road_dif_nir",
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              2.0,
                              "S_wall_dif_nir"
                            ]
                          },
                          "H_W"
                        ]
                      }
                    ]
                  }
                ]
              },
              0.0
            ]
          }
        },
        {
          "lhs": "S_net_total",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "*",
                "args": [
                  "W_roof",
                  "S_net_roof"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "W_roof"
                    ]
                  },
                  "S_net_uc"
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_up_roof",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "*",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "ε_roof",
                      "σ_SB"
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "T_roof",
                      4.0
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "ε_roof"
                    ]
                  },
                  "L_atm_down"
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_roof",
          "rhs": {
            "op": "-",
            "args": [
              "L_up_roof",
              "L_atm_down"
            ]
          }
        },
        {
          "lhs": "L_emit_road",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "ε_road",
                  "σ_SB"
                ]
              },
              {
                "op": "^",
                "args": [
                  "T_road",
                  4.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_emit_sunwall",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "ε_wall",
                  "σ_SB"
                ]
              },
              {
                "op": "^",
                "args": [
                  "T_sunwall",
                  4.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_emit_shdwall",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "ε_wall",
                  "σ_SB"
                ]
              },
              {
                "op": "^",
                "args": [
                  "T_shdwall",
                  4.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "det_lw",
          "rhs": {
            "op": "-",
            "args": [
              {
                "op": "-",
                "args": [
                  1.0,
                  {
                    "op": "^",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "ε_wall"
                            ]
                          },
                          "T_ww"
                        ]
                      },
                      2.0
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          2.0,
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "ε_wall"
                                ]
                              },
                              "T_rw"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "ε_road"
                            ]
                          },
                          "T_wr"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      1.0,
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "ε_wall"
                            ]
                          },
                          "T_ww"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_road",
          "rhs": {
            "op": "-",
            "args": [
              "L_emit_road",
              {
                "op": "*",
                "args": [
                  "ε_road",
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_ww"
                                            ]
                                          },
                                          2.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_road"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_rw",
                                          {
                                            "op": "+",
                                            "args": [
                                              "L_emit_sunwall",
                                              "L_emit_shdwall"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_wall"
                                            ]
                                          },
                                          "T_rw"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_ww"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              "L_atm_down",
                                              "Ψ_sky_wall"
                                            ]
                                          },
                                          {
                                            "op": "*",
                                            "args": [
                                              "T_wr",
                                              "L_emit_road"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_ww",
                                          "L_emit_shdwall"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "ε_wall"
                                        ]
                                      },
                                      "T_rw"
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      1.0,
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_wall"
                                            ]
                                          },
                                          "T_ww"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_wall"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_wr",
                                          "L_emit_road"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      "T_ww",
                                      "L_emit_sunwall"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "det_lw"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_sunwall",
          "rhs": {
            "op": "-",
            "args": [
              "L_emit_sunwall",
              {
                "op": "*",
                "args": [
                  "ε_wall",
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_road"
                                            ]
                                          },
                                          "T_wr"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_ww"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_road"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_rw",
                                          {
                                            "op": "+",
                                            "args": [
                                              "L_emit_sunwall",
                                              "L_emit_shdwall"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_rw"
                                            ]
                                          },
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_road"
                                                ]
                                              },
                                              "T_wr"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              "L_atm_down",
                                              "Ψ_sky_wall"
                                            ]
                                          },
                                          {
                                            "op": "*",
                                            "args": [
                                              "T_wr",
                                              "L_emit_road"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_ww",
                                          "L_emit_shdwall"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "ε_wall"
                                        ]
                                      },
                                      "T_ww"
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_wall"
                                            ]
                                          },
                                          "T_rw"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_road"
                                            ]
                                          },
                                          "T_wr"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_wall"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_wr",
                                          "L_emit_road"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      "T_ww",
                                      "L_emit_sunwall"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "det_lw"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_shdwall",
          "rhs": {
            "op": "-",
            "args": [
              "L_emit_shdwall",
              {
                "op": "*",
                "args": [
                  "ε_wall",
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_road"
                                            ]
                                          },
                                          "T_wr"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_ww"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_road"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_rw",
                                          {
                                            "op": "+",
                                            "args": [
                                              "L_emit_sunwall",
                                              "L_emit_shdwall"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_wall"
                                            ]
                                          },
                                          "T_ww"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_wall"
                                                ]
                                              },
                                              "T_rw"
                                            ]
                                          },
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "ε_road"
                                                ]
                                              },
                                              "T_wr"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              "L_atm_down",
                                              "Ψ_sky_wall"
                                            ]
                                          },
                                          {
                                            "op": "*",
                                            "args": [
                                              "T_wr",
                                              "L_emit_road"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_ww",
                                          "L_emit_shdwall"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_wall"
                                            ]
                                          },
                                          "T_rw"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "ε_road"
                                            ]
                                          },
                                          "T_wr"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          "L_atm_down",
                                          "Ψ_sky_wall"
                                        ]
                                      },
                                      {
                                        "op": "*",
                                        "args": [
                                          "T_wr",
                                          "L_emit_road"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      "T_ww",
                                      "L_emit_sunwall"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "det_lw"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_uc",
          "rhs": {
            "op": "+",
            "args": [
              "L_net_road",
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "L_net_sunwall",
                      "L_net_shdwall"
                    ]
                  },
                  "H_W"
                ]
              }
            ]
          }
        },
        {
          "lhs": "L_net_total",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "*",
                "args": [
                  "W_roof",
                  "L_net_roof"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "W_roof"
                    ]
                  },
                  "L_net_uc"
                ]
              }
            ]
          }
        }
      ]
    },
    "flux": {
      "variables": {
        "C_p": {
          "type": "parameter",
          "units": "J/(kg*K)",
          "default": 1004.64,
          "description": "Specific heat capacity of dry air (Table 1.4)"
        },
        "g_acc": {
          "type": "parameter",
          "units": "m/s^2",
          "default": 9.80616,
          "description": "Gravitational acceleration (Table 1.4)"
        },
        "k_vk": {
          "type": "parameter",
          "units": "1",
          "default": 0.4,
          "description": "von Karman constant (Table 1.4)"
        },
        "one_ms": {
          "type": "parameter",
          "units": "m/s",
          "default": 1.0,
          "description": "Unit velocity (1 m/s) for clamping"
        },
        "zero_ms": {
          "type": "parameter",
          "units": "m/s",
          "default": 0.0,
          "description": "Zero velocity reference"
        },
        "pi_val": {
          "type": "parameter",
          "units": "1",
          "default": 3.141592653589793,
          "description": "Pi constant"
        },
        "alpha_rough": {
          "type": "parameter",
          "units": "1",
          "default": 4.43,
          "description": "Empirical coefficient for displacement height (Eq. 3.55)"
        },
        "B_drag": {
          "type": "parameter",
          "units": "1",
          "default": 1.0,
          "description": "Drag correction coefficient (Eq. 3.57)"
        },
        "C_D": {
          "type": "parameter",
          "units": "1",
          "default": 1.2,
          "description": "Depth-integrated mean drag coefficient (Eq. 3.57)"
        },
        "beta_conv": {
          "type": "parameter",
          "units": "1",
          "default": 1.0,
          "description": "Convective velocity coefficient (Eq. 3.29)"
        },
        "z_i": {
          "type": "parameter",
          "units": "m",
          "default": 1000.0,
          "description": "Convective boundary layer height (Eq. 3.30)"
        },
        "c_virt": {
          "type": "parameter",
          "units": "1",
          "default": 0.61,
          "description": "Virtual potential temperature coefficient 0.61"
        },
        "one_m": {
          "type": "parameter",
          "units": "m",
          "default": 1.0,
          "description": "Unit length (1 m) for non-dimensionalization"
        },
        "gamma_BD": {
          "type": "parameter",
          "units": "1",
          "default": 16.0,
          "description": "Businger-Dyer unstable parameter (Eqs. 3.31-3.32)"
        },
        "a_BD": {
          "type": "parameter",
          "units": "1",
          "default": 5.0,
          "description": "Businger-Dyer stable parameter (Eqs. 3.31-3.32)"
        },
        "zeta_m_threshold": {
          "type": "parameter",
          "units": "1",
          "default": -1.574,
          "description": "Very unstable transition ζ for ψ_m"
        },
        "zeta_h_threshold": {
          "type": "parameter",
          "units": "1",
          "default": -0.465,
          "description": "Very unstable transition ζ for ψ_h"
        },
        "c_vu_m": {
          "type": "parameter",
          "units": "1",
          "default": 1.14,
          "description": "Very unstable momentum correction (Eq. 3.33)"
        },
        "c_vu_h": {
          "type": "parameter",
          "units": "1",
          "default": 0.8,
          "description": "Very unstable heat correction (Eq. 3.38)"
        },
        "h_c_free": {
          "type": "parameter",
          "units": "W/(m^2*K)",
          "default": 11.8,
          "description": "Free convection coefficient in surface resistance (Eq. 3.68)"
        },
        "h_c_forced": {
          "type": "parameter",
          "units": "W*s/(m^3*K)",
          "default": 4.2,
          "description": "Forced convection coefficient in surface resistance (Eq. 3.68)"
        },
        "psi_m_at_trans": {
          "type": "parameter",
          "units": "1",
          "default": 1.3580517809990371,
          "description": "ψ_m value at ζ_m_threshold (pre-computed constant for very-unstable branch)"
        },
        "neg_zm_cbrt": {
          "type": "parameter",
          "units": "1",
          "default": 1.1632370937226377,
          "description": "(-ζ_m_threshold)^(1/3) (pre-computed constant)"
        },
        "psi_h_at_trans": {
          "type": "parameter",
          "units": "1",
          "default": 1.3383071494640564,
          "description": "ψ_h value at ζ_h_threshold (pre-computed constant for very-unstable branch)"
        },
        "neg_zh_cbrt": {
          "type": "parameter",
          "units": "1",
          "default": 0.7747310894995783,
          "description": "(-ζ_h_threshold)^(1/3) (pre-computed constant)"
        },
        "H_W": {
          "type": "unknown",
          "units": "1",
          "default": 1.0,
          "description": "Canyon H/W ratio"
        },
        "H_canyon": {
          "type": "unknown",
          "units": "m",
          "default": 10.0,
          "description": "Canyon height"
        },
        "W_roof": {
          "type": "unknown",
          "units": "1",
          "default": 0.5,
          "description": "Roof fraction"
        },
        "f_prvrd": {
          "type": "unknown",
          "units": "1",
          "default": 0.5,
          "description": "Pervious road fraction"
        },
        "H_w_est": {
          "type": "unknown",
          "units": "m",
          "default": 5.0,
          "description": "Height for canyon wind estimate"
        },
        "u_atm": {
          "type": "unknown",
          "units": "m/s",
          "default": 5.0,
          "description": "Zonal wind at reference height"
        },
        "v_atm": {
          "type": "unknown",
          "units": "m/s",
          "default": 5.0,
          "description": "Meridional wind at reference height"
        },
        "theta_atm": {
          "type": "unknown",
          "units": "K",
          "default": 293.15,
          "description": "Atmospheric potential temperature"
        },
        "q_atm": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.01,
          "description": "Atmospheric specific humidity"
        },
        "rho_atm": {
          "type": "unknown",
          "units": "kg/m^3",
          "default": 1.2,
          "description": "Atmospheric air density"
        },
        "z_atm_m": {
          "type": "unknown",
          "units": "m",
          "default": 36.0,
          "description": "Reference height for momentum"
        },
        "z_atm_h": {
          "type": "unknown",
          "units": "m",
          "default": 36.0,
          "description": "Reference height for heat"
        },
        "z_atm_w": {
          "type": "unknown",
          "units": "m",
          "default": 36.0,
          "description": "Reference height for moisture"
        },
        "T_g_roof": {
          "type": "unknown",
          "units": "K",
          "default": 298.0,
          "description": "Roof surface temperature"
        },
        "T_g_prvrd": {
          "type": "unknown",
          "units": "K",
          "default": 295.0,
          "description": "Pervious road surface temperature"
        },
        "T_g_imprvrd": {
          "type": "unknown",
          "units": "K",
          "default": 297.0,
          "description": "Impervious road surface temperature"
        },
        "T_g_sunwall": {
          "type": "unknown",
          "units": "K",
          "default": 299.0,
          "description": "Sunlit wall surface temperature"
        },
        "T_g_shdwall": {
          "type": "unknown",
          "units": "K",
          "default": 294.0,
          "description": "Shaded wall surface temperature"
        },
        "q_g_roof": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.012,
          "description": "Roof saturated specific humidity"
        },
        "q_g_prvrd": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.011,
          "description": "Pervious road specific humidity"
        },
        "q_g_imprvrd": {
          "type": "unknown",
          "units": "kg/kg",
          "default": 0.012,
          "description": "Impervious road saturated specific humidity"
        },
        "f_wet_roof": {
          "type": "unknown",
          "units": "1",
          "default": 0.2,
          "description": "Wetted fraction of roof"
        },
        "f_wet_imprvrd": {
          "type": "unknown",
          "units": "1",
          "default": 0.1,
          "description": "Wetted fraction of impervious road"
        },
        "zeta_in": {
          "type": "unknown",
          "units": "1",
          "default": -0.1,
          "description": "Monin-Obukhov stability parameter ζ (external input)"
        },
        "lambda_p": {
          "type": "unknown",
          "units": "1",
          "description": "Plan area index (Eq. 3.56)"
        },
        "lambda_F": {
          "type": "unknown",
          "units": "1",
          "description": "Frontal area index (Eq. 3.58)"
        },
        "d_canopy": {
          "type": "unknown",
          "units": "m",
          "description": "Canopy displacement height (Eq. 3.55)"
        },
        "z_0m_canopy": {
          "type": "unknown",
          "units": "m",
          "description": "Canopy roughness length (Eq. 3.57)"
        },
        "V_r": {
          "type": "unknown",
          "units": "m/s",
          "description": "Reference wind speed (Eq. 3.63)"
        },
        "V_a": {
          "type": "unknown",
          "units": "m/s",
          "description": "Effective wind speed (Eq. 3.25)"
        },
        "U_c": {
          "type": "unknown",
          "units": "m/s",
          "description": "Convective velocity (Eq. 3.29)"
        },
        "U_can": {
          "type": "unknown",
          "units": "m/s",
          "description": "Canyon horizontal wind speed (Eqs. 3.60-3.62)"
        },
        "U_ac": {
          "type": "unknown",
          "units": "m/s",
          "description": "Canyon wind speed (Eq. 3.59)"
        },
        "u_star": {
          "type": "unknown",
          "units": "m/s",
          "description": "Friction velocity (Eq. 3.26)"
        },
        "L_MO": {
          "type": "unknown",
          "units": "m",
          "description": "Monin-Obukhov length (Eq. 3.50)"
        },
        "zeta_0m": {
          "type": "unknown",
          "units": "1",
          "description": "Stability parameter at z_0m"
        },
        "zeta_h": {
          "type": "unknown",
          "units": "1",
          "description": "Stability parameter for heat"
        },
        "zeta_0h": {
          "type": "unknown",
          "units": "1",
          "description": "Stability parameter at z_0h"
        },
        "zeta_w": {
          "type": "unknown",
          "units": "1",
          "description": "Stability parameter for moisture"
        },
        "zeta_0w": {
          "type": "unknown",
          "units": "1",
          "description": "Stability parameter at z_0w"
        },
        "psi_m_atm": {
          "type": "unknown",
          "units": "1",
          "description": "Momentum stability correction at ζ_in"
        },
        "psi_m_0": {
          "type": "unknown",
          "units": "1",
          "description": "Momentum stability correction at z_0m"
        },
        "psi_h_atm": {
          "type": "unknown",
          "units": "1",
          "description": "Heat stability correction at ζ_h"
        },
        "psi_h_0": {
          "type": "unknown",
          "units": "1",
          "description": "Heat stability correction at z_0h"
        },
        "psi_w_atm": {
          "type": "unknown",
          "units": "1",
          "description": "Moisture stability correction at ζ_w"
        },
        "psi_w_0": {
          "type": "unknown",
          "units": "1",
          "description": "Moisture stability correction at z_0w"
        },
        "theta_v_atm": {
          "type": "unknown",
          "units": "K",
          "description": "Virtual potential temperature at reference height"
        },
        "r_am": {
          "type": "unknown",
          "units": "s/m",
          "description": "Aerodynamic resistance for momentum (Eq. 3.65)"
        },
        "r_ah": {
          "type": "unknown",
          "units": "s/m",
          "description": "Aerodynamic resistance for sensible heat (Eq. 3.66)"
        },
        "r_aw": {
          "type": "unknown",
          "units": "s/m",
          "description": "Aerodynamic resistance for water vapor (Eq. 3.67)"
        },
        "r_s_u": {
          "type": "unknown",
          "units": "s/m",
          "description": "Urban surface resistance (Eq. 3.68)"
        },
        "c_a_h": {
          "type": "unknown",
          "units": "m/s",
          "description": "Sensible heat conductance UCL-atm (1/r_ah)"
        },
        "c_a_w": {
          "type": "unknown",
          "units": "m/s",
          "description": "Latent heat conductance UCL-atm (1/r_aw)"
        },
        "T_ac": {
          "type": "unknown",
          "units": "K",
          "description": "UCL air temperature (Eq. 3.75)"
        },
        "q_ac": {
          "type": "unknown",
          "units": "kg/kg",
          "description": "UCL air specific humidity (Eq. 3.93)"
        },
        "H_roof": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Sensible heat flux from roof (Eq. 3.69)"
        },
        "H_prvrd": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Sensible heat flux from pervious road (Eq. 3.70)"
        },
        "H_imprvrd": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Sensible heat flux from impervious road (Eq. 3.71)"
        },
        "H_sunwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Sensible heat flux from sunlit wall (Eq. 3.72)"
        },
        "H_shdwall": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Sensible heat flux from shaded wall (Eq. 3.73)"
        },
        "H_total": {
          "type": "unknown",
          "units": "W/m^2",
          "description": "Total sensible heat flux (Eq. 3.74)"
        },
        "E_roof": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Water vapor flux from roof (Eq. 3.76)"
        },
        "E_prvrd": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Water vapor flux from pervious road (Eq. 3.77)"
        },
        "E_imprvrd": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Water vapor flux from impervious road (Eq. 3.78)"
        },
        "E_total": {
          "type": "unknown",
          "units": "kg/(m^2*s)",
          "description": "Total water vapor flux (Eq. 3.81)"
        },
        "tau_x": {
          "type": "unknown",
          "units": "kg/(m*s^2)",
          "description": "Zonal momentum flux (Eq. 3.6)"
        },
        "tau_y": {
          "type": "unknown",
          "units": "kg/(m*s^2)",
          "description": "Meridional momentum flux (Eq. 3.7)"
        },
        "dH_roof_dT": {
          "type": "unknown",
          "units": "W/(m^2*K)",
          "description": "∂H_roof/∂T_g,roof (Eq. 3.95)"
        },
        "dH_prvrd_dT": {
          "type": "unknown",
          "units": "W/(m^2*K)",
          "description": "∂H_prvrd/∂T_g,prvrd (Eq. 3.96)"
        },
        "dH_imprvrd_dT": {
          "type": "unknown",
          "units": "W/(m^2*K)",
          "description": "∂H_imprvrd/∂T_g,imprvrd (Eq. 3.97)"
        },
        "dH_sunwall_dT": {
          "type": "unknown",
          "units": "W/(m^2*K)",
          "description": "∂H_sunwall/∂T_g,sunwall (Eq. 3.98)"
        },
        "dH_shdwall_dT": {
          "type": "unknown",
          "units": "W/(m^2*K)",
          "description": "∂H_shdwall/∂T_g,shdwall (Eq. 3.99)"
        }
      },
      "equations": [
        {
          "lhs": "lambda_p",
          "rhs": {
            "op": "/",
            "args": [
              "H_W",
              {
                "op": "+",
                "args": [
                  "H_W",
                  1.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "lambda_F",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  1.0,
                  "lambda_p"
                ]
              },
              "H_W"
            ]
          }
        },
        {
          "lhs": "d_canopy",
          "rhs": {
            "op": "*",
            "args": [
              "H_canyon",
              {
                "op": "+",
                "args": [
                  1.0,
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "alpha_rough",
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "lambda_p"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          "lambda_p",
                          1.0
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "z_0m_canopy",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "H_canyon",
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      {
                        "op": "/",
                        "args": [
                          "d_canopy",
                          "H_canyon"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "exp",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      0.0,
                      {
                        "op": "^",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              0.5,
                                              "B_drag"
                                            ]
                                          },
                                          "C_D"
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "^",
                                            "args": [
                                              "k_vk",
                                              2.0
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      {
                                        "op": "/",
                                        "args": [
                                          "d_canopy",
                                          "H_canyon"
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              "lambda_F"
                            ]
                          },
                          -0.5
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "V_r",
          "rhs": {
            "op": "max",
            "args": [
              {
                "op": "sqrt",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "u_atm",
                          2.0
                        ]
                      },
                      {
                        "op": "^",
                        "args": [
                          "v_atm",
                          2.0
                        ]
                      }
                    ]
                  }
                ]
              },
              "one_ms"
            ]
          }
        },
        {
          "lhs": "L_MO",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  "z_atm_m",
                  "d_canopy"
                ]
              },
              "zeta_in"
            ]
          }
        },
        {
          "lhs": "zeta_0m",
          "rhs": {
            "op": "/",
            "args": [
              "z_0m_canopy",
              "L_MO"
            ]
          }
        },
        {
          "lhs": "zeta_h",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  "z_atm_h",
                  "d_canopy"
                ]
              },
              "L_MO"
            ]
          }
        },
        {
          "lhs": "zeta_0h",
          "rhs": {
            "op": "/",
            "args": [
              "z_0m_canopy",
              "L_MO"
            ]
          }
        },
        {
          "lhs": "zeta_w",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "-",
                "args": [
                  "z_atm_w",
                  "d_canopy"
                ]
              },
              "L_MO"
            ]
          }
        },
        {
          "lhs": "zeta_0w",
          "rhs": {
            "op": "/",
            "args": [
              "z_0m_canopy",
              "L_MO"
            ]
          }
        },
        {
          "lhs": "psi_m_atm",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_in",
                  "zeta_m_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_m_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_in",
                              "zeta_m_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "-",
                    "args": [
                      0.0,
                      {
                        "op": "*",
                        "args": [
                          "c_vu_m",
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "^",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      "zeta_in"
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              },
                              "neg_zm_cbrt"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_in",
                      0.0
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  2.0,
                                  {
                                    "op": "log",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "+",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "^",
                                                "args": [
                                                  {
                                                    "op": "-",
                                                    "args": [
                                                      1.0,
                                                      {
                                                        "op": "*",
                                                        "args": [
                                                          "gamma_BD",
                                                          "zeta_in"
                                                        ]
                                                      }
                                                    ]
                                                  },
                                                  0.25
                                                ]
                                              }
                                            ]
                                          },
                                          2.0
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "^",
                                            "args": [
                                              {
                                                "op": "^",
                                                "args": [
                                                  {
                                                    "op": "-",
                                                    "args": [
                                                      1.0,
                                                      {
                                                        "op": "*",
                                                        "args": [
                                                          "gamma_BD",
                                                          "zeta_in"
                                                        ]
                                                      }
                                                    ]
                                                  },
                                                  0.25
                                                ]
                                              },
                                              2.0
                                            ]
                                          }
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              {
                                "op": "*",
                                "args": [
                                  2.0,
                                  {
                                    "op": "atan",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_in"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          "pi_val",
                          2.0
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_in",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_in"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_in"
                                    ]
                                  }
                                ]
                              },
                              "zeta_in"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "psi_m_0",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_0m",
                  "zeta_m_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_m_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_0m",
                              "zeta_m_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "-",
                    "args": [
                      0.0,
                      {
                        "op": "*",
                        "args": [
                          "c_vu_m",
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "^",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      "zeta_0m"
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              },
                              "neg_zm_cbrt"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_0m",
                      0.0
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  2.0,
                                  {
                                    "op": "log",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "+",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "^",
                                                "args": [
                                                  {
                                                    "op": "-",
                                                    "args": [
                                                      1.0,
                                                      {
                                                        "op": "*",
                                                        "args": [
                                                          "gamma_BD",
                                                          "zeta_0m"
                                                        ]
                                                      }
                                                    ]
                                                  },
                                                  0.25
                                                ]
                                              }
                                            ]
                                          },
                                          2.0
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          {
                                            "op": "^",
                                            "args": [
                                              {
                                                "op": "^",
                                                "args": [
                                                  {
                                                    "op": "-",
                                                    "args": [
                                                      1.0,
                                                      {
                                                        "op": "*",
                                                        "args": [
                                                          "gamma_BD",
                                                          "zeta_0m"
                                                        ]
                                                      }
                                                    ]
                                                  },
                                                  0.25
                                                ]
                                              },
                                              2.0
                                            ]
                                          }
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              {
                                "op": "*",
                                "args": [
                                  2.0,
                                  {
                                    "op": "atan",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_0m"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          "pi_val",
                          2.0
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_0m",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_0m"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_0m"
                                    ]
                                  }
                                ]
                              },
                              "zeta_0m"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "psi_h_atm",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_h",
                  "zeta_h_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_h_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_h",
                              "zeta_h_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "c_vu_h",
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "^",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  "zeta_h"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "neg_zh_cbrt"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_h",
                      0.0
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "^",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_h"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              },
                              2.0
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_h",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_h"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_h"
                                    ]
                                  }
                                ]
                              },
                              "zeta_h"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "psi_h_0",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_0h",
                  "zeta_h_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_h_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_0h",
                              "zeta_h_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "c_vu_h",
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "^",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  "zeta_0h"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "neg_zh_cbrt"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_0h",
                      0.0
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "^",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_0h"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              },
                              2.0
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_0h",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_0h"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_0h"
                                    ]
                                  }
                                ]
                              },
                              "zeta_0h"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "psi_w_atm",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_w",
                  "zeta_h_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_h_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_w",
                              "zeta_h_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "c_vu_h",
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "^",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  "zeta_w"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "neg_zh_cbrt"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_w",
                      0.0
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "^",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_w"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              },
                              2.0
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_w",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_w"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_w"
                                    ]
                                  }
                                ]
                              },
                              "zeta_w"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "psi_w_0",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": "<",
                "args": [
                  "zeta_0w",
                  "zeta_h_threshold"
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "psi_h_at_trans",
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "zeta_0w",
                              "zeta_h_threshold"
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "c_vu_h",
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "^",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  "zeta_0w"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      1.0,
                                      3.0
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "neg_zh_cbrt"
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_0w",
                      0.0
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      {
                        "op": "log",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "^",
                                    "args": [
                                      {
                                        "op": "^",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              {
                                                "op": "*",
                                                "args": [
                                                  "gamma_BD",
                                                  "zeta_0w"
                                                ]
                                              }
                                            ]
                                          },
                                          0.25
                                        ]
                                      },
                                      2.0
                                    ]
                                  }
                                ]
                              },
                              2.0
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "ifelse",
                    "args": [
                      {
                        "op": "<=",
                        "args": [
                          "zeta_0w",
                          1.0
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              "a_BD"
                            ]
                          },
                          "zeta_0w"
                        ]
                      },
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      0.0,
                                      {
                                        "op": "-",
                                        "args": [
                                          "a_BD",
                                          1.0
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "log",
                                    "args": [
                                      "zeta_0w"
                                    ]
                                  }
                                ]
                              },
                              "zeta_0w"
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              "a_BD",
                              1.0
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "theta_v_atm",
          "rhs": {
            "op": "*",
            "args": [
              "theta_atm",
              {
                "op": "+",
                "args": [
                  1.0,
                  {
                    "op": "*",
                    "args": [
                      "c_virt",
                      "q_atm"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "U_c",
          "rhs": {
            "op": "*",
            "args": [
              "beta_conv",
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": "<",
                    "args": [
                      "zeta_in",
                      0.0
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "max",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "k_vk",
                                  "V_r"
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      {
                                        "op": "log",
                                        "args": [
                                          {
                                            "op": "/",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  "z_atm_m",
                                                  "d_canopy"
                                                ]
                                              },
                                              "z_0m_canopy"
                                            ]
                                          }
                                        ]
                                      },
                                      "psi_m_atm"
                                    ]
                                  },
                                  "psi_m_0"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              0.01,
                              "one_ms"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "^",
                        "args": [
                          {
                            "op": "max",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "/",
                                            "args": [
                                              "z_i",
                                              "one_m"
                                            ]
                                          },
                                          {
                                            "op": "/",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  "z_atm_m",
                                                  "d_canopy"
                                                ]
                                              },
                                              "one_m"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "-",
                                        "args": [
                                          0.0,
                                          "zeta_in"
                                        ]
                                      }
                                    ]
                                  },
                                  "k_vk"
                                ]
                              },
                              0.0
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              1.0,
                              3.0
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  "zero_ms"
                ]
              }
            ]
          }
        },
        {
          "lhs": "V_a",
          "rhs": {
            "op": "max",
            "args": [
              {
                "op": "sqrt",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "^",
                            "args": [
                              "u_atm",
                              2.0
                            ]
                          },
                          {
                            "op": "^",
                            "args": [
                              "v_atm",
                              2.0
                            ]
                          }
                        ]
                      },
                      {
                        "op": "^",
                        "args": [
                          "U_c",
                          2.0
                        ]
                      }
                    ]
                  }
                ]
              },
              "one_ms"
            ]
          }
        },
        {
          "lhs": "u_star",
          "rhs": {
            "op": "max",
            "args": [
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "k_vk",
                      "V_a"
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      "z_atm_m",
                                      "d_canopy"
                                    ]
                                  },
                                  "z_0m_canopy"
                                ]
                              }
                            ]
                          },
                          "psi_m_atm"
                        ]
                      },
                      "psi_m_0"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  0.01,
                  "one_ms"
                ]
              }
            ]
          }
        },
        {
          "lhs": "r_am",
          "rhs": {
            "op": "/",
            "args": [
              "V_a",
              {
                "op": "^",
                "args": [
                  "u_star",
                  2.0
                ]
              }
            ]
          }
        },
        {
          "lhs": "r_ah",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  1.0,
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "k_vk",
                          2.0
                        ]
                      },
                      "V_a"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      "z_atm_m",
                                      "d_canopy"
                                    ]
                                  },
                                  "z_0m_canopy"
                                ]
                              }
                            ]
                          },
                          "psi_m_atm"
                        ]
                      },
                      "psi_m_0"
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      "z_atm_h",
                                      "d_canopy"
                                    ]
                                  },
                                  "z_0m_canopy"
                                ]
                              }
                            ]
                          },
                          "psi_h_atm"
                        ]
                      },
                      "psi_h_0"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "r_aw",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "/",
                "args": [
                  1.0,
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "k_vk",
                          2.0
                        ]
                      },
                      "V_a"
                    ]
                  }
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      "z_atm_m",
                                      "d_canopy"
                                    ]
                                  },
                                  "z_0m_canopy"
                                ]
                              }
                            ]
                          },
                          "psi_m_atm"
                        ]
                      },
                      "psi_m_0"
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      "z_atm_w",
                                      "d_canopy"
                                    ]
                                  },
                                  "z_0m_canopy"
                                ]
                              }
                            ]
                          },
                          "psi_w_atm"
                        ]
                      },
                      "psi_w_0"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "U_can",
          "rhs": {
            "op": "ifelse",
            "args": [
              {
                "op": ">=",
                "args": [
                  "H_W",
                  1.0
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "V_r",
                          {
                            "op": "/",
                            "args": [
                              2.0,
                              "pi_val"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "max",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          "H_canyon",
                                          "d_canopy"
                                        ]
                                      },
                                      "z_0m_canopy"
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      1.0,
                                      1e-10
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "log",
                            "args": [
                              {
                                "op": "max",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          "z_atm_m",
                                          "d_canopy"
                                        ]
                                      },
                                      "z_0m_canopy"
                                    ]
                                  },
                                  {
                                    "op": "+",
                                    "args": [
                                      1.0,
                                      1e-10
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "exp",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              0.0,
                              {
                                "op": "*",
                                "args": [
                                  0.5,
                                  "H_W"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              {
                                "op": "/",
                                "args": [
                                  "H_w_est",
                                  "H_canyon"
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              },
              {
                "op": "ifelse",
                "args": [
                  {
                    "op": ">=",
                    "args": [
                      "H_W",
                      0.5
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "V_r",
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          2.0,
                                          {
                                            "op": "-",
                                            "args": [
                                              {
                                                "op": "/",
                                                "args": [
                                                  2.0,
                                                  "pi_val"
                                                ]
                                              },
                                              1.0
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "-",
                                        "args": [
                                          "H_W",
                                          0.5
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "max",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              "H_canyon",
                                              "d_canopy"
                                            ]
                                          },
                                          "z_0m_canopy"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          1e-10
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "max",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              "z_atm_m",
                                              "d_canopy"
                                            ]
                                          },
                                          "z_0m_canopy"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          1e-10
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "exp",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      0.5,
                                      "H_W"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      "H_w_est",
                                      "H_canyon"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "V_r",
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "max",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              "H_canyon",
                                              "d_canopy"
                                            ]
                                          },
                                          "z_0m_canopy"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          1e-10
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "log",
                                "args": [
                                  {
                                    "op": "max",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              "z_atm_m",
                                              "d_canopy"
                                            ]
                                          },
                                          "z_0m_canopy"
                                        ]
                                      },
                                      {
                                        "op": "+",
                                        "args": [
                                          1.0,
                                          1e-10
                                        ]
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "exp",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  0.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      0.5,
                                      "H_W"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  {
                                    "op": "/",
                                    "args": [
                                      "H_w_est",
                                      "H_canyon"
                                    ]
                                  }
                                ]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "U_ac",
          "rhs": {
            "op": "sqrt",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "^",
                    "args": [
                      "U_can",
                      2.0
                    ]
                  },
                  {
                    "op": "^",
                    "args": [
                      "u_star",
                      2.0
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "r_s_u",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "+",
                "args": [
                  "h_c_free",
                  {
                    "op": "*",
                    "args": [
                      "h_c_forced",
                      "U_ac"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "c_a_h",
          "rhs": {
            "op": "/",
            "args": [
              1.0,
              "r_ah"
            ]
          }
        },
        {
          "lhs": "c_a_w",
          "rhs": {
            "op": "/",
            "args": [
              1.0,
              "r_aw"
            ]
          }
        },
        {
          "lhs": "T_ac",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      "c_a_h",
                                      "theta_atm"
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          "W_roof",
                                          "r_s_u"
                                        ]
                                      },
                                      "T_g_roof"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          "f_prvrd"
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  },
                                  "T_g_prvrd"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "f_prvrd"
                                        ]
                                      }
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              },
                              "T_g_imprvrd"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          },
                          "T_g_sunwall"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          "r_s_u"
                        ]
                      },
                      "T_g_shdwall"
                    ]
                  }
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  "c_a_h",
                                  {
                                    "op": "/",
                                    "args": [
                                      "W_roof",
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "f_prvrd"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "f_prvrd"
                                    ]
                                  }
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "W_roof"
                            ]
                          },
                          "H_W"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "q_ac",
          "rhs": {
            "op": "/",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "c_a_w",
                              "q_atm"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "/",
                                    "args": [
                                      "W_roof",
                                      "r_s_u"
                                    ]
                                  },
                                  "f_wet_roof"
                                ]
                              },
                              "q_g_roof"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "f_prvrd"
                                ]
                              },
                              "r_s_u"
                            ]
                          },
                          "q_g_prvrd"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "f_prvrd"
                                    ]
                                  }
                                ]
                              },
                              "r_s_u"
                            ]
                          },
                          "f_wet_imprvrd"
                        ]
                      },
                      "q_g_imprvrd"
                    ]
                  }
                ]
              },
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          "c_a_w",
                          {
                            "op": "*",
                            "args": [
                              "f_wet_roof",
                              {
                                "op": "/",
                                "args": [
                                  "W_roof",
                                  "r_s_u"
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "f_prvrd"
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "f_wet_imprvrd",
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "f_prvrd"
                                ]
                              }
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_roof",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "rho_atm",
                          "C_p"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "T_ac",
                  "T_g_roof"
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_prvrd",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "rho_atm",
                          "C_p"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "T_ac",
                  "T_g_prvrd"
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_imprvrd",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "rho_atm",
                          "C_p"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "T_ac",
                  "T_g_imprvrd"
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_sunwall",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "rho_atm",
                          "C_p"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "T_ac",
                  "T_g_sunwall"
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_shdwall",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "rho_atm",
                          "C_p"
                        ]
                      },
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "T_ac",
                  "T_g_shdwall"
                ]
              }
            ]
          }
        },
        {
          "lhs": "H_total",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "*",
                "args": [
                  "W_roof",
                  "H_roof"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "W_roof"
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "f_prvrd",
                              "H_prvrd"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "f_prvrd"
                                ]
                              },
                              "H_imprvrd"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "H_W",
                              "H_sunwall"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              "H_W",
                              "H_shdwall"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "E_roof",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      0.0,
                      {
                        "op": "/",
                        "args": [
                          "rho_atm",
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  "f_wet_roof"
                ]
              },
              {
                "op": "-",
                "args": [
                  "q_ac",
                  "q_g_roof"
                ]
              }
            ]
          }
        },
        {
          "lhs": "E_prvrd",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      "rho_atm",
                      "r_s_u"
                    ]
                  }
                ]
              },
              {
                "op": "-",
                "args": [
                  "q_ac",
                  "q_g_prvrd"
                ]
              }
            ]
          }
        },
        {
          "lhs": "E_imprvrd",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      0.0,
                      {
                        "op": "/",
                        "args": [
                          "rho_atm",
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  "f_wet_imprvrd"
                ]
              },
              {
                "op": "-",
                "args": [
                  "q_ac",
                  "q_g_imprvrd"
                ]
              }
            ]
          }
        },
        {
          "lhs": "E_total",
          "rhs": {
            "op": "+",
            "args": [
              {
                "op": "*",
                "args": [
                  "W_roof",
                  "E_roof"
                ]
              },
              {
                "op": "*",
                "args": [
                  {
                    "op": "-",
                    "args": [
                      1.0,
                      "W_roof"
                    ]
                  },
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          "f_prvrd",
                          "E_prvrd"
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              "f_prvrd"
                            ]
                          },
                          "E_imprvrd"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "tau_x",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      "rho_atm",
                      "r_am"
                    ]
                  }
                ]
              },
              "u_atm"
            ]
          }
        },
        {
          "lhs": "tau_y",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "-",
                "args": [
                  0.0,
                  {
                    "op": "/",
                    "args": [
                      "rho_atm",
                      "r_am"
                    ]
                  }
                ]
              },
              "v_atm"
            ]
          }
        },
        {
          "lhs": "dH_roof_dT",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      "c_a_h",
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          "W_roof",
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "W_roof",
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          "c_a_h",
                                          {
                                            "op": "/",
                                            "args": [
                                              "W_roof",
                                              "r_s_u"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "dH_prvrd_dT",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      "c_a_h",
                                      {
                                        "op": "/",
                                        "args": [
                                          "W_roof",
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "f_prvrd"
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "f_prvrd"
                            ]
                          },
                          1.0
                        ]
                      },
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          "c_a_h",
                                          {
                                            "op": "/",
                                            "args": [
                                              "W_roof",
                                              "r_s_u"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "dH_imprvrd_dT",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      "c_a_h",
                                      {
                                        "op": "/",
                                        "args": [
                                          "W_roof",
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          "f_prvrd"
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "f_prvrd"
                                ]
                              }
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "f_prvrd"
                                ]
                              }
                            ]
                          },
                          1.0
                        ]
                      },
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          "c_a_h",
                                          {
                                            "op": "/",
                                            "args": [
                                              "W_roof",
                                              "r_s_u"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "dH_sunwall_dT",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      "c_a_h",
                                      {
                                        "op": "/",
                                        "args": [
                                          "W_roof",
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          "f_prvrd"
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "f_prvrd"
                                        ]
                                      }
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          1.0
                        ]
                      },
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          "c_a_h",
                                          {
                                            "op": "/",
                                            "args": [
                                              "W_roof",
                                              "r_s_u"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "lhs": "dH_shdwall_dT",
          "rhs": {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  "rho_atm",
                  "C_p"
                ]
              },
              {
                "op": "/",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      "c_a_h",
                                      {
                                        "op": "/",
                                        "args": [
                                          "W_roof",
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          "f_prvrd"
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "f_prvrd"
                                        ]
                                      }
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          "r_s_u"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "-",
                                "args": [
                                  1.0,
                                  "W_roof"
                                ]
                              },
                              "H_W"
                            ]
                          },
                          1.0
                        ]
                      },
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "+",
                                "args": [
                                  {
                                    "op": "+",
                                    "args": [
                                      {
                                        "op": "+",
                                        "args": [
                                          "c_a_h",
                                          {
                                            "op": "/",
                                            "args": [
                                              "W_roof",
                                              "r_s_u"
                                            ]
                                          }
                                        ]
                                      },
                                      {
                                        "op": "/",
                                        "args": [
                                          {
                                            "op": "*",
                                            "args": [
                                              {
                                                "op": "-",
                                                "args": [
                                                  1.0,
                                                  "W_roof"
                                                ]
                                              },
                                              "f_prvrd"
                                            ]
                                          },
                                          "r_s_u"
                                        ]
                                      }
                                    ]
                                  },
                                  {
                                    "op": "/",
                                    "args": [
                                      {
                                        "op": "*",
                                        "args": [
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "W_roof"
                                            ]
                                          },
                                          {
                                            "op": "-",
                                            "args": [
                                              1.0,
                                              "f_prvrd"
                                            ]
                                          }
                                        ]
                                      },
                                      "r_s_u"
                                    ]
                                  }
                                ]
                              },
                              {
                                "op": "/",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      {
                                        "op": "-",
                                        "args": [
                                          1.0,
                                          "W_roof"
                                        ]
                                      },
                                      "H_W"
                                    ]
                                  },
                                  "r_s_u"
                                ]
                              }
                            ]
                          },
                          {
                            "op": "/",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "-",
                                    "args": [
                                      1.0,
                                      "W_roof"
                                    ]
                                  },
                                  "H_W"
                                ]
                              },
                              "r_s_u"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  },
  "equations": [
    {
      "_comment": "Parent → offline.S_atm",
      "lhs": "UrbanCanopyModel.offline.S_atm",
      "rhs": "S_atm"
    },
    {
      "_comment": "Parent → offline.T_atm",
      "lhs": "UrbanCanopyModel.offline.T_atm",
      "rhs": "T_atm"
    },
    {
      "_comment": "Parent → offline.P_atm",
      "lhs": "UrbanCanopyModel.offline.P_atm",
      "rhs": "P_atm"
    },
    {
      "_comment": "Parent → offline.q_atm",
      "lhs": "UrbanCanopyModel.offline.q_atm",
      "rhs": "q_atm"
    },
    {
      "_comment": "Parent → offline.W_atm",
      "lhs": "UrbanCanopyModel.offline.W_atm",
      "rhs": "W_atm"
    },
    {
      "_comment": "Parent → offline.P_precip",
      "lhs": "UrbanCanopyModel.offline.P_precip",
      "rhs": "P_precip"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.z_prime_atm",
      "rhs": "UrbanCanopyModel.offline.z_prime_atm"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.T_atm",
      "rhs": "T_atm"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.P_atm",
      "rhs": "P_atm"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.q_atm",
      "rhs": "q_atm"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.z_0",
      "rhs": "z_0"
    },
    {
      "lhs": "UrbanCanopyModel.atmos.z_d",
      "rhs": "z_d"
    },
    {
      "lhs": "UrbanCanopyModel.rad.S_atm_dir_vis",
      "rhs": "UrbanCanopyModel.offline.S_atm_dir_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.S_atm_dir_nir",
      "rhs": "UrbanCanopyModel.offline.S_atm_dir_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.S_atm_dif_vis",
      "rhs": "UrbanCanopyModel.offline.S_atm_dif_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.S_atm_dif_nir",
      "rhs": "UrbanCanopyModel.offline.S_atm_dif_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.L_atm_down",
      "rhs": "UrbanCanopyModel.offline.L_atm_down"
    },
    {
      "lhs": "UrbanCanopyModel.rad.μ_zen",
      "rhs": "μ_zen"
    },
    {
      "lhs": "UrbanCanopyModel.rad.H_W",
      "rhs": "H_W"
    },
    {
      "lhs": "UrbanCanopyModel.rad.W_roof",
      "rhs": "W_roof"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_roof_dir_vis",
      "rhs": "α_roof_dir_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_roof_dir_nir",
      "rhs": "α_roof_dir_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_roof_dif_vis",
      "rhs": "α_roof_dif_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_roof_dif_nir",
      "rhs": "α_roof_dif_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_road_dir_vis",
      "rhs": "α_road_dir_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_road_dir_nir",
      "rhs": "α_road_dir_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_road_dif_vis",
      "rhs": "α_road_dif_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_road_dif_nir",
      "rhs": "α_road_dif_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_wall_dir_vis",
      "rhs": "α_wall_dir_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_wall_dir_nir",
      "rhs": "α_wall_dir_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_wall_dif_vis",
      "rhs": "α_wall_dif_vis"
    },
    {
      "lhs": "UrbanCanopyModel.rad.α_wall_dif_nir",
      "rhs": "α_wall_dif_nir"
    },
    {
      "lhs": "UrbanCanopyModel.rad.ε_roof",
      "rhs": "ε_roof"
    },
    {
      "lhs": "UrbanCanopyModel.rad.ε_road",
      "rhs": "ε_road"
    },
    {
      "lhs": "UrbanCanopyModel.rad.ε_wall",
      "rhs": "ε_wall"
    },
    {
      "lhs": "UrbanCanopyModel.rad.T_roof",
      "rhs": "T_g_roof"
    },
    {
      "lhs": "UrbanCanopyModel.rad.T_road",
      "rhs": "T_g_imprvrd"
    },
    {
      "lhs": "UrbanCanopyModel.rad.T_sunwall",
      "rhs": "T_g_sunwall"
    },
    {
      "lhs": "UrbanCanopyModel.rad.T_shdwall",
      "rhs": "T_g_shdwall"
    },
    {
      "lhs": "UrbanCanopyModel.flux.u_atm",
      "rhs": "UrbanCanopyModel.offline.u_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.v_atm",
      "rhs": "UrbanCanopyModel.offline.v_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.theta_atm",
      "rhs": "UrbanCanopyModel.offline.theta_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.q_atm",
      "rhs": "q_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.rho_atm",
      "rhs": "UrbanCanopyModel.atmos.rho_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.z_atm_m",
      "rhs": "UrbanCanopyModel.atmos.z_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.z_atm_h",
      "rhs": "UrbanCanopyModel.atmos.z_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.z_atm_w",
      "rhs": "UrbanCanopyModel.atmos.z_atm"
    },
    {
      "lhs": "UrbanCanopyModel.flux.H_W",
      "rhs": "H_W"
    },
    {
      "lhs": "UrbanCanopyModel.flux.H_canyon",
      "rhs": "H_canyon"
    },
    {
      "lhs": "UrbanCanopyModel.flux.W_roof",
      "rhs": "W_roof"
    },
    {
      "lhs": "UrbanCanopyModel.flux.f_prvrd",
      "rhs": "f_prvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.H_w_est",
      "rhs": "H_w_est"
    },
    {
      "lhs": "UrbanCanopyModel.flux.T_g_roof",
      "rhs": "T_g_roof"
    },
    {
      "lhs": "UrbanCanopyModel.flux.T_g_prvrd",
      "rhs": "T_g_prvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.T_g_imprvrd",
      "rhs": "T_g_imprvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.T_g_sunwall",
      "rhs": "T_g_sunwall"
    },
    {
      "lhs": "UrbanCanopyModel.flux.T_g_shdwall",
      "rhs": "T_g_shdwall"
    },
    {
      "lhs": "UrbanCanopyModel.flux.q_g_roof",
      "rhs": "q_g_roof"
    },
    {
      "lhs": "UrbanCanopyModel.flux.q_g_prvrd",
      "rhs": "q_g_prvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.q_g_imprvrd",
      "rhs": "q_g_imprvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.f_wet_roof",
      "rhs": "f_wet_roof"
    },
    {
      "lhs": "UrbanCanopyModel.flux.f_wet_imprvrd",
      "rhs": "f_wet_imprvrd"
    },
    {
      "lhs": "UrbanCanopyModel.flux.zeta_in",
      "rhs": "zeta_in"
    }
  ],
  "tests": [
    {
      "description": "Model loads and all subsystems initialize without error",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.flux.T_ac",
          "expected": 296.0,
          "tolerance": {
            "rel": 0.05
          }
        },
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.flux.H_total",
          "expected": 98.38416414890685,
          "tolerance": {
            "rel": 1e-05
          }
        },
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.rad.S_net_total",
          "expected": 422.7339093856878,
          "tolerance": {
            "rel": 1e-05
          }
        }
      ],
      "id": "structural_load"
    },
    {
      "description": "CLMUAtmosphere reproduces canonical air density at default conditions (q=0.01, P=101325, T=293.15)",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.atmos.rho_atm",
          "expected": 1.1968760398898206,
          "tolerance": {
            "rel": 1e-08
          }
        }
      ],
      "id": "atmos_rho_canonical"
    },
    {
      "description": "UCL air temperature is bounded between atmospheric and surface temperatures",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.flux.T_ac",
          "expected": 296.0,
          "tolerance": {
            "rel": 0.05
          }
        }
      ],
      "id": "flux_T_ac_bounds"
    },
    {
      "description": "Total evaporation E_total is positive (drying: surface drier than air)",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.flux.E_total",
          "expected": 1e-05,
          "tolerance": {
            "rel": 100.0
          }
        }
      ],
      "id": "flux_E_total_sign"
    },
    {
      "description": "Net longwave is positive (net upward emission from warm surfaces)",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "time": 0.0,
          "variable": "UrbanCanopyModel.rad.L_net_total",
          "expected": 78.83055675488629,
          "tolerance": {
            "rel": 1e-05
          }
        }
      ],
      "id": "rad_L_net_total_sign"
    }
  ],
  "expression_templates": {
    "band_det": {
      "params": [
        "a_r",
        "a_w"
      ],
      "body": {
        "op": "-",
        "args": [
          {
            "op": "-",
            "args": [
              1.0,
              {
                "op": "^",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      "a_w",
                      "T_ww"
                    ]
                  },
                  2.0
                ]
              }
            ]
          },
          {
            "op": "*",
            "args": [
              {
                "op": "*",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      2.0,
                      {
                        "op": "*",
                        "args": [
                          "a_w",
                          "T_rw"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      "a_r",
                      "T_wr"
                    ]
                  }
                ]
              },
              {
                "op": "+",
                "args": [
                  1.0,
                  {
                    "op": "*",
                    "args": [
                      "a_w",
                      "T_ww"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    "band_net_road": {
      "params": [
        "a_r",
        "a_w",
        "S_r",
        "S_sw",
        "S_sh",
        "det_var"
      ],
      "body": {
        "op": "*",
        "args": [
          {
            "op": "-",
            "args": [
              1.0,
              "a_r"
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              {
                                "op": "^",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_ww"
                                    ]
                                  },
                                  2.0
                                ]
                              }
                            ]
                          },
                          "S_r"
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_w",
                                  "T_rw"
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_ww"
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "S_sw"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "a_w",
                              "T_rw"
                            ]
                          },
                          {
                            "op": "+",
                            "args": [
                              1.0,
                              {
                                "op": "*",
                                "args": [
                                  "a_w",
                                  "T_ww"
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "S_sh"
                    ]
                  }
                ]
              },
              "det_var"
            ]
          }
        ]
      }
    },
    "band_net_sw": {
      "params": [
        "a_r",
        "a_w",
        "S_r",
        "S_sw",
        "S_sh",
        "det_var"
      ],
      "body": {
        "op": "*",
        "args": [
          {
            "op": "-",
            "args": [
              1.0,
              "a_w"
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_r",
                                  "T_wr"
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_ww"
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "S_r"
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "-",
                            "args": [
                              1.0,
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_rw"
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_r",
                                      "T_wr"
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "S_sw"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "+",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              "a_w",
                              "T_ww"
                            ]
                          },
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_w",
                                  "T_rw"
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  "a_r",
                                  "T_wr"
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "S_sh"
                    ]
                  }
                ]
              },
              "det_var"
            ]
          }
        ]
      }
    },
    "band_net_sh": {
      "params": [
        "a_r",
        "a_w",
        "S_r",
        "S_sw",
        "S_sh",
        "det_var"
      ],
      "body": {
        "op": "*",
        "args": [
          {
            "op": "-",
            "args": [
              1.0,
              "a_w"
            ]
          },
          {
            "op": "/",
            "args": [
              {
                "op": "+",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_r",
                                  "T_wr"
                                ]
                              },
                              {
                                "op": "+",
                                "args": [
                                  1.0,
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_ww"
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "S_r"
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          {
                            "op": "+",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_w",
                                  "T_ww"
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_w",
                                      "T_rw"
                                    ]
                                  },
                                  {
                                    "op": "*",
                                    "args": [
                                      "a_r",
                                      "T_wr"
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "S_sw"
                        ]
                      }
                    ]
                  },
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "-",
                        "args": [
                          1.0,
                          {
                            "op": "*",
                            "args": [
                              {
                                "op": "*",
                                "args": [
                                  "a_w",
                                  "T_rw"
                                ]
                              },
                              {
                                "op": "*",
                                "args": [
                                  "a_r",
                                  "T_wr"
                                ]
                              }
                            ]
                          }
                        ]
                      },
                      "S_sh"
                    ]
                  }
                ]
              },
              "det_var"
            ]
          }
        ]
      }
    },
    "band_refl_sky": {
      "params": [
        "S_r",
        "S_sw",
        "S_sh",
        "net_road",
        "net_sw",
        "net_sh"
      ],
      "body": {
        "op": "-",
        "args": [
          {
            "op": "+",
            "args": [
              "S_r",
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "S_sw",
                      "S_sh"
                    ]
                  },
                  "H_W"
                ]
              }
            ]
          },
          {
            "op": "+",
            "args": [
              "net_road",
              {
                "op": "*",
                "args": [
                  {
                    "op": "+",
                    "args": [
                      "net_sw",
                      "net_sh"
                    ]
                  },
                  "H_W"
                ]
              }
            ]
          }
        ]
      }
    }
  }
}