The HYDRUS program is a finite element model for simulating the one-dimensional movement of water, heat, and multiple solutes in variably saturated media. The program numerically solves the Richards' equation for saturated-unsaturated water flow and Fickian-based advection-dispersion equations for heat and solute transport. The flow equation incorporates a sink term to account for water uptake by plant roots. The heat transport equation considers conduction as well as convection with flowing water. The solute transport equations consider advective-dispersive transport in the liquid phase, and diffusion in the gaseous phase. The transport equations also include provisions for nonlinear and/or nonequilibrium reactions between the solid and liquid phases, linear equilibrium reactions between the liquid and gaseous phases, zero-order production, and two first-order degradation reactions: one which is independent of other solutes, and one which provides the coupling between solutes involved in sequential first-order decay reactions. The program may be used to analyze water and solute movement in unsaturated, partially saturated, or fully saturated porous media.
The flow region itself may be composed of nonuniform soils. Flow and transport can occur in the vertical, horizontal, or a generally inclined direction. The water flow part of the model can deal with (constant or time-varying) prescribed head and flux boundaries, boundaries controlled by atmospheric conditions, as well as free drainage boundary conditions. Soil surface boundary conditions may change during the simulation from prescribed flux to prescribed head type conditions (and vice-versa).
For solute transport the code supports both (constant and varying) prescribed concentration (Dirichlet or first-type) and concentration flux (Cauchy or third-type) boundary conditions. The dispersion coefficient includes terms reflecting the effects of molecular diffusion and tortuosity.
The unsaturated soil hydraulic properties are described using van Genuchten , Brooks and Correy  and modified van Genuchten type analytical functions. Modifications were made to improve the description of hydraulic properties near saturation. The HYDRUS code incorporates hysteresis by using the empirical model introduced by Scott et al.  and Kool and Parker . This model assumes that drying scanning curves are scaled from the main drying curve, and wetting scanning curves from the main wetting curve. HYDRUS also implements a scaling procedure to approximate hydraulic variability in a given soil profile by means of a set of linear scaling transformations which relate the individual soil hydraulic characteristics to those of a reference soil.
Root growth is simulated by means of a logistic growth function. Water and salinity stress response functions can be defined according to functions proposed by Feddes et al.  or van Genuchten .
The governing flow and transport equations are solved numerically using Galerkin type linear finite element schemes. Integration in time is achieved using an implicit (backwards) finite difference scheme for both saturated and unsaturated conditions. Additional measures are taken to improve solution efficiency for transient problems, including automatic time step adjustment and adherence to preset ranges of the Courant and Peclet numbers. The water content term is evaluated using the mass-conservative method proposed by Celia et al. . Possible options for minimizing numerical oscillations in the transport solutions include upstream weighing, artificial dispersion, and/or performance indexing.
Simunek, J., K. Huang, and M. Th. van Genuchten, The HYDRUS code for simulating the one-dimensional movement of water, heat, and multiple solutes in variably-saturated media. Version 6.0, Research Report No. 144, U.S. Salinity Laboratory, USDA-ARS, Riverside, California, 164pp., 1998.
USDA-ARS U.S. Salinity Laboratory
450 W Big Springs Road
Riverside, CA 92507-4617