Hydrological Models
From CSDMS
Program | Description | Developer | Download | PyMT |
---|---|---|---|---|
AR2-sinuosity
|
Generates planforms for single-thread channel using a second-order autoregressive model | Limaye, Ajay | ||
ATS (The Advanced Terrestrial Simulator)
|
The Advanced Terrestrial Simulator (formerly sometimes known as the Arctic Terrestrial Simulator) is a code for solving ecosystem-based, integrated, distributed hydrology. | Coon, Ethan | ||
Anuga | ANUGA is a hydrodynamic modelling tool that allows users to model realistic flow problems in complex 2D geometries. | Habili, Nariman | ||
AnugaSed | Add-on package to ANUGA with modules for sediment transport and vegetation drag | Perignon, Mariela | ||
Avulsion
|
Stream avulsion model | Hutton, Eric | ||
Badlands | Basin and landscape dynamics | Salles, Tristan | ||
CAESAR Lisflood
|
Caesar Lisflood is a morphodynamic / Landscape evolution model that simulates erosion and deposition in river catchments and reaches over time scales from hours to 1000's of years. | Coulthard, Tom | ||
CREST | The Coupled Routing and Excess STorage (CREST) model is a distributed hydrologic model developed to simulate the spatial and temporal variation of atmospheric, land surface, and subsurface water fluxes and storages by cell-to-cell simulation. | Wang, Jiahu | ||
CVFEM Rift2D | multi-physics numerical model that simulates rock deformation, fluid flow, solute transport and heat transfer in response to ice sheet loading of multiple cycles | Zhang, Yipeng | ||
CWatM | Community Water Model (CWatM) is a hydrological model simulating the water cycle daily at global and local levels, historically and into the future | Peter, Burek | ||
DHSVM | DHSVM is a distributed hydrologic model that explicitly represents the effects of topography and vegetation on water fluxes through the landscape. | DHSVM, Administrator | ||
DLBRM | Distributed Large Basin Runoff Model | Croley, Thomas | ||
DR3M | Distributed Routing Rainfall-Runoff Model--version II | U.S., Geological Survey | ||
Delft3D | 3D hydrodynamic and sediment transport model | Delft3D, Support | ||
Dorado | A Python package for simulating passive particle transport in shallow-water flows | Hariharan, Jayaram | ||
ECSimpleSnow | A simple snow model | Wang, Kang | ||
EF5 | Ensemble Framework For Flash Flood Forecasting | Flamig, Zac | ||
ESCAPE | parallel global-scale landscape evolution model | Salles, Tristan | ||
FLDTA | Simulates flow characteristics based on gradually varied flow equation | Slingerland, Rudy | ||
GEOtop | Distributed hydrological model, water and energy budgets | Rigon, Riccardo | ||
GISS GCM ModelE | GISS GCM ModelE | Schmidt, Gavin | ||
GSFLOW | Ground-water and Surface-water FLOW model | Markstrom, Steve | ||
GeoFlood | Computational model for overland flooding | Kyanjo, Brian | ||
Glimmer-CISM | Dynamic thermo-mechanical ice sheet model | Hagdorn, Magnus | ||
GreenAmptInfiltrationModel | The Green-Ampt method of infiltration estimation. | Jiang, Peishi | ||
GroundwaterDupuitPercolator | The GroundwaterDupuitPercolator solves the Boussinesq equation for flow in an unconfined aquifer over an impermeable aquifer base and calculates groundwater return flow to the surface. | Litwin, David | ||
GullyErosionProfiler1D | This model is designed to simulate longitudinal profiles with headward advancing headcuts. | Rengers, Francis | ||
HBV | HBV model is a rainfall-runoff model | Craven, John | ||
HYPE | Hydrological model for simulation of water and water quality over time | SMHI, -- | ||
HexWatershed | A mesh independent flow direction model for hydrologic models | Liao, Chang | ||
HydroCNHS | HydroCNHS, a Python Package of Hydrological Model for Coupled Natural–Human Systems | Lin, Chung-Yi | ||
HydroRaVENS | Linear-reservoir hydrological model with snowpack and evapotranspiration | Wickert, Andrew | ||
HydroTrend | Climate driven hydrological transport model | Kettner, Albert | ||
IceFlow | 2D semi-implicit shallow ice approximation glacier model | Wickert, Andy | ||
KWAVE | A model representing infiltration, interception, and runoff using the kinematic wave approximation | McGuire, Luke | ||
Kudryavtsev Model
|
Permafrost Active Layer Thickness Model based on Kudryavtsev's parametrization | Overeem, Irina | ||
LISFLOOD | LISFLOOD - a distributed hydrological rainfall-runoff model | de Roo, Ad | ||
LOADEST | Software for estimating constituent loads in streams and rivers | Runkel, Rob | ||
Landlab | Python software framework for writing, assembling, and running 2D numerical models | Tucker, Greg | ||
MARSSIM | Landform evolution model | Howard, Alan | ||
MARSSIM V4
|
MARSSIM terrestrial and planetary Landform Evolution Model | Howard, Alan | ||
MIDAS | Coupled flow- heterogeneous sediment routing model | Slingerland, Rudy | ||
MODFLOW | MODFLOW is a three-dimensional finite-difference ground-water model | Barlow, Paul | ||
MODFLOW 6
|
MODFLOW 6 is an object-oriented program and framework developed to provide a platform for supporting multiple models and multiple types of models within the same simulation | Hughes, Joseph | ||
Manningseq-bouldersforpaleohydrology | Matlab® code for paleo-hydrological flood flow reconstruction in a fluvial channel | Huber, Marius | ||
Meander Centerline Migration Model
|
Simulation of the long-term migration of meandering rivers flowing above heterogeneous floodplains | Bogoni, Manuel | ||
Mixed bedrock-alluvial morphodynamic | Alluvial morphodynamics of bedrock reaches | Jafarinik, Sadegh | ||
Mosartwmpy | Model for Scale Adaptive River Transport with Water Management in Python | Thurber, Travis | ||
Mrip | Mrip is a self-organization type model for the formation and dynamics of megaripples in the nearshore. | Gallagher, Edith | ||
Nitrate Network Model | Nitrate and organic carbon dynamics on a wetland-river network | Czuba, Jonathan | ||
OTEQ | One-Dimensional Transport with Equilibrium Chemistry (OTEQ): A Reactive Transport Model for Streams and Rivers | Runkel, Rob | ||
OTIS | One-Dimensional Transport with Inflow and Storage (OTIS): A Solute Transport Model for Streams and Rivers | Runkel, Rob | ||
OTTAR | Ode To Transient (Ancho de los) Rivers: Transient evolution of river-channel width in response to river discharge and bank and sediment properties. | Wickert, Andrew | ||
OlaFlow
|
Wave generation and active absorption interaction with porous structures framework | Higuera, Pablo | ||
OpenAMUNDSEN | openAMUNDSEN is a modular snow and hydroclimatological modeling framework written in Python. | Strasser, Ulrich | ||
OverlandFlow
|
Component simulating overland flow using a 2-D numerical approximation of the shallow-water equations following the de Almeida et al., 2012 algorithm for storage-cell inundation modeling. | Adams, Jordan | ||
OverlandFlowBates | This component simulates overland flow using the 2-D numerical model of shallow-water flow over topography using the Bates et al. (2010) algorithm for storage-cell inundation modeling. | Adams, Jordan | ||
PHREEQC | PHREEQC version 3 is a computer program written in the C and C++ programming languages that is designed to perform a wide variety of aqueous geochemical calculations | Parkhurst, David | ||
PIHM | PIHM is a multiprocess, multi-scale hydrologic model. | Duffy, Christopher | ||
PRMS | Precipitation-Runoff Modeling System | Leavesley, George | ||
ParFlow | Parallel, high-performance, integrated watershed model | Maxwell, Reed | ||
Pllcart3d | 3D numerical simulation of confined miscible flows | Oliveira, Rafael | ||
PotentialEvapotranspiration | Calculates potential evapotranspiration | Nudurupati, Sai | ||
PyDeltaRCM | Reduced complexity river delta formation and evolution model with channel dynamics | Perignon, Mariela | ||
RHESSys | Regional Hydro-Ecologic Simulation System | Tague, christina | ||
Rescal-snow | A model of dunes and snow-waves | Kochanski, Kelly | ||
Reservoir | Reservoir: Tools for Analysis, Design, and Operation of Water Supply Storages | Turner, Sean | ||
River Erosion Model
|
An intermediate complexity model for simulating stream channel evolution (years to decades) at the watershed scale. | Lammers, Roderick | ||
River Network Bed-Material Sediment | Bed-material sediment transport and storage dynamics on river networks. | Czuba, Jonathan | ||
River Temperature Model
|
River Temperature Model based on heat balance approach | Overeem, Irina | ||
RiverMUSE
|
Simulates freshwater mussel populations' response to changes in suspended sediment | Schwenk, Jon | ||
SINUOUS
|
SINUOUS - Meander Evolution Model | Howard, Alan | ||
SLAMM 6.7
|
The Sea Level Affecting Marshes Model (SLAMM) | Clough, Jonathan | ||
SPARROW | The SPARROW Surface Water-Quality Model | Alexander, Richard | ||
STVENANT | 1D gradually varied flow routine | Slingerland, Rudy | ||
SWAT | SWAT is a river basin scale model developed to quantify the impact of land management practices in large, complex watersheds. | Arnold, Jeff | ||
SWEHR | A coupled model for infiltration, fluid flow, and sediment transport. | McGuire, Luke | ||
SWMM | Storm Water Management Model | Rossman, Lewis | ||
SedCas | A probabilistic sediment cascade model for sediment production, storage and transfer | Hirschberg, Jacob | ||
SedFoam-2.0 | A multi-dimensional Eulerian two-phase model for sediment transport (version 2.0) | Chauchat, Julien | ||
SoilInfiltrationGreenAmpt
|
Landlab component that calculates soil infiltration based on the Green-Ampt solution. | Rengers, Francis | ||
SoilMoisture | Compute the decay of soil moisture saturation at storm-interstorm time period | Nudurupati, Sai | ||
TISC
|
TISC integrates quantitative models of lithospheric flexure, fault deformation, and surface mass transport (erosion/transport/sedimentation) along drainage networks. | Garcia Castellanos, Daniel | ||
TOPMODEL | Physically based, distributed watershed model that simulates hydrologic fluxes of water through a watershed | Beven, Keith | ||
TaylorNonLinearDiffuser | Model non-linear soil creep after Ganti et al. (2012) | Glade, Rachel | ||
ThawLake1D | 1-D numerical model of permafrost and subsidence processes. | Matell, Nora | ||
The TELEMAC system
|
a powerful integrated modeling tool for use in the field of free-surface flows. | TELEMAC support team, - | ||
TopoFlow | Spatially-distributed, D8-based hydrologic model | Peckham, Scott | ||
TopoFlow-Channels-Diffusive Wave | Diffusive Wave process component for flow routing in a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Channels-Dynamic Wave | Dynamic Wave process component for flow routing in a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Channels-Kinematic Wave | Kinematic Wave process component for flow routing in a D8-based, spatial hydrologic model. | Peckham, Scott | ||
TopoFlow-Diversions | Diversions component for a D8-based, spatial hydrologic model. | Peckham, Scott | ||
TopoFlow-Evaporation-Energy Balance | Evaporation process component (Energy Balance method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Evaporation-Priestley Taylor | Evaporation process component (Priestley-Taylor method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Evaporation-Read File | Evaporation process component (read from file method) for a spatially-distributed hydrologic model. | Peckham, Scott | ||
TopoFlow-Infiltration-Green-Ampt | Infiltration process component (Green-Ampt method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Infiltration-Richards 1D | Infiltration process component (Richards 1D method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Infiltration-Smith-Parlange | Infiltration process component (Smith-Parlange method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Meteorology | Meteorology process component for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Saturated Zone-Darcy Layers | Saturated Zone process component (Darcy's law, multiple soil layers) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Snowmelt-Degree-Day | Snowmelt process component (Degree-Day method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TopoFlow-Snowmelt-Energy Balance | Snowmelt process component (Energy Balance method) for a D8-based, spatial hydrologic model | Peckham, Scott | ||
TransportLengthHillslopeDiffuser | Transport length hillslope diffusion. | Mouchene, Margaux | ||
TwoPhaseEulerSedFoam
|
A four-way coupled two-phase Eulerian model for sediment transport | Cheng, Zhen | ||
UEB | The Utah Energy Balance (UEB) Grid snowmelt model | Tarboton, David | ||
UIDS | A Matlab-based urban flood model considering rainfall-induced and surcharge-induced inundations | Tran, Vinh | ||
VIC | VIC (Variable Infiltration Capacity) is a macroscale hydrologic model that solves full water and energy balances, originally developed by Xu Liang at the University of Washington. | Lettenmaier, Dennis | ||
Vegetation | Model plant dynamics using multiple representative plant species | Nudurupati, Sai | ||
WBM-WTM
|
Water Balance/Transport Model | Fekete, Balazs | ||
WBMsed | Global sediment flux and water discharge model. | Cohen, Sagy | ||
WRF-Hydro
|
The WRF-Hydro® Modeling System, an open-source community model, is used for a range of projects, including flash flood prediction, regional hydroclimate impacts assessment, seasonal forecasting of water resources, and land-atmosphere coupling studies. It produces forecasts and analyses for all major terrestrial water-cycle components: Precipitation, Streamflow, Soil moisture, Snowpack, Flooding, Groundwater. | McAllister, Molly | ||
WSIMOD | WSIMOD: Water Systems Integrated Modelling framework | Dobson, Barnaby |
Program | Description | Developer | Download | PyMT |
---|---|---|---|---|
Acronym1 | E-book: program for computing bedload transport in gravel rivers. | Parker, Gary | ||
Acronym1D | E-book: program for computing bedload transport in gravel rivers over time. | Parker, Gary | ||
Acronym1R | E-book: program for computing bedload transport in gravel rivers with a Manning-Strickler relation for flow resistance. | Parker, Gary | ||
AgDegBW | E-book: Calculator for aggradation and degradation of a river reach using a backwater formulation. | Parker, Gary | ||
AgDegNormGravMixPW | E-book: calculator for aggradation and degradation of sediment mixtures in gravel-bed streams | Parker, Gary | ||
AgDegNormGravMixSubPW | E-book: calculator for evolution of upward-concave bed profiles in rivers carrying sediment mixtures in subsiding basins. | Parker, Gary | ||
AgDegNormal | E-book: illustration of calculation of aggradation and degradation of a river reach using the normal flow approximation. | Parker, Gary | ||
AgDegNormalFault | E-book: Illustration of calculation of aggradation and degradation of a river reach using the normal flow approximation; with an extension for calculation of the response to a sudden fault along the reach. | Parker, Gary | ||
AgDegNormalGravMixHyd | E-book: A module that calculates the evolution of a gravel bed river under an imposed cycled hydrograph. | Parker, Gary | ||
AgDegNormalSub | E-book: Program to calculate the evolution of upward-concave bed profiles in rivers carrying uniform sediment in subsiding basins. | Parker, Gary | ||
Area-Slope Equation Calculator | Pixel scale Area-Slope equation calculator | Cohen, Sagy | ||
BackwaterCalculator | E-book: program for backwater calculations in open channel flow | Parker, Gary | ||
BackwaterWrightParker | E-book: calculator for backwater curves in sand-bed streams, including the effects of both skin friction and form drag due to skin friction | Parker, Gary | ||
BedrockAlluvialTransition | E-book: calculator for aggradation and degradation with a migrating bedrock-alluvial transition at the upstream end. | Parker, Gary | ||
Channel-Oscillation | Read note in extended description. Simulates Oscillations in arid alluvial channels | Pelletier, Jon | ||
Dakotathon
|
A Python API for the Dakota iterative systems analysis toolkit. | Piper, Mark | ||
DeltaBW | E-book: Calculator for evolution of long profile of a river ending in a 1D migrating delta, using a backwater formulation. | Parker, Gary | ||
DeltaNorm | E-book: Calculator for evolution of long profile of a river ending in a 1D migrating delta, using the normal flow approximation. | Parker, Gary | ||
DepDistTotLoadCalc | E-book: Illustration of calculation of depth-discharge relation, bed load transport, suspended load transport and total bed material load for a large, low-slope sand-bed river. | Parker, Gary | ||
DepressionFinderAndRouter | Find depressions on a topographic surface. | Hobley, Dan | ||
DrEICH algorithm
|
Algorithm for extracting channel networks from high resolution topographic data | Clubb, Fiona | ||
DredgeSlotBW | E-book: calculator for aggradation and degradation of sediment mixtures in gravel-bed streams subject to cyclic hydrographs. | Parker, Gary | ||
ERA5 Data Component | A CSDMS data component used to download the ECMWF Reanalysis v5 (ERA5) datasets | Gan, Tian | ||
Equilibrium Calculator | Equilibrium solver of Self-formed, Single-thread, Sand-bed Rivers | Viparelli, Enrica | ||
EstuarineMorphologyEstimator
|
Empirical Assessment Tool for Bathymetry, Flow Velocity and Salinity in Estuaries Based on Tidal Amplitude and Remotely-Sensed Imagery | Leuven, Jasper | ||
FACET | Floodplain and Channel Evaluation Tool (FACET) | Lamont, Samuel | ||
FallVelocity | E-book: Particle fall velocity calculator | Parker, Gary | ||
FlowAccumulator | Component to accumulate flow and calculate drainage area. | Barnhart, Katy | ||
FlowDirectorD8 | Single-path (steepest direction) flow direction with diagonals on rasters. | Barnhart, Katy | ||
FlowDirectorDinf | Flow direction on a raster grid by the D infinity method. | Barnhart, Katy | ||
FlowDirectorMFD | Multiple-path flow direction with or without out diagonals. | Barnhart, Katy | ||
FlowDirectorSteepest | Single-path (steepest direction) flow direction without diagonals. | Barnhart, Katy | ||
FwDET
|
Calculate floodwater depth based on an inundation polygon (e.g. from remote sensing) and a DEM | Cohen, Sagy | ||
GISKnickFinder | This python code can be used to find knickpoints and extract information about streams, it utilizes built-in functions of ArcGIS. | Rengers, Francis | ||
GSDCalculator | E-book: Calculator for statistical characteristics of grain size distributions. | Parker, Gary | ||
GSFLOW-GRASS | Quickly generates input files for and runs GSFLOW, and visualizes the output | Wickert, Andrew | ||
GeoTiff Data Component
|
A CSDMS data component for accessing data and metadata from a GeoTIFF file, through either a local filepath or a remote URL.. | Piper, Mark | ||
GravelSandTransition | E-book: Calculator for evolution of long profile of river with a migrating gravel-sand transition and subject to subsidence or base level rise. | Parker, Gary | ||
GridMET Data Component
|
A CSDMS data component for fetching and caching gridMET meteorological data. | McDonald, Rich | ||
HackCalculator | Calculate Hack parameters. | Barnhart, Katy | ||
Hydromad | Hydrological Model Assessment and Development | Guillaume, Joseph | ||
IDA
|
An implementation of the Implicit Drainage Area method (regular and hybrid versions) for calculating drainage area from flow directions using parallel iterative solvers. | Richardson, Alan | ||
ILAMB | The International Land Model Benchmarking (ILAMB) toolkit | Collier, Nathan | ||
KnickZone-Picker
|
Matlab-based scripts to extract topometrics for catchments and identify river knickpoints. | Bookhagen, Bodo | ||
LakeMapperBarnes | Temporarily fills depressions and reroutes flow across them | Hobley, Daniel | ||
LossyFlowAccumulator | Component to calculate drainage area and accumulate flow, while permitting dynamic loss or gain of flow downstream. | Hobley, Dan | ||
MFDrouting | Read note in extended description. Multiple Flow Direction (MFD) flow routing method | Pelletier, Jon | ||
MFDrouting-Successive | Read note in extended description. Successive flow routing with Multiple Flow Direction (MFD) method | Pelletier, Jon | ||
ModelParameterDictionary | Tool written in Python for reading model input parameters from a simple formatted text file. | Tucker, Greg | ||
NEXRAD-extract | Extract data from NEXRAD Doppler Radar NetCDFs | Wickert, Andy | ||
NWIS Data Component | A CSDMS data component used to download the National Water Information System (Nwis) time series datasets. | Gan, Tian | ||
NWM Data Component | A CSDMS data component used to download the National Water Model datasets. | Gan, Tian | ||
OpenFOAM | Open Field Operation and Manipulation is a toolbox for the development of customized numerical solvers. | Weller, Henry | ||
PIHMgis | Tightly coupled GIS interface for the Penn State Integrated Hydrologic Model | Duffy, Christopher | ||
Permafrost Benchmark System
|
The PBS is a web-based tool for conducting benchmarking studies of permafrost models. | Piper, Mark | ||
PotentialityFlowRouter | Multidirectional flow routing using a novel method. | Hobley, Daniel | ||
PrecipitationDistribution | Generate random sequence of precipitation events | Adams, Jordan | ||
PsHIC | Pixel-scale Hypsometric Integral Calculator | Cohen, Sagy | ||
PyRiverBed | A Python framework to generate synthetic riverbed topography of constant-width meandering rivers | Li, Zhi | ||
PySBeLT | A Python software package for stochastic sediment transport under rarefied conditions | Zwiep, Sarah | ||
Rabpro | River and Basin Profiler (rabpro) | Schwenk, Jon | ||
RecircFeed | E-book: calculator for approach to equilibrium in recirculating and feed flumes | Parker, Gary | ||
RivGraph | RivGraph: Automatic extraction and analysis of river and delta channel network topology | Schwenk, Jon | ||
RiverWFRisingBaseLevelNormal | E-book: Calculator for disequilibrium aggradation of a sand-bed river in response to rising base level. | Parker, Gary | ||
RouseVanoniEquilibrium | E-book: Program for calculating the Rouse-Vanoni profile of suspended sediment. | Parker, Gary | ||
SinkFiller | Fill sinks in a landscape to the brim, following the Barnes et al. (2014) algorithms. | Hobley, Daniel | ||
SoilGrids Data Component | A CSDMS data component used to download the soil property datasets from the SoilGrids system. | Gan, Tian | ||
SpatialPrecipitationDistribution | Generate random sequence of spatially-resolved precipitation events | Hobley, Daniel | ||
SteadyStateAg | E-book: calculator for approach to equilibrium in recirculating and feed flumes | Parker, Gary | ||
SubsidingFan | E-book: calculator for evolution of profiles of fans in subsiding basins | Parker, Gary | ||
SuspSedDensityStrat | E-book: Module for calculating the effect of density stratification on the vertical profiles of velocity and suspended sediment. | Parker, Gary | ||
TOPOG | TOPOG is a terrain analysis-based hydrologic modelling package | Silberstein, Richard | ||
TauDEM | A suite of Digital Elevation Model (DEM) tools for the extraction and analysis of hydrologic information from topography as represented by a DEM. TauDEM 5 is a new version implemented to take advantage of parallel processing | Tarboton, David | ||
TopoFlow-Data-HIS | The CUAHSI Hydrologic Information System | Peckham, Scott | ||
TopoToolbox | A set of Matlab functions for topographic analysis | Schwanghart, Wolfgang | ||
Topography Data Component
|
A CSDMS data component used to fetch and cache NASA Shuttle Radar Topography Mission (SRTM) and JAXA Advanced Land Observing Satellite (ALOS) land elevation data using the OpenTopography REST API. | Piper, Mark | ||
WAVEWATCH III Data Component
|
A CSDMS data component used to fetch and cache WAVEWATCH III datasets. | Hutton, Eric | ||
WPHydResAMBL | E-book: Implementation of the Wright-Parker (2004) formulation for hydraulic resistance combined with the Ashida-Michiue (1972) bedload formulation. | Parker, Gary |
indicates open source code models that are available through another community modeling portal. The portals offer much information. To download the code(s) you may be asked to register as a user at their portal. By registering you will receive updates on new releases and other community information. Your registration will help the developers demonstrate to funders the size of their model's community. If you have problems getting access to this open source code, please let us know CSDMSsupport@Colorado.edu. CSDMS has a version of the code in its library and considers the code part of the open-source CSDMS initiative.