UW logo

Variable Infiltration Capacity (VIC)
Macroscale Hydrologic Model

Home | Links | Contact
Dept. of Civil and Env. Engineering
University of Washington
Box 352700
Seattle, WA 98195-2700
206.685.1796
vicadmin@hydro.washington.edu

How to Use VIC as a Meteorological Forcing Disaggregator

In normal operation, VIC disaggregates daily forcings to a sub-daily time step, either the model time step (TIME_STEP) or the snow time step (SNOW_STEP) if this is different from the model time step. Normally, these disaggregated forcings are used internally but never written to the output files. However, there are many cases in which we want to store these disaggregated forcings; for example, preparing sub-daily forcings for other hydrologic models, or examining the inputs to VIC's physics functions.

For this reason, VIC has an option (OUTPUT_FORCE) to write its internal sub-daily forcings to output files. When OUTPUT_FORCE is TRUE, VIC will run as before, but after disaggregating each grid cell's forcings, it will move to the next grid cell without running a simulation.

Here is a detailed procedure for running VIC in OUTPUT_FORCE mode:

  1. edit user_def.h

    set OUTPUT_FORCE to TRUE

  2. recompile VIC

    make clean; make

  3. create a global parameter file. Because VIC will not actually run a simulation, it will ignore some of the file's contents. The only settings that VIC will pay attention to in this mode are:
    • TIME_STEP
      Set this to the sub-daily interval that you want your forcings disaggregated to
    • SNOW_STEP
      Set this equal to TIME_STEP
    • STARTYEAR, STARTMONTH, STARTDAY, STARTHOUR
      Set these to the start date for your disaggregated forcings
    • ENDYEAR, ENDMONTH, ENDDAY
      Set these to the end date for your disaggregated forcings
    • All the variables in the forcing section should be the same as before, i.e. these describe the input (daily) forcings that you are reading: FORCING1, FORCING2 (if applicable), FORCE_FORMAT, FORCE_ENDIAN, N_TYPES, FORCE_TYPE (there must be one of these for each input variable, e.g. PREC, TMAX, TMIN, WIND), FORCE_DT, FORCEYEAR, FORCEMONTH, FORCEDAY, FORCEHOUR, GRID,_DECIMAL, WIND_H, MEASURE_H, and ALMA_INPUT
    • SOIL, ARC_SOIL (if applicable), SOIL_DIR (if applicable)
      These should be set to the appropriate soil parameter file - VIC needs this to get a list of cells whose forcings it will read
    • RESULT_DIR
      Set to the name of the directory where the disaggregated forcings should be written
    • OUT_STEP
      Set to 0
    • ALMA_OUTPUT
      For standard VIC forcings, set to FALSE; for ALMA-compliant forcings (often required by other models) set to TRUE
    • BINARY_OUTPUT
      Set this to FALSE to produce ASCII forcings, TRUE to produce BINARY forcings
    • SKIPYEAR
      We recommend setting this to 0
    • N_OUTFILES, OUTFILE, OUTVAR
      These can be omitted; by default, VIC will produce 1 output file per grid cell, names "full_data_lat_lon," where lat, lon = latitude and longitude of te grid cell's center. These default output files will contain the following variables:
      Name Units (ALMA_OUTPUT FALSE) Units (ALMA_OUTPUT TRUE)
      PREC [mm/timestep] [mm/sec]
      AIR_TEMP [deg C] [K]
      SHORTWAVE [W/m2] [W/m2]
      LONGWAVE [W/m2] [W/m2]
      DENSITY [kg/m3] [kg/m3]
      PRESSURE [kPa] [Pa]
      VP [kPa] [Pa]
      WIND [m/s] [m/s]

      If you wish to output different forcing variables from the ones wirtten by default, you will need to specify these in the global parameter file.

  4. Run VIC
    vicNl -g global_param_file
  5. Disaggregated forcings should now reside in the directory you specified in the global parameter file.
  6. Turn OFF the OUTPUT_FORCE option:
    1. edit user_def.h; set OUTPUT_FORCE to FALSE
    2. recompile VIC ("make clean; make")

VIC Administrator
Last modified: Tue Aug 11 14:57:28 PDT 2009