# Data Input Guide for HYDROBIOGEOCHEM123D

Release 1.0

January, 1999

**Table of Contents**

About HydroBioGeoChem123D . . . . . . . 3

About the I/O Superfile . . . . . . . . 5

Units of Measure and Data Preparation . . . . . . 6

Data set 1: Title . . . . . . . . . 7

Data set 2: Basic Integer Parameters . . . . . . . 8

Data set 3: Basic Real Parameters . . . . . . . 12

Data set 4: Printer Output, Disk Storage Control, and Times For
Resetting Step Size 13

Data set 5: Printout Indicator . . . . . . . 15

Data set 6: Material Properties . . . . . . . 16

Data set 6a: Heat Transfer Control . . . . . . . 16

Data set 6b: Water Thermodynamic Properties and Temperature Correction
Functions 16

Data set 6c: Heat Transfer Iteration Parameters . . . . . 17

Data set 7: Nodal Coordinates . . . . . . . 18

Data set 8: Element Incidences . . . . . . . 20

Data set 9: Material Type Correction . . . . . . 23

Data set 10: Chemical Component Information . . . . . 24

Data set 11: Input for Initial or Pre-Initial Conditions . . . . 25

Data set 12: Integer Parameters for Sources and Boundary Conditions . .
27

Data set 13: Element (Distributed) and Well (Point) Source/Sink . . . 28

Data set 14: Variable Boundary Conditions . . . . . . 31

Data set 15: Dirichlet Boundary Conditions . . . . . . 35

Data set 16: Velocity, Moisture Content, and Liquid Density . . . 37

Data set 17: Number of Components and Product Species . . . . 40

Data set 18: H+, e-, and Ionic Strength Correction Information . . . 41

Data set 19: Temperature, Pressure, and Expected pe and pH . . . 42

Data set 20: Adsorption Information . . . . . . . 43

Data set 21: Ion-Exchange Information . . . . . . 44

Data set 22: Basic Biogeochemistry Real and Integer Parameters . . . 45

Data set 23: Names and Types of Chemical Component Species . . . 46

Data set 24: Component Species and Their Ion-Exchanged Species . . 47

Data set 25: Complexed Species and Their Ion-Exchanged Species . . 49

Data set 26: Adsorbed Species . . . . . . . 51

Data set 27: Precipitated/Dissolved Species . . . . . . 52

Data set 28: Microbial Species . . . . . . . 53

Data set 29: Reaction Data . . . . . . . . 54

Data set 30: End-of-Job Line . . . . . . . . 58

[About HydroBioGeoChem123D (HBGC123D)]{.underline}

HBGC123D is a computer code for the simulation of coupled non-isothermal
hydrologic transport and biogeochemical kinetic and/or equilibrium
reactions in variably saturated media. HBGC123D iteratively solves the
1-, 2-, or 3-dimensional heat transfer equations, transport equations,
and the ordinary differential and algebraic equations of mixed
biogeochemical reactions. The transport equations are solved for all
aqueous chemical components and kinetically controlled species. A
Lagrangian-Eulerian finite element method is used to solve the heat
transfer and transport equations. The computer code accommodates
hexahedral (6 faces), pentahedral (5 faces), and tetrahedral (4 faces)
elements in three-dimensional domains, quadrilateral (4 sides) and
triangular (3 sides) elements in two-dimensional domains, and line
elements in one-dimensional domains. The Newton-Raphson method is used
to solve the biogeochemical system of equations.

HBGC123D is designed for generic applications to reactive transport
problems in subsurface media that are affected by microbiological and
geochemical reactions. Input to the program includes the geometry of the
media, the spatial distribution of finite elements and nodes, the
properties of the media, the possible chemical and microbial reactions,
and the initial and boundary conditions. Output includes the spatial
distribution of chemical and microbial concentrations as a function of
time and space, and the chemical speciation at user-specified nodes.

HydroBioGeoChem, a two-dimensional code and the predecessor of HBGC123D,
was developed by Dr. George Yeh, Dr. Karen Salvage, and their co-workers
at the Pennsylvania State University. HBGC123D is the multidimensional
and enhanced release of HydroBioGeoChem by the Oak Ridge National
Laboratory (ORNL). The development of HBGC123D is one of the tasks
supporting the DOE Environmental Technology Partnership Initiative
project Influence of Coupled Processes on the Fate and Transport of
Industrial Mixed Waste Plumes in Structured Media. In conjunction with
field scale mutlitracer injection, a three-dimensional computer model of
the field site at Waste Area Grouping 5, ORNL is being developed.
HBGC123D is being used to study the coupled, multiscale (laboratory
undisturbed soil columns to the field site) processes of microbiology
and subsurface multicomponent reactive transport.

[Acknowledgement]{.underline}

This work is funded by the Environmental Technology Partnership program
of the US Department of Energy (DOE). The development team is especially
grateful to the guidance of Dr. Paul Bayer in the Office of Biological
and Environmental Research of the US DOE Office of Science . This work
is also partially supported by the ORNL Partnership in Computational
Sciences (PICS) program, supported by the Department of Energy's
Mathematical, Information, and Computational Sciences (MICS) Division of
the Office of Computational and Technology Research. Implementation of
the microbial kinetics and geochemical kinetics into the HydroBioGeoChem
(two-dimensional) code was supported by The Department of Energy,
Battelle Pacific Northwest Laboratory. This implementation is under the
guidance of Dr. Frank Wobber, also at the US DOE Office of Biological
and Environmental Research. The present version of HydroBioGeoChem123D
reflects the many contributions made by an army of colleagues from the
Civil and Environmental Engineering Department at the Pennsylvania State
University, the Oak Ridge Institute for Science and Education, and the
Center for Computational Sciences, the Computer Science and Mathematics
Division, and the Environmental Sciences Division of the Oak Ridge
National Laboratory.

[Release Notes]{.underline}

-   Density effects on heat transfer and transport caused by
    biogeochemical

-   speciation and species concentration variations are not accounted
    for in

-   this release.

-   AVS interface is not available for the Windows 95 (FORTRAN only)
    distriubition.

```{=html}
<!-- -->
```
-   For the Windows 95 (FORTRAN only) precompiled executable,
    hbgc123d.exe, a Pentium PC or above with more than 32 MB of memory
    is recommended. For other memory constraints such as hardware
    configuration and problem size, it is advisable that the source be
    downloaded and recompiled.

-   For efficient computer memory use, the user is recommended to adjust
    the total number of array elements allocated to dmem(dmemdim) and
    imem(imemdim) in the header file memcom.h. The number of elements in
    these two arrays that are used for the current problem is always
    reported on the screen and near the top of the ASCII output file.

[The Consultant]{.underline}

Gour-Tsyh Yeh, Pennsylvania State University .

[The ORNL Development Team]{.underline}

J. P. (Jack) Gwo, Center for Computational Sciences.

Hartmut Frenzel, Oak Ridge Institute for Science and Education.

Ed D\'Azevedo, Computer Science and Mathematics Division.

Forrest M. Hoffman, Environmental Sciences Division.

[About the I/O Superfile - the List of Input File]{.underline}

A superfile that contains a list of input/output filenames needs to be
present in the same directory as the compiled and linked executable,
either hbgc123d or hbgc123d.exe. The filename of the superfile must be
hbgc123d.in. The superfile contains the following five filenames,
including the entire path, in the same order as given below:

1.  The filename of the input data file, prepared as outlined in this
    document.

2.  The filename of the ASCII output file, in plain text format, from
    the HBGC123D simulation.

3.  The filename of the binary file that contains the hydrological
    conditions (velocity and water content) generated by a subsurface
    flow code. The format of this binary file is the same as that
    specified for the Logical Unit 11. This file is used for input if
    KVI (defined in DATA SET 2) \> 0. If KVI = -1, the filename still
    needs to be present, but the file will not be used.

4.  The filename of the binary file that stores the output from the
    HBGC123D simulation.

5.  The filename of the binary file that stores the required information
    for a subsequent HGBC123D restart job.

UNITS OF MEASURE: The unit of mass and length used for the data input
should be kilogram (kg) and decimeter (dm), respectively. Any units of
time may be used as long as the same unit is used consistently
throughout all data sets. All total analytical concentrations and
initial conditions should be specified in units of moles of chemical per
unit *total volume of media* (mol/dm^3^). All source/sink concentrations
should be specified in units of moles of chemical per unit *volume of
liquid* (mol/dm^3^). All boundary condition concentrations should be
specified in units of moles of chemical per unit *mass or volume of
phase* in which the chemical exists (mole/kg or mole/l).

PRACTICE OF INPUT DATA PREPARATION: Clarity and documentation is the
soul of input data preparation. In general, the current version of
HYDROBIOGEOCHEM123D requires and recommends the following practice of
input data preparation.

***Definition:***

1.  Array of integer and real numbers: XX(I), I=1,N. The notation
    suggests the input of N array members in ascending order from 1
    (one) to N. The associated FORTRAN READ statement dictates that N
    integers or real numbers be placed in sequence without interruption,
    separated only by spaces or a comma character. These N numbers,
    however, do not have to be present in the same line.

2.  A line of input: A line of 80 characters, including signs,
    exponential characters, etc.

***Required:***

1.  An I/O superfile named hbgc123d.in that contains a list if input and
    output filenames.

2.  All data sets except for Data Set 1 must be preceded by a data set
    name in a single line of width ≤ 80 characters.

3.  It is the user\'s responsibility that the data entered are within
    the reasonable and acceptable range. No error checking to user\'s
    input is performed.

> ***Recommended:***

1.  Line length is recommended to be less than 80 characters. Although
    in a text file a line length can go beyond 80 characters, it may not
    meet the clarity rule of thumb.

2.  Documentation of an input data set or even an input line is highly
    recommended. Free format integer and real numbers are required
    throughout the entire input file unless otherwise noted. The free
    format FORTRAN read statement ignores the trailing spaces after the
    last number. Documentation in the trailing spaces, even limited,
    will clarify the preceding data in the same line or section.

**DATA SET 1: TITLE**

Two lines are used for each problem.

*Line 1:* FORMAT(I5,7A10)

1\. NPROB = Problem number.

2\. TITLE = Array for the title of the problem. It may contain up to 70
characters from column 6 to column 75.

*Line 2:* Free format input contains 5 integers as follows:

1\. IITR = Integer indicating if iteration table of convergence
information to be printed:

0 = no.

1 = transport iteration table printed.

2 = both transport and chemical iteration tables printed.

2\. INTER = Integer indicating if concentration field is to be printed
for each hydrological‑chemical interaction:

1 = yes

0 = no.

3\. ICOND = Integer indicating if the condition number of the Jacobian
matrix in biogeochemical computations is to be printed:

1 = yes.

0 = no.

4\. NHGCI = Integer indicating if biogeochemical information is to be
printed:

0 = no.

\> 0 = print every NHGCI inter-hydro-geochem iterations.

5\. IGEOM = Integer signifying if the geometric data are to be printed:

0 = no.

1 = yes.

**DATA SET 2: BASIC INTEGER PARAMETERS**

Free format input contains 24 or 25 integers as follows:

1\. IDIM = Number of dimensions (1, 2, or 3).

2\. NNP = Number of nodal points.

3\. NEL = Number of elements.

4\. NMAT = Number of material types.

5\. NCM = Number of elements with material property correction.

6\. NTI = Number of time steps or time increments.

**NOTE**: NTI can be computed by NTI = I1 + 1 + I2 + 1, where

I1 = Largest integer not exceeding Log(DELMAX/DELT)/Log(1+CHNG).

> I2 = Largest integer not exceeding (RTIME -- DELT \* ((1 +
> CHNG)^(I1+1)^ --
>
> 1)/CHNG)/DELMAX.

RTIME = Real simulation time.

DELMAX, DELT, and CHNG are defined in Data Set 3.

7\. KSS = Steady-state simulation control:

0 = Steady-state solution desired.

± 1 = No steady-state solution desired.

**NOTE:** The combination of KSS and NTI will determine the type of
simulations.

-   If KSS = 0 and NTI = 0, a steady state simulation will be performed.

```{=html}
<!-- -->
```
-   If KSS = 0 and NTI \> 0, a transient simulation using the steady
    state solution as the initial condition will be performed.

```{=html}
<!-- -->
```
-   If KSS = 1 and NTI \> 0, a transient simulation using user supplied
    initial condition will be performed. The program will equilibrate
    the user supplied initial condition before the transient simulation
    is run.

```{=html}
<!-- -->
```
-   If KSS = -1 and NTI \> 0, a transient simulation using user supplied
    initial condition will be performed. The user supplied initial
    condition will **not** be equilibrated. The user is cautioned
    against using this option.

8\. NMPPM = Number of material properties per material (4 material
properties are needed for simulations without heat transfer, i.e.,
ISHEAT = 0 in Data Set 6a; otherwise 7 material properties are needed).

9\. KVI = Velocity input control:

‑ 1 = Velocity and moisture content defined by Data Set 16.

1 = Steady-state velocity and moisture content read from Logical Unit
11.

2 = Transient velocity and moisture content read from Logical Unit 11.

10\. ILUMP = Mass matrix lumping control:

0 = No lump.

1 = Lump.

11\. IMID = Mid-difference control:

0 = No mid-difference.

1 = Mid-difference, and W in Data Set 3 should be 1.

12\. IWET = Weighting function control:

0 = Galerkin weighting.

1 = Upstream weighting.

13\. IOPTIM = Optimization factor computing indicator:

1 = Optimization factor is to be computed.

0 = Optimization factor is set to 1.0, 0.0, or ‑1.0.

14\. NITER = Number of iterations allowed between hydrological‑chemical
iterations.

15\. NDTCHG = Number of times to reset the time-step size to the initial
value.

16\. NPITER = Number of iterations allowed for solving the linear matrix
equation with pointwise iteration.

17\. IPNTS = Method to be used to solve the matrix equations:

0 = standard-banded Gaussian direct elimination procedure.

1 = pointwise iteration method.

2 = preconditioned conjugate gradient method, with polynomial as

preconditioner.

3 = preconditioned conjugate gradient method, with incomplete Cholesky

decomposition as preconditioner.

4 = preconditioned conjugate gradient method, with modified incomplete

Cholesky decomposition as preconditioner.

5 = preconditioned conjugate gradient method, with symmetric successive

over-relaxation as preconditioner

6 = preconditioned conjugate gradient method, with diagonal elements

of the original matrix as preconditioner.

7 = preconditioned bi-conjugate gradient method.

18\. KSTR = Restart auxiliary storage input control:

0 = No restart. Use this option when NSTR = 0.

1 = Input stored in Logical Unit 12, in FORTRAN double precision format.

> 2 = Input stored in Logical Unit 12, in C double precision format,
> option not available for the FORTRAN only version.
>
> 3 = Input stored in Logical Unit 12, in C single precision format,
> option not available for the FORTRAN only version.

19\. NSTR = Number of logical records to be read from Logical Unit 13
for restarting the calculation:

0 = No restart.

20\. LGRN = Is the Lagrangian-Eulerian approach to be used:

1 = Yes.

0 = No.

21\. IQUAD = Indicator for quadrature integration:

> 11 = nodal quadrature for both surface integration and volume
> integration.
>
> 12 = nodal and Gaussian quadrature for surface and volume
>
> integration, respectively.
>
> 21 = Gaussian and nodal quadrature for surface and volume integration,
>
> respectively.
>
> 22 = Gaussian quadrature for both surface and volume integration.

22\. IDETQ = Option for velocity for the Lagrangian step.

1 = average velocity approach, available for two-dimensional problems
only.

2 = single velocity approach.

23\. IOPTRS = Option for operator splitting.

0 = do not use operator splitting (use fully implicit scheme).

1 = use operator splitting.

24\. IAIEF = Option for adaptive implicit-explicit handling of the
reaction term in the transport equations.

0 = no. (reaction term on RHS of transport equation).

1 = yes. (reaction term adaptively adjusted to LHS or RHS depending on
sign).

If IPNTS ≥ 2 (i.e. if a preconditioned conjugate gradient method (PCG)
is to be used), a second line is needed for the following 4 parameters:

1\. IEIGEN = Signal of parameter estimation for GG in the polynomial PCG
method:

0 = not requested.

1 = requested.

2\. GG = The upper bound on the maximum eigenvalue of the coefficient
matrix used in the polynomial PCG method.

3\. ALPHA = Weighting factor for computing the diagonal element of the
diagonal matrix used in the modified incomplete Cholesky PCG method.

4\. OMEGA = Relaxation parameter used in the SSOR PCG method.

**DATA SET 3: BASIC REAL PARAMETERS**

Free-field format input contains 10 real numbers as follows:

1\. DELT = Initial time-step size (T).

2\. CHNG = Percent change in the time-step size in each of the
subsequent time increments, (dimensionless in decimal fraction).

3\. DELMAX = Maximum allowable time-step size (T).

4\. TMAX = Maximum simulation time (T).

5\. W = Time-derivative weighting factor for all terms except the
velocity terms:

0.5 = Crank‑Nicholson central.

1.0 = Backward difference and mid-difference.

6\. WV = Time integration factor for the velocity terms:

0.0 = Forward difference (explicit).

0.5 = Central difference.

1.0 = Backward difference (completely implicit).

7\. OME = Relaxation parameter for solving the nonlinear equation:

0.0 ‑ 1.0 = Under‑relaxation.

1.0 = Exact relaxation.

1.0 ‑ 2.0 = Over‑relaxation.

8\. OMI = Relaxation parameter for pointwise iterative solution of the
matrix equation:

0.0 ‑ 1.0 = Under‑relaxation.

1.0 = Exact relaxation.

1.0‑2.0 = Over‑relaxation.

9\. TOLA = Error tolerance for solving the nonlinear equations. Half of
its value is used as the tolerance for solving the linearized matrix
equation with pointwise iteration.

10\. APHAG = Upstream weighting factor if IOPTIM = 0:

> Values are between 0.0 and 1.5 when the advection form of the equation
> is used. If APHAG \> 1.34, the program will choose appropriate values
> of weighting factor. When the conservative form of the equations is
> used or when IOPTIM = 1, this value is not used by the program.

DATA SET 4: PRINTER OUTPUT, DISK STORAGE CONTROL, AND TIMES FOR
RESETTING STEP SIZE

The number of lines here depends on the number of time increments, NTI,
and the number of times to reset the time step, NDTCHG. The number of
lines is \[(NTI/80+1)\*2\] + NLINE: (NTI/80+1) lines for printer output
control, (NTI/80+1) lines for storage control, and NLINE lines for
time‑step‑size resetting control, which depends on NDTCHG. NLINE lines
are required to enter NDTCHG real numbers with free format.

*Line 1 to Line \[(NTI/80+1)\]:* FORMAT(80I1)

> KPR0, KPR(I), I=1,NTI, where

KPR0 = Printer control for initial and steady state conditions.

> KPR(I) = Printer control for the I‑th time step:

0 = Print nothing.

1 = Print chemical component data from within biogeochemical subroutine.

2 = Print above plus chemical component species data.

3 = Print above plus product species data.

4 = Print above plus stoichiometric coefficients and reaction data.

5 = Print above plus mass flow rates (FLOW, FRATE, and TFLOW).

6 = Print above plus velocities.

(Note: summary concentration values at each node are printed when a
convergent solution is reached for each time step. Options 1 through 4
provide more detailed output on the chemical speciation in the system
from within the biogeochemical portion of the program every NHGCI
iterations. NHGCI is specified in Data Set 1).

*Line \[(NTI/80+1)+1\] to Line \[(NTI/80+1)\*2\]:* FORMAT(80I1)

> KDSK0, KDSK(I), I=1,NTI, where

KDSK0 = Auxiliary storage control for steady state and initial
conditions.

> KDSK(I) = Auxiliary storage control for the I‑th time-step, the same
> allowable values as for KDSK0;

0 = No storage.

1 = Store in Logical Unit 12, in FORTRAN binary.

> 2 = Store in Logical Unit 12, in C double precision binary. This
> option is not available for the FORTRAN only version.
>
> 3 = Store in Logical Unit 12, in C single precision binary. This
> option is not available for the FORTRAN only version.
>
> **Note**: It is the user\'s responsibility to maintain a uniform data
> format in Logical Unit 12 throughout the NTI time steps. That is, if
> output is to be stored in FORTRAN binary format, all the values of
> KDSK(I) and KDSK0 should be either 0 or 1 (one). If output is to be
> stored in C double precision binary format, all the values of KDSK(I)
> and KDSK0 should be either 0 or 2, and so on.

*Line greater than line (NTI/80+1)\*2:* Free-field format input contains
NDTCHG real numbers:

TDTCH(I), I=1, NDTCHG, where TDTCH(I) is the time (T) at which the
time-step

size is to be reset to the initial value for the I-th time.

**DATA SET 5: PRINTOUT INDICATOR**

The number of lines in this data set depends on NCPRT. Normally two
lines are sufficient.

*Line 1:* Free-field format input containing one integer.

1\. NCPRT = Number of nodes at which detailed biogeochemical information
will be printed.

*Line 2:* Free-field format input contains NCPRT integers.

IWRK(I), I=1,NCPRT, where IWRK(I) is the global node number of the I-th
node

where detailed chemical information will be printed

**NOTE**: IWRK(I), for 1 ≤ I ≤ NCPRT, is used to temporarily store the
node numbers

where detailed chemical information is to be printed. These node numbers
are then used

to set NODEP(NP) =1 or 0. When NODEP(NP) = 1, detailed chemical
information will

be printed for the NP-th node. When NODEP(NP)= 0, detailed chemical
information

will not be printed for the NP-th node.

**DATA SET 6: MATERIAL PROPERTIES**

A total of NMAT lines are required for this data set, each containing
material properties of a material type, in sequence and order from
material type 1 (one) to material type NMAT (specified in DATA SET 2).
For each material type, 4 or 7 material properties are needed (NMPPM
specified in Data Set 2). Properties 5 to 7 are needed only for
simulations with heat transfer (ISHEAT \> 0 in Data Set 6a).

Each line is free-field format input containing the following
information:

1\. PROP(1,I) = Longitudinal dispersivity (L).

2\. PROP(2,I) = Lateral dispersivity (L).

3\. PROP(3,I) = Effective molecular diffusion coefficient of the I‑th
medium (L^2^/T).

4\. PROP(4,I) = Bulk density of medium I (M/L^3^).

5\. PROP(5,I) = Specific heat of dry medium I (L^2^/T^2^/^o^K).

6\. PROP(6,I) = Apparent thermal conductivity of medium I
(ML/^o^K/T^3^).

7\. PROP(7,I) = Saturated water content of medium I (L^3^/L^3^).

**DATA SET 6a. HEAT TRANSFER CONTROL**

1\. ISHEAT = 0, no heat transfer.

1, heat transfer only.

2, nonisothermal reactive transport, or reactive transport with heat
transfer.

DATA SET 6b. WATER THERMODYNAMIC PROPERTIES AND TEMPERATURE CORRECTION
FUNCTIONS

This data set is needed only when ISHEAT (specified in DATA SET 6a) \>
0.

*Line 1:* includes the following five real numbers:

1\. SPHEAT = Reference groundwater specific heat (L^2^/T^2^/^o^K).

2\. GASCNT = Ideal gas constant (ML^2^/T^2^/^o^K/mole).

3\. RHO_PW = Reference water density (M/L^3^).

4\. AMU_PW = Reference water dynamic viscosity (M/LT).

5\. TEMPREF = Reference temperature for density correction (^o^K).

*Line 2:* include the following integer number.

1\. NRHO = Number of coefficients for the density correction function.

*Line 3:* includes NRHO real numbers of the following coefficients.

RHOC(I), I=1,NRHO, is the I-th coefficient of the density correction
function.

*Line 4:* includes the following one integer number.

1\. NMU = Number of coefficients for dynamic viscosity correction
function.

*Line 5:* include NMU real numbers of the following coefficients.

AMUC(I), I=1,NMU, is the I-th coefficient of the viscosity correction
function.

*Line 6:* includes the following one single integer number.

1\. NLAMBDA = Number of coefficient for the apparent heat conductivity
correction

function.

*Line 7:* includes the following NLAMBDA real numbers.

DMBC(I), I=1,NLAMBDA, is the I-th coefficient of the apparent heat
conductivity

correction function.

DATA SET 6c. HEAT TRANSFER ITERATION PARAMETERS

This data set is needed only when ISHEAT (specified in DATA SET 6a) \>
0.

1\. TOLSTDY = convergence criterion of the steady state heat transfer
simulation (^o^K/^o^K).

2\. TOLTRNST = convergence criterion of the transient state heat
transfer simulation (^o^K/^o^K).

**DATA SET 7: NODAL COORDINATES**

Formats for one-, two-, and three-dimensional problems are slightly
different. However, the nodal coordinates can all be automatically
generated if the coordinates appear in regular patterns. This data set
is not needed if Logical Unit 11 is used as input (i.e., if KVI \> 0 in
Data Set 2).

[One-Dimensional Problems:]{.underline}

Typically, a total of NNP lines are required.

*Line 1 to Line NNP:*

The coordinates should be in ascending or descending order. Each line is
in free-field format containing:

1\. NI = Node number of the first node in the sequence.

2\. NSEQ = NSEQ subsequent nodes to be automatically generated.

3\. NAD = Increment of the node number for each of the NSEQ subsequent
nodes.

4\. XNI = x‑coordinate of node NI (L).

5\. XAD = Increment of the x‑coordinate for each of the NSEQ subsequent
nodes (L).

6\. XRD = Percent increase of the increment over its preceding increment
(decimal fraction):

0 = All increments, XAD\'s, are the same.

> \> 0 = The first increment is XAD\*(1+XRD), the second increment is
> XAD\*(1+XRD)^2^, the third increment is XAD\*(1+XRD)^3^, and so on.

**NOTE**: A line containing six zeros separated by spaces or commas must
be used to signal the end of the x-coordinate data.

[Two-Dimensional Problems:]{.underline}

Typically, a total of 2\*NNP lines are required: NNP lines each for the
x‑ and z‑coordinates.

*Line 1 to Line NNP:* Each line is in free-field format containing:

1\. NI = Node number of the first node in the sequence.

2\. NSEQ = NSEQ subsequent nodes to be automatically generated.

3\. NAD = Increment of the node number for each of the NSEQ subsequent
nodes.

4\. XNI = x‑coordinate of node NI (L).

5\. XAD = Increment of the x‑coordinate for each of the NSEQ subsequent
nodes (L).

6\. XRD = Percent increase of the increment over its preceding increment
(decimal fraction):

0 = All increments, XAD\'s, are the same.

> \> 0 = The first increment is XAD\*(1+XRD), the second increment is
> XAD\*(1+XRD)^2^, the third increment is XAD\*(1+XRD)^3^, and so on.

**NOTE**: A line containing six zeros separated by spaces or commas must
be used to signal the end of the x-coordinate data.

*Line (NNP+1) to Line 2\*NNP:* contain the same information as described
above but for the z‑coordinate.

[Three-Dimensional Problems:]{.underline}

Usually a total of NNP lines are required. Each line contains the
following variables and is in free-format.

1\. NI = Node number of the first node in the sequence.

2\. NSEQ = NSEQ subsequent nodes will be automatically generated.

3\. NAD = Increment of node number for each of the NSEQ subsequent
nodes.

4\. XNI = x-coordinate of node NI, (L).

5\. YNI = y-coordinate of node NI, (L).

6\. ZNI = z-coordinate of node NI, (L).

7\. XAD = Increment of x-coordinate for each of the NSEQ subsequent
nodes, (L).

8\. YAD = Increment of y-coordinate for each of the NSEQ subsequent
nodes, (L).

9\. ZAD = Increment of z-coordinate for each of the NSEQ subsequent
nodes, (L).

**NOTE**: A record with 9 0\'s must be used to signal the end of this
data set.

**DATA SET 8: ELEMENT INCIDENCES**

Formats for one-, two-, and three-dimensional problems are slightly
different. However, the element incidences can all be automatically
generated if the global node numbers of elements appear in regular
patterns. This data set is not needed if Logical Unit 11 is used as
input (i.e., if KVI \> 0 in Data Set 2).

[One-Dimensional Problems:]{.underline}

No input data is required. Node numbers are automatically generated,
which requires the nodal coordinates in ascending or descending order.

[Two-Dimensional Problems:]{.underline}

Typically, a total of NEL lines are needed, one for each element.
However, only one line is needed if a group of elements appears in a
regular pattern. Free-field format input for each line contains the
following information:

1\. MI = Global element number.

2\. IE(MI,1) = Global node number of the first node of element MI.

3\. IE(MI,2) = Global node number of the second node of element MI.

4\. IE(MI,3) = Global node number of the third node of element MI.

5\. IE(MI,4) = Global node number of the fourth node of element MI.

6\. IE(MI,5) = Material type to be applied to element MI.

7\. MODL = Number of elements in the direction of the smaller increment
in node numbers.

8\. NLAY = Number of elements in the direction of the larger increment
in node numbers.

IE(MI,1) to IE(MI,4) are numbered beginning with the lower left corner
and progressing around the element in a counterclockwise direction. For
a logically rectangular block of elements, it is only necessary
to specify the first element, the width MODL and the length NLAY, where
MODL and NLAY are measured in elements. Element numbering proceeds most
rapidly along the MODL dimension and least rapidly along the NLAY
dimension. Figure A.1 provides an example. The object is considered to
be logically rectangular because it has width MODL = 3 on two opposite
sides and length NLAY = 5 on the other two opposite sides. To generate
definitions of elements 1 through 15 automatically, including both the
incidence and material type, only one line is necessary. Although all
elements of this example will be assumed to contain the same material
type, MITYP = 1, this situation can easily be changed by using the
material‑correction option in Data Set 9.

![](media/image1.wmf){width="5.636805555555555in"
height="3.342361111111111in"}

MI IE(M,1) IE(M,2) IE(M,3) IE(M,4) IE(M,5) MODL NLAY

1 1 5 6 2 1 3 5

Fig. A.1. Automatic generation a 3×5 logically rectangular mesh.

[Three-Dimensional Problems:]{.underline}

Usually, a total of NEL records are needed. Each record contains the
following variable and is FREE-FORMATTED.

1\. MI = Global element number of the first element in a sequence,

2\. NSEQ = NSEQ subsequent elements will be automatically generated,

3\. MIAD = Increment of MI for each of the NSEQ subsequent elements,

4\. IE(MI,1) = Global node number of the first node of element MI.

5\. IE(MI,2) = Global node number of the second node of element MI.

6\. IE(MI,3) = Global node number of the third node of element MI.

7\. IE(MI,4) = Global node number of the fourth node of element MI.

8\. IE(MI,5) = Global node number of the fifth node of element MI.

9\. IE(MI,6) = Global node number of the sixth node of element MI.

10\. IE(MI,7) = Global node number of the seventh node of element MI.

11\. IE(MI,8) = Global node number of the eighth node of element MI.

12\. IEMAD = Increment of IE(MI,1) through IE(MI,8) for each of the NSEQ
elements.

> **Note**: For tetrahedral elements, set IE(MI,5) -- IE(MI,8) equal to
> zeros. For pentahedral elements, set IE(MI,7) and IE(MI,8) equal to
> zeros. ![](media/image2.wmf){width="2.522222222222222in"
> height="2.375in"}For hexahedral elements, IE(MI,1) - IE(MI,8) are
> numbered according to the convention shown in the Fig. A.2. The first
> four nodes start from the front lower left corner and progressing
> around the bottom element surface in a counterclockwise direction. The
> other four nodes begin from the front upper left corner and
> progressing around the top element surface in a counterclockwise
> direction. Pentahedrons are similarly numbered except that there are
> three nodes on the top and bottom faces.

**Hexahedron** **Pentahedron** **Tetrahedron**

Figure A.2. Node numbering convention of three-dimensional elements.

**DATA SET 9: MATERIAL TYPE CORRECTION**

This data set is required only if NCM \> 0. Normally NCM lines are
required, but if the elements with different material properties appear
in regular patterns, automatic generation can be used.

Free-field format input for each line contains the following
information:

1\. MI = Global element number of the first element in the sequence.

2\. NSEQ = NSEQ subsequent elements will be generated automatically.

3\. MAD = Increment of element number for each of the NSEQ subsequent
elements.

4\. MITYP = Material type to be applied to element MI.

5\. MTYPAD = Increment of the type of material for each of the NSEQ
subsequent elements.

**NOTE**: A line containing five zeros separated by spaces or commas
must be present to

signal the end of this data set.

**DATA SET 10: CHEMICAL COMPONENT INFORMATION**

*Line 1:* Free-field format input contains eight integers.

1\. NOHA = Number of mobile components.

2\. NOHS = Number of immobile components.

3\. NOKX = Number of kinetic aqueous complexed species.

4\. NOKY = Number of kinetic adsorbed species.

5\. NOKZ = Number of kinetic ion-exchanged species.

6\. NOKP = Number of kinetic precipitated species.

7\. NOMB = Number of aqueous phase microbial species.

8\. NOMA = Number of adsorbed phase microbial species.

Line 2 and Line 3 are repeated (NOHA + NOHS) times, once for each
component in the simulation.

*Line 2*: FORMAT(A10) contains the following information:

1\. CNAM(I) = component name of the I-th component.

*Line 3*: FORMAT(2I5) contains the following information:

1\. IDNTC(I,1) = Chemical component number of the I-th transport
component.

2\. INDTC(I,1) = indicator of the I-th transport component,

0 = conservative component,

1 = nonconservative mobile component,

2 = immobile component,

3 = component whose activity is fixed.

**DATA SET 11: INPUT FOR INITIAL OR PRE‑INITIAL CONDITIONS**

This data set is needed only if NSTR = 0, or the simulation is not a
restart one. (NSTR is specified in Data Set 2). When this data set is
needed, typically a total of NNP lines are required for each chemical
component and the temperature if heat transfer simulation is needed
(ISHEAT \> 0), one each for each node. However, if the initial or
pre‑initial conditions appear in a regular pattern, automatic generation
may be used. The following set of lines should be repeated for each of
the NOHA + NOHS components, the NOKX + NOKY + NOKZ + NOKP kinetic
chemical product species, the NOMB + NOMA microbial species, and the
temperature if ISHEAT \> 0. (NOHA, NOHS, NOKX, NOKY, NOKZ, NOKP, NOMB,
NOMA are specified in Data Set 10).

Each line is free-field format input containing the following
information:

1\. NI = Global node number of the first node in the sequence.

2\. NSEQ = NSEQ subsequent nodes will be generated automatically.

3\. NAD = Increment of the node number for each of the NSEQ nodes.

4\. RNI = Initial or pre‑initial total concentration/temperature at node
NI

(moles/total dm^3^ or ^o^K).

5\. RAD = Increment of initial or pre‑initial total
concentration/temperature for each of the NSEQ nodes (moles/total dm^3^
or ^o^K).

6\. RRD = Percent increase of the increment over its preceding increment
(decimal fraction):

0 = All increments, RAD\'s, are the same.

> \> 0 = The first increment is RAD\*(1+RRD), the second increment is
> RAD\*(1+RRD)^2^, the third increment is RAD\*(1+RRD)^3^, and so on.

**NOTE ON INITIAL CONDITIONS**:

-   A line with six zeros separated by spaces or commas must be used to
    signal the end of this data set for each species.

```{=html}
<!-- -->
```
-   All initial concentrations are in moles per volume of media (= total
    volume of the solid and liquid phases).

```{=html}
<!-- -->
```
-   If the INDTC for any chemical component is equal to 3, then the
    log10 of its activity should be entered for initial or pre-initial
    values. (INDTC is specified in Data Set 10).

```{=html}
<!-- -->
```
-   The initial conditions for a transient simulation may be obtained in
    three different ways: (1) from batch input, (2) auxiliary storage
    input, or (3) steady‑state calculation using time‑invariant boundary
    conditions. In the latter case, a batch input of the pre‑initial
    conditions is required as the zeroth order iterate of the steady
    state solution. Auxiliary storage input is necessary whenever the
    restarting facility is being used. That is, concentration
    distribution for NSTR different times have been generated and
    written on disk or magnetic tape. If NSTR \> 0, these distributions
    will be read from Logical Unit 13, and NSTR‑th distribution will be
    used as the initial condition for the current calculation. The
    format of Logical Unit 13, FORTRAN binary, C single- or
    double-precision binary, is determined by the parameter KSTR. KSTR
    must be greater than 0 if NSTR \> 0 for restart jobs. If either the
    first (batch input) or the last (steady‑state) option is used, then
    NSTR = 0. (NSTR is specified in Data Set 2).

> **NOTE ON AUXILIARY UNITS**: Logical Unit 11 is used to input
> hydrodynamic variables to HYDROGEOCHEM123D if KVI \> 0. Logical Unit
> 12 is used to store output of HYDROGEOCHEM123D whenever KDSK0 and
> KDSK(I), I = 1, NTI \> 0. Logical Unit 13 is used to input initial
> condition if NSTR \> 0. Proper identification of these three units
> must be made if either of these options is used. The filename for
> Logical Unit 13 of the current job should be the same as that for
> Logical Unit 12 of the previous job.
>
> **NOTE ON STEADY-STATE INPUT**: A steady-state option may be used to
> provide either the final state of a system under study or the initial
> conditions for a transient state calculation. In the former case KSS =
> 0 and NTI = 0, and in the latter case KSS = 0 and NTI \> 0. If KSS ≠
> 0, there will be no steady-state calculation.

DATA SET 12: INTEGER PARAMETERS FOR SOURCES AND BOUNDARY CONDITIONS

Free-field format input contains 13 integers as follows:

1\. NSEL = Number of source/sink elements.

2\. NSPR = Number of source/sink profiles.

3\. NSDP = Number of data points in each source/sink profile.

4\. NWNP = Number of well or point source/sink nodes.

5\. NWPR = Number of well or point source/sink strength profiles.

6\. NWDP = Number of data points in each of the NWPR profiles.

7\. NDNP = Number of Dirichlet nodes.

8\. NDPR = Number of Dirichlet profiles.

9\. NDDP = Number of data points in each of the NDPR profiles.

10\. NVNP = Number of variable-boundary nodes.

11\. NVES = Number of variable-boundary sides.

12\. NVPR = Number of incoming fluid concentration profiles to be
applied to variable-boundary element sides.

13\. NVDP = Number of data points in each of the NVPR profiles.

**DATA SET 13: ELEMENT (DISTRIBUTED) AND WELL (POINT) SOURCE/SINK**

> \(1\) *Element Source/Sink*: This data set is needed if and only if
> NSEL \> 0. When NSEL \> 0, data subsets (b) and (c), together and in
> sequence as a supergroup, should be repeated (NOHA + NOHS + NOKX +
> NOMB + 2) times for simulations without heat transfer or (NOHA +
> NOHS + NOKX + NOMB + 3) times for simulations with heat transfer
> (i.e., ISHEAT \> 0). (NSEL is specified in Data Set 12. NOHA, NOHS,
> NOKX, and NOMB are specified in Data Set 10).
>
> \(a\) Global element number of compressed source/sink element number:
> Free-field format input contains the following information:
>
> 1\. LES(I), I = 1, NSEL, Global element number of the I-th distributed
> source/sink element.
>
> \(b\) Element source/sink profile: Number of lines depends on NSPR,
> NSDP, and NON. Each line contains a number of data points = 2\*NSDP
> numerical numbers. Each line is free-field format input. For a
> transport component, fluid density, flow rate, and temperature, the
> sequence of input goes by a (time, source strength) pair that is
> repeated until all the NSDP pairs are entered. This sequence of input
> is then repeated for the next component, flow rate, fluid density,
> and/or temperature.
>
> For K = 1, NOHA + NOHS + NOKX + NOMB + 3, I = 1, NSPR, J = 1, NSDP,
>
> 1\. TSOSF(J,I,K) = Time of J-th data point in I‑th profile for K‑th
> component (T).
>
> 2\. SOSF(J,I,K) = Source/sink value of J-th data point in I‑th profile
> for K‑th component:

-   concentration (moles/dm^3^ liquid) if K ≤ (NOHA + NOHS + NOKX +
    NOMB),

```{=html}
<!-- -->
```
-   flow rate of liquid (L^3^/T) if K = (NOHA + NOHS + NOKX + NOMB + 1),

```{=html}
<!-- -->
```
-   density of incoming liquid (kg/dm^3^) if K = (NOHA + NOHS + NOKX +
    NOMB + 2), and

```{=html}
<!-- -->
```
-   temperature of incoming liquid (^o^K) if ISHEAT \> 0 and K = (NOHA +
    NOHS + NOKX + NOMB + 3).

> \(c\) Source/sink profile type in each source/sink element: Typically,
> one line per element is needed. However, automatic generation can be
> used. Each line is free-field format input containing the following:
>
> 1\. MI = Compressed source/sink element number of first element in the
> sequence.
>
> 2\. NSEQ = NSEQ source/sink elements will have profile type MITYP.
>
> 3\. MAD = Increment of MI for each of the NSEQ elements.

4\. MITYP= Source/sink profile type for element MI.

> 5\. MTYPAD = Increment of source profile type in each of the NSEQ
> subsequent elements.

**NOTE**: A line containing five zeros separated by spaces or commas
must be used to

end this data set.

> \(2\) *Point source/sink*: This data set needed if and only if NWNP \>
> 0. When NWNP \> 0, data subsets (b) and (c), together and in sequence
> as a supergroup, should be repeated (NOHA + NOHS + NOKX + NOMB + 2)
> times for simulations without heat transfer or (NOHA + NOHS + NOKX +
> NOMB + 3) times for simulations with heat transfer (i.e., ISHEAT \>
> 0). (NWNP is specified in Data Set 12. NOHA, NOHS, NOKX, and NOMB are
> specified in Data Set 10).
>
> \(a\) Global node number of compressed point source/sink number:
> Free-field format input contains the following information:

1\. NPW(I), I = 1, NWNP, Global node number of the first source/sink
node.

> \(b\) Point source/sink profile: Number of lines depends on NWPR,
> NWDP, and NOHA + NOHS + NOKX + NOMB. Each line contains a number of
> data points = 2\*NWDP numerical numbers. Each line is free-field
> format input. For a transport component, fluid density, flow rate, and
> temperature, the sequence of input goes by a (time, source strength)
> pair that is repeated until all the NWDP pairs are entered. This
> sequence of input is then repeated for the next component, flow rate,
> fluid density, and/or temperature.

For K =1, NOHA + NOHS + NOKX + NOMB + 3, I = 1, NWPR, J = 1, NWDP,

> 1\. TWSSF(J,I,K) = Time of J-th data point in I‑th profile for K‑th
> component (T).
>
> 2\. WSSF(J,I,K) = Source/sink value of J-th data point in I‑th profile
> for K‑th component:

-   concentration (moles/dm^3^ liquid) if K ≤ (NOHA + NOHS + NOKX +
    NOMB),

```{=html}
<!-- -->
```
-   flow rate of liquid (L^3^/T) if K = (NOHA + NOHS + NOKX + NOMB + 1),

```{=html}
<!-- -->
```
-   density of incoming liquid (kg/dm^3^) if K = (NOHA + NOHS + NOKX +
    NOMB + 2), and

```{=html}
<!-- -->
```
-   temperature of incoming liquid (^o^K) if ISHEAT \> 0 and K = (NOHA +
    NOHS + NOKX + NOMB + 2).

> \(c\) Type of point source/sink nodes: Typically, one line per well
> node is needed. However, automatic generation may be used. Each line
> is free-field format input containing the following:
>
> 1\. NI = Compressed well node number of the first node in a sequence.
>
> 2\. NSEQ = NSEQ subsequent well nodes will be generated automatically
> for the source profile type.
>
> 3\. NIAD = Increment of compressed well node number for each of the
> NSEQ subsequent nodes.
>
> 4\. NITYP = Type of well source/sink profile assigned to NI‑th well
> node.

5\. NITYPA= Increment of NITYP for each of the NSEQ subsequent nodes.

**NOTE**: A line containing five zeros separated by spaces or commas
must be used

to signal the end of this data subset.

**DATA SET 14: VARIABLE BOUNDARY CONDITIONS**

This data set is required if and only if NVES \> 0. Boundary conditions
must be specified for all mobile components (i.e. those with INDTC(I,1)
= 0 or 1), for all kinetic aqueous complexed chemical product species,
for all aqueous phase microbial species, and for temperature if ISHEAT
\> 0. (NVES is specified in Data Set 12; INDTC is specified in Data Set
10).

Four groups of records are required for this data set: The first group
is used to specify the incoming concentration profiles. The second group
is used to assign the type of incoming concentration profile to each of
the NVES boundary sides. The third group is used to read the global
nodal number of NVNP in-flow and out-flow nodes. The fourth group is
used to specify the information of the NVES element sides. The first
group and the second group, together and in sequence as a supergroup,
should be repeated (NOHA + NOKX + NOMB) times for simulations without
heat transfer or (NOHA + NOKX + NOMB + 1) times for simulations with
heat transfer (i.e., ISHEAT \> 0). The program checks INDTC(I,1) for
each of the NOH components, and only reads a boundary condition if
INDTC(I,1) ≤ 1 (i.e. do not specify a boundary condition for fixed
concentration or immobile components).

> \(a\) Incoming concentration profiles: Number of lines depends on
> NVPR, NVDP, and NOHA + NOKX + NOMB. Each line contains a number of
> data points = 2\*NVDP numerical numbers. Each line is free-field
> format input. For a transport component and temperature, the sequence
> of input goes by a (time, concentration/temperature) pair that is
> repeated until all the NVDP pairs are entered. This sequence of input
> is then repeated for the next component and/or temperature.

For K=1, NOHA + NOKX + NOMB +1, I = 1, NVPR, J = 1, NVDP,

> 1\. TCVBF(J,I,K) = Time of J-th data point in I‑th incoming
> concentration/ temperature versus time profile for K‑th component (T).
>
> 2\. CVBF(J,I,K) = Concentration (K ≤ NOHA + NOKX + NOMB) or
> temperature (K = NOHA + NOKX + NOMB + 1) of J-th data point in I‑th
> incoming concentration/temperature versus time profile for K‑th
> component: (moles/liter or ^o^K).
>
> \(b\) Incoming concentration/temperature profile type assigned to
> variable-boundary sides: Typically, one line per well node is needed.
> However, automatic generation may be used. Each line is free-field
> format input containing the following:
>
> 1\. MI = Compressed variable-boundary side number of the first side in
> a sequence.
>
> 2\. NSEQ = NSEQ subsequent sides will be generated automatically.
>
> 3\. MIAD = Increment of the compressed variable-boundary element side
> number for each of the NSEQ subsequent sides.
>
> 4\. MITYP = Type of incoming concentration profile assigned to side
> MI.
>
> 5\. MTYPAD = Increment of the type of incoming concentration profile
> for each of the NSEQ subsequent sides.

**NOTE**: A line containing five zeros separated by spaces or commas is
used to end the

input of this data subset.

> \(c\) Global nodal number of NVNP variable-boundary condition nodes:
> Typically, NVNP lines are needed. However, automatic generation can be
> used. This group of data is needed for two- and three-dimensional
> problems only. Each line is free-field format input containing the
> following:
>
> 1\. NI = Compressed variable-boundary node number of the first node in
> a sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will be generated automatically.
>
> 3\. NIAD = Increment of the compressed variable-boundary node number
> for each of the NSEQ subsequent sides.

4\. NODE = Global node of the compressed node NI.

> 5\. NODEAD = Increment of NODE for each of the NSEQ subsequent nodes.

**NOTE**: A line containing five zeros separated by spaces or commas is
used to end the

input of this data subset.

(d) Specification of variable-boundary sides: The formats for one-,
    two-, and three-dimensional problems are slightly different.

> [One-Dimensional Problems:]{.underline}
>
> One or two integer numbers specifying the elements associated with the
> ends of the domain are required.

1\. MVES(1) = global element number of the first variable boundary side
(=1 or NEL).

2\. MVES(2) = global element number of the second variable boundary side

(=1 or NEL).

[Two-Dimensional Problems:]{.underline}

> Typically, NVES lines are required, one each for a variable-boundary
> element side. However, if a group of variable-boundary element sides
> appears in a regular pattern, automatic generation may be used. Each
> line is free-field format input containing the following:
>
> 1\. MI = Compressed variable boundary element‑side number of the first
> element side in a sequence.
>
> 2\. NSEQ = NSEQ subsequent variable-boundary element sides will be
> generated automatically.
>
> 3\. M = Global element number to which the MI‑th element side belongs.
>
> 4\. IS1 = Compressed variable-boundary nodal number of the first node
> of element side MI.
>
> 5\. IS2 = Compressed variable-boundary nodal number of the second node
> of element side MI.
>
> 6\. MIAD = Increment of MI for each of the NSEQ subsequent
> variable-boundary element sides.
>
> 7\. MAD = Increment of M for each of the NSEQ subsequent
> variable-boundary element sides.
>
> 8\. IS1AD = Increment of IS1 for each of the NSEQ subsequent
> variable-boundary element sides.
>
> 9\. IS2AD = Increment of IS2 for each of the NSEQ subsequent
> variable-boundary element sides.

**NOTE**: A line with nine zeros separated by spaces or commas is used
to end the

input of this data subset.

> [Three-Dimensional Problems:]{.underline}
>
> Normally, NVES records are required, each for a variable boundary (VB)
> element side. However, if a group of variable boundary sides appears
> in a regular pattern, automatic generation may be made. Each record,
> in free format, contains the following variables.

1\. MI = Compressed VB element side number of the first element side in
a sequence.

2\. NSEQ = NSEQ subsequent VB element sides will be generated
automatically.

3\. M = Global element number of the element associated with the VB
element side.

4\. I1 = Compressed node number of the first node of element side MI.

5\. I2 = Compressed node number of the second node of element side MI.

6\. I3 = Compressed node number of the third node of element side MI.

7\. I4 = Compressed node number of the fourth node of element side MI.

8\. MIAD = Increment of MI for each of the NSEQ subsequent VB element
sides.

9\. MAD = Increment of M for each of the NSEQ subsequent VB element
sides.

10\. I1AD = Increment of I1 for each of the NSEQ subsequent VB element
sides.

11\. I2AD = Increment of I2 for each of the NSEQ subsequent VB element
sides.

12\. I3AD = Increment of I3 for each of the NSEQ subsequent VB element
sides.

13\. I4AD = Increment of I4 for each of the NSEQ subsequent VB element
sides.

**NOTE**: A blank line with 13 0\'s must be used to signal the end of
this subset.

**DATA SET 15: DIRICHLET BOUNDARY CONDITIONS**

This data set is required if and only if NDNP \> 0. Boundary conditions
must be specified for all mobile components (i.e. those with INDTC(I,1)
= 0 or 1), for all kinetic aqueous complexed product species, for all
aqueous phase microbial species, and for temperature if ISHEAT \> 0.
(NDNP is specified in Data Set 12; INDTC is specified in Data Set 10).

Data groups (a) and (b), together and in sequence as a supergroup,
should be repeated (NOHA + NOKX + NOMB) times for simulations without
heat transfer or (NOHA + NOKX + NOMB + 1) times for simulations with
heat transfer (i.e., ISHEAT \> 0). The program checks INDTC(I,1) for
each of the NOH components, and only reads a boundary condition if
INDTC(I,1) ≤ 1.

> \(a\) Dirichlet concentration profile: Number of lines depends on
> NDPR, NDDP, and NOHA + NOKX + NOMB. Each line contains a number of
> data points = 2\*NDDP numerical numbers. Each line is free-field
> format input. For a transport component and temperature, the sequence
> of input goes by a (time, concentration/temperature) pair that is
> repeated until all the NDDP pairs are entered. This sequence of input
> is then repeated for the next component and/or temperature.

For K=1, NOHA + NOKX + NOMB +1, I = 1, NDPR, J = 1, NDDP,

> 1\. TCDBF(J,I,K) =Time of J-th data point in I‑th Dirichlet
> concentration/ temperature versus time profile for K‑th component (T).
>
> 2\. CDBF(J,I,K) = Concentration (K ≤ NOHA + NOKX + NOMB) or
> temperature (K = NOHA + NOKX + NOMB+1) of J-th data point in the I‑th
> Dirichlet concentration/temperature versus time profile for K‑th
> component: (moles/kg or ^o^K).
>
> \(b\) Type of Dirichlet node Typically, one line per well node is
> needed. However, automatic generation may be used. Each line is
> free-field format input containing the following:
>
> 1\. NI = Compressed Dirichlet node number of the first node in the
> sequence.
>
> 2\. NSEQ = NSEQ subsequent Dirichlet nodes will be generated
> automatically.
>
> 3\. NAD = Increment of compressed Dirichlet node number for each of
> the NSEQ nodes.
>
> 4\. NITYP = Type of Dirichlet concentration profile for node NI and
> the NSEQ subsequent nodes.
>
> 5\. NTYPAD = Increment of NITYP for each of the NSEQ subsequent nodes.

**NOTE**: A line with five zeros separated by spaces or commas must be
used to signal

the end of this data subset.

> \(c\) Dirichlet nodes: Typically, NDNP lines are needed. However,
> automatic generation can be used. Each line is free-field format input
> containing the following:
>
> 1\. NI = Compressed Dirichlet boundary node number of the first node
> in a sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will be generated automatically.
>
> 3\. NIAD = Increment of the compressed Dirichlet boundary node number
> for each of the NSEQ subsequent sides.
>
> 4\. NODE = Global node of the compressed node NI.
>
> 5\. NODEAD= Increment of NODE for each of the NSEQ subsequent nodes.

**NOTE**: A line containing five zeros separated by spaces or commas is
used to end the

input of this data subset.

**DATA SET 16: VELOCITY, MOISTURE CONTENT, AND LIQUID DENSITY**

The first two data subsets (velocity and moisture content) are needed
only if KVI ≤ 0. If KVI \> 0, the velocity and moisture data will be
read via Logical Unit 11. (KVI is specified in Data Set 2).

> \(a\) Velocity field: Normally, one line per node is needed. However,
> automatic generation can be used if there is a pattern. Format varies
> slightly among one-, two-, and three-dimensional problems in this
> group of data.

[One-Dimensional Problems:]{.underline}

Each line is free-field format input containing five variables:

> 1\. NI = Node number of the first node in the sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will be automatically generated.
>
> 3\. NAD = Increment of node number in each of the NSEQ subsequent
> nodes.
>
> 4\. VXNI = x‑velocity component of node NI (L/T).
>
> 5\. VXAD = Increment of x‑velocity for each of the NSEQ subsequent
> nodes (L/T).

**NOTE**: A line with five zeros separated by spaces or commas signals
the end of

this data subset.

[Two-Dimensional Problems:]{.underline}

Each line is free-field format input containing seven variables:

> 1\. NI = Node number of the first node in the sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will be automatically generated.
>
> 3\. NAD = Increment of node number in each of the NSEQ subsequent
> nodes.
>
> 4\. VXNI = x‑velocity component of node NI (L/T).
>
> 5\. VZNI = z‑velocity component of node NI (L/T).
>
> 6\. VXAD = Increment of x‑velocity for each of the NSEQ subsequent
> nodes (L/T).
>
> 7\. VZAD = Increment of z‑velocity for each of the NSEQ subsequent
> nodes (L/T).

**NOTE**: A line with seven zeros separated by spaces or commas signals
the end of

this data subset.

[Three-Dimensional Problems:]{.underline}

Each line is free-field format input containing nine variables:

> 1\. NI = Node number of the first node in the sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will be automatically generated.
>
> 3\. NAD = Increment of node number in each of the NSEQ subsequent
> nodes.
>
> 4\. VXNI = x‑velocity component of node NI (L/T).
>
> 5\. VYNI = y‑velocity component of node NI (L/T).
>
> 6\. VZNI = z‑velocity component of node NI (L/T).
>
> 7\. VXAD = Increment of x‑velocity for each of the NSEQ subsequent
> nodes (L/T).
>
> 8\. VYAD = Increment of y‑velocity for each of the NSEQ subsequent
> nodes (L/T).
>
> 9\. VZAD = Increment of z‑velocity for each of the NSEQ subsequent
> nodes (L/T).

**NOTE**: A line with seven zeros separated by spaces or commas signals
the end of

this data subset.

> \(b\) Moisture content field: Typically, one line per element is
> needed. However, automatic generation can be used if there is a
> pattern. Each line is free-field format input containing five
> variables:
>
> 1\. NI = Element number of the first element in the sequence.
>
> 2\. NSEQ = NSEQ subsequent elements will have the moisture content
> automatically generated.
>
> 3\. NAD = Increment of element number for each of the NSEQ subsequent
> elements.
>
> 4\. THNI = Moisture content of element NI (decimal point).
>
> 5\. THNIAD = Increment of moisture content for each of the NSEQ
> subsequent elements (decimal point).

**NOTE**: A line with five zeros separated by spaces or commas signals
the end of

this data subset.

> **NOTE**: If KVI \> 0, Logical Unit 11, instead of the listed format
> above, will be used for hydrological condition input. The hydrological
> data must be written by a Fortran program into an unformatted file
> with this set of WRITE statements:

CHARACTER TITLEM\*70

INTEGER NPROBM,NNPB,NELB,NBNP,NBES,NTIM

REAL\*8 (A-H,O-Z)

WRITE(11) TITLEM,NPROBM,NNPB,NELB,NBNP,NBES,NTIM

WRITE(11) (X(N),N=1,NNP),(Y(N),N=1,NNP),(Z(N),N=1,NNP),

& ((IE(M,I),M=1,NEL),I=1,9)

WRITE(11) TIMEM,(H,NP=1,NNP),(HT,NP=1,NNP),

& ((TH(IQ,M),IQ=1,8),M=1,NEL),

& (VDCY(NP,1),NP=1,NNP),(VDCY(NP,2),NP=1,NNP),

& (VDCY(NP,3),NP=1,NNP)

> For KVI = 2 (transient flow field), the last statement has to be
> repeated (NTI + 1) times (initial conditions and the flow field for
> each time step). NTI is defined in data set 2.
>
> \(c\) Liquid density field: Typically, one line per node is needed.
> However, automatic generation can be used. Each line is free-field
> format input containing six variables:
>
> 1\. NI = Node number of the first node in the sequence.
>
> 2\. NSEQ = NSEQ subsequent nodes will have liquid density
> automatically generated.
>
> 3\. NAD = Increment of the node number for each of the NSEQ subsequent
> nodes.

4\. RHOLNI = Liquid density at node NI (M/L^3^).

> 5\. RHOLAD = Incremental increase of the liquid density for each of
> the NSEQ subsequent nodes (M/L^3^).
>
> 6\. RHOLRD = Percent increase of the increment over its preceding
> increment (decimal fraction).

**NOTE**: A line containing six zeros separated by spaces or commas must
be used to

signal the end of the this data subset.

**DATA SET 17: NUMBER OF COMPONENTS AND PRODUCT SPECIES**

One line (FREE FORMAT) contains 6 variables as follows:

1\. NONA = Number of aqueous components.

> 2\. NONS = Number of adsorbent components.

3\. NOMX= Number of complexed species.

4\. NOMY= Number of adsorbed species.

5\. NOMZ = Number of ion-exchanged species.

6\. NOMP = Number of species subject to precipitation/dissolution.

**DATA SET 18: H^+^, e^-^, AND IONIC STRENGTH CORRECTION INFORMATION**

One line (FREE FORMAT) contains the following five variables:

1\. SICOR = User\'s specified ionic strength for computing activity
coefficients. (This will be used as a constant ionic strength if the
user sets ICOR = 1 below).

2\. ICOR = Is ionic strength used to correct activity coefficient?

0 = no,

1 = constant ionic strength is used (value specified by the user above),

2 = variable ionic strength is used (as calculated by the program).

3\. LNH = Location of the component H^+^ among component list (in Data
Sets 23 and 24), 0 if not present.

4\. LNG = Location of the gas component among component list (in Data
Sets 23 and 24), 0 if not present.

5\. LNE = Location of the component e^-^ among component list (in Data
Sets 23 and 24), 0 if not present.

**DATA SET 19: TEMPERATURE, PRESSURE, AND EXPECTED pe AND pH**

Two lines per problem are required.

*Line 1* (FREE FORMAT) contains the following information:

1\. TEMP = Absolute temperature in Kelvin (^o^K).

2\. PRESU = Pressure in ATM.

*Line 2* (FREE FORMAT) contains the following information:

1\. PEMN = Expected minimum pe.

2\. PEMX = Expected maximum pe.

3\. PHMN = Expected minimum pH.

4\. PHMX = Expected maximum pH.

**DATA SET 20: ADSORPTION INFORMATION**

This data set is needed if and only if NONS \> 0. (NONS, the number of
adsorbent components, is specified in Data Set 17). This data set
contains information for NSORB adsorbing sites, which is divided into
three data groups.

> \(a\) Sorbing sites and model: One line containing the following two
> variables:

1\. NSORB = Number of adsorbing sites.

2\. IADS = Adsorption model index:

0 = simple surface complexation,

1 = constant capacitance model,

2 = triple layer model.

**Note**: If IADS = 0, NONS = 1 x NSORB

If IADS = 1, NONS = 2 x NSORB

If IADS = 2, NONS = 3 x NSORB

> \(b\) Adsorbent locations: Total number of lines in this subset is
> NSORB. Each line contains the following two variables, for I = 1,
> NSORB:

1\. LNOA(I) = Location of the exp(-e\*psio/kt) component in the
component list for the I-th adsorbing site. (Components are listed in
Data Sets 23 and 24).

2\. LNBA(I) = Location of the exp(-e\*psib/kt) component in the
component list for the I-th adsorbing site. (Components are listed in
Data Sets 23 and 24).

> \(c\) Double/triple layer capacitance and surface area: The total
> number of records in this subset is NMAT, each may contain multiple
> lines. Each record contains the following variables, for J = 1, NSORB
> , I = 1, NMAT:

1\. CAP1M(J,I) = Capacitance between the surface and \"o\" plane,
(Faraday/L^2^) for the J-th adsorbing site in material I,

2\. CAP2M(J,I) = Capacitance between the \"o\" plane and \"b\" plane,
(Faraday/L^2^) for the J-th adsorbing site in material I,

3\. SREAM(J,I) = Surface area of the J-th adsorbing site in material I,
(L^2^/M of solid).

**DATA SET 21: ION-EXCHANGE INFORMATION**

This data set is needed only if NOMZ \> 0. (NOMZ, the number of
ion-exchanged species, is specified in Data Set 17). This set reads
information of ion exchange information for NSITE exchange sites. Three
groups of data are needed.

> \(a\) Ion-exchange sites: containing the following one variable:

1\. NSITE = Number of ion-exchange sites.

> \(b\) Ion-exchange species: The total number of lines in this subset
> is NSITE. Each line contains the following two variables for the I-th
> site for I = 1, NSITE:

1\. NOMZI(I) = Number of ion-exchanged species participating in
reactions at the I-th exchanged site.

2\. LNI(I) = Indicator for the \"reference\" ion-exchange species for
the I-th site. It gives the location of this \"reference\" species on
the ion-exchanged species list.

> \(c\) Ion-exchange capacity: The total number of records in this
> subset is NMAT, each may include multiple lines. Each record contains
> the following variables, for J = 1, NSITE, J = 1, NMAT,

1\. CECM(J,I) = Ion-exchange capacity (equivalents per unit mass of
solid) for the J-th site in material I.

DATA SET 22: BASIC REAL AND INTEGER PARAMETERS FOR BIOGEOCHEMISTRY
CALCULATIONS

One line of unformatted input contains the following 6 variables.

1\. OMEGAC = relaxation parameters for iteration:

0 \~ 1 = under-relaxation,

1 = exact relaxation,

1 \~ 2 = over-relaxation.

2\. NPCYL = number of cycles allowed for iterating
precipitation-dissolution. (Set NPCYL = 1 if precipitation-dissolution
is not present in the simulation).

3\. NITERC = number of iterations allowed.

4\. EPSC = error tolerance for iteration.

5\. CNSTRNX = a factor for the constraint on complexed species
concentration. No complexed species concentration would yield a total
component concentration greater than CNSTRNX times of the input total
component concentration.

6\. CNSTRNY = a factor for the constraint on adsorbed species
concentration. No adsorbed species concentration would yield a total
component concentration greater than CNSTRNY times of the input total
component concentration.

7\. IPIV = option for pivoting for solution of the Newton-Raphson matrix
equations.

1 = full pivoting.

2 = partial pivoting.

**DATA SET 23: NAMES AND TYPES OF CHEMICAL COMPONENT SPECIES**

For each component, two lines are needed.

*Line 1* - FORMAT(A20,\*)

1\. CNAM(J,2) = Component name of the J-th component.

*Line 2* - free format, containing two variables.

1\. INDTC(J,2) = Type of the J-th component species,

1 = mobile aqueous species, e.g., Ca^2+^,

2 = immobile adsorbent species, e.g., SOH

3 = fictitious species, e.g., sigmao or sigmab

4 = mobile adsorbent species, e.g. colloid component species

2\. IFCS = Indicator for free component species:

0 = free component species subject to transport.

1 = free component species not subject to transport.

**DATA SET 24: COMPONENT SPECIES AND THEIR ION-EXCHANGED SPECIES**

For each component species, either two lines or (2 + 3\*IONEX) lines are
needed, depending on whether the species participates in ion-exchange
reactions. If the species does not participate in ion-exchange
reactions, two lines are needed for the species. If the species is
involved in IONEX sites of ion-exchanged reactions, (2+3\*IONEX) lines
are needed for the species.

Data for the NONA aqueous components should be listed first, then for
the NONS adsorbent components. (NONA and NONS are specified in Data Set
17). All information relating to one component species is input (either
2 or (2+3\*IONEX) lines), then the information for the next component
species. Components should be entered in the same order used in Data Set
23.

*Line 1*: FORMAT(A20)

1\. SPECN(I) = Name of the I-th component species.

*Line 2*: Free format. This line contains three variables:

1\. ISCN(I) = Indicator of the I-th species concentration:

0 = Species concentration or activity will be computed.

3 = Species concentration or activity is fixed.

2\. VJ(I) = Charge of the I-the component species.

3\. IONEX = Integer indicating the number of ion exchange sites to which
this component species participates:

> 0 = This component species does not participate in any ion exchange
> reaction.
>
> IONEX = This component species participates in IONEX ion exchange
> reactions.

The following data subset is needed for a component species only if
IONEX is not equal to zero. When IONEX is not equal to 0, this subset is
repeated IONEX times. For each of the IONEX ion exchange sites on which
this component species is involved in ion-exchange reactions, the
following three records are needed.

For k = 1, IONEX

*Record 1* - This record contains the following variable in one single
line:

1\. J = This species participates in the J-th ion exchange site\'s
reaction.

*Record 2* - FORMAT(A20): This record contains the following variable in
one single line:

1\. SPECN(II) = Name of the II-th ion-exchanged species resulted from
the I-th component species involving in the J-th ion exchange site
reaction.

**NOTE**: II is internally arranged according to the order of ion
exchange site.

*Record 3* - Free Format. This record contains the following variables,
which may occupy multiple lines:

1\. ISCN(II) = Indicator of the II-th ion-exchanged species
concentration:

0 = species concentration is to be computed,

3 = species concentration is fixed.

2\. AXYZP(IPD,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th ion exchange species for use in mass action,
where IPD=II-NON.

3\. BXYZP(IPD,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th ion exchange species for use in mole
balance, where IPD=II-NON.

**DATA SET 25: COMPLEXED SPECIES AND THEIR ION-EXCHANGED SPECIES**

This data set is needed only if NOMX \> 0. For each complexed species,
either two lines or (2 + 3\*IONEX) lines are needed, depending on
whether the species participates in ion-exchange reactions. If the
species does not participate in ion-exchange reactions, two lines are
needed for the species. If the species is involved in IONEX sites of
ion-exchanged reactions, (2+3\*IONEX) lines are needed for the species.
NOMX, the number of aqueous complexed species, is specified in Data Set
17.

*Line 1*: FORMAT(A20)

1\. SPECN(II) = Name of the II-th species or the I-th complexed species.

*Line 2*: Free format contains the following variables, which may occupy
multiple lines:

1\. ISCN(II) = Indicator of the II-th species concentration:

0 = Species concentration will be computed.

3 = Species concentration is fixed.

2\. AXYZP(I,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the I-th complexed species, for use in mass action
equation.

3\. IONEX = Integer indicating the number of ion exchange sites on which
this complexed species participates in ion-exchange reactions:

> 0 = This complexed species does not participate in any ion exchange
> reaction.
>
> IONEX = This complexed species participates in IONEX ion exchange
> reactions.

4\. BXYZP(I,J), J = 1, NON, is the stoichiometric coefficient of the
first component in the I-th

complexed species, for use in mole balance equation.

The following data subset is needed for this aqueous complexed species
only if IONEX is not equal to zero. When IONEX is not equal to 0, this
subset is repeated IONEX times. For each of the IONEX ion-exchange sites
on which this aqueous complexed species is involved in ion-exchange
reactions, the following three records are needed to read ion exchanged
species information.

For k = 1, IONEX

*Record 1* - This record contains the following variable in one single
line:

1\. J = This complexed species participates in the J-th ion exchange
site\'s reaction.

*Record 2* - FORMAT(A20): contains the following variable in one single
line:

1\. SPECN(II) = Name of the II-th ion-exchanged species resulted from
the I-th complexed species involving in the J-th ion exchange site
reaction.

**NOTE**: II is internally arranged according to the order of
ion-exchange sites.

*Record 3* - Free Format. This record contains the following variables,
which may occupy multiple lines.

1\. ISCN(II) = Indicator of the II-th ion-exchanged species
concentration:

0 = species concentration is to be computed,

3 = species concentration is fixed.

2\. AXYZP(IPD,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th ion exchange species for use in mass action,
where IPD=II-NON.

3\. BXYZP(IPD,J), J = 1, NON, is the stoichiometric coefficient of the
first component in the II-th ion-exchange species for use in mole
balance, where IPD=II-NON.

**DATA SET 26: ADSORBED SPECIES**

This data set is needed only if NOMY \> 0. Two records per adsorbed
species are needed. NOMY, the number of adsorbed species, is specified
in Data Set 17).

*Record 1* - FORMAT(A20), contains one variable in one single line:

1\. SPECN(II) = Name of the II-th species or the I-th adsorbed species.

*Record 2* - Unformatted input containing the following variables that
may occupy multiple lines:

1\. ISCN(II) = Indicator of the II-th species concentration:

0 = species concentration is to be computed,

3 = species concentration is fixed.

2\. AXYZP(II,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th product species or in the I-th adsorbed
species, for use in mass action equation.

3\. BXYZP(II,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th product species or in the I-th adsorbed
species, for use in mole balance equation.

**DATA SET 27: PRECIPITATED/DISSOLVED SPECIES**

This data set is needed only if NOMP \> 0. Three records per
precipitated species are needed. NOMP, the number of precipitated
species, is specified in Data Set 17.

*Record 1* - FORMAT(A20), containing one variable in one single line:

1\. SPECN(II) = Name of the II-th product species or the I-th
precipitated/dissolved species.

*Record 2* - Unformatted input containing the following variables that
may occupy multiple lines:

1\. ISCN(II) = Indicator of the II-th species concentration:

0 = species concentration is to be computed,

3 = species concentration is fixed.

2\. PKIPD = Log10 of the equilibrium formation constant for the I-th
precipitated species.

3\. AXYZP(II,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th product species or in the I-th
precipitated/dissolved species, for use in mass action equation.

4\. BXYZP(II,J), J = 1, NON, is the stoichiometric coefficient of the
J-th component in the II-th product species or in the I-th
precipitated/dissolved species, for use in mole balance equation.

*Record 3* - Enthalpy of precipitation/dissolution reactions, contained
in one single line. This record is needed if and only if ISHEAT
(specified in DATA SET 6a) \> 0.

1\. ENTHPYPR(II) = The enthalpy of the I-th precipitation/dissolution
reaction that creates the II-th product species at the reference
temperature TEMPREF specified in data set 6b (ML^2^/T^2^).

**DATA SET 28: MICROBIAL SPECIES**

This data set is needed only if NOMB or NOMA \> 0. For each species, two
lines are needed. The NOMB aqueous microbial species should be listed
first, then the NOMA adsorbed microbial components. (NOMB and NOMA are
specified in Data Set 10).

*Line 1* - FORMAT(A20, I5)

1\. SPECN(II) = Name of the II-th species.

*Line 2* - (FREE FORMAT) contains the following variables:

1\. ISCN(II) = Indicator of the II-th species concentration,

0 = species concentration is to be computed.

3 = species concentration is fixed.

> 2\. PKD = Log10 of the death/decay constant of the I-th microbial
> species.
>
> 3\. NER = Number of chemical species affected by endogenous
> respiration of this microbial species.

The following lines are needed only if NER \> 0. Two lines are needed
for each of the J = 1, NER species affected by endogenous respiration.

*Line 1* - (FREE FORMAT) contains the following variable,

> 1\. IGER(II,J) = global species number of the J-th chemical species
> affected by endogenous respiration of the II-th microbial species.

*Line 2* - (FREE FORMAT) contains the following variables,

> 1\. ERAIJ = stoichiometric coefficient for use of the J-th chemical
> species due to maintenance/decay processes of this microbial species.
>
> 2\. ERKIJ = half saturation constant for the J-th chemical species in
> the maintenance/decay processes of this microbial species.

**DATA SET 29: REACTION DATA**

Equilibrium chemical reactions involving aqueous complexation,
adsorption or precipitation may involve as many reactants as necessary
but must be written as the formation of only one equilibrium product
species. Each equilibrium product species may participate in only one
equilibrium reaction.

Ion exchange (IE) reactions, whether equilibrium or kinetic, must have
one aqueous species and one ion exchanged species both as reactants and
as products. The reactant ion exchanged species must be the reference
ion exchange species for the site involved, i.e.:

Aqueous Species + Reference IE Species ↔ New Aqueous Species + New IE
Species

All other kinetic chemical reactions may involve any species as
reactants or products.

Microbiological reactions may involve any chemical species as reactants
and products. One reactant may be identified as the substrate, one as
the electron acceptor, one as the nutrient, and one as the inhibitor for
use in the Monod kinetic expressions.

One line is needed specifying the number of mixed kinetic/equilibrium
reactions in the simulation.

*Line 1* - (FREE FORMAT) contains the following variable:

1\. NRXN = The number of kinetic/equilibrium reactions in this
simulation.

The following subset is needed only if NRXN is greater than zero. For
each of the NRXN kinetic/equilibrium reactions four or five records are
needed.

*Record 1* - (FREE FORMAT) contains the following variables in one
single line:

1\. NRTS = The number of reactant species participating in this kinetic
reaction.

2\. NPDS = The number of product species participating in this kinetic
reaction.

3\. KRTYP(I) = Kinetic reaction type of the I-th reaction.

0 = Equilibrium reaction.

1 = Kinetic chemical reaction.

2 = Monod kinetic microbial reaction.

3 = Microbial phase transfer reaction.

*Record 2* - (FREE FORMAT) contains variables in one of the following
three subsets, in one single line:

(a) [KRTYP(I) = 0]{.underline}, *equilibrium reaction*,

1\. PEQK = Log10 of the equilibrium constant for this reaction.

(b) [KRTYP(I) = 1 or 3]{.underline}, *kinetic reaction or microbial
    phase transformation*,

1\. PBK = Log10 of the backward rate constant for this kinetic reaction.

2\. PFK = Log10 of the forward rate constant for this kinetic reaction.

(c) [KRTYP(I) = 2]{.underline}, *microbial reaction* (Monod kinetics),

1\. GRMAXK = maximum specific growth rate of the i-th reaction, μ~max~,
(1/T).

2\. HSCS = half saturation constant for the substrate in the i-th
reaction, K~S~,

mass/mass of phase (M/M). (If the substrate availability is not to be

incorporated in the Monod kinetic expressions for this reaction, set =
0).

3\. HSCA = half saturation constant for the electron acceptor in the
i-th reaction, K~A~,

mass/mass of phase (M/M). (If electron acceptor availability is not to
be

incorporated in the Monod kinetic expressions for this reaction, set =
0).

4\. HSCN = half saturation constant for the nutrient in the i-th
reaction, K~N~,

mass/mass of phase (M/M). (If nutrient availability is not to be

incorporated in the Monod kinetic expressions for this reaction, set =
0).

5\. LOCS = reactant number which is the substrate in the i-th reaction.
(Set = 0 if not used).

> 6\. LOCA = reactant number which is the electron acceptor in the i-th
> reaction. (Set = 0 if not used).

7\. LOCN = reactant number which is the nutrient in the i-th reaction.
(Set = 0 if not used).

> 8\. TAUL = lag time for the i-th reaction.
>
> 9\. TAUE = time to reach exponential growth for the i-th reaction.

*Record 3* - (FREE FORMAT) contains the following variables that may
occupy multiple lines:

1\. CXYZP(I,J), J = 1, NRTS, is the stoichiometric coefficient of the
J-th reactant species in the I-th reaction.

2\. DXYZP(I,J), J = 1, NPDS, is the stoichiometric coefficient of the
J-th product species in the I-th reaction.

*Record 4* - (FREE FORMAT) contains the following variables that may
occupy multiple lines:

1\. IGSNRT(I,J), J = 1, NRTS, is the global species number of the J-th
reactant species in the I-th reaction.

2\. IGSNPD(I,J), J = 1, NPDS, is the global species number of the J-st
product species in the I-th reaction.

*Record 5* - Enthalpy of equilibrium/kinetic reactions: this record, in
one single line, is needed only if ISHEAT (DATA SET 6a) \> 0 and
KRTYP(I) = 0 or 1.

1\. ENTHPY(I) = The enthalpy of the I-th reaction at the reference
temperature TEMPREF specified in data set 6b (ML^2^/T^2^).

**NOTE**: The total, or global, number of species in the simulation is
NONA + NONS + NOMX + NOMY + NOMZ. + NOMP + NOMB + NOMA. (All specified
in Data Set 17). These species are stored in the following order:

[Global Species Number:]{.underline}

NONA aqueous component species 1 through NONA

NONS adsorbent component species (NONA + 1) through (NONA + NONS)

NOMX aqueous complexed species (NONA + NONS + 1) through

(NONA + NONS + NOMX)

NOMY adsorbed species (NONA + NONS + NOMX + 1) through

(NONA + NONS + NOMX + NOMY)

NOMZ ion-exchange species (NONA + NONS + NOMX + NOMY + 1)

> through (NONA + NONS + NOMX + NOMY + NOMZ)

NOMP precipitated species (NONA + NONS + NOMX + NOMY + NOMZ

> \+ 1) through (NONA + NONS + NOMX + NOMY + NOMZ + NOMP)

NOMB aqueous phase microbial species (NONA + NONS + NOMX + NOMY + NOMZ +

> NOMP + 1) through (NONA + NONS + NOMX + NOMY + NOMZ + NOMP + NOMB)

NOMA adsorbed phase microbial species NONA + NONS + NOMX + NOMY + NOMZ +

> NOMP + NOMB + 1) through (NONA + NONS + NOMX + NOMY + NOMZ + NOMP +
> NOMB + NOMA)

Within the NONA, NONS, NOMX, NOMY, NOMP, NOMB, and NOMA groups of
species, the species are stored in the same order in which they are
input. Within the NOMZ group of species, the ion exchanged species are
internally rearranged and are stored in order first by ion exchange site
and then by the order of the aqueous species corresponding to the ion
exchange species at that site.

**DATA SET 30: END-OF-JOB LINE**

A blank line must be used to signal the end of the job.