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