Urban_canopy
- AdjustedLayerThickness
model
urban_canopy
temps
Adjusted top layer thickness for pervious and impervious road surfaces in the urban canopy thermal scheme. The adjustment compensates for the offset between the layer-averaged temperature carried by the finite-volume soil column and the surface temperature used in the surface-energy-balance kernel, using the tunable Yang (1998) coefficient c_a = 0.34. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:601 (`AdjustedLayerThickness` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.30. Parameterized as observed-only: z_i, z_h_im1, z_ip1, c_a are inputs (parameters); Δz_star is the algebraic output.
- AquiferWaterBalance
model
urban_canopy
hydro
Aquifer water-storage update for the case when the water table lies below the soil column. The rate of change of aquifer water dW_a (kg/(m^2*s)) is the balance of recharge into the aquifer and sub-surface drainage out of it (Oleson et al. 2010, CLM Tech Note Ch. 5, Eq. 5.143). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:791 (`AquiferWaterBalance` @component). Observed-only: both inputs are parameters and dW_a is given by a single algebraic equation.
- BuildingTemperature
model
urban_canopy
temps
Weighted-average internal building temperature from canyon and roof surface temperatures, implementing Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.37–4.38. The roof length L_roof in an infinite canyon (Eq. 4.38) and the unclamped building temperature T_iB_unclamped (Eq. 4.37) are both algebraic functions of the canyon geometry (H_canyon, H_W, W_roof) and the inner-surface temperatures of the shaded wall, sunlit wall, and roof. T_iB is the area-weighted average with the two walls contributing 2*H_canyon of effective length and the roof contributing L_roof. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:401 (`BuildingTemperature` @component). NOTE: the migration-tracker entry listed `blocking_gap: other:discretization-plan` citing line :1152, but that line belongs to `RoofWallHeatConduction` (a separate non-exported helper function). `BuildingTemperature` itself is a pure two-equation algebraic `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- CLMUAtmosphere
model
urban_canopy
Atmospheric interface for the Community Land Model Urban (CLMU) parameterization, following Chapter 1 of Oleson et al. (2010). Computes three diagnostic outputs from atmospheric forcing inputs: atmospheric vapor pressure (e_atm = q_atm P_atm / (epsilon + (1-epsilon) q_atm)), atmospheric air density (rho_atm = (P_atm - (1-epsilon) e_atm) / (R_da T_atm)), and the reference height for flux computations (z_atm = z_prime_atm + z_0 + z_d). Here epsilon = MW_wv/MW_da = 0.622 is the molecular-weight ratio of water vapor to dry air, and R_da = R_gas/MW_da is the specific gas constant for dry air. The urban canyon is represented as a roof + sunlit/shaded wall + pervious/impervious road five-column system; this component defines the atmospheric forcing interface that the rest of the canopy column reads. Migrated from UrbanCanopy.jl@9200edd4 src/clmu_introduction.jl:22 (`CLMUAtmosphere` @component). Parameterized as observed-only: forcings (q_atm, P_atm, T_atm, z_prime_atm, z_0, z_d, etc.) are inputs (parameters); e_atm, rho_atm, z_atm are the algebraic state outputs.
- ExponentialGrid
model
urban_canopy
temps
Exponential vertical grid discretization for pervious and impervious road columns in the urban canopy thermal solver. Computes node depths (Oleson Eq. 4.8), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) with a scaling factor f_s = 0.025 m that produces finer resolution near the surface — a requirement because urban roads overlie real soil and the near-surface diurnal cycle dominates thermal exchange. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:890 (`ExponentialGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.6-4.8). Parameterized as observed-only: f_s is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- FreezingPointDepression
model
urban_canopy
temps
Maximum liquid water content in a soil layer below the freezing point, following the supercooled-soil-water freezing-point depression treatment of Niu and Yang (2006). Below T_f, liquid coexists with ice via the matric-potential / latent-heat balance of Oleson et al. (2010) Eq. 4.58; above T_f, the layer holds the fully-saturated maximum Δz·θ_sat·ρ_liq. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:949 (`FreezingPointDepression` @component). Parameterized as observed-only: T_i, θ_sat, Δz, ψ_sat, B_i, ρ_liq are inputs (parameters); w_liq_max is the algebraic output.
- GroundwaterDrainage
model
urban_canopy
hydro
Sub-surface drainage out of the soil column as an exponential function of water table depth, modulated by an impermeable-fraction reduction in frozen soils, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.140 (drainage) and 5.141 (impermeable fraction). q_drai = (1 - f_imp) * q_drai_max * exp(-f_drai * z_v); f_imp = max((exp(-α(1 - f_ice_weighted)) - exp(-α)) / (1 - exp(-α)), 0). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:698 (`GroundwaterDrainage` @component). Observed-only: both inputs are parameters and both outputs are given by single algebraic equations.
- HeatFlux
model
urban_canopy
temps
Vertical heat flux across the interface between two soil/snow/road/wall/roof layers via the finite-difference discretization of Fourier's law of heat conduction (Oleson et al. 2010 Eq. 4.11). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:312 (`HeatFlux` @component). Implements the canonical layer-pair flux F = -λ_interface * (T_i - T_{i+1}) / (z_{i+1} - z_i), positive upward (heat flowing from layer i+1 to layer i, i.e. from deeper layer to shallower layer when stacking depth-increasing-downward). λ_interface is the harmonic-mean interface conductivity (Eq. 4.12), produced upstream by InterfaceThermalConductivity from the adjacent-layer bulk conductivities. Parameterized as observed-only with one algebraic equation: F is the state variable; λ_interface, T_i, T_ip1, z_i, z_ip1 are inputs (parameters in standalone form, wired to upstream components in a full column build).
- HeatingCoolingFlux
model
urban_canopy
temps
Heating/cooling fluxes through the building floor for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:638 (`HeatingCoolingFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.51 and 4.52: the building uses HVAC to clamp the internal building temperature T_iB to the prescribed comfort window [T_iB_min, T_iB_max]. The combined floor flux F_combined is the Crank-Nicholson average of F_bottom_n (time n) and F_bottom_np1 (time n+1) per Eq. 4.53/4.54; if T_iB falls below T_iB_min the absolute value of F_combined is reported as the heating flux F_heat (Eq. 4.51); if T_iB rises above T_iB_max the absolute value is reported as the cooling flux F_cool (Eq. 4.52); inside the comfort window both F_heat and F_cool are zero (no HVAC demand). Parameterized as observed-only with three algebraic equations: F_combined, F_heat, F_cool are state variables; T_iB, T_iB_min, T_iB_max, F_bottom_n, F_bottom_np1 are inputs (parameters in standalone form).
- ImperviousRunoff
model
urban_canopy
hydro
Surface runoff and updated surface liquid-water content for roof and impervious-road surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.47-5.48. With no snow layers (has_snow = 0): runoff is the excess of (w_liq_1/Δt + q_liq_0 - q_seva) above the ponding limit w_pond_max/Δt. With snow layers (has_snow = 1): all liquid water reaching the surface becomes runoff and the surface liquid-water content passes through unchanged. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:991 (`ImperviousRunoff` @component). Parameterized as observed-only: w_liq_1, q_liq_0, q_seva, has_snow are inputs (parameters); q_over_nosnow, q_over, w_liq_1_new are algebraic outputs.
- ImperviousWaterBalance
model
urban_canopy
hydro
Surface water balance for roof and impervious-road urban surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.2-5.5. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:937 (`ImperviousWaterBalance` @component). Parameterized as observed-only: precipitation (q_rain, q_sno) and loss fluxes (E_surface, q_over, q_rgwl, q_snwcp_ice) are inputs; q_grnd_liq, q_grnd_ice, and water_input are algebraic outputs.
- InterfaceHydraulicConductivity
model
urban_canopy
hydro
Hydraulic conductivity at a soil-layer interface as a Clapp-Hornberger function of the average volumetric water content and porosity of the two adjacent layers, scaled by the unfrozen fraction. Implements Oleson et al. (2010, CLM Tech Note Ch. 5) Eq. 5.69 (interface conductivity) with the frozen-fraction multiplier of Eq. 5.70. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:1053 (`InterfaceHydraulicConductivity` @component). Observed-only: all eight inputs are parameters and k_h is given by a single algebraic equation.
- InterfaceThermalConductivity
model
urban_canopy
temps
Thermal conductivity at the interface between two adjacent thermal layers of the urban canopy column. Implements the conductivity-weighted harmonic mean (Oleson et al. 2010, CLM Tech Note Ch. 4, Eq. 4.12) derived from continuity of conductive heat flux across the interface (Eq. 4.13). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:278 (`InterfaceThermalConductivity` @component). Parameterized as observed-only: λ_i, λ_ip1, z_i, z_ip1, z_h are inputs (parameters); λ_interface is the algebraic output.
- LayerPhaseChangeEnergy
model
urban_canopy
temps
Per-layer phase change energy for the urban canopy snow/soil thermodynamics: the energy required to change a single layer's ice mass from w_ice_n at time n to w_ice_np1 at time n+1 over time step Δt (Oleson et al. 2010 Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1037 (`LayerPhaseChangeEnergy` @component). The column-summed output of this component over all layers is the E_p_layers input of `TotalPhaseChangeEnergy` (Eq. 4.72). Parameterized as observed-only: w_ice_n, w_ice_np1, Δt are inputs (parameters); E_p is the algebraic output.
- OfflineModeForcing
model
urban_canopy
Offline-mode atmospheric forcing processor for the Community Land Model Urban (CLMU). Migrated from UrbanCanopy.jl@9200edd4 src/offline_mode.jl:33 (`OfflineModeForcing` @component). Implements Oleson et al. (2010, NCAR Tech Note CLMU Ch. 6): given the raw observational inputs total incident solar radiation S_atm, atmospheric temperature T_atm, pressure P_atm, specific humidity q_atm, wind speed W_atm, and total precipitation rate P_precip, it derives (a) the four-way solar partition into direct/diffuse × visible/NIR via the Eq. 6.7-6.8 cubic polynomials and Eqs. 6.2-6.5 visibility / NIR weighting; (b) the downwelling longwave radiation L_atm_down from the Idso (1981) formula (Eqs. 6.9-6.10) including the vapor-pressure conversion from specific humidity; (c) the rain/snow phase partition from a linear T_atm - T_f ramp (Eqs. 6.11-6.13); and (d) the wind components, potential temperature, and atmospheric reference height (p.149) needed by CLMU's surface-layer routines. Eq. 6.1 (temporal downscaling of 6-hourly solar to model time steps) and Eqs. 6.14-6.15 (specific humidity from RH / dewpoint) are upstream data-preprocessing steps and are intentionally not implemented here; S_atm and q_atm are taken as already at the model time step. Parameterized as observed-only with 18 algebraic equations and 18 state-variable outputs — no time derivatives, no `@register_symbolic` dependencies, no PDE — matching the upstream `length(equations(sys)) == 18` / `length(unknowns(sys)) == 18` structural tests.
- PerviousRoadWaterBalance
model
urban_canopy
hydro
Net water-input rate for the pervious-road column (Oleson et al. 2010, CLM Tech Note Ch. 5, Eq. 5.1, p. 110). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:900 (`PerviousRoadWaterBalance` @component). Algebraic single-equation balance: water_input = (precipitation gains) − (evaporation + surface runoff + sub-surface drainage + groundwater liquid runoff + snow-capping solid runoff).
- PhaseChangeAdjustment
model
urban_canopy
temps
Per-layer phase-change adjustment for ice/liquid water redistribution and temperature correction in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:686 (`PhaseChangeAdjustment` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.60–4.65: given the excess/deficit energy H_i (W/m²) available for phase change in layer i (from `PhaseChangeEnergy`), recompute ice mass w_ice^{n+1}, liquid water mass w_liq^{n+1}, and layer temperature T^{n+1}. Melting occurs when H_i > 0 (surplus energy melts ice up to available mass); freezing occurs when H_i < 0 (deficit energy freezes liquid water). Residual energy H_res = H_i - L_f*(w_ice^n - w_ice^{n+1})/Δt that cannot drive further phase change adjusts the layer temperature. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share equations 1–4 (Eqs. 4.60–4.64) and differ only in Eq. 4.65 (temperature correction): the :top variant divides by (1 - (Δt/(c_i*Δz_i))*dh_dT) to account for the linearized surface-heat-flux feedback; the :interior variant uses the denominator = 1 (no surface feedback). Both variants are unified here via a dimensionless switch parameter `is_top` (0.0 = interior, 1.0 = top), identical to the unification strategy used by the sibling `PhaseChangeEnergy` component. NOTE: the migration-tracker entry for this component listed `blocking_gap: other:discretization-plan` citing line :1227, but that line belongs to `RoadHeatConduction` (a separate non-exported helper function). `PhaseChangeAdjustment` itself is a pure algebraic MTK `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- PhaseChangeEnergy
model
urban_canopy
temps
Per-layer energy excess/deficit available for phase change in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:496 (`PhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.59 for layer i: the imbalance between net heat fluxes (Crank-Nicholson average of times n and n+1) and the thermal storage required to bring the layer to the freezing point T_f. When H_excess > 0 the layer has surplus energy that can melt ice; when H_excess < 0 it has deficit energy that can freeze liquid water. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share a Crank-Nicholson bottom-flux contribution and the thermal-storage term but differ in the upper boundary: the :top variant adds a surface heat flux `h_n + dh_dT*(T_f - T_i_n)` (Eq. 4.59 for i = snl+1), while the :interior variant subtracts the upper-interface Crank-Nicholson flux `α_CN*F_im1_n + (1-α_CN)*F_im1_np1` (Eq. 4.59 for i > snl+1). Both variants are merged here into a single algebraic equation switched by an `is_top` dimensionless parameter (0.0 = interior, 1.0 = top); both upstream test fixtures pass against this merged form with the appropriate parameter set.
- SnowCappingRunoff
model
urban_canopy
hydro
Solid and liquid runoff from snow capping for snow-covered surfaces, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.153-5.154. When the model has reached its prescribed maximum snow water equivalent, additional precipitation and atmospheric deposition cannot accumulate on the snowpack and is shed to the surface as `snow capping runoff` — the solid stream comes from solid precipitation plus frost (Eq. 5.153) and the liquid stream from liquid precipitation plus dew (Eq. 5.154). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:823 (`SnowCappingRunoff` @component). Parameterized as observed-only: q_grnd_ice, q_grnd_liq, q_frost, q_dew are inputs (parameters); q_snwcp_ice and q_snwcp_liq are algebraic outputs.
- SnowCompaction
model
urban_canopy
hydro
Total fractional snow-layer compaction rate combining destructive metamorphism (Eq. 5.26), overburden pressure (Eq. 5.28), and melt-induced compaction (Eq. 5.31). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:174 (`SnowCompaction` @component). Implements Oleson et al. (2010) CLM4 Tech Note Chapter 5, Section 5.1.4, Eqs. 5.24–5.33. Parameterized as observed-only: T_i, w_ice, w_liq, dz, P_s, f_ice_n, f_ice_n1 are inputs; c_1, c_2, C_R1, eta, C_R2, C_R3, C_R are algebraic outputs.
- SnowDensity
model
urban_canopy
hydro
Bulk density of newly fallen snow as a piecewise function of atmospheric temperature, following Anderson (1976) as parameterized in Eq. 5.10 of Oleson et al. (2010, CLM Tech Note Ch. 5). Three regimes: (1) warm snow (T_atm > T_f + 2 K) → rho_sno = 50 + 1.7*17^1.5 (saturated warm-side value); (2) intermediate (T_f - 15 K < T_atm <= T_f + 2 K) → rho_sno = 50 + 1.7*((T_atm - T_f + 15)/1K)^1.5; (3) cold (T_atm <= T_f - 15 K) → rho_sno = 50 (saturated cold-side floor). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:25 (`SnowDensity` @component). Parameterized as observed-only: T_atm is the input parameter; rho_sno is an algebraic output.
- SnowIceContent
model
urban_canopy
hydro
Conservation of ice mass in snow layers and new snowfall accumulation (Oleson et al. 2010, CLM4 Tech Note Ch. 5, Section 5.1.1, Eqs. 5.6-5.14). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:79 (`SnowIceContent` @component). Parameterized as observed-only: q_grnd_ice, q_frost, q_subl, rho_sno are inputs (parameters); dz_sno_dt, q_ice_top are algebraic outputs.
- SnowLayerCombination
model
urban_canopy
hydro
Combined-layer properties when two snow layers are merged (Oleson et al. 2010, Section 5.1.5.1, Eqs. 5.38–5.42). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:253 (`SnowLayerCombination` @component). Observed-only: per-layer thicknesses, water/ice contents, and temperatures are inputs (parameters); combined thickness/water/ice/enthalpies/temperature are algebraic outputs.
- SnowLayerGeometry
model
urban_canopy
temps
Single-layer snow-pack geometry for the CLMU urban canopy thermal stack: given the total snow depth z_sno, computes the bottom-layer thickness, node depth, and top interface depth used by the snow conduction column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:33 (`SnowLayerGeometry` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) §4.1 Eqs. 4.9-4.10 in the simplest snl = -1 (single snow layer) regime, where Δz_0 = z_sno (pp. 92-93). Parameterized as observed-only: z_sno is the input (parameter); Δz_snow_0, z_node_snow_0, z_interface_snow_neg1 are the algebraic outputs of three identity/linear equations.
- SnowMeltNoLayers
model
urban_canopy
temps
Surface snow melt for the no-layer (single-layer-flag) snow model: discrete-time update of snow mass and depth from excess top-soil-layer energy, with residual energy and phase-change diagnostics. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:773 (`SnowMeltNoLayers` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.66-4.71. Parameterized as observed-only: H_1, W_sno_n, z_sno_n, Δt are inputs (parameters); W_sno_np1, z_sno_np1, H_residual, M_1S, E_p1S are algebraic outputs.
- SnowSoilBlendedHeatCapacity
model
urban_canopy
temps
Blended snow/soil heat capacity for the urban canopy top-soil layer when a thin (no-layer) snowpack rides on top: combines the dry soil volumetric heat capacity with the additional contribution of the overlying snow mass. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1003 (`SnowSoilBlendedHeatCapacity` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.88. Parameterized as observed-only: c_soil, W_sno, Δz are inputs (parameters); c_blended is the algebraic output.
- SnowThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity of an urban-canopy snow layer. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:190 (`SnowThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3) Eq. 4.84 for snow bulk density, Eq. 4.83 (Jordan 1991 quadratic) for thermal conductivity, and Eq. 4.87 (additive ice + liquid contributions) for volumetric heat capacity. Parameterized as observed-only: w_ice, w_liq, Δz are inputs (parameters); ρ_sno, λ_snow, c_snow are algebraic outputs.
- SnowWaterContent
model
urban_canopy
hydro
Volumetric ice/liquid contents and outgoing liquid-water flux for a snow layer (Oleson et al. 2010, CLM4 Tech Note Ch. 5, Eqs. 5.18–5.20). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:119 (`SnowWaterContent` @component). Parameterized as observed-only: w_ice, w_liq, dz are inputs (parameters); theta_ice, theta_liq, q_liq_out are algebraic outputs.
- SoilHydraulicProperties
model
urban_canopy
hydro
Soil hydraulic properties for an urban-canopy pervious-road soil column following Section 5.3.1 of Oleson et al. (2010, CLM4 Tech Note). Computes five Clapp-Hornberger / Cosby-style properties from the soil sand and clay fractions and the local volumetric water content: saturated hydraulic conductivity k_sat (Eq. 5.70), porosity θ_sat (Eq. 5.71), Clapp-Hornberger exponent B (Eq. 5.72), saturated matric potential ψ_sat (Eq. 5.74), and matric potential ψ (Eq. 5.73, clamped on both sides). Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:322 (`SoilHydraulicProperties` @component). Observed-only: all three inputs are parameters and all five outputs are given by single algebraic equations.
- SoilThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity for soil layers in the pervious-road column of the urban canopy thermal solver. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:75 (`SoilThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3): thermal conductivity follows Farouki (1981) using the Kersten-number method (Eqs. 4.77-4.82); volumetric heat capacity follows de Vries (1963) (Eqs. 4.85-4.86). Parameterized as observed-only: pct_sand, pct_clay, θ_sat, θ_liq, T_i, w_ice, w_liq, Δz are inputs (parameters); λ_s, λ_sat, λ_dry, ρ_d, S_r, K_e, λ_soil, c_s, c_soil are algebraic outputs. The component carries two temperature-conditioned `ifelse` branches: λ_sat and K_e switch between frozen (T_i < T_f) and unfrozen (T_i ≥ T_f) regimes, while λ_soil falls back to λ_dry whenever S_r drops below a small numerical threshold.
- SoilWaterContentCalc
model
urban_canopy
hydro
Total volumetric soil water content from per-layer liquid-water and ice masses, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eq. 5.137. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:1091 (`SoilWaterContentCalc` @component). Parameterized as observed-only: w_liq, w_ice, Δz are inputs (parameters); θ_i is an algebraic output combining both phases via their respective densities.
- SoilWaterEquilibrium
model
urban_canopy
hydro
Layer-averaged equilibrium volumetric water content (θ_E, Eq. 5.101) and equilibrium matric potential at the layer node (ψ_E, Eq. 5.106) for a single soil layer, following Oleson et al. (2010, CLM4 Tech Note Ch. 5, §5.3.2.1, Eqs. 5.98–5.106). θ_E is fully saturated (θ_sat) when the water table is above the layer (z_v < z_h_upper), otherwise is computed by integrating the hydrostatic-equilibrium Clapp-Hornberger profile across the layer, clamped to [0, θ_sat]. ψ_E is derived from the Brooks-Corey inverse relation with a 1% saturation floor and a hard lower bound at ψ_min = −10⁵ m to prevent numerical underflow. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:509 (`SoilWaterEquilibrium` @component). Note: the migration-tracker row for this component carried the blocking_gap `other:discretization-plan` because the row description mentioned an in-file Richards-equation PDE at src/hydrology.jl:674. Inspection shows that PDESystem lives in a separate non-`@component` helper function (`RichardsEquation`) and is not part of `SoilWaterEquilibrium`, which is a plain two-equation algebraic `@component`. No discretization plan is needed.
- SoilWaterFlux
model
urban_canopy
hydro
Soil water flux at the interface between two adjacent soil layers, computed from Darcy's law with the Zeng and Decker (2009) equilibrium-potential correction (Oleson et al. 2010, CLM4 Tech Note Eq. 5.88). q = -k_interface * ((ψ_upper - ψ_lower) + (ψ_E_lower - ψ_E_upper)) / (z_lower - z_upper), positive upward. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:471 (`SoilWaterFlux` @component). Observed-only: the seven inputs are parameters and q is given by a single algebraic equation.
- SurfaceEnergyFlux
model
urban_canopy
temps
Net surface heat flux and its derivative with respect to surface temperature for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:347 (`SurfaceEnergyFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.26, 4.28, and 4.29: the surface heat flux h is the algebraic sum of absorbed solar radiation, net longwave radiation, sensible heat, latent heat, and waste/AC heat (Eq. 4.26); the longwave-derivative diagnostic dL_g_dT = 4*epsilon_g*sigma_SB*T_g_n^3 (Eq. 4.29) is the Stefan-Boltzmann temperature derivative of the upward longwave emission at the current surface temperature; the total flux derivative dh_dT = -dL_g_dT - dH_g_dT - dlambdaE_g_dT (Eq. 4.28) drives the linearized Crank-Nicholson scheme of Eq. 4.19. Parameterized as observed-only: S_g, L_g, H_g, lambdaE_g, H_wasteheat_g, H_aircond_g, epsilon_g, T_g_n, dH_g_dT, dlambdaE_g_dT are inputs (parameters); h, dL_g_dT, dh_dT are the algebraic state outputs.
- SurfaceLayerUpdate
model
urban_canopy
hydro
Top-layer ice and liquid water mass-rate updates from surface dew, frost, and sublimation, following Oleson et al. (2010, CLM Tech Note Ch. 5) Eqs. 5.150-5.152. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:860 (`SurfaceLayerUpdate` @component). Parameterized as observed-only: q_sdew, q_frost, q_subl are inputs (parameters); dw_liq_1, dw_ice_1_frost, dw_ice_1_subl are algebraic outputs that pass each input through (with a sign flip on sublimation). Applies to the top layer of all surfaces (roof, pervious road, impervious road).
- SurfaceRunoffInfiltration
model
urban_canopy
hydro
Surface runoff and infiltration for the pervious-road urban surface, following Oleson et al. (2010, CLM Tech Note Ch. 5) §5.2, Eqs. 5.49-5.57. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:384 (`SurfaceRunoffInfiltration` @component). Implements the SIMTOP-based (Niu et al., 2005) runoff partition with frozen-soil-modulated saturated fraction (Eqs. 5.50-5.51), a maximum infiltration capacity built from top-layer matric-potential and saturation (Eqs. 5.52-5.55), and snow-aware surface infiltration (Eqs. 5.56-5.57). Observed-only: all 14 inputs are parameters and the seven outputs (f_frz_1, f_sat, s, v, q_infl_max, q_over, q_infl) are given by algebraic equations.
- TotalPhaseChangeEnergy
model
urban_canopy
temps
Column-total phase change energy for the urban canopy snow/soil thermodynamics: the sum of the surface snow melt energy E_p1S (Oleson et al. 2010 Eq. 4.71) and the column-summed per-layer phase change energies E_p_layers (Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1071 (`TotalPhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.72. Parameterized as observed-only: E_p1S and E_p_layers are inputs (parameters); E_p_total is the algebraic output.
- UniformGrid
model
urban_canopy
temps
Uniform vertical grid discretization for roof and wall columns in the urban canopy thermal solver. Computes node depths at layer midpoints (Oleson Eq. 4.5), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) for a column of total thickness `dz_total` divided into N equal-thickness layers. Used for roofs and walls (homogeneous opaque material — concrete, brick, etc.); the road column uses the exponential grid (sibling `exponential_grid.esm`) because it overlies real soil where near-surface diurnal cycles dominate. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:830 (`UniformGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.5-4.7). Parameterized as observed-only: `dz_total` is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- UrbanCanopyModel
model
urban_canopy
Top-level composed diagnostic urban canopy model following the Community Land Model Urban (CLMU) parameterization of Oleson et al. (2010). Wires four CLMU subsystems — OfflineModeForcing (raw met → derived forcing), CLMUAtmosphere (atmospheric interface diagnostics), UrbanRadiation (solar/longwave radiation), and HeatMomentumFluxes (Monin-Obukhov surface fluxes) — via top-level coupling equations. All subsystems are inlined (ESS spec §4.7 composed-model pattern). Surface temperatures are prescribed as parameters (diagnostic mode). Migrated from UrbanCanopy.jl@9200edd4 src/urban_canopy_model.jl:41.
- UrbanRadiation
model
urban_canopy
Urban albedos and radiative fluxes for the Community Land Model Urban (CLMU) parameterization, following Chapter 2 of Oleson et al. (2010). Computes view factors, incident direct beam and diffuse solar radiation, absorbed and reflected solar radiation (with closed-form multi-reflection solution for the urban canyon), incident longwave radiation, and absorbed/reflected/emitted longwave radiation for urban surfaces: roof, sunlit wall, shaded wall, and road. The urban canyon is represented as an infinitely long canyon of width W bordered by buildings of height H. The iterative multi-reflection scheme (Eqs. 2.63-2.85, 2.138-2.170) is solved in closed form using the matrix geometric series S_absorbed = (I - A) * (I - T*A)^{-1} * S_0, where A is the albedo matrix, T is the view-factor transport matrix, and S_0 is the initial incident radiation vector. Migrated from UrbanCanopy.jl@9200edd4 src/albedos_radiative_fluxes.jl:27 (`UrbanRadiation` @component). Parameterized as observed-only: H_W, W_roof, S_atm_*, L_atm_down, μ_zen, surface albedos α_*, emissivities ε_*, and surface temperatures T_* are inputs (parameters); 62 view factor, intermediate, absorbed-flux, and reflected-flux quantities are algebraic state outputs.
- UrbanSurfaceThermalProperties
model
urban_canopy
temps
Prescribed thermal conductivity and volumetric heat capacity for urban surface layers (roof, wall, and impervious road) in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:245 (`UrbanSurfaceThermalProperties` @component). Implements Section 4.3 of Oleson et al. (2010, CLM Tech Note Ch. 4): for roof, wall, and impervious road layers (i = 1, ..., N_imprvrd) the thermal conductivity λ_surf and the volumetric heat capacity c_surf are specified by the surface dataset (Table 1.3) rather than computed from the layer state. The component takes those prescribed values as parameters and returns them as time-indexed observables — a passthrough/identity wrapper that exposes the surface dataset values on the canonical (λ_surf, c_surf) names the downstream HeatFlux / SurfaceEnergyFlux components consume. Parameterized as observed-only with two algebraic equations: λ_surf and c_surf are state variables; λ_prescribed and c_prescribed are inputs (parameters in standalone form).
- WasteHeatAirConditioning
model
urban_canopy
temps
Waste heat and air-conditioning heat removal aggregation for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:440 (`WasteHeatAirConditioning` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.55-4.56: the unclamped total waste heat H_wasteheat_unclamped distributes heating/cooling fluxes from the roof and the two walls (sunlit and shaded) into the canyon air, weighted by the efficiency factors f_heat = 1/0.75 and f_cool = 1/0.25, the roof area fraction W_roof, and the canyon-wall geometry factor (1 - W_roof) * H_W per Eq. 4.55; this is clamped at H_wasteheat_max = 100 W/m^2 to produce H_wasteheat. The air-conditioning heat removal H_aircond is the sum of the three cooling fluxes (F_cool_roof + F_cool_sunwall + F_cool_shdwall) per Eq. 4.56. Parameterized as observed-only with three algebraic equations: H_wasteheat_unclamped, H_wasteheat, H_aircond are state variables; F_heat_roof, F_cool_roof, F_heat_sunwall, F_cool_sunwall, F_heat_shdwall, F_cool_shdwall, W_roof, H_W are inputs (parameters in standalone form).
- WasteHeatAllocation
model
urban_canopy
temps
Allocates the column-total anthropogenic waste heat (H_wasteheat) and air conditioning heat removal (H_aircond) to the pervious and impervious urban road surfaces under the CLMU urban canopy model. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:561 (`WasteHeatAllocation` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.27: per the CLMU convention, waste heat and air-conditioning heat are deposited ONLY on the pervious and impervious road tiles (walls and roof receive zero by construction); each road tile receives the same per-unit-area flux equal to the column total divided by the non-roof areal fraction (1 - W_roof). Parameterized as observed-only with four algebraic equations: H_wasteheat_prvrd, H_wasteheat_imprvrd, H_aircond_prvrd, H_aircond_imprvrd are state variables; H_wasteheat, H_aircond, W_roof are inputs (parameters in standalone form).
- WaterTableDepth
model
urban_canopy
hydro
Water table depth z_v as a function of unconfined-aquifer water storage W_a and the depth of the bottom soil interface z_h_bottom. Implements Oleson et al. (2010) CLM Tech Note Eq. 5.146 (p. 143) with hard clamps at z_v_min = 0.05 m and z_v_max = 80 m. Migrated from UrbanCanopy.jl@9200edd4 src/hydrology.jl:743 (`WaterTableDepth` @component). Observed-only: z_h_bottom and W_a are parameters and z_v is given by a single algebraic equation.