Also known as
Model type Single
Model part of larger framework
Incorporated models or components:
Spatial dimensions 1D
Spatial extent Reach-Scale, Watershed-Scale
Model domain Terrestrial, Hydrology
One-line model description One-Dimensional Transport with Inflow and Storage (OTIS): A Solute Transport Model for Streams and Rivers
Extended model description One-Dimensional Transport with Inflow and Storage (OTIS): A Solute Transport Model for Streams and Rivers

OTIS is a mathematical simulation model used to characterize the fate and transport of water-borne solutes in streams and rivers. The governing equation underlying the model is the advection-dispersion equation with additional terms to account for transient storage, lateral inflow, first-order decay, and sorption. This equation and the associated equations describing transient storage and sorption are solved using a Crank-Nicolson finite-difference solution.

OTIS may be used in conjunction with data from field-scale tracer experiments to quantify the hydrologic parameters affecting solute transport. This application typically involves a trial-and-error approach wherein parameter estimates are adjusted to obtain an acceptable match between simulated and observed tracer concentrations. Additional applications include analyses of nonconservative solutes that are subject to sorption processes or first-order decay. OTIS-P, a modified version of OTIS, couples the solution of the governing equation with a nonlinear regression package. OTIS-P determines an optimal set of parameter estimates that minimize the squared differences between the simulated and observed concentrations, thereby automating the parameter estimation process.


biogeochemistry, water quality,

First name Rob
Last name Runkel
Type of contact Model developer
Institute / Organization USGS
Postal address 1
Postal address 2
Town / City Boulder
Postal code 80303
State Colorado
Country United States
Email address

Supported platforms Unix, Linux, Windows
Other platform macOS
Programming language Fortran77
Other program language
Code optimized Single Processor
Multiple processors implemented
Nr of distributed processors
Nr of shared processors
Start year development 1990
Does model development still take place? Yes
If above answer is no, provide end year model development
Code development status Only maintenance
When did you indicate the 'code development status'? 2020
Model availability As code
Source code availability
(Or provide future intension)
Through web repository
Source web address
Source csdms web address
Program license type Other
Program license type other
Memory requirements
Typical run time

Describe input parameters see user documentation on website
Input format ASCII
Other input format
Describe output parameters solute concentrations as a function of time and space at user-defined locations within the modeled stream system
Output format ASCII
Other output format
Pre-processing software needed? Yes
Describe pre-processing software OTIS relies on flat ASCII (text) files for input and output. At present, a graphical user interface for comprehensive management of OTIS input and output is not available. OTIS input files have traditionally been developed on the user's local computer system using a text-based editor. As an alternative, users may fill out the web-based forms available via the Generate Input section of After providing the required information, users can download the resultant input files and run OTIS in the usual manner.
Post-processing software needed? Yes
Describe post-processing software All output is written to flat ASCII files. OTIS output files are usually read into a spreadsheet or graphics program for plotting and analysis.
Visualization software needed? No
If above answer is yes
Other visualization software

Describe processes represented by the model Advection, Dispersion, Inflow, and Transient Storage. First-order loss/production, sorption.
Describe key physical parameters and equations Instream mass transport based on the Advection-Dispersion equation with additional terms to consider inflow, transient storage, and chemical transformation.
Describe length scale and resolution constraints
Describe time scale and resolution constraints
Describe any numerical limitations and issues

Describe available calibration data sets See user documentation available at website
Upload calibration data sets if available:
Describe available test data sets See user documentation available at website
Upload test data sets if available:
Describe ideal data for testing See user documentation available at website

Do you have current or future plans for collaborating with other researchers?
Is there a manual available? Yes
Upload manual if available: Media:Wrir98-4018.pdf
Model website if any
Model forum / discussion board

This part will be filled out by CSDMS staff

OpenMI compliant No but possible
BMI compliant No but possible
WMT component No but possible
PyMT component
Is this a data component
Can be coupled with:
Model info
Citation indices OTIS
Nr. of pubs: 76
Citations: 4287
h-index: 35
Qrcode OTIS.png
Link to this page




Citation indices OTIS
Nr. of pubs: 76
Citations: 4287
h-index: 35

Featured publication(s)YearModel describedType of ReferenceCitations
Runkel, R.L. 1998. One-Dimensional Transport With Inflow and Storage (OTIS): A Solute Transport Model For Streams and Rivers. U.S.Geological Survey, Water-Resources Investigation Report 98-4018..
(View/edit entry)
Model overview 389
See more publications of OTIS


OTIS can also be built from source on macOS using gfortran. Here are the steps.

Edit the makefiles in the otis, otis-p, share, and starpac directories, replacing these lines:

F77 = f77 $(FFLAGS)
FFLAGS = -O -u

with these:

FC = gfortran
F77 = $(FC) $(FFLAGS)

In the share directory, make a copy of the generic header file and call it header.f:

$ cp header.generic.f header.f

From the root directory of the source distribution, you can now call make to build all the executables:

$ make

Note that I had problems building OTIS with the gfortran I installed from Homebrew. Instead, I used the gfortran from my Anaconda Python distribution:

$ which gfortran
$ gfortran --version
GNU Fortran (GCC) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.

--Mpiper (talk) 10:42, 13 June 2017 (MDT)


Input Files

Output Files