Chunmiao Zheng

Department of Geological Sciences

University of Alabama

202 Bevill Building

Tuscaloosa, AL 35487, USA




Version History


5.30:   February 2010

5.20:   October 2006

5.10:   October 2005

5.00:   February 2005

4.50:   May 2003

4.00:   August 2001

3.50.B: August 2000

3.50.A: November 1999

3.00.B: May 1999

3.00.A: June 1998, initial release




Initial release.




Bug Fixes:

1.  Fix an ‘array out of bound’ error in subroutine MIC of the GCG package.  This error has no effect if the array bound-checking option of the Fortran compiler is not turned on.

2.  Fix a problem related to the assignment of initial concentrations for the sorbed/immobile phase in the RCT package.  When the nonequilibrium sorption is simulated, by default the initial concentrations for the sorbed phase are assumed to be in equilibrium with those for the dissolved phase.  When the dual-domain mass transfer is simulated, by default the initial concentrations for the immobile phase are assumed to be zero.  The user has the option to override the default values by specifying their own values in the RCT input file.  However, because of a bug in the previous version, the default values are always used regardless of user input.

3.  Fix a potential minor problem in determining the transport stepsize required for the explicit solution of the dual-domain mass transfer reaction.



1.  Reorganize the main program slightly to facilitate the addition of multispecies reaction packages into MT3DMS.




Bug Fixes:

1.  Fix a problem which may lead to inaccurate solutions when first-order irreversible reaction (radioactive decay or biodegradation) is used in conjunction with nonequilibrium sorption or dual-domain mass transfer.

2.  Fix a potential floating point overflow error in determining the maximum transport stepsize required for explicit solution of the dispersion term.



1.  Add a new option for simulating dual-domain mass transfer in the presence of linear sorption (refer to the User's Manual, revised November 1999).  This option is implemented as ISOTHM=6 in the reaction (RCT) package, and replaces the original dual-domain mass transfer option ISOTHM=5.  While ISOTHM=5 is kept in the program for compatibility considerations, ISOTHM=5 is equivalent to ISOTHM=6 with the first sorption constant SP1 (Kd) set to zero.

2.  Add a new option for specifying fluid sources directly through a mass-loading rate [QC] (M/T) instead of a concentration [C] (M/L^3) for the source flux (refer to the User's Manual, revised November 1999).  This option allows the user to specify a source for the transport model without first specifying a flow rate [Q] in the flow model.

3.  Improve the program structure for keeping track of global mass budgets and reporting mass balance information, particularly for transport simulation in dual-domain systems or under transient flow conditions.

4.  Improve the performance of the Generalized Conjugate-Gradient (GCG) matrix solver.




Bug Fixes:

1.  Fix a problem related to the first-order kinetic reaction.  In Version 3.50.A, when the first-order kinetic reaction is simulated (IREACT=1) but no sorption (or dual-domain mass transfer) is included in the simulation (ISOTHM=0), the concentration change due to the reaction is not properly updated if the user chooses the explicit solution scheme, i.e., the GCG solver package is not turned on.  This bug only occurs with Version 3.50.A, and has no effect if the user turns on the GCG solver package, or if the sorption or mass transfer is simulated along with the kinetic reaction.

2.  Fix a potential problem related to the mass-loading point source (ITYPE=15) implemented since Version 3.50.A.  The problem causes more mass to be added than the specified mass loading rate after the first stress period.  This bug only occurs when the flow model is steady state but the transport model has multiple stress periods to accommodate the changes in the mass loading rate. 


Other Modifications:

1.  Modify the use of the “minimum saturated thickness [THKMIN]” option.  The THKMIN option is used to turn off (made inactive) those cells in the unconfined model layers where the saturated thickness is negligible relative to the total thickness of the cell (DZ).  The purpose for using this option to avoid the situation in which a cell with a negligible saturated thickness severely restricts the transport step size for the entire model.  When the saturated thickness is above the specified minimum in a new flow time step, the cell that has been turned off is re-activated (made active).  In this version, the THKMIN option is not used by default.  In other words, if the user does not specify any value for THKMIN, it is equivalent to setting THKMIN=0, i.e., the cell is turned off only if the hydraulic head at the cell is below or equal to the bottom elevation of the cell.  The user can specify any value between 0 and 0.05 for THKMIN, i.e., when the saturated thickness at any cell is below 0 to 5% of the total cell thickness (DZ), the cell would be made inactive.  If the user specifies a value greater than 0.05 (5%), the user-specified value is reset to the default value of 0.01 (1%).

2.  Modify the method for assigning the non-default concentration of point sources (wells, rivers, etc.) in simulations with multiple stress periods.  In previous versions, the concentration of a point source, once specified for a particular stress period, will stay the same for the remaining stress periods.  Therefore, to turn off a user-specified point source in a subsequent stress period, it is necessary to re-define the source in the input file with its concentration set to zero.  In this version, the concentration of any source specified for a stress period is only valid for that stress period alone.  In a simulation with multiple stress periods, the user can either choose the ‘REUSE’ option to reuse all point source information from a previous stress period, or specify all the point sources for each stress period.  Note that an exception to the above general rule is the handling of time-varying constant-concentration cells.  A constant-concentration cell, once defined, will remain a constant-concentration cell for the entire duration of the simulation.  The user can assign different concentration values for a constant-concentration cell at different stress periods, but cannot change a constant-concentration cell back to a regular active cell.




Bug Fixes and Other Modifications:

1. Fix problems related to the third-order TVD solver (subroutine CFACE in the source file of the Advection Package).  In previous versions, the TVD solver may become unstable or result in large negative concentration values, particularly when applied to field-scale problems with irregular model geometries.  In the current version, the performance of the TVD solver is improved by making adjustments near the inactive cells and by implementing a more robust form of the flux limiter.



1.  Support MODFLOW-2000 through a new version of the Link-MT3DMS Package (LMT6).  Information on the LMT6 Package for MODFLOW-2000 is provided in the U.S. Geological Survey Open-File Report 01-82 by Zheng, Hill and Hsieh (2001), available at

2.  Add support for additional MODFLOW sink/source packages.  The MODFLOW sink/source packages supported by the previous versions of MT3DMS (prior to 4.00) include Well (WEL), Drain (DRN), Recharge (RCH), Evapotranspiration (EVT), River (RIV), General-Head-Dependent Boundary (GHB), and Time-Varying Constant-Head Boundary (CHD).  In addition, the Streamflow-Routing Package (STR) can be supported through the River option if the two are not used in the flow simulation simultaneously.  MT3DMS 4.0 supports two new packages, the Reservoir (RES) and Specified Flow and Head Boundary (FHB).  Furthermore, it allows the simultaneous use of the RIV and STR Packages in the flow simulation.  Finally, MT3DMS 4.0 includes new options which make it simple and easy to support more MODFLOW sink/source packages in the future.

3.  Add a new method to start a MT3DMS simulation through a name file that is similar to the name file used by MODFLOW-2000.  The name file contains the names of most input and output files used in a model simulation and controls the parts of the model program that are active.  In addition, it is possible to override the default names assigned to several MT3DMS optional output files (e.g., MT3D001.UCN, MT3D001.OBS, and MT3D001.MAS) through the name file.  For more information on the MT3DMS name file, see Zheng, Hill and Hsieh (2001) and the file ‘readme.txt’ included with the MT3DMS 4.0 distribution files.




Bug Fixes and Other Modifications:

1. Fix a problem related to the ‘reuse’ option in the Sink/Source Mixing (SSM) Package.  If a model includes a certain number of point sources with user-specified concentrations, the cell locations, source types and concentration values must be specified in the SSM Package input file for the first stress period.  For subsequent stress periods, the number of point sources with specified concentrations can be set to -1 to reuse the point source information entered for the first stress period.  A problem in Version 4.00 may cause the option to function incorrectly under certain circumstances.

2. Fix a problem in the array reader RARRAY which can lead to incorrect input of an external binary file such as the unformatted concentration (UCN) file saved from a previous run and used as the initial concentrations for a restart run.  This problem occurs only when the unformatted files used by MT3DMS are defined as unstructured true-binary files (FORM=’binary’ or ACCESS=’transparent’).  For standard unformatted files (FORM=’unformatted’ and ACCESS=’sequential’), the array reader RARRAY functions properly.

3. Fix a problem in the General-Conjugate-Gradient (GCG) Package which can cause the GCG solver to fail to converge when a 1D model is oriented along a column (y axis) or vertically (z axis).  This problem does not occur if the 1D model is oriented along a row (x axis).

4. Fix a problem related to printing of simulation results at user-specified times.  This problem can cause MT3DMS to skip printing the simulation results at one or more user-specified times under some rare circumstances.

5. Allow the transport options (packages) to be activated through the MT3DMS NameFile without changing the relevant input file record (TRNOP) in the BTN Package input file.  This is consistent with the NameFile method of opening files as used in MODFLOW-96 and MODFLOW-2000.  The input record TRNOP in the BTN Package input file no longer has any effect if the NameFile method is used to open the input/output files for MT3DMS.



1. Add an option to save the sorbed-phase or immobile-liquid-phase concentrations in unformatted concentration (UCN) files if sorption or dual-domain mass transfer is included in the simulation.  The file is named by default as MT3DnnnS.UCN, where nnn indicates the species index number.  (The default names can be overridden through the MT3DMS NameFile.)  If sorption is simulated but not dual-domain mass transfer, the sorbed-phase concentration is saved.  If dual-domain mass transfer is simulated (either without or with sorption), the immobile-liquid-phase concentration is saved instead.  The unit for the sorbed-phase concentration is expressed in terms of sorbed mass per unit mass of bulk soil matrix.  The unit for the immobile-liquid-phase concentration is expressed in terms of mass per unit volume of fluid.  The structure of sorbed-phase or immobile-liquid-phase UCN files is identical to that of dissolved-phase UCN files so that the former can be processed in the same manner as the latter.




Major Changes:

1.  The name-file procedure is now the only method to start a MT3DMS simulation run.  A name-file specifies the names of most input and output files used in a model simulation.  In addition, it controls the parts of the model program that are active, i.e., the “packages” that are used in the current simulation.  As a result, the “TRNOP” array in the BTN input file is no longer used. However a dummy input line must still remain where the “TRNOP” is formerly specified.

2.  The optional implicit matrix solver, the General Conjugate-Gradient (GCG) solver, must now be used in every simulation.  In other words, the dispersion, sink/source and reaction terms are now always solved by the implicit finite-difference method, regardless of whether the advection term is solved by the implicit finite-difference method, the mixed Eulerian-Lagrangian methods, or the third-order TVD method.

3.  A single finite-difference cell may now contain multiple sinks/sources of the same type, for example, multiple wells.  If this is the case, it is necessary to assign the source concentrations individually if all of them act as sources of specified concentrations.



1. Add a new Transport Observation (TOB) Package as documented in Zheng (2005) to save the calculated concentration at any model cell and the calculated mass flux at any sink/source location.  The calculated values are saved to output files, and optionally, along with the statistics of residuals between the calculated and observed values at the observation locations.  The calculated concentrations can be interpolated from the nodal values if the observation point does not coincide with a model node.  The calculated mass flux can be defined over any arbitrary group of sink/source cells referred to as a mass flux object.

2. Support the Multi-Node Well (MNW) Package (Halford and Hanson, 2002) used by MODFLOW-2000 to simulate the flow to a well screened over multiple nodes (layers).  The MNW Package automatically partitions the total flow prescribed for a MNW into individual nodes (layers) and determines a single head value in the wellbore.  Accordingly, MT3DMS v5 computes a single composite concentration for the same wellbore based on the flux-weighted concentrations of the injected fluid (if any) and the flow rates from different layers.

3. Add support for additional MODFLOW sink/source packages, including Drain with Return Flow (DRT) and Evapotranspiration with a Segmented Function (ETS), both documented in Banta (2000). The DRT package simulates the reinjection of a portion of the outflow from a drain cell back into the aquifer. MT3DMS assigns the concentration at the outflow cell as that of the reinjected source at the return drain-flow location. The ETS package is supported in a manner similar to the original EVT package.




Bugs Fixes and Other Modifications:

1.  Fix a bug with the mass loading option (ISSTYPE=15) in the Sink/Source Mixing (SSM) Package.  This bug was introduced in version 5.00 and might cause some mass loading source to be skipped.  The bug occurs only when the particle-based solution techniques (MOC/MMOC/HMOC) are used.

2.  Improve the handling of the mass loading option when used with the MOC/MMOC/HMOC solution techniques.

3.  Fix a bug in the Link-MT3DMS (LMT6) Package that is distributed with MODFLOW-2000 v1.15.01 (April 5, 2005).  This bug may cause the flow term from the Multi-Node Well (MNW) Package to be incorrectly saved in the flow-transport link file needed by MT3DMS.  The bug fix is available in MODFLOW-2000 later than v1.15.01.



1. Add an option to simulate zeroth-order decay or production as documented in Zheng (2005).  The standard MT3DMS code prior to version 5.10 includes only the first-order kinetic reactions in the Chemical Reaction (RCT) Package.  However, zeroth-order reactions may be useful for describing certain types of biogeochemical decay or production.  In addition, zeroth-order reactions can be used for direct simulation of groundwater ages or calculation of parameter sensitivities.




Bugs Fixes and Other Modifications:

1. Fix a bug in the TOB Package which may affect the mass flux object calculation for recharge and evapotranspiration.

2. Fix a potential problem in the BTN Package which may lead to abnormal program termination when the fully implicit finite-difference scheme is used with the transport stepsize multiplier set to greater than 1.0 and when the simulation requires a very large number of transport steps.



1. Add an option to include three-dimensional multicomponent diffusion coefficients in the transport simulation as documented in Zheng (2006).  The standard MT3DMS code prior to version 5.20 only allows the input of a single uniform diffusion coefficient per model layer and the same diffusion coefficient for all solute components.

2. Add an option to simulate the effect of a recirculation well whose input concentration is equal to the output concentration at an extraction well.  See Zheng (2006) for more information.




Bugs Fixes and Other Modifications:

1. Minor changes in the SSM and FMI Packages to work with the Link-MT3DMS Package (LMT7) added to MODFLOW-2005 since v1.8.



1. Add a new capability to specify an arbitrary time-varying mass loading source or boundary condition. This capability is accomplished through a new package, called the Hydrocarbon Spill Source (HSS) Package, that has been developed for MT3DMS v5.3 (Zheng et al., 2010).

2. Add a new steady-state transport simulation option. This option may be useful for long-term transport simulation runs in which the concentration field reaches an equilibrium state with the net change in total mass equal to zero. Also, direct groundwater age simulation usually requires a steady-state concentration solution.

3. Add a new section to the user’s guide on the use of MT3DMS for heat transport modeling based on the mathematical equivalency between the heat and solute transport equations.