This repository serves as the public source code repository of the Distributed Hydrology Soil Vegetation Model (DHSVM). You can find DHSVM documentation, and selected past and ongoing DHSVM-based research & projects on the DHSVM website .
DHSVM (Wigmosta et al., 1994) numerically represents with high spatial resolution (typically on the order of 100 m) the effects of local weather, topography, soil type, and vegetation on the hydrology within watersheds. The model is used to study the impacts of climate change, land use change, forest management practices, flooding, glacier dynamics, stream temperature and stream quality.
DHSVM is a research model that does not come with any warrantee or guarantee. Please be advised that no technical support is available other than the model web page. Because the model is under continous development, there is no guarantee that the newly developed modules or options are exhaustively tested or work properly.
If you decide to use DHSVM, please acknowledge Wigmosta et al. [1994] and any other relevant publications. We are very interested in receiving a copy of any manuscripts of studies in which the model is used. Finally, if you do find bugs in the model or if you have improvements to the model code, we are interested in incorporating your suggestions and/or contributions.
This is a major release from DHSVM 3.1.2. It includes several new features, function enhancements and bug fixes.
The tutorial and sample data to run DHSVM v 3.2 will be made available on the DHSVM website .
New Capabilities
- Variable radiation transmittance (with solar position and tree characteristics)
- Canopy gap (Sun et al., 2018)
- Snow sliding
- Python scripts to create stream network
- Support of gridded meteorological data input
Enhancement & Fixes
- Negative soil moisture
- Configuration and Build with CMake
DHSVM and related utilities can be configured and built using CMake. This provides an automated, cross-platform way to locate and use system libraries (X11, NetCDF, etc.) and select optional features. Here are some terse instructions:
-
In the top DHSVM (where
CMakeLists.txt
is located), make a directory for the build, calledbuild
maybe. -
In the
build
directory, run CMake with appropriate options, for example,cmake -D CMAKE_BUILD_TYPE:STRING=Release ..
Look at
example_configuration.sh
for configurations used on several developers' systems. Alternatively, just use the script:sh ../example_configuration.sh
This provides a vanilla configuration without X11, NetCDF, or RBM using the default C compiler.
-
If successful, build DHSVM and related programs, using
cmake --build .
The resulting executable programs will be in the build directory in a tree mirroring the source tree. For example, DHSVM is
build/DHSVM/sourcecode/DHSVM
.
The original Makefiles are in the source tree and can still be used as described in the tutorial if preferred.
The normal DHSVM surface/subsurface routing scheme uses 4 neighbors and directs cell outflow to all down-gradient neighbors ("D4"). Another method, which uses 8 neighbors and directs outflow only to the neighbor with the steepest gradient ("D8"). The latter has proved useful in very low-gradient areas that span several cells. To enable D8 routing add this option
-D DHSVM_D8:BOOL=ON
to the configuration. D4 is the default.
If DHSVM is configured with this option,
-D DHSVM_SNOW_ONLY:BOOL=ON
an additional executable is built, DHSVM_SNOW
, which operates in
snow-only mode.