diff --git a/src/lisflood/Lisflood_dynamic.py b/src/lisflood/Lisflood_dynamic.py index e5ffe47d..f12c64fb 100644 --- a/src/lisflood/Lisflood_dynamic.py +++ b/src/lisflood/Lisflood_dynamic.py @@ -209,7 +209,6 @@ def splitlanduse(array1, array2=None, array3=None): # # Total channel storage [m3] = Volume in main channel (ChanM3Kin) + volume above bankfull (Chan2M3Kin - Chan2M3Start) # # at t+dt - self.TotalCrossSectionArea = self.ChanM3 * self.InvChanLength # Total river channel cross-section area at t+dt @@ -240,7 +239,6 @@ def splitlanduse(array1, array2=None, array3=None): #self.DischargeM3Out += np.where(self.AtLastPointC ,self.ChanQ * self.DtSec,0) self.DischargeM3Out += np.where(self.AtLastPointC, self.ChanQAvg * self.DtSec, 0) # Cumulative outflow out of map - # cmcheck - we should use ChanQAvg here not ChanQ # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # Calculate water level diff --git a/src/lisflood/Lisflood_initial.py b/src/lisflood/Lisflood_initial.py index 346c1dff..e77b418b 100644 --- a/src/lisflood/Lisflood_initial.py +++ b/src/lisflood/Lisflood_initial.py @@ -49,6 +49,7 @@ from .hydrological_modules.surface_routing import surface_routing from .hydrological_modules.reservoir import Reservoir from .hydrological_modules.lakes import lakes +from .hydrological_modules.mctconfluence import mctconfluence from .hydrological_modules.polder import polder from .hydrological_modules.waterabstraction import waterabstraction from .hydrological_modules.indicatorcalc import indicatorcalc @@ -138,6 +139,7 @@ def __init__(self): self.surface_routing_module = surface_routing(self) self.reservoir_module = Reservoir(self) # get_reservoir(option['reservoirHanazaki']) self.lakes_module = lakes(self) + self.mctconfluence_module = mctconfluence(self) self.polder_module = polder(self) self.waterabstraction_module = waterabstraction(self) self.indicatorcalc_module = indicatorcalc(self) @@ -189,10 +191,12 @@ def __init__(self): self.snow_module.initial() self.frost_module.initial() + self.leafarea_module.initial() - self.soilloop_module.initial() + self.soilloop_module.initial() self.soil_module.initial() + self.routing_module.initial() self.groundwater_module.initial() @@ -201,6 +205,8 @@ def __init__(self): self.inflow_module.initial() self.surface_routing_module.initial() + # At this point LddChan and LddKinematic do not have any structure reservoirs/lakes MCT confluence + self.reservoir_module.initial() self.lakes_module.initial() self.polder_module.initial() @@ -209,17 +215,28 @@ def __init__(self): self.structures_module.initial() # Structures such as reservoirs and lakes are modelled by interrupting the channel flow paths + # At this point LddKinematic and LddChan have pits upstream of (structures) reservoirs and lakes + + if option.get('MCTRoutingInterface'): + self.mctconfluence_module.initial() + # initialising MCT confluence points and adding MCT confluence sinks to the LDD # ---------------------------------------------------------------------- # ---------------------------------------------------------------------- self.routing_module.initialSecond() # CHANNEL INITIAL SPLIT UP IN SECOND CHANNEL + self.surface_routing_module.initialSecond() + # MCT confluence must be in the LddKinematic at this point + self.routing_module.initialKinematicWave() + if option.get('MCTRouting'): self.routing_module.initialMCT() # initialising Muskingum-Cunge-Todini routing for channel + if option.get('MCTRoutingInterface'): + self.mctconfluence_module.dynamic_init() self.evapowater_module.initial() self.riceirrigation_module.initial() diff --git a/src/lisflood/global_modules/add1.py b/src/lisflood/global_modules/add1.py index 76237671..97245f13 100755 --- a/src/lisflood/global_modules/add1.py +++ b/src/lisflood/global_modules/add1.py @@ -183,7 +183,7 @@ def loadsetclone(name): # settings x is first # setclone row col cellsize xupleft yupleft try: - setclone(int(coord[1]), int(coord[0]), float(coord[2]), float(coord[3]), float(coord[4])) # CM: pcraster + setclone(int(coord[1]), int(coord[0]), float(coord[2]), float(coord[3]), float(coord[4])) # pcraster except: rem = "["+str(coord[0])+" "+ str(coord[1])+" "+ str(coord[2])+" "+ str(coord[3])+" "+str(coord[4])+"]" msg = "Maskmap: " + rem + \ @@ -357,7 +357,7 @@ def loadmap_base(name, pcr=False, lddflag=False, timestampflag='exact', averagey :param name: name of key in Settings.xml input file containing path and name of the map file (as string) :param pcr: flag for output maps in pcraster format - :param lddflag: flag for local drain direction map (CM??) + :param lddflag: flag for local drain direction map :param timestampflag: look for exact time stamp in netcdf file ('exact') or for the closest (left) time stamp available ('closest') :param averageyearflag: if True, use "average year" netcdf file over the entire model simulation period :param force_load_with_nans: if True, loads the map without checking for nan values inside area Map. @@ -709,11 +709,11 @@ def readnetcdf(name, time, timestampflag='exact', averageyearflag=False): t_steps = nf1.variables['time'][:] # get values for timesteps ([ 0., 24., 48., 72., 96.]) t_unit = nf1.variables['time'].units # get unit (u'hours since 2015-01-01 06:00:00') t_cal = get_calendar_type(nf1) - # CM: get year from time unit in case average year is used + # get year from time unit in case average year is used if averageyearflag: - # CM: get date of the first step in netCDF file containing average year values + # get date of the first step in netCDF file containing average year values first_date = num2date(t_steps[0], t_unit, t_cal) - # CM: get year of the first step in netCDF file containing average year values + # get year of the first step in netCDF file containing average year values t_ref_year = first_date.year settings = LisSettings.instance() binding = settings.binding @@ -733,7 +733,7 @@ def readnetcdf(name, time, timestampflag='exact', averageyearflag=False): try: currentDate = currentDate.replace(year=t_ref_year) except: - # CM: if simulation year is leap and average year is not, switch 29/2 with 28/2 + # if simulation year is leap and average year is not, switch 29/2 with 28/2 currentDate = currentDate.replace(day=28) currentDate = currentDate.replace(year=t_ref_year) @@ -747,9 +747,9 @@ def readnetcdf(name, time, timestampflag='exact', averageyearflag=False): msg = "Date " + str(currentDate) + " not stored in " + filename raise LisfloodError(msg) elif (timestampflag == 'closest'): - # CM: get the closest value + # get the closest value current_ncdf_step_new = takeClosest(t_steps, current_ncdf_step) - # CM: set current_ncdf_step to the closest available time step in netCDF file + # set current_ncdf_step to the closest available time step in netCDF file current_ncdf_step = current_ncdf_step_new # get index of timestep in netCDF file corresponding to current simulation date diff --git a/src/lisflood/global_modules/checkers.py b/src/lisflood/global_modules/checkers.py index 33bc1c24..058e667b 100755 --- a/src/lisflood/global_modules/checkers.py +++ b/src/lisflood/global_modules/checkers.py @@ -26,7 +26,7 @@ from ..hydrological_modules import (surface_routing, evapowater, snow, routing, leafarea, inflow, waterlevel, waterbalance, wateruse, waterabstraction, lakes, riceirrigation, indicatorcalc, landusechange, frost, groundwater, miscInitial, soilloop, soil, - reservoir, transmission) + reservoir, transmission, mctconfluence) class ModulesInputs: diff --git a/src/lisflood/global_modules/default_options.py b/src/lisflood/global_modules/default_options.py index 94181f80..9b1fc742 100644 --- a/src/lisflood/global_modules/default_options.py +++ b/src/lisflood/global_modules/default_options.py @@ -10,6 +10,7 @@ 'MonteCarlo': False, 'SplitRouting': False, 'MCTRouting': False, + 'MCTRoutingInterface': False, 'TemperatureInKelvin': False, 'TransLoss': False, 'TransientLandUseChange': False, @@ -1288,6 +1289,7 @@ 'repwateruseGauges': False, 'repwateruseSites': False, 'riceIrrigation': False, + 'simulateCalibrationPoints': False, 'simulateLakes': False, 'simulatePF': False, 'simulatePolders': False, diff --git a/src/lisflood/global_modules/netcdf.py b/src/lisflood/global_modules/netcdf.py index bb7d7cdb..6e25fe24 100644 --- a/src/lisflood/global_modules/netcdf.py +++ b/src/lisflood/global_modules/netcdf.py @@ -530,8 +530,8 @@ def write_netcdf_header(settings, # time coordinates and associated values if frequency is not None: # output file with "time" dimension n_steps = len(rep_steps) - #Get initial and final dates for data to be stored in nerCDF file - # CM: Create time stamps for each step stored in netCDF file + # Get initial and final dates for data to be stored in nerCDF file + # Create time stamps for each step stored in netCDF file all_dates = np.array([start_date + datetime.timedelta(days=(int(d)-1)*DtDay) for d in rep_steps]) all_steps = np.array(rep_steps) if frequency == "all": @@ -556,16 +556,16 @@ def write_netcdf_header(settings, time = nf1.createVariable('time', float, ('time')) time.standard_name = 'time' time.calendar = binding["calendar_type"] - # CM: select the time unit according to model time step + # select the time unit according to model time step DtDay_in_sec = DtDay * 86400 if DtDay_in_sec >= 86400: # Daily model time steps or larger time.units = 'days since %s' % start_date.strftime("%Y-%m-%d %H:%M:%S.0") elif DtDay_in_sec >= 3600 and DtDay_in_sec < 86400: - # CM: hours to days model time steps + # hours to days model time steps time.units = 'hours since %s' % start_date.strftime("%Y-%m-%d %H:%M:%S.0") elif DtDay_in_sec >= 60 and DtDay_in_sec <3600: - # CM: minutes to hours model time step + # minutes to hours model time step time.units = 'minutes since %s' % start_date.strftime("%Y-%m-%d %H:%M:%S.0") nf1.variables["time"][:] = date2num(time_stamps, time.units, time.calendar) diff --git a/src/lisflood/global_modules/settings.py b/src/lisflood/global_modules/settings.py index d60a93bd..9cfd2df0 100755 --- a/src/lisflood/global_modules/settings.py +++ b/src/lisflood/global_modules/settings.py @@ -507,7 +507,7 @@ def _out_dir(user_settings): else: pathout = pathout.replace(pathout[a1:a2 + 1], s2) - # CM: output folder + # output folder return pathout @staticmethod @@ -790,13 +790,13 @@ def inttodate(int_in, ref_date, binding=None): settings = LisSettings.instance() binding = settings.binding - # CM: get model time step as float form 'DtSec' in Settings.xml file + # get model time step as float form 'DtSec' in Settings.xml file DtSec = float(binding['DtSec']) - # CM: compute fraction of day corresponding to model time step as float + # compute fraction of day corresponding to model time step as float DtDay = DtSec / 86400. # Time step, expressed as fraction of day (same as self.var.DtSec and self.var.DtDay) - # CM: compute date corresponding to intIn steps from reference date refDate + # compute date corresponding to intIn steps from reference date refDate stepDate = ref_date + datetime.timedelta(days=(int_in * DtDay)) return stepDate diff --git a/src/lisflood/global_modules/stateVar.py b/src/lisflood/global_modules/stateVar.py index ce17e659..704c6955 100755 --- a/src/lisflood/global_modules/stateVar.py +++ b/src/lisflood/global_modules/stateVar.py @@ -20,7 +20,7 @@ from .add1 import * -# CM: new-style class in Python 2.x +# new-style class in Python 2.x class stateVar(object): """ diff --git a/src/lisflood/hydrological_modules/inflow.py b/src/lisflood/hydrological_modules/inflow.py index ebbe712d..e24cf55e 100755 --- a/src/lisflood/hydrological_modules/inflow.py +++ b/src/lisflood/hydrological_modules/inflow.py @@ -54,6 +54,7 @@ def initial(self): # ************************************************************ settings = LisSettings.instance() option = settings.options + if option['inflow']: self.var.InflowPoints = loadmap('InflowPoints') #1D array size is pixels belonging to basin mask @@ -110,7 +111,7 @@ def dynamic_init(self): settings = LisSettings.instance() option = settings.options if option['inflow']: - self.var.QDelta = (self.var.QInM3 - self.var.QInM3Old) * self.var.InvNoRoutSteps + self.var.QDeltaM3 = (self.var.QInM3 - self.var.QInM3Old) * self.var.InvNoRoutSteps # difference between old and new inlet flow per sub step # in order to calculate the amount of inlet flow in the routing loop @@ -146,6 +147,6 @@ def dynamic_inloop(self, NoRoutingExecuted): if option['inflow']: - self.var.QInDt = (self.var.QInM3Old + (NoRoutingExecuted + 1) * self.var.QDelta) * self.var.InvNoRoutSteps + self.var.QInM3Dt = (self.var.QInM3Old + (NoRoutingExecuted + 1) * self.var.QDeltaM3) * self.var.InvNoRoutSteps # flow from inlets per sub step - self.var.QinADDEDM3 += self.var.QInDt + self.var.QinADDEDM3 += self.var.QInM3Dt diff --git a/src/lisflood/hydrological_modules/kinematic_wave_parallel.py b/src/lisflood/hydrological_modules/kinematic_wave_parallel.py index 1f4d5fd2..dbb50b02 100755 --- a/src/lisflood/hydrological_modules/kinematic_wave_parallel.py +++ b/src/lisflood/hydrological_modules/kinematic_wave_parallel.py @@ -74,6 +74,7 @@ def streamLookups(flow_dir, land_mask): ''' Compute the downstream lookup vector for a D8 water flow channel network, i.e. the adjecency list of the directed graph describing flow direction from each pixel. + Each land_mask pixel is assigned a unique id from 0 to numpix-1, numbered by row Arguments: flow_dir (numpy.ndarray): LISFLOOD flow matrix values (FLOW_CODE). land_mask (numpy.ndarray): land mask on coordinate mesh. @@ -82,12 +83,20 @@ def streamLookups(flow_dir, land_mask): upstream lookup (numpy.ndarray): each row gives the immediately upstream pixels (-1 = fill value); size = num_pixels, max_ups_pixs <= 8 ''' flow_dir[~land_mask] = 8 # exceeds number of rows of IX_ADDS + # assign 8 to all pixels not belonging to land_mask num_pixs = land_mask.sum() + # count number of pixels in land_mask + # Create 2D array of indices of land pixels (each index is unique) # The IDs are numbered from 0 to num_pixs-1 land_points = -np.ones(land_mask.shape, int) land_points[land_mask] = np.arange(num_pixs, dtype=int) + # every land pixel has now a unique id (pixel id) + downstream_lookup, upstream_lookup = kwpt.upDownLookups(flow_dir, np.ascontiguousarray(land_mask).astype(np.uint8), land_points, num_pixs, IX_ADDS) + # downstream_lookup[i] = index of the cell receiving flow from node i + # upstream_lookup[i, :] = indices of all cells draining into node i + max_num_ups_pixs = max(1, np.any(upstream_lookup != -1, 0).sum()) # maximum number of upstreams pixels return downstream_lookup, np.ascontiguousarray(upstream_lookup[:,:max_num_ups_pixs]).astype(int) diff --git a/src/lisflood/hydrological_modules/mct.py b/src/lisflood/hydrological_modules/mct.py index 99f0ad22..c45cd38f 100644 --- a/src/lisflood/hydrological_modules/mct.py +++ b/src/lisflood/hydrological_modules/mct.py @@ -20,11 +20,13 @@ def __init__( dt, # computation time step for routing [s] river_router, # class mapping_mct, # MCT pixels mapping + CalibPointsIds, # calibration points pixels ids ): # Process flow direction matrix: downstream and upstream lookups, and routing orders flow_dir = decodeFlowMatrix(rebuildFlowMatrix(compressed_encoded_ldd, land_mask)) self.downstream_lookup, self.upstream_lookup = streamLookups(flow_dir, land_mask) + # Inside streamLookups each land_mask pixel is assigned a unique id from 0 to numpix-1, numbered by row self.num_upstream_pixels = (self.upstream_lookup != -1).sum(1).astype(int) # astype for cython import in windows (to avoid 'long long' buffer dtype mismatch) # Routing order: decompose domain into batches; within each batch, pixels can be routed in parallel self._setMCTRoutingOrders() @@ -37,6 +39,7 @@ def __init__( self.dt = dt self.river_router = river_router self.mapping_mct = mapping_mct + self.CalibPointsIds = CalibPointsIds def _setMCTRoutingOrders(self): @@ -103,6 +106,7 @@ def routing( PrevCm0, # Courant number in input: at time t; in output: at time t+dt PrevDm0, # Reynolds number in input: at time t; in output: at time t+dt ChanM3, # V11 as output + self.CalibPointsIds, # inflow points used by the calibration suite ) @@ -130,6 +134,7 @@ def mct_routing( PrevCm0, # Courant number in input: at time t; in output: at time t+dt PrevDm0, # Reynolds number in input: at time t; in output: at time t+dt ChanM3, # V11 as output + CalibPointsIds, # inflow points used by the calibration suite ): """This function implements Muskingum-Cunge-Todini routing method MCT routing is calculated on MCT pixels only but gets inflow from both Kinematic/Split and MCT upstream pixels. @@ -160,6 +165,7 @@ def mct_routing( mctpix = mct_pixels_ordered[index] # Find the corresponding pixel id in the full LDD kinpix = mapping_mct[mctpix] + # Find id of upstream contributing pixels (from full LDD) upstream_pixels = upstream_lookup[kinpix] @@ -167,11 +173,24 @@ def mct_routing( q00 = 0.0 q0m = 0.0 q01 = 0.0 + + ql = SideflowChanMCT[kinpix] # Sideflow during step dt + for ups_ix in range(num_upstream_pixels[kinpix]): ups_pix = upstream_pixels[ups_ix] # upstream pixel id - q00 += ChanQ_0[ups_pix] # Inflow (x) to the pixel at previous step t (instant) - q0m += ChanQAvgDt[ups_pix] # Average inflow (x) to the pixel at previous step t (average) - q01 += ChanQ[ups_pix] # Inflow (x) at current step t+dt (instant) + + ##################################################################################################### + # Check if there is a calibration point within the contributing pixels + if np.any(CalibPointsIds == ups_pix): + # this upstream pixel is a calibration point - add to sideflow + ql += ChanQAvgDt[ups_pix] + # Sideflow during step dt including contribution from calibration pixel + else: + # not a calibration point - go as usual + q00 += ChanQ_0[ups_pix] # Inflow (x) to the pixel at previous step t (instant) + q0m += ChanQAvgDt[ups_pix] # Average inflow (x) to the pixel at previous step t (average) + q01 += ChanQ[ups_pix] # Inflow (x) at current step t+dt (instant) + ##################################################################################################### # get outflow from the pixel at previous step t q10 = ChanQ_0[kinpix] # Outflow (x+dx) from the pixel at previous step t (instant) @@ -181,7 +200,6 @@ def mct_routing( Cm0 = PrevCm0[kinpix] # Courant number at the end of previous step t Dm0 = PrevDm0[kinpix] # Reynolds number at the end of previous step t - ql = SideflowChanMCT[kinpix] # Sideflow during step dt # static data xpix = ChanLength[kinpix] # Channel length @@ -243,8 +261,8 @@ def MCTRouting_single( # check for negative and zero discharge values # zero outflow is not allowed - if q11 < 0: # cmcheck <=0 #tpk - q11 = 0 #tpk + if q11 < 0: + q11 = 0 # calc reference discharge at time t # qm0 = (I(t)+O(t))/2 @@ -255,14 +273,14 @@ def MCTRouting_single( # reference I discharge at x=0 qmx0 = (q00 + q01) / 2.0 - if qmx0 <= eps : # cmcheck ==0 #tpk - qmx0 = eps #tpk + if qmx0 <= eps : + qmx0 = eps hmx0 = hoq(qmx0, s0, Balv, ANalv, Nalv) # reference O discharge at x=1 qmx1 = (q10 + q11) / 2.0 - if qmx1 <= eps: # cmcheck ==0 #tpk - qmx1 = eps #tpk + if qmx1 <= eps: + qmx1 = eps hmx1 = hoq(qmx1, s0, Balv, ANalv, Nalv) # Calc riverbed slope correction factor @@ -274,14 +292,13 @@ def MCTRouting_single( # Calc reference discharge time t+dt # Q(t+dt)=(I(t+dt)+O'(t+dt))/2 qm1 = (q01 + q11) / 2.0 - # cm - if qm1 <= eps : # cmcheck ==0 #tpk - qm1 = eps #tpk - # cm + if qm1 <= eps : + qm1 = eps + hm1 = hoq(qm1, s0, Balv, ANalv, Nalv) dummy, Ax1, Bx1, Px1, ck1 = qoh(hm1, s0, Balv, ANalv, Nalv) - if ck1 <= eps: #tpk - ck1 = eps #tpk + if ck1 <= eps: + ck1 = eps # Calc correcting factor Beta at time t+dt Beta1 = ck1 / (qm1 / Ax1) @@ -297,19 +314,18 @@ def MCTRouting_single( c3 = (1 - Cm0 + Dm0) / den * (Cm1 / Cm0) c4 = (2 * Cm1) / den - # cmcheck # Calc outflow q11 at time t+1 # Mass balance equation without lateral flow # q11 = c1 * q01 + c2 * q00 + c3 * q10 # Mass balance equation that takes into consideration the lateral flow q11 = c1 * q01 + c2 * q00 + c3 * q10 + c4 * ql - if q11 < 0: # cmcheck <=0 #tpk - q11 = 0 #tpk + if q11 < 0: + q11 = 0 #### end of for loop - # # cmcheck + # debug # calc_t = xpix / ck1 # if calc_t < dt: # print('xpix/ck1 < dt') @@ -327,17 +343,16 @@ def MCTRouting_single( V11 = (1 - Dm1) * dt / (2 * Cm1) * q01 + (1 + Dm1) * dt / (2 * Cm1) * q11 # V11 = k1 * (x1 * q01 + (1. - x1) * q11) # MUST be the same as above! - if V11 < 0 : #tpk - V11 = 0 #tpk + if V11 < 0 : + V11 = 0 - ### calc integration on the control volume (pixel) + # calc integration on the control volume (pixel) # calc average discharge outflow q1m for MCT channels during routing sub step dt # Calculate average outflow using water balance for MCT channel grid cell over sub-routing step q1mm = q0mm + ql + (V00 - V11) / dt - # cmcheck # q1m cannot be smaller than eps or it will cause instability - if q1mm < 0: # cmcheck <=0 + if q1mm < 0: q1mm = 0 ###if ql < 0: ql = 0 # prevent water abstraction or open water evaporation from drying out the channel and keep extracting water diff --git a/src/lisflood/hydrological_modules/mctconfluence.py b/src/lisflood/hydrological_modules/mctconfluence.py new file mode 100755 index 00000000..0d413a7e --- /dev/null +++ b/src/lisflood/hydrological_modules/mctconfluence.py @@ -0,0 +1,169 @@ +""" + +Copyright 2019 European Union + +Licensed under the EUPL, Version 1.2 or as soon they will be approved by the European Commission +subsequent versions of the EUPL (the "Licence"); + +You may not use this work except in compliance with the Licence. +You may obtain a copy of the Licence at: + +https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt + +Unless required by applicable law or agreed to in writing, +software distributed under the Licence is distributed on an "AS IS" basis, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the Licence for the specific language governing permissions and limitations under the Licence. + +""" + +from __future__ import print_function, absolute_import +from pcraster import Scalar, numpy2pcr, pcr2numpy,downstream, boolean,lddrepair,ifthenelse,lddmask +from nine import range +import numpy as np +from ..global_modules.settings import LisSettings, MaskInfo +from ..global_modules.add1 import loadmap, compressArray, decompress, makenumpy +from ..global_modules.errors import LisfloodWarning +from . import HydroModule + + +class mctconfluence(HydroModule): + """ + This module handles the initialization and dynamic simulation of the interface between Kinematic and MCT cells. + If MCT routing is enabled, when a Kinematic pixel flows into an MCT pixel, this module injects Kinematic channel + discharge to the MCT downstream grid cell as lateral flow. + + Attributes: + ----------- + var (object): An object containing all the variables used within the mctconfluence module. + + Methods: + -------- + initial(): Sets up the initial conditions and parameters for the simulation, + including confluence locations. + dynamic_inloop(NoRoutingExecuted: int): Performs dynamic calculations within the routing + loop to simulate the kinematic to MCT interface. + """ + + module_name = 'MCTConfluence' + + def __init__(self, mctconfluence_variable): + self.var = mctconfluence_variable + + def __init__(self, mctconfluence_variable): + """ + Initializes the MCT confluence module with a given variable object. + + Parameters: + ----------- + mctconfluence_variable: object + An object containing the variables needed for the MCT confluence simulation. + """ + + self.var = mctconfluence_variable + + def initial(self): + """ + Initiates the MCT confluence module by loading the necessary data and maps. + """ + + settings = LisSettings.instance() + option = settings.options + binding = settings.binding + maskinfo = MaskInfo.instance() + if option['MCTRouting'] and option['MCTRoutingInterface']: + + inArPcr = decompress(np.arange(maskinfo.info.mapC[0], dtype="int32")) # pcr + # Assign a number to each non-missing pixel as cell id, starting from 0 + inAr = compressArray(inArPcr) #np + + down = (compressArray(downstream(self.var.LddStructuresChan, inArPcr))).astype("int32") # np + # assign to each pixel the cell id of the pixel it is contributing to + # LddStructuresChan do not contain structures, LddStructuresKinematic is same as LddStructuresChan + + LddKinematic = lddmask(self.var.LddStructuresChan, self.var.IsChannelKinematicPcr) + # Mask of LddKinematic with only kinematic cells and no structures + # Sinks are added at the last Kin pixel before confluence with MCT pixels + + maskKinematic = (compressArray(LddKinematic) == 5) + + # find location of KIN pixels (only) in LddKin that are upstream of the confluence with an MCT pixel + maskKinematic[compressArray(self.var.AtLastPoint) == 1] = False + # remove sinks that are outlets + # this does NOT include sinks upstream of structures (lakes, reservoirs) and outlets + maskKinematicPcr = boolean(decompress(maskKinematic)) + + self.var.LddChan = ifthenelse(maskKinematicPcr, 5, self.var.LddChan) + self.var.LddKinematic = ifthenelse(maskKinematicPcr, 5, self.var.LddKinematic) + # Adding sinks to Ldd at the last KIN pixels upstream of the confluence with an MCT pixel to LddChan and LddKinematic + # This is similar to what is done in structures + # At this point LddChan and LddKinematic have sinks upstteam of structures and of a Kin-MCT confluence and outlets + + self.var.KinematicUpsOfMCTConfluence = np.where(maskKinematic, down, 0) + # find last KIN pixels upstream of the confluence with an MCT pixel and assign it the id of the downstream MCT pixel + + mctconfluence = maskinfo.in_zero() + mctconfluence[np.isin(inAr, self.var.KinematicUpsOfMCTConfluence[self.var.KinematicUpsOfMCTConfluence != 0])] = 1 + # for each element in KinematicUpsOfMCTConfluence (they are Kinematic cells), get the value of the downstream cell, + # then find the position ix of that same value in inAr (vector with numbering of all cells) this is the position of the MCT confluence cell, + # read the inAr value and put 1 in the corrisponding position in mctconfluence + # identify location of MCT pixels that receive a contribution from an upstream KIN pixel + + mctconfluence = np.where(self.var.IsStructureChan, 0, mctconfluence) + # remove the MCT cells with a structure (reservoir/lake) on them + + self.var.MCTConfluenceSitesC = mctconfluence + self.var.MCTConfluenceSitesCC = np.compress(mctconfluence > 0, mctconfluence) + self.var.MCTConfluenceIndex = np.nonzero(mctconfluence)[0] + + + def dynamic_init(self): + """ Initialization of the dynamic part of the MCT confluence module + init mct confluence before sub step routing + """ + settings = LisSettings.instance() + option = settings.options + maskinfo = MaskInfo.instance() + if option['MCTRouting'] and option['MCTRoutingInterface']: + lateralflow = np.bincount(self.var.KinematicUpsOfMCTConfluence, weights=self.var.ChanQAvgDt)[self.var.MCTConfluenceIndex] + # contribution to the MCT pixel from upstream Kinematic pixels + self.var.QInConfM3Old = maskinfo.in_zero() + np.put(self.var.QInConfM3Old, self.var.MCTConfluenceIndex, lateralflow * self.var.DtSec) + + + def dynamic_inloop(self, NoRoutingExecuted: int): + """ + Performs the dynamic simulation of Kin-MCT confluence within the routing loop. This method + injects upstream discharge to the downstream grid cell as lateral inflow. + + Parameters: + ----------- + NoRoutingExecuted: integer + The number of routing sub-steps that have been executed. This parameter is used to manage + the accumulation of inflow and outflow over the routing steps. + """ + + settings = LisSettings.instance() + option = settings.options + maskinfo = MaskInfo.instance() + + if option['MCTRouting'] and option['MCTRoutingInterface'] and not option['InitLisflood']: + + lateralflow = np.bincount(self.var.KinematicUpsOfMCTConfluence, weights=self.var.ChanQAvgDt)[self.var.MCTConfluenceIndex] #same as Qin + # contribution to the MCT pixel from upstream Kinematic pixels + + self.var.QInConfM3 = maskinfo.in_zero() + np.put(self.var.QInConfM3, self.var.MCTConfluenceIndex, lateralflow * self.var.DtSec) + self.var.QDeltaConfM3 = (self.var.QInConfM3 - self.var.QInConfM3Old) * self.var.InvNoRoutSteps + # difference between old and new lateral flow per sub step + # in order to calculate the amount of lateral flow in the routing loop + + self.var.QConfM3Dt = (self.var.QInConfM3Old + (NoRoutingExecuted + 1) * self.var.QDeltaConfM3) * self.var.InvNoRoutSteps + # output to the MCT confluence cell + + self.var.QInConfM3Old = self.var.QInConfM3.copy() + # save the lateral flow for next step + + + + diff --git a/src/lisflood/hydrological_modules/reservoir.py b/src/lisflood/hydrological_modules/reservoir.py index 26d0b72a..4d32e597 100755 --- a/src/lisflood/hydrological_modules/reservoir.py +++ b/src/lisflood/hydrological_modules/reservoir.py @@ -24,6 +24,7 @@ from pcraster.operations import ifthen, boolean, defined, lookupscalar import numpy as np +import pcraster from ..global_modules.settings import LisSettings, MaskInfo from ..global_modules.add1 import loadmap, compressArray, decompress, makenumpy @@ -52,7 +53,7 @@ class Reservoir(HydroModule): dynamic_inloop(NoRoutingExecuted: int): Performs dynamic calculations within the routing loop to simulate inflow, storage, and controlled outflow from the reservoirs. - Referenecs: + References: ----------- Hanazaki, R., Yamazaki, D., Yoshimura, K.: Development of a Reservoir Flood Control Scheme for Global Flood Models, Journal of Advances in Modeling Earth Systems, 14, @@ -126,6 +127,15 @@ def initial(self): # (following logic of 'old' code the inflow into these reservoirs is # always zero, so either change this or leave them out!) ReservoirSitePcr = ifthen((defined(ReservoirSitePcr) & boolean(decompress(self.var.IsChannel))), ReservoirSitePcr) + + # # PCRaster part + # # ----------------------- + # IsStructureReservoir = pcraster.boolean(ReservoirSitePcr) + # # additional structure map only for reservoirs to calculate water balance + # self.var.IsUpsOfStructureReservoir = pcraster.downstream(self.var.LddChan, pcraster.cover(IsStructureReservoir, 0)) + # # Get all pixels just upstream of reservoirs + # # ----------------------- + # RESERVOIR CHARACTERISTICS diff --git a/src/lisflood/hydrological_modules/routing.py b/src/lisflood/hydrological_modules/routing.py index feb2fc7d..797163b1 100644 --- a/src/lisflood/hydrological_modules/routing.py +++ b/src/lisflood/hydrological_modules/routing.py @@ -16,7 +16,7 @@ """ from __future__ import print_function, absolute_import -from pcraster import lddmask, accuflux, boolean, downstream, pit, path, lddrepair, ifthenelse, cover, nominal, uniqueid, \ +from pcraster import lddmask, accuflux, boolean, scalar, downstream, pit, path, lddrepair, ifthenelse, cover, nominal, uniqueid, \ catchment, upstream, pcr2numpy import warnings @@ -30,6 +30,7 @@ from .transmission import transmission from .kinematic_wave_parallel import kinematicWave, kwpt from .mct import MCTWave +from .mctconfluence import mctconfluence from ..global_modules.settings import LisSettings, MaskInfo from ..global_modules.errors import LisfloodWarning @@ -50,7 +51,8 @@ class routing(HydroModule): 'ChanBottomWMult', 'ChanDepthTMult', 'ChanSMult'], 'SplitRouting': ['CrossSection2AreaInitValue', 'PrevSideflowInitValue', 'CalChanMan2'], 'dynamicWave': ['ChannelsDynamic'], - 'MCTRouting': ['ChannelsMCT', 'ChanGradMaxMCT', 'PrevCmMCTInitValue', 'PrevDmMCTInitValue', 'CalChanMan3']} + 'MCTRouting': ['ChannelsMCT', 'ChanGradMaxMCT', 'PrevCmMCTInitValue', 'PrevDmMCTInitValue', 'CalChanMan3'], + 'simulateCalibrationPoints': ['CalibrationPoints']} module_name = 'Routing' def __init__(self, routing_variable): @@ -61,6 +63,7 @@ def __init__(self, routing_variable): self.polder_module = polder(self.var) self.inflow_module = inflow(self.var) self.transmission_module = transmission(self.var) + self.mctconfluence_module = mctconfluence(self.var) # -------------------------------------------------------------------------- # -------------------------------------------------------------------------- @@ -140,6 +143,7 @@ def initial(self): self.var.LddToChan = lddrepair(ifthenelse(self.var.IsChannelPcr, 5, self.var.Ldd)) #pcr self.var.LddToChanNp=compressArray(self.var.LddToChan) #np # Routing of runoff (incl. groundwater) to the river channel + # LDD for routing runoff (incl. groundwater) to the channel if option['dynamicWave']: pass @@ -174,6 +178,45 @@ def initial(self): self.var.LddKinematic = self.var.LddChan self.var.LddKinematicNp = compressArray(self.var.LddKinematic) # np + # At this point, LddChan and LddKinematic do not have sinks at reservoirs/lakes or MCT confluences + # LddMCT does not exist yet + + # ************************************************************ + # ***** MCT DRAINAGE NETWORK GEOMETRY - LDD ***************** + # ************************************************************ + + # This is done here to be able to add MCT confluence pixels to structures + if option['MCTRouting']: + + self.var.IsChannelMCTPcr = boolean(loadmap('ChannelsMCT', pcr=True)) # pcr + # load mask of MCT river grid cells + self.var.IsChannelMCT = np.bool8(compressArray(self.var.IsChannelMCTPcr)) # bool + + # even if MCT is active, it should be deactivated if there is no MCT cell in the domain + if self.var.IsChannelMCT.sum() == 0: + warnings.warn(LisfloodWarning('There are no MCT grid cell. MCT routing is deactivated')) + option['MCTRouting'] = False + option['MCTRoutingInterface'] = False + # rebuild lists of reported files with MCTRouting = False + settings.build_reportedmaps_dicts() + + if option['MCTRouting'] and not option['InitLisflood']: + + self.var.IsChannelMCTPcr = boolean(decompress(self.var.IsChannelMCT)) # pcr + # Identify channel pixels where Muskingum-Cunge-Todini is used + + self.var.mctmask = np.bool8(pcr2numpy(self.var.IsChannelMCTPcr,0)) + # Create a mask with cells using MCT + + self.var.IsChannelKinematicPcr = (self.var.IsChannelPcr == 1) & (self.var.IsChannelMCTPcr == 0) #pcr + self.var.IsChannelKinematic = np.bool8(compressArray(self.var.IsChannelKinematicPcr)) #np + # Identify channel pixels where Kinematic wave is used instead of MCT + + + # ************************************************************ + # ***** MCT DRAINAGE NETWORK GEOMETRY - LDD ***************** + # ************************************************************ + self.var.AtLastPoint = boolean(pit(self.var.Ldd)) #pcr # Assign True to each of the grid cells where there are outlet points # Function 'pit' assigns a unique number starting from 1 to pit cells (ldd=5) in the Ldd @@ -238,16 +281,21 @@ def initial(self): ChanDepthThreshold * (self.var.ChanUpperWidth + self.var.ChanBottomWidth) # Area (sq m) of bank full discharge cross-section [m2] (trapezoid area equation) - # cmcheck - TotalCrossSectionAreaHalfBankFull is not 1/2 TotalCrossSectionAreaBankFull it's trapezoid # ChanUpperWidthHalfBankFull = self.var.ChanBottomWidth + 2 * self.var.ChanSdXdY * 0.5 * ChanDepthThreshold # TotalCrossSectionAreaHalfBankFull = 0.5 * \ # 0.5 * ChanDepthThreshold * (ChanUpperWidthHalfBankFull + self.var.ChanBottomWidth) # Cross-sectional area at half bankfull [m2] + # TotalCrossSectionAreaHalfBankFull is not 1/2 TotalCrossSectionAreaBankFull it's trapezoid # This can be used to initialise channel flow (see below) BankFullPerc = loadmap('BankFullPerc') TotalCrossSectionAreaHalfBankFull = BankFullPerc * self.var.TotalCrossSectionAreaBankFull # set BankFullPerc to 0.5 for half bankfull + # Channel volume initialization for MCT cells + # TotalCrossSectionAreaHalfBankFull = np.where(self.var.IsChannelKinematic, TotalCrossSectionAreaHalfBankFull, 0.01 * self.var.TotalCrossSectionAreaBankFull) + # set initial volume in MCT cells to 1% of bankfull + # not used now but it could be used in the future + TotalCrossSectionAreaInitValue = loadmap('TotalCrossSectionAreaInitValue') self.var.TotalCrossSectionArea = np.where(TotalCrossSectionAreaInitValue == -9999, TotalCrossSectionAreaHalfBankFull, TotalCrossSectionAreaInitValue) # Total cross-sectional area [m2]: if initial value in binding equals -9999 the value at half bankfull is used, @@ -424,7 +472,6 @@ def initial(self): # Cumulative inflow volume from inflow hydrographs [m3] self.var.sumDis = maskinfo.in_zero() self.var.sumIn = maskinfo.in_zero() - # cmcheck - non so se sostituita da self.var.sumInWB self.var.sumInWB = maskinfo.in_zero() def initialSecond(self): @@ -448,7 +495,6 @@ def initialSecond(self): # Manning's roughtness coefficient n for second line of routing AlpTermChan2 = (ChanMan2 / (np.sqrt(self.var.ChanGrad))) ** self.var.Beta self.var.ChannelAlpha2 = (AlpTermChan2 * (self.var.ChanWettedPerimeterAlpha ** self.var.AlpPow)).astype(float) - #cmcheck -> using channel wetted perimeter of half bankfull ChanWettedPerimeterAlpha ? self.var.InvChannelAlpha2 = 1 / self.var.ChannelAlpha2 # calculating second Alpha for second (virtual) channel @@ -487,6 +533,14 @@ def initialSecond(self): self.var.ChanQKin = (self.var.ChanM3Kin * self.var.InvChanLength * self.var.InvChannelAlpha) ** (self.var.InvBeta) # (Real) outflow from main channel when second line of routing is active (= using riverbed Manning coeff 2) + def initialKinematicWave(self): + """ Initialization of the parallel kinematic wave router for Kinematic routing and SplitRouting: + main channel-only routing if self.var.ChannelAlpha2 is None; else split-routing(main channel + floodplains). + Initialization uses LDD for kinematic routing (LddKinematic) + """ + settings = LisSettings.instance() + option = settings.options + flags = settings.flags # ************************************************************ # ***** INITIALISE PARALLEL KINEMATIC WAVE ROUTER ************ @@ -495,6 +549,7 @@ def initialSecond(self): # Initialise parallel kinematic wave router: main channel-only routing if self.var.ChannelAlpha2 is None; else split-routing(main channel + floodplains) # Initialization includes LDD for kinematic routing maskinfo = MaskInfo.instance() + self.river_router = kinematicWave(compressArray(self.var.LddKinematic), ~maskinfo.info.mask, self.var.ChannelAlpha, self.var.Beta, self.var.ChanLength, self.var.DtRouting, alpha_floodplains=self.var.ChannelAlpha2, flagnancheck=flags['nancheck']) @@ -505,7 +560,7 @@ def initialSecond(self): if option['InitLisflood'] and option['repMBTs']: # Calculate initial water storage in rivers (no lakes no reservoirs) # self.var.StorageStepINIT= self.var.ChanM3Kin - self.var.StorageStepINIT = self.var.ChanM3 + self.var.StorageStepINIT = self.var.ChanM3.copy() # Initial water volume in river channels self.var.DischargeM3StructuresIni = maskinfo.in_zero() if option['simulateReservoirs']: @@ -515,7 +570,7 @@ def initialSecond(self): self.var.StorageStepINIT = np.take(np.bincount(self.var.Catchments, weights=self.var.StorageStepINIT), self.var.Catchments) if not option['InitLisflood'] and option['repMBTs']: - self.var.StorageStepINIT = self.var.ChanM3 + self.var.StorageStepINIT = self.var.ChanM3.copy() # DisStructure = np.where(self.var.IsUpsOfStructureKinematicC, self.var.ChanQ * self.var.DtRouting, 0) DisStructure = np.where(self.var.IsUpsOfStructureChanC, self.var.ChanQ * self.var.DtRouting, 0) if not(option['SplitRouting']): @@ -553,29 +608,13 @@ def initialMCT(self): # ************************************************************ # ***** INITIALISATION FOR MCT ROUTING ************ # ************************************************************ - - # even if MCT is active, it should be deactivated if there is no MCT cell in the domain - if option['MCTRouting']: - self.var.IsChannelMCTPcr = boolean(loadmap('ChannelsMCT', pcr=True)) #pcr - self.var.IsChannelMCT = np.bool8(compressArray(self.var.IsChannelMCTPcr)) #bool - if self.var.IsChannelMCT.sum()==0: - warnings.warn(LisfloodWarning('There are no MCT grid cell. MCT routing is deactivated')) - option['MCTRouting'] = False - # rebuild lists of reported files with MCTRouting = False - settings.build_reportedmaps_dicts() if option['MCTRouting'] and not option['InitLisflood']: maskinfo = MaskInfo.instance() - self.var.IsChannelMCTPcr = boolean(decompress(self.var.IsChannelMCT)) # pcr - # Identify channel pixels where Muskingum-Cunge-Todini is used - - self.var.mctmask = np.bool8(pcr2numpy(self.var.IsChannelMCTPcr,0)) - # Create a mask with cells using MCT - - self.var.IsChannelKinematicPcr = (self.var.IsChannelPcr == 1) & (self.var.IsChannelMCTPcr == 0) #pcr - self.var.IsChannelKinematic = np.bool8(compressArray(self.var.IsChannelKinematicPcr)) #np - # Identify channel pixels where Kinematic wave is used instead of MCT + # self.var.IsChannelKinematicPcr = (self.var.IsChannelPcr == 1) & (self.var.IsChannelMCTPcr == 0) #pcr + # self.var.IsChannelKinematic = np.bool8(compressArray(self.var.IsChannelKinematicPcr)) #np + # # Identify channel pixels where Kinematic wave is used instead of MCT self.var.LddMCT = lddmask(self.var.LddChan, self.var.IsChannelMCTPcr) #pcr # Ldd for MCT routing @@ -591,7 +630,6 @@ def initialMCT(self): self.var.ChanGrad[MCT_slope_mask] = ChanGradMaxMCT # set max channel slope for MCT pixels - # cmcheck # This could become a calibration parameter if we want to use MCT+SplitRouting self.var.ChanManMCT = (self.var.ChanMan / self.var.CalChanMan) * loadmap('CalChanMan3') # Mannings coefficient for MCT pixels (same as second line of split routing) @@ -603,12 +641,30 @@ def initialMCT(self): self.var.PrevDm0 = np.where(PrevDmMCT == -9999, maskinfo.in_zero(), PrevDmMCT) #np # Reynolds number (Dm) for MCT at previous time step t0 + + # ************************************************************ + # ***** CALIBRATION POINTS ******** + # ************************************************************ + CalibPoints = maskinfo.in_zero() + if option['simulateCalibrationPoints']: + CalibPoints = loadmap('CalibrationPoints') # 1D array size all catchment pixels + # read location of calibration points + + inAr = np.arange(maskinfo.info.mapC[0], dtype="int32") # np + # Assign a number to each non-missing pixel as cell id, by row starting from 0 + CalibPointsIds = inAr[CalibPoints > 0] + # pixel id of calibration points + + # ************************************************************ # ***** INITIALISE MUSKINGUM-CUNGE-TODINI WAVE ROUTER ******** # ************************************************************ mct_ldd = self.compress_mct(compressArray(self.var.LddMCT)) # Compress LddMCT to array with MCT pixels only + # mct_CalInflowPoints = self.compress_mct(self.var.CalInflowPoints) + # # Compress CalInflowPoints to array with MCT pixels only + mapping_mct = self.compress_mct(range(len(self.var.ChanLength))) # create mapping from global domain pixels index to MCT pixels index @@ -622,7 +678,8 @@ def initialMCT(self): self.var.ChanSdXdY, # Riverbed side slope self.var.DtRouting, # computation time step for routing [s] self.river_router, # class - mapping_mct # MCT pixels mapping + mapping_mct, # MCT pixels mapping + CalibPointsIds, # id of calibrationn points in full LDD ) @@ -644,6 +701,7 @@ def dynamic(self, NoRoutingExecuted): self.inflow_module.dynamic_inloop(NoRoutingExecuted) self.transmission_module.dynamic_inloop(NoRoutingExecuted) + # ************************************************************ # ***** CHANNEL FLOW ROUTING: KINEMATIC WAVE **************** # ************************************************************ @@ -666,7 +724,7 @@ def dynamic(self, NoRoutingExecuted): SideflowChanM3 -= self.var.WUseAddM3Dt # Water use abstraction from rivers - withdrawal [m3] if option['inflow']: - SideflowChanM3 += self.var.QInDt + SideflowChanM3 += self.var.QInM3Dt # Flow volume from inlets per sub step [m3] if option['TransLoss']: SideflowChanM3 -= self.var.TransLossM3Dt @@ -694,7 +752,7 @@ def dynamic(self, NoRoutingExecuted): if (NoRoutingExecuted<1): self.var.AddedTRUN = np.take(np.bincount(self.var.Catchments, weights=self.var.ToChanM3RunoffDt.copy()),self.var.Catchments) if option['inflow']: - self.var.AddedTRUN += np.take(np.bincount(self.var.Catchments, weights=self.var.QInDt),self.var.Catchments) + self.var.AddedTRUN += np.take(np.bincount(self.var.Catchments, weights=self.var.QInM3Dt),self.var.Catchments) if option['openwaterevapo']: self.var.AddedTRUN -= np.take(np.bincount(self.var.Catchments, weights=self.var.EvaAddM3Dt.copy()),self.var.Catchments) if option['wateruse']: @@ -702,7 +760,7 @@ def dynamic(self, NoRoutingExecuted): else: self.var.AddedTRUN += np.take(np.bincount(self.var.Catchments, weights=self.var.ToChanM3RunoffDt.copy()),self.var.Catchments) if option['inflow']: - self.var.AddedTRUN += np.take(np.bincount(self.var.Catchments, weights=self.var.QInDt),self.var.Catchments) + self.var.AddedTRUN += np.take(np.bincount(self.var.Catchments, weights=self.var.QInM3Dt),self.var.Catchments) if option['openwaterevapo']: self.var.AddedTRUN -= np.take(np.bincount(self.var.Catchments, weights=self.var.EvaAddM3Dt.copy()),self.var.Catchments) if option['wateruse']: @@ -770,7 +828,6 @@ def dynamic(self, NoRoutingExecuted): # Total channel storage [m3] = Volume in main channel (ChanM3Kin) + volume above bankfull in second line (Chan2M3Kin - Chan2M3Start) # Total channel storage V at the end of computation step t+dt for full section (instant) - # cmcheck ChanQAvgDt = np.maximum(self.var.ChanQKinAvgDt + self.var.Chan2QKinAvgDt - self.var.QLimit, 0) # (real) total outflow (at x+dx) at time t+dt end of step for the full cross-section (instant) # Main channel routing and above bankfull routing from second line of routing @@ -781,9 +838,6 @@ def dynamic(self, NoRoutingExecuted): # This is calculated for MCT grid cell only but takes the output of kinematic or split routing. # First, Kinematic/Split routing is solved on all pixels (including MCT pixels) then results are updated # for the MCT pixels. - - # Sideflow contribution to MCT grid cells expressed in [m3/s] - SideflowChanMCT = np.where(self.var.IsChannelMCT, SideflowChanM3 * self.var.InvDtRouting, 0) #Ql # Grab outflow at the end of the previous routing step t for all pixels) - current state of the MCT pixel ChanQ_0 = self.var.ChanQ.copy() # Outflow (x+dx) at time t (end of previous routing step) (instant) -> used to calc q00 @@ -795,6 +849,18 @@ def dynamic(self, NoRoutingExecuted): self.var.ChanM3 = ChanM3 self.var.ChanQAvgDt = ChanQAvgDt # -> used to calc q0m + # MCT CONFLUENCE + # This needs to be here because we need to grab the input to MCT pixels from the outflow at the end of routing step of kinematic pixels + if option['MCTRoutingInterface']: + self.mctconfluence_module.dynamic_inloop(NoRoutingExecuted) + # calculate sideflow from MCT confluence pixels + SideflowChanM3 += self.var.QConfM3Dt + # MCT confluence pixels outflow volume per routing sub step [m3] + + # Sideflow contribution to MCT grid cells expressed in [m3/s] + SideflowChanMCT = np.where(self.var.IsChannelMCT, SideflowChanM3 * self.var.InvDtRouting, 0) #Ql + # SideflowChanMCTM3 = np.where(self.var.IsChannelMCT, SideflowChanM3, 0) + # Solve MCT routing and update current state at MCT pixels self.mct_river_router.routing( ChanQ_0, # -> used to calc q00 diff --git a/src/lisflood/hydrological_modules/soil.py b/src/lisflood/hydrological_modules/soil.py index e3233d74..79115160 100644 --- a/src/lisflood/hydrological_modules/soil.py +++ b/src/lisflood/hydrological_modules/soil.py @@ -422,7 +422,7 @@ def splitlanduse(array1, array2=None, array3=None): # ***** INITIAL VALUES # ************************************************************ # Inputs in waterbalance model and/or initial assumption - # CMmod + # DSLRInit = defsoil('DSLRInitValue', 'DSLRForestInitValue','DSLRIrrigationInitValue') diff --git a/src/lisflood/hydrological_modules/structures.py b/src/lisflood/hydrological_modules/structures.py index 44dbeaa8..66feb771 100755 --- a/src/lisflood/hydrological_modules/structures.py +++ b/src/lisflood/hydrological_modules/structures.py @@ -45,13 +45,13 @@ def initial(self): """ self.var.LddStructuresKinematic = self.var.LddKinematic #pcr map LddStructuresKinematicNp = compressArray(self.var.LddStructuresKinematic) - # Unmodified version of LddKinematic is needed to connect inflow and outflow points - # of each structure (called LddStructuresKinematic now) + # Unmodified version of LddKinematic is needed for MCT confluence + # Legacy not used keeping for consistency self.var.LddStructuresChan = self.var.LddChan #pcr map LddStructuresChanNp = compressArray(self.var.LddStructuresChan) - # Unmodified version of LddChan is needed to connect inflow and outflow points - # of each structure (called LddStructuresChan now) + # Unmodified version of LddChan is used in evapowater, indicatorcalc and waterabstreaction + # It is neded to identify MCT confluences settings = LisSettings.instance() option = settings.options @@ -62,7 +62,7 @@ def initial(self): cover(boolean(decompress(self.var.IsStructureKinematic)), boolean(0)) ) # Downstream assigns to result the expression value of the neighbouring downstream cell - # Over is used to cover missing values on an expression with values taken from one or more different expression(s) + # Cover is used to cover missing values on an expression with values taken from one or more different expression(s) # Decompress is numpy2pcr # Find location of pixels immediately upstream of a structure on the LddKinematic @@ -72,12 +72,13 @@ def initial(self): ) # Find location of pixels immediately upstream of a structure on the LddChan - self.var.IsUpsOfStructureKinematicC = compressArray(IsUpsOfStructureKinematic) #np compressed array - # Location of pixels immediately upstream of a structure on the LddKinematic - self.var.IsUpsOfStructureChanC = compressArray(IsUpsOfStructureChan) #np compressed array - # Location of pixels immediately upstream of a structure on the LddChan - self.var.LddKinematic = lddrepair(ifthenelse(IsUpsOfStructureKinematic, 5, self.var.LddKinematic)) #pcr map # Update LddKinematic by adding a pit in the pixel immediately upstream of a structure self.var.LddChan = lddrepair(ifthenelse(IsUpsOfStructureChan, 5, self.var.LddChan)) #pcr map # Update LddChan by adding a pit in the pixel immediately upstream of a structure + # At this point LddKinematic and LddChan have pits upstream of (structures) reservoirs and lakes but not at MCT interface pixels + + self.var.IsUpsOfStructureKinematicC = compressArray(IsUpsOfStructureKinematic) #np compressed array + # Location of pixels immediately upstream of a structure on the LddKinematic + self.var.IsUpsOfStructureChanC = compressArray(IsUpsOfStructureChan) #np compressed array + # Location of pixels immediately upstream of a structure on the LddChan diff --git a/src/lisflood/hydrological_modules/surface_routing.py b/src/lisflood/hydrological_modules/surface_routing.py index c736bee2..a0145121 100644 --- a/src/lisflood/hydrological_modules/surface_routing.py +++ b/src/lisflood/hydrological_modules/surface_routing.py @@ -45,7 +45,7 @@ def initial(self): """ initial part of the surface_routing module """ maskinfo = MaskInfo.instance() - # CM mod + OFM3OtherInit = loadmap('OFOtherInitValue') OFM3ForestInit = loadmap('OFForestInitValue') OFM3DirectInit = loadmap('OFDirectInitValue') @@ -56,7 +56,6 @@ def initial(self): # self.var.WaterDepth = self.var.WaterDepthInit.copy() # initial overland flow water depth [mm] # for initial water in CHANNEL see CHANNEL GEOMETRY section below! - ## end CM mod self.var.OFM3Other = makenumpy(OFM3OtherInit) self.var.OFM3Forest = makenumpy(OFM3ForestInit) @@ -94,8 +93,6 @@ def initial(self): self.var.OFQOther = ((self.var.OFM3Other * self.var.InvPixelLength * self.var.InvOFAlpha.values[self.var.dim_runoff[1].index('Other')])**(self.var.InvBeta)).astype(float) self.var.OFQForest = ((self.var.OFM3Forest * self.var.InvPixelLength * self.var.InvOFAlpha.values[self.var.dim_runoff[1].index('Forest')])**(self.var.InvBeta)).astype(float) - # cmcheck - # do I need to initialise from self.var.OFQDirect? # Initial average overland discharge [m3 s-1] self.var.OFQDirectAvg = maskinfo.in_zero() self.var.OFQOtherAvg = maskinfo.in_zero() @@ -206,13 +203,10 @@ def dynamic(self): self.var.M3all = self.var.OFM3Direct + self.var.OFM3Other + self.var.OFM3Forest # Total overland flow storage [m3] - # cmcheck - # this should be calculated using the average flow self.var.OFToChanM3 = np.where(self.var.IsChannel, self.var.QallAvg * self.var.DtSec, 0) # self.var.OFToChanM3 = np.where(self.var.IsChannel, self.var.Qall * self.var.DtSec, 0) # Overland flow in channel pixels (in [m3])is added to channel - self.var.WaterDepth = self.var.M3all * self.var.M3toMM # Update water depth [mm] diff --git a/src/lisflood/hydrological_modules/waterabstraction.py b/src/lisflood/hydrological_modules/waterabstraction.py index 4676b400..0449a4a8 100644 --- a/src/lisflood/hydrological_modules/waterabstraction.py +++ b/src/lisflood/hydrological_modules/waterabstraction.py @@ -135,7 +135,7 @@ def initial(self): else: if option['useWaterDemandAveYear']: raise LisfloodError("TransientWaterDemandChange option must be turned on to use average year water demand (useWaterDemandAveYear)") - # CM: using information on water demand from NetCDF files, only loaded once in init, not in dynamic + # using information on water demand from NetCDF files, only loaded once in init, not in dynamic self.var.DomesticDemandMM = loadmap('DomesticDemandMaps', timestampflag='closest') * self.var.DtDay self.var.IndustrialDemandMM = loadmap('IndustrialDemandMaps', timestampflag='closest') * self.var.DtDay self.var.LivestockDemandMM = loadmap('LivestockDemandMaps', timestampflag='closest') * self.var.DtDay @@ -681,7 +681,7 @@ def dynamic(self): # ************************************************************ # 19. update state variables *** # ************************************************************ - # CM Update state variables for changes to W1a[2] and W1b[2] + # Update state variables for changes to W1a[2] and W1b[2] veg = "Irrigated_prescribed" iveg,ilanduse,_ = self.var.get_landuse_and_indexes_from_vegetation_GLOBAL(veg) diff --git a/src/lisflood/hydrological_modules/waterbalance.py b/src/lisflood/hydrological_modules/waterbalance.py index 723d4ed4..f77b43f8 100755 --- a/src/lisflood/hydrological_modules/waterbalance.py +++ b/src/lisflood/hydrological_modules/waterbalance.py @@ -91,7 +91,7 @@ def initial(self): # self.var.IsUpsOfStructureKinematic, self.var.ChanQ * self.var.DtRouting), scalar(0.0)) # DisStructure = np.where(self.var.IsUpsOfStructureKinematicC, self.var.ChanQ * self.var.DtRouting, 0) - DisStructure = np.where(self.var.IsUpsOfStructureChanC, self.var.ChanQAvgDt * self.var.DtRouting, 0) + DisStructure = np.where(self.var.IsUpsOfStructureChanC, self.var.ChanQAvgDt * self.var.DtRouting, 0) #np # Average Discharge upstream of structure locations (coded as pits) in [m3/time step] # Needed for mass balance error calculations (see comment to calculation of WaterInit below) # Inclusion of DischargeM3Structures: adding this corrects a (relatively small) offset that occurs otherwise @@ -99,10 +99,11 @@ def initial(self): # calculation of structur influence happens before routing, therefore the initial state is used at the structure onece to often # (because it is not routed yet to the structure) - # CM + # DisStructure = np.where(self.var.IsUpsOfStructureReservoir, self.var.ChanQAvgDt * self.var.DtRouting, 0) + if option['simulateLakes']: # DisStructure += np.where(compressArray(self.var.IsUpsOfStructureLake), 0.5 * self.var.ChanQ * self.var.DtRouting, 0) - DisStructure += np.where(compressArray(self.var.IsUpsOfStructureLake), 0.5 * self.var.ChanQAvgDt * self.var.DtRouting, 0) + DisStructure += np.where(compressArray(self.var.IsUpsOfStructureLake), 0.5 * self.var.ChanQAvgDt * self.var.DtRouting, 0) #np # DisStructure += cover(ifthen(self.var.IsUpsOfStructureLake, # 0.5 * self.var.ChanQ * self.var.DtRouting), scalar(0.0)) @@ -246,11 +247,12 @@ def dynamic(self): # added cumulative transmission loss # DisStru = np.where(self.var.IsUpsOfStructureKinematicC, self.var.ChanQ * self.var.DtRouting, 0) - DisStru = np.where(self.var.IsUpsOfStructureChanC, self.var.ChanQAvgDt * self.var.DtRouting, 0) + DisStru = np.where(self.var.IsUpsOfStructureChanC, self.var.ChanQAvgDt * self.var.DtRouting, 0) #np # using average discharge + # At this point self.var.IsUpsOfStructureChanC only includes structures (reservoirs and lakes) DisStru[self.var.AtLastPointC == 1 ] = 0 # this line avoids double-counting when a reservoir or a lake is located at the outlet of the cacthment - DischargeM3Structures = np.take(np.bincount(self.var.Catchments, weights=DisStru), self.var.Catchments) + DischargeM3Structures = np.take(np.bincount(self.var.Catchments, weights=DisStru), self.var.Catchments) #np # on the last time step lakes and reservoirs calculated with the previous routing results # so the last (now routed) discharge has to be added to the mass balance # (-> the calculation odf the structures is done before the routing) @@ -276,7 +278,6 @@ def dynamic(self): # Needed for mass balance error calculations, because of double counting of structure # storage and water in the channel. - # Mass balance: self.var.MBError = self.var.WaterInit + WaterIn - WaterStored - WaterOut - DischargeM3Structures # Total mass balance error per catchment [cu m]. Mass balance error is computed for each computational time step. @@ -287,6 +288,8 @@ def dynamic(self): self.var.WaterInit = WaterStored + DischargeM3Structures + + if option['TransientLandUseChange'] and (self.var.DynamicLandCoverDelta > 0.0): self.var.WaterInit = WaterStored_nextstep + DischargeM3Structures # update the water storage diff --git a/src/lisflood/main.py b/src/lisflood/main.py index 13b274e1..903657f3 100755 --- a/src/lisflood/main.py +++ b/src/lisflood/main.py @@ -144,7 +144,7 @@ def lisfloodexe(lissettings=None): except: print(calendar(binding["timestepInit"], binding['calendar_type'])) - # CM: print start step and end step for reporting model state maps + # print start step and end step for reporting model state maps print("Start Rep Step - End Rep Step: ", report_steps['rep'][0], " - ", report_steps['rep'][-1]) print("Start Rep Date - End Rep Date: ", inttodate(calendar(report_steps['rep'][0] - 1, binding['calendar_type']), calendar(binding['CalendarDayStart'], binding['calendar_type'])), diff --git a/src/lisfloodSettings_reference.xml b/src/lisfloodSettings_reference.xml index 8c45ae72..928ca2b2 100644 --- a/src/lisfloodSettings_reference.xml +++ b/src/lisfloodSettings_reference.xml @@ -46,10 +46,12 @@ You can use builtin path variables in this template and reference to other paths + + # use inflow data @@ -1723,6 +1725,13 @@ You can use builtin path variables in this template and reference to other paths + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + OPTIONAL: observed or simulated input hydrographs as time series [cu m / s] @@ -5639,6 +5648,13 @@ You can use builtin path variables in this template and reference to other paths + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + Observed or simulated input hydrographs as diff --git a/tests/data/LF_ETRS89_UseCase/settings/mct_cold_for_results_generation.xml b/tests/data/LF_ETRS89_UseCase/settings/mct_cold_for_results_generation.xml index 0ef0ddbe..0ee70ecb 100644 --- a/tests/data/LF_ETRS89_UseCase/settings/mct_cold_for_results_generation.xml +++ b/tests/data/LF_ETRS89_UseCase/settings/mct_cold_for_results_generation.xml @@ -44,11 +44,13 @@ You can use builtin path variables in this template and reference to other paths - - + + + - + + # use inflow data @@ -88,7 +90,7 @@ You can use builtin path variables in this template and reference to other paths # report mass balance - + #----------------------------------------------------------- # report maps @@ -287,19 +289,19 @@ You can use builtin path variables in this template and reference to other paths - + Reference day and time - + timestep [seconds] - + 17280 5 times subrouting 21600 6 hours @@ -308,14 +310,14 @@ You can use builtin path variables in this template and reference to other paths - + 01/01/YEAR_START 12:00 Number of first time step in simulation - + 01/01/YEAR_END 06:00 Number of last time step in simulation @@ -469,7 +471,7 @@ You can use builtin path variables in this template and reference to other paths - + default: 3.0 [-] $(PathParams)/CalChanMan3 @@ -1476,7 +1478,7 @@ You can use builtin path variables in this template and reference to other paths - + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the total cross-sectional area @@ -1629,7 +1631,7 @@ You can use builtin path variables in this template and reference to other paths - + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0) Default: 0.001 @@ -1652,6 +1654,13 @@ You can use builtin path variables in this template and reference to other paths + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + OPTIONAL: observed or simulated input hydrographs as @@ -5418,6 +5427,13 @@ LFBINDING: MORE LOW-LEVEL CONTROL OVER MODEL IN- AND OUTPUT + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + Observed or simulated input hydrographs as diff --git a/tests/data/LF_MCT_UseCase/maps/basin_p1.nc b/tests/data/LF_MCT_UseCase/maps/basin_p1.nc new file mode 100644 index 00000000..8f5b9605 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/basin_p1.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/basin_p6.nc b/tests/data/LF_MCT_UseCase/maps/basin_p6.nc new file mode 100644 index 00000000..cce1461d Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/basin_p6.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/basin_up.nc b/tests/data/LF_MCT_UseCase/maps/basin_up.nc new file mode 100644 index 00000000..0b3fc031 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/basin_up.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/chanmct_conf.nc b/tests/data/LF_MCT_UseCase/maps/chanmct_conf.nc new file mode 100644 index 00000000..d5ff8c3d Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/chanmct_conf.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/chanmct_outlet_at_conf.nc b/tests/data/LF_MCT_UseCase/maps/chanmct_outlet_at_conf.nc new file mode 100644 index 00000000..9ae85785 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/chanmct_outlet_at_conf.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/chanmct_sink_at_conf.nc b/tests/data/LF_MCT_UseCase/maps/chanmct_sink_at_conf.nc new file mode 100644 index 00000000..c79498d4 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/chanmct_sink_at_conf.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/chanmct_start_in_5.nc b/tests/data/LF_MCT_UseCase/maps/chanmct_start_in_5.nc new file mode 100644 index 00000000..f952d29b Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/chanmct_start_in_5.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_in_p6.nc b/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_in_p6.nc new file mode 100644 index 00000000..bdecec43 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_in_p6.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_up.nc b/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_up.nc new file mode 100644 index 00000000..2ce990d6 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/ec_ldd_sink_up.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/interbasin_for_p2.nc b/tests/data/LF_MCT_UseCase/maps/interbasin_for_p2.nc new file mode 100644 index 00000000..95c04b42 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/interbasin_for_p2.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/mask_one_up_inflow.nc b/tests/data/LF_MCT_UseCase/maps/mask_one_up_inflow.nc new file mode 100644 index 00000000..c1c9a72a Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/mask_one_up_inflow.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/outlets.csv b/tests/data/LF_MCT_UseCase/maps/outlets.csv new file mode 100644 index 00000000..d47997c3 --- /dev/null +++ b/tests/data/LF_MCT_UseCase/maps/outlets.csv @@ -0,0 +1,10 @@ +ID,X,Y +1,4307500,2377500 +2,4292500,2377500 +3,4302500,2377500 +4,4302500,2372500 +5,4297500,2372500 +6,4312500,2377500 +7,4287500,2372500 +8,4282500,2367500 +9,4292500,2372500 diff --git a/tests/data/LF_MCT_UseCase/maps/p2.nc b/tests/data/LF_MCT_UseCase/maps/p2.nc new file mode 100644 index 00000000..c1c9a72a Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/p2.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/p7.nc b/tests/data/LF_MCT_UseCase/maps/p7.nc new file mode 100644 index 00000000..9343e881 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/p7.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/p8.nc b/tests/data/LF_MCT_UseCase/maps/p8.nc new file mode 100644 index 00000000..89b4ab18 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/p8.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/point_p1.nc b/tests/data/LF_MCT_UseCase/maps/point_p1.nc new file mode 100644 index 00000000..66afeb07 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/point_p1.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/point_p6.nc b/tests/data/LF_MCT_UseCase/maps/point_p6.nc new file mode 100644 index 00000000..56462b34 Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/point_p6.nc differ diff --git a/tests/data/LF_MCT_UseCase/maps/point_up.nc b/tests/data/LF_MCT_UseCase/maps/point_up.nc new file mode 100644 index 00000000..354b2ffc Binary files /dev/null and b/tests/data/LF_MCT_UseCase/maps/point_up.nc differ diff --git a/tests/data/LF_MCT_UseCase/settings/mct_cold_interface.xml b/tests/data/LF_MCT_UseCase/settings/mct_cold_interface.xml new file mode 100644 index 00000000..3b47e491 --- /dev/null +++ b/tests/data/LF_MCT_UseCase/settings/mct_cold_interface.xml @@ -0,0 +1,6154 @@ + + + + + + + #----------------------------------------------------------- + # modelling and reporting options + #----------------------------------------------------------- + + + + # options to turn hydrological modules on/off + + + + + + + + + + + + + + + + + + + + + + # use inflow data + + + # option to compute indicators + + + # option to initialize Lisflood + + + + # option to read/write NetCDF + + + + + # option to Report PaddyRiceDebug information in CSV file for debugging Paddy Rice Water Abstraction issue on dry Channels + + + #----------------------------------------------------------- + # report time series + #----------------------------------------------------------- + # report discharge TS + + + # report gauges and sites + # sites (pixel average) + + + # gauges (catchment average) + + + + + # report reservoirs and lakes + + + + # report mass balance + + + #----------------------------------------------------------- + # report maps + #----------------------------------------------------------- + # report state maps + + + # report end maps + + + # report output maps + # forcings + + + + + + + # dicharge + + + + + + # variables + + + + + + + + + + + + + + + + #Surface runoff + #Surface runoff + UZ [mm] + #Surface runoff + UZ [mm] + LZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + netCDF parameters + ************************************************************** + + + + !-- Optimization of netCDF I/O through chunking and caching. + + The option "NetCDFTimeChunks" may take the following values: + - "-1" : Load everything upfront + - "[positive integer number]" : Chunk size defined by user + - "auto" : Let xarray to decide + + + + + The option "MapsCaching" may take the following values: + - "True" : Cache maps during execution + - "False" : No caching + + + + ************************************************************** + PARALLELIZED KINEMATIC ROUTING + ************************************************************** + + + + + The option "OutputMapsChunks" may take the following values: + - "[positive integer number]" : Dump outputs to disk every X steps (default 1) + + + + + The option "OutputMapsDataType" sets the output data type and may take the following values: + - "float64" + - "float32" + + + + ************************************************************** + PARALLELISATION WITH NUMBA (USED IN ROUTING AND SOILLOOP) + ************************************************************** + + + + + !-- Parallelisation of using Numba runtime compiled library . + The option "numCPUs_parallelNumba" may take the following values: + - "0" : set to NUMBA_NUM_THREADS Environment Variable + (if NUMBA_NUM_THREADS is not set, will take the number of CPU cores determined by python's multiprocessing.cpu_count()) + - "1" : serial execution (not parallel) + - "2", "3", ... : manual setting of the number of parallel threads. + (if exceeding NUMBA_NUM_THREADS, the value is set to NUMBA_NUM_THREADS) --> + + + + ************************************************************** + AREA AND OUTLETS + ************************************************************** + + + + + MAPSDIR + Root directory (tables and parameters) + $(SettingsPath)/.. + + + + + + Clone map + col row cellsize xupleft yupleft + or pcraster maps or netcdf maps + + + + + 4307500 2377500 outlet + 4307500 2377500 4292500 2377500 4302500 2377500 4302500 2372500 4297500 2372500 4312500 2377500 4287500 2372500 4282500 2367500 + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + lat lon (lat2 lon2 ...) + or pcraster maps or netcdf maps + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + This is needed when using projected coordinates + + + + + + + ************************************************************** + TIME-RELATED CONSTANTS + ************************************************************** + + + + + Calendar convention + + + + + + Reference day and time + + + + + + timestep [seconds] + + + + + + 17280 5 times subrouting + 21600 6 hours + Sub time step used for kinematic and MCT wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + 01/01/YEAR_START 12:00 + Number of first time step in simulation + + + + + + 01/01/YEAR_END 06:00 + Number of last time step in simulation + + + + + + low value to limit testing time + + + + + + 1..9999 + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + + + + ************************************************************** + MONTE CARLO, KALMAN FILTER + ************************************************************** + + + + + Number of sample to use in MonteCarlo simulations + + + + + + Number of cores of the computer to use in MonteCarlo simulations + This only works with Linux, if set to 1 no forking will be used + + + + + + + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + + + ************************************************************** + CALIBRATION PARAMETERS + with .nc format: than working with smaller sub-areas is possible + ************************************************************** + + + + default: 10 + $(PathParams)/params_UpperZoneTimeConstant + Time constant for water in upper zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 100 + $(PathParams)/params_LowerZoneTimeConstant + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 0.5 + $(PathParams)/GwPercValue + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + default: 0.0 + $(PathParams)/GwLoss + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + default: 10 + $(PathParams)/params_LZThreshold + threshold value [mm] of the water storage in the lower groundwater zone. + If the water storage in the lower groundwater zone decreases below LZThreshold, + the flow from the lower zone to the nearby rivers (base-flow) stops. + + + + + + default: 0.7 [-] + $(PathParams)/b_Xinanjiang + Power in Xinanjiang distribution function [-] + + + + + + default: 3.5 [-] + $(PathParams)/PowerPrefFlow + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + default: 2.0 [-] + $(PathParams)/CalChanMan1 + Multiplier [-] applied to Channel Manning's n + + + + + + default: 4.0 [mm C-1 day-1] + $(PathParams)/SnowMeltCoef + SRM: 0.45 cm C-1 day-1 ( = 4.50 mm C-1 day-1), Kwadijk: 18 mm C-1 month-1 (= 0.59 mm C-1 day-1) + See also Martinec et al., 1998. + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan2 + Multiplier [-] applied to Channel Manning's n for second line of routing + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan3 + Multiplier [-] applied to Channel Manning's n for MCT routing + + + + + + default: 1.0 [-] + $(PathParams)/LakeMultiplier + Multiplier applied to the lake parameter A + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow (`ReservoirFloodOutflow`) that defines the inflow + value that switches, when exceeded, the reservoir routine to flood control mode. + It can be a map (NetCDF), a table (TXT) or a float. Negative values will be replaced by + the default value of 0.3 + Units: - + Range: 0.1 - 0.5 + Default: 0.3 + + + + + + default: 5.0 [mm/day] (not included in calibration) + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + default: 2.0 + $(PathParams)/params_QSplitMult + Multiplier applied to average Q to split into a second line of routing + + + + + + default: 1.0 + $(PathParams)/params_ChanBottomWMult + Multiplier applied to ChanBottomWidth + + + + + + default: 1.0 + $(PathParams)/params_ChanDepthTMult + Multiplier [] applied to ChanDepthThreshold + + + + + + default: 1.0 + $(PathParams)/params_ChanSMult + Multiplier [] applied to ChanSdXdY + + + + + + + + ************************************************************** + FILE PATHS + ************************************************************** + + + + + RUNDIR + Output path (org=$(PathRoot)/out) + + + + + + INITDIR + Path of the initial value maps e.g. lzavin.map (org=$(PathRoot)/outPo) + + + + + + Static maps path + + + + + + Inflow path + + + + + + Calibration parameter path + + + + + + Tables path + + + + + + Maps instead of tables path + + + + + + Maps instead of tables for soil hydraulics path + + + + + + Maps for transient land use changes every 5 years + + + + + + Maps for land use fractions and related land use maps + + + + + + Water use maps path + + + + + + FORCINGSDIR + Meteo path + + + + + + Leaf Area Index maps path + + + + + + variable water fraction maps path + + + + + + + + ************************************************************** + INITIAL CONDITIONS + (maps or single values) + ************************************************************** + + + + + if init. condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Cold start: 0 + Initial overland flow storage [m3], direct runoff fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], other fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], forest fraction + + + + + + Cold start: 0 + initial snow depth in snow zone A [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone B [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone C [mm] + + + + + + Cold start: 0 + initial Frost Index value [degC/day] + + + + + + Cold start: 0 + cumulative interception [mm] + + + + + + Cold start: 0 + PRERUNDIR/uz.end.nc + water in upper store [mm] + + + + + + Cold start: 1 + days since last rainfall [days] + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + PRERUNDIR/lz.end.nc + water in lower store [mm] + Cold start: -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + Cold start: -9999: use half bankfull + + + + + + PRERUNDIR/tha.end.nc + initial soil moisture content layer 1a (superficial soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thb.end.nc + initial soil moisture content layer 1b (upper soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thc.end.nc + initial soil moisture content layer 2 (lower soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + Cold start: -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + Cold start: -9999: use 0 + + + + + + Initial lake level [m] + Cold start: -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzf.end.nc + water in upper groundwater store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thfa.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfb.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfc.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzi.end.nc + water in groundwater upper store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thia.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thib.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thic.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + ************************************************************** + INITIAL CONDITIONS IMPERVIOUS AREAS + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + + + ************************************************************** + CUMULATIVE FLUXES REQUIRED WHEN COMPUTING THE PRE-RUN IN CHUNKS + ************************************************************** + + + + + Cumulative inflow to the lower groundwater zone + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + LZInflowCumEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, other land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBOtherEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, forest land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBForestEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, irrigation land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBIrrigationEnd: required for the warm start of the pre-run + + + + + + Cumulative discharge + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + CumQEnd: required for the warm start of the pre-run + + + + + + Cumulative number of days from the start of the prerun + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + TimeSinceStartPrerunChunkEnd: required for the warm start of the pre-run + + + + + + + ************************************************************** + PREFIXES OF METEO AND VEGETATION RELATED VARIABLES + ************************************************************** + + + + + prefix precipitation maps + + + + + + prefix average temperature maps + + + + + + prefix E0 maps + + + + + + prefix ES0 maps + + + + + + prefix ET0 maps + + + + + + prefix LAI maps + + + + + + prefix LAI forest maps + + + + + + prefix LAI irrigation maps + + + + + + prefix domestic water use maps + + + + + + prefix livestock water use maps + + + + + + prefix energy water use maps + + + + + + prefix industry water use maps + + + + + + prefix variable water fraction + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier [-] applied to potential precipitation rates + + + + + + Multiplier [-] applied to potential evapo(transpi)ration rates + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier [-] applied to precipitation that falls as snow + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + + + ************************************************************** + IRRIGATION AND WATER ABSTRACTION RELATED PARAMETERS + ************************************************************** + + + + + + default: 0.75 + Field application irrigation efficiency [-]: max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency [-]: around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor [-] to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) [-] + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) [-] + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) [-] + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) [-] + Source: EEA (2005) State of Environment + + + + + + Default : 0.2 + $(PathRoot)/leakage.map + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) [-] + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) [-] + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) [-] + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1) [-] + scenruse.map + + + + + + Irrigation crop coefficient [-] + + + + + + Irrigation crop group number [-] + + + + + + Population [units] + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + ? + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use UpperZoneTimeConstant, LowerZoneTimeConstant, + GwPercValue as calibration constants + - calibrate on GwLossFraction if necessary + + + + + length of the window used to smooth the LZ zone [number of cell length] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + + Fraction of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + kinematic wave parameter beta [-]: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient [-] (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient [-] (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + VARIABLES RELATED TO OPTIONS + These all need to have some (real or bogus) value, + even for options that are not actually used! + ************************************************************** + + + + ************************************************************** + RESERVOIR OPTION + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Initial reservoir fill fraction [-] + Cold start: -9999 sets initial fill to normal storage limit + if you're not using the reservoir option, enter some bogus value + + + + + + + + ************************************************************** + LAKE OPTION + ************************************************************** + + + + + Cold start: -9999 + Estimate of average net inflow into lake (=inflow - evaporation) [cu m / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + + + + + + ************************************************************** + POLDER OPTION + ************************************************************** + + + + + Weir constant [-] (Do not change!) + + + + + + Initial water level in polder [m] + + + + + + + + + + ************************************************************** + DYNAMIC WAVE OPTION + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + test_chanmct_all + test_chanmct_2 + chanmct_single + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0) + Default: 0.001 + + + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (OPTIONAL) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs [cu m / s] + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + OPTIONAL: observed or simulated input hydrographs as + time series [cu m / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + PF REPORTING OPTION + ************************************************************** + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF soil layer 1a, other fraction + + + + + + Reported pF soil layer 1b, other fraction + + + + + + Reported pF soil layer 2, other fraction + + + + + + Reported pF soil layer 1a, forest fraction + + + + + + Reported pF soil layer 1b, forest fraction + + + + + + Reported pF layer 2, forest fraction + + + + + + Reported pF soil layer 1a, irrigation fraction + + + + + + Reported pF soil layer 1b, irrigation fraction + + + + + + Reported pF soil layer 2, irrigation fraction + + + + + + + + + + + + + + + + + This is necessary when using projected coordinates (x,y) + + + + + + + + + + + Clone map + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + + + ************************************************************** + TIMESTEP RELATED PARAMETERS + ************************************************************** + + + + + Calendar convention + + + + + + Calendar day is back! + Calendar day number of 1st day in model run + e.g. 1st of January: 1; 1st of June 151 (or 152 in leap year) + Needed to read out LAI tables correctly + + + + + + timestep [seconds] (60*60*24) + + + + + + Sub time step used for kinematic wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + Number of first time step in simulation + + + + + + Number of last time step in simulation + + + + + + Number of days used for internal spin-up (fluxes computations during prerun) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier applied to potential precipitation rates [-] + + + + + + Multiplier applied to potential evapo(transpi)ration rates [-] + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient [-] for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier applied to precipitation that falls as snow + + + + + + Snowmelt coefficient [mm C-1 day-1)] + See also Martinec et al., 1998. + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [deg C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + + + ************************************************************** + INFILTRATION PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Power in Xinanjiang distribution function [-] + + + + + + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use all other parameters as calibration constants + + + + + + Time constant for water in upper zone [days] + + + + + + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + + water use daily maps with a (in this case negative) volume of water [cu m/s] + + + + + + table with days for each water use maps + 1st column: range of days; 2nd column: suffix of wuse map + + + + + + Percentage of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + maximum number of loops for calculating evaporation + = distance water is taken to satisfy the need of evaporation from open water + + + + + + Reported evaporation from open water [mm] + + + + + + Time series of upstream water evaporation from open water at gauging stations + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + Multiplier applied to Channel Manning's n + + + + + + Multiplier applied to Channel Manning's n for second routing line + + + + + + Multiplier applied to Channel Manning's n for MCT routing + + + + + + Multiplier applied to average Q to split into a second line of routing + + + + + + Multiplier applied to ChanBottomWidth + + + + + + Multiplier applied to ChanDepthThreshold + + + + + + Multiplier applied to ChanSdXdY + + + + + + kinematic wave parameter: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOR THE WATER BALANCE MODEL + (can be either maps or single values) + ************************************************************** + + + + + PRERUNDIR/lzavin + Reported map of average percolation rate from upper to + lower groundwater zone (reported for end of simulation) [mm/day] + + + + + + PRERUNDIR/avgdis + CHANNEL split routing in two lines + Average discharge map [m3/s] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, other land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, forest land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, irrigated land cover fraction, average flux over the simulation period [mm] + + + + + + if init condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Initial overland flow storage [m3], direct runoff fraction + + + + + + Initial overland flow storage [m3], other fraction + + + + + + Initial overland flow storage [m3], forest fraction + + + + + + initial snow depth in snow zone A [mm] + + + + + + initial snow depth in snow zone B [mm] + + + + + + initial snow depth in snow zone C [mm] + + + + + + initial Frost Index value [degC/day] + + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + water in groundwater lower store [mm] + -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + -9999: use half bankfull + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + -9999: use 0 + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + -9999: use 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for forest fraction + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + cumulative depression storage [mm] + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for irrigation + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + + ************************************************************** + CUMULATIVE FLUXES REQUIRED WHEN COMPUTING THE PRE-RUN IN CHUNKS + ************************************************************** + + + + Cumulative inflow to the lower groundwater zone + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + LZInflowCumEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, other land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBOtherEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, forest land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBForestEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, irrigation land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBIrrigationEnd: required for the warm start of the pre-run + + + + + + Cumulative discharge + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + CumQEnd: required for the warm start of the pre-run + + + + + + Cumulative number of days from the start of the prerun + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + NetTimeSinceStartPrerunChunkEnd: required for the warm start of the pre-run + + + + + + + + ************************************************************** + INPUT METEOROLOGICAL AND VEGETATION TIMESERIES AS MAPS + ************************************************************** + + + + + precipitation [mm/day] + + + + + + average daily temperature [C] + + + + + + daily reference evaporation (free water) [mm/day] + + + + + + daily reference evaporation (soil) [mm/day] + + + + + + daily reference evapotranspiration (crop) [mm/day] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + + + ************************************************************** + INPUT WATER USE MAPS AND PARAMETERS + ************************************************************** + + + + + Domestic water abstraction daily maps [mm] + + + + + + Livestock water abstraction daily maps [mm] + + + + + + Energy water abstraction daily maps [mm] + + + + + + Industry water abstraction daily maps [mm] + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) + Source: EEA (2005) State of Environment + + + + + + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1 + scenruse.map + + + + + + + Field application irrigation efficiency max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency, around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Irrigation crop coefficient + + + + + + Irrigation crop group number + + + + + + Population + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + + + + + + + + ************************************************************** + RICE IRRIGATION + ************************************************************** + + + + + + water amount in mm per day + 10 mm for 10 days (total 10cm water) + + + + + + FAO: percolation for heavy clay soils: PERC = 2 mm/day + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + + + ************************************************************** + REPORTED OUTPUT MAPS + ************************************************************** + + + + + Reported discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Reported Topsoil moisture [%] + + + + + + Reported Topsoil moisture [%] + + + + + + Reported discharge [cu m/s] at the end of a timestep + + + + + + Reported discharge [cu m/s] but cut by a discharge mask map + + + + + + Reported water level [m] % False by default + + + + + + + + STATE VARIABLES AT SELECTED TIME STEPS + ONLY FOR INITIALISATION OF SUCCEEDING RUNS + REPORTING TIME STEPS SET THROUGH "ReportSteps" OPTION + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + + Reported cross section area 2nd line of routing [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lowerupper layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported transpiration maps, other fraction [mm] + + + + + + Reported transpiration maps, forest fraction [mm] + + + + + + Reported transpiration maps, irrigated fraction [mm] + + + + + + Reported transpiration maps, weighted sum over the fractions of each pixel [mm] + + + + + + + + "END" MAPS, AKA REPORTED OUTPUT MAPS CALLED "END" + Same as above, but always at last time step + Support for these "end" maps will most likely be + discontinued some time soon + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + Reported lake level [m] + + + + + + Reported lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Reported lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Reported lake storage [m3] + + + + + + + Reported reservoir filling [-] + + + + + + Reported cross section area 2nd line of rounting [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Reported average discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1c (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + INDIVIDUAL DRIVING METEOROLOGICAL VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + Note reporting is done as a quantity per time step, not as + an intensity (as in meteo input!) + + + + + Precipitation [mm per time step] + + + + + + Average DAILY temperature [degrees C] + + + + + + Potential reference evapotranspiration [mm per time step] + + + + + + Potential evaporation from bare soil surface [mm per time step] + + + + + + Potential evaporation from open water surface [mm per time step] + + + + + + + + INDIVIDUAL STATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported total water storage [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct runoff fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surfac + + + + + + Reported channel cross-section area [m2] + + + + + + Reported snow cover [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage, other fraction [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage, forest fraction [mm] + + + + + + Reported interception storage, irrigation fraction [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported interception (depression) storage, direct runoff (impervious) fraction [mm] + + + + + + + + INDIVIDUAL RATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported rain (excluding snow)[mm] + + + + + + Reported snow (excluding rain)[mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported actual evapotranspiration [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, other fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, forest fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, irrigation fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, other fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, forest fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), other fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), forest fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), weighted sum over the fraction of each pixel [mm] + + + + + + Reported available groundwater LZ+ GWLoss [mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported fast runoff = surface + UZ [mm] + + + + + + Reported GWloss [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported total runoff that enters the channel: groundwater + surface runoff [mm] + + + + + + Reported Direct Runoff [mm] + + + + + + Reported FlowVelocityMSecMaps [m/s] + + + + + + Reported TravelDistance [m] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported leaf drainage Forest[mm] + + + + + + Reported interception forest [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported transpiration forest [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + MISCELLANEOUS OUTPUT MAPS AND TIME SERIES + + + + + Time series of average percolation rate from upper to + lower groundwater zone (reported at sites) [mm/day] + + + + + + Time series of average percolation rate from upper to + lower groundwater zone (average for upstream area of each gauge) [mm/day] + + + + + + Reported number of days in simulation with soil moisture stress [days] + + + + + + Reported number of days in simulation with soil moisture stress for forest fraction [days] + + + + + + Reported soil transpiration reduction factor [-] for other landuse + values below 1 indicate soil moisture stress + + + + + + Reported soil transpiration reduction factor [-] + values below 1 indicate soil moisture stress + + + + + + + + ************************************************************** + REPORTED OUTPUT TIME SERIES + ************************************************************** + + + + + Reported average discharge over the model time step [cu m/s] + + + + + + Reported instantaneous discharge at the end of routing sub-step [cu m/s] + + + + + + Reported average discharge on the last routing sub-step [cu m/s] + + + + + + Reported water level [m] + + + + + + + OUTPUT AT SITES: STATE VARIABLES + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + OUTPUT AT SITES: RATE VARIABLES + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation from interception storage [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + + + + + + + + + AVERAGE VALUES OF METEOROLOGICAL FORCING VARIABLES + UPSTREAM OF GAUGES + (only if repMeteoUpsGauges option is activated) + + + + + Precipitation [mm/time step] + + + + + + Average temperature [deg C] + + + + + + Reference evapotranspiration [mm/time step] + + + + + + Potential soil evaporation [mm/time step] + + + + + + Potential open water evaporation [mm/time step] + + + + + + ESActPixel+self.var.TaPixel+self.var.TaInterceptionAll+self.var.EvaAddM3*self.var.M3toMM + + + + + + + + AVERAGE VALUES OF MODEL STATE VARIABLES + UPSTREAM OF GAUGES + (only if repStateUpsGauges option is activated) + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture upper layer [mm3/mm3] + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + AVERAGE VALUES OF MODEL RATE VARIABLES + UPSTREAM OF GAUGES + (only if repRateUpsGauges option is activated) + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Snow melt [mm] + + + + + + Interception [mm] + + + + + + Actual transpiration [mm] + + + + + + Actual evaporation [mm] + + + + + + Evaporation from interception storage [mm] + + + + + + Leaf drainage [mm] + + + + + + Infiltration [mm] + + + + + + Preferential flow [mm] + + + + + + Percolation upper to lower soil layer [mm] + + + + + + Seepage from lower soil layer to groundwater [mm] + + + + + + Surface runoff [mm] + + + + + + Outflow from upper groundwater zone (to channel) [mm] + + + + + + Outflow from lower groundwater zone (to channel) [mm] + + + + + + Total runoff [mm] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + NUMERICS + + + + + Reported mass balance error at outlet [cu m] + + + + + + Reported mass balance error at outlet (as mm water slice) + + + + + + Reported mass balance error due to the split routing module, for each catchment [m3] + + + + + + Reported discharge error at the outlet as a consequence of the mass balance error within the split routing module, for each catchment [m3/s] + + + + + + Reported ratio between the mass balance error and the water volume storage, for each catchment [m3/m3] + + + + + + Average value of the sum of the fractions within a catchment: this value must be 1.0 in order to avoid mass balace errors! [-] + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of sub-steps needed for soil moisture + routine + + + + + + + + ************************************************************** + BASE INPUT MAPS AND TABLES + ************************************************************** + + + + + ************************************************************** + TOPOGRAPHY MAPS + ************************************************************** + + + + + $(PathMaps)/ldd.map + local drain direction map (1-9) + + + + + + slope gradient [-] (0.50 -> tangent=0.5, angle=26.5 degrees) + + + + + + Elevation standard deviation [m], i.e. altitude difference elevation within pixel. + Used for sub-pixel modelling of snow accumulation + and melt + + + + + + outlets.map + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + + + + + + map with monitoring sites (1,2,3 etc) + + + + + + optional map with pixel length [m], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + optional map with pixel area [m2], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + + + ************************************************************** + SOIL PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Soil depth for 1st layer: 1a (superficial layer) + Minimum Soil Depth [mm] for superficial soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b (upper layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 2nd layer: 2 (lower layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 1st layer: 1a + Minimum Soil Depth [mm] for upper soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b + Minimum Soil Depth [mm] for lower soil layer + + + + + + Soil depth for 2nd layer: 2 + Minimum Soil Depth [mm] for lower soil layer 300 + + + + + + + + + ************************************************************** + LAND USE RELATED MAPS AND TABLES + ************************************************************** + + + + + $(PathMapsLanduse)/fracsealed + urban area (0-1) + + + + + + stack of Direct Runoff fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracforest + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of forest fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracwater + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of water fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracother + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of other fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracirrigated + irrigated area fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of Irrigation fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracDrained.map + drained fraction from irrigated area (0-1) + + + + + + rice fraction of a pixel (0-1) + + + + + + stack of rice fraction maps (0-1) + + + + + + groundwater used fraction of a pixel (0-1) + + + + + + NonConventionalWaterUsed (0-1) + + + + + + lake and reservoir water used, fraction of a pixel (0-1) + + + + + + $(PathMaps)/eflow.map + EFlowThreshold is map with m3/s discharge, e.g. the 10th percentile discharge of the baseline run + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + + + + + ************************************************************** + Variable Channel NoSubStepChannel + ************************************************************** + + + + + UpArea do be included in max. celerity + + + + + + variable Number of sub steps for the kinematic wave routing + + + + + ************************************************************** + CHANNEL MAPS + ************************************************************** + + + + + Boolean map with value 1 at channel pixels and 0 at + all other pixels + IMPORTANT: IF NON-CHANNEL PIXELS HAVE MISSING VALUES + THEN THIS MAY RESULT IN INCORRECT RESULTS + + + + + + Channel gradient (fraction, dy/dx) + + + + + + Channel Manning's n [m^(1/3) s^(-1)] + + + + + + Channel length [m] + + + + + + Channel bottom width [m] + + + + + + Channel side slope, expressed as gradient + !! expressed as dx/dy !!! (NOT dy/dx, which would perhaps be more logical) + + + + + + Floodplain Width [m] + + + + + + Bankfull channel depth [m] + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) + Each parameter is defined for upper (1a and 1b) and + lower (2) soil layers + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 2 (lower soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 2 (lower soil layer) + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) for Forest + Each parameter is defined for 1a and 1b + Normal parameter is taken for the lower soil layer + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) for soil layer 1a (superficial soil layer) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + + + + + + + ************************************************************** + RESERVOIRS (if used ) + Input maps + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Map with location of reservoirs (number) + + + + + + Initial reservoir storage (fraction) + + + + + + Input tables + + + + + Total reservoir storage capacity + Units: m³ + + + + + + Reservoir inflow associated with the 100-year return period. + It is modified by a calibration parameter (`ReservoirFloodOutflowFactor`) to + define the inflow above which the reservoir switches to flood control mode + Units: m³/s + + + + + + NReservoir average inflow used to define the normal reservoir release + Units: m³/s + + + + + + Minimum reservoir release: + Units: m³/s + + + + + Output time series + + + + + name of output TSS file with Reservoir Inflow + + + + + + name of output TSS file with Reservoir Outflow + + + + + + name of output TSS file with Reservoir Filling + + + + + + name of output TSS file with Reservoir storage [m3] + + + + + + + name of output map(s) with Reservoir Filling + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow that defines a flood event, i.e., the + reservoir routine switches to flood control mode. + + + + + + + + ************************************************************** + LAKES (if used ) + Input maps + ************************************************************** + + + + + Map with location of lakes + + + + + + Initial lake level [m] + -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Estimate of average net inflow into lake (=inflow - evaporation) [m3 / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + Input tables + + + + + Lake surface area [m2] + + + + + + Lake parameter A [m/s] + + + + + + Multiplier applied to the lake parameter A + + + + + Output time series + + + + + Output timeseries file with lake inflow [m3 /s] + + + + + + Output timeseries file with lake outflow [m3 /s] + + + + + + Output timeseries file with lake level [m] + + + + + + Output map(s) with lake level [m] + + + + + + Output map with lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Output map with lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + + + ************************************************************** + POLDERS(if used) + ************************************************************** + + + + + + Weir constant (fixed) [-] + + + + + + Map with polder locations + + + + + + Initial water level in polders [m] + + + + + + Polder maximum storage capacity [cu m] + + + + + + Area of polder [sq m] + + + + + + Width of polder outlet/inlet [m] + + + + + + Polder bottom level, measured from channel bottom [m] + + + + + + Time step at which polder opens in case of regulated polder (use bogus value of -9999 in table in case of unregulated polder) + + + + + + Time step at which water stored in polder is released again(use bogus value of -9999 in table in case of unregulated polder) + + + + + + name of output TSS file with polder flux [cu m / s]. Positive for flow from channel to polder, negative for polder to channel + + + + + + name of output TSS file with polder level [m] + + + + + + name of output map(s) with polder level + + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (if used) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + Observed or simulated input hydrographs as + time series [m3 / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + + ************************************************************** + DYNAMIC WAVE(if used) + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + Boolean map with value 1 at channel pixels where dynamic wave is + used, and 0 at all other pixels + + + + + + Channel bottom level [m] + + + + + + Nominal map with channel cross section IDs + + + + + + Table with cross section parameters (H,A,P) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be >0.001) + + + + + + + + + ************************************************************** + PF REPORTING (if used) + ************************************************************** + + + + PF PARAMETERS + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, VALUES AT SITES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, AVERAGE VALUES UPSTREAM OF GAUGES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + + + + + ************************************************************** + Ad'a addition + ************************************************************** + + + + + threshold value below which there is no outflow to the channel [mm] + + + + + + length of the window used to smooth the LZ zone [number of cells] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + Water demand output maps + ************************************************************** + + + + + day of the year when the yearly endcalculation is done e.g. 31/10/xxxx = 304 + + + + + + + TotalAbstractionFromGroundwater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] summed up for water regions + + + + + + Total Abstraction From SurfaceWater and Groundwater [mm] summed up for water regions, montly values + + + + + + TotalPaddyRiceIrrigationAbstraction [m3] + + + + + + Water Exploitation Index - Consumption; for water regions (this is the official EU WEI+): consumption / internal and external availability + + + + + + Water Exploitation Index - Abstraction; for water regions: abstraction / internal and external availability + + + + + + Water Exploitation Index - Demand; for water regions: demand / internal and external availability + + + + + + Water Exploitation Index - Consumption; for water regions + + + + + + + Internal available water + + + + + + External available water + + + + + + Region Water Consumption + + + + + + Region Water Consumption + + + + + + Reservoir and Lake storage in m3 at end of month + + + + + + Reservoir and Lake abstraction in m3 + + + + + + Irrigation water shortage in m3 for month + + + + + + Surface water availability in m3 for potential irrigation for each day + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly Water Dependency Index (0-1) (De Roo 2015) + WDI = Upstream Inflow Actually Used / Total Water Demand + Values close to 1 give extreme dependency on upstream water + + + + + + Monthly Water Security Index (0-1) (De Roo 2015) + WSI = Upstream Inflow Actually Used / Upstream Inflow Available + Values close to 1 give extreme vulnerability to upstream water + + + + + + Monthly Water Sustainability Index (0-1) (De Roo 2015) + WTI = 1-SurfaceWaterDeficit / TotalWaterDemand + Values of 1 indicate complete sustainable conditions, no water deficit + Values less than 1 indicate that considerable deep groundwater resources or desalinated water is used + + + + + + Monthly Falkenmark 1 Index (tochanm3) + + + + + + Monthly Falkenmark 2 Index (tochanm3+reservoirlakeabstraction) + + + + + + Monthly Falkenmark 3 Index (tochanm3+reservoirlakeabstraction+externalinflow) + + + + + + + Abstraction from groundwater in m3 per timestep + + + + + + Abstraction from surface water in m3 per timestep + + + + + + Region abstraction from surface water in m3 per timestep + + + + + + Region Total Abstraction From Lakes and Reservoirs in m3, per timestep + + + + + + Lake Abstraction per timestep in m3 + + + + + + ReservoirAbstraction per timestep in M3 + + + + + + ReservoirStorage in M3 + + + + + + LakeStorage in M3 + + + + + + AreatotalIrrigationUseM3 + + + + + + FractionAbstractedFromChannels + + + + + + EFlowIndicator (1 on day with ChanQ smaller than EflowThreshold, 0 on normal days) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + Peter's addition + ************************************************************** + + + + + + [mm] + + + + + + [mm] + + + + + + [mm] + + + + + + + + + + areamap MaskMap; + timer StepStart StepEnd 1; + ReportSteps=$(ReportSteps); + + + + + diff --git a/tests/data/LF_MCT_UseCase/settings/mct_inflow_calib.xml b/tests/data/LF_MCT_UseCase/settings/mct_inflow_calib.xml new file mode 100644 index 00000000..a0ac4ff4 --- /dev/null +++ b/tests/data/LF_MCT_UseCase/settings/mct_inflow_calib.xml @@ -0,0 +1,6164 @@ + + + + + + + #----------------------------------------------------------- + # modelling and reporting options + #----------------------------------------------------------- + + + + # options to turn hydrological modules on/off + + + + + + + + + + + + + + + + + + + + + # use inflow data + + + # option to compute indicators + + + # option to initialize Lisflood + + + + + # option to read/write NetCDF + + + + + + + #----------------------------------------------------------- + # report time series + #----------------------------------------------------------- + # report discharge TS + + + # report gauges and sites + # sites (pixel average) + + + # gauges (catchment average) + + + + + # report reservoirs and lakes + + + + # report mass balance + + + #----------------------------------------------------------- + # report maps + #----------------------------------------------------------- + # report state maps + + + # report end maps + + + # report output maps + # forcings + + + + + + + # dicharge + + + + + + # variables + + + + + + + + + + + + + + + + #Surface runoff + #Surface runoff + UZ [mm] + #Surface runoff + UZ [mm] + LZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + netCDF parameters + ************************************************************** + + + + + !-- Optimization of netCDF I/O through chunking and caching. + + The option "NetCDFTimeChunks" may take the following values: + - "-1" : Load everything upfront + - "[positive integer number]" : Chunk size defined by user + - "auto" : Let xarray to decide + + + + + The option "MapsCaching" may take the following values: + - "True" : Cache maps during execution + - "False" : No caching + + + + ************************************************************** + PARALLELIZED KINEMATIC ROUTING + ************************************************************** + + + + + The option "OutputMapsChunks" may take the following values: + - "[positive integer number]" : Dump outputs to disk every X steps (default 1) + + + + + The option "OutputMapsDataType" sets the output data type and may take the following values: + - "float64" + - "float32" + + + + ************************************************************** + PARALLELISATION WITH NUMBA (USED IN ROUTING AND SOILLOOP) + ************************************************************** + + + + + !-- Parallelisation of using Numba runtime compiled library . + The option "numCPUs_parallelNumba" may take the following values: + - "0" : set to NUMBA_NUM_THREADS Environment Variable + (if NUMBA_NUM_THREADS is not set, will take the number of CPU cores determined by python's multiprocessing.cpu_count()) + - "1" : serial execution (not parallel) + - "2", "3", ... : manual setting of the number of parallel threads. + (if exceeding NUMBA_NUM_THREADS, the value is set to NUMBA_NUM_THREADS) --> + + + + ************************************************************** + AREA AND OUTLETS + ************************************************************** + + + + + MAPSDIR + Root directory (tables and parameters) + $(SettingsPath)/.. + + + + + + Clone map + col row cellsize xupleft yupleft + or pcraster maps or netcdf maps + + + + + 4297500 2372500 inflow point + 4307500 2377500 outlet + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + lat lon (lat2 lon2 ...) + or pcraster maps or netcdf maps + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + This is needed when using projected coordinates + + + + + + + ************************************************************** + TIME-RELATED CONSTANTS + ************************************************************** + + + + + Calendar convention + + + + + + Reference day and time + + + + + + timestep [seconds] + + + + + + 17280 5 times subrouting + 21600 6 hours + Sub time step used for kinematic and MCT wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + 01/01/YEAR_START 12:00 + Number of first time step in simulation + + + + + + 01/01/YEAR_END 06:00 + Number of last time step in simulation + + + + + + low value to limit testing time + + + + + + 1..9999 + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + + + + ************************************************************** + MONTE CARLO, KALMAN FILTER + ************************************************************** + + + + + Number of sample to use in MonteCarlo simulations + + + + + + Number of cores of the computer to use in MonteCarlo simulations + This only works with Linux, if set to 1 no forking will be used + + + + + + + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + + + ************************************************************** + CALIBRATION PARAMETERS + with .nc format: than working with smaller sub-areas is possible + ************************************************************** + + + + default: 10 + $(PathParams)/params_UpperZoneTimeConstant + Time constant for water in upper zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 100 + $(PathParams)/params_LowerZoneTimeConstant + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 0.5 + $(PathParams)/GwPercValue + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + default: 0.0 + $(PathParams)/GwLoss + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + default: 10 + $(PathParams)/params_LZThreshold + threshold value [mm] of the water storage in the lower groundwater zone. + If the water storage in the lower groundwater zone decreases below LZThreshold, + the flow from the lower zone to the nearby rivers (base-flow) stops. + + + + + + default: 0.7 [-] + $(PathParams)/b_Xinanjiang + Power in Xinanjiang distribution function [-] + + + + + + default: 3.5 [-] + $(PathParams)/PowerPrefFlow + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + default: 2.0 [-] + $(PathParams)/CalChanMan1 + Multiplier [-] applied to Channel Manning's n + + + + + + default: 4.0 [mm C-1 day-1] + $(PathParams)/SnowMeltCoef + SRM: 0.45 cm C-1 day-1 ( = 4.50 mm C-1 day-1), Kwadijk: 18 mm C-1 month-1 (= 0.59 mm C-1 day-1) + See also Martinec et al., 1998. + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan2 + Multiplier [-] applied to Channel Manning's n for second line of routing + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan3 + Multiplier [-] applied to Channel Manning's n for MCT routing + + + + + + default: 1.0 [-] + $(PathParams)/LakeMultiplier + Multiplier applied to the lake parameter A + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow (`ReservoirFloodOutflow`) that defines the inflow + value that switches, when exceeded, the reservoir routine to flood control mode. + It can be a map (NetCDF), a table (TXT) or a float. Negative values will be replaced by + the default value of 0.3 + Units: - + Range: 0.1 - 0.5 + Default: 0.3 + + + + + + default: 5.0 [mm/day] (not included in calibration) + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + default: 2.0 + $(PathParams)/params_QSplitMult + Multiplier applied to average Q to split into a second line of routing + + + + + + default: 1.0 + $(PathParams)/params_ChanBottomWMult + Multiplier applied to ChanBottomWidth + + + + + + default: 1.0 + $(PathParams)/params_ChanDepthTMult + Multiplier [] applied to ChanDepthThreshold + + + + + + default: 1.0 + $(PathParams)/params_ChanSMult + Multiplier [] applied to ChanSdXdY + + + + + + + + ************************************************************** + FILE PATHS + ************************************************************** + + + + + RUNDIR + Output path (org=$(PathRoot)/out) + + + + + + INITDIR + Path of the initial value maps e.g. lzavin.map (org=$(PathRoot)/outPo) + + + + + + Static maps path + + + + + + Inflow path + + + + + + Calibration parameter path + + + + + + Tables path + + + + + + Maps instead of tables path + + + + + + Maps instead of tables for soil hydraulics path + + + + + + Maps for transient land use changes every 5 years + + + + + + Maps for land use fractions and related land use maps + + + + + + Water use maps path + + + + + + FORCINGSDIR + Meteo path + + + + + + Leaf Area Index maps path + + + + + + variable water fraction maps path + + + + + + + + ************************************************************** + INITIAL CONDITIONS + (maps or single values) + ************************************************************** + + + + + if init. condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Cold start: 0 + Initial overland flow storage [m3], direct runoff fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], other fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], forest fraction + + + + + + Cold start: 0 + initial snow depth in snow zone A [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone B [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone C [mm] + + + + + + Cold start: 0 + initial Frost Index value [degC/day] + + + + + + Cold start: 0 + cumulative interception [mm] + + + + + + Cold start: 0 + PRERUNDIR/uz.end.nc + water in upper store [mm] + + + + + + Cold start: 1 + days since last rainfall [days] + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + PRERUNDIR/lz.end.nc + water in lower store [mm] + Cold start: -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + Cold start: -9999: use half bankfull + + + + + + PRERUNDIR/tha.end.nc + initial soil moisture content layer 1a (superficial soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thb.end.nc + initial soil moisture content layer 1b (upper soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thc.end.nc + initial soil moisture content layer 2 (lower soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + Cold start: -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + Cold start: -9999: use 0 + + + + + + Initial lake level [m] + Cold start: -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzf.end.nc + water in upper groundwater store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thfa.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfb.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfc.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzi.end.nc + water in groundwater upper store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thia.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thib.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thic.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + ************************************************************** + INITIAL CONDITIONS IMPERVIOUS AREAS + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + + + ************************************************************** + CUMULATIVE FLUXES REQUIRED WHEN COMPUTING THE PRE-RUN IN CHUNKS + ************************************************************** + + + + + Cumulative inflow to the lower groundwater zone + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + LZInflowCumEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, other land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBOtherEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, forest land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBForestEnd: required for the warm start of the pre-run + + + + + + Cumulative flux from second to third soil layer, irrigation land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBIrrigationEnd: required for the warm start of the pre-run + + + + + + Cumulative discharge + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + CumQEnd: required for the warm start of the pre-run + + + + + + Cumulative number of days from the start of the prerun + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + TimeSinceStartPrerunChunkEnd: required for the warm start of the pre-run + + + + + + + + ************************************************************** + PREFIXES OF METEO AND VEGETATION RELATED VARIABLES + ************************************************************** + + + + + prefix precipitation maps + + + + + + prefix average temperature maps + + + + + + prefix E0 maps + + + + + + prefix ES0 maps + + + + + + prefix ET0 maps + + + + + + prefix LAI maps + + + + + + prefix LAI forest maps + + + + + + prefix LAI irrigation maps + + + + + + prefix domestic water use maps + + + + + + prefix livestock water use maps + + + + + + prefix energy water use maps + + + + + + prefix industry water use maps + + + + + + prefix variable water fraction + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier [-] applied to potential precipitation rates + + + + + + Multiplier [-] applied to potential evapo(transpi)ration rates + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier [-] applied to precipitation that falls as snow + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + + + ************************************************************** + IRRIGATION AND WATER ABSTRACTION RELATED PARAMETERS + ************************************************************** + + + + + + default: 0.75 + Field application irrigation efficiency [-]: max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency [-]: around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor [-] to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) [-] + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) [-] + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) [-] + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) [-] + Source: EEA (2005) State of Environment + + + + + + Default : 0.2 + $(PathRoot)/leakage.map + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) [-] + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) [-] + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) [-] + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1) [-] + scenruse.map + + + + + + Irrigation crop coefficient [-] + + + + + + Irrigation crop group number [-] + + + + + + Population [units] + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + ? + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use UpperZoneTimeConstant, LowerZoneTimeConstant, + GwPercValue as calibration constants + - calibrate on GwLossFraction if necessary + + + + + length of the window used to smooth the LZ zone [number of cell length] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + + Fraction of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + kinematic wave parameter beta [-]: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient [-] (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient [-] (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + VARIABLES RELATED TO OPTIONS + These all need to have some (real or bogus) value, + even for options that are not actually used! + ************************************************************** + + + + ************************************************************** + RESERVOIR OPTION + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Initial reservoir fill fraction [-] + Cold start: -9999 sets initial fill to normal storage limit + if you're not using the reservoir option, enter some bogus value + + + + + + + + ************************************************************** + LAKE OPTION + ************************************************************** + + + + + Cold start: -9999 + Estimate of average net inflow into lake (=inflow - evaporation) [cu m / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + + + + + + ************************************************************** + POLDER OPTION + ************************************************************** + + + + + Weir constant [-] (Do not change!) + + + + + + Initial water level in polder [m] + + + + + + + + + + ************************************************************** + DYNAMIC WAVE OPTION + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + test_chanmct_all + test_chanmct_2 + chanmct_single + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0) + Default: 0.001 + + + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (OPTIONAL) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs [cu m / s] + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + OPTIONAL: observed or simulated input hydrographs as + time series [cu m / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + PF REPORTING OPTION + ************************************************************** + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF soil layer 1a, other fraction + + + + + + Reported pF soil layer 1b, other fraction + + + + + + Reported pF soil layer 2, other fraction + + + + + + Reported pF soil layer 1a, forest fraction + + + + + + Reported pF soil layer 1b, forest fraction + + + + + + Reported pF layer 2, forest fraction + + + + + + Reported pF soil layer 1a, irrigation fraction + + + + + + Reported pF soil layer 1b, irrigation fraction + + + + + + Reported pF soil layer 2, irrigation fraction + + + + + + + + + + + + + + + + + + This is necessary when using projected coordinates (x,y) + + + + + + + + + + + Clone map + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + + + ************************************************************** + TIMESTEP RELATED PARAMETERS + ************************************************************** + + + + + Calendar convention + + + + + + Calendar day is back! + Calendar day number of 1st day in model run + e.g. 1st of January: 1; 1st of June 151 (or 152 in leap year) + Needed to read out LAI tables correctly + + + + + + timestep [seconds] (60*60*24) + + + + + + Sub time step used for kinematic wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + Number of first time step in simulation + + + + + + Number of last time step in simulation + + + + + + Number of days used for internal spin-up (fluxes computations during prerun) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier applied to potential precipitation rates [-] + + + + + + Multiplier applied to potential evapo(transpi)ration rates [-] + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient [-] for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier applied to precipitation that falls as snow + + + + + + Snowmelt coefficient [mm C-1 day-1)] + See also Martinec et al., 1998. + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [deg C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + + + ************************************************************** + INFILTRATION PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Power in Xinanjiang distribution function [-] + + + + + + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use all other parameters as calibration constants + + + + + + Time constant for water in upper zone [days] + + + + + + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + + water use daily maps with a (in this case negative) volume of water [cu m/s] + + + + + + table with days for each water use maps + 1st column: range of days; 2nd column: suffix of wuse map + + + + + + Percentage of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + maximum number of loops for calculating evaporation + = distance water is taken to satisfy the need of evaporation from open water + + + + + + Reported evaporation from open water [mm] + + + + + + Time series of upstream water evaporation from open water at gauging stations + + + + + + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + Multiplier applied to Channel Manning's n + + + + + + Multiplier applied to Channel Manning's n for second routing line + + + + + + Multiplier applied to Channel Manning's n for MCT routing + + + + + + Multiplier applied to average Q to split into a second line of routing + + + + + + Multiplier applied to ChanBottomWidth + + + + + + Multiplier applied to ChanDepthThreshold + + + + + + Multiplier applied to ChanSdXdY + + + + + + kinematic wave parameter: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOR THE WATER BALANCE MODEL + (can be either maps or single values) + ************************************************************** + + + + + PRERUNDIR/lzavin + Reported map of average percolation rate from upper to + lower groundwater zone (reported for end of simulation) [mm/day] + + + + + + PRERUNDIR/avgdis + CHANNEL split routing in two lines + Average discharge map [m3/s] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, other land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, forest land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, irrigated land cover fraction, average flux over the simulation period [mm] + + + + + + if init condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Initial overland flow storage [m3], direct runoff fraction + + + + + + Initial overland flow storage [m3], other fraction + + + + + + Initial overland flow storage [m3], forest fraction + + + + + + initial snow depth in snow zone A [mm] + + + + + + initial snow depth in snow zone B [mm] + + + + + + initial snow depth in snow zone C [mm] + + + + + + initial Frost Index value [degC/day] + + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + water in groundwater lower store [mm] + -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + -9999: use half bankfull + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + -9999: use 0 + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + -9999: use 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for forest fraction + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + cumulative depression storage [mm] + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for irrigation + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + + + ************************************************************** + CUMULATIVE FLUXES REQUIRED WHEN COMPUTING THE PRE-RUN IN CHUNKS + ************************************************************** + + + + Cumulative inflow to the lower groundwater zone + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + LZInflowCumEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, other land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBOtherEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, forest land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBForestEnd: required for the warm start of the pre-run + + + + + + Cumulative flow from second to third soil layer, irrigation land cover fraction + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + cumSeepTopToSubBIrrigationEnd: required for the warm start of the pre-run + + + + + + Cumulative discharge + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + CumQEnd: required for the warm start of the pre-run + + + + + + Cumulative number of days from the start of the prerun + 0: this is appropriate for the cold start of the pre-run, the cold start of the run, the warm start of the run + NetTimeSinceStartPrerunChunkEnd: required for the warm start of the pre-run + + + + + + + + + + ************************************************************** + INPUT METEOROLOGICAL AND VEGETATION TIMESERIES AS MAPS + ************************************************************** + + + + + precipitation [mm/day] + + + + + + average daily temperature [C] + + + + + + daily reference evaporation (free water) [mm/day] + + + + + + daily reference evaporation (soil) [mm/day] + + + + + + daily reference evapotranspiration (crop) [mm/day] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + + + ************************************************************** + INPUT WATER USE MAPS AND PARAMETERS + ************************************************************** + + + + + Domestic water abstraction daily maps [mm] + + + + + + Livestock water abstraction daily maps [mm] + + + + + + Energy water abstraction daily maps [mm] + + + + + + Industry water abstraction daily maps [mm] + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) + Source: EEA (2005) State of Environment + + + + + + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1 + scenruse.map + + + + + + + Field application irrigation efficiency max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency, around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Irrigation crop coefficient + + + + + + Irrigation crop group number + + + + + + Population + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + + + + + + + + + ************************************************************** + RICE IRRIGATION + ************************************************************** + + + + + + water amount in mm per day + 10 mm for 10 days (total 10cm water) + + + + + + FAO: percolation for heavy clay soils: PERC = 2 mm/day + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + + + + ************************************************************** + REPORTED OUTPUT MAPS + ************************************************************** + + + + + Reported discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Reported Topsoil moisture [%] + + + + + + Reported Topsoil moisture [%] + + + + + + Reported discharge [cu m/s] at the end of a timestep + + + + + + Reported discharge [cu m/s] but cut by a discharge mask map + + + + + + Reported water level [m] % False by default + + + + + + + STATE VARIABLES AT SELECTED TIME STEPS + ONLY FOR INITIALISATION OF SUCCEEDING RUNS + REPORTING TIME STEPS SET THROUGH "ReportSteps" OPTION + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + + Reported cross section area 2nd line of routing [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lowerupper layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported transpiration maps, other fraction [mm] + + + + + + Reported transpiration maps, forest fraction [mm] + + + + + + Reported transpiration maps, irrigated fraction [mm] + + + + + + Reported transpiration maps, weighted sum over the fractions of each pixel [mm] + + + + + + + + + "END" MAPS, AKA REPORTED OUTPUT MAPS CALLED "END" + Same as above, but always at last time step + Support for these "end" maps will most likely be + discontinued some time soon + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + Reported lake level [m] + + + + + + Reported lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Reported lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Reported lake storage [m3] + + + + + + + Reported reservoir filling [-] + + + + + + Reported cross section area 2nd line of rounting [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Reported average discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1c (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + INDIVIDUAL DRIVING METEOROLOGICAL VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + Note reporting is done as a quantity per time step, not as + an intensity (as in meteo input!) + + + + + Precipitation [mm per time step] + + + + + + Average DAILY temperature [degrees C] + + + + + + Potential reference evapotranspiration [mm per time step] + + + + + + Potential evaporation from bare soil surface [mm per time step] + + + + + + Potential evaporation from open water surface [mm per time step] + + + + + + + + INDIVIDUAL STATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported total water storage [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct runoff fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surfac + + + + + + Reported channel cross-section area [m2] + + + + + + Reported snow cover [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage, other fraction [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage, forest fraction [mm] + + + + + + Reported interception storage, irrigation fraction [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported interception (depression) storage, direct runoff (impervious) fraction [mm] + + + + + + + INDIVIDUAL RATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported rain (excluding snow)[mm] + + + + + + Reported snow (excluding rain)[mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported actual evapotranspiration [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, other fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, forest fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, irrigation fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, other fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, forest fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), other fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), forest fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), weighted sum over the fraction of each pixel [mm] + + + + + + Reported available groundwater LZ+ GWLoss [mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported fast runoff = surface + UZ [mm] + + + + + + Reported GWloss [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported total runoff that enters the channel: groundwater + surface runoff [mm] + + + + + + Reported Direct Runoff [mm] + + + + + + Reported FlowVelocityMSecMaps [m/s] + + + + + + Reported TravelDistance [m] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported leaf drainage Forest[mm] + + + + + + Reported interception forest [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported transpiration forest [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + + MISCELLANEOUS OUTPUT MAPS AND TIME SERIES + + + + + Time series of average percolation rate from upper to + lower groundwater zone (reported at sites) [mm/day] + + + + + + Time series of average percolation rate from upper to + lower groundwater zone (average for upstream area of each gauge) [mm/day] + + + + + + Reported number of days in simulation with soil moisture stress [days] + + + + + + Reported number of days in simulation with soil moisture stress for forest fraction [days] + + + + + + Reported soil transpiration reduction factor [-] for other landuse + values below 1 indicate soil moisture stress + + + + + + Reported soil transpiration reduction factor [-] + values below 1 indicate soil moisture stress + + + + + + + + ************************************************************** + REPORTED OUTPUT TIME SERIES + ************************************************************** + + + + + Reported average discharge over the model time step [cu m/s] + + + + + + Reported instantaneous discharge at the end of routing sub-step [cu m/s] + + + + + + Reported average discharge on the last routing sub-step [cu m/s] + + + + + + Reported water level [m] + + + + + + + OUTPUT AT SITES: STATE VARIABLES + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + OUTPUT AT SITES: RATE VARIABLES + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation from interception storage [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + + + + + + + + + AVERAGE VALUES OF METEOROLOGICAL FORCING VARIABLES + UPSTREAM OF GAUGES + (only if repMeteoUpsGauges option is activated) + + + + + Precipitation [mm/time step] + + + + + + Average temperature [deg C] + + + + + + Reference evapotranspiration [mm/time step] + + + + + + Potential soil evaporation [mm/time step] + + + + + + Potential open water evaporation [mm/time step] + + + + + + ESActPixel+self.var.TaPixel+self.var.TaInterceptionAll+self.var.EvaAddM3*self.var.M3toMM + + + + + + + + AVERAGE VALUES OF MODEL STATE VARIABLES + UPSTREAM OF GAUGES + (only if repStateUpsGauges option is activated) + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture upper layer [mm3/mm3] + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + AVERAGE VALUES OF MODEL RATE VARIABLES + UPSTREAM OF GAUGES + (only if repRateUpsGauges option is activated) + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Snow melt [mm] + + + + + + Interception [mm] + + + + + + Actual transpiration [mm] + + + + + + Actual evaporation [mm] + + + + + + Evaporation from interception storage [mm] + + + + + + Leaf drainage [mm] + + + + + + Infiltration [mm] + + + + + + Preferential flow [mm] + + + + + + Percolation upper to lower soil layer [mm] + + + + + + Seepage from lower soil layer to groundwater [mm] + + + + + + Surface runoff [mm] + + + + + + Outflow from upper groundwater zone (to channel) [mm] + + + + + + Outflow from lower groundwater zone (to channel) [mm] + + + + + + Total runoff [mm] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + NUMERICS + + + + + Reported mass balance error at outlet [cu m] + + + + + + Reported mass balance error at outlet (as mm water slice) + + + + + + Reported mass balance error due to the split routing module, for each catchment [m3] + + + + + + Reported discharge error at the outlet as a consequence of the mass balance error within the split routing module, for each catchment [m3/s] + + + + + + Reported ratio between the mass balance error and the water volume storage, for each catchment [m3/m3] + + + + + + Average value of the sum of the fractions within a catchment: this value must be 1.0 in order to avoid mass balace errors! [-] + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of sub-steps needed for soil moisture + routine + + + + + + + + + ************************************************************** + BASE INPUT MAPS AND TABLES + ************************************************************** + + + + + ************************************************************** + TOPOGRAPHY MAPS + ************************************************************** + + + + + $(PathMaps)/ldd.map + local drain direction map (1-9) + + + + + + slope gradient [-] (0.50 -> tangent=0.5, angle=26.5 degrees) + + + + + + Elevation standard deviation [m], i.e. altitude difference elevation within pixel. + Used for sub-pixel modelling of snow accumulation + and melt + + + + + + outlets.map + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + + + + + + map with monitoring sites (1,2,3 etc) + + + + + + optional map with pixel length [m], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + optional map with pixel area [m2], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + + + ************************************************************** + SOIL PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Soil depth for 1st layer: 1a (superficial layer) + Minimum Soil Depth [mm] for superficial soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b (upper layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 2nd layer: 2 (lower layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 1st layer: 1a + Minimum Soil Depth [mm] for upper soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b + Minimum Soil Depth [mm] for lower soil layer + + + + + + Soil depth for 2nd layer: 2 + Minimum Soil Depth [mm] for lower soil layer 300 + + + + + + + + + ************************************************************** + LAND USE RELATED MAPS AND TABLES + ************************************************************** + + + + + $(PathMapsLanduse)/fracsealed + urban area (0-1) + + + + + + stack of Direct Runoff fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracforest + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of forest fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracwater + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of water fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracother + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of other fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracirrigated + irrigated area fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of Irrigation fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracDrained.map + drained fraction from irrigated area (0-1) + + + + + + rice fraction of a pixel (0-1) + + + + + + stack of rice fraction maps (0-1) + + + + + + groundwater used fraction of a pixel (0-1) + + + + + + NonConventionalWaterUsed (0-1) + + + + + + lake and reservoir water used, fraction of a pixel (0-1) + + + + + + $(PathMaps)/eflow.map + EFlowThreshold is map with m3/s discharge, e.g. the 10th percentile discharge of the baseline run + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + + + + + ************************************************************** + Variable Channel NoSubStepChannel + ************************************************************** + + + + + UpArea do be included in max. celerity + + + + + + variable Number of sub steps for the kinematic wave routing + + + + + ************************************************************** + CHANNEL MAPS + ************************************************************** + + + + + Boolean map with value 1 at channel pixels and 0 at + all other pixels + IMPORTANT: IF NON-CHANNEL PIXELS HAVE MISSING VALUES + THEN THIS MAY RESULT IN INCORRECT RESULTS + + + + + + Channel gradient (fraction, dy/dx) + + + + + + Channel Manning's n [m^(1/3) s^(-1)] + + + + + + Channel length [m] + + + + + + Channel bottom width [m] + + + + + + Channel side slope, expressed as gradient + !! expressed as dx/dy !!! (NOT dy/dx, which would perhaps be more logical) + + + + + + Floodplain Width [m] + + + + + + Bankfull channel depth [m] + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) + Each parameter is defined for upper (1a and 1b) and + lower (2) soil layers + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 2 (lower soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 2 (lower soil layer) + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) for Forest + Each parameter is defined for 1a and 1b + Normal parameter is taken for the lower soil layer + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) for soil layer 1a (superficial soil layer) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + + + + + + + ************************************************************** + RESERVOIRS (if used ) + Input maps + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Map with location of reservoirs (number) + + + + + + Initial reservoir storage (fraction) + + + + + + Input tables + + + + + Total reservoir storage capacity + Units: m³ + + + + + + Reservoir inflow associated with the 100-year return period. + It is modified by a calibration parameter (`ReservoirFloodOutflowFactor`) to + define the inflow above which the reservoir switches to flood control mode + Units: m³/s + + + + + + NReservoir average inflow used to define the normal reservoir release + Units: m³/s + + + + + + Minimum reservoir release: + Units: m³/s + + + + + Output time series + + + + + name of output TSS file with Reservoir Inflow + + + + + + name of output TSS file with Reservoir Outflow + + + + + + name of output TSS file with Reservoir Filling + + + + + + name of output TSS file with Reservoir storage [m3] + + + + + + + name of output map(s) with Reservoir Filling + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow that defines a flood event, i.e., the + reservoir routine switches to flood control mode. + + + + + + + + ************************************************************** + LAKES (if used ) + Input maps + ************************************************************** + + + + + Map with location of lakes + + + + + + Initial lake level [m] + -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Estimate of average net inflow into lake (=inflow - evaporation) [m3 / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + Input tables + + + + + Lake surface area [m2] + + + + + + Lake parameter A [m/s] + + + + + + Multiplier applied to the lake parameter A + + + + + Output time series + + + + + Output timeseries file with lake inflow [m3 /s] + + + + + + Output timeseries file with lake outflow [m3 /s] + + + + + + Output timeseries file with lake level [m] + + + + + + Output map(s) with lake level [m] + + + + + + Output map with lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Output map with lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + + + ************************************************************** + POLDERS(if used) + ************************************************************** + + + + + + Weir constant (fixed) [-] + + + + + + Map with polder locations + + + + + + Initial water level in polders [m] + + + + + + Polder maximum storage capacity [cu m] + + + + + + Area of polder [sq m] + + + + + + Width of polder outlet/inlet [m] + + + + + + Polder bottom level, measured from channel bottom [m] + + + + + + Time step at which polder opens in case of regulated polder (use bogus value of -9999 in table in case of unregulated polder) + + + + + + Time step at which water stored in polder is released again(use bogus value of -9999 in table in case of unregulated polder) + + + + + + name of output TSS file with polder flux [cu m / s]. Positive for flow from channel to polder, negative for polder to channel + + + + + + name of output TSS file with polder level [m] + + + + + + name of output map(s) with polder level + + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (if used) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + Observed or simulated input hydrographs as + time series [m3 / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + + ************************************************************** + DYNAMIC WAVE(if used) + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + Boolean map with value 1 at channel pixels where dynamic wave is + used, and 0 at all other pixels + + + + + + Channel bottom level [m] + + + + + + Nominal map with channel cross section IDs + + + + + + Table with cross section parameters (H,A,P) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be >0.001) + + + + + + + + + ************************************************************** + PF REPORTING (if used) + ************************************************************** + + + + PF PARAMETERS + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, VALUES AT SITES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, AVERAGE VALUES UPSTREAM OF GAUGES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + + + + + ************************************************************** + Ad'a addition + ************************************************************** + + + + + threshold value below which there is no outflow to the channel [mm] + + + + + + length of the window used to smooth the LZ zone [number of cells] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + Water demand output maps + ************************************************************** + + + + + day of the year when the yearly endcalculation is done e.g. 31/10/xxxx = 304 + + + + + + + TotalAbstractionFromGroundwater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] summed up for water regions + + + + + + Total Abstraction From SurfaceWater and Groundwater [mm] summed up for water regions, montly values + + + + + + TotalPaddyRiceIrrigationAbstraction [m3] + + + + + + Water Exploitation Index - Consumption; for water regions (this is the official EU WEI+): consumption / internal and external availability + + + + + + Water Exploitation Index - Abstraction; for water regions: abstraction / internal and external availability + + + + + + Water Exploitation Index - Demand; for water regions: demand / internal and external availability + + + + + + Water Exploitation Index - Consumption; for water regions + + + + + + Internal available water + + + + + + External available water + + + + + + Region Water Consumption + + + + + + Region Water Consumption + + + + + + Reservoir and Lake storage in m3 at end of month + + + + + + Reservoir and Lake abstraction in m3 + + + + + + Irrigation water shortage in m3 for month + + + + + + Surface water availability in m3 for potential irrigation for each day + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly Water Dependency Index (0-1) (De Roo 2015) + WDI = Upstream Inflow Actually Used / Total Water Demand + Values close to 1 give extreme dependency on upstream water + + + + + + Monthly Water Security Index (0-1) (De Roo 2015) + WSI = Upstream Inflow Actually Used / Upstream Inflow Available + Values close to 1 give extreme vulnerability to upstream water + + + + + + Monthly Water Sustainability Index (0-1) (De Roo 2015) + WTI = 1-SurfaceWaterDeficit / TotalWaterDemand + Values of 1 indicate complete sustainable conditions, no water deficit + Values less than 1 indicate that considerable deep groundwater resources or desalinated water is used + + + + + + Monthly Falkenmark 1 Index (tochanm3) + + + + + + Monthly Falkenmark 2 Index (tochanm3+reservoirlakeabstraction) + + + + + + Monthly Falkenmark 3 Index (tochanm3+reservoirlakeabstraction+externalinflow) + + + + + + + Abstraction from groundwater in m3 per timestep + + + + + + Abstraction from surface water in m3 per timestep + + + + + + Region abstraction from surface water in m3 per timestep + + + + + + Region Total Abstraction From Lakes and Reservoirs in m3, per timestep + + + + + + Lake Abstraction per timestep in m3 + + + + + + ReservoirAbstraction per timestep in M3 + + + + + + ReservoirStorage in M3 + + + + + + LakeStorage in M3 + + + + + + AreatotalIrrigationUseM3 + + + + + + FractionAbstractedFromChannels + + + + + + EFlowIndicator (1 on day with ChanQ smaller than EflowThreshold, 0 on normal days) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + Peter's addition + ************************************************************** + + + + + + [mm] + + + + + + [mm] + + + + + + [mm] + + + + + + + + + + areamap MaskMap; + timer StepStart StepEnd 1; + ReportSteps=$(ReportSteps); + + + + + diff --git a/tests/data/LF_MCT_UseCase/settings/mct_warm_endmaps_interface.xml b/tests/data/LF_MCT_UseCase/settings/mct_warm_endmaps_interface.xml new file mode 100644 index 00000000..d6921e63 --- /dev/null +++ b/tests/data/LF_MCT_UseCase/settings/mct_warm_endmaps_interface.xml @@ -0,0 +1,5992 @@ + + + + + + + #----------------------------------------------------------- + # modelling and reporting options + #----------------------------------------------------------- + + + + # options to turn hydrological modules on/off + + + + + + + + + + + + + + + + + + + + + + + # use inflow data + + + # option to compute indicators + + + # option to initialize Lisflood + + + + # option to read/write NetCDF + + + + + + + #----------------------------------------------------------- + # report time series + #----------------------------------------------------------- + # report discharge TS + + + # report gauges and sites + # sites (pixel average) + + + # gauges (catchment average) + + + + + # report reservoirs and lakes + + + + # report mass balance + + + #----------------------------------------------------------- + # report maps + #----------------------------------------------------------- + # report state maps + + + # report end maps + + + # report output maps + # forcings + + + + + + + # dicharge + + + + + + # variables + + + + + + + + + + + + + + + + #Surface runoff + #Surface runoff + UZ [mm] + #Surface runoff + UZ [mm] + LZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + netCDF parameters + ************************************************************** + + + + + !-- Optimization of netCDF I/O through chunking and caching. + + The option "NetCDFTimeChunks" may take the following values: + - "-1" : Load everything upfront + - "[positive integer number]" : Chunk size defined by user + - "auto" : Let xarray to decide + + + + + The option "MapsCaching" may take the following values: + - "True" : Cache maps during execution + - "False" : No caching + + + + ************************************************************** + PARALLELIZED KINEMATIC ROUTING + ************************************************************** + + + + + The option "OutputMapsChunks" may take the following values: + - "[positive integer number]" : Dump outputs to disk every X steps (default 1) + + + + + The option "OutputMapsDataType" sets the output data type and may take the following values: + - "float64" + - "float32" + + + + ************************************************************** + PARALLELISATION WITH NUMBA (USED IN ROUTING AND SOILLOOP) + ************************************************************** + + + + + !-- Parallelisation of using Numba runtime compiled library . + The option "numCPUs_parallelNumba" may take the following values: + - "0" : set to NUMBA_NUM_THREADS Environment Variable + (if NUMBA_NUM_THREADS is not set, will take the number of CPU cores determined by python's multiprocessing.cpu_count()) + - "1" : serial execution (not parallel) + - "2", "3", ... : manual setting of the number of parallel threads. + (if exceeding NUMBA_NUM_THREADS, the value is set to NUMBA_NUM_THREADS) --> + + + + + ************************************************************** + AREA AND OUTLETS + ************************************************************** + + + + + MAPSDIR + Root directory (tables and parameters) + $(SettingsPath)/.. + + + + + + Clone map + col row cellsize xupleft yupleft + or pcraster maps or netcdf maps + + + + + + 4307500 2377500 outlet + 4307500 2377500 4292500 2377500 4302500 2377500 4302500 2372500 4297500 2372500 4312500 2377500 4287500 2372500 4282500 2367500 + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + lat lon (lat2 lon2 ...) + or pcraster maps or netcdf maps + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + This is needed when using projected coordinates + + + + + ************************************************************** + TIME-RELATED CONSTANTS + ************************************************************** + + + + + Calendar convention + + + + + + Reference day and time + + + + + + timestep [seconds] + + + + + + 17280 5 times subrouting + 21600 6 hours + Sub time step used for kinematic and MCT wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + 01/01/YEAR_START 12:00 + Number of first time step in simulation + + + + + + 01/01/YEAR_END 06:00 + Number of last time step in simulation + + + + + + low value to limit testing time + + + + + + 1..9999 + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + ************************************************************** + MONTE CARLO, KALMAN FILTER + ************************************************************** + + + + + Number of sample to use in MonteCarlo simulations + + + + + + Number of cores of the computer to use in MonteCarlo simulations + This only works with Linux, if set to 1 no forking will be used + + + + + + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + ************************************************************** + CALIBRATION PARAMETERS + with .nc format: than working with smaller sub-areas is possible + ************************************************************** + + + + default: 10 + $(PathParams)/params_UpperZoneTimeConstant + Time constant for water in upper zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 100 + $(PathParams)/params_LowerZoneTimeConstant + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 0.5 + $(PathParams)/GwPercValue + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + default: 0.0 + $(PathParams)/GwLoss + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + default: 10 + $(PathParams)/params_LZThreshold + threshold value [mm] of the water storage in the lower groundwater zone. + If the water storage in the lower groundwater zone decreases below LZThreshold, + the flow from the lower zone to the nearby rivers (base-flow) stops. + + + + + + default: 0.7 [-] + $(PathParams)/b_Xinanjiang + Power in Xinanjiang distribution function [-] + + + + + + default: 3.5 [-] + $(PathParams)/PowerPrefFlow + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + default: 2.0 [-] + $(PathParams)/CalChanMan1 + Multiplier [-] applied to Channel Manning's n + + + + + + default: 4.0 [mm C-1 day-1] + $(PathParams)/SnowMeltCoef + SRM: 0.45 cm C-1 day-1 ( = 4.50 mm C-1 day-1), Kwadijk: 18 mm C-1 month-1 (= 0.59 mm C-1 day-1) + See also Martinec et al., 1998. + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan2 + Multiplier [-] applied to Channel Manning's n for second line of routing + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan3 + Multiplier [-] applied to Channel Manning's n for MCT routing + + + + + + default: 1.0 [-] + $(PathParams)/LakeMultiplier + Multiplier applied to the lake parameter A + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow (`ReservoirFloodOutflow`) that defines the inflow + value that switches, when exceeded, the reservoir routine to flood control mode. + It can be a map (NetCDF), a table (TXT) or a float. Negative values will be replaced by + the default value of 0.3 + Units: - + Range: 0.1 - 0.5 + Default: 0.3 + + + + + + default: 5.0 [mm/day] (not included in calibration) + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + default: 2.0 + $(PathParams)/params_QSplitMult + Multiplier applied to average Q to split into a second line of routing + + + + + + default: 1.0 + $(PathParams)/params_ChanBottomWMult + Multiplier applied to ChanBottomWidth + + + + + + default: 1.0 + $(PathParams)/params_ChanDepthTMult + Multiplier [] applied to ChanDepthThreshold + + + + + + default: 1.0 + $(PathParams)/params_ChanSMult + Multiplier [] applied to ChanSdXdY + + + + + + + ************************************************************** + FILE PATHS + ************************************************************** + + + + + RUNDIR + Output path (org=$(PathRoot)/out) + + + + + + INITDIR + Path of the initial value maps e.g. lzavin.map (org=$(PathRoot)/outPo) + + + + + + Static maps path + + + + + + Inflow path + + + + + + Calibration parameter path + + + + + + Tables path + + + + + + Maps instead of tables path + + + + + + Maps instead of tables for soil hydraulics path + + + + + + Maps for transient land use changes every 5 years + + + + + + Maps for land use fractions and related land use maps + + + + + + Water use maps path + + + + + + FORCINGSDIR + Meteo path + + + + + + Leaf Area Index maps path + + + + + + variable water fraction maps path + + + + + + + + ************************************************************** + INITIAL CONDITIONS + (maps or single values) + ************************************************************** + + + + + if init. condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Cold start: 0 + Initial overland flow storage [m3], direct runoff fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], other fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], forest fraction + + + + + + Cold start: 0 + initial snow depth in snow zone A [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone B [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone C [mm] + + + + + + Cold start: 0 + initial Frost Index value [degC/day] + + + + + + Cold start: 0 + cumulative interception [mm] + + + + + + Cold start: 0 + PRERUNDIR/uz.end.nc + water in upper store [mm] + + + + + + Cold start: 1 + days since last rainfall [days] + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + PRERUNDIR/lz.end.nc + water in lower store [mm] + Cold start: -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + Cold start: -9999: use half bankfull + + + + + + PRERUNDIR/tha.end.nc + initial soil moisture content layer 1a (superficial soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thb.end.nc + initial soil moisture content layer 1b (upper soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thc.end.nc + initial soil moisture content layer 2 (lower soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + Cold start: -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + Cold start: -9999: use 0 + + + + + + Initial lake level [m] + Cold start: -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzf.end.nc + water in upper groundwater store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thfa.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfb.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfc.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzi.end.nc + water in groundwater upper store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thia.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thib.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thic.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + ************************************************************** + INITIAL CONDITIONS IMPERVIOUS AREAS + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + + + ************************************************************** + PREFIXES OF METEO AND VEGETATION RELATED VARIABLES + ************************************************************** + + + + + prefix precipitation maps + + + + + + prefix average temperature maps + + + + + + prefix E0 maps + + + + + + prefix ES0 maps + + + + + + prefix ET0 maps + + + + + + prefix LAI maps + + + + + + prefix LAI forest maps + + + + + + prefix LAI irrigation maps + + + + + + prefix domestic water use maps + + + + + + prefix livestock water use maps + + + + + + prefix energy water use maps + + + + + + prefix industry water use maps + + + + + + prefix variable water fraction + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier [-] applied to potential precipitation rates + + + + + + Multiplier [-] applied to potential evapo(transpi)ration rates + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier [-] applied to precipitation that falls as snow + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + ************************************************************** + IRRIGATION AND WATER ABSTRACTION RELATED PARAMETERS + ************************************************************** + + + + + default: 0.75 + Field application irrigation efficiency [-]: max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency [-]: around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor [-] to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) [-] + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) [-] + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) [-] + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) [-] + Source: EEA (2005) State of Environment + + + + + + Default : 0.2 + $(PathRoot)/leakage.map + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) [-] + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) [-] + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) [-] + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1) [-] + scenruse.map + + + + + + + Irrigation crop coefficient [-] + + + + + + Irrigation crop group number [-] + + + + + + Population [units] + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + ? + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use UpperZoneTimeConstant, LowerZoneTimeConstant, + GwPercValue as calibration constants + - calibrate on GwLossFraction if necessary + + + + + length of the window used to smooth the LZ zone [number of cell length] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + Fraction of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + kinematic wave parameter beta [-]: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient [-] (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient [-] (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + VARIABLES RELATED TO OPTIONS + These all need to have some (real or bogus) value, + even for options that are not actually used! + ************************************************************** + + + + ************************************************************** + RESERVOIR OPTION + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Initial reservoir fill fraction [-] + Cold start: -9999 sets initial fill to normal storage limit + if you're not using the reservoir option, enter some bogus value + + + + + + + + ************************************************************** + LAKE OPTION + ************************************************************** + + + + + Cold start: -9999 + Estimate of average net inflow into lake (=inflow - evaporation) [cu m / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + + + + ************************************************************** + POLDER OPTION + ************************************************************** + + + + + Weir constant [-] (Do not change!) + + + + + + Initial water level in polder [m] + + + + + + + + ************************************************************** + DYNAMIC WAVE OPTION + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + test_chanmct_all + test_chanmct_2 + chanmct_single + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0) + Default: 0.001 + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (OPTIONAL) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs [cu m / s] + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + OPTIONAL: observed or simulated input hydrographs as + time series [cu m / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + PF REPORTING OPTION + ************************************************************** + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF soil layer 1a, other fraction + + + + + + Reported pF soil layer 1b, other fraction + + + + + + Reported pF soil layer 2, other fraction + + + + + + Reported pF soil layer 1a, forest fraction + + + + + + Reported pF soil layer 1b, forest fraction + + + + + + Reported pF layer 2, forest fraction + + + + + + Reported pF soil layer 1a, irrigation fraction + + + + + + Reported pF soil layer 1b, irrigation fraction + + + + + + Reported pF soil layer 2, irrigation fraction + + + + + + + + + + + + + + + + + This is necessary when using projected coordinates (x,y) + + + + + + + + + + + Clone map + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + + + ************************************************************** + TIMESTEP RELATED PARAMETERS + ************************************************************** + + + + + Calendar convention + + + + + + Calendar day is back! + Calendar day number of 1st day in model run + e.g. 1st of January: 1; 1st of June 151 (or 152 in leap year) + Needed to read out LAI tables correctly + + + + + + timestep [seconds] (60*60*24) + + + + + + Sub time step used for kinematic wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + Number of first time step in simulation + + + + + + Number of last time step in simulation + + + + + + Number of days used for internal spin-up (fluxes computations during prerun) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier applied to potential precipitation rates [-] + + + + + + Multiplier applied to potential evapo(transpi)ration rates [-] + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient [-] for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier applied to precipitation that falls as snow + + + + + + Snowmelt coefficient [mm C-1 day-1)] + See also Martinec et al., 1998. + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [deg C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + ************************************************************** + INFILTRATION PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Power in Xinanjiang distribution function [-] + + + + + + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use all other parameters as calibration constants + + + + + + Time constant for water in upper zone [days] + + + + + + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + water use daily maps with a (in this case negative) volume of water [cu m/s] + + + + + + table with days for each water use maps + 1st column: range of days; 2nd column: suffix of wuse map + + + + + + Percentage of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + maximum number of loops for calculating evaporation + = distance water is taken to satisfy the need of evaporation from open water + + + + + + Reported evaporation from open water [mm] + + + + + + Time series of upstream water evaporation from open water at gauging stations + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + Multiplier applied to Channel Manning's n + + + + + + Multiplier applied to Channel Manning's n for second routing line + + + + + + Multiplier applied to Channel Manning's n for MCT routing + + + + + + Multiplier applied to average Q to split into a second line of routing + + + + + + Multiplier applied to ChanBottomWidth + + + + + + Multiplier applied to ChanDepthThreshold + + + + + + Multiplier applied to ChanSdXdY + + + + + + kinematic wave parameter: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOR THE WATER BALANCE MODEL + (can be either maps or single values) + ************************************************************** + + + + + PRERUNDIR/lzavin + Reported map of average percolation rate from upper to + lower groundwater zone (reported for end of simulation) [mm/day] + + + + + + PRERUNDIR/avgdis + CHANNEL split routing in two lines + Average discharge map [m3/s] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, other land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, forest land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, irrigated land cover fraction, average flux over the simulation period [mm] + + + + + + if init condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Initial overland flow storage [m3], direct runoff fraction + + + + + + Initial overland flow storage [m3], other fraction + + + + + + Initial overland flow storage [m3], forest fraction + + + + + + initial snow depth in snow zone A [mm] + + + + + + initial snow depth in snow zone B [mm] + + + + + + initial snow depth in snow zone C [mm] + + + + + + initial Frost Index value [degC/day] + + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + water in groundwater lower store [mm] + -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + -9999: use half bankfull + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + -9999: use 0 + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + -9999: use 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for forest fraction + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + cumulative depression storage [mm] + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for irrigation + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + + + ************************************************************** + INPUT METEOROLOGICAL AND VEGETATION TIMESERIES AS MAPS + ************************************************************** + + + + + precipitation [mm/day] + + + + + + average daily temperature [C] + + + + + + daily reference evaporation (free water) [mm/day] + + + + + + daily reference evaporation (soil) [mm/day] + + + + + + daily reference evapotranspiration (crop) [mm/day] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + + + ************************************************************** + INPUT WATER USE MAPS AND PARAMETERS + ************************************************************** + + + + + Domestic water abstraction daily maps [mm] + + + + + + Livestock water abstraction daily maps [mm] + + + + + + Energy water abstraction daily maps [mm] + + + + + + Industry water abstraction daily maps [mm] + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) + Source: EEA (2005) State of Environment + + + + + + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1 + scenruse.map + + + + + + + Field application irrigation efficiency max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency, around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Irrigation crop coefficient + + + + + + Irrigation crop group number + + + + + + Population + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + + + + + + + + ************************************************************** + RICE IRRIGATION + ************************************************************** + + + + + water amount in mm per day + 10 mm for 10 days (total 10cm water) + + + + + + FAO: percolation for heavy clay soils: PERC = 2 mm/day + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + + + ************************************************************** + REPORTED OUTPUT MAPS + ************************************************************** + + + + + Reported discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Reported Topsoil moisture [%] + + + + + + Reported Topsoil moisture [%] + + + + + + Reported discharge [cu m/s] at the end of a timestep + + + + + + Reported discharge [cu m/s] but cut by a discharge mask map + + + + + + Reported water level [m] % False by default + + + + + + + + STATE VARIABLES AT SELECTED TIME STEPS + ONLY FOR INITIALISATION OF SUCCEEDING RUNS + REPORTING TIME STEPS SET THROUGH "ReportSteps" OPTION + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + + Reported cross section area 2nd line of routing [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lowerupper layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported transpiration maps, other fraction [mm] + + + + + + Reported transpiration maps, forest fraction [mm] + + + + + + Reported transpiration maps, irrigated fraction [mm] + + + + + + Reported transpiration maps, weighted sum over the fractions of each pixel [mm] + + + + + + + + "END" MAPS, AKA REPORTED OUTPUT MAPS CALLED "END" + Same as above, but always at last time step + Support for these "end" maps will most likely be + discontinued some time soon + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + Reported lake level [m] + + + + + + Reported lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Reported lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Reported lake storage [m3] + + + + + + + Reported reservoir filling [-] + + + + + + Reported cross section area 2nd line of rounting [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Reported average discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1c (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + INDIVIDUAL DRIVING METEOROLOGICAL VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + Note reporting is done as a quantity per time step, not as + an intensity (as in meteo input!) + + + + + Precipitation [mm per time step] + + + + + + Average DAILY temperature [degrees C] + + + + + + Potential reference evapotranspiration [mm per time step] + + + + + + Potential evaporation from bare soil surface [mm per time step] + + + + + + Potential evaporation from open water surface [mm per time step] + + + + + + + + INDIVIDUAL STATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported total water storage [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct runoff fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surfac + + + + + + Reported channel cross-section area [m2] + + + + + + Reported snow cover [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage, other fraction [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage, forest fraction [mm] + + + + + + Reported interception storage, irrigation fraction [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported interception (depression) storage, direct runoff (impervious) fraction [mm] + + + + + + + + INDIVIDUAL RATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported rain (excluding snow)[mm] + + + + + + Reported snow (excluding rain)[mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported actual evapotranspiration [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, other fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, forest fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, irrigation fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, other fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, forest fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), other fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), forest fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), weighted sum over the fraction of each pixel [mm] + + + + + + Reported available groundwater LZ+ GWLoss [mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported fast runoff = surface + UZ [mm] + + + + + + Reported GWloss [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported total runoff that enters the channel: groundwater + surface runoff [mm] + + + + + + Reported Direct Runoff [mm] + + + + + + Reported FlowVelocityMSecMaps [m/s] + + + + + + Reported TravelDistance [m] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported leaf drainage Forest[mm] + + + + + + Reported interception forest [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported transpiration forest [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + MISCELLANEOUS OUTPUT MAPS AND TIME SERIES + + + + + Time series of average percolation rate from upper to + lower groundwater zone (reported at sites) [mm/day] + + + + + + Time series of average percolation rate from upper to + lower groundwater zone (average for upstream area of each gauge) [mm/day] + + + + + + Reported number of days in simulation with soil moisture stress [days] + + + + + + Reported number of days in simulation with soil moisture stress for forest fraction [days] + + + + + + Reported soil transpiration reduction factor [-] for other landuse + values below 1 indicate soil moisture stress + + + + + + Reported soil transpiration reduction factor [-] + values below 1 indicate soil moisture stress + + + + + + + + ************************************************************** + REPORTED OUTPUT TIME SERIES + ************************************************************** + + + + + Reported average discharge over the model time step [cu m/s] + + + + + + Reported instantaneous discharge at the end of routing sub-step [cu m/s] + + + + + + Reported average discharge on the last routing sub-step [cu m/s] + + + + + + Reported water level [m] + + + + + + + OUTPUT AT SITES: STATE VARIABLES + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + OUTPUT AT SITES: RATE VARIABLES + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation from interception storage [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + + + + + + + + + + AVERAGE VALUES OF METEOROLOGICAL FORCING VARIABLES + UPSTREAM OF GAUGES + (only if repMeteoUpsGauges option is activated) + + + + + Precipitation [mm/time step] + + + + + + Average temperature [deg C] + + + + + + Reference evapotranspiration [mm/time step] + + + + + + Potential soil evaporation [mm/time step] + + + + + + Potential open water evaporation [mm/time step] + + + + + + ESActPixel+self.var.TaPixel+self.var.TaInterceptionAll+self.var.EvaAddM3*self.var.M3toMM + + + + + + + + AVERAGE VALUES OF MODEL STATE VARIABLES + UPSTREAM OF GAUGES + (only if repStateUpsGauges option is activated) + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture upper layer [mm3/mm3] + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + AVERAGE VALUES OF MODEL RATE VARIABLES + UPSTREAM OF GAUGES + (only if repRateUpsGauges option is activated) + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Snow melt [mm] + + + + + + Interception [mm] + + + + + + Actual transpiration [mm] + + + + + + Actual evaporation [mm] + + + + + + Evaporation from interception storage [mm] + + + + + + Leaf drainage [mm] + + + + + + Infiltration [mm] + + + + + + Preferential flow [mm] + + + + + + Percolation upper to lower soil layer [mm] + + + + + + Seepage from lower soil layer to groundwater [mm] + + + + + + Surface runoff [mm] + + + + + + Outflow from upper groundwater zone (to channel) [mm] + + + + + + Outflow from lower groundwater zone (to channel) [mm] + + + + + + Total runoff [mm] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + NUMERICS + + + + + Reported mass balance error at outlet [cu m] + + + + + + Reported mass balance error at outlet (as mm water slice) + + + + + + Reported mass balance error due to the split routing module, for each catchment [m3] + + + + + + Reported discharge error at the outlet as a consequence of the mass balance error within the split routing module, for each catchment [m3/s] + + + + + + Reported ratio between the mass balance error and the water volume storage, for each catchment [m3/m3] + + + + + + Average value of the sum of the fractions within a catchment: this value must be 1.0 in order to avoid mass balace errors! [-] + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of sub-steps needed for soil moisture + routine + + + + + + + + ************************************************************** + BASE INPUT MAPS AND TABLES + ************************************************************** + + + + + ************************************************************** + TOPOGRAPHY MAPS + ************************************************************** + + + + + $(PathMaps)/ldd.map + local drain direction map (1-9) + + + + + + slope gradient [-] (0.50 -> tangent=0.5, angle=26.5 degrees) + + + + + + Elevation standard deviation [m], i.e. altitude difference elevation within pixel. + Used for sub-pixel modelling of snow accumulation + and melt + + + + + + outlets.map + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + + + + + + map with monitoring sites (1,2,3 etc) + + + + + + optional map with pixel length [m], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + optional map with pixel area [m2], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + + + ************************************************************** + SOIL PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Soil depth for 1st layer: 1a (superficial layer) + Minimum Soil Depth [mm] for superficial soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b (upper layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 2nd layer: 2 (lower layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 1st layer: 1a + Minimum Soil Depth [mm] for upper soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b + Minimum Soil Depth [mm] for lower soil layer + + + + + + Soil depth for 2nd layer: 2 + Minimum Soil Depth [mm] for lower soil layer 300 + + + + + + + + ************************************************************** + LAND USE RELATED MAPS AND TABLES + ************************************************************** + + + + + $(PathMapsLanduse)/fracsealed + urban area (0-1) + + + + + + stack of Direct Runoff fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracforest + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of forest fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracwater + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of water fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracother + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of other fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracirrigated + irrigated area fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of Irrigation fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracDrained.map + drained fraction from irrigated area (0-1) + + + + + + rice fraction of a pixel (0-1) + + + + + + stack of rice fraction maps (0-1) + + + + + + groundwater used fraction of a pixel (0-1) + + + + + + NonConventionalWaterUsed (0-1) + + + + + + lake and reservoir water used, fraction of a pixel (0-1) + + + + + + $(PathMaps)/eflow.map + EFlowThreshold is map with m3/s discharge, e.g. the 10th percentile discharge of the baseline run + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + + + ************************************************************** + Variable Channel NoSubStepChannel + ************************************************************** + + + + + UpArea do be included in max. celerity + + + + + + variable Number of sub steps for the kinematic wave routing + + + + + ************************************************************** + CHANNEL MAPS + ************************************************************** + + + + + Boolean map with value 1 at channel pixels and 0 at + all other pixels + IMPORTANT: IF NON-CHANNEL PIXELS HAVE MISSING VALUES + THEN THIS MAY RESULT IN INCORRECT RESULTS + + + + + + Channel gradient (fraction, dy/dx) + + + + + + Channel Manning's n [m^(1/3) s^(-1)] + + + + + + Channel length [m] + + + + + + Channel bottom width [m] + + + + + + Channel side slope, expressed as gradient + !! expressed as dx/dy !!! (NOT dy/dx, which would perhaps be more logical) + + + + + + Floodplain Width [m] + + + + + + Bankfull channel depth [m] + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) + Each parameter is defined for upper (1a and 1b) and + lower (2) soil layers + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 2 (lower soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 2 (lower soil layer) + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) for Forest + Each parameter is defined for 1a and 1b + Normal parameter is taken for the lower soil layer + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) for soil layer 1a (superficial soil layer) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + + + ************************************************************** + RESERVOIRS (if used ) + Input maps + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Map with location of reservoirs (number) + + + + + + Initial reservoir storage (fraction) + + + + + + Input tables + + + + + Total reservoir storage capacity + Units: m³ + + + + + + Reservoir inflow associated with the 100-year return period. + It is modified by a calibration parameter (`ReservoirFloodOutflowFactor`) to + define the inflow above which the reservoir switches to flood control mode + Units: m³/s + + + + + + NReservoir average inflow used to define the normal reservoir release + Units: m³/s + + + + + + Minimum reservoir release: + Units: m³/s + + + + + Output time series + + + + + name of output TSS file with Reservoir Inflow + + + + + + name of output TSS file with Reservoir Outflow + + + + + + name of output TSS file with Reservoir Filling + + + + + + name of output TSS file with Reservoir storage [m3] + + + + + + + name of output map(s) with Reservoir Filling + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow that defines a flood event, i.e., the + reservoir routine switches to flood control mode. + + + + + + + + ************************************************************** + LAKES (if used ) + Input maps + ************************************************************** + + + + + Map with location of lakes + + + + + + Initial lake level [m] + -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Estimate of average net inflow into lake (=inflow - evaporation) [m3 / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + Input tables + + + + + Lake surface area [m2] + + + + + + Lake parameter A [m/s] + + + + + + Multiplier applied to the lake parameter A + + + + + Output time series + + + + + Output timeseries file with lake inflow [m3 /s] + + + + + + Output timeseries file with lake outflow [m3 /s] + + + + + + Output timeseries file with lake level [m] + + + + + + Output map(s) with lake level [m] + + + + + + Output map with lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Output map with lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + + + ************************************************************** + POLDERS(if used) + ************************************************************** + + + + + + Weir constant (fixed) [-] + + + + + + Map with polder locations + + + + + + Initial water level in polders [m] + + + + + + Polder maximum storage capacity [cu m] + + + + + + Area of polder [sq m] + + + + + + Width of polder outlet/inlet [m] + + + + + + Polder bottom level, measured from channel bottom [m] + + + + + + Time step at which polder opens in case of regulated polder (use bogus value of -9999 in table in case of unregulated polder) + + + + + + Time step at which water stored in polder is released again(use bogus value of -9999 in table in case of unregulated polder) + + + + + + name of output TSS file with polder flux [cu m / s]. Positive for flow from channel to polder, negative for polder to channel + + + + + + name of output TSS file with polder level [m] + + + + + + name of output map(s) with polder level + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (if used) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + Observed or simulated input hydrographs as + time series [m3 / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + DYNAMIC WAVE(if used) + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + Boolean map with value 1 at channel pixels where dynamic wave is + used, and 0 at all other pixels + + + + + + Channel bottom level [m] + + + + + + Nominal map with channel cross section IDs + + + + + + Table with cross section parameters (H,A,P) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be >0.001) + + + + + + + + ************************************************************** + PF REPORTING (if used) + ************************************************************** + + + + PF PARAMETERS + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, VALUES AT SITES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, AVERAGE VALUES UPSTREAM OF GAUGES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + + ************************************************************** + Ad'a addition + ************************************************************** + + + + + threshold value below which there is no outflow to the channel [mm] + + + + + + length of the window used to smooth the LZ zone [number of cells] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + Water demand output maps + ************************************************************** + + + + + day of the year when the yearly endcalculation is done e.g. 31/10/xxxx = 304 + + + + + + + TotalAbstractionFromGroundwater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] summed up for water regions + + + + + + Total Abstraction From SurfaceWater and Groundwater [mm] summed up for water regions, montly values + + + + + + TotalPaddyRiceIrrigationAbstraction [m3] + + + + + + Water Exploitation Index - Consumption; for water regions (this is the official EU WEI+): consumption / internal and external availability + + + + + + Water Exploitation Index - Abstraction; for water regions: abstraction / internal and external availability + + + + + + Water Exploitation Index - Demand; for water regions: demand / internal and external availability + + + + + + Water Exploitation Index - Consumption; for water regions + + + + + + Internal available water + + + + + + External available water + + + + + + Region Water Consumption + + + + + + Region Water Consumption + + + + + + Reservoir and Lake storage in m3 at end of month + + + + + + Reservoir and Lake abstraction in m3 + + + + + + Irrigation water shortage in m3 for month + + + + + + Surface water availability in m3 for potential irrigation for each day + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly Water Dependency Index (0-1) (De Roo 2015) + WDI = Upstream Inflow Actually Used / Total Water Demand + Values close to 1 give extreme dependency on upstream water + + + + + + Monthly Water Security Index (0-1) (De Roo 2015) + WSI = Upstream Inflow Actually Used / Upstream Inflow Available + Values close to 1 give extreme vulnerability to upstream water + + + + + + Monthly Water Sustainability Index (0-1) (De Roo 2015) + WTI = 1-SurfaceWaterDeficit / TotalWaterDemand + Values of 1 indicate complete sustainable conditions, no water deficit + Values less than 1 indicate that considerable deep groundwater resources or desalinated water is used + + + + + + Monthly Falkenmark 1 Index (tochanm3) + + + + + + Monthly Falkenmark 2 Index (tochanm3+reservoirlakeabstraction) + + + + + + Monthly Falkenmark 3 Index (tochanm3+reservoirlakeabstraction+externalinflow) + + + + + + + Abstraction from groundwater in m3 per timestep + + + + + + Abstraction from surface water in m3 per timestep + + + + + + Region abstraction from surface water in m3 per timestep + + + + + + Region Total Abstraction From Lakes and Reservoirs in m3, per timestep + + + + + + Lake Abstraction per timestep in m3 + + + + + + ReservoirAbstraction per timestep in M3 + + + + + + ReservoirStorage in M3 + + + + + + LakeStorage in M3 + + + + + + AreatotalIrrigationUseM3 + + + + + + FractionAbstractedFromChannels + + + + + + EFlowIndicator (1 on day with ChanQ smaller than EflowThreshold, 0 on normal days) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + Peter's addition + ************************************************************** + + + + + + [mm] + + + + + + [mm] + + + + + + [mm] + + + + + + + + + + areamap MaskMap; + timer StepStart StepEnd 1; + ReportSteps=$(ReportSteps); + + + + + diff --git a/tests/data/LF_MCT_UseCase/settings/mct_warm_interface.xml b/tests/data/LF_MCT_UseCase/settings/mct_warm_interface.xml new file mode 100644 index 00000000..ac54343a --- /dev/null +++ b/tests/data/LF_MCT_UseCase/settings/mct_warm_interface.xml @@ -0,0 +1,5993 @@ + + + + + + + #----------------------------------------------------------- + # modelling and reporting options + #----------------------------------------------------------- + + + + # options to turn hydrological modules on/off + + + + + + + + + + + + + + + + + + + + + + + + # use inflow data + + + # option to compute indicators + + + # option to initialize Lisflood + + + + # option to read/write NetCDF + + + + + + + #----------------------------------------------------------- + # report time series + #----------------------------------------------------------- + # report discharge TS + + + # report gauges and sites + # sites (pixel average) + + + # gauges (catchment average) + + + + + # report reservoirs and lakes + + + + # report mass balance + + + #----------------------------------------------------------- + # report maps + #----------------------------------------------------------- + # report state maps + + + # report end maps + + + # report output maps + # forcings + + + + + + + # dicharge + + + + + + # variables + + + + + + + + + + + + + + + + #Surface runoff + #Surface runoff + UZ [mm] + #Surface runoff + UZ [mm] + LZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + netCDF parameters + ************************************************************** + + + + + !-- Optimization of netCDF I/O through chunking and caching. + + The option "NetCDFTimeChunks" may take the following values: + - "-1" : Load everything upfront + - "[positive integer number]" : Chunk size defined by user + - "auto" : Let xarray to decide + + + + + The option "MapsCaching" may take the following values: + - "True" : Cache maps during execution + - "False" : No caching + + + + ************************************************************** + PARALLELIZED KINEMATIC ROUTING + ************************************************************** + + + + + The option "OutputMapsChunks" may take the following values: + - "[positive integer number]" : Dump outputs to disk every X steps (default 1) + + + + + The option "OutputMapsDataType" sets the output data type and may take the following values: + - "float64" + - "float32" + + + + ************************************************************** + PARALLELISATION WITH NUMBA (USED IN ROUTING AND SOILLOOP) + ************************************************************** + + + + + !-- Parallelisation of using Numba runtime compiled library . + The option "numCPUs_parallelNumba" may take the following values: + - "0" : set to NUMBA_NUM_THREADS Environment Variable + (if NUMBA_NUM_THREADS is not set, will take the number of CPU cores determined by python's multiprocessing.cpu_count()) + - "1" : serial execution (not parallel) + - "2", "3", ... : manual setting of the number of parallel threads. + (if exceeding NUMBA_NUM_THREADS, the value is set to NUMBA_NUM_THREADS) --> + + + + + ************************************************************** + AREA AND OUTLETS + ************************************************************** + + + + + MAPSDIR + Root directory (tables and parameters) + $(SettingsPath)/.. + + + + + + Clone map + col row cellsize xupleft yupleft + or pcraster maps or netcdf maps + + + + + + 4307500 2377500 outlet + 4307500 2377500 4292500 2377500 4302500 2377500 4302500 2372500 4297500 2372500 4312500 2377500 4287500 2372500 4282500 2367500 + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + lat lon (lat2 lon2 ...) + or pcraster maps or netcdf maps + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + This is needed when using projected coordinates + + + + + ************************************************************** + TIME-RELATED CONSTANTS + ************************************************************** + + + + + Calendar convention + + + + + + Reference day and time + + + + + + timestep [seconds] + + + + + + 17280 5 times subrouting + 21600 6 hours + Sub time step used for kinematic and MCT wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + 01/01/YEAR_START 12:00 + Number of first time step in simulation + + + + + + 01/01/YEAR_END 06:00 + Number of last time step in simulation + + + + + + low value to limit testing time + + + + + + 1..9999 + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + ************************************************************** + MONTE CARLO, KALMAN FILTER + ************************************************************** + + + + + Number of sample to use in MonteCarlo simulations + + + + + + Number of cores of the computer to use in MonteCarlo simulations + This only works with Linux, if set to 1 no forking will be used + + + + + + Time steps at which to write model state maps (i.e. only + those maps that would be needed to define initial conditions + for succeeding model run) + + + + + + + + ************************************************************** + CALIBRATION PARAMETERS + with .nc format: than working with smaller sub-areas is possible + ************************************************************** + + + + default: 10 + $(PathParams)/params_UpperZoneTimeConstant + Time constant for water in upper zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 100 + $(PathParams)/params_LowerZoneTimeConstant + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + default: 0.5 + $(PathParams)/GwPercValue + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + default: 0.0 + $(PathParams)/GwLoss + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + default: 10 + $(PathParams)/params_LZThreshold + threshold value [mm] of the water storage in the lower groundwater zone. + If the water storage in the lower groundwater zone decreases below LZThreshold, + the flow from the lower zone to the nearby rivers (base-flow) stops. + + + + + + default: 0.7 [-] + $(PathParams)/b_Xinanjiang + Power in Xinanjiang distribution function [-] + + + + + + default: 3.5 [-] + $(PathParams)/PowerPrefFlow + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + default: 2.0 [-] + $(PathParams)/CalChanMan1 + Multiplier [-] applied to Channel Manning's n + + + + + + default: 4.0 [mm C-1 day-1] + $(PathParams)/SnowMeltCoef + SRM: 0.45 cm C-1 day-1 ( = 4.50 mm C-1 day-1), Kwadijk: 18 mm C-1 month-1 (= 0.59 mm C-1 day-1) + See also Martinec et al., 1998. + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan2 + Multiplier [-] applied to Channel Manning's n for second line of routing + + + + + + default: 3.0 [-] + $(PathParams)/CalChanMan3 + Multiplier [-] applied to Channel Manning's n for MCT routing + + + + + + default: 1.0 [-] + $(PathParams)/LakeMultiplier + Multiplier applied to the lake parameter A + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow (`ReservoirFloodOutflow`) that defines the inflow + value that switches, when exceeded, the reservoir routine to flood control mode. + It can be a map (NetCDF), a table (TXT) or a float. Negative values will be replaced by + the default value of 0.3 + Units: - + Range: 0.1 - 0.5 + Default: 0.3 + + + + + + default: 5.0 [mm/day] (not included in calibration) + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + default: 2.0 + $(PathParams)/params_QSplitMult + Multiplier applied to average Q to split into a second line of routing + + + + + + default: 1.0 + $(PathParams)/params_ChanBottomWMult + Multiplier applied to ChanBottomWidth + + + + + + default: 1.0 + $(PathParams)/params_ChanDepthTMult + Multiplier [] applied to ChanDepthThreshold + + + + + + default: 1.0 + $(PathParams)/params_ChanSMult + Multiplier [] applied to ChanSdXdY + + + + + + + ************************************************************** + FILE PATHS + ************************************************************** + + + + + RUNDIR + Output path (org=$(PathRoot)/out) + + + + + + INITDIR + Path of the initial value maps e.g. lzavin.map (org=$(PathRoot)/outPo) + + + + + + Static maps path + + + + + + Inflow path + + + + + + Calibration parameter path + + + + + + Tables path + + + + + + Maps instead of tables path + + + + + + Maps instead of tables for soil hydraulics path + + + + + + Maps for transient land use changes every 5 years + + + + + + Maps for land use fractions and related land use maps + + + + + + Water use maps path + + + + + + FORCINGSDIR + Meteo path + + + + + + Leaf Area Index maps path + + + + + + variable water fraction maps path + + + + + + + + ************************************************************** + INITIAL CONDITIONS + (maps or single values) + ************************************************************** + + + + + if init. condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Cold start: 0 + Initial overland flow storage [m3], direct runoff fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], other fraction + + + + + + Cold start: 0 + Initial overland flow storage [m3], forest fraction + + + + + + Cold start: 0 + initial snow depth in snow zone A [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone B [mm] + + + + + + Cold start: 0 + initial snow depth in snow zone C [mm] + + + + + + Cold start: 0 + initial Frost Index value [degC/day] + + + + + + Cold start: 0 + cumulative interception [mm] + + + + + + Cold start: 0 + PRERUNDIR/uz.end.nc + water in upper store [mm] + + + + + + Cold start: 1 + days since last rainfall [days] + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + PRERUNDIR/lz.end.nc + water in lower store [mm] + Cold start: -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + Cold start: -9999: use half bankfull + + + + + + PRERUNDIR/tha.end.nc + initial soil moisture content layer 1a (superficial soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thb.end.nc + initial soil moisture content layer 1b (upper soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thc.end.nc + initial soil moisture content layer 2 (lower soil layer) [mm3/mm3] + Cold start: -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + Cold start: -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + Cold start: -9999: use 0 + + + + + + Initial lake level [m] + Cold start: -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + Cold start: -9999 sets initial value + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzf.end.nc + water in upper groundwater store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thfa.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfb.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thfc.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + PRERUNDIR/uzi.end.nc + water in groundwater upper store [mm] + Cold start: 0 + + + + + + days since last rainfall + Cold start: 1 + + + + + + PRERUNDIR/thia.end.nc + initial soil moisture content [mm3/mm3] layer 1a (superficial soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thib.end.nc + initial soil moisture content [mm3/mm3] layer 1b (upper soil layer) + Cold start: -9999: use field capacity values + + + + + + PRERUNDIR/thic.end.nc + initial soil moisture content [mm3/mm3] layer 2 (lower soil layer) + Cold start: -9999: use field capacity values + + + + + + + + ************************************************************** + INITIAL CONDITIONS IMPERVIOUS AREAS + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + Cold start: 0 + + + + + + + + ************************************************************** + PREFIXES OF METEO AND VEGETATION RELATED VARIABLES + ************************************************************** + + + + + prefix precipitation maps + + + + + + prefix average temperature maps + + + + + + prefix E0 maps + + + + + + prefix ES0 maps + + + + + + prefix ET0 maps + + + + + + prefix LAI maps + + + + + + prefix LAI forest maps + + + + + + prefix LAI irrigation maps + + + + + + prefix domestic water use maps + + + + + + prefix livestock water use maps + + + + + + prefix energy water use maps + + + + + + prefix industry water use maps + + + + + + prefix variable water fraction + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier [-] applied to potential precipitation rates + + + + + + Multiplier [-] applied to potential evapo(transpi)ration rates + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier [-] applied to precipitation that falls as snow + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + ************************************************************** + IRRIGATION AND WATER ABSTRACTION RELATED PARAMETERS + ************************************************************** + + + + + default: 0.75 + Field application irrigation efficiency [-]: max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency [-]: around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor [-] to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) [-] + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) [-] + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) [-] + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) [-] + Source: EEA (2005) State of Environment + + + + + + Default : 0.2 + $(PathRoot)/leakage.map + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) [-] + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) [-] + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) [-] + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1) [-] + scenruse.map + + + + + + + Irrigation crop coefficient [-] + + + + + + Irrigation crop group number [-] + + + + + + Population [units] + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + ? + + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use UpperZoneTimeConstant, LowerZoneTimeConstant, + GwPercValue as calibration constants + - calibrate on GwLossFraction if necessary + + + + + length of the window used to smooth the LZ zone [number of cell length] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + Fraction of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + kinematic wave parameter beta [-]: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient [-] (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient [-] (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + VARIABLES RELATED TO OPTIONS + These all need to have some (real or bogus) value, + even for options that are not actually used! + ************************************************************** + + + + ************************************************************** + RESERVOIR OPTION + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Initial reservoir fill fraction [-] + Cold start: -9999 sets initial fill to normal storage limit + if you're not using the reservoir option, enter some bogus value + + + + + + + + ************************************************************** + LAKE OPTION + ************************************************************** + + + + + Cold start: -9999 + Estimate of average net inflow into lake (=inflow - evaporation) [cu m / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + + + + ************************************************************** + POLDER OPTION + ************************************************************** + + + + + Weir constant [-] (Do not change!) + + + + + + Initial water level in polder [m] + + + + + + + + ************************************************************** + DYNAMIC WAVE OPTION + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + test_chanmct_all + test_chanmct_2 + chanmct_single + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be 0) + Default: 0.001 + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (OPTIONAL) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs [cu m / s] + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + OPTIONAL: observed or simulated input hydrographs as + time series [cu m / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + PF REPORTING OPTION + ************************************************************** + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF soil layer 1a, other fraction + + + + + + Reported pF soil layer 1b, other fraction + + + + + + Reported pF soil layer 2, other fraction + + + + + + Reported pF soil layer 1a, forest fraction + + + + + + Reported pF soil layer 1b, forest fraction + + + + + + Reported pF layer 2, forest fraction + + + + + + Reported pF soil layer 1a, irrigation fraction + + + + + + Reported pF soil layer 1b, irrigation fraction + + + + + + Reported pF soil layer 2, irrigation fraction + + + + + + + + + + + + + + + + + This is necessary when using projected coordinates (x,y) + + + + + + + + + + + Clone map + + + + + + netcdf template used to copy metadata information for writing netcdf + + + + + + latitude map to be used for snow/ice modelling + + + + + + + + ************************************************************** + TIMESTEP RELATED PARAMETERS + ************************************************************** + + + + + Calendar convention + + + + + + Calendar day is back! + Calendar day number of 1st day in model run + e.g. 1st of January: 1; 1st of June 151 (or 152 in leap year) + Needed to read out LAI tables correctly + + + + + + timestep [seconds] (60*60*24) + + + + + + Sub time step used for kinematic wave channel routing [seconds] + Within the model,the smallest out of DtSecChannel and DtSec is used + + + + + + Number of first time step in simulation + + + + + + Number of last time step in simulation + + + + + + Number of days used for internal spin-up (fluxes computations during prerun) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND Interception + ************************************************************** + + Suggested parameterisation strategy: + + - leave all these parameters at their default values. + in some very special cases CalEvaporation may be set to some + value other than one + + + + + + Multiplier applied to potential precipitation rates [-] + + + + + + Multiplier applied to potential evapo(transpi)ration rates [-] + + + + + + Time constant for water in interception store [days] + + + + + + Average extinction coefficient [-] for the diffuse radiation flux + varies with crop from 0.4 to 1.1 (Goudriaan (1977)) + + + + + + Critical amount of available water (expressed in [mm/day]!), above which 'Days Since Last Rain' parameter is + set to 1 + + + + + + maximum depression storage for water on impervious surface + which is not immediatly causing surface runoff [mm] + + + + + + + + ************************************************************** + SNOW AND FROST RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - estimate SnowFactor from prior data (if available), otherwise use 1 + - use SnowMeltCoef as a calibration constant + - leave all other parameters at default + + + + + + Multiplier applied to precipitation that falls as snow + + + + + + Snowmelt coefficient [mm C-1 day-1)] + See also Martinec et al., 1998. + + + + + + range [mm C-1 day-1] of the seasonal variation + SnowMeltCoef is the average value + + + + + + Average temperature [deg C] at which snow melts + + + + + + Average temperature [deg C] below which precipitation is snow + + + + + + Temperature lapse rate with altitude [deg C / m] + + + + + + Daily decay coefficient [day-1], (Handbook of Hydrology, p. 7.28) + + + + + + Snow depth reduction coefficient, [cm-1], (HH, p. 7.28) + + + + + + Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996) + + + + + + Degree Days Frost Threshold (stops infiltration, percolation and capillary rise) + Molnau and Bissel found a value 56-85 for NW USA. + + + + + + + + ************************************************************** + INFILTRATION PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Power in Xinanjiang distribution function [-] + + + + + + Power that controls increase of proportion of preferential + flow with increased soil moisture storage [-] + + + + + + + + ************************************************************** + GROUNDWATER RELATED PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - leave GwLossFraction at 0 unless prior information show groundwater loss + is important + - use all other parameters as calibration constants + + + + + + Time constant for water in upper zone [days] + + + + + + Time constant for water in lower zone [days] + This is the average time a water 'particle' remains in the reservoir + if we had a stationary system (average inflow=average outflow) + + + + + + Maximum rate of percolation going from the Upper to the Lower + response box [mm/day] + + + + + + Maximum percolation rate from the lower groundwater zone [mm/days]. GWLoss + it’s lost beyond the catchment boundaries or to deep groundwater systems. + A value of 0 (closed lower boundary) is recommended as a starting value. + + + + + + + + ************************************************************** + EVAPORATION FROM OPEN WATER + ************************************************************** + + + + + water use daily maps with a (in this case negative) volume of water [cu m/s] + + + + + + table with days for each water use maps + 1st column: range of days; 2nd column: suffix of wuse map + + + + + + Percentage of maximum extend of water + + + + + + Mask with Lakes from GLWD database + + + + + + maximum number of loops for calculating evaporation + = distance water is taken to satisfy the need of evaporation from open water + + + + + + Reported evaporation from open water [mm] + + + + + + Time series of upstream water evaporation from open water at gauging stations + + + + + + + + ************************************************************** + TRANSMISSION LOSS PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use TransSub as calibration constant leave all other parameters at default values + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + Transmission loss function parameter + + + + + + PBchange + downstream area taking into account for transmission loss + + + + + + upstream area + + + + + + + + ************************************************************** + ROUTING PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - Use CalChanMan as calibration constant to fine-tune timing of + channel routing, leave all other parameters at default values + + + + + + Multiplier applied to Channel Manning's n + + + + + + Multiplier applied to Channel Manning's n for second routing line + + + + + + Multiplier applied to Channel Manning's n for MCT routing + + + + + + Multiplier applied to average Q to split into a second line of routing + + + + + + Multiplier applied to ChanBottomWidth + + + + + + Multiplier applied to ChanDepthThreshold + + + + + + Multiplier applied to ChanSdXdY + + + + + + kinematic wave parameter: 0.6 is for broad sheet flow + + + + + + Reference depth of overland flow [mm], used to compute + overland flow Alpha for kin. wave + + + + + + Percentage [-] used to compute the TotalCrossSectionAreaHalfBankFull in the initialisation of the + total cross-sectional area + default: 0.5 + + + + + + Minimum slope gradient (for kin. wave: slope cannot be 0) + + + + + + Minimum channel gradient (for kin. wave: slope cannot be 0) + + + + + + + + ************************************************************** + PARAMETERS RELATED TO NUMERICS + ************************************************************** + + Important: do not change, default value of 0.4 generally combines + sufficient numerical accuracy within a limited number of sub-steps + + + + + + Minimum value for Courant condition in soil moisture routine. Always less than or equal to 1. + Small values result in improved numerical accuracy, at the expense of increased + computing time (more sub-steps needed). If reported time series of soil moisture contain + large jumps, lowering CourantCrit should fix this + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOR THE WATER BALANCE MODEL + (can be either maps or single values) + ************************************************************** + + + + + PRERUNDIR/lzavin + Reported map of average percolation rate from upper to + lower groundwater zone (reported for end of simulation) [mm/day] + + + + + + PRERUNDIR/avgdis + CHANNEL split routing in two lines + Average discharge map [m3/s] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, other land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, forest land cover fraction, average flux over the simulation period [mm] + + + + + + Reported infiltration from the soil layer 2 to soil layer 3, irrigated land cover fraction, average flux over the simulation period [mm] + + + + + + if init condition are stored as netCDF with different time steps + this variable indicates which time step to use + Either as date e.g. 1/1/2010 or as number e.g. 5 + + + + + + Initial overland flow storage [m3], direct runoff fraction + + + + + + Initial overland flow storage [m3], other fraction + + + + + + Initial overland flow storage [m3], forest fraction + + + + + + initial snow depth in snow zone A [mm] + + + + + + initial snow depth in snow zone B [mm] + + + + + + initial snow depth in snow zone C [mm] + + + + + + initial Frost Index value [degC/day] + + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall + + + + + + + + ************************************************************** + The following variables can also be initialized in the model + internally. if you want this to happen set them to bogus value + of -9999 + ************************************************************** + + + + + water in groundwater lower store [mm] + -9999: use steady-state storage + + + + + + initial cross-sectional area of flow in channel[m2] + -9999: use half bankfull + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + initial channel cross-section area [m2] for 2nd routing channel + -9999: use 0 + + + + + + initial lateral inflow for 1st line of routing [m2/s] + -9999: use 0 + + + + + + Outflow discharge at the end of previous step (instantaneous) [m3/s] + -9999: use 0 + + + + + + Outflow average discharge on previous routing sub-step (average) [m3/s] + Cold start: -9999 sets initial value to 0 + + + + + + Courant number at previous step for MCT routing + Cold start: -9999 sets initial value to 1 + + + + + + Reynolds number at previous step for MCT routing + Cold start: -9999 sets initial value to 0 + + + + + + + + ************************************************************** + INITIAL CONDITIONS FOREST + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for forest fraction + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + cumulative depression storage [mm] + + + + + + + + ************************************************************** + INITIAL CONDITIONS IRRIGATION + (maps or single values) + ************************************************************** + + + + + cumulative interception [mm] + + + + + + water in groundwater upper store [mm] + + + + + + days since last rainfall for irrigation + + + + + + initial soil moisture content [mm3/mm3] layer 1a (superficial layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 1b (upper layer) + -9999: use field capacity values + + + + + + initial soil moisture content [mm3/mm3] layer 2 (lower layer) + -9999: use field capacity values + + + + + + + + ************************************************************** + INPUT METEOROLOGICAL AND VEGETATION TIMESERIES AS MAPS + ************************************************************** + + + + + precipitation [mm/day] + + + + + + average daily temperature [C] + + + + + + daily reference evaporation (free water) [mm/day] + + + + + + daily reference evaporation (soil) [mm/day] + + + + + + daily reference evapotranspiration (crop) [mm/day] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + leaf area index [m2/m2] + + + + + + + + ************************************************************** + INPUT WATER USE MAPS AND PARAMETERS + ************************************************************** + + + + + Domestic water abstraction daily maps [mm] + + + + + + Livestock water abstraction daily maps [mm] + + + + + + Energy water abstraction daily maps [mm] + + + + + + Industry water abstraction daily maps [mm] + + + + + + Consumptive Use (1-Recycling ratio) for livestock water use (0-1) + + + + + + Consumptive Use (1-Recycling ratio) for industrial water use (0-1) + + + + + + # Consumptive Use (1-Recycling ratio) for energy water use (0-1) + # Source: Torcellini et al. (2003) "Consumptive Use for US Power Production" + # map advised by Neil Edwards, Energy Industry + # the UK and small French rivers the consumptive use varies between 1:2 and 1:3, so 0.33-0.50 + # For plants along big rivers like Rhine and Danube the 0.025 is ok + EnergyConsumptiveUseFraction=0.025 + + + + + + Consumptive Use (1-Recycling ratio) for domestic water use (0-1) + Source: EEA (2005) State of Environment + + + + + + Fraction of leakage of public water supply (0=no leakage, 1=100% leakage) + + + + + + The water that is lost from leakage (lost) (0-1) + + + + + + Leakage reduction fraction (e.g. 50% = 0.5 as compared to current Leakage) (baseline=0, maximum=1) + + + + + + Water savings fraction (e.g. 10% = 0.1 as compared to current Use (baseline=0, maximum=1) + scenwsav.map + + + + + + Fraction of water re-used in industry (e.g. 50% = 0.5 = half of the water is re-used, used twice (baseline=0, maximum=1 + scenruse.map + + + + + + + Field application irrigation efficiency max 1, ~0.90 drip irrigation, ~0.75 sprinkling + + + + + + conveyance efficiency, around 0.80 for average channel + + + + + + IrrigationType (value between 0 and 1) is used here to distinguish between additional adding water until fieldcapacity (value set to 1) or not (value set to 0) + + + + + + Factor to irrigation water demand + More than the transpiration is added e.g to prevent salinisation + + + + + + Annual amount (m3) of treated wastewater reused for irrigation + + + + + + Number of days over which the annual amount of treated wastewater for irrigation is used + + + + + + Irrigation crop coefficient + + + + + + Irrigation crop group number + + + + + + Population + + + + + + Population + + + + + + Land Use Mask + + + + + + Reported water use [cu m/s], depending on the availability of discharge + + + + + + Time series of upstream water use at gauging stations + + + + + + Number of sub-steps needed for water use + routine + + + + + + maximum number of loops for calculating the use of water + = distance water is taken for water consuption + + + + + + percentage of water which remains in the channel + e.g. 0.2 -> 20 percent of discharge is not taken out + + + + + + + + + + + + + ************************************************************** + RICE IRRIGATION + ************************************************************** + + + + + water amount in mm per day + 10 mm for 10 days (total 10cm water) + + + + + + FAO: percolation for heavy clay soils: PERC = 2 mm/day + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + map with starting day of the year + + + + + + + + ************************************************************** + REPORTED OUTPUT MAPS + ************************************************************** + + + + + Reported discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Reported Topsoil moisture [%] + + + + + + Reported Topsoil moisture [%] + + + + + + Reported discharge [cu m/s] at the end of a timestep + + + + + + Reported discharge [cu m/s] but cut by a discharge mask map + + + + + + Reported water level [m] % False by default + + + + + + + + STATE VARIABLES AT SELECTED TIME STEPS + ONLY FOR INITIALISATION OF SUCCEEDING RUNS + REPORTING TIME STEPS SET THROUGH "ReportSteps" OPTION + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + + Reported cross section area 2nd line of routing [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lowerupper layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported transpiration maps, other fraction [mm] + + + + + + Reported transpiration maps, forest fraction [mm] + + + + + + Reported transpiration maps, irrigated fraction [mm] + + + + + + Reported transpiration maps, weighted sum over the fractions of each pixel [mm] + + + + + + + + "END" MAPS, AKA REPORTED OUTPUT MAPS CALLED "END" + Same as above, but always at last time step + Support for these "end" maps will most likely be + discontinued some time soon + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surface + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surface + + + + + + Reported chan cross-section area [m2] + + + + + + Reported snow cover in snow zone A [mm] + + + + + + Reported snow cover in snow zone B [mm] + + + + + + Reported snow cover in snow zone C [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage [mm] + + + + + + Reported lake level [m] + + + + + + Reported lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Reported lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Reported lake storage [m3] + + + + + + + Reported reservoir filling [-] + + + + + + Reported cross section area 2nd line of rounting [m2] + + + + + + Reported channel side flow [m2/s] + + + + + + Reported istantaneous discharge at end of computation step [cu m/s] ChanQ + + + + + + Reported average discharge over last routing sub-step used to initialise lakes [cu m/s] ChanQAvgDt + + + + + + Reported average discharge [cu m/s] (average over the model timesteps) (AvgDis) + + + + + + Courant number at previous step for MCT routing + + + + + + Reynolds number at previous step for MCT routing + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + cumulative interception [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1c (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + INDIVIDUAL DRIVING METEOROLOGICAL VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + Note reporting is done as a quantity per time step, not as + an intensity (as in meteo input!) + + + + + Precipitation [mm per time step] + + + + + + Average DAILY temperature [degrees C] + + + + + + Potential reference evapotranspiration [mm per time step] + + + + + + Potential evaporation from bare soil surface [mm per time step] + + + + + + Potential evaporation from open water surface [mm per time step] + + + + + + + + INDIVIDUAL STATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported storage in lower response box [mm] + + + + + + Reported total water storage [mm] + + + + + + Reported days since last rain + + + + + + Reported water depth [m] + + + + + + Reported overland flow water volume [m3] for direct runoff fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for other fraction on catchment surfac + + + + + + Reported overland flow water volume [m3] for forest fraction on catchment surfac + + + + + + Reported channel cross-section area [m2] + + + + + + Reported snow cover [mm] + + + + + + Reported frost index [degC/day] + + + + + + Reported interception storage, other fraction [mm] + + + + + + + Reported days since last rain + + + + + + Reported interception storage, forest fraction [mm] + + + + + + Reported interception storage, irrigation fraction [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a (superficial layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b (upper layer) [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 (lower layer) [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + Reported interception (depression) storage, direct runoff (impervious) fraction [mm] + + + + + + + + INDIVIDUAL RATE VARIABLES (AT EVERY TIME STEP) + ONLY IF REPORTING OF EACH RESPECTIVE VARIABLE IS + SWITCHED ON (DEFAULT: ALL SWITCHED OFF) + + + + + Reported rain (excluding snow)[mm] + + + + + + Reported snow (excluding rain)[mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported actual evapotranspiration [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, other fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, forest fraction [mm] + + + + + + Reported percolation from soil layer 1a to soil layer 1b, irrigation fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, other fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, forest fraction [mm] + + + + + + Reported percolation from soil layer 1b to soil layer 2, irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), other fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), forest fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), irrigation fraction [mm] + + + + + + Reported seepage to groundwater(from soil layer 2 to groundwater), weighted sum over the fraction of each pixel [mm] + + + + + + Reported available groundwater LZ+ GWLoss [mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported fast runoff = surface + UZ [mm] + + + + + + Reported GWloss [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported total runoff that enters the channel: groundwater + surface runoff [mm] + + + + + + Reported Direct Runoff [mm] + + + + + + Reported FlowVelocityMSecMaps [m/s] + + + + + + Reported TravelDistance [m] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + + Reported evaporation of intercepted water [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported leaf drainage Forest[mm] + + + + + + Reported interception forest [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported transpiration forest [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + Reported volumetric soil moisture content for + soil layer 1a [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 1b [V/V] [mm3/mm3] + + + + + + Reported volumetric soil moisture content for both + soil layer 2 [V/V] [mm3/mm3] + + + + + + Reported storage in upper response box [mm] + + + + + + + + MISCELLANEOUS OUTPUT MAPS AND TIME SERIES + + + + + Time series of average percolation rate from upper to + lower groundwater zone (reported at sites) [mm/day] + + + + + + Time series of average percolation rate from upper to + lower groundwater zone (average for upstream area of each gauge) [mm/day] + + + + + + Reported number of days in simulation with soil moisture stress [days] + + + + + + Reported number of days in simulation with soil moisture stress for forest fraction [days] + + + + + + Reported soil transpiration reduction factor [-] for other landuse + values below 1 indicate soil moisture stress + + + + + + Reported soil transpiration reduction factor [-] + values below 1 indicate soil moisture stress + + + + + + + + ************************************************************** + REPORTED OUTPUT TIME SERIES + ************************************************************** + + + + + Reported average discharge over the model time step [cu m/s] + + + + + + Reported instantaneous discharge at the end of routing sub-step [cu m/s] + + + + + + Reported average discharge on the last routing sub-step [cu m/s] + + + + + + Reported water level [m] + + + + + + + OUTPUT AT SITES: STATE VARIABLES + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Soil moisture layer 1a [cu mm / cu mm] + + + + + + Soil moisture layer 1b [cu mm / cu mm] + + + + + + Soil moisture layer 2 [cu mm / cu mm] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + OUTPUT AT SITES: RATE VARIABLES + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Reported snowmelt [mm] + + + + + + Reported interception [mm] + + + + + + Reported transpiration [mm] + + + + + + Reported soil evaporation [mm] + + + + + + Reported evaporation from interception storage [mm] + + + + + + Reported leaf drainage [mm] + + + + + + Reported infiltration [mm] + + + + + + Reported preferential flow [mm] + + + + + + Reported percolation from 1st to 2nd soil layer [mm] + + + + + + Reported seepage to groundwater[mm] + + + + + + Reported surface runoff [mm] + + + + + + Reported upper zone outflow [mm] + + + + + + Reported lower zone outflow [mm] + + + + + + Reported total runoff [mm] + + + + + + Reported percolation from upper to lower zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + + + + + + + + + + AVERAGE VALUES OF METEOROLOGICAL FORCING VARIABLES + UPSTREAM OF GAUGES + (only if repMeteoUpsGauges option is activated) + + + + + Precipitation [mm/time step] + + + + + + Average temperature [deg C] + + + + + + Reference evapotranspiration [mm/time step] + + + + + + Potential soil evaporation [mm/time step] + + + + + + Potential open water evaporation [mm/time step] + + + + + + ESActPixel+self.var.TaPixel+self.var.TaInterceptionAll+self.var.EvaAddM3*self.var.M3toMM + + + + + + + + AVERAGE VALUES OF MODEL STATE VARIABLES + UPSTREAM OF GAUGES + (only if repStateUpsGauges option is activated) + + + + + Water depth on soil surface [mm] + + + + + + Depth of snow cover on soil surface [mm] + + + + + + Water stored as interception [mm] + + + + + + Soil moisture upper layer [mm3/mm3] + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + + + + + Soil moisture lower layer [mm3/mm3] + + + + + + Storage in upper groundwater zone [mm] + + + + + + Storage in lower groundwater zone [mm] + + + + + + Days since last rain [days] + + + + + + Frost index [degC/day] + + + + + + Days since last rain [days] + + + + + + + + AVERAGE VALUES OF MODEL RATE VARIABLES + UPSTREAM OF GAUGES + (only if repRateUpsGauges option is activated) + + + + + Rain (excluding snow) [mm] + + + + + + Snow (excluding rain) [mm] + + + + + + Snow melt [mm] + + + + + + Interception [mm] + + + + + + Actual transpiration [mm] + + + + + + Actual evaporation [mm] + + + + + + Evaporation from interception storage [mm] + + + + + + Leaf drainage [mm] + + + + + + Infiltration [mm] + + + + + + Preferential flow [mm] + + + + + + Percolation upper to lower soil layer [mm] + + + + + + Seepage from lower soil layer to groundwater [mm] + + + + + + Surface runoff [mm] + + + + + + Outflow from upper groundwater zone (to channel) [mm] + + + + + + Outflow from lower groundwater zone (to channel) [mm] + + + + + + Total runoff [mm] + + + + + + Reported percolation from upper to lower groundwater zone [mm] + + + + + + Reported loss from lower zone [mm] + + + + + + + + NUMERICS + + + + + Reported mass balance error at outlet [cu m] + + + + + + Reported mass balance error at outlet (as mm water slice) + + + + + + Reported mass balance error due to the split routing module, for each catchment [m3] + + + + + + Reported discharge error at the outlet as a consequence of the mass balance error within the split routing module, for each catchment [m3/s] + + + + + + Reported ratio between the mass balance error and the water volume storage, for each catchment [m3/m3] + + + + + + Average value of the sum of the fractions within a catchment: this value must be 1.0 in order to avoid mass balace errors! [-] + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of cells with Theta lower than + residual soil moisture content + (should ALWAYS be zero, if not something is + seriously wrong!!!) + TEST ONLY!! REMOVE OR HIDE IN FINAL VERSION!! + + + + + + Number of sub-steps needed for soil moisture + routine + + + + + + + + ************************************************************** + BASE INPUT MAPS AND TABLES + ************************************************************** + + + + + ************************************************************** + TOPOGRAPHY MAPS + ************************************************************** + + + + + $(PathMaps)/ldd.map + local drain direction map (1-9) + + + + + + slope gradient [-] (0.50 -> tangent=0.5, angle=26.5 degrees) + + + + + + Elevation standard deviation [m], i.e. altitude difference elevation within pixel. + Used for sub-pixel modelling of snow accumulation + and melt + + + + + + outlets.map + Nominal map with gauge locations (i.e cells for which simulated discharge + is written to file(1,2,3 etc) + + + + + + map with monitoring sites (1,2,3 etc) + + + + + + optional map with pixel length [m], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + optional map with pixel area [m2], only needed in case map attributes + are not in [m] (e.g. lat / lon systems) + + + + + + + + ************************************************************** + SOIL PARAMETERS + ************************************************************** + + Suggested parameterisation strategy: + + - use b_Xinanjiang and PowerPrefFlow as calibration constants + + + + + + Soil depth for 1st layer: 1a (superficial layer) + Minimum Soil Depth [mm] for superficial soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b (upper layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 2nd layer: 2 (lower layer) + Minimum Soil Depth [mm] for second soil layer + + + + + + Soil depth for 1st layer: 1a + Minimum Soil Depth [mm] for upper soil layer + For Europe it is 50 mm + For Africa it is 200 mm + + + + + + Soil depth for 2nd layer: 1b + Minimum Soil Depth [mm] for lower soil layer + + + + + + Soil depth for 2nd layer: 2 + Minimum Soil Depth [mm] for lower soil layer 300 + + + + + + + + ************************************************************** + LAND USE RELATED MAPS AND TABLES + ************************************************************** + + + + + $(PathMapsLanduse)/fracsealed + urban area (0-1) + + + + + + stack of Direct Runoff fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracforest + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of forest fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracwater + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of water fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracother + forest fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of other fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracirrigated + irrigated area fraction of a pixel (0-1) + + + + + + $(PathMapsLandUseChange)/ + stack of Irrigation fraction maps (0-1) + + + + + + $(PathMapsLanduse)/fracDrained.map + drained fraction from irrigated area (0-1) + + + + + + rice fraction of a pixel (0-1) + + + + + + stack of rice fraction maps (0-1) + + + + + + groundwater used fraction of a pixel (0-1) + + + + + + NonConventionalWaterUsed (0-1) + + + + + + lake and reservoir water used, fraction of a pixel (0-1) + + + + + + $(PathMaps)/eflow.map + EFlowThreshold is map with m3/s discharge, e.g. the 10th percentile discharge of the baseline run + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + table with crop coefficient for each land use; values ranging from 0.75 to 1.25; + source: Supit, p.83 CFET + + + + + + table with crop group number; table 6.1 and 6.2 in WOFOST 6.0, Supit, 1994: p. 86 + + + + + + $(PathMapsTables)/manngs_2000_250m.map + table with Manning's roughness [m^(1/3) s^(-1)] for each CORINE landcover class + + + + + + + + ************************************************************** + Variable Channel NoSubStepChannel + ************************************************************** + + + + + UpArea do be included in max. celerity + + + + + + variable Number of sub steps for the kinematic wave routing + + + + + ************************************************************** + CHANNEL MAPS + ************************************************************** + + + + + Boolean map with value 1 at channel pixels and 0 at + all other pixels + IMPORTANT: IF NON-CHANNEL PIXELS HAVE MISSING VALUES + THEN THIS MAY RESULT IN INCORRECT RESULTS + + + + + + Channel gradient (fraction, dy/dx) + + + + + + Channel Manning's n [m^(1/3) s^(-1)] + + + + + + Channel length [m] + + + + + + Channel bottom width [m] + + + + + + Channel side slope, expressed as gradient + !! expressed as dx/dy !!! (NOT dy/dx, which would perhaps be more logical) + + + + + + Floodplain Width [m] + + + + + + Bankfull channel depth [m] + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) + Each parameter is defined for upper (1a and 1b) and + lower (2) soil layers + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 2 (lower soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 2 (lower soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 2 (lower soil layer) + + + + + + + + ************************************************************** + TABLES WITH TOPSOIL SOIL PHYSICAL PARAMETERS (HYPRES) for Forest + Each parameter is defined for 1a and 1b + Normal parameter is taken for the lower soil layer + ************************************************************** + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Soil moisture content at saturation [V/V] [mm3/mm3] + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1a (superficial soil layer) + + + + + + Residual soil moisture content [V/V] [mm3/mm3] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) for soil layer 1a (superficial soil layer) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Pore-size index (Van Genuchten m and n are calculated from this) + Lambda is acually 1-n [-] for soil layer 1b (upper soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1a (superficial soil layer) + + + + + + Van Genuchten parameter Alpha [1/cm] for soil layer 1b (upper soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1a (superficial soil layer) + + + + + + Saturated conductivity [mm/day] for soil layer 1b (upper soil layer) + + + + + + + + ************************************************************** + RESERVOIRS (if used ) + Input maps + ************************************************************** + + + + + Sub time step used for reservoir simulation [s]. Within the model, + the smallest out of DtSecReservoirs and DtSec is used. + + + + + + Map with location of reservoirs (number) + + + + + + Initial reservoir storage (fraction) + + + + + + Input tables + + + + + Total reservoir storage capacity + Units: m³ + + + + + + Reservoir inflow associated with the 100-year return period. + It is modified by a calibration parameter (`ReservoirFloodOutflowFactor`) to + define the inflow above which the reservoir switches to flood control mode + Units: m³/s + + + + + + NReservoir average inflow used to define the normal reservoir release + Units: m³/s + + + + + + Minimum reservoir release: + Units: m³/s + + + + + Output time series + + + + + name of output TSS file with Reservoir Inflow + + + + + + name of output TSS file with Reservoir Outflow + + + + + + name of output TSS file with Reservoir Filling + + + + + + name of output TSS file with Reservoir storage [m3] + + + + + + + name of output map(s) with Reservoir Filling + + + + + + Fraction of the total reservoir storage above which the reservoirs enters + the flood control zone. + + + + + + Factor of the 100-year return inflow that defines a flood event, i.e., the + reservoir routine switches to flood control mode. + + + + + + + + ************************************************************** + LAKES (if used ) + Input maps + ************************************************************** + + + + + Map with location of lakes + + + + + + Initial lake level [m] + -9999 sets initial value to steady-state level + + + + + + Lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + Estimate of average net inflow into lake (=inflow - evaporation) [m3 / s] + Used to calculated steady-state lake level in case LakeInitialLevelValue + is set to -9999 + + + + + Input tables + + + + + Lake surface area [m2] + + + + + + Lake parameter A [m/s] + + + + + + Multiplier applied to the lake parameter A + + + + + Output time series + + + + + Output timeseries file with lake inflow [m3 /s] + + + + + + Output timeseries file with lake outflow [m3 /s] + + + + + + Output timeseries file with lake level [m] + + + + + + Output map(s) with lake level [m] + + + + + + Output map with lake inflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value equal to PrevDischarge (ChanQ(t)) + + + + + + Output map with lake outflow at previous routing sub-step (ChanQ(t-1)) [m3/s] + -9999 sets initial value + + + + + + + + ************************************************************** + POLDERS(if used) + ************************************************************** + + + + + + Weir constant (fixed) [-] + + + + + + Map with polder locations + + + + + + Initial water level in polders [m] + + + + + + Polder maximum storage capacity [cu m] + + + + + + Area of polder [sq m] + + + + + + Width of polder outlet/inlet [m] + + + + + + Polder bottom level, measured from channel bottom [m] + + + + + + Time step at which polder opens in case of regulated polder (use bogus value of -9999 in table in case of unregulated polder) + + + + + + Time step at which water stored in polder is released again(use bogus value of -9999 in table in case of unregulated polder) + + + + + + name of output TSS file with polder flux [cu m / s]. Positive for flow from channel to polder, negative for polder to channel + + + + + + name of output TSS file with polder level [m] + + + + + + name of output map(s) with polder level + + + + + + + + ************************************************************** + INFLOW HYDROGRAPH (if used) + ************************************************************** + + + + + OPTIONAL: nominal map with locations of (measured) + inflow hydrographs + + + + + + location of calibration points + OPTIONAL: nominal map with locations of calibration points + + + + + + Observed or simulated input hydrographs as + time series [m3 / s] + Note that identifiers in time series correspond to + InflowPoints map (also optional) + + + + + + + + ************************************************************** + DYNAMIC WAVE(if used) + ************************************************************** + + + + + Critical Courant number for dynamic wave + value between 0-1 (smaller values result in greater numerical accuracy, + but also increase computational time) + + + + + + Constant head [m] at most downstream pixel (relative to altitude + at most downstream pixel) + + + + + + Boolean map with value 1 at channel pixels where dynamic wave is + used, and 0 at all other pixels + + + + + + Channel bottom level [m] + + + + + + Nominal map with channel cross section IDs + + + + + + Table with cross section parameters (H,A,P) + + + + + + + + ************************************************************** + MUSKINGUM-CUNGE-TODINI OPTION + ************************************************************** + + + + + Boolean map with value 1 at channel pixels where MCT is + used, and 0 at all other pixels + + + + + + Maximum channel gradient for channels using MCT routing [-] (for MCT wave: slope cannot be >0.001) + + + + + + + + ************************************************************** + PF REPORTING (if used) + ************************************************************** + + + + PF PARAMETERS + + + + + Maximum capillary head [cm]. This value is used if Theta equals residual soil + moisture content (value of HeadMax is arbitrary). Only needed for pF computation, + otherwise doesn't influence model results at all) + + + + + PF MAPS + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, VALUES AT SITES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + PF TIMESERIES, AVERAGE VALUES UPSTREAM OF GAUGES + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + Reported pF upper soil layer [-] + + + + + + Reported pF lower soil layer [-] + + + + + + + + ************************************************************** + Ad'a addition + ************************************************************** + + + + + threshold value below which there is no outflow to the channel [mm] + + + + + + length of the window used to smooth the LZ zone [number of cells] + + + + + + map of aquifers (0/1), used to smoothen LZ near extraction areas + + + + + + + + ************************************************************** + Water demand output maps + ************************************************************** + + + + + day of the year when the yearly endcalculation is done e.g. 31/10/xxxx = 304 + + + + + + + TotalAbstractionFromGroundwater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] + + + + + + TotalAbstractionFromSurfaceWater [mm] summed up for water regions + + + + + + Total Abstraction From SurfaceWater and Groundwater [mm] summed up for water regions, montly values + + + + + + TotalPaddyRiceIrrigationAbstraction [m3] + + + + + + Water Exploitation Index - Consumption; for water regions (this is the official EU WEI+): consumption / internal and external availability + + + + + + Water Exploitation Index - Abstraction; for water regions: abstraction / internal and external availability + + + + + + Water Exploitation Index - Demand; for water regions: demand / internal and external availability + + + + + + Water Exploitation Index - Consumption; for water regions + + + + + + Internal available water + + + + + + External available water + + + + + + Region Water Consumption + + + + + + Region Water Consumption + + + + + + Reservoir and Lake storage in m3 at end of month + + + + + + Reservoir and Lake abstraction in m3 + + + + + + Irrigation water shortage in m3 for month + + + + + + Surface water availability in m3 for potential irrigation for each day + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly evapotranspiration deficit in mm + + + + + + Monthly Water Dependency Index (0-1) (De Roo 2015) + WDI = Upstream Inflow Actually Used / Total Water Demand + Values close to 1 give extreme dependency on upstream water + + + + + + Monthly Water Security Index (0-1) (De Roo 2015) + WSI = Upstream Inflow Actually Used / Upstream Inflow Available + Values close to 1 give extreme vulnerability to upstream water + + + + + + Monthly Water Sustainability Index (0-1) (De Roo 2015) + WTI = 1-SurfaceWaterDeficit / TotalWaterDemand + Values of 1 indicate complete sustainable conditions, no water deficit + Values less than 1 indicate that considerable deep groundwater resources or desalinated water is used + + + + + + Monthly Falkenmark 1 Index (tochanm3) + + + + + + Monthly Falkenmark 2 Index (tochanm3+reservoirlakeabstraction) + + + + + + Monthly Falkenmark 3 Index (tochanm3+reservoirlakeabstraction+externalinflow) + + + + + + + Abstraction from groundwater in m3 per timestep + + + + + + Abstraction from surface water in m3 per timestep + + + + + + Region abstraction from surface water in m3 per timestep + + + + + + Region Total Abstraction From Lakes and Reservoirs in m3, per timestep + + + + + + Lake Abstraction per timestep in m3 + + + + + + ReservoirAbstraction per timestep in M3 + + + + + + ReservoirStorage in M3 + + + + + + LakeStorage in M3 + + + + + + AreatotalIrrigationUseM3 + + + + + + FractionAbstractedFromChannels + + + + + + EFlowIndicator (1 on day with ChanQ smaller than EflowThreshold, 0 on normal days) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ************************************************************** + Peter's addition + ************************************************************** + + + + + + [mm] + + + + + + [mm] + + + + + + [mm] + + + + + + + + + + areamap MaskMap; + timer StepStart StepEnd 1; + ReportSteps=$(ReportSteps); + + + + + diff --git a/tests/test_mct_dyn_inflow_calib.py b/tests/test_mct_dyn_inflow_calib.py new file mode 100644 index 00000000..fb045d09 --- /dev/null +++ b/tests/test_mct_dyn_inflow_calib.py @@ -0,0 +1,141 @@ +from __future__ import absolute_import +import os +import datetime +import shutil +import pytest + +from lisfloodutilities.compare.nc import NetCDFComparator +from lisfloodutilities.compare.pcr import TSSComparator + +from lisflood.main import lisfloodexe +from lisflood.global_modules.settings import LisSettings + +from .test_utils import setoptions, mk_path_out + + +class TestInflow(): + + case_dir = os.path.join(os.path.dirname(__file__), 'data', 'LF_MCT_UseCase') + + def run(self, date_start, date_end, dtsec, type): + # generate inflow (inflow.tss) one pixel upstream of inflow point + out_path_ref = os.path.join(self.case_dir, 'reference_mct_dyn') + out_path_run = os.path.join(self.case_dir, 'reference_mct_dyn', 'inflow_'+type) + settings_file = os.path.join(self.case_dir, 'settings', 'mct_inflow_calib.xml') + settings = setoptions(settings_file, + opts_to_unset = ['inflow'], + opts_to_set=['simulateCalibrationPoints', 'MCTRoutingInterface'], + vars_to_set={'StepStart': date_start, + 'StepEnd': date_end, + 'CalendarDayStart': date_start, + 'DtSec' : dtsec, + # 'DtSecChannel' : dtsec, # single routing step + 'BankFullPerc': '0.1', + 'MaskMap': '$(PathRoot)/maps/mask.nc', + 'Gauges': '4292500 2377500', # one cell upstream of inflow point (p2) + 'ChanqavgdtTS': out_path_run+'/inflow.tss', # use chanqavgdt as inflow + 'PathOut': out_path_run, + 'ChannelsMCT': '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + }) + mk_path_out(out_path_ref) + mk_path_out(out_path_run) + lisfloodexe(settings) + + # generate control run at inflow point + out_path_run = os.path.join(self.case_dir, 'reference_mct_dyn', 'inflow_'+type) + settings_file = os.path.join(self.case_dir, 'settings', 'mct_inflow_calib.xml') + settings = setoptions(settings_file, + opts_to_unset = ['inflow'], + opts_to_set=['simulateCalibrationPoints', 'MCTRoutingInterface'], + vars_to_set={'StepStart': date_start, + 'StepEnd': date_end, + 'CalendarDayStart': date_start, + 'DtSec' : dtsec, + # 'DtSecChannel': dtsec, # single routing step + 'BankFullPerc': '0.1', + 'MaskMap': '$(PathRoot)/maps/mask.nc', + # 'Gauges': '4322500 2447500 4447500 2422500', # inflow and outlet + 'Gauges': '4297500 2372500', # inflow point (p5) + 'PathOut': out_path_run, + 'ChannelsMCT': '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + # 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + }) + + lisfloodexe(settings) + + # run with inflow from dynamic reference and generate outflow at inflow point + out_path_ref = os.path.join(self.case_dir, 'reference_mct_dyn', 'inflow_'+type) + out_path_run = os.path.join(self.case_dir, self.run_type) + settings_file = os.path.join(self.case_dir, 'settings', 'mct_inflow_calib.xml') + settings = setoptions(settings_file, + opts_to_set=['inflow','simulateCalibrationPoints', 'MCTRoutingInterface'], + vars_to_set={'StepStart': date_start, + 'StepEnd': date_end, + 'CalendarDayStart': date_start, + 'DtSec' : dtsec, + # 'DtSecChannel': dtsec, # single routing step + 'BankFullPerc': '0.1', + 'MaskMap': '$(PathRoot)/maps/interbasin_mask.nc', + 'InflowPoints': '$(PathRoot)/maps/inflow.nc', + 'QInTS': out_path_ref+'/inflow.tss', + # 'Gauges': '4322500 2447500 4447500 2422500', # inflow and outlet + 'Gauges': '4297500 2372500', # inflow point (p5) + 'PathOut': out_path_run, + 'ChannelsMCT': '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + # 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + }) + mk_path_out(out_path_run) + lisfloodexe(settings) + + # set precision for the test and number of steps to skip at the beginning of the time series + atol = 2.0 + rtol = 0.01 + init_steps_to_skip = 5 + comparator = TSSComparator(atol,rtol,init_skip_steps = init_steps_to_skip) + + # test when DtSec = DtSecChannel + reference = os.path.join(out_path_ref, 'disWin.tss') + output_tss = os.path.join(out_path_run, 'disWin.tss') + comparator.compare_files(reference, output_tss) + + # test when DtSec != DtSecChannel + reference = os.path.join(out_path_ref, 'chanqWin.tss') + output_tss = os.path.join(out_path_run, 'chanqWin.tss') + comparator.compare_files(reference, output_tss) + + # test when DtSec != DtSecChannel + reference = os.path.join(out_path_ref, 'chanqavgdt.tss') + output_tss = os.path.join(out_path_run, 'chanqavgdt.tss') + comparator.compare_files(reference, output_tss) + + # def teardown_method(self, type): + # print('Cleaning directories') + # + # ref_path = os.path.join(self.case_dir, 'reference_mct_dyn') + # if os.path.exists(ref_path) and os.path.isdir(ref_path): + # shutil.rmtree(ref_path, ignore_errors=True) + # + # out_path = os.path.join(self.case_dir, self.run_type) + # if os.path.exists(out_path) and os.path.isdir(out_path): + # shutil.rmtree(out_path, ignore_errors=True) + + +class TestInflowShort(TestInflow): + + run_type = 'short' + + # def test_mct_inflow_daily(self): + # self.run("02/01/2016 06:00", "30/01/2016 06:00", 86400,'daily') + def test_mct_inflow_6h(self): + self.run("01/03/2016 06:00", "30/03/2016 06:00", 21600,'6h') + + # cleaning folders + # def cleaning(self,): + # self.teardown_method() diff --git a/tests/test_mct_warmstart_calib.py b/tests/test_mct_warmstart_calib.py new file mode 100644 index 00000000..35bee7a9 --- /dev/null +++ b/tests/test_mct_warmstart_calib.py @@ -0,0 +1,250 @@ +""" + +Copyright 2019-2020 European Union + +Licensed under the EUPL, Version 1.2 or as soon they will be approved by the European Commission subsequent versions of the EUPL (the "Licence"); + +You may not use this work except in compliance with the Licence. +You may obtain a copy of the Licence at: + +https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt + +Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an "AS IS" basis, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the Licence for the specific language governing permissions and limitations under the Licence. + +""" + +from __future__ import absolute_import +import os +import shutil +from datetime import datetime, timedelta +import glob + +import pytest + +from lisfloodutilities.compare.nc import NetCDFComparator +from lisfloodutilities.compare.pcr import TSSComparator + +from lisflood.main import lisfloodexe + +from .test_utils import setoptions, mk_path_out + + +class TestWarmStartMCTcalib(): + + case_dir = os.path.join(os.path.dirname(__file__), 'data', 'LF_MCT_UseCase') + + settings_files = { + 'cold': os.path.join(case_dir, 'settings', 'mct_cold_interface.xml'), + 'warm': os.path.join(case_dir, 'settings', 'mct_warm_interface.xml'), + 'warm_endmaps': os.path.join(case_dir, 'settings', 'mct_warm_endmaps_interface.xml') + } + + def test_mctcal_only_warmstart_daily_using_end_maps(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '02/01/2016 06:00' + step_end = '31/03/2016 06:00' + dt_sec = 86400 + dt_sec_channel = 86400 + report_steps = '9496..9861' + self.run_warmstart_by_dtsec('mct_endmaps', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_only_warmstart_daily(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '02/01/2016 06:00' + step_end = '31/03/2016 06:00' + dt_sec = 86400 + dt_sec_channel = 86400 + report_steps = '9496..9861' + self.run_warmstart_by_dtsec('mct', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_and_reservoirs_warmstart_daily(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '02/01/2016 06:00' + step_end = '31/03/2016 06:00' + dt_sec = 86400 + dt_sec_channel = 86400 + report_steps = '9496..9861' + self.run_warmstart_by_dtsec('mct_reservoirs', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_and_lakes_warmstart_daily(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '02/01/2016 06:00' + step_end = '31/03/2016 06:00' + dt_sec = 86400 + dt_sec_channel = 3600 + report_steps = '9496..9861' + self.run_warmstart_by_dtsec('mct_lakes', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_only_warmstart_6h(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '01/03/2016 06:00' + step_end = '31/05/2016 06:00' + dt_sec = 21600 + dt_sec_channel = 3600 + report_steps = '38220..38830' + self.run_warmstart_by_dtsec('mct', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_and_reservoirs_warmstart_6h(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '01/03/2016 06:00' + step_end = '31/05/2016 06:00' + dt_sec = 21600 + dt_sec_channel = 3600 + report_steps = '38220..38830' + self.run_warmstart_by_dtsec('mct_reservoirs', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def test_mctcal_and_lakes_warmstart_6h(self): + calendar_day_start = '02/01/1990 06:00' + step_start = '01/03/2016 06:00' + step_end = '31/05/2016 06:00' + dt_sec = 21600 + dt_sec_channel = 3600 + report_steps = '38220..38830' + self.run_warmstart_by_dtsec('mct_lakes', dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps=report_steps) + + def run_warmstart_by_dtsec(self, mct_case, dt_sec, dt_sec_channel, step_end, step_start, calendar_day_start, report_steps='1..9999'): + + mk_path_out(os.path.join(self.case_dir, 'out')) + + check_every = 13 # steps + + self.path_out_reference = os.path.join(self.case_dir, 'out', 'longrun_reference{}'.format(dt_sec)) + + if mct_case == 'mct': + opts_to_set = ['repStateMaps','TransLoss','MCTRoutingInterface','simulateCalibrationPoints'] + opts_to_unset = ['repMBTs', 'simulateReservoirs', 'simulateLakes'] + warm_settings_file = 'warm' + if mct_case == 'mct_endmaps': + opts_to_set = ['repEndMaps','TransLoss','simulateCalibrationPoints','MCTRoutingInterface'] + opts_to_unset = ['repMBTs', 'simulateReservoirs', 'simulateLakes'] + warm_settings_file = 'warm_endmaps' + check_every = 0 # check only at the end + elif mct_case == 'mct_reservoirs': + opts_to_set = ['repStateMaps', 'simulateReservoirs','TransLoss','simulateCalibrationPoints','MCTRoutingInterface'] + opts_to_unset = ['repEndMaps','repMBTs', 'simulateLakes'] + warm_settings_file = 'warm' + elif mct_case == 'mct_lakes': + opts_to_set = ['repStateMaps', 'simulateLakes','openwaterevapo','TransLoss','simulateCalibrationPoints','MCTRoutingInterface'] + opts_to_unset = ['repEndMaps','repMBTs', 'simulateReservoirs'] + warm_settings_file = 'warm' + + settings_longrun = setoptions(self.settings_files['cold'], + opts_to_set=opts_to_set, + opts_to_unset=opts_to_unset, + vars_to_set={'StepStart': step_start, + 'StepEnd': step_end, + 'CalendarDayStart': calendar_day_start, + 'PathOut': self.path_out_reference, + 'ReportSteps': report_steps, + 'DtSec': dt_sec, + 'DtSecChannel': dt_sec_channel, + 'ChannelsMCT' : '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + 'TransSub': 0.3}) + # ** execute + mk_path_out(self.path_out_reference) + lisfloodexe(settings_longrun) + + + # warm run (1. Cold start) + run_number = 1 + cold_start_step_end = step_start + + self.path_out = os.path.join(self.case_dir, 'out', 'run{}_{}'.format(dt_sec, run_number)) + + settings_coldstart = setoptions(self.settings_files['cold'], + opts_to_set=opts_to_set, + opts_to_unset=opts_to_unset, + vars_to_set={'StepStart': step_start, + 'StepEnd': cold_start_step_end, + 'CalendarDayStart': calendar_day_start, + 'PathOut': self.path_out, + 'ReportSteps': report_steps, + 'DtSec': dt_sec, + 'DtSecChannel': dt_sec_channel, + 'ChannelsMCT': '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + 'TransSub': 0.3}) + # ** execute + mk_path_out(self.path_out) + lisfloodexe(settings_coldstart) + + # warm run (2. single step warm start/stop with initial conditions from previous run) + prev_settings = settings_coldstart + warm_step_start = prev_settings.step_end_dt + timedelta(seconds=dt_sec) + warm_step_end = warm_step_start + timestep_init = prev_settings.step_end_dt.strftime('%d/%m/%Y %H:%M') + + # run only 5*13 steps to speed up computation + # checking 5 steps every 'check_every' steps + # need to run 5*check_every steps in total + if check_every > 0: + step_limit = warm_step_start + 5*check_every*timedelta(seconds=dt_sec) + else: + step_limit = settings_longrun.step_end_dt + print('running until {}'.format(step_limit)) + + nc_comparator = NetCDFComparator(settings_longrun.maskpath) + tss_comparator = TSSComparator(array_equal=True) + settings_warmstart = None + while warm_step_start <= step_limit: + run_number += 1 + path_init = prev_settings.output_dir + self.path_out = (os.path.join(self.case_dir, 'out', 'run{}_{}'.format(dt_sec, run_number))) + + settings_warmstart = setoptions(self.settings_files[warm_settings_file], + opts_to_set=opts_to_set, + opts_to_unset=opts_to_unset, + vars_to_set={'StepStart': warm_step_start.strftime('%d/%m/%Y %H:%M'), + 'StepEnd': warm_step_end.strftime('%d/%m/%Y %H:%M'), + 'CalendarDayStart': calendar_day_start, + 'PathOut': self.path_out, + 'PathInit': path_init, + 'timestepInit': timestep_init, + 'ReportSteps': report_steps, + 'DtSec': dt_sec, + 'DtSecChannel': dt_sec_channel, + 'ChannelsMCT': '$(PathRoot)/maps/chanmct_conf', + 'ChanGradMaxMCT': '0.00005', + 'CalChanMan3': '5.0', + 'CalibrationPoints': "$(PathRoot)/maps/inflow.nc", + 'TransSub': 0.3}) + # ** execute + mk_path_out(self.path_out) + lisfloodexe(settings_warmstart) + + # checking values at current timestep (using datetime) + if (check_every > 0) and not (run_number % check_every): + # ****** compare ******* + # compare every 13 timesteps to speed up test + timestep_dt = settings_warmstart.step_end_dt # NetCDFComparator takes datetime.datetime as timestep + timestep = settings_warmstart.step_end_int + nc_comparator.compare_dirs(self.path_out, self.path_out_reference, timestep=timestep_dt) + tss_comparator.compare_dirs(self.path_out, self.path_out_reference, timestep=timestep) + + # setup for next warm start/stop + prev_settings = settings_warmstart + warm_step_start = prev_settings.step_end_dt + timedelta(seconds=dt_sec) + warm_step_end = warm_step_start + timestep_init = prev_settings.step_end_dt.strftime('%d/%m/%Y %H:%M') + + # check at the end of the whole period on the last path_out when check_every is zero + if check_every == 0: + timestep_dt = settings_warmstart.step_end_dt # NetCDFComparator takes datetime.datetime as timestep + timestep = settings_warmstart.step_end_int + nc_comparator.compare_dirs(self.path_out, self.path_out_reference, timestep=timestep_dt) + tss_comparator.compare_dirs(self.path_out, self.path_out_reference, timestep=timestep) + + + def teardown_method(self): + print('Cleaning directories') + folders_list = glob.glob(os.path.join(os.path.dirname(__file__), self.case_dir, 'out/run*')) + \ + glob.glob(os.path.join(os.path.dirname(__file__), self.case_dir, 'out/longrun_reference*')) + for folder in folders_list: + shutil.rmtree(folder) \ No newline at end of file