User Tools

Site Tools


start:hype_model_description:hype_routing

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start:hype_model_description:hype_routing [2021/07/05 13:12]
cpers [Simple outlet lake or dam (olake)]
start:hype_model_description:hype_routing [2024/01/25 11:37] (current)
Line 5: Line 5:
 The HYPE model simulates most lakes and rivers in a conceptual way. The HYPE model can contain two types of rivers, local river and main river, and two types of lakes, local lakes and outlet lakes (Figure 1). The local river represent all ditches, streams, rivers within a subbasin that recieve only runoff within the subbasin. It is modelled as one conceptual river with a length, regardless of the actual distance runoff from different land has to travel through the subbasin. Similarly a local lake represents all lakes within a subbasin receiving inflow only from within the subbasin. The modelled local lake recieves a fraction of the flow in the local river. The fraction is defined as a fraction of the subbasin area. The main river is the river part(s) of a subbasin that water from upstream subbasins flows through. Depending on subbasin delieation it may be clearly defined or represent several tributaries that comes to the subbasin outlet. Finally the modelled outlet lake represents a lake located at the outlet of a subbasin. The HYPE model simulates most lakes and rivers in a conceptual way. The HYPE model can contain two types of rivers, local river and main river, and two types of lakes, local lakes and outlet lakes (Figure 1). The local river represent all ditches, streams, rivers within a subbasin that recieve only runoff within the subbasin. It is modelled as one conceptual river with a length, regardless of the actual distance runoff from different land has to travel through the subbasin. Similarly a local lake represents all lakes within a subbasin receiving inflow only from within the subbasin. The modelled local lake recieves a fraction of the flow in the local river. The fraction is defined as a fraction of the subbasin area. The main river is the river part(s) of a subbasin that water from upstream subbasins flows through. Depending on subbasin delieation it may be clearly defined or represent several tributaries that comes to the subbasin outlet. Finally the modelled outlet lake represents a lake located at the outlet of a subbasin.
  
-Local and main rivers are present in all subbasins and the length of each watercourse is calculated as the square root of the subbasin area, unless it is given as input. The river can be a SLC class and has then an surface area, but rivers can also be one-dimensional ​(i.e. no fraction of the subbasin area are occupied by the river and no precipitation added to the river). All runoff enters the local river. Local lakes (ilake) receive a portion of the local flow. The flow leaving the local river and the outflow from local lake, goes to the main river of the same subbasin. If there are upstream subbasins their flow is added to the main river together with the local flow. Outlet lakes (olake) receive the outflow from the main river, i.e. all upstream and local flows.+A local stream ​and main rivers are present in all subbasins ​as default, ​and the length of each watercourse is then calculated as the square root of the subbasin area. River lengths can be given as input, and then their value decide if there will be a stream or river in the subbasin. If the river length is zero no river is calculated. The river can be defined as a SLC class and has then an surface area in addition to a length, but rivers can also be without area (i.e. no fraction of the subbasin area are occupied by the river and no precipitation added to the river). ​ 
 + 
 +All runoff ​from land enters the local river. Local lakes (ilake) receive a portion of the local flow. The flow leaving the local river and the outflow from local lake, goes to the main river of the same subbasin. If there are upstream subbasins their flow is added to the main river together with the local flow. Outlet lakes (olake) receive the outflow from the main river, i.e. all upstream and local flows.
  
 | {{:​start:​hype_model_description:​lakeriveroverview.png?​400}} ​                                                | | {{:​start:​hype_model_description:​lakeriveroverview.png?​400}} ​                                                |
Line 14: Line 16:
 An outlet lake can be part of a larger lake. It is then called a lake basin. Lake basins are olakes in nearby subbasins. ​ An outlet lake can be part of a larger lake. It is then called a lake basin. Lake basins are olakes in nearby subbasins. ​
  
-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//​. At the start of a simulation the water depth of the lake is set to be at the threshold. The current water depth, denoted //wlm// in Fig. 2, can be above or below the threshold. ​+A simple outlet lake has a threshold. ​If the water level drops below the threshold, the outflow ceases. 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//​. At the start of a simulation the water depth of the lake is set to be at the threshold. The current water depth, denoted //wlm// in Fig. 2, can be above or below the threshold. ​
  
 For output, the outlet lake water level (output variable //wcom//) is given in a user set reference system. The reference level is used to get the same height system as any observations of the lake's water level. It uses the unit of meter, and the reference level (//w0ref//) gives the level of the threshold in the reference system (Fig. 2). The output //wcom// is calculated as the water level above the threshold plus //w0ref//. A regulated lake (dam) has two thresholds. The distance between the thresholds are determined by the regulation volume (//​regvol//​) of the dam with the assumption that the dam has constant area with depth. In reality the area may decrease with depth. This means that the the observed variation in water level may be larger than the simulated variation. It is therefore possible to adjust the output //wcom// (and //wcav//) with the actual amplitude of the regulation volume (//wamp//). This will make the simulated and recorded water stage comparable below the upper threshold for a regulated lake.  For output, the outlet lake water level (output variable //wcom//) is given in a user set reference system. The reference level is used to get the same height system as any observations of the lake's water level. It uses the unit of meter, and the reference level (//w0ref//) gives the level of the threshold in the reference system (Fig. 2). The output //wcom// is calculated as the water level above the threshold plus //w0ref//. A regulated lake (dam) has two thresholds. The distance between the thresholds are determined by the regulation volume (//​regvol//​) of the dam with the assumption that the dam has constant area with depth. In reality the area may decrease with depth. This means that the the observed variation in water level may be larger than the simulated variation. It is therefore possible to adjust the output //wcom// (and //wcav//) with the actual amplitude of the regulation volume (//wamp//). This will make the simulated and recorded water stage comparable below the upper threshold for a regulated lake. 
Line 61: Line 63:
 === Evaporation === === Evaporation ===
  
-If the river has an area (is a class), it evaporates and a new concentration is calculated. The river is assumed to evaporate at potential evaporation rate (see [[start:​hype_model_description:​processes_above_ground#​evaporation|Processes above ground - Evaporation]]). Normally the river area is constant over time, but with parameters a reduction of riverarea can be simulated for low volume/​flow. The reduced river area is also used for heat exchange calculations.+If the river has an area (as a class), it evaporates and a new concentration is calculated. The river is assumed to evaporate at potential evaporation rate (see [[start:​hype_model_description:​processes_above_ground#​evaporation|Processes above ground - Evaporation]]). Normally the river area is constant over time, but with parameters a reduction of riverarea can be simulated for low volume/​flow. The reduced river area is also used for heat exchange calculations.
  
 <m> frac_area = delim{lbrace}{ ​ <m> frac_area = delim{lbrace}{ ​
 matrix{3}{2}{ matrix{3}{2}{
     0 {x<=0}     0 {x<=0}
-    {(1+(x-fraxe)/​(fraxe-fraxm))*(x/​fraxe)^{x/(x-fraxm)}} ​ {0<​x<​fraxe}+    {(1+(fraxe-x)/​(fraxe-fraxm))*(x/​fraxe)^{fraxe/(fraxe-fraxm)}} ​ {0<​x<​fraxe}
     1 {x>​=fraxe} ​     1 {x>​=fraxe} ​
     }}{} </m>     }}{} </m>
        
-The parameters //fraxe// and //fraxm// are general, and //fraxe// is (minimum) mean river depth (m) where fractional river area = 1 and //fraxm// is mean river depth (m) where the slope of the fractional river area has its maximum (must be in the range between 0 and //fraxe//). //x// is the current mean river depth (based on full area extention).+The parameters //fraxe// and //fraxm// are general, and //fraxe// is (minimum) mean river depth (m) where fractional river area = 1 and //fraxm// is mean river depth (m) where the slope of the fractional river area has its maximum (must be in the range between 0 and //fraxe//). //x// is the current mean river depth (estimated as river water volume (including possible deadvolume) divided by the full area extention).
  
 === Pure delay === === 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 river is dependent on subbasin land area if the default river length is used. The delay is a pure translation. The delay is divided into whole days (//ttday//) and parts of the day (//​ttpart//​) (if the time step is daily, other wise the division is made into whole and fractions of that time step). In the following description daily time step is assumed.+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 river is dependent on subbasin land area if the default river length is used. The delay is a pure translation ​unless the parameter //damp// is set. The pure delay is divided into whole days (//ttday//) and parts of the day (//​ttpart//​) (if the time step is daily, other wise the division is made into whole and fractions of that time step). In the following description daily time step is assumed.
  
 <m> transtime = rivlen/​{rivvel*8.64*10^4} </m> <m> transtime = rivlen/​{rivvel*8.64*10^4} </m>
Line 102: Line 104:
 <m> transtime=(1-damp)*totaltime </m> <m> transtime=(1-damp)*totaltime </m>
  
-The result from the translation of water (//transq// and //transc//) flows into the attenuation box, which is assumed to be completely mixed. The delay time in the box (//kt//) is recalculated to a corresponding recession coefficient (//​riverrc//​). The recession coefficient (//​riverrc//​) used to calculate the outflow from the box (//dampq//) is a function of volume in the box (//​riverbox//​).+The result from the translation of water (//transq// and //transc//) flows into the attenuation box, which is assumed to be completely mixed. The delay time in the box (//kt, in timesteps//) is determined form input and parameters
  
 <m> kt = damp * totaltime </m> <m> kt = damp * totaltime </m>
 +
 +The outflow equation depends on the attenuation box's volume before changes during the time step (<m> riverbox_ini </m>) and on the net inflow during the timestep (//​inflow//​). The net inflow includes the outflow from the translation (local runoff, upstream inflow, point sources etc.), removal though irrigation or regional groundwater flow, and the flow to or from a main river floodplain. The equation has two coefficients:​
 +
 +<m> riverrc1 = 1. - kt + kt * e^{-1{/}kt} </m>
 +
 +<m> riverrc2 = 1. - e^{-1{/}kt} </m>
 +
 +<m> dampq = riverrc1 * inflow + riverrc2 * riverbox_ini </m>
 +
 +An earlier version of calcuation of outflow from the box can be accessed through a model option. In this case the delay time of the attenuation box is recalculated to a recession coefficient (//​riverrc//​). The recession coefficient is used to calculate the outflow from the box (//dampq//) by the current volume in the box (//​riverbox//​).
  
 <m> riverrc = 1. - kt + kt * e^{-1{/}kt} </m> <m> riverrc = 1. - kt + kt * e^{-1{/}kt} </m>
Line 110: Line 122:
 <m> dampq = riverrc * riverbox </m> <m> dampq = riverrc * riverbox </m>
  
-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.+where <m> riverbox = riverbox_ini + inflow </m>.
  
-=== Additional smoothing of dead volume === 
  
-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:+=== Additional smoothing by dead volume ​===
  
-<​m> ​dampq = riverrc*(riverbox - deadriver) ​</m> +A dead volume (//​deadriver//, ​<m>m^3</m>) can be used to get additional equalization of concentrations in the watercourse. ​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. In HYPE the dead volume ​is estimated from the upstream area (including ​the area of the subbasin itself). This gives the dead volume:
- +
-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 (inkluding ​the area of the subbasin itself. Depth is calculated from the parameter //dead// (//deadl// or //deadm//, <​m>​m^2{/​}km^2</​m>​and the upstream area (<​m>​km^2</​m>​),​ 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:+
  
 <m> deadriver = dead * upparea * rivlen </m> <m> deadriver = dead * upparea * rivlen </m>
  
-Dead volume can be used even without suppression of water (//damp = 0//).+where the parameter //dead// (//deadl// or //deadm//, <​m>​m^2{/​}km^2</​m>​) is general parameters, the upstream area //uparea// (<​m>​km^2</​m>​) is calculated from input data, and the river length (//​rivlen//,​ //m//) is estimated to be the root of the subbasin’s area unless it is set among the input data. Dead volume can be used without suppression of water flow peak (//damp = 0//). When additional smoothing is used, the //​riverbox//​ in the attenuation equations above is replaced by the volume of the attenuation box minus the dead volume. 
 + 
 +In addition, the dead volume is used to calculate a minimum river width used for calculation of river surface area in the case the river area is not given as a class area. The width is assumed to be 10 times the depth and together with the dead volume and river length, the with is calculated as: 
 + 
 +<m> deadwidth = 10 * {(deadriver / {rivlen * 10})}^{1/2} </m>
  
 === Derivation of the equation of recession in the attenuation box === === Derivation of the equation of recession in the attenuation box ===
Line 171: Line 184:
 <m> Q=I+(e^{-1{/​}k}-1)~(kI-S(0)) </m> <m> Q=I+(e^{-1{/​}k}-1)~(kI-S(0)) </m>
  
 +or separated for //I// and //S//.
 +
 +<m> Q=(1-k + k*e^{-1{/​}k})~I + (1 - e^{-1{/​}k})~S(0) </m>
    
  
-Recession ​coefficient is defined as the proportion of outflow after an inflow pulse. It is therefore calculated ​here as <​m>​r=Q{/​}I</​m>​ under the assumption that the starting volume can be neglected, //s(0)=0//.+Common in HYPE is that outflows are calculated with a recession coefficient. Here the recession ​coefficient is defined as the proportion of outflow after an inflow pulse. It is therefore calculated as <​m>​r=Q{/​}I</​m>​ under the assumption that the starting volume can be neglected, //S(0)=0//​. ​
  
 <m> r=Q/​I=1+(e^{-1{/​}k}-1)*k </m> <m> r=Q/​I=1+(e^{-1{/​}k}-1)*k </m>
  
 +For a real flow the volume can of course not be neglected in this way and this relationship is only approximate.
 +
 +Alternatively the outflow may be calculated from the equation separated for //I// and //S//. For this option I is calculated as the sum of several different types of inflow and outflow to the river during the time step, e.g. precipitation and evaporation,​ in addition to the lateral inflow. In addition the initial value of the river volume (//S//(0)) is saved here to be used for the outflow calculation. ​
  
-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 ===
  
  
-Bank-full flow is used for erosion of particulate phosphorus in rivers (see [[start:​hype_model_description:​hype_np_riv_lake#​sedimentation_resuspension|Sedimentation/​Resuspension]]). It is approximated ​by the second highest daily flow during the last year.+Bank-full flow is used for calculation of erosion of sediment and particulate phosphorus in rivers (see [[start:​hype_model_description:​hype_np_riv_lake#​sedimentation_resuspension|Sedimentation/​Resuspension]]). This flow has a probability of app. 0.5% (Nixon, 1959). It is in HYPE estimated ​by the second highest daily flow during the last 365 days, which has similar probability (Rosberg, 2003).
  
  
Line 189: Line 207:
 ==== Local river ==== ==== Local river ====
  
-The local river has a length equal to the square root of the subbasin area, if not specified as input. Runoff from the land area of the subbasin forms the inflow to the local river. The flow in the local river is delayed and attenuated as described above. Of the resulting flow from the stream a constant percentage goes to the local lake (//​icatch//​),​ and the rest directly to the main river. ​+The local river has a length equal to the square root of the subbasin area, if not specified as input. Runoff from the land area of the subbasin forms the inflow to the local river (Figure 3). The flow in the local river is delayed and attenuated as described above. Of the resulting flow from the stream a constant percentage goes to the local lake (//​icatch//​),​ and the rest directly to the main river. ​ 
 + 
 +|{{:​start:​hype_model_description:​HYPE_box_picture_v3_localriver.png?​400|}}| 
 +|Figure 3: Water flows of the local river.|
  
 ==== Main river ==== ==== 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 as input. 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.+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 as input. 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 ​(Figure 4)For a subbasin with a (part of) a multi-basin lake, the main river transports the flow from land to the lakebasin of the subbasin. 
 + 
 +|{{:​start:​hype_model_description:​HYPE_box_picture_v3_mainriver.png?​400|}}| 
 +|Figure 4: Water flows of main river.|
  
-The return flow from an aquifer is added to the inflow of the main river.+The return flow from an aquifer is added to the inflow of the main river (Figure 4).
  
 The flow in the main river is delayed and attenuated as described above. ​ The flow in the main river is delayed and attenuated as described above. ​
Line 232: Line 256:
 The third type is for a sectorial rating curve. It has different rating curve coefficients for different sections of water level. The sections may not overlap or leave gaps in water level, even though small discrepancies is handled. The parameters and sections need to be chosen so that the whole curve is continous. Since the rating curves are used inverted in the code, the sections are turned into sectors of flow. The average of the flow given by the minimum water level of one curve and the maximum water level of another curve is taken as the actual limit between the two curves. This type does not handle ice curves. The third type is for a sectorial rating curve. It has different rating curve coefficients for different sections of water level. The sections may not overlap or leave gaps in water level, even though small discrepancies is handled. The parameters and sections need to be chosen so that the whole curve is continous. Since the rating curves are used inverted in the code, the sections are turned into sectors of flow. The average of the flow given by the minimum water level of one curve and the maximum water level of another curve is taken as the actual limit between the two curves. This type does not handle ice curves.
  
-In addition to river water level described above, it is possible to calculate the water level in the scale of the local gauge. This could e.g. be in cm and with the zero of the gauge at other location than //w0// of the equation. ​The figure ​below show the relation between the different parameters. ​+In addition to river water level described above, it is possible to calculate the water level in the scale of the local gauge. This could e.g. be in cm and with the zero of the gauge at other location than //w0// of the equation. ​Figure 5 below show the relation between the different parameters. ​
  
 | {{:​start:​hype_model_description:​river rating curves.png?​600|}} | | {{:​start:​hype_model_description:​river rating curves.png?​600|}} |
-| Figure ​3: Schematic representation of river water level. ​ |+| Figure ​5: Schematic representation of river water level. ​ |
  
  
Line 269: Line 293:
 |:::​|local_water_level|:::​| |:::​|local_water_level|:::​|
 |:::​|ice_on_river|:::​| |:::​|ice_on_river|:::​|
 +
 +
 +==== References ====
 +
 +Nixon, M. 1959. A study of the bank-full discharges of rivers in England and Wales. Journal of the Institute of Civil Engineers 12:157-174.
 +
 +Rosberg, J. 2003. Modelining phosphorus transport and retention in river networks. Master Thesis. Dept. of Earth Sciences, Uppsala University.
  
  
Line 285: Line 316:
 === Outflow with rating curve ==== === Outflow with rating curve ====
  
-The rating curve is used for calculation of outflow above a threshold ​at several occasions+The rating curve is used for calculation of outflow ​in different circumstances. It is based on water level above a threshold. ​
  
 <m> q(t)=k*(w(t)-w_0)^p </m> <m> q(t)=k*(w(t)-w_0)^p </m>
    
-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.+In the program the equation is solved ​for the average flow during the timestep ​with linearization (Lindström,​ 2016). For rating curve exponent equal to one, the solution is exact, while for other exponent an approximation is used. The outflow of the lake is limited to the water above the threshold, in the case that the rating curve give a higher value.
 ==== Local lake (ilake) ==== ==== Local lake (ilake) ====
  
 The local lake has an initial volume which is determined by its area and threshold depth. The lake depth below the threshold is determined by model parameters (//gldepi// or //​illdepth//​). ​ The local lake has an initial volume which is determined by its area and threshold depth. The lake depth below the threshold is determined by model parameters (//gldepi// or //​illdepth//​). ​
  
-The inflow to the lake is a percentage of the flow in the local stream (//​icatch//​). The percentage is determined by the percentage of the subbasin area that drains to the lake. This percentage can be given as a fraction in GeoData.txt for each subbasin with an internal lake, or be given by a regional parameter ilicatch, or be given by a general parameter gicatch. If not set at all the default value is 1, i.e. the local river runs through the local lake. The flow from the local river is added to the lake. The lake water is assumed completely mixed. ​+The inflow to the lake is a percentage of the flow in the local stream (//​icatch//​). The percentage is determined by the percentage of the subbasin area that drains to the lake. This percentage can be given as a fraction in GeoData.txt for each subbasin with an internal lake, or be given by a regional parameter ​//ilicatch//, or be given by a general parameter ​//gicatch//. If not set at all the default value is 1, i.e. the local river runs through the local lake. The flow from the local river is added to the lake (Figure 6). The lake water is assumed completely mixed. ​ 
 + 
 +|{{:​start:​hype_model_description:​HYPE_box_picture_v3_ilake.png?​400|}}| 
 +|Figure 6: Water flows of internal lake.|
  
 Water outflow is calculated with the universal rating curve using general or region specific model parameters. Water outflow is calculated with the universal rating curve using general or region specific model parameters.
  
-There is an alternative model for local lakes (a model option), the ilake connectivity model. ​The ilake connectivity model simulates ​the ilake as a chain of small connected ​lake sections ​(//lks//with different height of their outflow threshold. Depending on water volume ​in the ilake one or several of the lake sections ​can be disconnected from the chain (zero outflow ​with water level below the threshold). The precipitation and evaporation ​are divided by the lake sections depending on their fraction of the ilake area, but the runoff from land area is divided by the lake sections depending on their fraction of the catchment area. In case the water level of lake section is above its threshold, its outflow is calculated. The outflow of each lake section ​is calculated using the universal rating curve using general or region specific ​model parameters same as simple ilake. The outflow of lake section is of course also added to the receiving lake section before that one’s outflow is calculated. Depending on how far upstream from the last lake section of the chain there is inflow from the above lake section, that fraction of the ilake area is the ilake’s current connectivity. The catchment area of the lake sections above this border is the currently non-contributing catchment area.+The above description of the functioning ​of an internal ​lake (ilake) in HYPE can be changed ​with a modeloption for ''​connectivity''​. The default ilake model has no connectivity model. There are two alternatives for introducing ​lake connectivity within ​subbasin. The first is a fill and spill model for chain of storages. The second is the Hysteretic Depressions Storage model (HDS). You can choose ​to use one or the other or to have different ​ilake descriptions for different subbasins.
  
 +===The fill-and-spill of ilake sections model===
 +
 +This ilake connectivity model simulates the ilake as a chain of small connected lake sections (//lks//) with different height of their outflow threshold. Depending on water volume in the ilake one or several of the lake sections can be disconnected from the chain (zero outflow with water level below the threshold). The precipitation and evaporation are divided by the lake sections depending on their fraction of the ilake area, but the runoff from land area is divided by the lake sections depending on their fraction of the catchment area. In case the water level of a lake section is above its threshold, its outflow is calculated. The outflow of each lake section is calculated using the universal rating curve using general or region specific model parameters same as a simple ilake. The outflow of a lake section is of course also added to the receiving lake section before that one’s outflow is calculated. Depending on how far upstream from the last lake section of the chain there is inflow from the above lake section, that fraction of the ilake area is the ilake’s current connectivity. The catchment area of the lake sections above this border is the currently non-contributing catchment area.
 +
 +===The Hysteretic Depressions Storage (HDS) model ===
 +
 +Another model for the local lake is the Hysteretic Depressions Storage (HDS) model (Ahmed et al. 2023, Shook et al. 2021). The HDS model does not simulate depressions as distinct (individual) depressions,​ rather, it simulates the effects of the integrated depressions system and their connection at the basin level as a lumped depression storage (ilake). The HDS model simulates the change in the contributing area, depressional storage, and outflow from the subbasin.  ​
 +
 +The model has contributing area fraction as a state. The runoff from the contributing area is outflow from the HDS model of the subbasin. The non-contributing area fraction of runoff is added to the depression storage. If the water of the depression is above the threshold of the depression, all the water above the threshold is also contributing to outflow of the HDS model of the subbasin. In this case the contributing area fraction will be one for the next timestep, otherwise the contributing fraction is calculated with a hysteretic function. The hysteretic function will keep the contributing fraction constant if the water volume in the depression is un-changed, if it is decreasing (drying up) the contributing fraction is set to zero. If the depression is filling up, the contributing fraction is increasing linearly on a curve to reach a contributing fraction of one at the same time as the depression is filled to the max.
 +
 +Input are the maximum depth (//​hds_depth//​) and maximum area (ilake slc-area) of depression in GeoData.txt (or a ilakeregion dependent parameter //​hdsdepth//​ can be used). In addition, the land area fraction connected to the ilake, //icatch//, is used. It is set equal to one if the whole subbasin may contribute to the HDS outflow. //icatch// can be lower if part of the land area of the subbasin is always contributing to subbasin outflow, e.g. if it is contributing to a main river through the subbasin. The output '​connectivity'​ of the HDS model is in the HYPE implementation defined as the contributing area fraction, aka one minus the non-contributing area fraction. This because, at the moment, the water area of the depression is constant. The output '​non-contributing area fraction'​ is a the fraction of the ilake catchment area (including the ilake area itself) not contributing to outflow from the HDS model.
  
 ==== Simple outlet lake or dam (olake) ==== ==== Simple outlet lake or dam (olake) ====
 +
 +| {{:​start:​hype_model_description:​simple_dam.png?​400}} ​ |
 +| Figure 7: Water flows of outlet lake.                 |
 +
  
 === Inflow === === 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. +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 (Figure 7)
  
 === Outflow with universal rating curve === === Outflow with universal rating curve ===
Line 315: Line 364:
 <m> corr = 1+ratcorr </m> <m> corr = 1+ratcorr </m>
  
-//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//,​ <​m>​km^2</​m>​) is included in the equation if parameter //grata// is >0. If the water level is below the threshold then the outflow is zero.+//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//,​ <​m>​km^2</​m>​) is included in the equation if parameter //grata// is >0. If the water level is below the threshold then the outflow is zero. If the flow calculated by the equation gives a larger outflow volume during a time step than the water volume above the threshold, the outflow is limited so that the water level do not drop below the threshold. It is possible to prescribe another minimum flow (//​minflow//​) than zero. In this case the outflow is no lower than the minimum flow as long as there is water in the lake. That is the water level can drop below the threshold
  
 === Outflow with specific rating curve === === 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.+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. The outflow is also in this case limited by the threshold not to cause the water level to drop below it. It is possible to prescribe another minimum flow (//​minflow//​) than zero. In this case the outflow is no lower than the minimum flow as long as there is water in the lake. That is the water level can drop below the threshold
  
 <m> outflow = rate * (wlm - lake_{depth}) ^ {exp} </m> <m> outflow = rate * (wlm - lake_{depth}) ^ {exp} </m>
 +
  
 === Regulated lake === === 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.+A simple regulation routine can be given in LakeData.txt for selected outlet lakes. There are two main versions of regulations. The first determines ​a (often constant) production flow, for water levels ​between the lake threshold and a lower water stage threshold, and a spill for higher water levels. The second ​determines the outflow by different rating curves for (two) different seasons. For both variants it is possible to prescribe another minimum flow (//​minflow//​) than zero. In this case the outflow is no lower than the minimum flow as long as there is water in the lake. That is the water level can drop below the threshold(s)
    
 == Production flow == == Production flow ==
Line 331: Line 381:
 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. 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.
  
-|{{:​start:​hype_model_description:​illustraion_of_regulation_flow.png?​400|}}| +| {{:​start:​hype_model_description:​illustraion_of_regulation_flow.png?​400}} ​ 
-|Figure ​4: Illustration of regulation flow and variables.|+| Figure ​8: 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:+For water levels above the threshold, the flow is calculated with a rating curve (typically flow through spillways) or all the water above the threshold ​is discharged. In this case thoughthe calculated flow may be increased so that the outflow ​is at least equal to the production flow (//​qprod//​). Compiled together as one equation, the outflow from a regulated lake is:
  
 <m> 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}}}{} </m> <m> 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}}}{} </m>
Line 346: Line 396:
 <​m> ​ qprod = qprod*(1. + qamp * sin(2*pi*(dayno+qpha)/​365)) </m> <​m> ​ qprod = qprod*(1. + qamp * sin(2*pi*(dayno+qpha)/​365)) </m>
  
-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.+In addition, the production flow may be reduced 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 == == 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. ​+Regulated outflow can also be calculated from different rating curves for the regulation periods. The rating curve parameters are the specific rate and exponent ​for the lake, or if lackingthe general rate and exponent ​parameters
  
 <m> q(t)=k*(w(t)-w_0)^p </m> <m> q(t)=k*(w(t)-w_0)^p </m>
Line 364: Line 414:
 In addition to regulated lakes (described above), dams in HYPE can instead be regulated by a specific purpose. Dams are then governed by the main purpose of the dam, e.g. hydropower, flood control. The rules of calculating the outflow of the dam then depends on the specified purpose of each dam. The outlet lakes that are regulated by a specified purpose is given in DamData.txt. A dam without defined purpose may use the methods given in previous sections (and be defined in LakeData.txt). In addition to regulated lakes (described above), dams in HYPE can instead be regulated by a specific purpose. Dams are then governed by the main purpose of the dam, e.g. hydropower, flood control. The rules of calculating the outflow of the dam then depends on the specified purpose of each dam. The outlet lakes that are regulated by a specified purpose is given in DamData.txt. A dam without defined purpose may use the methods given in previous sections (and be defined in LakeData.txt).
  
-Dams are characterised by their regulation volume (//​regvol//​) between a minimum water stage (//wmin//) and the spill 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.+Dams are characterised by their regulation volume (//​regvol//​) between a minimum water stage (//wmin//) and the spill threshold (//w0//). The minimum water stage (//​wmin//​) ​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 no outflow occurs. The spill threshold is defined from the lake's given depth (//lake_depth//)
  
-For dams a preferred production flow is calculated (see below). 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.+For dams a preferred production flow is calculated (see below). This is released if the dam in within the regulation volume, but no more water is released ​than to keep the water level above the minimum threshold. 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// is given in DamData.txt. ​ Input variables //rate, exp, regvol, qamp// and //qpha// is given in DamData.txt. ​
Line 374: Line 424:
 For all dams the general preferred production flow is calculated from input data on the dam. The flow that is preferred to be released from the dam today is then adjusted depending on purpose. The general production flow (//qprod//) may be constant or vary between two values per year. Typically it is estimated from the yearly average inflow of the dam, which is given as input data. It can alternatively be determined by input variables //qprod1, qprod2, datum1// and //datum2//, which then has to be estimated. 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. For all dams the general preferred production flow is calculated from input data on the dam. The flow that is preferred to be released from the dam today is then adjusted depending on purpose. The general production flow (//qprod//) may be constant or vary between two values per year. Typically it is estimated from the yearly average inflow of the dam, which is given as input data. It can alternatively be determined by input variables //qprod1, qprod2, datum1// and //datum2//, which then has to be estimated. 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 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.+The production flow may be reduced ​when the water level is low in the dam. The flow will be reduced linearly from full production flow for that time of year when water level is at 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 == == 1 - Irrigation dam and 2 - Water supply dam ==
Line 404: Line 454:
 == 4 - Hydropower dam == == 4 - Hydropower dam ==
  
-Dams for hydropower ​uses the general preferred production flow, but it may be adjusted with a seasonal factor. The factor ​is sinusoidal over the year, with a peak in December, when power output is normally high, and a minimum in June. If you want a different seasonal phase set //qpha// to another value (default = 102). The seasonal ​adjustment ​is set with the input variable ​//qamp// (>​0,<​1for each dam+Dams for hydropower ​use the general preferred production flow, but the flow may be seasonally redistributed. The seasonal adjustment ​is sinusoidal ​factor ​over the year, with as default ​a peak in December, when power output is normally high (in northern Europe), and a minimum in June. For a model in another geographic area, a different seasonal phase may be needed, and is then set with the input //qpha// to another value (default = 102).  
 + 
 +The seasonal ​redistribution ​is used for dams/​subbasins ​with a snowfall fraction (//snowfrac//) above 0.35. For these dams the seasonal variation is calculated as:
  
 <m> qprod = qprod*(1 + qamp * sin(2*pi*(dayno+qpha)/​365)) </m> <m> qprod = qprod*(1 + qamp * sin(2*pi*(dayno+qpha)/​365)) </m>
  
-Alternatively ​the seasonal ​variation ​adjustment can be determined ​by the climate. If this option is used //​qamp// ​is set to zero (or left out) in the file, and the value used in the calculations is determined by the fraction of snow fall (//snowfrac//) for each lakeIf the snow fall fraction ​is above 0.35, //qamp// of 0.71 is used.+If the snow fall fraction is above 0.35, a //qamp// of 0.71 is used, otherwise it is zero.  
 +The size of the seasonal adjustment can alternatively ​be set by the input variable ​//qamp// (0<//qamp//<1) for each damTo turn off the seasonal redistribution ​the snow fraction ​can be set to zero for specific dam.
  
 ==== Outlet lake with two outlets ==== ==== Outlet lake with two outlets ====
  
-An outlet lake that is not part of a lake composed of lakebasins, may have two defined outlets in [[start:​hype_file_reference:​lakedata.txt|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 [[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]. Below the defining (necessary) variables are given for each outlet type. Note: The threshold (w0ref) is given for first outlet. For the second outlet this variable instead is given relative to the threshold of outlet 1 (i.e usually zero). ​+An outlet lake that is not part of a lake composed of lakebasins, may have two defined outlets in [[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]. The flow of the first outlet will go to the main downstream subbasin, and the second outlet will go to the subbasin defined in BranchData.txt. The outlets ​is divided into different outlet types depending on method for determining the outflow. HYPE will define an outlet'​s type based on variables present in [[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]. Belowthe defining (necessary) variables are given for each outlet type. Note: The threshold (w0ref) is given for first outlet. For the second outlet this variable instead is given relative to the threshold of outlet 1 (i.e usually zero). ​
  
 === Outlet types === === Outlet types ===
Line 489: Line 542:
   - The flow out of a lakebasin is the netflow plus all inflows from other lakebasins. Theses inflows are outflows of other lakebasins. Starting upstream in the lake the inflows are added to the outflow to give the flow out of every lakebasin. Note that these flows can be negative. ​   - The flow out of a lakebasin is the netflow plus all inflows from other lakebasins. Theses inflows are outflows of other lakebasins. Starting upstream in the lake the inflows are added to the outflow to give the flow out of every lakebasin. Note that these flows can be negative. ​
   - The last step is to actually move the water. Preferably we want water to move from one lakebasin to the next, without mixing with water incoming from lakebasins further upstream. This we want so that substances do not travel all the way to the lake outlet on one time step. Therefore we try to remove all outflows from the lakebasins before we add the removed water into the downstream lakebasins. This might not be possible so we keep track of how much we can't move and repeat the third step if necessary.  ​   - The last step is to actually move the water. Preferably we want water to move from one lakebasin to the next, without mixing with water incoming from lakebasins further upstream. This we want so that substances do not travel all the way to the lake outlet on one time step. Therefore we try to remove all outflows from the lakebasins before we add the removed water into the downstream lakebasins. This might not be possible so we keep track of how much we can't move and repeat the third step if necessary.  ​
 +
  
 === Outflow of lake composed of lake basins === === Outflow of lake composed of lake basins ===
  
 +The main outflow of the lake is assumed to be located in the last lake basin. Here outflow is estimated by a rating curve, either a specific equation or with the general equation, or by a regulation routine. The threshold may be changing over the year as described in Section Two rating curves above (below Regulated lake). If the water level is below the threshold then the outflow is zero (or other minimum flow, //​minflow//​),​ or if the production flow regulation is used, there is production flow. See Section Production flow above. ​
  
-The main outflow of the lake is assumed to be located in the last lake basin. Here outflow is estimated by a rating curve, either a specific equation or with the general equation, or by regulation routine. 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. ​In addition the lake can have outflows out of the multi-basin lake from other lakebasins. These additional outflows are then the flow in the branch of these lakebasins. The outflow in a branch going out of the multi-basin lake is specified in LakeData for that lakebasin. It can be a rating curve or production flow. If it is a production flow it uses the same thresholds as those for the main outflow of the multi-basin lake, i.e. //w0// and //​wmin//​. ​+In addition the lake can have outflows out of the multi-basin lake from other lakebasins. These additional outflows are then the flow in the branch of these lakebasins. The outflow in a branch going out of the multi-basin lake is specified in LakeData for that lakebasin. It can be determined by a rating curve or by production flow. If it is a production flow it uses the same thresholds as those for the main outflow of the multi-basin lake, i.e. //w0// and //​wmin//​. ​
  
 ==== Initalisation of lake volume ==== ==== Initalisation of lake volume ====
Line 499: Line 554:
 Unless a starting state is given from a file, the lakes start the simulation filled with water to their outflow threshold. That means for most lakes 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. ​ Unless a starting state is given from a file, the lakes start the simulation filled with water to their outflow threshold. That means for most lakes 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.+For lakes with outflow determined by a rating curve, the water level of the lake will often 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. For lakes in arid areas and for lakes with small catchments, the water level may be below the threshold and only occasionally have outflow.
  
 +==== Constructing dams ====
 +
 +It is possible to set at date from when a dam with regulation given in [[start:​hype_file_reference:​lakedata.txt|LakeData]] or [[start:​hype_file_reference:​damdata.txt|DamData]] is supposed to be in place and regulate the flow. The same way it is possible to give a date when the dam is supposed to be removed. For the period before the dam is build and/or after the dam is removed the outflow of the lake (that is not a dam anymore) is calculated from the rating curve parameters used for spill during regulation period. ​
 +
 +The removal of a dam is simulated by reducing the threshold of the lake (aka reducing the lake depth) to the ''​wmin''​-level. Similarly the lake depth is increased when a dam is built. The lake depth given in the input file is assumed to be the lake depth of the dam (as it is for outlet lakes without dates for building/​removing the dam). The lake depth is set to the lake_depth given in input file minus the the distance calculated from regulation volume divided by lake surface area for the period without a dam. When during a simulation the date of the building or removing of the dam is passed, the lake depth used in the simulation is changed.
 +
 +Removing of a filled dam may cause a flood wave travelling downstream. An option to have a smoother transition is to have an emptying phase with a gradually reducing threshold. This is implemented with a parameter specifying a number of days before the date the dam is removed that the threshold will start to decrease.
 +
 +If shorter time steps are used, the dam is assumed to be build or removed on the hour 00.
  
 ==== Links to file reference ==== ==== Links to file reference ====
Line 515: Line 579:
 |:::| |//rate, exp, qamp, qpha//|:::| |:::| |//rate, exp, qamp, qpha//|:::|
 |:::​|//​qprod//​|//​qprod1,​ qprod2, datum1, datum2//​|:::​| |:::​|//​qprod//​|//​qprod1,​ qprod2, datum1, datum2//​|:::​|
-|:::| |//​limqprod//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​par.txt|par.txt]]| +|:::| |//limqprod//,//​w0adjdays//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​par.txt|par.txt]]| 
-|:::| |//​deltaw0//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]|+|:::| |//deltaw0,minflow//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]|
 |:::| |//purpose, snowfrac//​|[[start:​hype_file_reference:​damdata.txt|DamData.txt]]| |:::| |//purpose, snowfrac//​|[[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 |:::​|//​Qinf//​|//​qinfjan,​ qinffeb, .., qinfdec//​|:::​| |:::​|//​Qinf//​|//​qinfjan,​ qinffeb, .., qinfdec//​|:::​|
 |Outlet lake with two outlets| |//​ldtype//​=5 or 6|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]| |Outlet lake with two outlets| |//​ldtype//​=5 or 6|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]|
 |:::| |//w0ref, maxQprod, minflow, obsflow//​|:::​| |:::| |//w0ref, maxQprod, minflow, obsflow//​|:::​|
 +|Constructing dams| |//​builddam,​ removedam// |[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|:::| |//​remdamdays//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
  
  
Line 538: Line 604:
 |:::​|calculate_outflow_from_lakebasin_lake|:::​| |:::​|calculate_outflow_from_lakebasin_lake|:::​|
 |:::​|calculate_branched_flow|:::​| |:::​|calculate_branched_flow|:::​|
 +|:::​|change_current_dam_status|constructing dams|
 |[[http://​hype.sourceforge.net/​doxy-html/​namespacemodelmodule.html|modelmodule (model_hype.f90)]] |initiate_model | local lake | |[[http://​hype.sourceforge.net/​doxy-html/​namespacemodelmodule.html|modelmodule (model_hype.f90)]] |initiate_model | local lake |
 |::: | calculate_local_lake_model |::: | |::: | calculate_local_lake_model |::: |
Line 546: Line 613:
 ==== References ==== ==== 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.+Ahmed, M.I., Shook, K., Pietroniro, A., Stadnyk, T., Pomeroy, J.W., Pers, C., Gustafsson, D., 2023. Implementing A Parsimonious Variable Contributing Area Algorithm for the Prairie Pothole Region in the HYPE Modelling Framework. Environmental Modelling & Software. https://​doi.org/​10.1016/​j.envsoft.2023.105769  
 + 
 +Lindström, G., 2016. Lake water level for calibration of the S-HYPE model, Hydrology Research 47.4:​672-682. ​https://doi.org/10.2166/​nh.2016.019 
 + 
 +Shook, K., Papalexiou, S., Pomeroy, J.W., 2021. Quantifying the effects of Prairie depressional storage complexes on drainage basin connectivity. J. Hydrol. 593, 125846. https://​doi.org/​10.1016/​j.jhydrol.2020.125846 
 ===== Floodplains ===== ===== Floodplains =====
  
Line 552: Line 624:
  
 |{{:​start:​hype_model_description:​FloodScenarios.png?​400|}}| |{{:​start:​hype_model_description:​FloodScenarios.png?​400|}}|
-| Figure ​5: Five possible scenarios of flooding.|+| Figure ​9: Five possible scenarios of flooding.|
  
 ==== Common floodplain processes ==== ==== Common floodplain processes ====
Line 566: Line 638:
  
 | {{:​start:​hype_model_description:​FloodVarFlow.png?​400}} ​    | | {{:​start:​hype_model_description:​FloodVarFlow.png?​400}} ​    |
-| Figure ​6: Illustration of floodplain variables of a lake.  |+| Figure ​10: Illustration of floodplain variables of a lake.  |
  
 The exchange of water between lake (or river) and floodplain is determined by the respective water levels (//​wl<​sub>​body</​sub>//​ and //​wl<​sub>​plain</​sub>//​),​ the equilibrium water level (//​wl<​sub>​equil</​sub>//​) and the thresholds between the water bodies (//​fl<​sub>​body</​sub>/​fl<​sub>​plain</​sub>//​). ​ The exchange of water between lake (or river) and floodplain is determined by the respective water levels (//​wl<​sub>​body</​sub>//​ and //​wl<​sub>​plain</​sub>//​),​ the equilibrium water level (//​wl<​sub>​equil</​sub>//​) and the thresholds between the water bodies (//​fl<​sub>​body</​sub>/​fl<​sub>​plain</​sub>//​). ​
Line 589: Line 661:
  
 |{{:​start:​hype_model_description:​FloodVar2.png?​400|}}| |{{:​start:​hype_model_description:​FloodVar2.png?​400|}}|
-| Figure ​7: Illustration of floodplain soil flows.|+| Figure ​11: Illustration of floodplain soil flows.|
  
 ==== Connected floodplains ==== ==== Connected floodplains ====
Line 633: Line 705:
 Outflow from a subbasin may flow in one or two directions. The main flow follows the main channel, which is the downstream subbasin given by the path in [[start:​hype_file_reference:​geodata.txt|GeoData.txt]]. If there is a bifurcation,​ the branch flow goes to another downstream subbasin (with subid //​branchid//​). Any of the flows may go outside the model set-ups area, they are then no longer a concern of the model. ​ Outflow from a subbasin may flow in one or two directions. The main flow follows the main channel, which is the downstream subbasin given by the path in [[start:​hype_file_reference:​geodata.txt|GeoData.txt]]. If there is a bifurcation,​ the branch flow goes to another downstream subbasin (with subid //​branchid//​). Any of the flows may go outside the model set-ups area, they are then no longer a concern of the model. ​
  
-There are three 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 [[start:​hype_model_description:​hype_routing#​outlet_lake_with_two_outlets|Outlet lake with two outlets]] section above. 3) The demanded flow in the branch is prescribed (//​Qbranch//​). If the total flow is not enough to fulfil the need, less water goes into the branch. The main channel gets the rest of the total flow. +There are three 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 [[start:​hype_model_description:​hype_routing#​outlet_lake_with_two_outlets|Outlet lake with two outlets]] section above. 3) The demanded flow in the branch is prescribed (//​Qbranch//​). The prescribed flow can be constant and set in BarnchData.txt or variable and given in Xobs.txt (''​dwtr''​). If the total flow is not enough to fulfil the need, less water goes into the branch. The main channel gets the rest of the total flow. 
  
 For the first method the total outflow has been calculated the ordinary way. The flows division into the two channels is the determined by four parameters; //​mainpart//,​ //​maxQ<​sub>​main</​sub>//,​ //​minQ<​sub>​main</​sub>//​ and //​maxQ<​sub>​branch</​sub>//,​ which are set in [[start:​hype_file_reference:​branchdata.txt|BranchData.txt]]. Zero values of the input data mean they are not used. The main flow (//​mainflow//​) is calculated from the totalflow (//q//) as:  For the first method the total outflow has been calculated the ordinary way. The flows division into the two channels is the determined by four parameters; //​mainpart//,​ //​maxQ<​sub>​main</​sub>//,​ //​minQ<​sub>​main</​sub>//​ and //​maxQ<​sub>​branch</​sub>//,​ which are set in [[start:​hype_file_reference:​branchdata.txt|BranchData.txt]]. Zero values of the input data mean they are not used. The main flow (//​mainflow//​) is calculated from the totalflow (//q//) as: 
Line 650: Line 722:
  
 |{{:​start:​hype_model_description:​mainflow.png?​400|}}| |{{:​start:​hype_model_description:​mainflow.png?​400|}}|
-| Figure ​8: Main flow in relation to total flow for four different parameter combinations.|+| Figure ​12: Main flow in relation to total flow for four different parameter combinations.|
  
 |{{:​start:​hype_model_description:​branchflow.png?​400|}}| |{{:​start:​hype_model_description:​branchflow.png?​400|}}|
-| Figure ​9: Branch flow in relation to total flow for four different parameter combinations.|+| Figure ​13: Branch flow in relation to total flow for four different parameter combinations.|
  
  
start/hype_model_description/hype_routing.1625483566.txt.gz · Last modified: 2023/11/16 14:28 (external edit)