modules_Netroute_D (1/15/12)

CRHM Borland

Netroute_D

This module defined in ClassNetroute_D, handles the routing of surface runoff, subsurface runoff and HRU routing using the lag and route method described by Clark(1945). Outflow from a HRU is calculated by lagging its inflow by the travel time through the HRU, then routing it through an amount of linear storage defined by the storage constant, K. The outflow from a HRU can be diverted to the inflow of other HRUs and to the basin outlet. The parameter ‘distrib_Route’ determines  the outflow of an HRU to the other HRUs. The parameter ‘distrib_Basin’ determines  the amount of outflow of an HRU to the the basin outflow. 

The sum of runoff and snowmelt runoff may be delayed using independent Clark routing objects before being handled as input to the main HRU Clark object.

Similarly the subsurface runoff may also be delayed using an independent Clark object before being handled as input to the main HRU Clark routing object.

The delayed runoff and subsurface runoff are added and applied to the common HRU Clark routing object.

The output flow of an HRU may be diverted to another HRU by using the ‘distrib_Route’ parameter.  This flow is used to top up the depression storage (Sd in the Soil module) and the soil moisture  recharge layer (soil_rechr in the Soil module) of the HRUs during the current time step. Any surplus is returned to the soil module by the put variable  redirected_residual and is added to the soil_runoff variable during the next time step. The parameters soil_rechr_ByPass and Sd_ByPass may be used to prevent replenishing the recharge and depressional storage.

The groundwater flow from an HRU may be diverted to another HRU by using the 'gwwhereto' parameter. The gw flow is added to the input flow of the particular HRU after the recharge layer (soil_rechr in the Soil module) and the HRU free depressional storage (Sd in the Soil module) has been replenished. The parameters soil_rechr_ByPass and Sd_ByPass may be used to prevent replenishing the recharge and depressional storage.

Observations

  • none

Variables

  • inflow (mm*km^2/int) - sum of the optional inflow from other HRUs and delayed surface and subsurface runoff from this HRU.
  • cuminflow (mm*km^2) - HRU cumulative inflow.
  • outflow (mm*km^2/int) - HRU outflow after Clark(Kstorage, Lag) delay.
  • cumoutflow (mm*km^2) - HRU cumulative outflow.
  • cum_to_Sd (mm) - cumulative flow from other HRUs to the depression storage of this HRU.
  • cum_to_rechr (mm) - cumulative flow from other HRUs to the soil_rechar of this HRU.
  • ssrinflow (mm*km^2/int) - subsurface runoff (ssr) to this HRU.
  • ssrcuminflow (mm*km^2) - cumulative ssrinflow.
  • ssroutflow (mm*km^2/int) - ssr outflow after Clark(ssrKstorage, ssrLag) delay.
  • ssrcumoutflow (mm*km^2) - cumulative ssr outflow.
  • runinflow (mm*km^2/int) - sum of snowmelt runoff and runoff to this HRU.
  • runcuminflow (mm*km^2) - cumulative runinflow.
  • runoutflow (mm*km^2/int) - runoff outflow after Clark(runKstorage, runLag) delay.
  • runcumoutflow (mm*km^2) - cumulative runoutflow.
  • gwinflow (mm*km^2) - gw inflow.
  • gwcuminflow (mm*km^2) - cumulative gwinflow.
  • gwoutflow (mm*km^2/int) - gw outflow after Clark(gwKstorage, gwLag) delay.
  • gwcumoutflow (mm*km^2) - cumulative gw outflow.
  • gwoutflow_diverted (mm*km^2/int) - gw outflow diverted to other HRU.
  • gwcumoutflow_diverted (mm*km^2/int) - cumulative gw outflow diverted to other HRU.
  • cumscaling_boost (mm*km^2) - cumulative amout inflow boosted.
  • basinflow (m^3/int) - average outflow rate of surface and subsurface runoff from the basin.
  • basinflow_s (m^3/s) - average outflow rate of surface and subsurface runoff from the basin.
  • cumbasinflow (m^3) - cumulative basinflow.
  • basingw (m^3/int) - average ouflow rate of groundwater from the basin.
  • basingw_s (m^3/s) - average ouflow rate of groundwater from the basin.
  • cumbasingw (m3) - cumulative basingw.

 

Parameters

  • basin_area (km^2) - basin area.
  • hru area (km^2) - HRU area.
  • Kstorage (d) - storage constant for HRU.
  • Lag (h) - Lag for HRU.
  • ssrKstorage (d) - storage constant for subsurface runoff to HRU routing.
  • ssrLag (h) - Lag for subsurface runoff to HRU routing.
  • runKstorage (d) - storage constant runoff to HRU routing.
  • runLag (h) - Lag for runoff to HRU routing.
  • distrib_Route () - route HRU flow array. None zero values indicate diversion from this HRU to another HRU.
  • distrib_Basin () - HRU basin flow array. None zero values indicate diversion from this HRU to the basin flow.
  • gwwhereto () - 0 - basin gw (basingw), >0 other HRU input. <0 other -HRU gw input, or (< -HRUmax or > +HRUmax) - basin outflow (basinflow),
  • Sdmax (mm) - maximum depression storage.
  • soil_rechr_max (mm) - maximum depression storage.
  • Sd_ByPass () - 0 - normal, 1 - Bypass Pond/Depressional storage (i.e. Sd).
  • soil_rechr_ByPass () - 0 - normal, 1 - Bypass recharge layer (i.e. soil_rechr).
  • scaling_factor () - multiplies the inflow to Muskingum by this scaling factor. Experimental.

 

Variable Inputs

  • soil_ssr (*) (mm/int) - from module Soil etc. Programmed as an interval or daily value.
  • soil_runoff (*) (mm/int) - from module Soil etc. Programmed as an interval or daily value.
  • soil_gw_D (*) (mm/d) - from module Soil etc. Programmed as a daily value.
  • Sd (*) (mm) - from module Soil etc. Programmed as a state  put value.
  • soil_rechr (*) (mm) - from module Soil etc. Programmed as a state  put value.
  • soil_moist (*) (mm) - from module Soil etc. Programmed as a state  put value.
  • redirected_residual (*) (mm*km^2/int) - to module Soil etc. Programmed as a state  put value.

 

Notes.

    The distrib_Route parameter if positive is used as is.   However,  if negative it is multiplied by the HRU area and made positive before being used.  The last drainage HRU can only flow to the basin outlet. For the last drainage HRU the distrib_Route values must be zero..

    The parameter distrib_Basin must always be zero or greater.  If the last drainage HRU has distrib_Basin set to zero it is forced to one.

    The redistribution of water between HRU's is handled by Netroute_D.   The interval outflow from an HRU may be directed to another HRU or designated as basin flow using the distrib_Basin and  distrib_Route parameters.  When directed to another HRU, any flow is first used to top up the soil  recharge layer (soil_rechr), if soil_rechr_ByPass is not set, then to top the Depression or Pond storage (Sd) if Sd_ByPass is not set and finally any excess is directed to the designated HRU's inflows. The absolute value of the parameter values determines the contribution to each destination.  E.g, if the outflow of HRU 1 is Outflow1, then the diversion to HRU 2 would be N2*Outflow1/(B1 +  N1 + N2 + N3 + N4 ...Nn),  where B1 is the amount of HRU 1's output to basin flow and N1 to Nn the contribution of HRU1 to the other HRUs. Normally. Sinnce an HRU cannot recirculate its output to itself, in this example N1 would be zero.