User Tools

Site Tools


start:hype_model_description:hype_routing

Rivers and lakes

Basic assumptions

The HYPE model can contain two types of rivers, local stream and main river, and two types of lakes, local lakes and outlet lakes (Figure 1). Local and main rivers are present in all subbasins and the length of each is calculated as the square root of the subbasin area. For main rivers, the length of the watercourse in each subbasin can be given as input (>0). The river can be a SLC class and is then given an area, but rivers can also be one-dimensional (i.e. no part of subbasin area are occupied by the river and no precipitation added to the river). All local runoff is entering the local river. If there are upstream subbasins the flow is added to the local runoff and two both flow through the main river. Outlet lakes (olake) receive all upstream and local waters. Local lakes (ilake) receive a portion of the local runoff.

Figure 1: Schematic representation of streams and lakes i HYPE, and the link between them.

The two lake types are separate classes. Which land use and soil type that are coupled to each lake type are listed in GeoClass.txt. Precipitation, atmospheric deposition and evaporation of rivers and lakes are calculated first, while river flow and inflow, transformation processes and the outflow of the lakes is calculated thereafter. Lakes and rivers are calculated in the model’s routing part after all classes are calculated for the subbasin.

An outlet lake can be part of a larger lake. It is then called a lake basin. Lake basins are olakes in nearby subbasins. Outlet lakes that are not lake basins are referred to below as simple outlet lakes.

A simple outlet lake has a threshold. The outflow ends if the water level drops below the threshold. Lake mean depth below the threshold is specified in GeoData.txt or LakeData.txt as lake_depth in meters. Lake depth can also be set by parameters, i.e general parameter gldepo or olake region parameter olldepth. This is also the lake's start value on the water level. The current water level is denoted as wlm in Fig. 2. For printing, the outlet lake water level (output variable wcom) is calculated in meters and you can set a reference level (w0ref) in LakeData.txt to get the same height system as any observations of the lake's water level. The lake’s w0ref is added to the water level above the threshold. It is possible to adjust the output wcom for the actual amplitude of the regulation volume (wamp), this may be useful because the lake is assumed to have vertical sides in the calculations.

Figure 2: An outlet lake with some variables.

A local lake also has a threshold depth that is also used as start value. The depth is given by general parameter gldepi and is then the same for all the local lakes, or by ilake region parameter illdepth. It is measured in meters. In GeoData.txt you can specify how much of the flow in the local stream that flows into the local lake for each lake. The rest of the local flow runs directly to main river watercourse. It is also possible to use a region specified parameter ilicatch to determine the fraction of flow through the ilake.

Using parameters, you can divide the lake into two parts, one with faster flows (FLP) and one with slower flows (SLP) (Figure 3). This function is used for the simulation of nutrients to simulate stratification, strangulation or other phenomena that may limit the mixing of a lake. With this feature, the flows through the lake follow the schedule below. The split is determined by the parameter deeplake, which is the fraction of the lake's initial volume SLP, the remaining (varying) volume in the lake is the FLP. The parameter fastlake specifies the lake part from where the outflow will be taken.

Figure 3: Division of a lake in two parts and water flows regarding lake.

The streams may have a delay and an attenuation of the flow. The former shifts the peaks, but leaves them otherwise untouched, while the attenuation both delays and smooths out peaks. The streams have a dead volume in which the residence time of solutes is increased relative to the water and the concentration smoothed out further over time.

Modules (file) Procedures
modelmodule (model_hype.f90)initiate_model_state
initiate_model
surfacewater_processes (sw_proc.f90)calculate_landarea_riverlength
calculate_outflow_from_outlet_lake
remove_outflow_from_lake
calculate_flow_within_lake
calculate_branched_flow
npc_surfacewater_processes (npc_sw_proc.f90)set_lake_slowwater_maxvolume

Rivers

Common rivers processes

Precipitation

Daily precipitation is added to the river if it has an area and a new concentration is calculated. Precipitation is divided between river water in damping box and queue according to the respective volumes.

Evaporation

If the river has an area (is a class), it evaporates and a new concentration is calculated.

Pure delay

The delay in the watercourse (transtime) in days is determined by the length of the watercourse (rivlen) and the water’s maximum velocity (rivvel). The maximum velocity is a general parameter with unit m/s. The delay in the local river is dependent on subbasin size, as stream length calculated from its area. The delay is a pure translation. The delay is divided into whole days (ttday) and parts of the day (ttpart).

transtime = rivlen/{rivvel~8.64~10^4}

ttday = INT(transtime)

ttpart = transtime - REAL(ttday)

The inflow of the river is stored in two arrays (riverq and riverc) until it is time for it to drain out. The outflow is weighted by using the parts of the day that are during the time step.

transq = (1-ttpart)*riverq(ttday) + ttpart*riverq(ttday+1)
IF(transq>0)THEN
  transc = ((1-ttpart)*riverq(ttday)*riverc(ttday) + 
             ttpart*riverq(ttday+1)*riverc(ttday+1)) / transq
ELSE
  transc = 0.
ENDIF

After the calculation of outflow the values in the arrays are shifted forward one day. The delay (in a subbasin) is limited to a maximum of five days.

Delay and attenuation

If the delay in the watercourse also includes a damping of the peaks then part of the delay is considered as translation, while some of the delay lies in damping. The translation is calculated first and then the flow goes through a linear box that creates damping. The parameter damp indicates how much of the delay that will occur in the attenuation box, and translation time is reduced accordingly. Otherwise the translation is calculated in the same manner as above.

totaltime=rivlen/{rivvel~8.64~10^4}

transtime=(1-damp)*totaltime

The result from the translation (transq and transc) goes into the damping box. Translation flow is added to the suppression box, which is assumed to be completely mixed. The delay time in the attenuation box (kt) is translated to a corresponding recession coefficient (riverrc). The recession coefficient used to calculate the outflow from the box (dampq) is a function of volume in the box (riverbox).

kt = damp * totaltime

riverrc = 1. - kt + kt * e^{-1{/}kt}

dampq = riverrc * riverbox

The delay in the attenuation box is at the centre of gravity of the flow (not the tip) and is not calculated exactly (see Derivation of the equation of recession in the attenuation box below). Therefore there may be a difference in a peak delay between the use of pure delay and delay with damping, although the maximum velocity is set to the same value. In the case of damping the max velocity parameter rivvel may be approximated.

Additional smoothing of dead volume

A dead volume (deadriver) can be used to get extra equalization of concentrations in the watercourse. Then the outflow equation for the attenuation box (riverbox) is:

dampq = riverrc*(riverbox - deadriver)

In this case, the initial value of the attenuation box is equal to the dead volume. Inflows into the box are mixed with the entire volume. At present this represents a dilution of the concentration since the initial value of concentration in the box is zero. At present the estimated dead volume as dependent on the upstream area. Depth is calculated from the parameter dead (deadl or deadm, m^2{/}km^2) and the upstream area (km^2), the width is assumed to be 10 times the depth and the river length (m) is estimated to be the root of the subbasin’s area unless it is set among the input data. This gives the dead volume:

deadriver = dead * upparea * rivlen

Dead volume can be used even without suppression of water (damp = 0).

Derivation of the equation of recession in the attenuation box

The continuous-time equation for the change in volume S in a reservoir is:

dS/dt=i(t)-q(t)

where i(t) is influx and q(t) is outflow. If we assume that the outflow is proportional to the volume we get another expression for the change in S. k is in the unit of time.

q(t)=1/k~S,

dS/dt=k~dq/dt

Combining these two equations gives a first degree equation that can be solved using the method of “integrating factor”:

dq/dt + 1/k~q=i/k,

{d e^{t{/}k}q}/dt=i/k~e^{t{/}k},

q(t)=1/k int{}{}{i(t)e^{delim{(}{tau-t}{)}{/}k}d tau}

In our case, we have a constant influx during a time steps of length 1 day. Assume that the influx during a time steps are I and the outflow Q. These flows are thus the equivalent discrete flows. Because I is constant during the time step (i(t) = I) Q can be calculated. Define y(t)=e^{t/k}q(t) and integrate the second equation above, from 0 to t (t = 1, one time step).

int{y(0)}{y(t)}{dy/dt} d tau = int{0}{t}{{i(tau)}/k} e^{\tau{/}k}d tau,

y(t)-y(0)=I/k int{0}{t}{e^{tau{/}k}} d tau = I~(e^{t{/}k}-1)

e^{t{/}k} q(t) - q(0) = I~(e^{t{/}k}-1)

q(t)=q(0)e^{-t{/}k}+(1-e^{-t{/}k})

Calculate Q for time step (the mean of q(t)) and replace the outflow with the volume.

Q = {int{0}{1}{} q(t) dt} / {int{0}{1}{} dt} = int{0}{1}{} q(0)e^{-t{/}k} + I~(1-e^{-t{/}k})dt

{}= q(0) int {0} {1}{} e^{-t{/}k} dt + I~ int{0}{1}{} 1-e^{-t{/}k} dt

{}= q(0)*(-k~(e^{-1{/}k}-1))+I(1-0)-I~(-k~(e^{-1{/}k}-1))

{}= I~(e^{-1{/}k}-1)~(kI - kq(0))

Q=(I+(e^{-1{/}k}-1))~(kI-S(0))

Recession coefficient is defined as the proportion of outflow after an inflow pulse. It is therefore calculated here as r=Q{/}I under the assumption that the starting volume can be neglected, s(0)=0.

r=Q/I=1+(e^{-1{/}k}-1)*k

For a real flow the volume can of course not be neglected in this way and the relationship is only approximate.

Bank-full flow

Bank-full flow is used for erosion of particulate phosphorus in rivers (see Sedimentation). It is approximated by the second highest daily flow during the last year.

Local river

The local river has a length equal to the square root of the subbasin area. Subbasin runoff forms the inflow to the local river. The flow in the local river is delayed and attenuated as described above. The resulting flow from the river goes to the local lake or directly to the main river. The percentage of flow that goes through the local lake is given in GeoData.txt (icatch).

Main river

A main river is present in all subbasins. The length is equal to the square root of the subbasin area, if it is not specified in GeoData.txt. In areas without incoming water from upstream there is still a main river, but it receives only local river flow after the local lake. In subbasins with upstream incoming water, the flow to the main river will be the sum of outflow from the local lake, the proportion of flow in the local river not flowing into the local lake and the water from upstream.

The return flow from an aquifer is added to the inflow of the main river.

The flow in the main river is delayed and attenuated as described above. The resulting effluent from the river flows to the outlet lake or to the next subbasin if there is no outlet lake.

Inflow from upstream subbasins

In GeoData.txt it is given to which subbasin(s) the (main) outflow from each subbasin flows. The upstream flow enters the main river of the downstream subbasin. Inflow into the main river of a subbasin is calculated by adding outflows from upstream areas. Concentrations are flow-weighted by their relative share.

Modules (file) Procedures Sections
modelmodule (model_hype.f90) initiate_model_state rivers
initiate_model
initiate_model local river
main river
surfacewater_processes (sw_proc.f90) add_precipitation_to_river precipitation
calculate_river_evaporation evaporation
translation_in_river pure delay
calc_qbankbank-full flow
update_qbank

Lakes

Common lake processes

Precipitation

Daily precipitation is added to the lake and a new concentration is calculated. Lakes are assumed to be completely mixed if the parameter deeplake is not set to a value greater than zero.

Evaporation

The lake is assumed to evaporate and a new concentration calculated.

Outflow with rating curve

The rating curve is used for calculation of outflow above a threshold at several occasions.

q(t)=k*(w(t)-w_0)^p

In the program the equation is solved with linearization (Lindström, 2016). For rating curve exponent equal to one, the solution is exact, while for other exponent an approximation is used.

Local lake (ilake)

The local lake has an initial volume which is determined by its area and threshold depth. The lake depth is determined by model parameters (gldepi or illdepth)). The inflow to the lake is a percentage of the flow in the local stream. This water is added to the lake, which is assumed completely mixed if deeplake = 0. Water outflow is calculated with the universal rating curve using general or region specific model parameters.

Simple outlet lake or dam (olake)

Inflow

The outlet lake receives both local runoff and inflow from upstream areas via the main river. An outlet lake may receive inflow from regional groundwater flow.

Outflow with universal rating curve

If the water level (wlm) is higher than the threshold (lake_depth) the outflow is calculated with the following equation:

outflow = delim{lbrace}{matrix{3}{3}{{0} {,~for} {wlm<lake_depth} {gratk*uparea^{grata}*ratcorr*(wlm-lake_depth)^{gratp}} {,~for} {grata>0} {gratk*ratcorr*(wlm-lake_depth)^{gratp}} {,~for} {grata=0} }}{}

gratk, gratp and grata are general parameters that apply to all lakes in the model application. ratcorr is parameter region dependent model parameter for adjusting gratk to different regions. The upstream area (uparea) is included in the equation if parameter grata is >0. If the water level is below the threshold then the outflow is zero.

Outflow with specific rating curve

In LakeData.txt a specific rating curve may be set instead of the general parameters. This is done by setting the rate and exp larger than zero in LakeData.txt.

outflow = rate * (wlm – lake_depth) ^ {exp}

Regulated lake

A simple regulation routine can be given in LakeData.txt for selected outlet lakes. There are two main versions of regulations. The first determine a (constant) production flow between the lake threshold and a lower water stage. The second determine different rating curves for two production periods.

Production flow

The regulated outflow is independent of water level (wlm (m)) between the threshold (w0=lake_depth) and a minimum water level (wmin). For this interval the production flow (qprod) is used. Production flow may depend on time of year and the water level. The minimum water stage is not really a water stage, but is calculated from the regulation volume (regvol) and the lake (surface) area. Thus it does not consider the area changing with depth.

Figure 4: Illustration of regulation flow and variables.

For water levels above the threshold, the flow is calculated with a rating curve (typically flow through spillways) or all the water is discharged, but it is at least equal to the production flow (qprod). Compiled together as one equation, the outflow from a regulated lake is:

outflow = delim{lbrace}{matrix{4}{3}{{MAX({rate * (wlm-w0)}^{exp}, qprod)} {,~for} {wlm>w0,rate>0} {MAX((wlm-w0) * 1000 / qunitfactor, qprod)}{,~for}{wlm>w0,rate=0} {MIN(qprod,(wlm-wmin) * 1000 / qunitfactor)} {,~for} {wmin<wlm<w0}  {0} {,~for} {wlm<wmin}}}{}

Input variables rate, exp, qprod, regvol, w0, qamp and qpha can be found in LakeData.txt. The variable wmin is calculated by the program from regvol and lake area:

wmin = w0 – regvol * 1000000 / area

Production flow can have two different values during the year, which depends on the day of the year. This is determined by the input variables qprod1, qprod2, datum1 and datum2. Regulation period 1 between datum1 and datum2 has production flow qprod1, while the rest of the year has production flow qprod2. Not setting the dates gives the same production flow the whole year (qprod1). Production flow can alternatively be made to vary sinusoidal over the years, with a peak in December, when power output is normally high, and a minimum in June. This is done with the input variable qamp. If you want a different seasonal variation set qpha (default = 102).

qprod = qprod*(1. + qamp * sin(2*pi*(dayno+qpha)/365))

In addition, the production flow is reduced from this level when there is a low water level in the dam. The flow will then be reduced linearly from full production flow for that time of year when water level is over the limit (limqprod (percentage of volume)) to zero when no water is left in the dam over wmin level.

Two rating curves

Regulated outflow can also be calculated from different rating curves for the regulation periods. The rating curve parameters are the specific rate and exponent of is lacking the general rate and exponent.

q(t)=k*(w(t)-w_0)^p

Rating curve threshold (w0) determined by input variable w0ref is used for regulation period 1, while the rating curve threshold is changed for regulation period 2. The shift is determined by input variable deltaw0:

w0 = w0ref + deltaw0

Dam

Dam of different purposes can be defined in input. The rules of calculating the outflow of the dam then depends on the purpose of the dam. A regulated lake without defined purpose may use the methods given above. Selected outlet lakes that are dams with purpose is given in DamData.txt.

Dams are characterised by their regulation volume (regvol) between a minimum water stage (wmin) and the threshold (w0). The minimum water stage is not a real a water stage, but is calculated from the regulation volume (regvol) and the dam (surface) area. Thus it does not consider the area changing with depth. Below the minimum water level (wmin) no outflow occur.

For dams a preferred production flow is calculated. This is released if the dam in within the regulation volume, but no more water than to the minimum threshold is released. If instead the water level of the dam is above the threshold w0, the spillway equation (rating curve) is used. The outflow is the maximum of the spillway equation and the preferred production flow.

Input variables rate, exp, regvol, qamp and qpha can be found in DamData.txt.

Dams of all purposes

The flow that is preferred to be released from the dam today is calculated from input data on the dam. This production flow (qprod) may be constant or vary between two values per year. This is determined by the input variables qprod1, qprod2, datum1 and datum2. Regulation period 1 between datum1 and datum2 has production flow qprod1, while the rest of the year has production flow qprod2. Not setting the dates gives the same production flow the whole year (qprod1). IF qprod1 is not given qprod is estimated from the yearly average inflow of the dam, which is given as input data.

The production flow may be reduced from this level when there is a low water level in the dam. The flow will be reduced linearly from full production flow for that time of year when water level is over the limit (limqprod (percentage of volume)) to zero when no water is left in the dam over wmin level.

1 - Irrigation dam and 2 - Water supply dam

Dams of these purposes uses the production flow determined for all purposes as it is.

3 - Flood control dam

The flood control dam will try to stay empty and ready to delay large inflows. The preferred production flow is calculated from the inflow of the day (Qinftoday) for low inflow and water stages, but as a factor of the inflow up to a maximum flow (qthresh) for high flows.

If the inflow today < threshold inflow (qthresh) and if the water level today < threshold level (w0), release the inflow (qprod= Qinftoday). If the water level is above the threshold, release more than inflows (i.e. try empty the dam) (qprod=min(Qinftoday*krelease,qthresh). If inflow today > threshold inflow (qthresh, i.e. a flood discharge), only release the maximum allowable discharge, qprod=qthresh. The factor multiplied by inflow (krelease) is a general parameter.

4 - Hydropower dam

Dams for hydropower uses the production flow determined for all purposes as it is, but it may be adjusted with a seasonal factor. The factor is sinusoidal over the years, with a peak in December, when power output is normally high, and a minimum in June. This is done with the input variable qamp. If you want a different seasonal phase set qpha to another value (default = 102).

qprod = qprod*(1 + qamp * sin(2*pi*(dayno+qpha)/365))

Outlet lake with two outlets

An outlet lake that is not part of a lake composed of lakebasins, may have two defined outlets in LakeData.txt. The outlets can be divided into different outlet types depending on method for determining the outflow. HYPE will define an outlet's type based on variables present in LakeData.txt. Below the defining (necessary) variables are given for each outlet type.

Outlet types

1. An outlet with outflow as production flow (only). The production flow can be determined by constants for different seasons or with a sinus adjustment; see Production flow above. Defining variables in LakeData.txt: regvol, (rate=0, maxQprod=0, minflow=0)

2. An outlet with outflow as production flow (same as type 1), but with an allowed (higher) maximum production flow. If the outflow from the other outlet is above zero, part of that flow will be sent through this outlet as part of production flow instead. Defining variables in LakeData.txt: regvol, maxQprod.

3. Rating curve determined outflow with constant threshold. Defining variables in LakeData.txt: rate (deltaw0=0, regvol=0, maxQprod=0)

4. Rating curve determined outflow with constant threshold relative to the threshold of the first outlet. This type is only used for the second outlet. Defining variables in LakeData.txt: rate, w0ref (regvol=0, deltaw0=0)

5. Flow determined by production flow below the threshold, and by a rating curve above the threshold. This could be production and overflow from a hydropower plant that goes too the same downstream subbasin. Defining variables in LakeData.txt: regvol, rate (maxQprod=0, minflow=0)

6. An outlet with outflow as production flow determined by different rating curves for different seasons; see Two rating curves above. Defining variables in LakeData.txt: rate, deltaw0 (regvol=0, maxQprod=0)

7. An outlet with outflow as production flow determined by two rating curves (same as type 6), but with an allowed (higher) maximum production flow. If the outflow from the other outlet is above zero, part of that flow will be sent through this outlet as part of production flow instead. Defining variables in LakeData.txt: rate, deltaw0, maxQprod (regvol=0)

8. An outlet with outflow as minimum flow. The minimum flow is determined same as production flow by constants for different seasons or with a sinus adjustment. Defining variables in LakeData.txt: regvol, minflow (rate=0, maxQprod=0)

9. Minimum flow determined by a production flow below the threshold. In addition overflow is determined by a rating curve above the threshold. This could be a minimum environmental flow together with overflow. Defining variables in LakeData.txt: regvol, rate, minflow (maxQprod=0).

Combinations of outlet types

Examples of common combinations of outlets:

- A hydropower plant with an estimated average production flow and a spill overflow at high water levels are simulated by combining production flow (outlet type 1) with rating curve determined overflow (outlet type 3).

- Same as above a hydropower plant with production flow in one branch and overflow in another (outlet type 3), but in this case the maximum allowed production is assumed higher than the average production (outlet type 2). This means that if overflow is calculated due to high water level, part of that flow is lead to the powerplant and through production to the first branch.

- A hydropower plant where the production flow and spill goes to the same downstream subbasin (outlet type 5), but where a second spill outlet goes to another subbasin (outlet type 4).

- A hydropower plant with production flow in one branch (outlet type 1), and a minimum (environmental) flow plus overflow outlet in the old river course that goes to another subbasin (outlet type 9).

- A lake with two outlets with flow determined by a rating curve for each of them (may have different threshold also) are simulated by a combination of outlet type 3 and 4.

Many other combinations can be used, but not all outlet types are natural to combine. The following are not allowed:

Outlet 1 Outlet 2
1 2, 4
2 1, 2, 4, 7, 8
3 5, 9
4 all
5 3, 9
6 4
7 2, 4, 7, 8
8 2, 4, 7-9
9 3-5, 8, 9

Change of branched flow after updating total flow

After calculating the outflow from the two outlets, which is done separately, the total outflow could be higher than the volume above the threshold. In this case the outflow will be reduced. When updating the total outflow from a lake with two outlets aginst observed total flow, the flow in respective branch has to be adjusted too. Depending on the outlet types this is done by different methods.

Lakes with a clear defined division between production flow and spill branch is handled so that production flow takes priority. For outlets with a maximum production flow, flow are diverted into this branch up to the maximum value and the rest into the other branch. For other lakes with a clear defined division between production flow and spill branch, the same method is applied but with the current production flow as the maximum value. For lakes with a minimum flow in one branch the minimum flow is given highest priority. Second priority is given to the production flow of the other branch (if any). At last the remaining flow is given to the branch for spill (outlet type 9) or the non minimum flow branch (outlet type 8). For the rest of the outlet type combinations the new flows are changed to be proportional to the old flows.

Outlet lake (olake) as a lake basin

An olake can be part of a larger lake. It is then called a lake basin of the larger lake. Lake basins are treated differently if they are located within the lake or if they are the last one, i.e. the one with the lake outflow.

Inflow

A lake basin can get local inflow from upstream areas and from the regional groundwater. Inflow works in the same way as for a simple olake (see above).

Flow between lake basins

Flow through a lake divided into lake basins occurs only in one direction according to the maindown (and possibly branchdown), no two-way exchange between lake basins is implemented. For upstream lake basins that run into another lake basin, all the water above the threshold is drained. The threshold of the lake (same as last lake basin) is used, not any internal threshold between lake basins. If the lake water level (wlm) is higher than the threshold (w0 or wmin) outflow is obtained.

Outflow of lake composed of lake basins

For the last lake basin outflow is estimated by a rating curve, either a specific equation or with the general equation, or by regulation routine. Since all the water (above threshold) in the lake (from all lake basins) accumulates in the last lake basin the water level cannot be used directly, but it is recalculated to calculate the outflow from the lake. The last lake basin water level (wlm) is scaled by the subbasin lake area (area) to the whole lake area (lakearea). If the calculated lake water level (wlake) is higher than the threshold (wthresh) the outflow is estimated by the rating curve.

wlake = (wlm – wthresh) * area / lakearea + wthresh
outflow = rate * (wlake – wthresh)**exp

The threshold may be changing over the year as described in Section Two rating curves above. If the water level is below the threshold then the outflow is zero or if the production flow regulation is used there is production flow. See Section Production flow above. Production flow is also applied on the recalculated water stage.

Initalisation of lake volume

Unless a starting state is given from a file, the lakes start the simulation filled with water to their outflow threshold. That means for ilakes and simple olakes a water level equal to lake_depth. Dams are filled to the dam's maximum elevation (equal to lake_depth), except for flood control dams which are initializied with an empty regulation volume.

For lakes with outflow determined by a rating curve, the water level of the lake will be higher than the outflow threshold level. The equilibrium level will depend on the size of the inflow and the outflow rating curve parameters. Depending on the residence time of water in the lake it may take time for this level to be established, and until then the outflow of the lake will be simulated lower than it should be. Thus a spin-up time is needed for a model simulation.

Modules (file) Procedures Sections
surfacewater_processes (sw_proc.f90) calculate_potential_evaporation evaporation
calculate_actual_lake_evaporation
average_flow_rating_curveouflow with rating curve
calculate_ilake_outflowlocal lake
calculate_outflow_from_outlet_lakesimple outlet lake
outlet lake as a lakebasin
outlet lake with two outlets
set_general_rating_ksimple outlet lake
calculate_olake_waterstageoutlet lake as a lakebasin
calculate_branched_flowoutlet lake with two outlets
calculate_branched_flow_new
modelmodule (model_hype.f90) initiate_model local lake

References

Lindström, G., 2016. Lake water level for calibration of the S-HYPE model, Hydrology Research 47.4:672-682. doi: 10.2166/nh.2016.019.

Floodplains

Floodplains may be simulated adjacent to a main river or outlet lake. Floodplain is a land area close to the surface water that may be temporary flooded. Water may flow from the surface water to the floodplain and back. The floodplain is a part (fpf) of the classarea of the main river or the lake. The lake/river surface area is the rest of the classarea. The floodplain is flooded when the water in the river or lake reaches above a certain threshold. The water on the floodplain may return to the river lake or may be trapped when the water level of the floodplain sink.

Figure 7: Five possible scenarios of flooding.

Common floodplain processes

The water level of the floodplain and the extent of the flooded area (aplain, m2) are calculated from the volume (volplain, m3), maximum area (amax) and water level at maximum areal extent (fym, m). The actual water level will be compared to the equlibrium water level to determine the water exchange. The equilibrium water level is the water level we would have if water was evenly distributed in the lake and the floodplain. It is solved from a second degree equation.

wl_plain = sqrt{vol_plain * fym * 2 / a_max}

a_plain = wl_plain * a_max /fym

a_max = fpf * classarea

Figure 8: Illustration of floodplain variables of a lake.

The exchange of water between lake (or river) and floodplain is determined by the respective water levels (wlbody and wlplain), the equilibrium water level (wlequil) and the thresholds between the water bodies (flbody/flplain). If the water level is over the threshold and higher than the water level of the floodplain the flow from water body to floodplain is:

q = rc_bodyToPlain * MIN((wl_lake-fl_body)-wl_equil, (wl_lake-fl_body))

If the floodplain water level is over the threshold and higher than the water level of the water body the flow from floodplain to body is similarly:

q = rc_plainToBody * MIN((wl_plain-fl_plain)-wl_equil, (wl_plain-fl_plain))

Floodplain water level (wlplain) and degree of flooded area (a_plain/a_max) are possible to print out from a simulation with an outlet lake or main river with floodplain.

Simple floodplain model

The simple floodplain model simulates precipitation on the floodplain and evaporation from the flooded water, in addition to the exchange of water between the river or lake and the flood plain. All precipitation on the floodplain is contributing to flooded water.

Floodplain model with soil routines

The floodplain model with soil routines is calculating all soil flows for the non-flooded part of the floodplain. The runoff from the floodplain soil goes to the flooded water, and not to the local stream as it does for ordinary land classes. Precipitation and evapotranspiration is calculated for the flooded water and the non-flooded soil. For the soil part, snow, infiltration and surface runoff, percolation, tile drainage and groundwater runoff is calculated as for an ordinary soil. Infiltration from the flooded water to the soil may occur. Regional groundwater percolation is only calculated for the flooded part together with percolation from the river.

Figure 9: Illustration of floodplain soil flows.
Modules (file) Procedures Sections
surfacewater_processes (sw_proc.f90) add_precipitation_to_floodplain common floodplain processes
calculate_floodplain_evaporation
calculate_floodplain_waterlevel
calculate_waterbody_floodplain_interflow
calculate_floodplain_volume
calculate_floodplain_equilibriumlevel
floodplain soilmodel (soilmodel4.f90) soilmodel_4 simple floodplain model
floodplain model with soil routines

Bifurcations

Outflow from a subbasin may flow in one or two directions. The main flow follows the main channel, which is the downstream subbasin described by the path given in GeoData.txt. If there is a bifurcation, the branch flow goes to another downstream subbasin. Any of the flows may go outside the model set-ups area, they are then no longer a concern of the model. There are two ways to determine the flow in the different channels. 1. The division of the total outflow is determined in BranchData.txt. 2. The outflow is calculated for two outlets separately and then divided into the channels. For the second alternative see Outlet lake with two outlets section above. The flow division into two channels by BranchData.txt is described by four parameters; mainpart, maxQmain, minQmain and maxQbranch, which is set in BranchData.txt. Zero values of the parameters mean they are not used. The main flow (mainflow) is calculated from the totalflow (q) as:

mainflow = delim{lbrace}{matrix{4}{2}{q {q<=minQ_main} {mainpart×(q-minQ_main)+minQ_main} {minQ_main<q<=q_thresh} {maxQ_main} {q>q_thresh \,\ q_thresh={{maxQ_main-minQ_main}/{mainpart}}+minQ_main}  {q-maxQ_branch}  {q>q_thresh\ ,\ q_thresh={{maxQ_branch}/{1-mainpart}}+minQ_main}}}{}

q_thresh=MIN({{maxQ_main-minQ_main}/{mainpart}}+minQmain,{{maxQ_branch}/{1-mainpart}}+minQ_main,0)

The rest of the total flow goes in the branch. The following figures give some examples of parameter combinations.

  • Serie 1: mainpart = 0.5, minQmain = 2, maxQmain = 10, maxQbranch = 0
  • Serie 2: mainpart = 0.5, minQmain = 2, maxQmain = 0, maxQbranch = 5
  • Serie 3: mainpart = 0.5, minQmain = 0, maxQmain = 10, maxQbranch = 0
  • Serie 4: mainpart = 0, minQmain = 2, maxQmain = 0, maxQbranch = 5
Figure 5: Main flow in relation to total flow for four different parameter combinations.
Figure 6: Branch flow in relation to total flow for four different parameter combinations.
Modules (file) Procedures Sections
surfacewater_processes (sw_proc.f90) calculate_branched_flow -
calculate_branched_flow_new -
start/hype_model_description/hype_routing.txt · Last modified: 2017/10/03 18:01 by cpers