Settingsfile

Settings file

The settings file is controlling the CWatM run

 1######## ##          ##  ####  ######  ##    ##
 2##       ##          ## ##  ##   ##   ####  ####
 3##        ##        ##  ##  ##   ##   ## #### ##
 4##        ##   ##   ## ########  ##  ##   ##   ##
 5##         ## #### ##  ##    ##  ##  ##        ##
 6##         ####  #### ##      ## ## ##          ##
 7##########  ##    ##  ##      ## ## ##          ##
 8
 9# Community Water Model Version 1.10
10# SETTINGS FILE

Components of the settings file

General options

General flags are set in the first paragraph For example:

  • if Temperature data are in unit ° Celsius ot Kelvin

  • if OGGM glaciers is used

  • if potential evaporation is calculated or precalculated is used

  • if waterdemand is included

  • if waterbodies are included

  • AND many more

 15[OPTIONS]
 16#-------------------------------------------------------
 17# OPTION - to switch on/off
 18#-------------------------------------------------------
 19
 20# Data otions
 21# if temperature is stored in Kelvin instead Celsius
 22TemperatureInKelvin = False
 23# if lat/lon the area has to be user defined = precalculated
 24gridSizeUserDefined = True
 25
 26#-------------------
 27# Save a basin map and an upstream map in PathOut
 28savebasinmap = False
 29
 30#-----------------------------------------------
 31# Evaporation: calculate pot. evaporation (True) or use precalculated pot.evaporation map stacks (False)
 32calc_evaporation = True
 33
 34# Method to calculate potential evaporation (default = 1)
 35# 1: Penman Monteith (is used if PET_modus is missing)
 36# 2: Milly and Dunne (Energy only PET = 0.8(Rn −G) )
 37# 3: Yang et al. Penman Montheith correction method
 38# 4: Priestley-Taylor 
 39# 5: Modified Thornthwaite method (Pereira et al. 2004)
 40PET_modus = 3
 41#-----------------------------------------------
 42# Irrigation and water demand
 43
 44# if irrigation is included, otherwise paddy and non paddy is put into 'grassland'
 45includeIrrigation = True
 46# if water demand from irrigation, industry and domestic is included
 47includeWaterDemand = True
 48# Water allocation
 49# if water demand and availability is calculated for region to compare demand vs. avail
 50usingAllocSegments = False
 51# limit abstraction to available groundwater (True) include fossil groundwater (False)
 52limitAbstraction = False
 53#Sector- source-abstraction fractions are specified, in WATERDEMAND
 54sectorSourceAbstractionFractions = True
 55
 56# ---- Glacier ---------------
 57includeGlaciers = True
 58
 59#  --- Snow ------------------------------------
 60# -- advanced snow modeling with pySnowClim ----
 61usepySnowClim = True
 62# Stop run after Snow -> for only snow calibration
 63stopaftersnow = True
 64
 65# --------------------------------
 66# Environmental Flow
 67calc_environflow = False
 68
 69#-----------------------------------------------
 70# Soil 
 71# use preferential flow, that bypasses the soil matrix and drains directly to the groundwater (not for irrPaddy)
 72preferentialFlow = True
 73# Capillar rise
 74CapillarRise = True
 75
 76#-----------------------------------------------
 77# Groundwater calculation with Modflow
 78modflow_coupling = False
 79use_complex_solver_for_modflow = False
 80
 81# ---------------------------------
 82# Routing
 83# if runoff concentration to the edge of a cell is included
 84includeRunoffConcentration = True
 85# Waterbodies like lakes and reservoirs
 86includeWaterBodies = True
 87# kinematic wave routing, if False no routing is calculated
 88includeRouting = True
 89
 90# Reservoirs
 91reservoir_add_info_in_Excel = False
 92reservoir_releases_in_Excel_settings = False
 93reservoir_transfers = False
 94
 95#-----------------------------------------------
 96# Inflow from outside of the modelled area
 97inflow = False
 98
 99# --- Reporting & Debugging ------------------- ----------------------------------------------
100# Reporting options
101writeNetcdfStack = True
102reportMap = True
103reportTss = True
104# Checking water balance (for debugging)
105calcWaterBalance = False
106sumWaterBalance = False
107
108includeCrops = True
109use_GeneralCropnonIrr = 0
110use_GeneralCropIrr = 0
111activate_fallow = 1
112automaticFallowingIrr = False
113moveIrrFallowToNonIrr = False
114leftoverIrrigatedCropIsRainfed = False
115
116static_irrigation_map = True

NetCDF meta data

The format for spatial data for input and output data is netCDF. For output data the basic information are given in the settingsfile

Note

From V1.10 the metadata.xml is always stored in the Python programm folder cwatm.

134[NETCDF_ATTRIBUTES]
135institution = IIASA
136title = CWatM default settingsfile
137metaNetcdfFile = $(FILE_PATHS:PathRoot)/metaNetcdf.xml

For each output file the specific information about units, variable name, displayed variable name is given in the metaNetcdf.xml. See: Output meta information

Path of data, output

Here the paths/folders/directories are defined
It is a good pratice to use placeholder here, because then you have to change the paths only once

We include an Excel file, that holds information on crops and reservoirs. But it is only used if in [OPTIONS] reservoir_add_info_in_Excel = True

Note

Further on the pathes can be used as placeholders.
If you use them in the same section as defined: $(PathRoot)
if you use them in other sections: $(FILE_PATHS:PathRoot)
123[FILE_PATHS]
124#-------------------------------------------------------
125PathRoot = C:/CWATM/basin
126PathOut = $(PathRoot)/out
127PathInit = $(PathRoot)/init
128PathMaps = $(PathRoot)/input
129PathMeteo = $(PathRoot)/meteo
130PathParameter = $(PathMaps)/parametermaps
131Excel_settings_file = $(PathMaps)/cwatm_crop_reservoirs.xlsx

Defining the modeling area

In general the input data are stored and used at global scale. The modeling area can be defined by:

  • a mask map e.g.: $(FILE_PATHS:PathRoot)/source/rhine30min.tif

  • coordinates e.g.: 14 12 0.5 5.0 52.0

  • lowest point of a catchment e.g.: 6.25 51.75

Note

The mask map can be a .tif, PCraster or a netCDF format
The coordinates have the format: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y
The point location (lon lat) will be used to create the catchment upstream of this point

Warning

If you use a mask map, make sure you do not use blanks in the file path or name!

139#-------------------------------------------------------
140# AREA AND OUTLETS
141#-------------------------------------------------------
142[MASK_OUTLET]
143
144# Area mask
145# A pcraster map, tif or netcdf map e.g.  $(FILE_PATHS:PathRoot)/data/areamaps/area_indus.map
146# or a retancle: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y 
147#MaskMap = $(FILE_PATHS:PathMaps)/areamaps/upper.map
148MaskMap = $(FILE_PATHS:PathMaps)/areamaps/basin.tif
149
150#-------------------------------------------------------
151# Station data
152# either a map e.g. $(FILE_PATHS:PathRoot)/data/areamaps/area3.map
153# or a location coordinates (X,Y) e.g. 5.75 52.25 9.25 49.75 )
154# Salzburg
155#Gauges = 13.04167 47.80833
156
157# if .tif file for gauges, this is a flag if the file is global or local
158# e.g. Gauges = $(FILE_PATHS:PathRoot)/data/areamaps/gaugesRhine.tif
159GaugesLocal = True

Note

If you start with a basin defined by the outlet of a basin e.g. 6.25 51.75
You can generate a new mask map for the following runs by:
savebasinmap = True in [OPTIONS] |
a basin.tif is generated in the output folder, which you can copy and use next time as:
MaskMap = your_directory/basin.tif

Defining the time

The start and end time have to be defined. Spin-up time is the time for warming up (results will be stored after the spin-up time)

Note

The time can be given as date: dd/mm/yyyy or as relative date: number (but then CalendarDayStart has to be defined)
Spin-up time can be given as date or number
160#-------------------------------------------------------
161[TIME-RELATED_CONSTANTS]
162#-------------------------------------------------------
163
164# StepStart has to be a date e.g. 01/06/1990
165# SpinUp or StepEnd either date or numbers 
166# SpinUp: from this date output is generated (up to this day: warm up)
167
168StepStart = 01/01/1960
169SpinUp = 01/10/1965
170StepEnd = 30/09/2022

Initial conditions

Initial conditions can be stored and be loaded in order to initialise a warm start of the model

Note

Initial conditions are store as one netCDF file with all necessary variables

174[INITITIAL CONDITIONS]
175#-------------------------------------------------------
176
177# for a warm start initial variables a loaded
178# e.g for a start on 01/01/2010 load variable from 31/12/2009
179load_initial = True
180initLoad = $(FILE_PATHS:PathInit)/basin_20221231.nc
181
182# saving variables from this run, to initiate a warm start next run
183# StepInit = saving date, can be more than one: 10/01/1973 20/01/1973
184save_initial = False
185initSave = $(FILE_PATHS:PathInit)/basin
186StepInit = 31/12/1999 31/12/2004 31/12/2009 31/12/2022

StepInit indicate the date(s) when initial conditions are saved:

StepInit = 31/12/1989
StepInit = 31/12/1989 31/12/2010
StepInit = 31/12/1989 5y
here: second value in StepInit is indicating a repetition of year(y), month(m) or day(d),
e.g. 2y for every 2 years or 6m for every 6 month

Calibration

Any parameter can be used for calibration, but we used those which are most effective. See the Calibration for more information.

Calibration value can be a number (because it is not calibrated yet).

SnowFactor = 0.0045

Or a map:

SnowFactor = $(FILE_PATHS:PathParameter)/params_snowfactor.nc

188#-------------------------------------------------------
189# CALIBARTION PARAMETERS
190#-------------------------------------------------------
191[CALIBRATION]
192
193# These are parameter which are used for calibration
194# could be any parameter, but for an easier overview, tehey are collected here
195# in the calibration template a placeholder (e.g. 0.9999999999999999eta) instead of value
196
197# reservoir  normal storage limit (fraction of total storage, [-]) [0.15 - 0.85] default 0.5
198# These are parameter which are used for calibration
199# could be any parameter, but for an easier overview, tehey are collected here
200# in the calibration template a placeholder (e.g. 0.11805799193919307eta) instead of value
201
202
203SnowFactor = $(FILE_PATHS:PathParameter)/params_snowfactor.nc
204SnowMeltCoef = $(FILE_PATHS:PathParameter)/params_snowMelt.nc
205#SnowMeltRad = $(FILE_PATHS:PathParameter)/params_snowRad.nc
206IceMeltCoef  = $(FILE_PATHS:PathParameter)/params_iceMelt.nc
207
208crop_correct =  $(FILE_PATHS:PathParameter)/params_crop.nc
209preferentialFlowConstant = $(FILE_PATHS:PathParameter)/params_pref.nc
210arnoBeta_add = $(FILE_PATHS:PathParameter)/params_arnoB.nc
211ksat_fact = $(FILE_PATHS:PathParameter)/params_ksatfact.nc
212
213factor_interflow = $(FILE_PATHS:PathParameter)/params_interF.nc
214recessionCoeff_factor = $(FILE_PATHS:PathParameter)/params_reces.nc
215
216manningsN = $(FILE_PATHS:PathParameter)/params_CCM.nc
217normalStorageLimit = $(FILE_PATHS:PathParameter)/params_normalStor.nc
218lakeAFactor = $(FILE_PATHS:PathParameter)/params_lakeAFactor.nc
219
220runoffConc_factor =  $(FILE_PATHS:PathParameter)/params_runoff.nc
221
222# lake parameter - factor for wind evaporation
223lakeEvaFactor = 1.2
224soildepth_factor = 1.0
225
226#-------------------------------------------------------
227# TOPOGRAPHY MAPS
228#-------------------------------------------------------
229[TOPOP]
230# local drain direction map (1-9)
231Ldd = $(FILE_PATHS:PathMaps)/routing/ldd.nc
232#Elevation = $(FILE_PATHS:PathMaps)/landsurface/topo/dem.nc
233Elevation_min = $(FILE_PATHS:PathMaps)/landsurface/topo/demmin.nc
234# Elevation standard deviation [m], i.e. altitude difference elevation within pixel.
235# Used for sub-pixel modelling of snow accumulation and melt
236ElevationStD = $(FILE_PATHS:PathMaps)/landsurface/topo/demstd.nc
237# Area of pixel [m2] (for lat/lon every cell has a different area)
238CellArea = $(FILE_PATHS:PathMaps)/landsurface/topo/cellarea.map
239
240#-------------------------------------------------------
241# INPUT METEOROLOGICAL TIMESERIES AS MAPS
242#-------------------------------------------------------
243[METEO]

Information on processes

Information will be read in from values in the settings file
As an example the value definitions for [SNOW] is shown:
328#-------------------------------------------------------
329[SNOW]
330#-------------------------------------------------------
331
332# Number of vertical Snow layers
333NumberSnowLayers = 5
334# up to which layer the ice melt is calculated with the middle temperature
335GlacierTransportZone = 2
336
337# snow with temperature only or with temperature and radiation
338snowmelt_radiation = False
339
340LapseRateVariable = False
341LapseRate = $(FILE_PATHS:PathMaps)/landsurface/topo/lapserate_month.nc
342
343# Temperature lapse rate with altitude [deg C / m]
344TemperatureLapseRate = 0.0042
345# Multiplier applied to precipitation that falls as snow
346#SnowFactor = $(FILE_PATHS:PathSnowPara)/params_snowfactor.map
347# Range [m C-1 d-1] of the seasonal variation, SnowMeltCoef is the average value
348SnowSeasonAdj = 0.002
349# Average temperature at which snow melts
350TempMelt = 1.0
351# Average temperature below which precipitation is snow
352TempSnow = 1.0
353# Snow melt coefficient: default: 4.0 
354# SRM: 0.0045 m/C/day ( = 4.50 mm/C/day), Kwadijk: 18 mm/C/month (= 0.59 mm/C/day)  
355# See also Martinec et al., 1998.

Note

TemperatureLapseRate = 0.0065
for the variable TemperatureLapseRate the value of 0.0065 is set

Variables can also be defined by spatial maps or map stacks

tanslope = $(PathTopo)\tanslope.map
forest_coverFractionNC   = $(PathForest)\coverFractionInputForest366days.nc

Note

suffix can be .map, but if there is no PCraster map it will look automatically for netCDF .nc
In most cases values can be replaced by map

Reading meteorological information

Meteorological information get be at coarser resolution (e.g. 5 arcmin) than the model is set up (e.g. 1 arcmin).
CWatM is downscaling the coarser resolution on the fly, with monthly average values for precipitation and temperature.

Note

Precipitation data sometimes hve the unit [kg m-2s-1] and sometimes [kg m-2] or [mm] | CWatM converts almost everything to [m] | Therefore the precipitation_coversion converts e.g. from [kg m-2s-1] to [m] with the factor: 86.4
240#-------------------------------------------------------
241# INPUT METEOROLOGICAL TIMESERIES AS MAPS
242#-------------------------------------------------------
243[METEO]
244
245# if meteo maps have the same scale than all the other maps e.g. 0.5 deg
246meteomapssamescale = True
247downscale_wordclim_tavg = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tas_monthmean.nc
248downscale_wordclim_tmin = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tasmin_monthmean.nc
249downscale_wordclim_tmax = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tasmax_monthmean.nc
250downscale_wordclim_prec = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/pr_monthlysum.nc
251# if usemeteodownscaling = True (default if not set) meteo maps will be downscaled
252# if usemeteodownscaling = False: meteomaps will be use as they come e.g. as 0.5 deg 
253usemeteodownscaling = False
254
255# precipitation [kg m-2 s-1]
256PrecipitationMaps = $(FILE_PATHS:PathMeteo)/pr_*
257# average daily temperature [K]
258TavgMaps = $(FILE_PATHS:PathMeteo)/tas_*
259
260# ----------------------------------------
261# This is used if calc_evaporation = False
262
263# daily reference evaporation (free water) 
264E0Maps = $(FILE_PATHS:PathMeteo)/EWRef_basin.nc
265# daily reference evapotranspiration (crop) 
266ETMaps = $(FILE_PATHS:PathMeteo)/ETRef_basin.nc
267# this is true, if ET maps have the same resolution as pr maps
268ETsamePr = True
269# --------------------------------
270# from kg m-2s-1 to m : 86.4
271#precipitation_coversion = 86.4
272
273# from MM to m : 0.001
274precipitation_coversion = 0.001
275
276evaporation_coversion = 1.0
277
278#OUTPUT maps and timeseries
279#OUT_Dir = $(FILE_PATHS:PathOut)
280#OUT_MAP_Daily = Precipitation

Using inflow

Inflow is using a timeseries of discharge for single grid cell(s) to put the value a the timeseries into the river(s) at these location as additiona; discharge

|If you defined in [Option] inflow = True. | You have to define the folder with inflow information, the inflow point(s) and the .csv file with the timeserie(s)

916#-------------------------------------------------------
917[INFLOW]
918#-------------------------------------------------------
919
920# if option inflow = true
921# the inflow from outside is added at inflowpoints
922In_Dir = P:/watmodel/calibration\basin\G0005\inflow
923
924# nominal map with locations of (measured)inflow hydrographs [cu m / s]
925InflowPoints = 0 0
926InLocal = True
927
928# if InflowPoints is a map, this flag is to identify if it is global (False) or local (True)
929# observed or simulated input hydrographs as time series [cu m / s]
930# Note: that identifiers in time series have to correspond to InflowPoints
931# can be several timeseries in one file or different files e.g. main.tss mosel.tss
932QInTS = inflow_last_run.tss

Information on output

We put OUTPUT as last section (easier to find)
But in principle you can sort the [SECTIONS] in your preferable way
Output should point to a folder, where the output should be stored.
And the variables you want to store. For the format of output variables see: Model Output
954#+++++++++++++++++++++++++++++++++++++++++++++++++++++++
955[OUTPUT]
956
957# OUTPUT maps and timeseries
958OUT_Dir = $(FILE_PATHS:PathOut)
959
960OUT_TSS_Daily = discharge
961
962OUT_MAP_Daily = SnowCover, runoff
963OUT_Map_TotalAvg = SnowCover

Sections of information

  • Snow

  • Frost

  • General information on land cover types

  • Soil

  • Information for each of the six land cover types
    • Forest

    • Grassland

    • Paddy irrigated area

    • Irrigated area

    • Sealed area

    • Water covered area

  • Interflow

  • Groundwater

  • Water demand

  • Runoff concentration

  • Routing

  • Lakes and reservoirs

  • Inflow

Complete settings file

Example of a settings file:

  1# ------------------------------------------------
  2
  3######## ##          ##  ####  ######  ##    ##
  4##       ##          ## ##  ##   ##   ####  ####
  5##        ##        ##  ##  ##   ##   ## #### ##
  6##        ##   ##   ## ########  ##  ##   ##   ##
  7##         ## #### ##  ##    ##  ##  ##        ##
  8##         ####  #### ##      ## ## ##          ##
  9##########  ##    ##  ##      ## ## ##          ##
 10
 11# Community Water Model Version 1.10
 12# SETTINGS FILE
 13# ------------------------------------------------
 14
 15[OPTIONS]
 16#-------------------------------------------------------
 17# OPTION - to switch on/off
 18#-------------------------------------------------------
 19
 20# Data otions
 21# if temperature is stored in Kelvin instead Celsius
 22TemperatureInKelvin = False
 23# if lat/lon the area has to be user defined = precalculated
 24gridSizeUserDefined = True
 25
 26#-------------------
 27# Save a basin map and an upstream map in PathOut
 28savebasinmap = False
 29
 30#-----------------------------------------------
 31# Evaporation: calculate pot. evaporation (True) or use precalculated pot.evaporation map stacks (False)
 32calc_evaporation = True
 33
 34# Method to calculate potential evaporation (default = 1)
 35# 1: Penman Monteith (is used if PET_modus is missing)
 36# 2: Milly and Dunne (Energy only PET = 0.8(Rn −G) )
 37# 3: Yang et al. Penman Montheith correction method
 38# 4: Priestley-Taylor 
 39# 5: Modified Thornthwaite method (Pereira et al. 2004)
 40PET_modus = 3
 41#-----------------------------------------------
 42# Irrigation and water demand
 43
 44# if irrigation is included, otherwise paddy and non paddy is put into 'grassland'
 45includeIrrigation = True
 46# if water demand from irrigation, industry and domestic is included
 47includeWaterDemand = True
 48# Water allocation
 49# if water demand and availability is calculated for region to compare demand vs. avail
 50usingAllocSegments = False
 51# limit abstraction to available groundwater (True) include fossil groundwater (False)
 52limitAbstraction = False
 53#Sector- source-abstraction fractions are specified, in WATERDEMAND
 54sectorSourceAbstractionFractions = True
 55
 56# ---- Glacier ---------------
 57includeGlaciers = True
 58
 59#  --- Snow ------------------------------------
 60# -- advanced snow modeling with pySnowClim ----
 61usepySnowClim = True
 62# Stop run after Snow -> for only snow calibration
 63stopaftersnow = True
 64
 65# --------------------------------
 66# Environmental Flow
 67calc_environflow = False
 68
 69#-----------------------------------------------
 70# Soil 
 71# use preferential flow, that bypasses the soil matrix and drains directly to the groundwater (not for irrPaddy)
 72preferentialFlow = True
 73# Capillar rise
 74CapillarRise = True
 75
 76#-----------------------------------------------
 77# Groundwater calculation with Modflow
 78modflow_coupling = False
 79use_complex_solver_for_modflow = False
 80
 81# ---------------------------------
 82# Routing
 83# if runoff concentration to the edge of a cell is included
 84includeRunoffConcentration = True
 85# Waterbodies like lakes and reservoirs
 86includeWaterBodies = True
 87# kinematic wave routing, if False no routing is calculated
 88includeRouting = True
 89
 90# Reservoirs
 91reservoir_add_info_in_Excel = False
 92reservoir_releases_in_Excel_settings = False
 93reservoir_transfers = False
 94
 95#-----------------------------------------------
 96# Inflow from outside of the modelled area
 97inflow = False
 98
 99# --- Reporting & Debugging ------------------- ----------------------------------------------
100# Reporting options
101writeNetcdfStack = True
102reportMap = True
103reportTss = True
104# Checking water balance (for debugging)
105calcWaterBalance = False
106sumWaterBalance = False
107
108includeCrops = True
109use_GeneralCropnonIrr = 0
110use_GeneralCropIrr = 0
111activate_fallow = 1
112automaticFallowingIrr = False
113moveIrrFallowToNonIrr = False
114leftoverIrrigatedCropIsRainfed = False
115
116static_irrigation_map = True
117
118#-------------------------------------------------------
119# DEFINITIONS OF PARAMETERS
120#-------------------------------------------------------
121
122#-------------------------------------------------------
123[FILE_PATHS]
124#-------------------------------------------------------
125PathRoot = C:/CWATM/basin
126PathOut = $(PathRoot)/out
127PathInit = $(PathRoot)/init
128PathMaps = $(PathRoot)/input
129PathMeteo = $(PathRoot)/meteo
130PathParameter = $(PathMaps)/parametermaps
131Excel_settings_file = $(PathMaps)/cwatm_crop_reservoirs.xlsx
132
133#-------------------------------------------------------
134[NETCDF_ATTRIBUTES]
135institution = IIASA
136title = CWatM default settingsfile
137metaNetcdfFile = $(FILE_PATHS:PathRoot)/metaNetcdf.xml
138
139#-------------------------------------------------------
140# AREA AND OUTLETS
141#-------------------------------------------------------
142[MASK_OUTLET]
143
144# Area mask
145# A pcraster map, tif or netcdf map e.g.  $(FILE_PATHS:PathRoot)/data/areamaps/area_indus.map
146# or a retancle: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y 
147#MaskMap = $(FILE_PATHS:PathMaps)/areamaps/upper.map
148MaskMap = $(FILE_PATHS:PathMaps)/areamaps/basin.tif
149
150#-------------------------------------------------------
151# Station data
152# either a map e.g. $(FILE_PATHS:PathRoot)/data/areamaps/area3.map
153# or a location coordinates (X,Y) e.g. 5.75 52.25 9.25 49.75 )
154# Salzburg
155#Gauges = 13.04167 47.80833
156
157# if .tif file for gauges, this is a flag if the file is global or local
158# e.g. Gauges = $(FILE_PATHS:PathRoot)/data/areamaps/gaugesRhine.tif
159GaugesLocal = True
160
161#-------------------------------------------------------
162[TIME-RELATED_CONSTANTS]
163#-------------------------------------------------------
164
165# StepStart has to be a date e.g. 01/06/1990
166# SpinUp or StepEnd either date or numbers 
167# SpinUp: from this date output is generated (up to this day: warm up)
168
169StepStart = 01/01/1960
170SpinUp = 01/10/1965
171StepEnd = 30/09/2022
172
173#-------------------------------------------------------
174[INITITIAL CONDITIONS]
175#-------------------------------------------------------
176
177# for a warm start initial variables a loaded
178# e.g for a start on 01/01/2010 load variable from 31/12/2009
179load_initial = True
180initLoad = $(FILE_PATHS:PathInit)/basin_20221231.nc
181
182# saving variables from this run, to initiate a warm start next run
183# StepInit = saving date, can be more than one: 10/01/1973 20/01/1973
184save_initial = False
185initSave = $(FILE_PATHS:PathInit)/basin
186StepInit = 31/12/1999 31/12/2004 31/12/2009 31/12/2022
187
188#-------------------------------------------------------
189# CALIBARTION PARAMETERS
190#-------------------------------------------------------
191[CALIBRATION]
192
193# These are parameter which are used for calibration
194# could be any parameter, but for an easier overview, tehey are collected here
195# in the calibration template a placeholder (e.g. 0.9999999999999999eta) instead of value
196
197# reservoir  normal storage limit (fraction of total storage, [-]) [0.15 - 0.85] default 0.5
198# These are parameter which are used for calibration
199# could be any parameter, but for an easier overview, tehey are collected here
200# in the calibration template a placeholder (e.g. 0.11805799193919307eta) instead of value
201
202
203SnowFactor = $(FILE_PATHS:PathParameter)/params_snowfactor.nc
204SnowMeltCoef = $(FILE_PATHS:PathParameter)/params_snowMelt.nc
205#SnowMeltRad = $(FILE_PATHS:PathParameter)/params_snowRad.nc
206IceMeltCoef  = $(FILE_PATHS:PathParameter)/params_iceMelt.nc
207
208crop_correct =  $(FILE_PATHS:PathParameter)/params_crop.nc
209preferentialFlowConstant = $(FILE_PATHS:PathParameter)/params_pref.nc
210arnoBeta_add = $(FILE_PATHS:PathParameter)/params_arnoB.nc
211ksat_fact = $(FILE_PATHS:PathParameter)/params_ksatfact.nc
212
213factor_interflow = $(FILE_PATHS:PathParameter)/params_interF.nc
214recessionCoeff_factor = $(FILE_PATHS:PathParameter)/params_reces.nc
215
216manningsN = $(FILE_PATHS:PathParameter)/params_CCM.nc
217normalStorageLimit = $(FILE_PATHS:PathParameter)/params_normalStor.nc
218lakeAFactor = $(FILE_PATHS:PathParameter)/params_lakeAFactor.nc
219
220runoffConc_factor =  $(FILE_PATHS:PathParameter)/params_runoff.nc
221
222# lake parameter - factor for wind evaporation
223lakeEvaFactor = 1.2
224soildepth_factor = 1.0
225
226#-------------------------------------------------------
227# TOPOGRAPHY MAPS
228#-------------------------------------------------------
229[TOPOP]
230# local drain direction map (1-9)
231Ldd = $(FILE_PATHS:PathMaps)/routing/ldd.nc
232#Elevation = $(FILE_PATHS:PathMaps)/landsurface/topo/dem.nc
233Elevation_min = $(FILE_PATHS:PathMaps)/landsurface/topo/demmin.nc
234# Elevation standard deviation [m], i.e. altitude difference elevation within pixel.
235# Used for sub-pixel modelling of snow accumulation and melt
236ElevationStD = $(FILE_PATHS:PathMaps)/landsurface/topo/demstd.nc
237# Area of pixel [m2] (for lat/lon every cell has a different area)
238CellArea = $(FILE_PATHS:PathMaps)/landsurface/topo/cellarea.map
239
240#-------------------------------------------------------
241# INPUT METEOROLOGICAL TIMESERIES AS MAPS
242#-------------------------------------------------------
243[METEO]
244
245# if meteo maps have the same scale than all the other maps e.g. 0.5 deg
246meteomapssamescale = True
247downscale_wordclim_tavg = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tas_monthmean.nc
248downscale_wordclim_tmin = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tasmin_monthmean.nc
249downscale_wordclim_tmax = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/tasmax_monthmean.nc
250downscale_wordclim_prec = $(FILE_PATHS:PathMaps)/meteo/monthly_emo1/pr_monthlysum.nc
251# if usemeteodownscaling = True (default if not set) meteo maps will be downscaled
252# if usemeteodownscaling = False: meteomaps will be use as they come e.g. as 0.5 deg 
253usemeteodownscaling = False
254
255# precipitation [kg m-2 s-1]
256PrecipitationMaps = $(FILE_PATHS:PathMeteo)/pr_*
257# average daily temperature [K]
258TavgMaps = $(FILE_PATHS:PathMeteo)/tas_*
259
260# ----------------------------------------
261# This is used if calc_evaporation = False
262
263# daily reference evaporation (free water) 
264E0Maps = $(FILE_PATHS:PathMeteo)/EWRef_basin.nc
265# daily reference evapotranspiration (crop) 
266ETMaps = $(FILE_PATHS:PathMeteo)/ETRef_basin.nc
267# this is true, if ET maps have the same resolution as pr maps
268ETsamePr = True
269# --------------------------------
270# from kg m-2s-1 to m : 86.4
271#precipitation_coversion = 86.4
272
273# from MM to m : 0.001
274precipitation_coversion = 0.001
275
276evaporation_coversion = 1.0
277
278#OUTPUT maps and timeseries
279#OUT_Dir = $(FILE_PATHS:PathOut)
280#OUT_MAP_Daily = Precipitation
281
282#-------------------------------------------------------
283# CALCULATE EVAPORATION - PENMAN - MONTEITH
284#-------------------------------------------------------
285[EVAPORATION]
286
287# This is used if calc_evaporation = True
288# use albedo maps
289albedo = False
290albedoMaps = $(FILE_PATHS:PathMaps)/landsurface/albedo/albedo.nc 
291
292# if not albedo maps use fixed albedo
293# Albedo of bare soil surface (Supit et. al.)
294AlbedoSoil = 0.15
295# Albedo of water surface (Supit et. al.)
296AlbedoWater = 0.05
297# Albedo of vegetation canopy (FAO,1998)
298AlbedoCanopy = 0.23
299
300
301only_radiation = True
302dem = $(FILE_PATHS:PathMaps)/landsurface/topo/demavg.nc
303latitude = $(FILE_PATHS:PathMaps)/landsurface/topo/lat.nc
304
305# use CO2 correction from Yang et al. 2019 -> CO2 concentration 
306co2conc = $(FILE_PATHS:PathMaps)/RCP_CO2/ssp370.nc4 
307# use specific humidity (TRUE) QAir,  or relative humidity (FALSE) - rhs
308useHuss = False
309
310# radiation maps  [KJ m-2 day-1]
311RGDMaps = $(FILE_PATHS:PathMeteo)/rg_*
312# vapor pressure maps [hPa]
313EActMaps = $(FILE_PATHS:PathMeteo)/pd_*
314
315# map stacks Temperature [K}]
316TminMaps = $(FILE_PATHS:PathMeteo)/tasmin_*
317TmaxMaps = $(FILE_PATHS:PathMeteo)/tasmax_*
318# Instantaneous surface pressure[Pa]
319##PSurfMaps = $(FILE_PATHS:PathMeteo)/ps*
320# 2 m istantaneous specific humidity[kg /kg] (QAir) or relative humidity [%] (rhs)
321##RhsMaps = $(FILE_PATHS:PathMeteo)/hurs*
322# wind speed maps at 10m [m/s]
323WindMaps = $(FILE_PATHS:PathMeteo)/ws_*
324
325#OUT_Dir = $(FILE_PATHS:PathInit)
326#OUT_MAP_Daily = ETRef, EWRef
327
328#-------------------------------------------------------
329[SNOW]
330#-------------------------------------------------------
331
332# Number of vertical Snow layers
333NumberSnowLayers = 5
334# up to which layer the ice melt is calculated with the middle temperature
335GlacierTransportZone = 2
336
337# snow with temperature only or with temperature and radiation
338snowmelt_radiation = False
339
340LapseRateVariable = False
341LapseRate = $(FILE_PATHS:PathMaps)/landsurface/topo/lapserate_month.nc
342
343# Temperature lapse rate with altitude [deg C / m]
344TemperatureLapseRate = 0.0042
345# Multiplier applied to precipitation that falls as snow
346#SnowFactor = $(FILE_PATHS:PathSnowPara)/params_snowfactor.map
347# Range [m C-1 d-1] of the seasonal variation, SnowMeltCoef is the average value
348SnowSeasonAdj = 0.002
349# Average temperature at which snow melts
350TempMelt = 1.0
351# Average temperature below which precipitation is snow
352TempSnow = 1.0
353# Snow melt coefficient: default: 4.0 
354# SRM: 0.0045 m/C/day ( = 4.50 mm/C/day), Kwadijk: 18 mm/C/month (= 0.59 mm/C/day)  
355# See also Martinec et al., 1998.
356
357[pySnowclim]
358
359useTdew = False
360TDewMaps = $(FILE_PATHS:PathMeteo)/Tdew_*
361
362stability = 1.
363# Stability setting (default: 1)
364windHt = 10.
365# Wind height (default: 10 meters)
366tempHt = 2.0
367# Temperature height (default: 2 meters)
368snowoff_month = 9
369# Month of snow-off (default: 9)
370snowoff_day = 1
371# Day of snow-off (default: 1)
372albedo_option = 2
373# Albedo option(default: 2)
374max_albedo = 0.85
375# Maximum albedo (default: 0.85)
376z_0 = 0.00001
377# Roughness length (default: 0.00001 m)
378z_h = 0.000001
379# Roughness length for heat (default: z_0/10)
380lw_max = 0.1
381# Maximum longwave radiation(default: 0.1)
382Tstart = 0.
383# Starting temperature (default: 0°C)
384Tadd = -10000.
385# Temperature adjustment (default: -10000°C)
386maxtax = 0.9
387# Maximum tax (default: 0.9)
388E0_value = 1
389# Windless exchange coefficient (default: 1)
390E0_app = 1
391# Windless exchange application option (default: 1)
392E0_stable = 2
393# Windless exchange stability option (default: 2)
394Ts_add = 2.
395# Temperature add factor (default: 2°C)
396smooth_time_steps = 12
397# Smoothing time steps (default: 12)
398ground_albedo = 0.25
399# Ground albedo (default: 0.25)
400snow_emis = 0.98
401# Snow emissivity (default: 0.98)
402snow_dens_default = 250.
403# Default snow density (default: 250 kg/m³)
404G = 0.002002314815
405# Ground conduction (default: 173/86400 kJ/m²/s)
406max_swe_height = 100.
407# Max height of SWE before solar radiation factor starts to work (default: 100 m)
408downward_radiation_factor = 1.3
409# Factor to be multiplied by solar radiation when SWE > max_swe_height (default: 1.3)
410downward_radiation_start_month = 1
411# Month where solar_radiation_factor start to be applied (default: 6)
412downward_radiation_end_month = 12
413# Month where solar_radiation_factor ends (default: 10)
414
415[GLACIER]
416# linking to OGGM glacier output
417MeltGlacierMaps = $(FILE_PATHS:PathMaps)/glacier/melt_on_pf1.5_1min.nc
418PrecGlacierMaps = $(FILE_PATHS:PathMaps)/glacier/liq_prcp_on_pf1.5_1min.nc
419fractionGlaciercover = $(FILE_PATHS:PathMaps)/glacier/area_11_pf1.5_1min.nc
420# only glacier melt and not rain on glacier -> should be False
421includeOnlyGlaciersMelt = False
422# exclude glacier area from CWATM run and use the OGGM glacier inflow -> should be True
423excludeGlacierArea = True
424
425[FROST]
426# Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996)
427SnowWaterEquivalent = 0.45
428# Daily decay coefficient, (Handbook of Hydrology, p. 7.28)
429Afrost = 0.97
430# Snow depth reduction coefficient, [cm-1], (HH, p. 7.28)
431Kfrost = 0.57
432# Degree Days Frost Threshold (stops infiltration, percolation and capillary rise)
433# Molnau and Bissel found a value 56-85 for NW USA.
434FrostIndexThreshold = 56
435# To avoid artificial flood events, max value of the Frost Index is set to a limit (e.g 60)
436Advanced_FrostIndex = True
437maxFrostIndex = 60
438#--------------------------------------------------------------
439# INITIAL CONDITIONS: FrostIndexIni
440
441[VEGETATION]
442cropgroupnumber = $(FILE_PATHS:PathMaps)/soil/cropgrp.nc
443# soil water depletion fraction, Van Diepen et al., 1988: WOFOST 6.0, p.86, Doorenbos et. al 1978
444
445#-------------------------------------------------------
446[SOIL]
447#-------------------------------------------------------
448
449PathTopo = $(FILE_PATHS:PathMaps)/landsurface/topo
450PathSoil = $(FILE_PATHS:PathMaps)/soil
451
452
453# Topography mapsNetcdf/maps
454# tangent slope, slope length and orographybeta 
455tanslope = $(PathTopo)/tanslope.nc
456slopeLength = $(PathTopo)/sssss
457
458# maps of relative elevation above flood plains
459relativeElevation = $(PathTopo)/dzRel_1min.nc
460
461# Soil hydraulic properties
462
463# soil (Hypres pedotransfer function - http://esdac.jrc.ec.europa.eu/ESDB_Archive/ESDBv2/popup/hy_param.htm)
464KSat1 = $(PathSoil)/ksat_1.nc
465KSat2 = $(PathSoil)/ksat_3.nc
466KSat3 = $(PathSoil)/ksat_5.nc
467# Alpha: an Genuchten’s shape parameter
468alpha1 = $(PathSoil)/alpha_1.nc
469alpha2 = $(PathSoil)/alpha_3.nc
470alpha3 = $(PathSoil)/alpha_5.nc
471#Lambda: an Genuchten’s shape parameter = n-1-> n = lamda+1, m = 1 - (1/n)
472lambda1 = $(PathSoil)/lambda_1.nc
473lambda2 = $(PathSoil)/lambda_3.nc
474lambda3 = $(PathSoil)/lambda_5.nc
475# thetas  is the volumetric water content θ saturated 
476thetas1 = $(PathSoil)/thetas_1.nc
477thetas2 = $(PathSoil)/thetas_3.nc
478thetas3 = $(PathSoil)/thetas_5.nc
479# thetar is the volumetric water content θ residual 
480thetar1 = $(PathSoil)/thetar_1.nc
481thetar2 = $(PathSoil)/thetar_3.nc
482thetar3 = $(PathSoil)/thetar_5.nc
483percolationImp = $(PathSoil)/percolationImp.nc
484
485maxGWCapRise    = 5.0
486minCropKC        = 0.2
487minTopWaterLayer = 0.0
488
489# Soil depth
490StorDepth1 = $(PathSoil)/soildepth1.nc
491StorDepth2 = $(PathSoil)/soildepth2.nc
492
493# preferential flow (between 1.0 and 8.0)
494# used in CALIBRATION -> copied to CALIBRATION
495#preferentialFlowConstant = 4.0
496
497#-------------------------------------------------------
498[LANDCOVER]
499PathLandcover = $(FILE_PATHS:PathMaps)/landsurface
500
501coverTypes = forest, grassland, irrPaddy, irrNonPaddy, sealed, water
502coverTypesShort = f, g, i, n, s, w
503fractionLandcover = $(PathLandcover)/fractionLandcover.nc
504
505# Landcover can vary from year to year
506dynamicLandcover = True
507# if landcover cannot vary, which year should be taken as fixed year
508fixLandcoverYear = 1990
509
510PathCrop = $(FILE_PATHS:PathMaps)/landcover/crops
511TOBACCO_Irr = $(PathCrop)/Irrigated_maps/spam2020_TOBA_Irrigated.nc
512WHEAT_Irr = $(PathCrop)/Irrigated_maps/spam2020_WHEAT_Irrigated.nc
513BARLEY_Spring_Irr = $(PathCrop)/Irrigated_maps/spam2020_BARL_Irrigated.nc
514BARLEY_Winter_Irr = $(PathCrop)/Irrigated_maps/spam2020_BARL_Irrigated.nc
515BEAN_Irr = $(PathCrop)/Irrigated_maps/spam2020_BEAN_Irrigated.nc
516CHICKPEA_Irr = $(PathCrop)/spam2020_ZeroLayer.nc
517LENTIL_Irr = $(PathCrop)/Irrigated_maps/spam2020_LENT_Irrigated.nc
518MAIZ_Irr = $(PathCrop)/Irrigated_maps/spam2020_MAIZ_Irrigated.nc
519POTATO_Irr = $(PathCrop)/Irrigated_maps/spam2020_POTA_Irrigated.nc
520SOYBEAN_Irr = $(PathCrop)/Irrigated_maps/spam2020_SOYB_Irrigated.nc
521SUGARBEET_Irr = $(PathCrop)/Irrigated_maps/spam2020_SUGB_Irrigated.nc
522SUNFLOWER_Irr = $(PathCrop)/Irrigated_maps/spam2020_SUNF_Irrigated.nc
523SUNFLOWER_rainfed_Irr =  $(PathCrop)/spam2020_ZeroLayer.nc
524SORGHUM_Irr = $(PathCrop)/spam2020_ZeroLayer.nc
525SMALL_MILLET_Irr = $(PathCrop)/Irrigated_maps/spam2020_MILL_Irrigated.nc
526RICE_Irr =  $(PathCrop)/spam2020_ZeroLayer.nc
527
528TOBACCO_nonIrr = $(PathCrop)/Rainfed_maps/spam2020_TOBA_Rainfed.nc
529WHEAT_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_WHEAT_Rainfed.nc
530BARLEY_Spring_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_BARL_Rainfed.nc
531BARLEY_Winter_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_BARL_Rainfed.nc
532BEAN_nonIrr = $(PathCrop)/Rainfed_maps/spam2020_BEAN_Rainfed.nc
533CHICKPEA_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_CHIC_Rainfed.nc
534LENTIL_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_LENT_Rainfed.nc
535MAIZ_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_MAIZ_Rainfed.nc
536POTATO_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_POTA_Rainfed.nc
537SOYBEAN_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_SOYB_Rainfed.nc
538SUGARBEET_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_SUGB_Rainfed.nc
539SUNFLOWER_nonIrr =  $(PathCrop)/spam2020_ZeroLayer.nc
540SUNFLOWER_rainfed_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_SUNF_Rainfed.nc
541SORGHUM_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_SORG_Rainfed.nc
542SMALL_MILLET_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_MILL_Rainfed.nc
543RICE_nonIrr =  $(PathCrop)/Rainfed_maps/spam2020_RICE_Rainfed.nc
544#-------------------------------------------------------
545
546[__forest]
547PathForest = $(FILE_PATHS:PathMaps)/landcover/forest
548PathSoil =  $(FILE_PATHS:PathMaps)/soil
549
550# Parameters for the Arno's scheme 
551# arnoBeta is defined by orographic,+ land cover add + calibration add, the soil water capacity distribution is based on this 
552# range [0.01 - 1.2]
553forest_arnoBeta = 0.0
554
555#forest_soil
556forest_KSat1 = $(PathSoil)/ksat_1.nc
557forest_KSat2 = $(PathSoil)/ksat_3.nc
558forest_KSat3 = $(PathSoil)/ksat_5.nc
559forest_alpha1 = $(PathSoil)/alpha_1.nc
560forest_alpha2 = $(PathSoil)/alpha_3.nc
561forest_alpha3 = $(PathSoil)/alpha_5.nc
562forest_lambda1 = $(PathSoil)/lambda_1.nc
563forest_lambda2 = $(PathSoil)/lambda_3.nc
564forest_lambda3 = $(PathSoil)/lambda_5.nc
565forest_thetas1 = $(PathSoil)/thetas_1.nc
566forest_thetas2 = $(PathSoil)/thetas_3.nc
567forest_thetas3 = $(PathSoil)/thetas_5.nc
568forest_thetar1 = $(PathSoil)/thetar_1.nc
569forest_thetar2 = $(PathSoil)/thetar_3.nc
570forest_thetar3 = $(PathSoil)/thetar_5.nc
571
572forest_minInterceptCap  = 0.001
573forest_cropDeplFactor   = 0.0
574forest_fracVegCover  = $(PathForest)/fracVegCover.map
575forest_rootFraction1 = $(PathForest)/rootFraction1.map
576forest_rootFraction2 = $(PathForest)/rootFraction2.map
577forest_maxRootDepth  = $(PathForest)/maxRootDepth.map
578forest_minSoilDepthFrac = $(PathForest)/minSoilDepthFrac.map
579
580forest_cropCoefficientNC = $(PathForest)/cropCoefficientForest_10days.nc
581forest_interceptCapNC    = $(PathForest)/interceptCapForest_10days.nc
582
583[__grassland]
584PathGrassland = $(FILE_PATHS:PathMaps)/landcover/grassland
585
586# Parameters for the Arno's scheme: 
587grassland_arnoBeta = 0.0
588# arnoBeta is defined by orographic,+ land cover add + calibration add, the soil water capacity distribution is based on this
589# range [0.01 - 1.2]
590
591grassland_minInterceptCap  = 0.001
592grassland_cropDeplFactor   = 0.0
593grassland_fracVegCover  = $(PathGrassland)/fracVegCover.map
594grassland_rootFraction1 = $(PathGrassland)/rootFraction1.map
595grassland_rootFraction2 = $(PathGrassland)/rootFraction2.map
596grassland_maxRootDepth  = $(PathGrassland)/maxRootDepth.map
597grassland_minSoilDepthFrac = $(PathGrassland)/minSoilDepthFrac.map
598
599grassland_cropCoefficientNC = $(PathGrassland)/cropCoefficientGrassland_10days.nc
600grassland_interceptCapNC    = $(PathGrassland)/interceptCapGrassland_10days.nc
601
602[__irrPaddy]
603PathIrrPaddy = $(FILE_PATHS:PathMaps)/landcover/irrPaddy
604
605# Parameters for the Arno's scheme:
606irrPaddy_arnoBeta = 0.0
607# arnoBeta is defined by orographic,+ land cover add + calibration add, the soil water capacity distribution is based on this
608# range [0.01 - 1.2]
609
610irrPaddy_minInterceptCap  = 0.001
611irrPaddy_cropDeplFactor   = 0.0
612irrPaddy_fracVegCover  = $(FILE_PATHS:PathMaps)/landcover/crops/spam2020_RICE_Irrigated.nc
613irrPaddy_rootFraction1 = 1.0
614irrPaddy_rootFraction2 = 1.0
615irrPaddy_maxRootDepth  = $(PathIrrPaddy)/maxRootDepth.map
616irrPaddy_minSoilDepthFrac = $(PathIrrPaddy)/minSoilDepthFrac.map
617irrPaddy_cropCoefficientNC = $(PathIrrPaddy)/cropCoefficientirrPaddy_10days.nc
618
619# maximum flooding depth for paddy
620irrPaddy_maxtopwater = 0.05
621
622[__irrNonPaddy]
623PathIrrNonPaddy = $(FILE_PATHS:PathMaps)/landcover/irrNonPaddy
624
625# Parameters for the Arno's scheme:
626irrNonPaddy_arnoBeta = -0.5
627# arnoBeta is defined by orographic,+ land cover add + calibration add, the soil water capacity distribution is based on this
628# range [0.01 - 1.2]
629
630irrNonPaddy_minInterceptCap  = 0.001
631irrNonPaddy_cropDeplFactor   = 0.0
632
633irrNonPaddy_fracVegCover  =  $(FILE_PATHS:PathMaps)/landcover/crops/Irrigatedlandfraction_map_Danube.nc
634irrNonPaddy_rootFraction1 = 1.0
635irrNonPaddy_rootFraction2 = 1.0
636irrNonPaddy_maxRootDepth  = $(PathIrrNonPaddy)/maxRootDepth.map
637irrNonPaddy_minSoilDepthFrac = $(PathIrrNonPaddy)/minSoilDepthFrac.map
638
639irrNonPaddy_cropCoefficientNC = $(PathIrrNonPaddy)/cropCoefficientirrNonPaddy_10days.nc
640
641[__sealed]
642PathSealed = $(FILE_PATHS:PathMaps)/landcover/sealed
643
644sealed_minInterceptCap  = 0.001
645
646[__open_water]
647PathWater = $(FILE_PATHS:PathMaps)/landcover/water
648water_minInterceptCap  = 0.0
649
650#-------------------------------------------------------
651[GROUNDWATER]
652#-------------------------------------------------------
653PathGroundwater = $(FILE_PATHS:PathMaps)/groundwater
654
655recessionCoeff = $(PathGroundwater)/k_v20.nc
656# baseflow = recessionCoeff * storage groundwater
657specificYield = $(PathGroundwater)/porosity_GLHYMPS.nc
658kSatAquifer = $(PathGroundwater)/kSatAquifer.nc
659# both not used at the moment in groundwater modul, but already loaded
660
661#-------------------------------------------------------
662[GROUNDWATER_MODFLOW]
663#-------------------------------------------------------
664
665#Executable Modflow file
666path_mf6dll = C:\nonGithub\Modflow6\mf6\win64
667#path_mf6dll = P:\watmodel\Modflow\linux
668
669# Path of Modflow input and output
670#PathGroundwaterModflow = C:/Data/CWatM/Modflow/Saudi/1000m
671PathGroundwaterModflow = C:/CWATM/basin/modflow/created_files/2500m
672PathGroundwaterModflowOutput = $(PathGroundwaterModflow)/output
673PathGroundwaterModflowInput = $(PathGroundwaterModflow)
674
675# write modflow eror to file
676writeModflowError = True
677
678##  --- Steady state begin -----------------------
679# soil humidity should not be high when starting to avoid to much pumping demand at the begining (between 0 and 1, 0.75 seems nice)
680start_soil_humid = 0.5
681# load an initial water table (in meter)
682load_init_water_table = False
683# if False, initial_water_table_depth (in m) is used on all the grid
684#initial_water_table_depth = $(PathGroundwaterModflowInput)/modflow_depth0_totalend.nc; $(PathGroundwaterModflowInput)/modflow_depth1_totalend.nc
685initial_water_table_depth = 0
686# if True, init_water_table is the initial water table file (2D numpy format (row, col))
687init_water_table = C:/CWATM/basin/init/basin_2500m_modflow_20000201.npy
688#init_water_table = P:\watmodel\CWATM\Saudi_Arabia\init\Saudi_Arabia_modflow_20211231.npy
689# Defining the upper limit of the groundwater layer
690use_soildepth_as_GWtop = True
691correct_soildepth_underlakes = False
692depth_underlakes = 2
693
694# Pumping file (a 3D numpy array where 1st dim is time, then, 1st col = ModFlow row index, 2nd col = ModFlow col index, 3rd col = pumping rates < 0 !!!! in m3/day)
695Groundwater_pumping = True
696# if ModFlow cells under the CWatM cell are less saturated than 1-water_table_limit_for_pumping, we prevent pumping
697water_table_limit_for_pumping = 0.2
698#Updated from 0.5
699
700#pump_location = 0;1
701
702# Prefix of the modflow files
703nameModflowModel = basin_2500m
704#ModFlow model's resolution [meter]
705Modflow_resolution = 2500 
706
707# timestep of every Modflow execution
708modflow_timestep = 1
709
710load_modflow_from_disk = False
711# Number of layers
712nlay = 1
713
714# Data for specified resolution
715cwatm_modflow_indices = $(PathGroundwaterModflowInput)/indices
716modflow_basin = $(PathGroundwaterModflowInput)/modflow_basin.tif
717topo_modflow = $(PathGroundwaterModflowInput)/elevation_modflow.tif
718chanRatio = $(PathGroundwaterModflowInput)/modlfow_river_percentage.tif
719
720# We assume a confined aquifer, the unique parameters are transmissivity, porosity and thickness
721# Processing thickness map for ModFlow-Flopy format #
722# Thickness (default = 400) otherwise use maps from Gleeson et al.
723thickness = 400
724#thickness = $(PathGroundwaterModflowInput)/Saq_thickness_1.tif; $(PathGroundwaterModflowInput)/Saq_thickness_1.tif
725# 800; 1200
726# Processing porosity map for ModFlow-Flopy format (default = 0.1)
727#poro = $(FILE_PATHS:PathMaps)/areamaps/parameter/Poro.txt
728poro = 0.04
729#Processing permeability map for ModFlow-Flopy format (default = 10E-5)
730permeability = 1e-07 
731specific_storage = 2.1e-06
732
733# leakage under lake and rivers in m/day
734leakageriver_permea = 0.05
735leakagelake_permea = 0.05
736
737
738[WATERDEMAND]
739#-------------------------------------------------------
740PathWaterdemand = $(FILE_PATHS:PathMaps)/landsurface/waterDemand
741# For water demand vs. availability: areas have to be aggregated
742# Allocation map
743allocSegments = $(PathWaterdemand)/catchx.nc
744
745# Demand in m/day [True] (default) or as mio m3 per year or month [False]
746demand_unit = True
747
748# Demand data monthly or yearly, as  m day-1 or mio m3 per month
749domesticWaterDemandFile = $(PathWaterdemand)/dom_month_mperday_1960_2020.nc
750# time = True for monthly, False for yearly
751domesticTimeMonthly = True
752# name of the variable Withrawal = Gross, consumption = Netto
753domesticWithdrawalvarname = domWW
754domesticConsuptionvarname = domCon
755
756industryWaterDemandFile = $(PathWaterdemand)/ind_month_mperday_1960_2020.nc
757industryTimeMonthly = True
758industryWithdrawalvarname = indWW
759industryConsuptionvarname = indCon
760
761uselivestock = True
762livestockWaterDemandFile = $(PathWaterdemand)/liv_month_mperday_1960_2020.nc
763livestockTimeMonthly = True 
764livestockvarname = livCon
765
766# using environmental flow (EF) (per month) as input value
767# EF will be treated as one part of overall water demand
768use_environflow = False
769EnvironmentalFlowFile = $(FILE_PATHS:PathOut)/MQ90_12month.nc
770
771irrNonPaddy_efficiency = 0.7
772irrPaddy_efficiency = 0.7
773irrigation_returnfraction = 0.5
774
775swAbstractionFraction_Channel_Domestic = 0
776swAbstractionFraction_Channel_Livestock = 1
777swAbstractionFraction_Channel_Industry = 1
778swAbstractionFraction_Channel_Irrigation = 1
779
780swAbstractionFraction_Lift_Domestic = 0
781swAbstractionFraction_Lift_Livestock = 0
782swAbstractionFraction_Lift_Industry = 0
783swAbstractionFraction_Lift_Irrigation = 0
784
785swAbstractionFraction_Lake_Domestic = 1
786swAbstractionFraction_Lake_Livestock = 1
787swAbstractionFraction_Lake_Industry = 1
788swAbstractionFraction_Lake_Irrigation = 1
789
790swAbstractionFraction_Res_Domestic = 1
791swAbstractionFraction_Res_Livestock = 1
792swAbstractionFraction_Res_Industry = 0
793swAbstractionFraction_Res_Irrigation = 1
794
795gwAbstractionFraction_Domestic = 1
796gwAbstractionFraction_Livestock = 1
797gwAbstractionFraction_Industry = 1
798gwAbstractionFraction_Irrigation = 1
799
800# -----------------------------------------------------------
801# Estimate of fractions of groundwater and surface water abstractions
802# Either a fixed fraction for surface water abstration
803# based on fraction of average baseflow and upstream average discharge 
804# if swAbstractionFrac < 0: fraction is taken from baseflow / discharge 
805# if swAbstractionFrac > 0 this value is taken as a fixed value 
806swAbstractionFrac = 0.8
807averageDischarge = $(FILE_PATHS:PathOut)/discharge_totalavg.nc
808# in [m3/s]
809averageBaseflow  = $(FILE_PATHS:PathOut)/baseflow_totalavg.nc
810# in [m3/s]
811baseflowInM = True
812# if baseflow is in [m] instead of [m3/s] it will be converted
813
814#-------------------------------------------------------
815# RUNOFF CONCENTRATION
816#-------------------------------------------------------
817[RUNOFF_CONCENTRATION]
818
819# using triagular weigthning method
820# the bigger the factor, more lag time 
821forest_runoff_peaktime = 1.0
822grassland_runoff_peaktime = 0.5
823irrPaddy_runoff_peaktime = 0.5
824irrNonPaddy_runoff_peaktime = 0.5
825sealed_runoff_peaktime = 0.15 
826water_runoff_peaktime = 0.01
827glaciers_runoff_peaktime = 0.5
828
829interflow_runoff_peaktime =1.0
830baseflow_runoff_peaktime = 2.0
831
832#-------------------------------------------------------
833# ROUTING MAPS and PARAMETERSD
834#-------------------------------------------------------
835[ROUTING]
836
837PathRouting = $(FILE_PATHS:PathMaps)/routing
838
839# Number of substep per day
840# should be 10 for 0.5 deg but 24 for 0.1 deg
841NoRoutingSteps = 24
842#kinematic wave parameter: 0.6 is for broad sheet flow
843chanBeta = 0.6
844
845# Channel gradient (fraction, dy/dx)
846chanGrad = $(PathRouting)/kinematic/changrad.nc
847# Minimum channel gradient (for kin. wave: slope cannot be 0)
848chanGradMin = 0.0001
849
850#Channel Manning's n
851chanMan = $(PathRouting)/kinematic/chanman.nc
852#Channel length [meters]
853chanLength = $(PathRouting)/kinematic/chanleng.nc
854#Channel bottom width [meters]
855chanWidth = $(PathRouting)/kinematic/chanbw2.nc
856#Bankfull channel depth [meters]
857chanDepth = $(PathRouting)/kinematic/chanbnkf2.nc
858
859#-------------------------------------------------------
860# LAKES AND RESERVOIRS
861#-------------------------------------------------------
862[LAKES_RESERVOIRS]
863
864PathLakesRes = $(FILE_PATHS:PathMaps)/routing/lakereservoir
865
866# Use reservoirs and lakes (otherwise use only lakes Lake ID=1 and 3 => natural conditions)
867useResAndLakes = True
868# Reservoirs do have a year of implementation
869dynamicLakesRes = True
870# if Reservoirs does not have a year of implemtation, which year should be taken as fixed year
871fixLakesResYear = 1950
872
873#----------------------------
874#Big lakes and Reservoirs
875
876# ID of every lake, reservoir from HydroLakes database
877waterBodyID = $(PathLakesRes)/lakeresID.nc
878# 1 for lake, 2 for reservoir, 3 for lake and reservoir
879waterBodyTyp = $(PathLakesRes)/lakeresType.nc
880# Avergae discharge from HydroLakes Database
881waterBodyDis = $(PathLakesRes)/lakeresDis.nc
882
883# Lakes surface area from HydroLakes Database 
884waterBodyArea = $(PathLakesRes)/lakeresArea.nc
885# a factor to scale the outlet of a lake
886#lakeAFactor = 1.0  -> calibration
887
888#----------------------------
889# Small lakes and reservoirs
890
891useSmallLakes = False
892
893smallLakesRes = $(PathLakesRes)/smallLakesRes.nc
894smallwaterBodyDis = $(PathLakesRes)/smalllakesresDis.nc
895
896#------------------
897# Reservoirs
898# reservoir volume from HydroLakes database
899waterBodyVolRes = $(PathLakesRes)/lakeresVolRes.nc
900# reservoir starting year from HydroLakes database 
901waterBodyYear = $(PathLakesRes)/lakeresYear.nc
902
903#  Conservative, normal and flood storage limit (fraction of total storage, [-])
904conservativeStorageLimit = 0.1
905#normalStorageLimit = 0.5   # --> put into calibration
906floodStorageLimit = 0.9
907# adjusting the balance between normal and flood storage
908# [0 ..1]  0: NormalstorageLimit      1: (= closer to flood) results in keeping the normal qoutflow longer constant
909adjust_Normal_Flood = 0.5
910
911# Minimum, Normal and Non-damaging reservoir outflow  (fraction of average discharge, [-])
912MinOutflowQ = 0.2
913NormalOutflowQ = 1.0
914NonDamagingOutflowQ = 4.0
915
916#-------------------------------------------------------
917[INFLOW]
918#-------------------------------------------------------
919
920# if option inflow = true
921# the inflow from outside is added at inflowpoints
922In_Dir = P:/watmodel/calibration\basin\G0005\inflow
923
924# nominal map with locations of (measured)inflow hydrographs [cu m / s]
925InflowPoints = 0 0
926InLocal = True
927
928# if InflowPoints is a map, this flag is to identify if it is global (False) or local (True)
929# observed or simulated input hydrographs as time series [cu m / s]
930# Note: that identifiers in time series have to correspond to InflowPoints
931# can be several timeseries in one file or different files e.g. main.tss mosel.tss
932QInTS = inflow_last_run.tss
933
934#-------------------------------------------------------
935[ENVIRONMENTALFLOW]
936#-------------------------------------------------------
937
938# Either calculate without run with predone discharge (set calc_ef_after = False)
939calc_ef_after = True
940# Or calculate after run (set calc_ef_after = False) and defining the file to be used
941EFDis = $(FILE_PATHS:PathOut)/discharge_basin.nc
942
943# if predone discharge, do the maps need to be cut to fit to the mask?
944cut_ef_map = False
945
946# MAF: Mean, Q90: percentile 90, MMF: monthly average, MQ90: monthly Q90 9averagwed over al Jan, Feb..
947# EF_VMF: Environmental flow - variable monthly flow, EF_VMF_LIH - EF- variable monthly flow, high intermediate, low class
948OUT_Dir = $(FILE_PATHS:PathOut)
949#OUT_MAP_Once = MAF, Q90
950#OUT_MAP_12month = MMF, MQ90, EF_VMF, EF_VMF_LIH
951#OUT_MAP_12month = MQ90, EF_VMF
952
953#+++++++++++++++++++++++++++++++++++++++++++++++++++++++
954#+++++++++++++++++++++++++++++++++++++++++++++++++++++++
955[OUTPUT]
956
957# OUTPUT maps and timeseries
958OUT_Dir = $(FILE_PATHS:PathOut)
959
960OUT_TSS_Daily = discharge
961
962OUT_MAP_Daily = SnowCover, runoff
963OUT_Map_TotalAvg = SnowCover