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
Next revision Both sides next revision
start:hype_model_description:hype_routing [2018/09/10 13:00]
cpers [Common rivers processes]
start:hype_model_description:hype_routing [2018/10/19 10:06]
cpers [Links to file reference]
Line 28: Line 28:
  
  
 +==== Links to file reference ====
 +
 +^Parameter/​Data ^File ^
 +|//rivlen, loc_rivlen, slc_nn//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]]|
 +|special class code 1,2,11 and 12|[[start:​hype_file_reference:​geoclass.txt|GeoClass.txt]]|
 +|//​lake_depth//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]] or [[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|//gldepo, olldepth, gldepi, illdepth//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 +|//w0ref, wamp//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|//​deeplake,​ fastlake//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 ==== Links to relevant modules in the code ==== ==== Links to relevant modules in the code ====
  
Line 51: Line 60:
 === Evaporation === === Evaporation ===
  
-If the river has an area (is a class), it evaporates and a new concentration is calculated. Normally the river area is constant over time, but with parameters ​can a reduction of riverarea be simulated for low volume/​flow. The reduced river area is also used for heat exchange calculations.+If the river has an area (is a class), it evaporates and a new concentration is calculated. 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}{ ​
Line 60: Line 69:
     }}{} </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//).+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).
  
 === 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 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//​).+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//​).
  
 <m> transtime = rivlen/​{rivvel*8.64*10^4} </m> <m> transtime = rivlen/​{rivvel*8.64*10^4} </m>
Line 72: Line 81:
 <m> ttpart = transtime - REAL(ttday) </m> <m> ttpart = transtime - REAL(ttday) </m>
  
-The inflow of the river is stored in two arrays (//riverq// and //riverc//) until it is time for it to flow out of the river stretch. The outflow is weighted by using the parts of the day that are during the time step.+The inflow of the river is stored in two arrays (//riverq// and //riverc//) until it is time for it to flow out of the river stretch. The outflow is weighted by using the parts of the time step (//​ttpart//​) ​that are to flow out during the time step.
  
   transq = (1-ttpart)*riverq(ttday) + ttpart*riverq(ttday+1)   transq = (1-ttpart)*riverq(ttday) + ttpart*riverq(ttday+1)
Line 82: Line 91:
   ENDIF   ENDIF
  
-After the calculation of outflow the values in the arrays are shifted forward one day+After the calculation of outflow the values in the arrays are shifted forward one time step
  
 === Delay and attenuation === === Delay and attenuation ===
Line 179: Line 188:
 ==== Local river ==== ==== 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. Of the resulting flow from the stream a constant percentage goes to the local lake, 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 inputRunoff 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. ​
  
 ==== 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 ​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.+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.
  
 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.
Line 192: Line 201:
 === Inflow from upstream subbasins === === 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. ​+In input files it is given to which subbasin(s) the 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. ​ 
 + 
 + 
 +==== Links to file reference ==== 
 + 
 +^Section ^Symbol ^Parameter/​Data ^File ^ 
 +|Common rivers processes|//​rivlen//​|//​rivlen,​ loc_rivlen//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]]| 
 +|:::​|//​fraxe,​ fraxm, rivvel, damp//​|//​fraxe,​ fraxm, rivvel, damp//​|[[start:​hype_file_reference:​par.txt|par.txt]]| 
 +|:::​|//​dead//​|//​deadm,​ deadl//​|:::​| 
 +|Local river| |//​icatch//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]]| 
 +|:::| |//gicatch, illicatch//​|[[start:​hype_file_reference:​par.txt|par.txt]]| 
 +|Main river| |//​maindown//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]]| 
 +|:::| |//​branchid//​|[[start:​hype_file_reference:​branchdata.txt|BranchData.txt]]|
  
 ==== Links to relevant modules in the code ==== ==== Links to relevant modules in the code ====
Line 232: Line 253:
 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 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. The percentage is determined by the percentage of the subbasin area that drain to the lake. This percentage can be given as a fraction in GeoData.txt ​(//​icatch//​) ​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 loacal ​lake. The flow from the local river is added to the lake. The lake water is assumed completely mixed if //deeplake = 0//. +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 drain 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 if //deeplake = 0//. 
  
 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.
Line 274: Line 295:
 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: 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:
  
-<​m> ​ wmin = w0 – regvol * 1000000 / area </m>+<​m> ​ wmin = w0 regvol * 1000000 / area </m>
  
 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). 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).
Line 336: Line 357:
 == 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. This is done with the input variable //qamp//. If you want a different seasonal phase set //qpha// to another value (default = 102).+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,<​1) for each dam
  
 <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 lake. If the snow fall fraction is above 0.35, a //qamp// of 0.71 is used.
  
 ==== Outlet lake with two outlets ==== ==== Outlet lake with two outlets ====
Line 432: Line 453:
  
 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 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.
 +
 +
 +==== Links to file reference ====
 +
 +^Section ^Symbol ^Parameter/​Data ^File ^
 +|Common lake processes| |//​deeplake//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 +|Local lake (ilake)| |//gldepi, illdepth, gratk, gratp, grata, ilratk, ilratp//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 +|:::​|//​icatch//​|//​icatch//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]]|
 +|:::|::: |or //gicatch, illicatch//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 +|Simple outlet lake or dam (olake)|//​lake<​sub>​depth</​sub>//​|//​lake_depth//​|[[start:​hype_file_reference:​geodata.txt|GeoData.txt]] or [[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|:::​|:::​|//​gldepo,​ olldepth//​|[[start:​hype_file_reference:​par.txt|par.txt]]|
 +|:::| |//ratcorr, olratk, olratp, kthr, klow, krel//|:::|
 +|:::​|//​wmin//​|calculated from //​regvol//​|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]] or [[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|:::| |//rate, exp, qamp, qpha//|:::|
 +|:::​|//​qprod//​|//​qprod1,​ qprod2, datum1, datum2//​|:::​|
 +|:::| |//​limqprod//​|[[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]]|
 +|:::| |//purpose, snowfrac//​|[[start:​hype_file_reference:​damdata.txt|DamData.txt]]|
 +|:::​|//​Qinf//​|//​qinfjan,​ qinffeb, .., qinfdec//​|:::​|
 +|Outlet lake with two outlets| |//​ldtype//​=5 or 6|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]|
 +|:::| |//w0ref, maxQprod, minflow, obsflow//​|:::​|
 +|Outlet lake (olake) as a lake basin| |//​ldtype//​=2,​ 3 or 4|[[start:​hype_file_reference:​lakedata.txt|LakeData.txt]]|
 +|:::​|//​lakearea//​|//​area//​|:::​|
  
 ==== Links to relevant modules in the code ==== ==== Links to relevant modules in the code ====
Line 523: Line 567:
 ===== Bifurcations ===== ===== 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 [[start:​hype_file_reference:​geodata.txt|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 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 prescibed. 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 flow division into two channels by BranchData.txt is described by four parameters; //​mainpart//,​ //​maxQ<​sub>​main</​sub>//,​ //​minQ<​sub>​main</​sub>//​ and //​maxQ<​sub>​branch</​sub>//,​ which is set in [[start:​hype_file_reference:​branchdata.txt|BranchData.txt]]. Zero values of the parameters mean they are not used. The main flow (//​mainflow//​) is calculated from the totalflow (//q//) as: +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. ​
  
-<m> 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}}}{} </m>+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.  
 + 
 +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:  
 + 
 +<m> 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}}}{} </m>
  
  
Line 543: Line 591:
 | Figure 6: Branch 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.|
  
 +
 +
 +==== Links to file reference ====
 +
 +^Symbol ^Parameter/​Data ^File ^
 +|//​branchid,​ Qbranch, mainpart//​|//​branchid,​ Qbranch, mainpart//​|[[start:​hype_file_reference:​branchdata.txt|BranchData.txt]]|
 +|//​maxQ<​sub>​main</​sub>,​ minQ<​sub>​main</​sub>,​ maxQ<​sub>​branch</​sub>//​|//​maxQmain,​ minQmain, maxQbranch//​|:::​|
  
 ==== Links to relevant modules in the code ==== ==== Links to relevant modules in the code ====
start/hype_model_description/hype_routing.txt · Last modified: 2024/01/25 11:37 (external edit)