model.processes.hydrologyΒΆ

Hydrology module for ADELM.

This module updates the three water-storage domains handled by the hydrology system:

  • snow water storage

  • canopy interception storage

  • multi-layer soil water storage

The module expects upstream energy and evapotranspiration routines to provide the required liquid-water and latent-flux diagnostics, then applies explicit storage updates and soil-column water balance.

Module ContentsΒΆ

FunctionsΒΆ

calculate_precipitation_phase

Partition incoming precipitation into rainfall and snowfall using a linear temperature-phase model.

calculate_snow_hydrology

Diagnose snowmelt and sublimation and update ground snowpack storage.

calculate_canopy_solid_hydrology

Update solid canopy interception storage from snowfall interception, unloading, and sublimation.

calculate_canopy_liquid_hydrology

Update liquid canopy interception storage and diagnose throughfall and actual wet-canopy evaporation.

calculate_soil_hydrology

Update multi-layer soil water storage from surface infiltration through gravitational drainage and underflow.

APIΒΆ

model.processes.hydrology.calculate_precipitation_phase(drivers, states, fluxes, diagnos, params, consts, errors, structure, debugs)ΒΆ

Partition incoming precipitation into rainfall and snowfall using a linear temperature-phase model.

Parameters:
  • drivers (dict) – Required variables: ta_min_degC, ta_max_degC, and pr_mmday.

  • consts (dict) – Required variable: freezing_point.

Returns:

fluxes – Updated variables: rainfall_mmday and snowfall_mmday.

Return type:

dict

model.processes.hydrology.calculate_snow_hydrology(drivers, states, fluxes, diagnos, params, consts, errors, structure, debugs)ΒΆ

Diagnose snowmelt and sublimation and update ground snowpack storage.

Parameters:
  • drivers (dict) – Required variable: ta_degC.

  • states (dict) – Required variable: snow_water_storage.

  • fluxes (dict) – Required variables: snowfall_to_ground_mmday and soil_net_radiation_Wm2.

  • diagnos (dict) – Required variable: potential_snow_sublimation.

  • params (dict) – Required variable: snow_melt_coefficient.

  • consts (dict) – Required variables: freezing_point, seconds_per_day, and latent_heat_of_sublimation.

Returns:

  • states (dict) – Updated variable: snow_water_storage.

  • fluxes (dict) – Updated variables: snowmelt_mmday and snow_sublimation_mmday.

  • errors (dict) – Updated variable: snow_water_storage_balance_error.

model.processes.hydrology.calculate_canopy_solid_hydrology(drivers, states, fluxes, diagnos, params, consts, errors, structure, debugs)ΒΆ

Update solid canopy interception storage from snowfall interception, unloading, and sublimation.

Parameters:
  • drivers (dict) – Required variable: ta_degC.

  • states (dict) – Required variable: canopy_solid_interception_storage.

  • fluxes (dict) – Required variables: snowfall_mmday and canopy_net_radiation_Wm2.

  • diagnos (dict) – Required variables: vegetation_area_index and potential_canopy_sublimation.

  • params (dict) – Required variable: canopy_solid_interception_capacity_coefficient.

  • consts (dict) – Required variables: freezing_point, seconds_per_day, and latent_heat_of_sublimation.

Returns:

  • states (dict) – Updated variable: canopy_solid_interception_storage.

  • fluxes (dict) – Updated variables: canopy_solid_interception_mmday, canopy_solid_unload_mmday, canopy_solid_sublimation_mmday, and snowfall_to_ground_mmday.

  • errors (dict) – Updated variable: canopy_solid_interception_storage_balance_error.

  • debugs (dict) – Updated variable: canopy_solid_interception_capacity.

model.processes.hydrology.calculate_canopy_liquid_hydrology(drivers, states, fluxes, diagnos, params, consts, errors, structure, debugs)ΒΆ

Update liquid canopy interception storage and diagnose throughfall and actual wet-canopy evaporation.

Parameters:
  • drivers (dict) – Required variable: lai.

  • states (dict) – Required variable: canopy_liquid_interception_storage.

  • fluxes (dict) – Required variable: rainfall_mmday.

  • diagnos (dict) – Required variable: potential_canopy_liquid_evaporation.

  • params (dict) – Required variable: canopy_interception_capacity_coefficient.

Returns:

  • states (dict) – Updated variable: canopy_liquid_interception_storage.

  • fluxes (dict) – Updated variables: canopy_liquid_interception_mmday, throughfall_from_canopy_mmday, and canopy_liquid_evaporation_mmday.

  • errors (dict) – Updated variable: canopy_liquid_interception_storage_balance_error.

  • debugs (dict) – Updated variables: canopy_liquid_interception_capacity and canopy_intercepted_water.

model.processes.hydrology.calculate_soil_hydrology(drivers, states, fluxes, diagnos, params, consts, errors, structure, debugs)ΒΆ

Update multi-layer soil water storage from surface infiltration through gravitational drainage and underflow.

Parameters:
  • drivers (dict) – Required variable: ta_degC.

  • states (dict) – Required variable: soil_moisture.

  • fluxes (dict) – Required variables: throughfall_from_canopy_mmday, snowmelt_mmday, and snow_sublimation_mmday.

  • diagnos (dict) – Required variables: potential_surface_evaporation, potential_canopy_transpiration, and water_uptake_fraction.

  • params (dict) – Required variables: soil_saturated_moisture, soil_field_capacity, soil_infiltration_shape_parameter, soil_brooks_corey_b, and soil_saturated_hydraulic_conductivity.

  • consts (dict) – Required variables: seconds_per_day, freezing_point, latent_heat_of_sublimation, and numerical_epsilon.

  • structure (ModelStructureConfig) – Defines num_soil_layers, soil_layer_thicknesses, and num_runoff_generation_layers.

Returns:

  • states (dict) – Updated variable: soil_moisture.

  • fluxes (dict) – Updated variables: soil_evaporation_mmday, canopy_transpiration_mmday, root_water_uptake_mmday, infiltration_mmday, gravitational_drainage_mmday, runoff_mmday, underflow_mmday, and total_et_mmday.

  • errors (dict) – Updated variable: soil_water_storage_balance_error.

  • debugs (dict) – Updated variables: surface_liquid_water_input_mmday, surface_infiltration_capacity, surface_relative_wetness, and infiltration_to_soil.