VIC Hydrology Model Training Workshop - Part V: Routing VIC Runoff
VIC Hydrology Model Training Workshop - Part V: Routing VIC Runoff
Introduction:
In this section of the workshop, VIC runoff (and base flow) are routed using the standard routing
code typically coupled to the VIC model. It should be emphasized that the routing code is
distinct from VIC, and serves the sole purpose of taking gridded daily runoff are computing
streamflow at a specific point.
While there has been work to update the routing model code, the official code remains the
fortran code available for download from:
http://www.hydro.washington.edu/Lettenmaier/Models/VIC/Documentation/Routing/RunRoutin
g.shtml
There are some specific instructions on the above page that you should refer to. In particular,
note that the routing code expects to find the runoff and baseflow in columns 6 and 7 of the VIC
output (fluxes) files. If any other format is used for the VIC output files you will need to edit the
make_convolution.f file and recompile the code.
vic_taller/vic_model/run$ cd ../route/code/
The files in this directory will be (the 'rout' file may not be there yet):
init_routines.f
make_convolution.f
Makefile
README
read_routines.f
rout
rout.f
unit_hyd_routines.f
write_routines.f
Type 'make' to compile the code. This will produce the 'rout' executable file.
The difficult part of the routing model is not compiling or running the model, but in preparing
the input files. Follow the two documents supplied as part of this workshop to help in developing
all of the input files required by the code.
Once the input files are completed, the main input file should be prepared according to the
required format, described at
http://www.hydro.washington.edu/Lettenmaier/Models/VIC/Documentation/Routing/InputSetup.
shtml
The flow can then be routed using a command like the following:
The first time you run a basin, a uh_s file will be created in the default directory (in this case,
MAT01.uh_s). This can either 1) be deleted, in which case it will just be recreated next time you
run the code, or 2) moved to another location (like a uh_s directory), and then replace the word
NONE with the path to the file (directory and file name). For large basins saving this file can
result in faster run times for the routing code, which is especially important if running the code
many times like in automated calibration.
There are many files created by the routing code. For each defined station, there are multiple
files, aggregated by time (daily, monthly, annual), and whether they are in units of flow (cubic
feet per second – sorry about neglecting SI units! Divide by 35.3 to convert to m3/s.) and mm
averaged over the catchment. For this example, there should be files: MAT01.day,
MAT01.end_of_month (an empty file), MAT01.month_mm, MAT01.year_mm,
MAT01.day_mm, MAT01.month, MAT01.year.
Coutesy of Dr. Jorge Gironas, there is a set of monthly streamflows for the Mataquito basin
outlet (Lincanten), which are in the spreadsheet mataquito_lincantenrun1.xls. You can import
your routed VIC output (MAT01.month) into that spreadsheet. Remember that MAT01.month
has flows in cfs, so convert these to m3/s for plotting. You may end up with a plot that looks
something like this:
From this a true diagnosis of how well the model captures the basin hydrology can begin.