Auxiliary

This is auto-generated documentation based on the model code in models/easylake_simplycnp_model.txt . Since the modules can be dynamically loaded with different arguments, this documentation does not necessarily reflect all use cases of the modules.

See the note on notation.

The file was generated at 2024-11-12 13:40:23.


Degree-day PET

Version: 1.0.0

File: modules/pet.txt

Description

This is a very simple potential evapotranspiration model that uses a linear relationship between PET and air temperature.

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Soil soil compartment
Potential evapotranspiration pet property
Temperature temp property

Parameters

Name Symbol Unit Description
Potential evapotranspiration     Distributes like: soil
Degree-day factor for evapotranspiration ddf_pet mm °C⁻¹ day⁻¹  
Minimal temperature for evapotranspiration pet_min_t °C  

State variables

Potential evapotranspiration

Location: soil.pet

Unit: mm day⁻¹

Value:

\[\mathrm{max}\left(0,\, \mathrm{ddf\_pet}\cdot \left(\mathrm{air}.\mathrm{temp}-\mathrm{pet\_min\_t}\right)\right)\]

HBVSnow

Version: 1.0.0

File: modules/hbv_snow.txt

Description

This is an adaption of the snow module from HBV-Nordic (Sælthun 1995)

NVE home page

Model description

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Snow snow quantity
Snow layer snow_box compartment
Water water quantity
Temperature temp property
Precipitation precip property
  water_target loc

Parameters

Name Symbol Unit Description
Snow     Distributes like: snow_box
Degree-day factor for snowmelt ddf_melt mm °C⁻¹ day⁻¹ Linear correlation between rate of snow melt and air temperature
Temperature at which precip falls as snow t_snow °C  
Temperature at which snow melts t_melt °C  
Refreeze efficiency refr_eff   Speed of refreeze of liquid water in snow relative to speed of melt at the opposite temperature differential
Liquid water fraction snow_liq   How many mm liquid water one mm of snow (water equivalents) can hold before the water is released
Initial snow depth (water equivalents) init_snow mm  

State variables

Air temperature

Location: air.temp

Unit: °C

This series is externally defined. It may be an input series.

Precipitation

Location: air.precip

Unit: mm day⁻¹

This series is externally defined. It may be an input series.

Snow depth

Location: snow_box.snow

Unit: mm

Initial value:

\[\mathrm{init\_snow}\]

Snow water

Location: snow_box.water

Unit: mm

Fluxes

Precipitation falling as snow

Source: out

Target: snow_box.snow

Unit: mm day⁻¹

Value:

\[\mathrm{air}.\mathrm{precip}\cdot \left(\mathrm{air}.\mathrm{temp}\leq \mathrm{t\_snow}\right)\]

Precipitation falling as rain

Source: out

Target: snow_box.water

Unit: mm day⁻¹

Value:

\[\mathrm{air}.\mathrm{precip}\cdot \left(\mathrm{air}.\mathrm{temp}>\mathrm{t\_snow}\right)\]

Melt

Source: snow_box.snow

Target: snow_box.water

Unit: mm day⁻¹

Value:

\[\mathrm{max}\left(0,\, \mathrm{ddf\_melt}\cdot \left(\mathrm{air}.\mathrm{temp}-\mathrm{t\_melt}\right)\right)\]

Refreeze

Source: snow_box.water

Target: snow_box.snow

Unit: mm day⁻¹

Value:

\[\mathrm{max}\left(0,\, \mathrm{refr\_eff}\cdot \mathrm{ddf\_melt}\cdot \left(\mathrm{t\_melt}-\mathrm{air}.\mathrm{temp}\right)\right)\]

Melt runoff

Source: snow_box.water

Target: water_target

Unit: mm day⁻¹

Value:

\[\mathrm{max}\left(0,\, \mathrm{water}-\mathrm{snow}\cdot \mathrm{snow\_liq}\right)\cdot 1 \mathrm{day}^{-1}\,\]

Simply soil temperature

Version: 0.1.0

File: modules/simplysoiltemp.txt

Description

This is a simplification of the soil temperature model developed for the INCA models.

Rankinen K. T. Karvonen and D. Butterfield (2004), A simple model for predicting soil temperature in snow covered and seasonally frozen soil; Model description and testing, Hydrol. Earth Syst. Sci., 8, 706-716, https://doi.org/10.5194/hess-8-706-2004

Soil temperature is computed at a depth of 15 cm.

Authors: Leah A. Jackson-Blake, Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Snow snow quantity
Soil soil compartment
Snow layer snow_box compartment
Temperature temp property

Constants

Name Symbol Unit Value
Soil temperature depth st_depth cm 15

Parameters

Name Symbol Unit Description
Soil temperature general      
Snow depth / soil temperature factor depthst cm⁻¹ Per cm snow water equivalents
Initial soil temperature init_st °C  
Soil temperature land     Distributes like: soil
Soil thermal conductivity / specific heat capacity stc m² Ms⁻¹  

State variables

COUP temperature

Location: soil.coup

Unit: °C

Value:

\[\mathrm{last}\left(\mathrm{coup}\right)+\left(\frac{\mathrm{stc}}{\left(2\cdot \mathrm{st\_depth}\right)^{2}}\cdot \left(\mathrm{air}.\mathrm{temp}-\mathrm{last}\left(\mathrm{coup}\right)\right)\cdot \mathrm{time}.\mathrm{step\_length\_in\_seconds}\rightarrow \mathrm{°C}\,\right)\]

Initial value:

\[\mathrm{init\_st}\]

Soil temperature

Location: soil.temp

Unit: °C

Value:

\[\mathrm{coup}\cdot e^{\left(\mathrm{depthst}\cdot \mathrm{snow\_box}.\mathrm{snow}\rightarrow 1\right)}\]

Initial value:

\[\mathrm{init\_st}\]

RiverTemperature

Version: 0.1.1

File: modules/rivertemp.txt

Description

A simple model for river water temperature. Water from the catchment is assumed to have the same temperature as the soil. Then heat is exchanged with the atmosphere with a constant rate relative to the temperature difference.

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Soil soil compartment
River river compartment
Water water quantity
Heat energy heat quantity
Temperature temp property

Constants

Name Symbol Unit Value
Minimum river temperature min_t °C 0.4

Parameters

Name Symbol Unit Description
River temperature     Distributes like: river
Air-river heat exchange coefficient coeff day⁻¹  

State variables

River thermal energy

Location: river.water.heat

Unit: J

Initial value:

\[\href{stdlib.html#water-utils}{\mathrm{water\_temp\_to\_heat}}\left(\mathrm{water},\, \mathrm{max}\left(\mathrm{air}.\mathrm{temp},\, \mathrm{min\_t}\right)\right)\]

River temperature

Location: river.water.temp

Unit: °C

Value:

\[\href{stdlib.html#water-utils}{\mathrm{water\_heat\_to\_temp}}\left(\mathrm{water},\, \mathrm{water}.\mathrm{heat}\right)\]

Fluxes

River heat from land

Source: out

Target: river.water.heat

Unit: J day⁻¹

Value:

\[\mathrm{V} = \left(\mathrm{in\_flux}\left(\mathrm{water}\right)\rightarrow \mathrm{m}^{3}\,\mathrm{day}^{-1}\,\right) \\ \mathrm{t} = \mathrm{max}\left(\mathrm{min\_t},\, \mathrm{aggregate}\left(\mathrm{soil}.\mathrm{temp}\right)\right) \\ \left(\href{stdlib.html#water-utils}{\mathrm{water\_temp\_to\_heat}}\left(\left(\mathrm{V}\Rightarrow \mathrm{m}^{3}\,\right),\, \mathrm{t}\right)\Rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

River sensible heat flux

Source: out

Target: river.water.heat

Unit: J day⁻¹

Value:

\[\left(\href{stdlib.html#water-utils}{\mathrm{water\_temp\_to\_heat}}\left(\mathrm{water},\, \mathrm{max}\left(\mathrm{air}.\mathrm{temp},\, \mathrm{min\_t}\right)\right)-\mathrm{heat}\right)\cdot \mathrm{coeff}\]

Atmospheric

Version: 0.1.0

File: modules/atmospheric.txt

Description

Simple module for some common atmospheric attributes for use e.g. with evapotranspiration or air-sea heat exchange modules.

The user must provide either “Daily average global radiation” or “Cloud cover” as an input series, but one of these can be computed from the other if not both are available.

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Cosine of the solar zenith angle cos_z property
Actual vapour pressure a_vap property
Actual specific humidity a_hum property
Temperature temp property
Wind speed wind property
Global radiation g_rad property
Saturation vapour pressure s_vap property
Pressure pressure property
Density dens property
Downwelling longwave radiation lwd property

Parameters

Name Symbol Unit Description
Location     Distributes like: air
Latitude latitude ° Only used if Daily average radiation is not provided as a series
Longitude longitude ° Only used if sub-daily precision is used.
GMT zone time_zone hr Only used if sub-daily precision is used.
Elevation elev m Only used if Daily average radiation is not provided as a series
Radiation      
Cloud absorption scaling factor crs   Used if ‘Daily average global radiation’ is not provided as a series. Scaling factor for shortwave absorption by clouds
Cloud absorption power factor crp   Used if ‘Daily average global radiation’ is not provided as a series. Power factor for shortwave absorption by clouds
Use sub-daily precision subdaily   Compute hourly averages of solar radiation. Only works correctly if the model sampling step is [hr] or lower.

State variables

Air temperature

Location: air.temp

Unit: °C

This series is externally defined. It may be an input series.

Relative humidity

Location: air.r_hum

Unit: %

This series is externally defined. It may be an input series.

Wind speed

Location: air.wind

Unit: m s⁻¹

This series is externally defined. It may be an input series.

Daily average global radiation on a clear sky day

Location: air.g_rad_cloud_free

Unit: W m⁻²

Value:

\[\mathrm{ext} = \href{stdlib.html#radiation}{\mathrm{daily\_average\_extraterrestrial\_radiation}}\left(\mathrm{latitude},\, \mathrm{time}.\mathrm{day\_of\_year}\right) \\ \href{stdlib.html#radiation}{\mathrm{clear\_sky\_shortwave}}\left(\mathrm{ext},\, \mathrm{elev}\right)\]

Daily average global radiation

Location: air.g_rad_day

Unit: W m⁻²

Value:

\[\left(1-\mathrm{crs}\cdot \mathrm{cloud}^{\mathrm{crp}}\right)\cdot \mathrm{g\_rad\_cloud\_free}\]

Global radiation

Location: air.g_rad

Unit: W m⁻²

Value:

\[\begin{cases}\begin{pmatrix}\mathrm{hour} = \mathrm{floor}\left(\left(\mathrm{time}.\mathrm{second\_of\_day}+\mathrm{time}.\mathrm{fractional\_step}\cdot \mathrm{time}.\mathrm{step\_length\_in\_seconds}\rightarrow \mathrm{hr}\,\right)\right) \\ \mathrm{hour\_a} = \href{stdlib.html#radiation}{\mathrm{hour\_angle}}\left(\mathrm{time}.\mathrm{day\_of\_year},\, \mathrm{time\_zone},\, \mathrm{hour},\, \mathrm{longitude}\right) \\ \href{stdlib.html#radiation}{\mathrm{hourly\_average\_radiation}}\left(\mathrm{g\_rad\_day},\, \mathrm{time}.\mathrm{day\_of\_year},\, \mathrm{latitude},\, \mathrm{hour\_a}\right)\end{pmatrix} & \text{if}\;\mathrm{subdaily} \\ \mathrm{g\_rad\_day} & \text{otherwise}\end{cases}\]

Cosine of the solar zenith angle

Location: air.cos_z

Unit:

Value:

\[\mathrm{hour\_a} = \begin{pmatrix}\mathrm{hour} = \left(\mathrm{time}.\mathrm{second\_of\_day}+\mathrm{time}.\mathrm{fractional\_step}\cdot \mathrm{time}.\mathrm{step\_length\_in\_seconds}\rightarrow \mathrm{hr}\,\right) \\ \begin{cases}\href{stdlib.html#radiation}{\mathrm{hour\_angle}}\left(\mathrm{time}.\mathrm{day\_of\_year},\, \mathrm{time\_zone},\, \mathrm{hour},\, \mathrm{longitude}\right) & \text{if}\;\mathrm{subdaily} \\ 0 & \text{otherwise}\end{cases}\end{pmatrix} \\ \href{stdlib.html#radiation}{\mathrm{cos\_zenith\_angle}}\left(\mathrm{hour\_a},\, \mathrm{time}.\mathrm{day\_of\_year},\, \mathrm{latitude}\right)\]

Cloud cover

Location: air.cloud

Unit:

Value:

\[\mathrm{sw\_ratio} = \frac{\mathrm{g\_rad\_day}}{\mathrm{g\_rad\_cloud\_free}} \\ \mathrm{cc} = 1-\mathrm{sw\_ratio} \\ \href{stdlib.html#basic}{\mathrm{clamp}}\left(\mathrm{cc},\, 0,\, 1\right)\]

Air pressure

Location: air.pressure

Unit: hPa

Value:

\[\left(\href{stdlib.html#meteorology}{\mathrm{mean\_barometric\_pressure}}\left(\mathrm{elev}\right)\rightarrow \mathrm{hPa}\,\right)\]

Saturation vapour pressure

Location: air.s_vap

Unit: hPa

Value:

\[\href{stdlib.html#meteorology}{\mathrm{saturation\_vapor\_pressure}}\left(\mathrm{temp}\right)\]

Actual vapour pressure

Location: air.a_vap

Unit: hPa

Value:

\[\left(\mathrm{r\_hum}\rightarrow 1\right)\cdot \mathrm{s\_vap}\]

Actual specific humidity

Location: air.a_hum

Unit:

Value:

\[\href{stdlib.html#meteorology}{\mathrm{specific\_humidity\_from\_pressure}}\left(\mathrm{pressure},\, \mathrm{a\_vap}\right)\]

Air density

Location: air.dens

Unit: kg m⁻³

Value:

\[\href{stdlib.html#meteorology}{\mathrm{air\_density}}\left(\mathrm{temp},\, \mathrm{pressure},\, \mathrm{a\_vap}\right)\]

Downwelling longwave radiation

Location: air.lwd

Unit: W m⁻²

Value:

\[\href{stdlib.html#radiation}{\mathrm{downwelling\_longwave}}\left(\mathrm{temp},\, \mathrm{a\_vap},\, \mathrm{cloud}\right)\]

AirSea Lake

Version: 0.1.1

File: modules/airsea.txt

Description

Air-sea/lake heat fluxes are based off of Kondo 1975

The implementation used here is influenced by the implementation in GOTM.

The ice module is influenced by the ice module in MyLake, and uses Stefan’s law for ice accumulation.

Air-Sea bulk transfer coefficients in diabatic conditions, Junsei Kondo, 1975, Boundary-Layer Meteorology 9(1), 91-112 https://doi.org/10.1007/BF00232256

MyLake—A multi-year lake simulation model code suitable for uncertainty and sensitivity analysis simulations, Tuomo M. Saloranta and Tom Andersen 2007, Ecological Modelling 207(1), 45-60, https://doi.org/10.1016/j.ecolmodel.2007.03.018

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Atmosphere air compartment
Cosine of the solar zenith angle cos_z property
Epilimnion surf compartment
Actual specific humidity a_hum property
Density rho property
Ice ice quantity
Heat energy heat quantity
Wind speed wind property
Temperature temp property
Precipitation precip property
Global radiation g_rad property
Pressure pressure property
Downwelling longwave radiation lwd property
Shortwave radiation sw property
Attenuation coefficient attn property
Ice indicator indicator property
Evaporation evap property
  freeze_temp loc
  A_surf loc
  top_water loc
  top_water_heat_sw loc

Constants

Name Symbol Unit Value
Ice density rho_ice kg m⁻³ 917
Latent heat of freezing l_freeze J kg⁻¹ 333500
Ice heat conduction coefficient lambda_ice W m⁻¹ K⁻¹ 2.1
Water albedo water_alb   0.045

Parameters

Name Symbol Unit Description
Ice     Distributes like: epi
Initial ice thickness init_ice m  
Ice albedo ice_alb    
Ice attenuation coefficient ice_att_c m⁻¹  
Frazil threshold th_frazil m  

State variables

Wind speed

Location: air.wind

Unit: m s⁻¹

This series is externally defined. It may be an input series.

Stability

Location: surf.stab

Unit:

Value:

\[\href{stdlib.html#air-sea}{\mathrm{surface\_stability}}\left(\mathrm{air}.\mathrm{wind},\, \mathrm{top\_water}.\mathrm{temp},\, \mathrm{air}.\mathrm{temp}\right)\]

Transfer coefficient for latent heat flux

Location: surf.ced

Unit:

Value:

\[\href{stdlib.html#air-sea}{\mathrm{tc\_latent\_heat}}\left(\mathrm{air}.\mathrm{wind},\, \mathrm{stab}\right)\]

Transfer coefficient for sensible heat flux

Location: surf.chd

Unit:

Value:

\[\href{stdlib.html#air-sea}{\mathrm{tc\_sensible\_heat}}\left(\mathrm{air}.\mathrm{wind},\, \mathrm{stab}\right)\]

Saturation specific humidity

Location: surf.s_hum

Unit:

Value:

\[\mathrm{svap} = \href{stdlib.html#meteorology}{\mathrm{saturation\_vapor\_pressure}}\left(\mathrm{top\_water}.\mathrm{temp}\right) \\ \href{stdlib.html#meteorology}{\mathrm{specific\_humidity\_from\_pressure}}\left(\mathrm{air}.\mathrm{pressure},\, \mathrm{svap}\right)\]

Emitted longwave radiation

Location: surf.lwu

Unit: W m⁻²

Value:

\[\mathrm{emissivity} = 0.98 \\ \mathrm{emissivity}\cdot \href{stdlib.html#thermodynamics}{\mathrm{black\_body\_radiation}}\left(\left(\mathrm{top\_water}.\mathrm{temp}\rightarrow \mathrm{K}\,\right)\right)\]

Albedo

Location: surf.albedo

Unit:

Value:

\[\begin{cases}\mathrm{ice\_alb} & \text{if}\;\mathrm{ice}.\mathrm{indicator} \\ \mathrm{water\_alb} & \text{otherwise}\end{cases}\]

Shortwave radiation

Location: surf.sw

Unit: W m⁻²

Value:

\[\left(1-\mathrm{albedo}\right)\cdot \left(1-\mathrm{ice}.\mathrm{attn}\right)\cdot \mathrm{air}.\mathrm{g\_rad}\]

Evaporation

Location: surf.evap

Unit: mm day⁻¹

Value:

\[\mathrm{rho\_ref} = 1025 \mathrm{kg}\,\mathrm{m}^{-3}\, \\ \left(\;\text{not}\;\mathrm{surf}.\mathrm{ice}.\mathrm{indicator}\cdot \frac{\mathrm{air}.\mathrm{rho}}{\mathrm{rho\_ref}}\cdot \mathrm{chd}\cdot \mathrm{air}.\mathrm{wind}\cdot \left(\mathrm{s\_hum}-\mathrm{air}.\mathrm{a\_hum}\right)\rightarrow \mathrm{mm}\,\mathrm{day}^{-1}\,\right)\]

Ice thickness

Location: surf.ice

Unit: m

Initial value:

\[\mathrm{init\_ice}\]

Freeze energy

Location: surf.ice.energy

Unit: W m⁻²

Value:

\[\mathrm{z\_surf} = 1 \mathrm{m}\, \\ \mathrm{K\_ice} = 200 \mathrm{W}\,\mathrm{m}^{-3}\,\mathrm{°C}^{-1}\, \\ \mathrm{e} = \left(\mathrm{freeze\_temp}-\mathrm{top\_water}.\mathrm{temp}\right)\cdot \mathrm{z\_surf}\cdot \mathrm{K\_ice} \\ \begin{cases}0 \mathrm{W}\,\mathrm{m}^{-2}\, & \text{if}\;\mathrm{ice}<10^{-6} \mathrm{m}\,\;\text{and}\;\mathrm{e}<0 \\ \mathrm{e} & \text{otherwise}\end{cases}\]

Ice indicator

Location: surf.ice.indicator

Unit:

Value:

\[\mathrm{ice}>\mathrm{th\_frazil}\]

Attenuation coefficient

Location: surf.ice.attn

Unit:

Value:

\[\mathrm{cz} = \mathrm{max}\left(0.01,\, \href{stdlib.html#radiation}{\mathrm{refract}}\left(\mathrm{air}.\mathrm{cos\_z},\, \mathrm{refraction\_index\_ice}\right)\right) \\ \mathrm{th} = \frac{\mathrm{ice}}{\mathrm{cz}} \\ \begin{cases}0 & \text{if}\;\;\text{not}\;\mathrm{indicator} \\ 1-e^{-\mathrm{ice\_att\_c}\cdot \mathrm{th}} & \text{otherwise}\end{cases}\]

Ice surface temperature

Location: surf.ice.temp

Unit: °C

Value:

\[\mathrm{alpha} = \frac{1}{10 \mathrm{m}^{-1}\,\cdot \mathrm{ice}} \\ \begin{cases}\frac{\mathrm{alpha}\cdot \mathrm{freeze\_temp}+\mathrm{air}.\mathrm{temp}}{1+\mathrm{alpha}} & \text{if}\;\mathrm{indicator} \\ 0 \mathrm{°C}\, & \text{otherwise}\end{cases}\]

Fluxes

Net shortwave

Source: out

Target: top_water_heat_sw

Unit: J day⁻¹

Value:

\[\left(\mathrm{A\_surf}\cdot \mathrm{surf}.\mathrm{sw}\rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Net longwave

Source: out

Target: top_water.heat

Unit: J day⁻¹

Value:

\[\mathrm{net\_rad} = \left(1-\mathrm{surf}.\mathrm{albedo}\right)\cdot \mathrm{air}.\mathrm{lwd}-\mathrm{surf}.\mathrm{lwu} \\ \left(\;\text{not}\;\mathrm{surf}.\mathrm{ice}.\mathrm{indicator}\cdot \mathrm{A\_surf}\cdot \mathrm{net\_rad}\rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Freeze heating

Source: out

Target: top_water.heat

Unit: J day⁻¹

Value:

\[\left(\mathrm{A\_surf}\cdot \mathrm{surf}.\mathrm{ice}.\mathrm{energy}\rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Latent heat flux

Source: out

Target: top_water.heat

Unit: J day⁻¹

Value:

\[\mathrm{l\_vap} = \href{stdlib.html#meteorology}{\mathrm{latent\_heat\_of\_vaporization}}\left(\mathrm{top\_water}.\mathrm{temp}\right) \\ \left(\;\text{not}\;\mathrm{surf}.\mathrm{ice}.\mathrm{indicator}\cdot \mathrm{A\_surf}\cdot \mathrm{surf}.\mathrm{ced}\cdot \mathrm{l\_vap}\cdot \mathrm{air}.\mathrm{rho}\cdot \mathrm{air}.\mathrm{wind}\cdot \left(\mathrm{air}.\mathrm{a\_hum}-\mathrm{surf}.\mathrm{s\_hum}\right)\rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Sensible heat flux

Source: out

Target: top_water.heat

Unit: J day⁻¹

Value:

\[\left(\;\text{not}\;\mathrm{surf}.\mathrm{ice}.\mathrm{indicator}\cdot \mathrm{A\_surf}\cdot \mathrm{surf}.\mathrm{chd}\cdot \mathrm{C\_air}\cdot \mathrm{air}.\mathrm{rho}\cdot \mathrm{air}.\mathrm{wind}\cdot \left(\left(\mathrm{air}.\mathrm{temp}\rightarrow \mathrm{K}\,\right)-\left(\mathrm{top\_water}.\mathrm{temp}\rightarrow \mathrm{K}\,\right)\right)\rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Evaporation

Source: top_water

Target: out

Unit: m³ day⁻¹

Value:

\[\left(\mathrm{surf}.\mathrm{evap}\cdot \mathrm{A\_surf}\rightarrow \mathrm{m}^{3}\,\mathrm{day}^{-1}\,\right)\]

Precipitation to surface

Source: out

Target: top_water

Unit: m³ day⁻¹

Value:

\[\left(\mathrm{air}.\mathrm{precip}\cdot \mathrm{A\_surf}\rightarrow \mathrm{m}^{3}\,\mathrm{day}^{-1}\,\right)\]

Precipitation heat

Source: out

Target: top_water.heat

Unit: J day⁻¹

Value:

\[\mathrm{precip\_t} = \mathrm{max}\left(0 \mathrm{°C}\,,\, \mathrm{air}.\mathrm{temp}\right) \\ \mathrm{V} = \left(\mathrm{A\_surf}\cdot \mathrm{air}.\mathrm{precip}\rightarrow \mathrm{m}^{3}\,\mathrm{day}^{-1}\,\right) \\ \left(\href{stdlib.html#water-utils}{\mathrm{water\_temp\_to\_heat}}\left(\left(\mathrm{V}\Rightarrow \mathrm{m}^{3}\,\right),\, \mathrm{precip\_t}\right)\Rightarrow \mathrm{J}\,\mathrm{day}^{-1}\,\right)\]

Ice change

Source: out

Target: surf.ice

Unit: m day⁻¹

Value:

\[\left(\frac{\mathrm{energy}+\begin{cases}\mathrm{lambda\_ice}\cdot \frac{\left(\mathrm{freeze\_temp}\rightarrow \mathrm{K}\,\right)-\left(\mathrm{temp}\rightarrow \mathrm{K}\,\right)}{\mathrm{ice}} & \text{if}\;\mathrm{temp}\leq \mathrm{freeze\_temp}\;\text{and}\;\mathrm{indicator} \\ -\left(1-\mathrm{albedo}\right)\cdot \mathrm{air}.\mathrm{g\_rad}\cdot \mathrm{attn} & \text{if}\;\mathrm{indicator} \\ 0 & \text{otherwise}\end{cases}}{\mathrm{rho\_ice}\cdot \mathrm{l\_freeze}}\rightarrow \mathrm{m}\,\mathrm{day}^{-1}\,\right)+\left(\begin{cases}\mathrm{air}.\mathrm{precip} & \text{if}\;\mathrm{indicator}\;\text{and}\;\mathrm{air}.\mathrm{temp}\leq \mathrm{freeze\_temp} \\ 0 & \text{otherwise}\end{cases}\rightarrow \mathrm{m}\,\mathrm{day}^{-1}\,\right)\]

AirSeaGas Lake

Version: 0.0.0

File: modules/airsea_gas.txt

Description

Air-sea gas exchange module (O₂, CO₂, CH₄)

Authors: François Clayer, Magnus Dahler Norling

External symbols

Name Symbol Type
Atmosphere air compartment
CO₂ co2 quantity
O₂ saturation concentration o2satconc property
Epilimnion basin compartment
O₂ o2 quantity
CH₄ ch4 quantity
Wind speed wind property
Temperature temp property
Precipitation precip property
Pressure pressure property
  ice_ind loc
  top_water loc
  A_surf loc
  compute_dic loc

State variables

O₂ piston velocity

Location: basin.p_vel

Unit: cm hr⁻¹

Value:

\[\href{stdlib.html#sea-oxygen}{\mathrm{o2\_piston\_velocity}}\left(\mathrm{air}.\mathrm{wind},\, \mathrm{top\_water}.\mathrm{temp}\right)\]

Fluxes

Precipitation O₂

Source: out

Target: top_water.o2

Unit: kg day⁻¹

Value:

\[\mathrm{precip\_saturation} = 0.9 \\ \mathrm{cnc} = \mathrm{precip\_saturation}\cdot \href{stdlib.html#sea-oxygen}{\mathrm{o2\_saturation\_concentration}}\left(\mathrm{air}.\mathrm{temp},\, 0\right)\cdot \mathrm{o2\_mol\_mass} \\ \left(\mathrm{air}.\mathrm{precip}\cdot \mathrm{A\_surf}\cdot \mathrm{cnc}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

O₂ gas exchange at surface

Source: top_water.o2

Target: out

Unit: kg day⁻¹

Value:

\[\left(\;\text{not}\;\mathrm{ice\_ind}\cdot \mathrm{basin}.\mathrm{p\_vel}\cdot \left(\mathrm{conc}\left(\mathrm{top\_water}.\mathrm{o2}\right)-\mathrm{top\_water}.\mathrm{o2satconc}\right)\cdot \mathrm{A\_surf}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

Simple river TOC

Version: 0.1.1

File: modules/simplyc.txt

Description

River particulate organic carbon.

Authors: Magnus D. Norling

External symbols

Name Symbol Type
Total organic carbon toc property
River river compartment
Water water quantity
Organic carbon oc quantity
Particles sed quantity

Parameters

Name Symbol Unit Description
Particulate carbon      
Particle OC mass fraction sed_oc g kg⁻¹  

State variables

River POC

Location: river.water.sed.oc

Unit: kg

River TOC

Location: river.water.toc

Unit: mg l⁻¹

Value:

\[\mathrm{conc}\left(\mathrm{oc}\right)+\mathrm{conc}\left(\mathrm{sed}.\mathrm{oc}\right)\cdot \mathrm{conc}\left(\mathrm{sed}\right)\]

Fluxes

River POC mobilization

Source: out

Target: river.water.sed.oc

Unit: kg day⁻¹

Value:

\[\left(\mathrm{sed\_oc}\cdot \mathrm{in\_flux}\left(\mathrm{river}.\mathrm{water}.\mathrm{sed}\right)\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

Organic CNP land

Version: 0.0.0

File: modules/organic_np.txt

Parameters

Name Symbol Unit Description
Organic nutrient ratios land      
OM molar C/N ratio om_cn   The default value is the Redfield ratio
OM molar C/P ratio om_cp   The default value is the Redfield ratio

Simple organic NP

Version: 0.0.0

File: modules/organic_np.txt

External symbols

Name Symbol Type
River river compartment
Organic nitrogen on quantity
Water water quantity
Organic carbon oc quantity
Particles sed quantity
Organic phosphorous op quantity
Total nitrogen tn property
Total phosphorous tp property
Total dissolved phosphorous tdp property

State variables

River DOP

Location: river.water.op

Unit: kg

Conc. unit: mg l⁻¹

River POP

Location: river.water.sed.op

Unit: kg

River DON

Location: river.water.on

Unit: kg

Conc. unit: mg l⁻¹

River PON

Location: river.water.sed.on

Unit: kg

Total phosphorous

Location: river.water.tp

Unit: mg l⁻¹

Total dissolved phosphorous

Location: river.water.tdp

Unit: mg l⁻¹

Total nitrogen

Location: river.water.tn

Unit: mg l⁻¹

Fluxes

DON mobilization

Source: out

Target: river.water.on

Unit: kg day⁻¹

Value:

\[\left(\frac{\mathrm{in\_flux}\left(\mathrm{oc}\right)}{\href{stdlib.html#chemistry}{\mathrm{cn\_molar\_to\_mass\_ratio}}\left(\mathrm{om\_cn}\right)}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

PON mobilization

Source: out

Target: river.water.sed.on

Unit: kg day⁻¹

Value:

\[\left(\frac{\mathrm{in\_flux}\left(\mathrm{sed}.\mathrm{oc}\right)}{\href{stdlib.html#chemistry}{\mathrm{cn\_molar\_to\_mass\_ratio}}\left(\mathrm{om\_cn}\right)}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

DOP mobilization

Source: out

Target: river.water.op

Unit: kg day⁻¹

Value:

\[\left(\frac{\mathrm{in\_flux}\left(\mathrm{oc}\right)}{\href{stdlib.html#chemistry}{\mathrm{cn\_molar\_to\_mass\_ratio}}\left(\mathrm{om\_cp}\right)}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

POP mobilization

Source: out

Target: river.water.sed.op

Unit: kg day⁻¹

Value:

\[\left(\frac{\mathrm{in\_flux}\left(\mathrm{sed}.\mathrm{oc}\right)}{\href{stdlib.html#chemistry}{\mathrm{cp\_molar\_to\_mass\_ratio}}\left(\mathrm{om\_cp}\right)}\rightarrow \mathrm{kg}\,\mathrm{day}^{-1}\,\right)\]

© Norsk Institutt for Vannforskning (The Norwegian Institute for Water Research), NIVA 2024.