2.7. Lake and Reservoir Models
To simulate lakes, the variable <is_lake_sim> in the control file must be set to true.
By default, this flag is set to false; therefore, unless explicitly specified, mizuRoute does not simulate lakes.
Instead, mizuRoute treats lakes as regular river reaches, using the provided reach length or slope from the network topology file. If these values are unavailable, default parameters are applied—typically a reach length of 100 meters or a minimum slope value (e.g., 0.00001)—for lake elements represented as river segments.
Control key |
Type |
Default |
Description |
|---|---|---|---|
|
Logical (Global Flag) |
|
Indicates whether lakes are simulated.
|
|
Logical (Global Flag) |
|
Controls whether all lakes are treated as natural or regulated.
|
|
Integer (Global Flag) |
|
Selects the type of fluxes used in lake simulation:
|
The following variables need to be specified in the network topology file for each element of network topology that is identified as lake.
Control key |
Type |
Variable type |
Variable dimension |
Variable unit |
Description |
|---|---|---|---|---|---|
|
NetCDF variable name |
int |
seg |
flag (0/1) |
Flag to define whether the segment is a lake ( |
|
NetCDF variable name |
int |
seg |
categorical |
Defines the lake model type for the segment:
|
|
NetCDF variable name |
int |
seg |
flag (0/1) |
Flag to follow the provided target volume for the lake ( |
For further reading about the below formulation, please see Gharari et al., 2024.
2.7.1. Endorheic (closed) model
This lake type represents endorheic or closed lakes, where outflow is set to zero. Water enters the lake only from upstream river segments or direct precipitation and is lost through evaporation or water abstraction.
This model does not require any specific parameters.
To designate a lake as endorheic, set the corresponding flag in the network topology file to 0 (variable identified by <varname_lakeModelType>).
2.7.2. Storage-based model (Döll)
The least complex lake model in mizuRoute-Lake is the Döll formulation (based on Döll, 2003; Hanasaki, 2006). The Döll formulation links the outflow from the lake to the ratio of active storage to maximum active storage through a power function.
Control key |
Type |
Variable type |
Variable dimension |
Variable unit |
Description |
|---|---|---|---|---|---|
|
NetCDF variable name |
real |
seg |
m³ |
Maximum active storage for Döll formulation. |
|
NetCDF variable name |
real |
seg |
d⁻¹ |
Release coefficient for Döll formulation. |
|
NetCDF variable name |
real |
seg |
– |
Power scaling exponent for Döll formulation. |
|
NetCDF variable name |
real |
seg |
m³ |
Inactive storage for Döll formulation. |
For the case when the storage is larger than inactive storage, \(S_0 < S\), the outflow is calculated as:
Outflow is set to zero, \(O = 0\), when the storage is equal to or smaller than inactive storage, \(S <= S0\).
Where:
\(O\) = outflow from the lake segment
\(S\) = storage of the lake segment
\(S_0\) = inactive storage of the lake segment (network topology variable name is identified by control key
<varname_D03_S0>)\(S_{\text{max}}\) = maximum active storage of the lake segment (network topology variable name is identified by control key
<varname_D03_MaxStorage>)\(K\) = release coefficient (network topology variable name is identified by control key
<varname_D03_Coefficient>)\(P\) = power scaling exponent (network topology variable name is identified by control key
<varname_D03_Power>)
2.7.3. Demand-based model (Hanasaki)
The Hanasaki 2006 formulation represents reservoirs with explicit consideration of water demand. It calculates target release based on storage, inflow, and demand, differentiating between “within-a-year” and “multi-year” reservoirs.
Control key |
Type |
Variable type |
Variable dimension |
Variable unit |
Description |
|---|---|---|---|---|---|
|
NetCDF variable name |
real |
seg |
m³ |
Maximum reservoir storage |
|
NetCDF variable name |
real |
seg |
– |
Fraction of active storage compared to total storage |
|
NetCDF variable name |
real |
seg |
– |
Fraction of inflow that can be used to meet demand |
|
NetCDF variable name |
real |
seg |
m³ |
Initial storage used for estimating release coefficient |
|
NetCDF variable name |
real |
seg |
– |
Coefficient 1 for target release for irrigation reservoir |
|
NetCDF variable name |
real |
seg |
– |
Coefficient 2 for target release for irrigation reservoir |
|
NetCDF variable name |
real |
seg |
– |
Exponent for actual release for “within-a-year” reservoir |
|
NetCDF variable name |
real |
seg |
– |
Denominator of actual release for “within-a-year” reservoir |
|
NetCDF variable name |
real |
seg |
– |
Criterion to distinguish “within-a-year” vs “multi-year” reservoir |
|
NetCDF variable name |
real |
seg |
– |
Fraction of dead storage to maximum storage |
|
NetCDF variable name |
real |
seg |
– |
Initial release coefficient |
|
NetCDF variable name |
real |
seg |
m³ s⁻¹ |
Average monthly inflow for each month |
|
NetCDF variable name |
real |
seg |
m³ s⁻¹ |
Average monthly demand for each month |
|
NetCDF variable name |
int |
seg |
– |
Reservoir purpose flag (0 = non-irrigation, 1 = irrigation) |
|
NetCDF variable name |
int |
seg |
– |
Flag to transition to modelled inflow |
|
NetCDF variable name |
int |
seg |
– |
Flag to transition to modelled/provided demand |
|
NetCDF variable name |
int |
seg |
year |
Memory length in years for inflow |
|
NetCDF variable name |
int |
seg |
year |
Memory length in years for demand |
2.7.4. Elevation-based model (Hydropower Reservoir Formulation from HYPE)
The HYPE formulation describes the representation of a hydropower reservoir in mizuRoute-Lake. This includes parameters for spillways, turbine operations, and reservoir management rules.
Control key |
Type |
Variable type |
Variable dimension |
Variable unit |
Description |
|---|---|---|---|---|---|
|
NetCDF variable name |
real |
seg |
m |
Elevation of emergency spillway |
|
NetCDF variable name |
real |
seg |
m |
Elevation below which primary spillway flow is restricted |
|
NetCDF variable name |
real |
seg |
m |
Elevation below which outflow is zero |
|
NetCDF variable name |
real |
seg |
m |
Elevation at which lake/reservoir storage is zero |
|
NetCDF variable name |
real |
seg |
m³ s⁻¹ |
Emergency rate of flow for each unit of elevation above HYP_E_emr |
|
NetCDF variable name |
real |
seg |
– |
Power for the emergency spillway exponential flow curve |
|
NetCDF variable name |
real |
seg |
m³ s⁻¹ |
Average yearly/long-term output from primary spillway |
|
NetCDF variable name |
real |
seg |
– |
Amplitude of the primary spillway outflow |
|
NetCDF variable name |
int |
seg |
– |
Phase of the primary spillway outflow (day of year; default = 100) |
|
NetCDF variable name |
int |
seg |
– |
Reservoir primary spillway flag (1 if present, else 0) |
|
NetCDF variable name |
real |
seg |
m² |
Average area of lake (unused if bathymetry is provided) |
|
NetCDF variable name |
int |
seg |
– |
Outflow calculation mode (1 = sum of emergency + primary spillway; else = maximum of emergency or primary spillway) |
For hydropower reservoirs, a sinusoidal function defines the target hydropower production outflow. This function is shifted in time based on a day of the year, \(B_{\mathrm{phase}}\), as:
Next, the limiting factor is defined when the lake elevation is between \(E_{\mathrm{prim}}\) and \(E_{\mathrm{lim}}\). The linear scaling for restricted hydropower production is:
If the water level is below \(E_{\mathrm{prim}}\), \(F_{\mathrm{lim}} = 0\). If the water level is above \(E_{\mathrm{lim}}\), \(F_{\mathrm{lim}} = 1\).
The production outflow for hydropower is then calculated as:
If the reservoir elevation, \(E\), exceeds the emergency spillway elevation, \(E_{\mathrm{emg}}\), the emergency spillway is activated:
Finally, the outflow from the reservoir is either the maximum of \(Q_{\mathrm{emg}}\) and \(Q_{\mathrm{main}}\) or their summation (depending on mizuRoute settings):
Where the parameters are defined as:
\(A_{\mathrm{amp}}\) = amplitude of the sinusoidal function (network topology variable name is identified by control key
<varname_HYP_Qrate_amp>)\(B_{\mathrm{phase}}\) = phase shift for the sinusoidal function (network topology variable name is identified by control key
<varname_HYP_Qrate_phs>)\(E_{\mathrm{prim}}\) = primary spillway elevation (flow restricted below this) (network topology variable name is identified by control key
<varname_HYP_E_prim>)\(E_{\mathrm{lim}}\) = elevation at which primary spillway flow is unrestricted (network topology variable name is identified by control key
<varname_HYP_E_lim>)\(F_{\mathrm{managed}}\) = management factor (optional control) (network topology variable name is identified by control key
<varname_HYP_prim_F>)\(Q_{\mathrm{avg,rate}}\) = average rated outflow of primary spillway/turbine (network topology variable name is identified by control key
<varname_HYP_Qrate_prim>)\(Q_{\mathrm{emg,rate}}\) = emergency spillway flow coefficient (network topology variable name is identified by control key
<varname_HYP_Qrate_emr>)\(P_{\mathrm{emg}}\) = emergency spillway exponent (network topology variable name is identified by control key
<varname_HYP_Erate_emr>)\(D_{\mathrm{julian}}\) = Julian day of the year
\(E\) = reservoir elevation
\(F_{\mathrm{sin}}\) = sinusoidal target flow fraction
\(F_{\mathrm{lim}}\) = limiting factor due to reservoir elevation
\(Q_{\mathrm{emg}}\) = emergency spillway outflow
\(Q_{\mathrm{main}}\) = main hydropower production outflow
\(O\) = final outflow from the reservoir (m³/s) (network topology variable name is identified by control key
<varname_HYP_Qsim_mode>)