SOLMINEQ.88: A COMPUTER PROGRAM FOR · PDF filePREFACE This report describes the theoretical...
Transcript of SOLMINEQ.88: A COMPUTER PROGRAM FOR · PDF filePREFACE This report describes the theoretical...
SOLMINEQ.88: A COMPUTER PROGRAM FOR GEOCHEMICAL
MODELING OF WATER-ROCK INTERACTIONS
* ** By Yousif K. Kharaka, William D. Gunter, Pradeep K. Aggarwal,
kErnest H. Perkins , and Jeffrey D. DeBraal
U.S. GEOLOGICAL SURVEY
Water-Resources Investigations Report 88-4227
Alberta Research Council
Oil Sands and Hydrocarbon Recovery Department
Edmonton, Alberta, Canada
Battelle Memorial Institute
Columbus, Ohio
Menlo Park, California
1988
DEPARTMENT OF THE INTERIOR
DONALD PAUL HODEL, Secretary
U.S. GEOLOGICAL SURVEY
Dallas L. Peck, Director
For additional information
write to:
Copies of this report can
be purchased from:
U.S. Geological Survey
345 Middlefield Road MS #427
Menlo Park, CA 94025
U.S. Geological Survey
Books and Open-File Reports
Box 25425
Bldg. 810 Federal Center
Denver, CO 80225
PREFACE
This report describes the theoretical aspects, the modeling capabilities
and the limitations of the geochemical computer code SOLMINEQ.88. This code
is the latest version of SOLMNEQ (Kharaka and Barnes, 1973), SOLMNEQF
(Aggarwal and others, 1986), and several unpublished versions of this software
package. The computer program can be used to model speciation, saturation,
dissolution/precipitation, ion exchange/adsorption, mixing, boiling, and gas
partitioning between water, oil, and gas phases. The program is comprehensive
but it is especially useful for modeling water-rock interactions in
sedimentary basins where high temperatures, pressures, salinities, and
dissolved organic species prevail.
The user is requested to kindly notify the originating office of any
errors found in this report or in the computer program. Updates may
occasionally be made to both the report and the program. Users who wish to
receive a copy of the computer program and report may send a request to the
following addresses:
Y. K. Kharaka
U.S. Geological Survey
345 Middlefield Road, Mail Stop 427
Menlo Park, CA 94025
Telephone: (415) 329-4535
W. D. Gunter
Alberta Research Council
Oil Sands and Hydrocarbon Recovery Department
P.O. Box 8330, Postal Station F
1021 Hayter Road
Edmonton, Alberta, Canada T6H 5X2
(Alberta Research Council Open File Report #1988-14)
The use of brand or product names in this report is for identification
purposes only and does not imply endorsement by the U.S. Geological Survey.
CONTENTSPage
Abstract .................................................... 7Introduction ................................................ 8
Acknowledgment .......................................... 9Method of computation ....................................... 14
Oxidation-reduction reactions ........................... 26Speciation at subsurface conditions ..................... 27Iteration techniques .................................... 29Saturation states of minerals ........................... 31
Activity and activity coefficients .......................... 44Activity coefficients for neutral species ............... 45Activity coefficients for charged species ............... 46Pitzer equations ........................................ 49
Equilibrium constants ....................................... 54Equilibrium constants at desired temperature ............ 57Equilibrium constants at desired pressure ............... 58
Correction of the solubility constants for pressure . 58Correction of dissociation constants for pressure ... 61
Modeling options ............................................ 63Calculations with a constant mass ...................... 63
Carbon option ....................................... 63High-temperature carbon option ...................... 65pH option ........................................... 65Additional anlons option ............................ 66Additional cation option ............................ 70Additional minerals option .......................... 70
Calculations involving mass transfer .................... 71Addition of lost gases .............................. 71Boiling option ...................................... 77Mixing of two solutions option ...................... 79Dissolution/precipitation option .................... 79Ion exchange and adsorption option .................. 82
Limitations of geochemical modeling ......................... 86Physical parameters ..................................... 86Chemical analysis ....................................... 89Equilibrium constants ................................... 92Limitations of modeling options ......... t ............... 93
Input for SOLMINEQ.88 ....................................... 96Output from SOLMINEQ.88 ..................................... 108References .................................................. 110
APPENDIXESPage
Appendix I. Data base ..................................... 121Table IA. Physical parameters of aqueous species. ... 122Table IB. Equilibrium constants of dissociation, and
redox reactions ....................... 125Table 1C. Equilibrium constants of dissolution
reactions at 0° to 350 °C.............. 135Table ID. Parameters for calculating activity
coefficients .......................... 142Table IE. Fit parameters for calculating the
equilibrium constants ................. 143Table IF. Data for calculating the effect of pressure 147 Table IG. Pitzer coefficients ....................... 148Table IH. Table of congruent dissolution of minerals 153
Appendix II. An abbreviated version of the interactive inputroutine ..................................... 157
Appendix III. Output examples ............................... 164Appendix IV. Listing of SOLMINEQ.88 ........................ 209
ILLUSTRATIONSPage
Figure 1. Pitzer and ion pair activity coefficients .... 502. Variation of solubility with pressure. ........ 603. Flow chart for SOLMINEQ.88 .................... 644. Distribution of organic species in oil field
waters ...................................... 675. Flow chart for calculations with addition of
gases ....................................... 726. Solubility constants of selected gases ........ 747. Average concentrations of aliphatic acid anions 90
TABLESPage
Table 1. Glossary of symbols used in text. ............. 102. Dissociation reactions for aqueous complexes .. 163. Congruent dissolution of minerals ............. 32
n4. Values of the Debye-Huckel coefficients ...... 485. Index numbers of user-defined anions and
cations ..................................... 696. List of aqueous species components ............ 807. Chemical geothermometers in SOLMINEQ.88 ....... 888. Arrangement of data for input to SOLMINEQ.88. . 105
CONVERSION FACTORS
Metric (International System) units £re used in this report. For
those readers who prefer to use inch-pound units, conversion factors for the
terms used in this report are listed below:
Multily metric unit by To obtain inch-pound unit
micrometer
centimeter
meter (m)
2 square centimeter (cm )
3 cubic centimeter (cm )
3 cubic meter (m )
liter (1)
microgram (/jg)
miligram (mg)
gram (g)
kilogram (kg)
miligram/liter (mg/1)
atmosphere (atm)
bar
kilopascal (kPa)
degree Celcius (°C)
degree Kelvin (K) (K
calorie (cal)
kilocalorie (kcal)
0.03937
0.3937
3.281
0.1550
0.06102
35.31
0.03531
mil
inch
foot (ft)
square inch
cubic inch
cubic feet
cubic feet
(in2
(in3 )
(ft3)
(ft3 )
1.543 x 10
1.543 x 10
2.205 x 10
2.205
-5
-2
-3
6.243 x 10" J
14.70
14.50
0.1450
1.8 °C + 32
- 273.15)1.8 + 32
3.968 x 10" 3
3.968
grain (gr)
grain (gr)
pound (Ib)
pound (Ib)
pound/cubic foot (lb/ft3 )
pounds per square inch (psi)
pounds per square inch (psi)
pounds per square inch (psi)
degree Fahrenheit (°F)
degree Fahrenheit (°F)
British thermal unit (Btu)
British thermal unit (Btu)
SOLMINEQ.88: A COMPUTER PROGRAM FOR GEOCHEMICAL MODELINGOF WATER-ROCK INTERACTIONS
by ft & &
Yousif K. Kharaka, William D. Gunter , Pradeep K. Aggarwal , fc
Ernest H. Perkins , and Jeffrey D. DeBraal
ABSTRACT
Geochemical modeling based on equilibrium and irreversible thermodynamics has, in the last 20 years, become a well recognized tool for understanding the processes of water-rock interactions and predicting their consequences. SOLMINEQ.88 is the latest version of the 1973-computer program code SOLMNEQ and its various updated versions. This program is general and comprehensive, but is particularly useful for modeling geochemical interactions in sedimentary basins and petroleum reservoirs where petroleum, aqueous organic species, and subsurface pressure play an important role.
SOLMINEQ.88 is written in FORTRAN-77 and has an improved algorithm over that in previous versions for faster execution. This version has a revised thermodynamic database, more inorganic (260) and organic (80) aqueous species and minerals (220), computes the activity coefficients in brines using Pitzer equations, and computes pH and mineral solubilities at subsurface temperatures (0° to 350° C) and pressures (1 to 1,000 bars). New modeling options in SOLMINEQ.88 can be used to study the effects of boiling, mixing of solutions and partitioning of gases between water, oil and gas phases. SOLMINEQ.88 has several mass transfer options that can be used to predict the effects of ion exchange, adsorption/desorption, and dissolution/precipitation of solid phases. A user-friendly interactive code SOLINPUT is available for use to generate and update the input file for SOLMINEQ.88.
The numerous assumptions and limitations of geochemical models like SOLMINEQ.88 are described in detail because they indicate the range of conditions where the models can be used successfully. The limitations may be related to incomplete and/or unreliable chemical and mineral data as well as to uncertainties in equilibrium constants for aqueous species and minerals. The modeling capabilities and the limitations of the various options in this code are described with output from selected examples.
Alberta Research CouncilOil Sands and Hydrocarbon Recovery DepartmentEdmonton, Alberta, Canada
Battelle Memorial Institute Columbus, Ohio
INTRODUCTION
Water-rock interactions in natural systems comprise a combination of
several physical and chemical processes, including (a) mineral dissolution and
precipitation; (b) ion exchange and adsorption/desorption; (c) mixing of
fluids; (d) gas separation by pressure-drawdown or boiling; and (e)
organic/inorganic interactions. In the last 20 years, geochemical modeling
based on equilibrium and irreversible thermodynamics has become a well
recognized tool for understanding the processes of water-rock interaction and
predicting their consequences. Numerous computer program codes are presently
available for geochemical modeling of water-r0ck interactions (Nordstrom and
others, 1979; Wolery, 1983; EPRI, 1984; Nordstrom andMunoz, 1985). The list
of commonly used programs is large and expanding; it includes the following
software packages:
1. PATHI and its modified versions (Helgeson and others, 1970;
Perkins, 1980).
2. SOLMNEQ and its modified versions (Kharaka and Barnes, 1973;
Aggarwal and others, 1986).
3. WATEQ and its modified versions (Truesdell and Jones, 1974;
Plummer and others, 1984; Ball and others, 1987).
4. MINEQL (Westall and others, 1976).
5. EQ3/EQ6 (Wolery, 1979; 1983; 1984).
6. PHREEQE (Parkhurst and others, 1980).
7. GEOCHEM (Sposito and Mattigod, 1980).
8. SOLVEQ (Reed, 1982).
9. MINTEQ (Felmy and others, 1984).
10. DYNAMIX (Narasimhan and others, 1986)
The computer program code SOLMNEQ (Kharaka and Barnes, 1973) was
originally written in PL/1 for the IBM 360 computers. The original program
computed the equilibrium distribution of 162 inorganic aqueous species
generally present in natural waters over the temperature range of 0° to
350 °C from the reported physical and chemical properties of the water and an
internally consistent set of thermodynamic data. The program also computed
the saturation states of 158 minerals commonly encountered in sedimentary
rocks. SOLMNEQ has undergone continuous updating, additions and
modifications. The additions and modifications were carried out to develop a
general comprehensive computer program for geochemical modeling of water-rock
interactions. This program, however, is particularly useful for modeling
interactions in sedimentary basins and in thermally stimulated oil reservoirs
where petroleum and aqueous organic species play an important role.
The present version, renamed SOLMINEQ.88 (SOLution MINeral Equilibrium.
198!8.) , is written in FORTRAN-77 and has an improved algorithm for faster
execution. This version has a revised thermodynamic data base, more inorganic
(260) and organic (80) aqueous species and minerals (220), and computes pH and
mineral solubilities at subsurface temperatures and pressures. New modeling
options have been added to SOLMINEQ.88 that can be used to study the effects
of boiling, mixing of solutions, and partitioning of gases between water, oil
and gas phases. SOLMINEQ.88 has mass-transfer capabilities that can be used
to study the effects of ion exchange, adsorption/desorption, and
dissolution/precipitation of solid phases.
This report documents the modeling capabilities of the computer code
SOLMINEQ.88. It is intended as a user's guide, describing the assumptions
underlying the various options and summarizing the mathematical and numerical
techniques used. The thermochemical and other data used in the computations
are tabulated. The fixed and optional data used to create the input file are
described in detail. An interactive input program, SOLINPUT, is available to
create or modify the input file. Output from several examples has been
included to illustrate various applications of this code, and for comparison
by users on other computer systems to verify that the program is functioning
correctly.
Acknowledgments
This code has been greatly improved because of suggestions and
corrections from many users including Bob Mariner, Randy Bassett, Jim Bishoff,
Sheldon Sommer, Indu Mishri, Brian Hitchon, Gordon Bird, and several
scientists at Alberta Research Council, and many students at the U.S.
Geological Training Center in Denver, Colorado.
Dan Specht, Bob Hull, Ming Ko, and Pat Dorherty have made important
contributions to the code. We are grateful for thorough reviews of this
document by our colleagues Bob Mariner, Charly Alpers, Rich Wanty and Art
White. Special thanks are due Jackie Hamilton for the many typings of this
bulky report.
Table 1. Glossary of Symbols Used in Text
a Sum of the Goldschmidt radii
a Stands for anion when used ^s a subscript
a,b,c,W,0 Temperature-independent con$tants in eqn. 48
a. Activity of species i
a-,a2 ,a., ,a, ,6,w,Q Constants used in eqn. 55
a. Activity of species i at equilibrium
a. Ion size parameter of species i
A,B,C Fitted pressure constants see appendix 1
A,B,C Meyer-Kelley heat capacity temperature fit constants.
A Chemical affinity
A_ Total area of the exchanging surface per kg of water
ii A Debye-Huckel limiting law slope.
A^ Adjusted Debye-Huckel constant used in Pitzer eqn.
AP Ion activity productH
B Extended Debye-Huckel limiting law constant.
, £ £ B ,B ,B Activity coefficient deviation functions subscripts for
univalent and multivalent species.
^MX'^'MX Cation-anion interaction coefficients in pitzer eqns.
c Represents a cation when used as a subscript.
C.. . ,C 2 . ,w. , 0. Empirical constants in eqn. 47
C Isobaric heat capacity
AC Standard state isobaric heat capacity of reaction p,r J
C.,,. Cation-anion interaction coefficient in pitzer eqns.
C^ Cation-anion interaction parameter in pitzer eqns.
-19 e Electron charge, 1.602 x 10 coulomb
E Equivalent fraction of surface sites occupied by a specific
surface complex
E Standard state potential
10
Eh Oxidation potential referred to hydrogen half cell
F F 8. . (I) , 0'.. (I) Electrostatic effect of unsymmetrical unmixing used inJ J
Pitzer equations
4 -1 F Faraday constant, 9.648 x 10 coulomb mol
n F General Debye-Huckel interaction term used in Pitzer eqns.
g(x),g'(x) Fitting functions used in Pitzer equations
AG° Standard state Gibbs free energy of reaction
AG,.-- Gibbs free energy difference between the actual and
equilibrium states of a mineral
AH^ Standard state enthalpy of formation
AH° Standard state enthalpy of reaction
I Ionic strength
k Henry's Law coefficient in pure water
k Henry's Law coefficient in a solution of molality m
K. Equilibrium constant of species i
Jl Refers to a liquid when used as a subscript or superscript
L Number of ligands in eqns. 51 & 52
m. Molality of species i
m. Total analytical molality of component ii, t
M Represents positively charged species as a subscript
M. Total moles of substance ii, t
23 -1 NA Avogadro's number, 6.022 x 10 mol
NS Number of sites per unit area of the mineral surface
N ,N Total number of the subscripted species
n Number of electrons involved in redox reactions
n. . Stoichiometric coefficient of component i in species j 1 »J
p Polarizability in eqn. 51
P Pressure in bars
Q Reaction quotient
R Gas constant, 1.987 cal K mol"
11
AS0 Standard state entropy of reaction
SI Saturation index
t Temperature in degrees C
T Temperature in degrees K
T Reference temperature in degrees K
v Refers to a vapor as a subscript or superscript
V. Partial molal volume of aqueous species i
_vV. Specific volume of gas i
AV Standard state volume of reaction
W Weight of a substance
x Derivative of the variation of e
X Represents negatively charged ions when used as a subscript
Y. Tolerance factor for subscripted ion
z. Charge on species i
Z Pitzer eqn. charge sum
Z Compressibility factor
a Charge fraction on surface sites
a..,. Fitting parameter used in Pitzer equations
ft Coefficient of isothermal compressibility of water
^MX '^MX '^MX Pitzer cation-anion interaction parameters
7. Activity coefficient of species i
7. p Activity coefficient of species i from Pitzer eqns. 11 *
e Dielectric constant of water
-19 -1 e Q Permittivity of the vacuum, 8.854 x 10 farad m
&.. Pitzer anion-anion/cation-cation interaction parameter
-24 -1 K Boltzman constant, 3.298 x 10 cal K
v, Number of moles of ions in component i
3 p Density (g/cm )
a ,0, Charge density at mineral surface (o) or diffuse layer (d)
12
<f> Osmotic coefficient of the subscripted electrolyte
' $XX ' $MM ' $XX Pitzer cation- cation/anion-anion interaction coefficients
Fugacity coefficient
Surface potential
Pitzer cation-cation-anion/anion-anion-cation interaction
parameters
13
METHOD OF COMPUTATION
The principal computations carried out by SOD1INEQ.88 are aqueous
speciation and saturation states of minerals. This program computes the
equilibrium distribution of more than 340 inorganic and organic aqueous
species of major, minor and trace elements generally present in natural
waters. The distribution of 54 organic species of acetate, oxalate, succinate
and two user- defined (additional) organic anions has been included because
organic species are important components of natural waters , especially those
present in sedimentary basins (Carothers and Kharaka, 1978; Kharaka and
others, 1986; MacGowan and Surdam, 1987; and many others). Although the total
number of possible organic species is extremel^ large, the number of important
anions in any given natural system in addition to acetate, oxalate and
succinate is generally small (Kharaka and others, 1986; MacGowan and Surdam,
1987) . Consequently, two additional user- defined organic anions together with
their complexes with H and 12 other cations usually are sufficient for
modeling purposes. A user-defined cation together, with 13 complexes with
anions, also was added to make the code of more general application.
The distribution of aqueous species for a given composition of water at
specified pH and temperature (or temperatures) is computed using the same
approach as in the original code (Kharaka and Barnes, 1973) by solving a set
of mass -act ion, oxidation- reduction and mass -balance equations based on the
ion-association aqueous model (Garrels and Christ, 1965; Helgeson, 1967). In
this model, the dissociation reaction for each of the aqueous complexes
(Table 2) has a corresponding mass-action equation. For example, the
dissociation reactions for CaHCO, and CaCO? are
CaHCO* 2 Ca** + HCO~ , (1)
and CaCO° ^ Ca++ + C0~~ , (2)
for which the respective mass -action equations are:
mCaHCO+
14
mC03
KCaCO°3 mCaCO° ' 7CaCO°
where m.and 7. are, respectively, the molality and activity coefficient of the
subscripted species and K is the dissociation constant of the subscripted
aqueous complex.
The mass -balance equations take the form:
j m, - S n. m. (3)
J- » *- -^ 1 > J J
where m. , n, . and m. are, respectively, the analytical (or total) molality 1 1 1 I , j J
of the component i, the stoichiometric coefficient of component i in species
j , and the computed molality of species j . For a system of i components and j
species, i mass-balance and j-i mass-action equations can be written. With
the additional constraints of specified pH and temperature, an iterative
technique (see below) can be used to solve, simultaneously, the system of
equations for the concentration of all species (Smith and Missin, 1982) .
For aqueous species of Ca, for example, the mass -balance equation is
mCa,t " "Ca^ + mCaHCO+ + mCaCO° + ' ' ' ' (4)
The mass -action and mass -balance equations are combined and rearranged after
the activity coefficients have been computed (see below) to give the value of
m_ ++ from the following:
mCa,t(5)rCan
m__ - - . *Y. ._. C00 'CO.
J J 3where fl +
KCaCO° ' 7CaCO° jo 33
m u/-;o+ an<^ mr; CQ° are then computed from equations (1) and (2) , 3 3
respectively, after substituting the computed m_ ++.
15
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data (see references at end of Table 3)
ID # and Name Reaction
1 HCO~0
2 TT f\ t*f\ \J
o3 H.SiO, 4 4/ o ++ 4 Cu5Fe+3
6 Kg"""
-, M +3 7 Mn
8 H2AsO~
9 A1F~~
0 1 f) IT o J.V tin D
11 Air"1"1"
12 A1F2o
13 A1F3
14 A1F4
15 AlCOH)*4"
16 Al(OH)^
17 A1(OH) 4
18 A1(S04) +
19 Al(S04 ) 2
20 AgCl°
21 AgCl 2
22 AgCl'"
23 AgCl^3
24 Ag(S04 )~
25 CH-COOHJo
26 BaGO.j
27 Ba(HC03 ) +
HC03 ^ H+ + C03 "
o -> +H20 * H -f OH
0 -> -fH,SiO, <- H + H.SiO. 44 34
Cu"^1" + Fe"^ ^ Cu+ + Fe+3+3 ! ! - -> ++ 1 __ 9 4-
Fe + -H0 0 -f -HS <- Fe + -SO. + -H2 Z 8 8^8
2Hg++ + 2Fe++ ^ Hg^1" + 2Fe~f3
Iur +3^_-H- -^ ^++^^+3 Mn + Fe «- Mn + Fe
H2AsO" ^ H + HAsO"
Alp,' - Al+3 +5F-
0 -» +H2 S * H + HS
++ -» 4-3 A1F -^ Al + F
4- + 4-3A1F *- Al 4- 2F
0 . . Q
A1F3 -^ Al 4- 3F"
A1F" ^ Al"1" 4- 4F"
AlCOH)"1^" ^ Al+3 4- OH"
A1(OH) 2 ^ Al+3 + 20H", o
A1(OH) 4 <- Al"1"3 + 40H"
A1(SO, ) + ^ Al+3 4- SO?" 4 4
15A1(S04 ) 2 * Al+ + 2SO'"
AgCl° ^ Ag+ 4- 01"
AgCl2 ^ Ag+ + 2C1"
AgCl 3 " ^ Ag+ + 3C1"
AgCl43 ^ Ag+ + 4C1"
Ag(S04)~ t Ag+ -f S04 "
CH Q COOH ^ H+ + CH 0 COO"j J
o , ,BaCO. *- Ba + CO""
<J «3
Ba(HCO») + ^ Ba4^" + HCo! j J
References
la, 2a
3a
4a, 24a
5b
6b
2c
2b
2a
2a
7a, 64a
2a, 8a
2a, 8a
2a
2a
9b
lOe
7a
2a
2a
lla
lla
lla
lla
2a
12a
7f
7f
16
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name
28 Ba(OH)+0
29 BaS04
30 CaC03
31 Ca(HC03 ) +
32 Ca(OH) +
33 CaP04
34 CaHPO. 4
35 CaH0 PO~J~ 2 4
36 CaSO. 4
37 CuCl
38 CuCl"
39 CuCl""
40 CuCl+
41 CuCl2
42 CuCl"
43 CuCl" 4
44 Cu(OH)+
45 CuS04
46 FeCl+
47 FeCl2
48 FeHP040
49 H3P04
50 Fe(OH) +
51 Fe(OH)°
52 FeOOH"
53 FeSO. 4
54 FeCl++
55 FeCl+
Ba(OH) +0
BaS04 <0
CaC03 <
Ca(HC03 ;
Ca(OH) +CaPO."
4
CaHPO. 4
CaH2P040
CaSO. 40
CuCl
CuCl 2
CuCl""
CuCl+
CuCl2
CuCl"
CuCl" 4
Cu(OH) +0
CuS04
FeCl+
FeCl°
FeHP040
Fe(OH) +
Fe(OH)°
FeOOH"0
FeS04 «
FeCl++
FeCl+
Reaction
2 Ba++ + OH"
- Ba++ + S04 "
- Ca++ + C0~~
) + ^ Ca++ + HCO~
? Ca++ + OH"
* ca- + PO;'£ Ca++ + HP04 "
£ Ca++ + H2P04
2 Ca++ + S04 "
^ Cu+ + Cl"
^ Cu+ + 2C1"
2 Cu+ + 3C1"
^ Cu++ + Cl"
^ Cu++ + 2C1"
^ Cu++ + 3C1"
2 Cu++ + 4C1"
2 Cu++ + OH"
^ Cu++ + S04 "
^ Fe++ + Cl"
2 Fe^ + 2C1"
2 Fe++ + HP04 "
2 3H+ + PO." 3 4
2 Fe++ + OH"
^ Fe++ + 20H"
+ 3H+ ? Fe++ + 2H20
- Fe++ + S04 "
Z Fe+3 + cr
^ Fe+3 + 2C1"
References
9b
7f
la, 7f
la, 13a
9b
7a
7a
7a
14a
15a, 16a
7a
7a
7a
7a
7a
7a
9a
2a
17a
17a
52c
24a
9b
9b
9b
2c
7a, 8a
7a, 8a
17
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction
56 FeCl3
57 FeCl"
58 Fe(S04 ) +
59 Fe(S04 ) 2 i
60 Fe(OH)
61 Fe(OH) 2o
62 Fe(OH) 3
63 Fe(OH>;
64 B(OH) 4
65 AlFl 30
66 H«SiO.0
67 H~AsO~
68 HAsO."4
69 H0AsOj2 H
070 H3As04
071 HF
72 H2CO°
73 HPO.""4
74 H2PO;
75 HS"
76 HSO;o
77 HN03
78 HgCl+o
79 HgCl 2
80 HgCl"
81 HgCi;~o
82 HgS04
0FeC13
FeCi;
Fe(S04 ) +
Fe(S04)" I
Fe(OH)
Fe(OH) 2o
Fe(OH) 3
Fe(OH)'
B(OH)"
A1F" 3 1
H3Si04 "0
H3As03
HAsO ." "4u A O r\~H2 4
0H-AsO.3 4
0 _+HF <-
o _ H2C03 *
HPO ." " 14
H2PO; 1
HS" ^
HSO; "0 ->
HN03 -H-
HgCl+o
HgCl2
HgCl"
HgCl4 "o
HgS04
^ Fe+3 + 3C1". i O
^- Fe + 4C1"
^ Fe+3 + SO;
-> +3<- Fe + 2S04
+ +3*- Fe + OH
^ Fe+3 + 20H"_. ,0
^- Fe + 30H". , O
<- Fe + 40H
-> o<- B(OH) 3 + OH"
: Al+3 + 6F"
. U i U C n /"» *~ li f £l_DjLVJ.2 ^
+ +*" rl "^ ri ASU~
-> 4- 3<- H + AsO."
4
^ 2H+ + AsO." 34
-* + 3* 3H + AsO."4
,H + F"
+ fr ' i VJ(*C\
' H+ + PO." 34
: 2H+ + po;3H+ + S""
H+ + so;~,
H + N03
^ Hg"^ + Cl". . .
+- Hg + 2C1"
^ Hg"^1" + 3C1"
^ Hg++ + 4C1"
-> -i-i-<- Hg + so;~
References
7a, 8a
7a, 8a
2c
18d
9b
2e
lOf, 19f
19e
20a
2b
2a
24a
21c
24a
24a
7a
la, 7a
7a
24a
7a
7a
24a
7c
7c
7c
7c
18f, 22f
18
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name
93 MgC03
94 MgHCO^
95 MgF+96 MgOH"1"
97
98 MgP04
99 MgHP04
100
101 MnCl"1"
102 MnCl2
103 MnCl"
104 MnCl." 4
105 MnHCOH,
106 MnSO. 4
107 MnCl^
108 MnHPOz
109 MnOH"1"
110 NaCl
Reaction
o83 HgS(H2S) 2
84 Hg(HS) 30
85 Hgo
86 KC1
87 KC03o
88 KHSO.4
89 KS04
90 KHP04o
91 LiOH
92 LiSO."40
0 + -» ++HgS(H2S) 2 + H <- Hg^
Hg(HS)^ ^ Kg"*"*" + 3HS"
0 +3 -* +2 Hg + 2Fe <- Hg + 2Fe
0 v iKC1 <- K + Cl"
KCO" ^ K+ + CO" 3 «J
0 -A, _i_KHSO. -H K + HSO."4 4KSO." ^ K+ + SO."
4 4
KHPO." ^ K+ + HPO." 4 40 V 1
LiOH <H Li + OH"
LiSO." ^ Li+ + SO."4 40 -» -H-
MgHCO,
MgF+
MgOH"1"
++Mg + HCO
Mg
OH
MgHP0
MnCl
MnCl
MnHCO
MnSO.
MnCl
MnHPO,
MnOH
NaCl
MnMn"1
Mn"1
Mn++ +
Mn+3
- Mn++
Mn"""
Na+ +
Cl"
2C1"
3C1"
+ 4C1"
+ HCO^
so;-h Cl"
+ HPO;OH
HS
Cl
References
23c
17c
23d
7a, lla
31f
15c
7a
7a
25c
25
26d
26d
7a
9a
15, 27b
7a
7a
7a
28d
28d
28d
28d
29d
25d
15a
52c
9c
30a
19
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction References
111 NaCO"
112 NaHC030
113 Na2C030
114 Na2SO,
115 NaS04
116 NaHP04
117 HgOH+
118 NH.OH 4
119 NaHSo
120 NaF
121 PbCl+Q
122 PbCl2
123 PbCl"
124 PbCl" 4o
125 PbSO.4Q
126 Zn(CH3COO) 2
127 SrOH+o
128 SrC03
129 SrHC03
130 SrS04
131 ZnCl+
132 ZnCl2
133 ZnCl"
134 ZnCl"o
135 ZnSO.4
136 As043o
137 Hg(OH) 0
NaCO"
NaHC030
0Na2S04NaSO."
4
NaHP04
HgOH+
NH4OH
NaHS0
NaF
PbCl+0
PbCl2
PbCl"
4o
PbSO.4
Zn(CH3
SrOH+o
SrC03
SrHCO*
SrS04
ZnCl+
ZnCl2
ZnCl3
£*Tiw JL /(i
0ZnSO.4
As043
Hg(OH)
t Na+ + CO""
£ Na+ + HCO"
.2 2Na+ + C0~~
,4- 2Na + SO."
4
t Na+ + SO. " 4
t Na+ + HP04 "
2 Hg++ + OH"
2 NH4 + OH"
2 Na+ + HS",
*- Na + F"
2 Pb"1"*" + Cl"
,*- Pb + 2C1"
2 Pb"*"1" + 3C1"
2 Pb++ + 4C1". .
4- Pb + SO."4
Q ,,
COO) 2 *- Zn + 2CH3COO"
2 Sr++ + OH", ,
4- Sr + COl" j
+ Sr + HCOlj
^ Sr++ + S04 "
^ Zn++ + Cl"
2 Zn++ + 2C1"
^ Zn"*"*" + 3C1"
^ Zn++ + 4C1"
£ Zn + SO,"4
+ 4H+ + 2Fe++ it H2As03 + 2Fe+3 + H200 -* -H- 4- Hg^ + 20H
31c
32, 22f
32, 33f
54a
35c
9b
7a
46a
57c
36a
36a
36a
36a
15
18c, 38a
9b
40c
40c
7a
41a
41a
41a
41a
42d
7a
9b
20
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name
138 Fe++ to Fe+3 11
139 Cu to Cu
140 Hg2+ to Hg++
141 Mn++ to Mn+3
142 U+4 to U02
143 U02 to U02+
144 V+3 to V0++
145 V0++ to V043
146 CaCl+o
147 CaCl2
148 UOH+3
149 U(OH) 2+
150 U(OH)*o
151 U(OH) 4
152 U(OH)~
153 UF+3
154 UF2+
155 UF*
156 UF°
157 UF~
158 UF"O
159 UC1+3
160 U(HP04 ) ++
161 U(HP04 ) 2
162 U(HP04 )~~
163 U(HP04 )' 4
164 U(S04 ) ++
Fe++ Z
_ + H.Cu «-
Hg~ *
Mn^ J+4
U on £.tl
U0; *
v+3 +
V0+3 + 2
CaCl+ ^o -*
CaCl2 «-
UOH+3 ^
U(OH) 2+
U(OH)^o
U(OH) 4
U(OH)^
UF+3 2
UF^+ Z
+ -¥
0 _>
UF4 -
UP' Z
UF6 - 2uci+3 2
U(HP04 ) +
U(HP04 ) 2
U(HP04 )'
Reaction
r- +3 _, Fe + eCu++ + e"
2Hg++ + 2e~
Mn+3 + e"
20 t UO^ + 4H+ + a'
U02+ + e"
H20 ^ V0++ + 2H+ + e"
HO ^ VO" 3 + 6H+ + e"
Ca++ + Cl", ,
Ca + 2C1"
U+4 + OH"
^ U+4 + 20H"
« + -» +4 + 3H *- U + 3H20, _^ , A
+ 4H *- U + 4H20+ -* +4
+ 5H ^- U + 5H20
U+4 + F-
U+4 + 2F-
U+4 + 3F-
U+4 + 4F"
U+4 + 5F-
U+4 + 6F-
u+4 + cr+ ^ U+4 + HPO."
4-» +4 *- U + 2HPO,
, , i+ 3H <- U + 3H2PO^
U(HPO.)." 4 + 4H+ 2 U+4 + 4H0 POj x 4'4 2 4
U(S04 ) ++ 2 u+4 + so;'
References
6b
5b
7c
7c
43b
43b
44b, 2b
44c, 45c
46a
79a
5b, 43b
5b, 43b
5b, 43b
5b, 43b
47a
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
2b, 43b
2b, 43b
2b, 43b
2b, 43b
5b, 43b
21
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction References
165 U(S04 ) 2
166 U,(OH)t?D ID
167 (U02 )(OH)+o
168 (U02 )(OH) 2
169 (U02 ) 2 (OH) 2+
170 (U02 ) 3 (OH)+
171 (U02 ) 3 (OH)'o
172 U02 (S04 )
173 U02 (S04 ) 2 ~
174 U02F+0
175 U02F2
176 U02F~
177 U02F^
178 U00C1+z
179 U02H3Si04o
180 U02 (HP04 )
181 U02 (HP04 ) 2 ~
182 U02 (H2P04 ) +
183 U02 (H2P04)°
184 U02 (H2P04 )~o
185 U02 (C03 )
186 U02 (C03 )~~
-4 187 U02 (C03 ) 3
188 HVO" 2
189 HjVO? 1
190 H0VO. 3 4
U(S04 ) 2 it U+4 + 2SO''
U,(OH)t? + 12H+ 2 6U+4 4 30H" + 12H00D ID Z
(uo2 )(OH) + 2 uo^*" + OH"o ,.
(U02 )(OH) 2 4- U02 + 20H"
(U02 ) 2 .(OH)J+ - 2UO^ + 20H"
(U02 ) 3 (OH)^ + 5H+ it SUO^*" + 5H20
(U02 ) 3 (OH)" ..+ 7H+ 4t 3UO^" + 7H200 _^ ii
uo2 (so4 ) 4. uo2 + so'"
U00 (SO,)I" *- U0« + 280? " 242 2 4
U02F+ it UO^*" + F"
o _^ ,,U°2F2 *" U°2 + 2F"
U02F3 it UO^ + 3F'
U02F^ it UO^ + 4F'
uo2ci+ it uo^*" + ci"+ + -» ++ °
0 4-1-
U02 (HP04 ) it U02 + HPO''
U02 (HP04 ) 2 ' it UO^ + 2HPO''
U02 (H2P04 ) + it UO^ + H^O;- + H+
U02 (H2P04 ) 2 it UO^*" + 2HP04 " + 2H+
U02 (H2P04 ) 3 ^ UO^*" + 3HP04 " + 3H+o ,,
uo (co.) 4. uor" + col"£ *J £» O
U02 (C03 ) 2 " it UO^*" + 2C03 "
U02 (C03 ) 34 it UO^*" -I- 3C03 "
HVO." it VO." 3 + H+ 4 4
H2V04 " V043 + 2H+
0 -> -3 + H,VO. *- VO/ + 3H 34 4
5b, 43b
5b, 48b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
43b
5c, 45c
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5b, 43b
5c, 45c
2b, 43b
2b, 43b
2b, 43b
2b, 43b
2b, 43b
5b, 43b
5b, 43b
5b, 43b
43c
43c
43c
22
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction References
191 H.VO* 4 4
192 NaHVO^0
193 V02F
194 V02F~
195 V(OH) ++
196 V(OH) 2
197 V(OH)°
198 VOOH+o
199 VOS04
200 VOC1+
201 VOF+0
202 VOF2
203 U02CH C00+o
204 U02 (CH3COO) 2
205 U0l"
206 U+4
207 V+3
, ,208 VO
OfiQ A i pu rr\r\£\)j r\iv»n« v*ww
210 BaCH3COO+
211 CaCH3COO+
212 CuCH3COO
213 FeCH3COO+
214 Fe(CH3COO) 20
215 KCH3COO
216 MgCH3COO+o
217 NaCH3COO
H.VO* it VO," 3 + 4H+ 44 4
*3 j_
NaHVO," it Na + VO," + H 4 4
0 -» +V02F 4- V02 + F"
V02F~ it V02 + 2F"
V(OH)++ it v+3 + OH"
V(OH) 2 it v+3 + 20H~
V(OH) 3 it v+3 + 30H"
VOOH+ it V0++ + OH"o . . -
VOSO, 4- VO + SO," 4 4VOC1+ it V0++ + Cl"VOF+ it VO*"1" + F"
0 . i _ iVOF2 4- VO + 2F~
U00 CH^COO it U00 + CH~COO~0 _i 11
U02 (CH3COO) 2 4- U02 + 2CH3COO"
+ i *3 _k i i i _ i_>-i TJ ^ ___ I I __ "1 rUOO + Fe 4- UOO + Fe
+4 +3 -» + -H- + U + Fe J + 2H20 4- U02 + Fe + 4H
i*3 i *3 _k i i j _ i i _ _T J __*j - - . ^ »»*. I 1 , ** A _ J\V + Fe + H20 4- VO + Fe + 2H
, , , o .0 . . ,
VO + Fe + 3H20 4- VO^ + Fe + 6H
A1CH3COO++ it Al+3 + CH3COO"
BaCH3COO+ it fia++ + CH3COO"
CaCH3COO+ it Ca"^ + CH3COO"
CuCH3COO it Cu+ + CH3COO"
FeCH3COO+ i^ Fe++ + CH3COO"
Fe(CH3COO) 2 i^ Fe++ + 2CH3COO"0 -» +
KCH3COO 4- K + CH3COO
MgCH«COO+ it Mg"^"1" + CH-COO" j j
0 -» +NaCH^COO 4- Na + CH0 COO 3 3
43c
2g
15g
15g
43g
43g
43g
43g
2g
15g
2g
2g
15c
71c
43b, 44b
43b, 44b
2b, 44b
44c, 45c
49
49c
50c
49c
51a
51a
52c, 53c
50c
52c, 53c
23
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction References
218 PbCH3COO"fo
219 Pb(CH3COO) 2
220 Pb(CH3COO)~
221 SrCH0 COO+ji
222 ZnCH-COOJooo ur* n ~ ZZo nL.,~U,
099A urnZZM- flrtVjrtU.
+ 225 A1C204
226 Al(C204 )~0
O O "7 O ** /^ /"^ZZ/ fiacre)/
0228 CaC00,
0229 FeC204
230 FeC 0+
mvc n~ .^o s\ \j i2 4
0232 MgC0 0,
£. 4
0233 MnC 0 0 .2. 4
234 Mn(C204 )~~
235 Mn(C204 )I 4
+O O £ **-_ /i ^% rZ j b rinvj n U .2 4
237 NaC0 0,"2 40
238 PbCoO,f. 4
0o o Q Ci-r1 r> zjy t>r°2u40
240 ZnC?04
241 H(C4H404)~
242 H2 (C4H404)°
243 A1C4H404
PbCHqCOO+ "t Pb"^ + CH.COO"J J
Q j.
Pb(CH3COO) 2 *- Pb + 2CH3COO"
Pb(CH3COO) 3 ^ Pb"^ + 3CH3COO"
SrCH.COO* ~Z- Sr"^ + CH.COO"O «-*
1 . i I
ZnCH3COO *- Zn + CH3COO"
HC20' 1 H+ + C204 ~
H2 C204 ^ 2H+ -f C204 -
Aic2o^ ^ AI+S -f c2o4 -- -* +3
Al(C204 ) 2 <- Al + 2C2040 -» ++
BaC204 *- Ba + C204 "
o .+ c ++ Q--
o ,,FeC204 " Fe + C^'
FeC204 ^ Fe+3 + C^"
i//1 /\ ^ i/ L f* r\ f\\j^\j t *^ J^. >^ ^/%v/24 240 -> -H-
24 240 -> -H-
MnC2°4 *" Mn + C2°4
Mn(C00/ ) 0 * Mn + 2C00. L M- Z Z 4
Mn(C204 ) 34 ^ Mn"^ + 30^"
MnC00. *- Mn + C00,24 24
NaC2°4 *- Na + C 204o _^ i ,
Pbc2o4 *- Pb + C2o4 '0 -> ++
0 -» ++ZnC204 - Zn + C^'
HCC.H.O,)" ~t H+ + C.H.O" 444 444
H2 (C4H4°4 )0 " 2H+ + C4H4°4"
AlC.H.O"!" ^ Al+ + C.H.O" 444 444
18c,
18c,
18c,
50c
18c,
49c,
49c,
49c,
49c,
25c.
25c,
25c,
25c,
25c,
25c f-->^ ,
49c,
49c,
49c,
49c,
25c,
25f,
25c,
49c,
49c
49c
49f,
52c
52c
52c
38a
52c
52c
59c
59c
49c
49c
49c
49c
49c
49c
52c
52c
52c
52c
49c
49f
49c
52c
59f
24
Table 2. -- Dissociation reactions for aqueous complexes and sources of thermochemical data -- (Continued)
ID # and Name Reaction References
244 A1(C4H404 ) 20
245 BaC.H.O. 4440
246 CaC.H.O. 444
247 FeC.H.O. 444,
248 FeC.H.OT 444
249 KC.H.O."444
0250 MgC4H404
o251 MnC.H.O. 444
252 NaC.H.O." 444o
253 PbC.H.O. 444
254 SrC.H.O. 444o
255 ZnC.H.O. 444 I
256 FeF
257 SiF"6
258 Pb(HS) 2
259 Pb(HS)~o
260 PbC03
261 PbOH
262 Zn(HS) 2
263 Zn(HS)~
264 ZnHCO*
265 ZnOH+
266 Zn(OH) 2
267 Zn(HS)(OH)
A1(C4H404 )o
BaC.H.O. 444
CaC.H.O. 444
FeC.H.O. 444,
FeC. H. OT 444
KG H 0"444o
MeC H 04440
MnC.H.O. 444
NaC. H. 0 ." 444o
PbC. H. 0. 444
SrC.H.O. 444o
ZnC4H4°4
FeF++ 1
2 ? A1-> ++<- Ba
^ Ca++
^ Fe++
* IT +3<- Fe
-» +
-» -4-+<- Mg
_^ i _ i., TT<- Mn
^ Na+
? Pb++
t Sr++
, ," Zn
r. +3Fe +_ x
SiF" + 40H" ^ Ho
Pb(HS) 2 ^
Pb(HS)" 1o .
PbC03 <-.
PbOH <-
Zn(HS)° ^
Zn(HS)" ^
ZnHCO* ^
ZnOH+ ^
Zn(OH) 2 ^
Zn(HS)(OH)
: Pb^-f: Pb++ +
i iPb^ +
Pb++ +
: zn++ +
Zn++ +
Zn++ +
Zn++ +
: zn++ +
+ 2C.H.O" 444
+ C. H, 0." " 444
+ C . H, 0." " 444
+ C.H.O." 444
+ C . H. 0." " 444
+ C H 0"444
+ C. H. 0." "444
+ C . H. 0." " 444
+ C . H, 0." " 444
+ C.H.O." 444
+ C. H . 0." " 444
+ C, H. 0." " 444
F0
. SiO, + 6F4 42HS"
3HS"
CO""
OH"2HS'
3HS'
HCQ-
OH'
20H"
0 -> ++<- Zn + HS + OH
49f, 59f
25c, 49c
25c, 49c
25f, 49f
25c, 49c
25c, 49c
25c, 49c
25c, 49c
25c, 49c
25c, 49c
25c, 49c
25c, 49c
57c
58c
2a, 55a, 56a
2a, 55a
56a, 57a
52a, 56a
46a, 55a, 56a
46a, 55a
46a
46a
9a, 46a
46a
25
Oxidation-Reduction Reactions
Oxidation-reduction reactions are used in conjunction with mass-action
reactions and mass-balance expressions to compute the distribution of the
multivalent elements Fe, Cu, Hg, Mn, U, and V where the Eh of the solution is
known. The reaction for iron is
+3 . -Fe Fe
where e represents an electron. The concentrations of Fe and Fe are
related by
(3)
,o RTEh = E" + In
nr
mFe+3
mFe(6)
where Eh is the oxidation potential referred to the hydrogen half cell, E is
the standard state potential of the reaction, n is the number of electrons
involved in the reaction, F is the Faraday constant and R is the gas constant.
Values of E°at temperatures from 0° to 350 °C, are calculated from equation
AG°
E° = r , (7) nF
where the Gibbs standard state free energies for the oxidation-reduction
reactions (AG ) are tabulated in the data files of the program (see below).
SOLMINEQ.88 will compute the Eh of a water sample at the desired
temperature, if necessary, from the Emf of the Eh cell including the Calomel
reference electrode (EHMC) or from the Emf of the Eh cell calibrated using
Zobell's solution (EMFZSC). For a more detailed discussion of the theory of
Eh, its field measurement and reduction, see Barnes and Back (1964), Barnes
and Clarke (1969), Garrels and Christ (1965), and Thorstensen (1984).
Computations based on measured Eh have been kept to a minimum in
SOLMINEQ.88 because of uncertainties in the measurement and interpretation of
oxidation potentials (Barnes and Clarke, 1969; Wolery, 1983; Nordstrom and
Munoz, 1985). However, the program can compute the distribution of species
for elements with multiple redox states by assuming redox equilibrium between
the species HS and SO, . Kharaka and others (1980) have shown that oil field
waters are strongly reducing (Eh < -200 mV) and that the sulfide-sulfate redox
reaction
26
HS" + 4H20 2 SO^" + 9H+ + 8e" , (4)
is probably the best of the possible redox couples for computing the Eh of
these waters. However, in other natural systems alternative redox couples may
be better indicators of the redox state of water (Freeze and Cherry, 1979;
Kharaka and others, 198Q; Nordstrom and Munoz, 1985).
The distribution of Fe species in SOLMINEQ.88 can be computed by
+3 ++ combining HS /SO, , and Fe /Fe couples (Reactions 3 and 4) to give the
8Fe+3 + 4H0 + HS" 2 SFe"*"1"-*- S0~ + 9H+ (5)
reaction
The distribution of species for the other multivalent elements can be computed
-1-3 ++by combining them with the Fe /Fe couple in reactions that eliminate the
electron. In the case of Cu, for example, the reaction is
Fe+3 + Cu"1" 2 Fe"1"1" + Cu"1"1" . (6)
It must be emphasized in this section that the above computations assume a
state of thermodynamic equilibrium that may not be applicable to many or all
of the redox couples. For a detailed discussion of the real meaning of Eh,
the related parameter pe and the numerous pitfalls and inconsistencies in
their measurements and interpretations, the reader is referred to Barnes and
Clarke (1969), Wolery (1983) and Thorstenson, (1984).
Speciation at Subsurface Conditions
The chemical compositions of subsurface water samples collected at the
land surface may not correspond to their in-situ compositions. Volatile gases
such as CO^, H«S, and NH- may exsolve due to a pressure decrease. Loss of
these gases may drastically change (by up to 3 pH units) the pH of the
remaining fluids. Changes in temperature and pressure alone will result in pH
changes due to variations in the stabilities of hydrogen-bearing aqueous
species. Changes in pH, temperature, and pressure may result in precipitation
of solid phases such as calcium carbonate and amorphous silica, among others
Increases in the Eh of waters containing Fe** usually result in the
precipitation of amorphous iron hydroxides and coprecipitation of trace
metals.
The in situ water chemistry may be calculated for water-dominated
geothermal and oil field systems where the amount and composition of gases
27
lost prior to water sampling are known. The main problem in these
computations has been the estimation of an in situ pH which is critical to
these computations. Two different approaches have been used (see Modeling
Options) to compute the in-situ pH: (1) assuming equilibrium at subsurface
conditions with a mineral (Merino, 1979) known to be present in the aquifer
(calcite is generally selected), or (2) assuming mass balance for hydronium at
surface and subsurface conditions (Truesdell and Singer, 1974; Kharaka and
others, 1985).
SOLMINEQ.88 has options to compute the subsurface pH and resulting
speciation and saturation states using eitheif approach. The distribution of
species in the mass -balance approach is carried out at surface conditions
using the measured pH. The total hydrogen (HL. ._ ) and hydroxyl (IHQU t T )
are then computed at the surface conditions from the equations
m = m + m + 2m. + m +2m +m +...,(8) H.t.T-L H HCO~ H2C03 HS ~ H2 S CH3COOH
m =m + m +m + m + 2m +....(9) OH.t.T-L OH" Ca(OH) Mg(OH) NH4OH° Fe(OH)°
For samples where known quantities of CO^ , H^S, and NH~ are lost prior to
surface pH measurement, equations (8) and (9) are modified to include the lost
gases. CO-, H^S, and NH, are included as 2m., CQ , 2m.. , and nt . QH ,£. *J £* M*
respectively, in the computed value of HL. _, and m _ (see Modelingn , t , 1 « Un , t , L n
Options) .
The distribution of species is then computed at the subsurface
temperature assuming that the subsurface pH is equal to the measured surface
pH. The total molalities of hydrogen (m.. _ ) and hydroxyl (m ) atn , t , 1 2 Un , t , 1 2
subsurface temperature (T«) are then computed. The value of the tolerance
factor (Y ) for the hydronium given by:
(mH,t,T2 " mOH,t,T2 )
is then computed. The terms (m.... , and m..., . , ) are included in Equationuti , t , i .. uti , c , i _
(10) to account for the changes in the hydrogen mass -balance from hydrolysis
28
of water. Iterations are then carried out changing the pH by small increments
(see below) until the value of Y is < ± 5x10" (or another user-defined
value). The final computed pH is then used to compute the distribution of
species and the states of saturation of the solution with respect to minerals.
Iteration Techniques
The distribution of cations in SOLMINEQ.88 is carried out using equations
that, throughout all computations, meet the requirement of mass-balance
(Equation 3). In the case of anions, however, the total (analytical) molality
of each anion is initially assigned to the primary (generally the predominant)
species of that anion to compute the molalities of the other species. This
generally results in a sum of computed molalities that after the first
iteration is higher than the analytical molality. In the case of sulfate, for
example, mon is initially made equal to mcn resulting in bu^ bu^,n
mS0/ _ < mSO~~ + mCaSO° + ^aso" + " ' (11) 4,t 4 4 4
SOLMINEQ.88 uses a back - substitution iterative procedure (see code listing
in Appendix IV.) for the distribution of anions. Iterations are continued
until the tolerance factor for the anion (Y ) defined by the ratio of theA
analytical molality of the anion to the computed sum of its species and given
by
m. ^ i,tYA - 1 - , (12)
Sni,j mj,i
is < ± 5x10 . Almost all waters examined to date have met these requirements
within 10 iteration cycles. Iteration problems, however, may be encountered
especially in solutions with many ions or high pH values, incorrect or
incomplete chemical analysis, and in high salinity brines when using the
Pitzer equations to compute the activity coefficients.
The iterative algorithm for hydronium mass-balance in SOLMINEQ.88 has
been modified to utilize a polynomial interpolating technique. Initially, the
pH is adjusted (the initial adjustment is 1.0 pH unit) until either
convergence is achieved, (as defined by equation (10)), or the sign of Yu isH
reversed. Once the sign of Y has reversed, values of pH and Yu are fit to afl H
29
polynomial, the order of which is one less than the number of pH and YH values
(up to a maximum of 6 points). The polynomial is then used to interpolate the
valije of pH where Yu "should be" zero. This value is checked to insure thatn
it is between the bracketing values. If it is not, a polynomial of decreased
order is re-fit to the values and a new value of pH is obtained. This is
continued until the pH is between the bracketing values. The aqueous species
are then redistributed by iteration until Y. is satisfied and a new value of
Yu obtained. This procedure continues until Yu passes the convergence test, rl n
This technique results in a much faster solution than the back-substitution
approach used in the original program, and allows imposition of a smaller
tolerance factor. The smaller tolerance factor avoids an erroneous
calculation of pH when one H - or OH - bearing species is predominant in the
solution (see Morel, 1983, p. 96-97).
All of the options which modify the solution composition and can be
treated as a function of a single variable (addition/removal of a volatile,
precipitation/dissolution of a mineral, etc.; see Modeling Options) use a
similar procedure to obtain pH convergence; the only difference is the
function for Y and the independent variable. For example, for mineral
saturation, Y is a function of the saturation index (SI) of the minerals and
it is varied as a function of the amount of material added to or removed from
the solution.
Before the polynomial interpolation is used, the sign of Y must change.
This is done by increasing or decreasing the independent variable. The choice
of step size is critical. With the exception of the pH modification
(discussed earlier), the step size is based on the difference between the
current parameters (Si's, amount in solution, etc.), and the anticipated
values of the parameter when convergence has been reached. If the first step
does not cause Y to change sign, either the step size is increased or its
direction reversed, depending on the current derivative. This process is
continued until either Y changes sign, an impossible solution is reached (for
example, negative mass of an element) or it can be demonstrated that no answer
exists.
30
Saturation States of Minerals
The saturation state of a mineral in a given solution determines its
interactions with that solution. In SOLMINEQ.88, two saturation indices are
used to test for possible dissolution or precipitation of minerals. The
program computes the Gibbs free energy difference (AG,.~~) between the actual
and equilibrium states of a mineral in a given subsurface water (equal to the
chemical affinity A) as well as the saturation index SI given by:
SI - ln(Q/K) . (13)
AGdiff is given by:
AGdiff " RTlnK ' (-RTlnQ) - RTln(Q/K) , (14)
where R is the gas constant, T is temperature in degrees Kelvin, Q is the
reaction quotient (equal to the ion activity product (AP)), and K is the
equilibrium constant at the specified temperature and pressure.
Mineral reactions used in SOLMINEQ.88 are for complete hydrolysis (Table
3); no incongruent reactions which require additional assumptions (e.g.,
conserving Al) are used. For anorthite, the reaction is
CaAl0 Si00Q/ N + 8H+ ^ Ca*4" + 2A1+3 + 2H.SiO? . (7) Z Z o (s; 4-4-
The reaction quotient (Q) for reaction (7) is given by:
2 2a_ ++ . a A ,+3 . a.. _.- oCa Al TLSiO,Anorthite ' -. ' < 15 >
o~+ a ti ' anorthite
where (a) is the activity of the subscripted species at the specified
temperature and pressure; a thit is t*ie activity of anorthite. With the
exception of minerals entered using the unknown mineral option, the activity
of all minerals is assumed to be equal to 1.0 at any temperature and pressure.
At equilibrium, Q - K and AG,.~- - 0. In this case, the subsurface water
is in equilibrium with the mineral and no dissolution or precipitation should
take place. Where AG,. _~ < 0, anorthite cannot precipitate from that
subsurface water because of undersaturation, but anorthite probably will
dissolve if the mineral is present in the reservoir rocks. Where AG,.-- > 0,Qltt
anorthite will not dissolve because of supersaturation, but rather will
likely precipitate if kinetic factors allow.
31
Table 3.
ID # and Name
Reactions for the congruent dissolution of minerals and sources of thermochemical data
1 Adularia
2 Akermanite
3 Albite
4 Albite, Low
5 Albite, High
6 Alunite
7 Amesite, 14A
8 Analcime
9 Andalusite
10 Andesine
11 Anhydrite
12 Annite
13 Anorthite
14 Apatite, Cl
15 Apatite, F
16 Apatite, OH
17 Aragonite
18 Augite
19 Azurite
Reaction
KAlSi Q00J O
2Ca
NaAlSi.OQJ O
NaAlSi00 0J O
NaAlSi0 00J O
4H K Al+3
6H
Mg
4H
4H
4H
Na
Na
Na
Al+3
Al+3
Al+3
KA13 (S04) 2 (OH) 6
K 3A1+3
6H
2SO,
1QH
2Mg 2A1+3
NaAlSi 00,«H00/ D /
4H
References
0i
0\
01/,
7a
5b, 61b
5b, 61b
5b, 61b
5b, 61b
5b, 6b, 62b
66a
Na + Al + 2H.SiQ.4 4
Al0 SiO t. + 6H+ £ 2A1+3 + H.SiO° + H00 25 442
Ca .4Na .6A11.4S12.6°8 "
.4CaAl0 Si 000 4- .6NaAlSi 0 00Z Z o j IS
CaSO. ^ Ca + SO.""4 4
KFe3AlSi301() (OH) 2 + 10H+ ^
K+ + SFe"^1" + Al+3 + 3H.SiO.4 4
CaAl2 Si 2Og + 8H+ ^ Ca"^1" + 2A1+3 + 2H4Si04
-> +4- _ 3Ca c.(PO,)«Cl *- 5Ca + 3PO. + Cl
Ca5 (P04 ) 3 F - 5Ca++ + SPO^3 + F"
-> 4.4. _ 3Ca (P04 ) 3OH «- 5Ca + 3p04 + OH
CaC03 ^ Ca^^ + CO""
CaAl 0 SiO, + 8H+ ^Z o
Ca4"1" + 2A1+3 + H4Si04 + 2H20
Cu (CO ) (OH) 9 ^ 3Cu++ + 2CO" + 20H~
6b, 72b
5b, 6b
2a
39b, 63b
6b, 72b
6b, 72b
7a
2b, 6b
6b, 61b
35a
6b, 72b
6b, 72b
32
Table 3. -- Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
D # and Name
20 Barite
21 Boehmite
22 Brucite
23 Bytownite
24 Calcite
25 Celestite
26 Chalcedony
27 Chamosite, 7A
28 Chlorite, 7A
29 Chlorite, 14A
30 Chrysotile
31 Clinoenstatite
32 Clinoptilolite
Sodium
33 Clinoptilolite,
Potassium
34 Clinoptilolite,
Calcium
35 Clinoptilolite,
Magnesium
36 Corundum
37 Cristobalite.a
Reaction
BaSO. £ Ba++ + SO." 4 4
, , o
AIO(OH) + 3H 4- Al + 2H20
Mg(OH) 2 t Mg++ + 20H"
Ca .8Na .2Al1.8 Si2.2°8 "
. 8CaAl0 Si 000 + . 2NaAlSi 0 0 02. L o Jo
CaC03 "t Ca++ + CO"
SrSO. t Sr++ + SO." 4 4-f 0
Si00 + 2H00 4- H.SiO. 2 2 44
Fe2Al2Si05 (OH) + 10H+ ^
2Fe++ + 2A1+3 + H.SiO. + 5H0044 2+ -*
Mg (_Al 0 Si 70 1 -.(OH)^ + 16H *-
++ +3 ° 5Mg + 2A1 + 3H4Si04 + 6H20
+ -* Mg (-Al0 Si 70 1 -.(OH)^ + 16H 4-
++ +3 °5Mg + 2A1 + 3H4Si04 + 6H 0
+ + ++ °Mg»Si00,-(OH). + 6H 4- 3Mg + 2H,SiO. + H00 j / !> M. i\. 4 /
, , , oMgSi03 + 2H+ + H20 - Mg++ + H4Si04
Na2Al2Si 1()024 .8H20 + 8H+ + 8H20 ^, , o o
2Na + 2A1 + 10H. SiO. 4 4+ -t-
K^AlrtSi- f\0« , 8H«0 + 8H + 8H«0 4-o 0
2K + 2A1 + 10H. SiO. 4 44- _>.
/" 0 A1 C-J O MQUO-i-QU _i_QU/"\ ^^-* ctr\ j_ n & -L i rt^r)/ 0^*0 "^ on ~t~ orirt^-'
Ca++ + 2A1+3 + 10H. SiO. 4 4+ *
++ +3 °Mg + 2A1 + 10H. SiO, 6 44
+ -+ +3A1203 + 6H 4- 2A1 J + 3H20
0Si00 + 2H00 4- H.SiO. 2 2 44
References
6b, 63b
6b, 62b
6b, 61b
2a
35a
6b, 61b
5b, 6b
66a
5b, 6b
5b, 6b
6b, 61b
6b, 61b
76a
76a
76a
76a
5b, 6b
67a
33
Table 3. -- Congruent dissolution of mineraljs and sources of thermochemical data -- (Continued)
ID # and Name Reaction
-». o38 Cristobalite,^ Si02 + 2H20 <- H4Si04
. _^39 Dickite Al2Si205 (OH) 4 + 6H «- 2
40 Diopside CaMgSi2Og + 4H+ + 2H20 ^
Ca"*"*" + Mg"*"*" + 2H4SiO
41 Dolomite CaMg(C03 ) 2 ^ Ca + Mg
42 Dolomite CaMg(C03 ) 2 2 Ca++ + Mg+
(DSORD)
43 Enstatite MgSi03 + 2H+ + H20 ^
References
67a.0 0
Al ^ + 2H4Si04 + H20 6b, 61b
° 6b, 61b4
+ + 2C03 " 5b, 6b
+ "*" 2C03"
5b, 6b4-4- °
Me + H, SiO, 5b, 6b 44
44 Epidote Ca2FeAl2 Si 3012 (OH) + 13H+ £ . Q 0 0
2Ca++ + Fe+J + 2Al+J + 3H4Si04 + H20 6b, 72b
45 Fayalite Fe2Si04 + 4H+ ^ 2Fe++
46 Fluorite CaF2 ^ Ca"*^" + 2F"
47 Forsterite Mg2Si04 + 4H+ ^ 2Mg"*"*"
48 Gibbsite, Am Al(OH) 3 ^ Al"*"3 + 30H~
49 Gibbsite Al(OH) 3 ^ Al"*"3 + 30H"
50 Greenalite Fe3Si_O e.(OH) 4 + 6H+ *^
+ H4Si04 6b, 61b
68a
+ H.SiO, 6b, 61b
7a
6b, 62b
3Fe"*"*" + 2H4Si04 + H20 66a
51 Gypsum CaSO «2H20 ^ Ca+2 + SO" 2 + 2H20 6b, 63b
52 Halite NaCl ^ Na"*" + Cl",
53 Halloysite Al2 Si205 (OH) 4 + 6H <- 2
54 Heulandite CaA^Si-^g^^O + 8H+ -+
Ca"*"*" + 2A1"*"3 + 7H, Si 4
55 Huntite CaMg3 (C03 ) 4 ^ Ca"*"*" + 3
56 Hydromagnesite Mg5 (C03 ) 4 (OH) 2 «3H20 ^
SMg"*^ + 4CO"" + 20H"
57 Hydrophilite CaCl2 ^ Ca"1^" + 2C1"
58 Illite K 6Mg 25A12 3Si 3 5010 (OH)
6b, 61b
k +3 °1 + 2H4Si04 + H20 6b, 61b
4H20 -
0° 6b, 78b
Mg4"1" + 4CO"~ 5b, 6b
+ 3H20 6b, 69b
5b, 61b
2 + 8H+ + 2H20 ^
.6K 2.3Al+3 + 3.5H4Si04 7a
34
Table 3 . - - Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
ID # and Name
59 Kaolinite
60 Kenyaite
61 K-Feldspar
62 Kyanite
63 Labradorite
64 Larnite
65 Laumontite
66 Leucite
67 Lime
68 Magadite
69 Magnesio-
ferrite
70 Magnesite
71 Chloro-
magnesite
72 Marialite
73 Merwinite
74 Microcline
Reaction
+ -» +3 °Al2Si 20 (OH) 4 + 6H <- 2A1 + 2H4Si04 +
+ -»
Na+ + llH.SiO, 4 4
KAlSi3Og + 4H+ + 4H20 ^ K+ + Al"1"3 + 3H4J+ -»> +3 °
Al2 Si05 + 6H <- 2A1 + H4Si04 + H2 (
Ca .6Na .4A11.6 Si2.4°8 "
,6CaAl0 Si000 + .4NaAlSi_00Z Z o jo
. j _ , oCa0 SiO, + 4H <- 2Ca + H.SiO. 24 44
CaAl2Si4012 -4H20 + 8H+ -
++ +3 ° Ca + 2A1 + 4H,SiO, 4 4
KAlSi00, + 4H+ + 2H00 ^Z D Z4- -4-3 °K + Al + 2H. SiO, 4 4
CaO + 2H+ 2 ca"1^" + H00 2
+ ->
Na+ + 7H,SiO, 4 4+ _). ++ 4.3
MgFe204 + 8H <- Mg + 2Fe + 4H?0
MgCO, + Mg + CO"" j jMgCl2 2 Mg"1""1" + 2C1"
(NaAlSi 0 00 ) 0 »NaCl + 12H+ + 12H00 ^j o j Z
, , o 04Na + 3A1 ° + Cl" + 9H,SiO, 4 4
Ca MgSi Og + 8H+ ^ 3Ca++ + Mg++ + 2H £
KAlSi,0Q + 4H+ + 4H00 ^JO Z
References
H20 6b, 72b
7e
>i04 6b, 72b
) 6b, 61b
2a
5b, 61b
5b, 61b
5b, 61b
5b, 61b
7e
7a
6b, 69b
7a
7a, 74a
>i04 5b, 61b
75 Meionite
+ +3 °K + Al + 3H,SiO,4 4
(CaAl 0 Si00 0 ),,»CaC00Z Z o j j
24H
4Ca++ 6A1+3 CO 6H,SiO, 44
6b, 72b
6b, 75b
35
Table 3.
ID # and Name
Congruent dissolution of minerals and sources of thermochemical data -- ^Continued)
Reaction References
76 Mirabilite «- 2Na + SO, 10H00 2.
77 Monticellite CaMgSi04 + 4H Mg
78 Mordenite, Na
79 Mordenite, K
80 Muscovite
88 Nontronite, H
4H
Na+ + Al+3 5H,SiO, 4 4
4H
+ +3 °K + Al + 5H,SiO,4 4
10H
+ +3 °K f 3A1 + 3H,SiO,4 4
81 Nahcolite NaHCO,
82 Nathermite Nart CO,
83 Natron
84 Nepheline
85 Nesquehonite
86 Nontronite, Na Na
87 Nontronite, K K
Na + HCO
2Na C0
Na2CO «10H20 «- 2Na+
3
CO] 10H20 o
NaAlSiO, + 4H+ 2 Na+ + Al+3 + JLSiO, 4 44
Mg
6701Q (OH) 2 + 7.32H"1" + 2.68H20
0.33Na+ + 2Fe+3 + 0.33A1+3 + 3.67^810.4 4
7.32H
0.33K+ + 2Fe+3 + 0.33A1+3 + 3.67^810.°4 4
H QO Fe0Al . j j Z ^ 1U
2Fe+3 + 0.33A1+3 4 3.67H.SiO4 4
+ 6.99H + 2.68H20 <- o
89 Nontronite, Ca Ca
90 Nontronite, Mg Mg
, 7.O/
+ 7.32H + 2.68H20 <-
0.165Ca 2Fe+3 + 0.33A1+3 + 3.67^810,4 4
+ 7.32H + 2.68H20
0.165Mg++ + 2Fe+3 + 0.33Al+3
91 Oldhamite
92 Oligoclase
CaS + H «- Ca + HS
Ca .2Na .8A11.2 Si2.8°8
.8NaAlSi Q0 QJ O
2b, 5b
5b, 6b
76a
76a
6b, 61b
5b, 71b
2b
5b, 71b
6b, 72L
6b, 72b
66a
66a
66a
66a
66a
7b
2a
36
Table 3.
ID # and Name
Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
Reaction References
93 Paragonite
94 Pargasite
95 Periclase
96 Phillipsite
97 Phlogopite, OH
98 Fluor -
phlogopite
99 Portlandite
100 Potassium
Oxide
101 Prehnite
102 Pyrophyllite
103 Quartz
104 Sanidine,
High
105 Saponite, Na
106 Saponite, K
+ -» NaAl 3Si 30- 0 (OH) 2 + 10H «-
~Na + 3A1 + 3H4Si04 6a, 75a
NaCa2Mg4Al 3Si6022 (OH) 2 + 22H+ -
Na+ + 2Ca++ + 4Mg~H" + 3A1+3 + 6H4Si04 6b, 72b, _^ , ,
MgO + 2H <- Mg + H20 5b, 61b
Na CK £.AlSi 0 00 »H00 +4H+ + 3H00 ^ . D . j j o Z /
, , , o 0.5Na + . 5K + Al + 3H/SiO, 7a 4 4
KMg3AlSi 301Q (OH) 2 + 10H+ 2
K+ + 3Mg++ + Al+3 + 3H4Si04 6b, 72b+ -»
KMg3AlSi 301()F2 + 8H + 2H20 *-
K+ + 3Mg++ + Al+3 + 2F" + 3H4Si04 5b, 61b
Ca(OH) 2 ^ Ca++ + 20H~ 5b, 61b
K20 + 2H+ * 2K+ + H20 5b, 61b
Ca2Al 2Si 301Q (OH) 2 + 10H+ -
2Ca++ + 2A1+3 + SH.SiO,0 6b, 72b 4 4
Al 2 Si 0 Q (OH) 2 + 6H+ + 4H20 ^ 2A1+3 + 4H4Si04 6b , 72b
Si02 + 2H20 ^ H4Si04 70a, , , o 0
KAlSi 3Og + 4H + 4H20 4-, K + Al J + 3H4Si04 5b , 61b
Na 33Mg3Al 33 Si 3 6 7°10 (OH) 2 + 7 - 32H+ + 2 68H20 ^
0.33Na+ + 3Mg++ + 0.33A1+3 + 3.67H,SiO° 66a ° 44 »*««*
K 33Mg3Al 33 Si 3 6701Q (OH) 2 + 7.32H+ + 2.68^0 -I i _ i i o o
r\ ooi/-"^ i ox«_'^'^ i n o o A i '-' o f-tii n /-> / /
107 Saponite, H H 6.99H
3Mg++ + 0.33A1"1" 3 + 3.67H.SiO°44
66a
66a
37
Table 3.
ID # and Name
Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
Reaction References
108 Saponite, Ca Ca 165Mg3Al 33Si 3 £-j°-\r\(°H) 2 + 7.32H 4- 2.68H20 ^
0.165Ca++ + SMg"*"1" + 0.33A1*3 + 3.67H. SiO.° 66a 6 44
109
110
111
112
113
114
115
116
117
118
119
120
Saponite, Mg Mg~ i/rcAl oo^i., fiv^in^^^
O.ieSMg** + SMg** +
Sepiolite Mg4Si,015 (OH) 2 «6H20 + 8H4-4- °
4Mg + 6H, SiO,4 4
_». 0Silica, Si02 + 2H20 <- H4Si04
Amorphous
Silica Gel Si02 + 2H20 2 H4sio4, , Q
Sillimanite Al2Si05 + 6H <- 2A1
Smectite, Ca Ca 1 ,-,A10 00 Si 0 ,_,Onr.(OH) . lo / Z.jj j . b / 1U
.167Ca++ + 2.33A1+3
Smectite, K K 33A12 33Si 3 , 701Q (OH) 2, , o.33K"1" + 2.33A1"10 +
Smectite, Mg Mg 167A12 33 Si 3 6701Q (OH)
.167Mg++ + 2.33A1+3
Smectite, Na Na ooAl« ooSio cT^in^^^?, , o
.33Na + 2.33A1 +
Sodium Monoxide Na20 4- 2H+ 2 2Na+ +
Spinel MgAl204 4- 8H+ ^ Mg++
Stilbite CaAl0 Si-.010 «7H00 + 8H+ +Z / lo Z
2 + 7.32H+ + 2.68H20 ^
0.33A1"*"3 + 3.67H, SiO. 66a 4 4
+ + H20 -
72a, 77a
70a
7ao
+ H4Si04 + H20 6b, 72b
+ 7.32H+ + 2.68H20 ^
+ 3.67H, SiO, 7a 4 4
+ 7.32H+ + 2.68H20 ^o
3.67H. SiO, 7a 4 4
+ 7.32H+ + 2.68H20 ^
+ 3.67H. SiO. 7a 4 4
+ 7.32H+ + 2.68H20 ^o
3.67H, SiO, 7a 4 4
HJD 5b, 61b
4- 2A1+3 + 4H20 5b, 61b
3H 0 ^2
Ca"1"1" + 2A1+3 + 7H. SiO, 6b, 78b 4 4
121
122
123
124
, o
Strengite FeP04 «2H20 * Fe + PO"
Strontianite SrCO^ ^ Sr++ 4- CO""
Sylvite KC1 ^ K+ + Cl"
3J + 2H20 7a
40a
6a, 61a
Talc Mg0 Si,Oir.(OH) 0 + 6H+ + 4H00 ^
3Mg + 4H,SiO, & 44 6a, 72b, 75b
38
Table 3. - - Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
ID # and Name Reaction
125 Thenardite Na2S04 2 2Na+ + S04 "
126 Tremolite Ca2Mg5Sig022 (OH) 2 + 14H+ + SHJD £
2Ca++ + SMg"*"*" + 8H4Si04
127 Trona Na^jCOoNaHCO.-^H^O £ 3Na+ + COl" + HCO" + 2H,Z. j j Z j j 4
128 Vivianite Fe3 (P04)««8H20 £ SFe"1"*" + 2PO" + 8H«0
129 Wairakite CaAl2Si4012 «2H20 + 8H+ + 2H20 £
Ca++ + 2A1+3 + 4H.SiO° 4 4
130 Wither ite BaC03 2 Ba"1"*" + C0~~
131 Wollastonite CaSi03 + 2H+ + H20 2 Ca"1"*" + H4Si04
132 Zoisite Ca2Al3Si 30- 2 (OH) + 13H+ 2
2Ca++ + 3A1+3 + 3H. SiO. + H00 44 2
133 Silver Ag + Fe+3 ^ Ag+ + Fe"1^"
134 Cerargyrite AgCl 2 Ag+ + Cl"
135 Acanthite Ag2S + H+ 2 2Ag+ + HS"
+3 -* + i i 136 Copper, Native Cu + Fe «- Cu + Fe
137 Malachite Cu2C03 (OH) 2 ^ 2Cu++ + C03 " + 20H~
138 Tenor ite CuO + 2H+ ^ Cu"1^" + H20
139 Cuprite Cu20 + 2H+ 2 2Cu+ + H20
140 Covellite CuS + H+ ^ Cu"1^" + HS"
141 Chalcocite Cu2 S + H+ ^ 2Cu+ + HS"
142 Chalcopyrite CuFeS2 + 2H+ t Cu"1^" + Fe"1"1" + 2HS"
143 Bornite Cu5FeS4 + 4H+ ^ 4Cu+ + Cu"1^" + Fe"*^" + 4HS"
144 Lawrencite FeCl,, 2 Fe^^ + 2Cl"
145 Molysite FeC1 3 ^ Fe+3 + 3cl "
146 Siderite FeCO« ^ Fe"1"1" + CO"
147 Ferrous Oxide FeO + 2H+ ^ Fe"1"1" + H90
148 Hematite Feo°-a + 6H+ ^ 2Fe+3 + 3H00
References
5b, 61b
6b, 72b
20 6b, 71b
7a
6b, 72b
6b, 61b
6b, 72b
6b, 72b
5b, 61b
lla
5b, 61b
5b, 6b
6b, 61b
6b, 61b
5b, 6b
6b, 61b
6b, 61b
65a
5b, 6b
7b
7b
5b, 6b
5b, 6b
5b, 6b
39
Table 3.
ID # and Name
Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
Reaction References
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
Maghemite
Magnetite
Fe(OH) 3
Goethite
Pyrrotite
Troilite
Pyrite
Greigite
Mercury (L)
Mercurous
Chloride
Calomel
Montroydite
Cinnabar
Cinnabar, Meta-
Scacchite
Rhodochrosite
Manganosite
Pyrolusite
Alabandite
Cotunnite
Cerussite
Litharge
Massicot
Galena
Anglesite
Smithsonite
Fe203 + 6H4" ^ 2Fe+3 +
Fe304 + 8H4" ^ 2Fe+3 H-
Fe(OH) 3 2 Fe4"3 + 30H~, , o
FeOOH + 3H <- F& +
FeS + H+ ^ Fe4"4" + HS"
FeS + H+ ^ Fe4"4" + HS"
FeS2 + H20 2
Fe4"4" + 1.75HS" +0.2
Fe3S4 + 4H4" ^ 2Fe+3 -f
Hg + 2Fe+3 Z Hg++ +
HgCl2 2 Hg4"4" + 2C1"
Hg2Cl2 ^ Hg?,4" + 2C1"
HgO + 2H+ ^ Hg"1^" + H20
3H«0 7a
Fe"1^" + 4H20 5b, 6b
7a
2H20 5b, 6b
6b, 72b
5b, 6b
5S04 " + 0.25H4" 5b, 6b
Fe"1^" + 4HS" 7a
2Fe+4" 2b, 5b
7a
7a
6b, 61b
HgS + H+ 2 Hg4"4" + HS" 6b, 61b
HgS + H4" ^ Hg"1^" + HS" 6b, 61b
MnCl2 ^ Mn4"4" + 2C1"
MnC03 ^ Mn4"4" + CC>3 "
MnO + 2H+ ^ Mn"1^" +
5b, 61b
5b, 61b
H20 5b, 6b
Mn02 + Mn4"4" + 4H+ ^ 2Mn+3 + 2H20 5b, 6b
MnS + H+ ^ Mn4"4" +
PbCl2 ^ Pb"1^" + 2C1"
PbC03 2 Pb + COl"
PbO + 2H4" ^ Pb"1^" +
PbO + 2H+ ^ Pb4"4" +
PbS + H4" ^ Pb4"4" + HS
PbSO. £ Pb"1^" + SO." 4 4
> i 1 _ _ ZnC00 «- Zn + C00
^S" 5b, 61b
5b, 61b
5b, 6b
H20 72a
H20 5b, 61b
46a
6b, 63a
46a
40
Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
Reaction
ZnO + 2H *- Zn +
Table 3. --
ID # and Name
175 Zincite
176 Sphalerite
177 Zincosite
178 Rutherfordine
179 Uramphite
180 Przhevalskite
181 Torbernite
182 Saleeite
183 Autunite, Sr
184 Uranocircite Ba(U02 ) 2 (P04 ) 2
185 Bassetite
186 Clarkeite
187 Gummite
188 U02 (OH) 2
189 UF,«2.5H2 (
190 U(HP04 ) 2 ^
191 Ningyoite
m u o \J *-» \S A
2H
Ba 2UOA + 2HPO]
Fe(U0 2 ) 2 (P04 ) 2 + 2H 1
.++Fe 2U0 + 2HP0
2H+
2H+
U02 (OH)
CaU(HP04 ) 2 -2H20
+ 20H"
* + 4F~ +
U+4 + 2HPO^
h 2H+ ^
2 .
Ca++ +4U + 2HP0
References
46a
ZnS + H 2 Zn
ZnS04 ^ Zn++ +
-* ++uo2co3 *- uo2 +
(NH4 ) 2 (U02 ) 2 (P04 ) 2
2NH4 + 2U02+
Pb(UO ) (PO,) +£ £ 'T ^
++ ++ Pb + 21KK
Cu(U02 ) 2 (P04 ) 2 +
Cu++ + 2U02+
Mg(U02 ) 2 (P04 ) 2 +
Mg"1^ + 2U02+
Sr(U02 ) 2 (P04 ) 2 +
Sr++ + 2Uot+
+ HS"so"
4C03~
+ 2H+ ^+ 2HPO,"
4
2H+ 1
+ 2HPO," 4
2H+ 1
+ 2HPO" 4
2H+ 1
+ 2HPO," 4
2H+ ^
+ 2HPO"
46a
5b, 61b
6b, 44b, 61b
2b, 45b, 61b
5b, 7b, 44b
5b, 45b, 61b
5b, 45b, 74b
5b, 61b, 74b
4H 2U0
5b, 45b, 61b
5b, 44b, 45b
43b
43b, 45b
5b, 45b
5b, 43b, 61b
5b, 43b, 61b
5b, 45b, 61b
43b, 61b
41
Table 3 .
ID # and Name
Congruent dissolution of minerals and sources of thermochemical data -- (Continued)
193 Uraninite,
Amorphous
194 Uraninite
195 U409
196 Coffinite
197 Autunite, H
198 Autunite, Na
199 Autunite, K
200 Autunite
201 Carnotite
202 Tyuyamunite
203 Uranophane
204 Schoepite
205 MgU04
206 CaUO. 4
207 BaUO. 4
208 UO«F9
209 US 3
210 Karelianite
211 Vanadium Tetro-
212 Vanadium Pento-
213
Reaction
4H
4H
USiO
10H
+ 4H
2U4"4
2UO
U+4 + H, SiO, 44
2HPO
2H
2Na
2K
2H
Ca(U02 ) 2 (P04 ) 2
Ca++
2HP0
2HP0
2HP0
2VQ- 3
Ca(U02 ) 2 (V04 ) 2 <
Ca(U02 ) 2 (HSi04 ) 2
Ca 2V0 3
MgUO,
CaU0
BaUO.
4H 1
4HH
V2°3 61T
4H 1
3H20
U°2
Mg
Ca
Ba
2Fuo4"
2V
2VO
2 ,+3
UO
uo;
UO,
3HS
3H20
2H20
2H20
H
2VO-3 4
+
6H
so,
214 Pb3 (V04 ) 2 Pb3 (vo4 ) 2 <- 3Pb + gVO-3
References
43b
43b
43b, 61b
44b
44b
2b, 61b
5b, 45b, 61b
5b, 45b, 61b
5b, 45b, 61b
5b, 45b, 61b
5b, 45b, 61b
43b, 61b
5b, 44b, 61b
5b, 44b, 61b
5b, 44b, 61b
5b, 44b, 61b
5b, 44b, 61b
2b, 45b
2b, 45b
2b, 45b
2b, 61b
2b, 5b, 61b
42
Sources of Thermochemtcal Data for Reactions in Tables 2 and 3
1) Plummer and Busenberg (1982)2) Naumov and others (1974)3) Marshall and Frank (1981)4) Busey and Mesmer (1977)5) Helgeson and others (1981)6) Helgeson (1985 Version of SUPCRT)7) Kharaka and Barnes (1973)8) Arnorsson and others (1982)9) Baes and Mesmer (1981)
10) May and others (1979)11) Seward (1976)12) Lown and others (1970)13) Jacobson and Langmuir (1974)14) Kalyanaraman and others (1973)15) Smith and Martell (1976)16) Crerar and Barnes (1976)17) Crerar and others (1978)18) Wagman and others (1968; 1969)19) Helgeson and others (1978)20) Mesmer and others (1972)21) Helgeson (1969)22) Bryzgalin and Rafelski (1982)23) Barnes and others (1967)24) Smith and others (1986)25) Sillen and Martell (1964)26) Siebert and Hostetler (1977)27) Wolley and Hepler (1977)28) Kublanovskii (1977)29) Harned and Owen (1958)30) Seward (1981)31) Drummond (1981)32) Lafon (1969)33) Reardon (1975)34) Lafon and Truesdell (1971)35) Plummer and others (1984)36) Seward (1984)37) Patterson and others (1982)38) Giordano and Drummond (1987)39) Miller (1988)40) Busenberg and others (1984)
41) Ruaya and Seward (1986)42) Katayama (1976)43) Lemire and Tremaine (1980)44) Hemingway (1982)45) Langmuir (1978)46) Bourcier and Barnes (1987)47) Tremaine and others (1981)48) Phillips (1982)49) Martell and Smith (1977)50) Nancollas (1956)51) Palmer and Drummond (1988)52) Wagman and others (1982)53) Wagman and others (1976)54) Shanks and Bischoff (1977)55) Giordano and Barnes (1981)56) Wood and others (1987)57) Hogfeldt (1982)58) Roberson and Barnes (1978)59) Bilinski and others (1986)60) Daniele and others (1981)61) Robie and others (1978)62) Tremaine (1987)63) DeKock (1986)64) Cobble and others (1982)65) Conard and others (1980)66) Wolery (1986)67) Richet and others (1982)68) Nordstrom and Jenne (1977)69) Tanger and Helgeson (1988)70) Fournier and Potter (1982)71) Vanderzee (1982)72) Tugarinov and others (1975)73) Hovey and others (1988)74) Zen (1972)75) Berman and others (1985)76) Kerrisk (1983)77) Stoessell (1988)78) Cho and others (1987)79) Williams-Jones and Seward (1988)
Letters following numerical references in Tables 2 and 3 refer to the method of computation used to calculate the equilibrium constants as described in the section, Equilibrium Constants.
43
ACTIVITY and ACTIVITY COEFFICIENTS
The activity of all minerals is assumed to be equal to unity, with the
possible exception of the minerals entered using the unknown mineral option
activity of water used in many
semiempirical expression given
(see the description of the input file). The
equations is computed in SOLMINEQ.88 from the
by Garrels and Christ (1965) as
aH = 1 - 0.017 S m. . (16)H2° i i
The summation covers the molalities (m.) of all the species in solution.
Alternatively, a more accurate value for the activity of water can be obtained
from the Pitzer expressions (Pitzer, 1973; 19$1) where
log (aH Q ) = 0.007823 (S nu)^ , (17)
where <j> is the osmotic coefficient of the solution. Values of <j> are
calculated by equations and parameters given by Pitzer (1973) and Pitzer
(1981). Equations (16) and (17) give approximately the same value for the
activity of water in NaCl solutions (0-6 molal) at temperatures of 25 °C to
200 °C; the activity of water is somewhat lower in CaCl,, than in NaCl
solutions (see Table 6.2 in Kharaka and Mariner, 1989). The activity of water
can be approximated for most natural waters using equation (16). Equation
(17), however, should be used for waters where the concentrations of divalent
cations comprise more than about 20 percent of the total cations.
The program uses equation (16), but the user can specify equation (17) by
selecting the appropriate input switch. Values for the osmotic coefficients
of NaCl, CaCl2 and other electrolytes as a function of temperature and
molality were obtained from Staples and Nuttall (1977), Holmes and others
(1978, 1981) and Pitzer (1981).
The activities of aqueous species are computed from
ai " miTi ' (18 ^
where y. is the activity coefficient of species i. The standard state adopted
for the aqueous species is that where the activity is equal to molality in a
hypothetical infinitely dilute solution at any pressure and temperature.
44
Activity Coefficients for Neutral Species
Several methods are used by geochemists to calculate the activity
coefficients of neutral species, each give different results. The activity
coefficients of all neutral species are generally assumed equal to that of
dissolved CO,., in NaCl solutions (Helgeson, 1969) . The activity coefficients
for C00 (~frr. ) maybe calculated using:Z dUrt
k7CO (T) = , (19) C02 k
where k and k are the Henry's law coefficients (atm/mole) in pure water and
sodium chloride solutions of molality m at temperature T (°K). Values for k
and k are available as a function of temperature (0°-350 °C) and molality of
NaCl (0-6 molal) from Ellis and Golding (1963) and Drummond (1981).
SOLMINEQ.88 has the option to compute 7__ and all the other neutral speciesco2
(except H^S and H,SiO,) using a modified expression from Drummond (1981):
3885.6 0.4445In k - 21.2752 - 0.0176036T - 1.0312m -
255.9m 0.001606 T+ 0.0012806 mT + - '
T (m-1)
The activity coefficient for H^S can be calculated from a similar
expression, also modified from Drummond (1981) which is:
2021.5 0.5705In k.. . - 11.1255 0.0071704T + 0.2905T = + ^ S T
46,2m 0.0001574mT , (21)
T (m-1)
In both equations (20) and (21), m is the molality of NaCl.
The expressions of Marshall (1980) and Chen and Marshall (1982) are
preferred for calculating the activity coefficient of H.SiO?. Their activity
coefficients for H.SiO, were derived from data on the solubility of amorphous
silica as a function of temperature (0° - 350 °C) , and NaCl salinity (0-6
molal). The expression is:
45
log (7 siQo) - (0.00978 x 10 (280/T) ) x m . (22) 4 4
Sodium and chloride are by far the dominant aqueous species in most
formation waters from sedimentary basins (Khc.raka and others, 1985), and
equation (22) can be applied directly to these waters. However, the
concentrations of other species, especially calcium, can be high, requiring
modification of equation (22). Data in Marshall (1980) and Chen and Marshall
(1982) show that equation (22) can be generalized to:
log (7 o) = (0.00489 x i0 ( 280/T>) . s z 2 m , (23)ti, OlU, 11 14 4
where z. and m. are the charge and molality cjf species (i). The summation
includes all of the species in the formation water.
Activity Coefficients for Charged Species
In SOLMINEQ.88, the activity coefficients (7) for the charged aqueous
species are computed using B method (Lewis and Randall, 1961; Helgeson,
1969).
-Vi il/2log 7, = - 575 + B'l , (24)
1 + a? B I ' i 7o "
where a. is the ion size parameter, A and B are the molal Debye-Huckel
coefficients (described below) at temperature T, z. is the charge of the ith
ion, I is the true ionic strength, and B* is Ja deviation function. The ionic
strength (I) of a given solution is given by:
I - 1/2 S n. z. 2 . (25)
n The Debye-Huckel coefficients, A and B ,are given by:
1.8248 x 106 /j 1/2 A7 (T) = 3/2 < 26 >
and
50.29 x 10 8 /? 1/2 B-/T) = r-= , (27)
46
where p and e are the density and the dielectric constant of water at
temperature T. The values of A and B in the above equations are given in
Table 4 and are from Helgeson and others (1981) . The density and dielectric
constants are corrected for pressure using functions based on data in Helgeson
and Kirkham (1974).
The a° values used (Appendix IA) are mainly from Kielland (1937), with
unpublished data for U and V species from Goodwin (1982). Arbitrary a values
of 4.0, 5.0 and 6.0 were assigned, respectively, to those monovalent, divalent
and trivalent species not reported in the literature; for U and V species,
values of 4.5, 3.5, 2.5, 5.0 and 9.0 were assigned respectively to -2, -1, +1,
+2, and +3 charged species as suggested by Goodwin (1982).
The values for the deviation function, B , used in equation (24) vary as
a function of temperature (Appendix ID) and are from Helgeson (1969). The B
values used are for NaCl solutions, a close approximation for most subsurface
waters. The presence of appreciable amounts of divalent and trivalent cations
and anions in solution with their higher degree of hydration will make the 7.
obtained lower than the true values. The B option should not be used for
waters with ionic strengths higher than about one molal. In these cases the
Pitzer equations, as discussed in the following section, should be selected in
the input file.
47
Table 4.II
Values of the Debye-Huckel coefficients
A and B along the vapor pressure curve of water
(Helgeson and others , 1981) .
t
0
10
20
30
40
50
60
70
80
90
100
125
150
200
250
300
350
A fi 7 7
,, 1/2 , -1/2. ,. 1/2 , -1 -1 ,~8. (kg ' mole ' ) (kg ' mo4e cm x 10 )
0.4913 0.3247
0.4976 0.3261
0.5050 0.3276
0.5135 0.3291
0.5231 0.3307
0.5336 0.3325
0.5450 0.3343
0.5573 0.3362
0.5706 0.3381
0.5848 0.3401
0.5998 0.3422
0.6417 0.3476
0.6898 0.3533
0.8099 0.3655
0.9785 0.3792
1.2555 0.3965
1.9252 0.4256
48
Pitzer Equations
SOLMINEQ.88 has an option to compute the activity coefficients of the
aqueous species using Pitzer equations (Pitzer, 1981; Harvie and others,
1984). This modification was necessary because the B* method used for
calculating the activity coefficients (Helgeson, 1969) gives results that are
much lower than the true values for solutions with salinities higher than
about one molal (Figure 1). Pitzer equations are based on an ion-interaction
or virial-coefficient model where the effects of ion association are
implicitly incorporated in stoichiometric activity coefficients calculated byit
virial expansion of the Debye-Huckel theory (Pitzer, 1973, 1981; Silvester and
Pitzer, 1978). A number of investigations (Whitfield, 1975; Harvie and Weare,
1980; Harvie and others, 1984; Gueddari and others, 1983) have shown that the
use of the Pitzer equations has resulted in accurate predictions of mineral
sequences in very concentrated brines at low temperatures.
The basic equations for the activity coefficients of positively (M) and
negatively (X) charged species in terms of second and third virial
coefficients (Pitzer, 1973; Harvie and others, 1984) are given below.
, Na Nc Naln TM - ZMF + S. ma (2BMa + ZCMa> + S. V 2*Mc + S. m
a=I c=l a 1
N n N N Na-1 a c a+ S S m m ,$ , + |z,J S S m m C , (28)n , ,1 a a'^aa'M ' M 1 n n c a ca ' x 'a=l a a+1 c=l a=l
N N NC 3. C
In 7V - z^F + S m (2B v + ZC v ) + S m (2$v + S mX X T c x cX cXy - a x Xa nc=l a=l c=l
N n N N N c-1 c c a+ S S m m ,^ , v + |zv | S S m m C , (29), , , c c >T cc'X ' X 1 - - c a ca ' v 'c=l c'=c+l c=l a=l
where mc and ZG are the molality and charge of cation c and N is the total
number of cations. Similar definitions apply for anions (subscript a). The
following terms are defined for use in the above equations:
49
I ' I //
/ /
PItzer without complexes. /
m NaCI
Figure 1. -- Pitzer and Ion Pair Activity Coefficients for NaCI solutions
as a function of Ionic Strength.
50
I
1 + 1
N
1/2
c-1 c
2 In (1 + 1.2I1/2 )
1.2
N T N a-1 a
Nc
+ S c-1
Na
S a-1
m m B' c a ca
+ S S m m ,$' ,+ Z S m m ,$' ,i , , c c' cc' ., , . a a' aa'c=l c'=c+l a=l a'=a+l
(30)
MX2|ZZ
1/2MX
(31)
(32)Z - 2 m.|z.|
and
2.303A0 = A , (33)
3.0 7
where A is the Debye-Huckel constant and I is the stoichiometric ionic 7
strength. The second virial coefficients (B) and ($) are given the following
ionic strength dependence:
BMX - (34)
(35)
. . + e. .(i) (36)
'y - t'^m (37)
The functions, g and g', are defined by the equations
g(x) = 2(1 - (1 + x)e" x)/x2 , (38)
2 x 9g'(x) = -2(1 - (1 + x + ~2 )e" x)/xz , (39)
where x = a JI or 12 Jl. When either cation M or anion X is univalent,
*j^ =2.0. For 2 - 2, or higher valence pairs, a =1.4. In most cases
equals zero. The functions of E and E.. account for the
51
electrostatic effects of unsymmetrical unmixing (Pitzer, 1981). They are only
significant in complex 1-2 and 1-3 electrolytes at high ionic strength.
A relatively large and expanding database is now available to calculate
the activities of alkali and alkaline earth metals in concentrated chloride
and sulfate solutions at temperatures of up to at least 200 °C (Pitzer, 1981;
Holmes and Mesmer, 1983; Pabalan and Pitzer, 1987; Miller, 1988; and many
others) .
The complete set of parameters required
these species are: 0, 0, 0, and
to calculate the activities of
for each cation-anion pair. &..^ *
for each cation- cation and anion- anion pair; \j>. ., for each cation- cation- anionij K
and anion- anion- cation triplet. The interaction parameters for seven cations
and four anions were calculated from various published data and are tabulated
in the database of SOLMINEQ.88 (Appendix IG) at 25 °C intervals from 0° to 150
°C and at 50 °C intervals from 150 ° to 350 °C. The parameters are
interpolated to the specified temperature (from 0° to 350 °C) by the Lagrange
subroutine (TLUV) used to interpolate the K values (see below) .
SOLMINEQ.88 has an option to compute the activity coefficients of the
seven cations and four anions using Pitzer equations. It must be emphasized
here that these equations are based on an ion interaction model that assumes
no ion associations or complexing. The distribution of species in
SOLMINEQ.88, on the other hand, is based on an ion association model. This
inconsistency is resolved by incrementing the ion activity coefficients
obtained from the Pitzer equations for these $pecies so the final activity for
the species is equal to that computed from Pitzer equations. In the case of
Na, for example, the final value for 7N +, is given by
. mNa,t ?Na.P § (4Q)
Na+
where 7N _ is the activity coefficient for Na obtained from the Pitzer
equations. The activity coefficients for a large number of species and
complexes in SOLMINEQ.88 can not be computed using Pitzer's equations because
there are no published virial coefficients for them, especially at high
temperatures. The activity coefficients for these species (7.) are calculated
using a modified (B*) equation given by:
52
log Is =
a i 7'
where B is a deviation function. The value of B used to calculate the
activity coefficients for univalent cations, anions, and complexes (B ) is
obtained from:
A I 1/2
B* = (logu I A1Q 1 + 4.0 x 10 " B L
1
where 7N + is obtained for a hypothetical minor concentration of Na equal
to 0.01 m using Pitzer equations. The value of B used to calculate the
activity coefficients for multivalent cations, anions and complexes with no
virial coefficients data to calculate their activities by Pitzer equations is
obtained from:
1 4.0 A//2Bm = T (1°S 7Ca++ + 8 1/2 > (43)
m X Ca 1 + 6.0 x 10 b B I 1/^7
where 7- ++ is again obtained using Pitzer equations for a hypothetical 0.01 m
_l_|_ 1 I I
concentrations of Ca . Hypothetical 0.01 concentrations of Na and Ca are
used because at concentrations higher than about 0.1 m, 7. is a function of
concentration (Pitzer, 1981; Tanger and Helgeson, 1988).
Using Na and Ca as the "typical minor or trace" species to calculate
the activity coefficients for the majority of the dissolved species is clearly
not thermodynamically rigorous, but is an operational approach. However,
comparison of values of activity coefficients obtained by this approach and by
Pitzer equations for a number of dissolved species shows that this approach
allows the operational B* method (Helgeson, 1969) to be extended to about 3 to
6m solutions. Research to obtain virial coefficients for carbonate, aluminum
and other important species is clearly needed.
53
EQUILIBRIUM CONSTANTS
The equilibrium constants (K) for the dissociation of aqueous complexes
(Table 2) and congruent dissolution of minerals (Table 3) are the most
important part of the database in geochemical codes such as SOLMINEQ.88.
Examples of dissociation reactions (Reactions 1 and 2) and the corresponding
equations (1 and 2) are given in an earlier section; the corresponding
equation for the dissolution of anorthite reaction (7) is:
a_ +H Ca"=
an
-2 -2h . aA] +3 . a o 4 4
__ __ Q
a . au+an H
(44)
where a. is the activity of the ith species at equilibrium. The equilibrium
constants for the reactions shown in Tables 2 and 3 are in a data file labeled
DATA.TBL. The K(T) values reported (Appendix IB and 1C) at intervals of 25 °C
from 0-150 °C and at intervals of 50 °C from 150°-350 °C were computed
assuming a total pressure equal to the vapor pressure of water. (The
correction for pressure is described in a following section.)
The equilibrium constants were obtained from references listed in Table 2
and by the methods described below, which are listed in decreasing order of
reliability. The uncertainties in the computed equilibrium constants are
generally higher for the aqueous species especially at temperatures higher
than about 150 °C because their heat capacities can not be accurately
estimated. In the case of minerals, if heat capacity functions are not
available, they can be estimated from those of their oxides (Helgeson, 1969;
Berman and others, 1985).
(a) Reported experimental data (solubility, free energy, and other data)
or reported K values as a function of temperature over the temperature range
of 25° to at least 200 °C. The values were extrapolated and interpolated to
the temperature values used in this code.
(b) Computed using KELYCOB (Helgeson, 1971a) and SUPCRT (Helgeson,
1985), which computes the equilibrium constants of a given reaction (log K )
as a function of temperature and pressure. Generally the input to these
programs for solids are the coefficients A, B, and C for the Maier-Kelley heat
capacity power function (Kelly, 1960) given below
CC - A + BT + - , (45) P T^
54
the standard state enthalpies of formation (Hf), and the standard state
entropies (S?) of all the components involved in the reaction. KELYCOB
computes the K(T) values from an integrated form of Van't Hoff's equation
(Helgeson, 1969),
g
2
2
298.15
1
. 303RT
1
.303R
298.
f298.
2
15
15
.303R
AC
AC
op,:
oV,'
( f(T)dT
(T)dlnT
298.15
(46)
The heat capacity of the aqueous species Na , K , Li , Ag , NH, , Cu ,
M +2 . +2 _ +2 n +2 _, +2 _ +2 . +2 +2 _ +2 M +2 _ +3 A1 +3 - Mg , Ca , Sr , Ba , Pb , Zn , Cu , Hg , Fe , Mn , Fe , Al , F ,
Cl~, OH", HS", HC03 ", S04 " 2 , NaCl°, and Si02° can be described by this
equation (Helgeson and others, 1981; Helgeson, 1985):
- wiTx (47)where C.. . , CL . , 0. and w. are empirical constants derived separately for each
aqueous species, i, and x is the derivative of the variation of the dielectric
constant of water, c, with temperature (Helgeson and others, 1981).
A program called IONK was created which performs the function of
KELYCOB, but uses the coefficients in equation (45) or those in equation (47)
as input. IONK was used when the coefficients C. . , C,. . , 6., and w. were
available .
KELYCOB and IONK were used to generate log K values at 25 °C intervals
from 0° to 350 °C for most of the solubility reactions reported on Appendix
1C. A number of log K values for the dissociation reactions of aqueous
complexes were also obtained by this method.
The heat capacity power function for many minerals reported in this
program are not known. They were approximated by summing up the heat capacity
power functions for the oxides. The expression
(7.11 + .0082 T)cal mole" 1 deg ~ l
55
(structural water) was used to represent ^0 in these approximations (Helgeson
and others, 1978). For several ions (i.e., those containing U, V, or P) heat
capacity was represented by a constant. The solubility constants of minerals
containing these elements are only reliable below 200 °C (Langmuir, 1978).
(c) Computed using DQUANT (Helgeson, 1971b) . This program requires only
that AH° (T ) and AS° (T ) be known; it was used where no heat capacity data
of any kind are available for one or more of the species involved in the
reaction. This last condition covers many of the aqueous reactions reported
in Table 2. DQUANT computes K(T) values by evaluating (Helgeson, 1967)
AS° (T ) , r x r 0log K(T) - 2.303RT [Tr - -^- (1 - exp(exp(b + aT)
(T - T ) AH°(T )
- c + 0 »J - 2303RT (48)
where $, W, a, b, and c are temperature - independent constants characteristic
of the solvent, and R is the gas constant.
DQUANT assumes that AC° changes monotonically but nonlinearly with
temperature. Dissociation constants computed from this program are often much
closer approximations of actual dissociation constants at higher temperatures
than those computed assuming AC° (T) - 0 or AC° (T) - a constant (Helgeson,P » ^ P » ^
1969) . K(T) values obtained with DQUANT are reasonable approximations only to
about 150 °C.
A correction factor was applied to some of the K(T) values generated with
DQUANT at temperatures higher than 150 °C. These factors were generated
either graphically by comparison with the K(T) values of similar complexes or
by generating AC° using K(T) values from 0° to 150 °C, then using them in P > r
equation (46). Even with the application of these correction factors, the
errors involved in the values of K(T) at temperatures higher than 200 °C are
large; this introduces large uncertainties in computations carried out with
SOUMINEQ.88 at these high temperatures.
(d) Values for K are available at two or more generally low
temperatures. Values for AH and AS are derived from this data using two
equations of the form:
56
log K(T) 2.303RT - AHr ' TASr (49)
and solving for AH° and AS° algebraically. This method was used only when AC
could not be derived from available data. Values for K at higher temperatures
were calculated using Equation (48).
(e) Entropy was estimated by Arnorsson and others (1982) using
correlation plots of the known entropies of ions as a function of molecular
weight. Enthalpy was then calculated from the stability constant using
Equation (49).
(f) A value for K is available only at 25 °C; it was extrapolated using
the assumption that the curve of log K as a function of temperature is
parallel to that of a similar species.
(g) A value for K is available only at 25 °C; it was extrapolated using
Bryzgalin's method (Bryzgalin and Rafal'skiy, 1982):
298 72600 Z 1 -log K(T) - -^ (-log K(298)) + ^ ( - - 0.0128) , (50)
where
P ZCL
2a3
"PZC"
3 a
2 Q
2Z - LzczA - Qz^ + ~ < 51)
and
3L2 - 5L +2(52)x 8
e is the dielectric constant of water, a is the sum of the Goldschmidt radii
of the simple ions from which the ion complex is-formed, z , and zr are theA O
charge of the anion and cation, respectively, L is the number of ligands
(PbClo has three ligands), and p is polarizability. Where p was not known it
was assumed to be zero.
Equilibrium Constants at Desired Temperature
Values of log K for aqueous complexes and minerals at the desired
temperature are interpolated from data in Appendix 1 by the subroutine TLUV.
The interpolation of the log K values uses the cubic function:
Y = a + bX + cX2 + dX3 , (53)
57
where X is the independent variable (temperature at which K values are
listed), Y is the dependent variable (log K values at the listed and specified
sample temperature), and a, b, c, and d are constants. This subroutine
calculates interpolated log K values between the reported intervals (25 °C
from 0-150 °C and 50 °C from 150-350 °C) that are in good agreement with the
original values.
Equilibrium Constants at Desired Pressure
The equilibrium constants (K) tabulated tin SOLMINEQ.88 are computed at
the vapor pressure of water. SOLMINEQ.88 has an option to compute the
solubility of minerals at a specified pressure using data tabulated in
Appendix IE. The pressure dependence of the equilibrium constant is given by
) T
where AV is the volume change of the reaction in the standard state. Values
of AV at higher temperatures and pressures for the dissolution reactions of
minerals can be obtained from the data of Helgeson and others (1978, 1981) and
Robie and others (1978). However, AV° values at higher T and P for the
dissociation reactions of most of the aqueous complexes are not available and,
therefore, Equation (54) cannot be used to calculate K values at higher
pressures for these complexes .
Correction of the solubility constants for pressure
Changes in the partial molal volume of aqueous species (V) and water with
pressure are the main contributors to the volume change in dissolution
reactions (AV ) ; minerals are assumed to be incompressible (Helgeson and
others, 1981). Data on the molal volume of water were obtained from Helgeson
and Kirkham (1974) . Values for the partial molal volumes of aqueous species
V. are sparse. They are calculated for the primary species using the data and
equations reported in Helgeson and others (198|1) and given by:
V .
a4iPT
58
w.Q , (55)
where a, . is the intrinsic volume of species i which is independent of
pressure and temperature; w.Q is the volume of solvation, the component of
partial molal volume related to the orientation of water dipoles around the
aqueous species. The remaining portion of Equation (55) is the volume of
collapse, that is, the component of the partial molal volume related to the
collapse of the water structure in the vicinity of the aqueous species. The
constants a-.., a,-., a,,., and a,, are empirically derived; 0. is a constant; P
is in bars and T is in degrees K.
The pressure effect on the K values for minerals was estimated at 500 and
1,000 bars and temperatures of 100°, 150°, 200°, 300°, and 350 °C. The data
were fit to a curve with the general formula
log
KP
K A + Bt + Ct6 , (56)
where t is in °C, and the constants A, B and C were calculated for each solid
phase at 500 and 1,000 bars. The term Ct reflects the extreme changes in the
partial molal volume (and therefore in K values) which occur above 300 °C.
Values for the constants A, B and C for each mineral are listed in Appendix
IE.
The subroutine PCLOGK calculates solubility constants at selected
pressure (P) below 500 bars using the following interpolation:
A log K50QP
log Kp - log K + jog , (57)
and for pressures above 500 bars using:
Kl,000 - A1°S K500> (P ' 500) log Kp - log K + AlogK500 + < 58 >
The pressure correction is significant when the pressure is several
hundred bars or more, especially at temperatures above about 150 °C. For
example, in Figure 2 it can be seen that at 1,000 bars the solubility product
of anorthite is increased relative to saturation pressure of water by factors
of about 30, 300 and 100,000,000, at 100°, 250° and 350 °C, respectively.
59
^o
10
8
050
0 Anorthite, 1kbar A Calcite, 1kbar n Calcite, 0.5kbar
150 250 Temperature (°C)
350
Figure 2. -- Effects of pressure on the solubilities of calcite and
anorthite. Note that the difference between the solubilities of
minerals at higher pressure and at vapor pressure of water
(A log K) becomes very large at temperatures higher than about 200°C
(Kharaka and others, 1985).
60
Correction of Dissociation Constants for Pressure
Values for the partial molal volume of most aqueous complexes are not
available at high temperatures and pressures and, therefore, equation (54) can
not be used to calculate K values at higher pressures. The pressure
dependence of K for aqueous complexes in SOLMINEQ.88 is obtained by the method
of Marshall and Mesmer (1981) , in which K at pressure P is given by:
AV(T) p(P)
In K(P) = In K(S) - -- In () , (59)
where K(S) is the value of K at saturation water pressure and p is either the
density of water at pressure (P) or at saturation vapor pressure of water (S) ;
ft is the coefficient of isothermal compressibility of water at temperature T;
and AV(T) is the volume change of the dissociation reaction at temperature T
and pressure S. It has been observed that the heat capacity and, by analogy,
AV of "isocoulombic" reactions (reactions which are symmetrical with respect
to the number of ions of each charge type) is nearly independent of
temperature (Lindsay, 1980; Murray and Cobble, 1980). Thus, Equation (59) can
be used with the 25 °C value of AV if the reaction is "isocoulombic", or is
made so by the addition or subtraction of the dissociation reaction for water.
For example, the dissociation reaction of the aqueous complex H-CCL:
H2CO° = HCO^ + H+ (8)
can be written in the isocoulombic form as:
H2CO° + OH" - HCO^ + H20 (9)
by combining reaction (8) with the ionization reaction of water
H20 = H+ + OH" . (10)
The equilibrium constant at higher pressures for (8) can be obtained from
In Kg (P) = In K9 (P) + In KIQ (P) , (60)
and
n p(P) In K9 (P) T = In K9 (S) T - In ( - ) , (61)
where n = AVg (S) - AV1() (S) at 25 °C.
Values of AV^g(S) and of K-Q at higher temperatures and pressures are
well known and are incorporated in SOLMINEQ.88. Values of AV for dissociation
61
reactions even at 25 °C and saturation pressure are poorly known; however,
they can be estimated from methods based on the electrostatic theory (Hemmes,
1972; Hemmes' method Is based on the Fuoss (1958) equation), or empirical
correlations (Millero, 1972; Swaddle and Mak, 1983). The AV values of
dissociation reactions for 48 complexes used in SOLMINEQ.88 have been obtained
either from available experimental data, or by estimation based on one of the
above methods. They are tabulated in Appendix IF together with the number of
water ionization reactions that must be added to convert the dissociation
reaction or the complex to an "isocoulombic" form. The specific equations
used to generate the data in Appendix IF and the original sources are detailed
by Aggarwal and others (1989).
The dissociation constants generally increase with increasing pressures
leading to an increase in the activity of the dissociated species and a
decrease in the activity of the complexes. The increases are relatively high
for the complexes of carbonate, bisulfide, ammonium and acetate species. The
increase in the activity of dissociated species when the pressure effects are
taken into account generally leads to reduced solubility products for
minerals. In the case of calcite, for example, the increase in solubility
shown in Figure 2 are reduced by more than a factor of 2 when the pressure
effects on the dissociation of carbonate and calcium complexes are taken into
account (see Aggarwal and others, 1989, for more details).
62
MODELING OPTIONS
SOLMINEQ.88 uses the chemical analysis of an aqueous fluid to calculate
speciation-solubility relations at a given temperature and the vapor pressure
of water or at a higher temperature and pressure with (1) a constant mass or
with (2) a transfer of mass (Figure 3). The mass transfer options include:
(a) addition of the gases, C0« , H^S, NH~, CH,, which may have
been lost prior to pH measurement,
(b) partitioning of the gases C02 , H^S, and CH, between water,
oil and/or gas phases,
(c) mixing with a second solution,
(d) dissolution/precipitation of a given amount of a mineral;
this may be continued to saturation with this or another mineral,
(e) addition or subtraction of a given amount of one or more
components of solution; this may be continued to saturation
with a selected mineral,
(f) boiling (formation of steam coupled with loss of volatiles
into the steam), and
(e) ion exchange and adsorption.
Calculations with a Constant Mass
The calculations with a constant mass can be carried out at a given
temperature as well as at the subsurface (or experimental) temperature. These
calculations can be performed with six options: (i) carbon; (ii) high-
temperature carbon; (iii) pH; (iv) one or two additional (user defined)
anions; (v) one additional cation; and (vi) one to five additional minerals.
Carbon Option
At a given pH, the distribution of carbonate species requires a value for
any one of the following: (i) total inorganic carbon (TIC); (ii) bicarbonate
and/or carbonate alkalinity (ALK); or (iii) total alkalinity (ALKTOT).
TIC, the sum of the concentrations of all aqueous species of inorganic
carbon, is given as:
63
Read input data /
Interpolate log K(T)
Calculate pressure correction
Calculate molallty. Eh, cation-anion balance
Calculate activity coefficients
Print molalities, activity coeffs, etc.
Subsurface temperature
COj/lost gases option
Gas distribution option
Ion exchange/adsorbtion option
Ratios and geothermometers option
Calculate saturation indicles
/ Print saturation indicies
Dissoiution/preci pitatlon
Figure 3. -- Flow Chart for SOLMINEQ.88
64
mTIC " "^CO* + S ^CO- + S mCO-- , (62)
where the summation covers the species and complexes of the summed species .
ALK, the sum of the equivalents contributed to the alkalinity titration
analysis by all the bicarbonate and carbonate species, is given as:
+ 2 2m - (63)
ALKTOT specifies that in addition to HCO.," and CO~I species, other inorganic
and organic species (e.g., Al(OH) ~ Ba(OH) + , CH-COO") were also titrated
during the alkalinity determination, and is given as:
ALKTOT - S m^- + S 2mCQ -- + S m^CM' + mBaOH+ + '" ' (64)
The carbon option in SOLMINEQ.88 is used to specify the criterion (TIC,
ALK, or ALKTOT) for the distribution of carbonate species. The choice of any
one of these criteria depends on the nature of the chemical analysis
available. The other two are calculated and all three are printed in the
output .
High -Temperature Carbon Option
When a value for TIC is available, the distribution of carbonate species
at a higher temperature is performed with a constant TIC. However, if a value
for only ALK or ALKTOT is available, two alternatives exist for the
distribution of carbonate species at high temperature: (a) constant alkalinity
(ALK or ALKTOT) or (b) constant TIC. The value of TIC used at high temperature
is calculated at the end of the low- temperature species distribution. If the
high temperature calculations are carried out with a constant alkalinity, the
resulting value of TIC in the solution may be significantly different from
that at the low temperature because of the shift in carbonate equilibria with
temperature. Similarly, a constant TIC at high temperature may result in a
change in the value of calculated alkalinity.
pH Option
This option is most useful when the pH of the solution was not determined
or may be in error, and the water is known to have been in equilibrium with a
carbonate mineral. Formation water in reservoir rocks are often in
equilibrium with calcite at depth; thus, this option can be used to calculate
65
the pH of this water. If it is known that the solution was in equilibrium
with calcite, dolomite or siderite, then SOLMINEQ.88 will adjust the pH of the
solution until log(AP/K) of the specified mineral is less than or equal to
0.05 (or to a value defined by the user - FSAT).
The equilibrium pH is guessed by SOLMINEQ.88, the distribution species is
calculated, and the saturation index (SI) of the desired mineral is
calculated. The SI is calculated in terms of the most abundant species of
C0«, that is, the SI will be calculated accbrding to one of the following
reactions:
MCOa/ N + 2H+ -* M** + H0CO° , (11) 3 (s) *- L j
MCOa/ N + H+ -» M++ + HCO" , (12)3(s) «- J
MCO,, N -> M++ + CO," , (13) 3(s) <- 3
where MCO« (s) is either of the carbonate minerals, calcite or siderite, and M
11 i I
is Ca or Fe , respectively. If saturation with dolomite is specified;
reaction (11), for example, is written as
CaMg(C03 ) 2 + 4H+ 2 Ca++ + Mg++ + 2H2CO° . (14)
If the SI is not within the tolerance limit (0.05 log units or a value defined
by the user), the pH is adjusted. The initial adjustment is determined
through the use of reaction (11), (12), or (13). Subsequent adjustments
increase either the size or direction of the pH step until the SI sign
changes. Once this occurs, an interpolating polynomial in SI and pH is
repeatedly used to obtain new values until the FSAT criterion is satisfied.
Mineral saturation using the pH option is attempted within the pH limits of
0.0 and 14.0. The pH option is calculated after the initial distribution of
species, and before the "HITEMP" calculation.
Additional Anions Option
SOLMINEQ.88 is particularly useful for modeling water-rock interactions
in sedimentary basins where aqueous organic species may be present at high
concentrations (up to 10,000 mg/L) (Figure 4) and can play an important role
in these interactions. The total number of possible aqueous organic species
is extremely large and it is not possible or even useful to incorporate all of
them in this code. However, recent work (Cdrothers and Kharaka, 1978; Kharaka
and others, 1986; Lundegard and Land, 1986; MacGowan and Surdam, 1988) has
66
10,000
5000
1000
500
«£ 100
50
Zone 1
JT
I + I ll
Zone 2
O
O
O
EXPLANATION
O Texas (Oligocene) California (Miocene to Cretaceous) A Alaska (Permian to Triassic) + Texas (Pleistocene)
J___I
Zone 3
60 80 100 120 140 160 200 220 Subsurface Temperature (°C)
Figure 4. -- Distribution of organic species in oil field waters from
United States of America. Note that the highest concentrations
are in waters from reservoirs at temperatures of 80 e C to 100°C.
67
shown that acetate, oxalate and succinate are the dominant organic species in
oil field waters. These ligands and their complexes are incorporated in the
code.
SOLMINEQ.88 has an option to add two user-defined organic ligands to the
above three. This option is included because a total of five organic ligands
is probably adequate to examine the role of organics on inorganic interactions
in any natural-water system. The number of organic ligands examined can be
increased as desired by making several runs of the program with the same input
except for changing the list of the user-defined organic ligands in each run.
This option has also been included because ii: is anticipated that potentially
important new aqueous organics will be discovered in natural waters as better
methods of sample preservation and analysis are used (Kharaka and others,
1986) and as more systems are studied.
The equations necessary for distribution of these user-defined ligands
and their complexes with 14 inorganic cations are incorporated in SOLMINEQ.88.
These ligands and their complexes are already included in the equations that
compute titrated alkalinity and total hydronium. The ligands can have a
charge of -1 to -4. Table 5 gives the identification number and the list of
possible cations that may form complexes with these ligands. The dissociation
constant for each complex must be supplied by the user. Otherwise, the
complexes are treated as being unstable. In the case of Na-Anion #1, for
example, the dissociation reaction, assuming 2 charge for the ligand, is
Na-Anion #1 (1 ~ 2) + Na+ + Anion #12 (15)
The input subroutine to this code (see INPUT) prompts the user to provide
the dissociation constants and other data necessary to implement this option.
Additional Cation Option
This option allows the user to study speciation-saturation states of one
(during any one simulation) user-defined cation that is not in SOLMINEQ.88.
As in the case of additional anions, all the equations necessary for the
distribution of this cation and its complexes with all the anions (including
the user defined anions) in the code are incorporated in SOLMINEQ.88. Again,
the input subroutine to this code prompts the user to provide the
dissociations constants and other data necessary to implement this option.
68
Table 5 Index numbers of user-defined anions and cations
and their complexes
1)2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
Anion#l
H+ - Anion#l
2H+ - Anion#l
Al - Anion#l
Ba - Anion#l
Ca - Anion#l
Cu - Anion#li i
Fe - Anion#l
K+ - Anion#l
Mg - Anion#lII
Mn - Anion#l
Na - Anion#l
Pb - Anion#l
Sr - Anion#l, ,
Zn - Anion#l
H+
2H+
Al+3
Ba++
Ca++
Cu+
Fe++
K+
Kg4"1"
u ++Mn
Na+
Fb^
Sr++
Zn++
Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
- Anion#2
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
Cation
- Cl"
4
- HC03
- OH"
- P04 3- F"
- CH3COO"
- CO^"
- HS"
- C2°4"
- C.H.O"444
- Anion#l
- Anion#2
69
Additional Minerals Option
SOLMINEQ.88 has 220 minerals in its data base. This number can be
increased as this option allows the user to include up to five new minerals
during any simulation. This option also can be used to input data for
minerals present in the code in order to investigate the geochemical
implications of using solubility constants that are different from those in
the existing data base. This option should prove particularly useful in the
study of the interactions of minerals with variable chemical composition
(solid solutions). If the solubility constants for the end members are
available in Appendix 1C, the user can calculate the solubility of the impure
phase assuming ideal mixing, then use the calculated values in the input for
this option. The solubility constant for an ideal binary solid solution (K.)
is given by:
log K.^ - Xlogl^ + (l-X)logK2 + XlogX + (l-X)log(l-X) (65)
where K, and K,, are the solubility constants for the end-member minerals and X
and (1-X) are the mole fractions of these end members in the phase. Most
solid solutions, it should be noted, require a more rigorous treatment and
additional parameters to calculate their solubility constants (Navrotsky,
1987).
The reactions for the congruent dissolution of optional minerals are
completely general and may involve up to eight of the aqueous species in Table
6 together with a numerical constant. The numerical constant is included in
the solubility reaction to simulate the effects of one or more aqueous species
not present in Table 6 or in the user defined anions or cation. The input
subroutine to SOLMINEQ.88 prompts the user to provide the solubility constants
and the aqueous species and their stoichiometry to implement this option.
70
Calculations Involving Mass Transfer
Addition of Lost Gases
During sampling of subsurface fluids, volatiles (including CO^, H2S, NH3 ,
and CH, ) may be lost before the solution pH is measured. These gases can have
a significant impact on the calculated, in- situ pH of the solution and must be
included in the analyzed composition of the fluid. Three options are
available in SOLMINEQ.88 which can be used for titrating the lost gases back
into the solution (Figure 5): (a) gas-water option, (b) gas-water-oil option,
and (c) C0» option.
(a) Gas -Water Option: this option is used when the amount of lost gases
is known. The amount of a gas lost is added to the total concentration of its
constituent component in the water and an equivalent amount is added to the
summation of hydronium ions in the water as:
TIC - TIC + m_n (66) C02 (lost)
Lln>J
"m^
(Sm
, U flniJ i U
t " "H t ', U J , U
^ - Sm _) -
2
- »NH3
(Sm _,_ -
(lost)
(lost)
Sm
- - ,. . ,. ^ (68)3,t 3,t 3 (lost)
and
) + 2m + 2m^ - m^ (69) H OH' H OH' C02 ^2S 3
where the final (f) and initial (i) summations cover all the species with H
and OH . Methane, pf course, does not affect the hydronium balance.
(b) Gas-Water-Oil Distribution Option: samples of oil-field waters for
chemical analysis are generally collected after they have been separated from
the oil phase. During the separation process, a gas phase (commonly containing
C02 and CH, , but sometimes with H»S) is also produced which may consist of
gases derived from one or more of the three subsurface phases: oil, water, and
natural gas. Because dissolved C02 gas has a significant impact on the in
situ pH of the water, it is important to know the distribution of gas between
the three phases in the in situ environment. The Gas -Water-Oil distribution
option in SOLMINEQ.88 has been designed to perform such calculations. The
necessary equations for equilibrium distribution of gases between oil (o) ,
71
Speciation calculationsat the final temperature
(well-head or in-situ)
To Si - O(Calcite/Siderite/
Dolomite)
CO2 /H 2S/CH 4 into water and oil
Speciation-solubility calculations
Figure 5. - - Flow chart for calculations with addition of gases to
water and oil.
72
water (w), and natural gas (g) are as follows:
P P Pr r>r\ ril U CC0 9 OH 4 H 9 b, 2 . , = 4_ . ^ = ± (70)KC09 ,w mm TT ' KCH w m ' *H«S,w m^ '2 C0 0 ,w 4 CH,,w z H Q b,w
P P P
^C00 CH. H9 S= - k = - k. = - (71)
C02'° mC02 ,o' CH4'° mCH4 '°' 2S '° V'°
- Cm + m + M ' < 72)
M = Pm + m + M (74-) n9 S,t H9 S,O n9 S,W n9 S,g
W
c - w~ > (75)w
M M M.. M,. C02' s = CH4' S _ 112 S>S = 1!20>s , (76)P P P PH
Pt = PCH + PCO + PH S + PH 0 ' ^ 77)
where k is the Henry's law coefficient for the solubility of the subscripted
gas in water or oil, m is the molality, M is total moles of a gas, C is the
weight ratio of oil (W ) to water (W ), and P is the reservoir pressure.
Note that the Henry's law coefficients are expressed in the molality
convention (moles of gas/Kg of water or oil) and not in the mole fraction
convention (moles of gas/mole of fluid) because the term mole cannot be
applied to oil which is a heterogeneous mixture of many compounds. The above
equations are derived with the assumption that all gases (C09 , CH4 , H9 S, H9 0),
and their mixtures, behave as ideal gases (i.e., fugacity coefficients = 1).
The Henry's law constants for the water phase are calculated from
Drummond's (1981) equations described in the section on the activity
coefficients of neutral species. For the oil phase, the constants must be
obtained and entered by the user. The user can calculate the Henry's law
3 constants for oil (density range of 0.63 to 0.90 g/cm ) using the data
(Figure 6) and equations summarized by ASTM (1985) and reported in Beerbower
(1980). The density of oil at 15 °C («60 °F) in kg/L or its API gravity at 15
°C must be known by the user.
73
10.0p
0.0150 100 150
TEMPERATURE. 0 C
200 250
Figure 6. -- Solubility constants of selected gases in oil
(density - 0.85 g/ml at 15°C) modified from ASTM (1985)
74
Water samples are commonly collected from the test separator. If the
separator pressure is greater than 1 atmosphere some dissolved gas will be
lost during water sampling. To compensate for this, an additional SOLMINEQ.88
run must be made to equilibrate the water with the separator gas phase at the
separator pressure by titrating C02 , H2S and CH^ back in. The concentrations
of C02 , H2S and CH, in the water must be calculated from equations (70-77).
The C02 and H2S options are then used to equilibrate the separator water at
the separator pressure for the separator P-,A and P c . The user must thenUUrt HrjO
enter the modified m., c , nuu , TIC and pH into SOLMINEQ.88, and activatesrlrtO , w *- "/. » w
the water-oil-gas distribution option which calculates the distribution of
gases at reservoir pressure and temperature assuming that the gas phase in the
separator was derived from only two phases, water and oil. If this assumption
leads to the condition
PCH4 + PC02 + PH2S + PH20 > Pt ' < 78)
then the third phase, vapor, is included in the distribution calculations.
Once the pH and the distribution of the aqueous species are determined,
SOLMINEQ.88 calculates the concentration of the volatiles in the water, oil,
and vapor phases by simultaneously solving equations (70) to (77). At this
point a check is made on the mass balance of the volatiles (including all
their aqueous complexes). If not satisfied, the TIC, total H~S and/or total
CH, in the water are adjusted in the correct direction. A new pH and
distribution of species is calculated. This cycle is repeated until mass
balance is achieved.
(c) C02 Saturation Option: this option can be used for a variety of field
and experimental conditions. In many cases, the amount of CO^ lost from a
subsurface fluid is not correctly known. However, it may be known that the
fluid was in equilibrium with calcite, dolomite, or siderite. The CO,, option
can be used to determine the amount of C0~ required to achieve saturation with
the specified mineral and thus the subsurface pH of the solution. Another use
of the C0« option is in the case of certain experiments where the amount of
C02 exsolved between two pH measurements is not known; the C0« option can be
used to determine the amount of C0« lost. A third use of the C09 option is in
75
calculating the pH and distribution of species in experimental solutions where
the experiments were carried out at a constant PCQ . In some such cases, the
pH of the solutions cannot be measured at the imposed pressure of CCU.
However, it can be calculated using the C00 -option to achieve a specified P_n2. LU2
or m,. ^ in solution.«.-
The algorithm used for the C00 option is similar to that used in the pH
option. The equilibrium test (FSAT) is formulated as one of the following
relationships :
FSAT - PH - PH (calculated) - (79)
or
FSAT - mH2Co3 (desired) " "^CC^ (calculated) (80)
orF<>AT = P - P (R"\ }
C02 (desired) C02 (calculated) ^ '
or
FSAT - Saturation Index (SI) (calcite/siderite/dolomite) . (82)
The saturation index of one of the carbonate minerals is calculated using the
most abundant species of CCU , as discussed earlier in the pH option.
CCU is incremented, species distribution is recalculated and convergence
is achieved in the aqueous model and on hydronium mass -balance. If the
absolute value of FSAT is increasing, the step size or direction is modified
such that the absolute value of FSAT decreases. Once the absolute value of
FSAT is decreasing, step size is increased until FSAT changes sign. The value
of FSAT and total CCU are then fit with a polynomial in order to interpolate
to a new value of FSAT. This process is continued until FSAT is less than the
user defined limit (default value = 0.05 log units).
76
Boiling Option
SOLMINEQ.88 may be used to predict the changes in solution composition
and the saturation states of minerals as a consequence of boiling. There are
two major effects of boiling:
1. Loss of steam.
2. Loss of gases such as C09 , H«S, and NH-.
The loss of steam can be simulated by subtracting pure water of neutral
pH from the solution. This is accomplished by multiplying the molality of
each of the species and (Sm -Sm ) by the factor 1/(1 - X) where X is theH OH"
fraction of water removed by boiling; and is given by
WH90,v XfO.v X = = ~ , (83)
WH20,t ^O,^ + ^O.v
where n = is the number of moles and W - the weight of water in the vapor (v) ,
liquid (/?), and total (t) system, respectively.
If the P-V-T relationships of all the gases are known, the amount of each
gas lost due to boiling can be calculated. The partitioning of volatiles CO^ ,
CH, , NH.,, and H^S is calculated following Drummond (1981) by making use of the
volatility ratio, VR. For example, VR for C09 is calculated from:
VRCO - ; Z RT (84) LU2 *C02 C02 R L
fcowhere k,. is the Henry's Law constant given by 2 .
mco2
and vX 0 is the specific volume of water vapor, and x a*id Z are the fugacity
coefficient and compressibility factor of C09 , respectively. In the
calculation, the product *Z is set equal to 1.0 which is a reasonable
assumption at relatively low pressures. The VR is defined by:
77
n
VR.CO, n
CO, i£ CO,
n
v "H20 n
CO, i £ CO,
d-X)
X(85)
where n - number of moles of C02 or 1^0. Normalizing to 1000 grams of H20
(i.e., assuming that 1,000 grams of EJQ are present in each of the liquid and
vapor phases), equation (85) becomes:
mCO,VR -
mCO,
(86)
where m is molality.
The boiling calculation is based on a system containing 1000 grams of
water. Therefore the mass balance equation for CO^ becomes
mCO,= n
CO,£ _,_ vnco2+ nco2 (87)
where the superscript i refers to the molality or number of moles before any
boiling occurs. For a given fraction of water, X, removed by boiling,
equation (85) may be combined with equation (87) to give:
VRCQnCO, VRco2+ (88)
SOLMINEQ.88 solves for the partitioning of volatiles by estimating from
equation (88) the amount lost to vapor. Because the effect of a change in pH
£ £ is to increase or decrease the amount of n_Q or n~. by reactions such as:
and
H+ -
OH
(16)
(17)
SOLMINEQ.88 then utilizes an iterative scheme
total concentration of the volatile components in water (i.e. TIC);
calculating the new pH and aqueous species distribution; and repartitioning
the volatiles between vapor and liquid until
by increasing or decreasing the
the mass balance for volatiles in
both phases (including all aqueous species) is achieved.
78
Mixing of Two Solutions Option
SOLMINEQ.88 has an option to mix two solutions in specified proportions
(by weight) at constant or varying temperature. Mixing is performed based on
analytical molalities. The mass-balance criteria for the mixture are
formulated as follows:
2m. (mixture) - X, 2m. ., + X2 2m, « , (89)
(2m - 2m )mixture - X,(2m - 2m ).. + X«(2m - 2m )« , (90) H OH" H OH" H OH"
where m. is the analytical molality of the species of the ith element and X-
and X« are the proportion of water (by weight) in which solutions 1 and 2 are
to be mixed. The carbon mass-balance in the mixture is carried out using the
TIC option.
Dissolution/Precipitation Option
The dissolution/precipitation option in SOLMINEQ.88 can be used to carry
out the reactions listed below.
1-Dissolve/precipitate a given amount of mineral;
2-dissolve/precipitate a mineral to saturation;
3-dissolve/precipitate a mineral to saturation with an other mineral;
4-add/subtract aqueous components to saturation with a mineral; and
5-add/subtract components from a congruent, incongruent, or net
reaction. Reaction may follow a kinetic rate law.
This option allows the user to titrate in (or out) a specified amount of
aqueous components (see Table 6) (or of a titrant mineral) to (or from) the
aqueous solution. The amount to be titrated may be specified by the user in
moles of component per kilogram of solution. Alternatively, the amount may be
determined by adding or subtracting the aqueous components (see Table 6) (or
titrant mineral) until saturation is reached with any of the 214 minerals in
the database of SOLMINEQ.88.
If a mineral is specified to be dissolved/precipitated, equilibration is
achieved by dissolving (if the titrant mineral is undersaturated) or
precipitating (if the titrant mineral is supersaturated) the titrant mineral.
A series of reaction steps (i.e., moles of components or titrant mineral),
initially based on the concentration of the least abundant component of the
79
Table 6 List of aqueous species components
No.
1
4
7
10
14
18
23
27
30
33
136
246
Species
C.++
K+HCO~
HoOA1+3
FeMn"^
Z
F
n
H2S(aq)
N03
C2°r
No.
2
5
8
12
15
21
25
28
31
48
169
265
Species No.
Mg^ 3
cr 6H+ 9
SiO? (aq) 13
Ba 16
Hg"^ 22Pb"1"1" 26
H2AsO~ 29
H3B03 (aq) 32
CH3COO~ 98
U02 210
C.H.O" 285 444
Species
Na+SO''
OH"Ag+
Cu+
Li+
Sr"1^
4NH3 (aq)co"
-3 V04
CH4 (aq)
The species numbers in the input refer to the index
number of selected species in the data file which
are organized above. The species (with the excep
tion of H and OH ) are those normally entered in
the input data file for SOLMINEQ.88, and are the only
species allowed to be used in the dissolution/
precipitation options and ion exchange/adsorption
options. For the ion exchange/adsorption options,
vacant surface site is assigned the number zero.
Presently moles of H^O is fixed in the program at 1
kilogram.
80
mineral to be saturated and its degree of departure from equilibrium (eg.
saturation index, SI), are executed in order to find an interval where the SI
changes its sign. An interpolating polynomial technique is then used to find
the amount of mineral to be dissolved/precipitated for which SI is
sufficiently close to zero.
It is not always possible to achieve saturation with a mineral. Suppose
the user wished to dissolve/precipitate gibbsite to1 reach saturation with
kaolinite. If the SI of gibbsite is negative, it can only be dissolved.
Dissolving gibbsite will increase the SI of kaolinite. If the SI of kaolinite
is already positive, it will steadily increase as more gibbsite is dissolved
into the aqueous phase. Clearly the SI of the kaolinite must be negative in
order to reach a possible solution.
A mixture or solid which is not in the database can be titrated in and
out by specifying its components (listed in Table 6) . In this way a congruent
or incongruent reaction can be followed. The reaction may be a simple one
involving one or two minerals and aqueous components ; or it may be the sum of
several reactions (a net reaction) involving several minerals and aqueous
components. The simple or net reaction may follow a rate law (user defined)
which allows the knowledgeable user to compute changes in composition through
time and/or space. The mass -balance criteria are formulated as:
Smi,t" S(mi,soln +Ami,j ) (91)
(Sm - Sm ). - (Zm ^ - Zm ) .. + (Zm , - Zm ) . . . , (92) H+ OH' * H+ OH' soln H+ OH' added
where m. is the analytical molality of the species of the i element. Am. .
is the molality of the jth species of i element to be added to the solution.
To illustrate the use of this option for a congruent reaction of a mineral not
in the database, let us consider the dissolution of one mole of clinochlore
g ( .) according to the reaction:
+ 16H+ - 5Mg++ + 2Al+3 + 3HSiO° + 6H0 . (18)
For every mole of clinochlore dissolved, 5 moles of Mg, 2 moles of Al,
and 3 moles of silica will be released and 16 moles of hydronium will be
81
consumed. The net hydronium balance of the solution will be decreased by only
4 moles of hydronium because H,SiO? is included in the hydronium summation.
Thus, the mixture would have the following constraints on the mass-balance
that will be different from the original solution:
mAl,t = mAl,soln + 2 ' (93)
, soln+ 5
0 . ^_ ~ m_ . n + 3 Si,t Si, soln
(94)
(95)
(2m , - 2m ). - (2m , - Sm ) , - 4 /Qfi ^ H+ OH" C H+ OH-"*11 ' (96)
Note that the hydronium balance is decreased only by 4 because 12 of the 16
moles of hydronium lost will be added back by H.SiO,.
If a mineral in the database is specified, SOLMINEQ.88 automatically
determines the component stoichiometry to be added to the solution, saving
time for the user.
Ion Exchange and Adsorption Option
Surface chemical processes can be simulated in SOLMINEQ.88 using two
models: ion exchange and a preliminary adsorption option. The ion exchange
model treats the exchange of cations or anions on a constant charge surface;
the adsorption model simulates the exchange process on a surface where the
surface charge is developed due to the ionization of surface sites at the
solution-surface interface. The major distinction between the two models is in
the treatment of the activity of aqueous species on the surface. In the ion-
exchange model, the surface activity of aqueous species is considered to be
the same as in the bulk solution. For the adsorption model, an electrical
potential term is used to calculate the surface activity from the activity of
the species in the bulk solution. Excellent discussions of the ion exchange
and adsorption processes are given in several references (Hohl and others,
1980; Westall, 1980; Westall and Hohl, 1980; polt, 1982; James and Parks,
1982; Sposito, 1982) and the user should read these articles to understand the
limitations inherent in modeling surface chemical processes and to obtain
values for the selectivity constants to be used for modeling.
The ion exchange and adsorption models in SOLMINEQ.88 are completely
general and can be used to simulate the interaction of any of the aqueous
82
species in the data file (Appendix IA) through the use of the appropriate
components (Table 6) . A maximum of 10 aqueous species (components) may be
selected for each run to interact with a single surface of constant or varying
charge. It is assumed that the activity coefficients of surface functional
groups (X or SO") and surface species (e.g. NaX or SONa) are equal to one.
The ion exchange process, for example for a surface with no vacant sites and
of constant charge exchanging with Na, Ca, and K, is given by the following
reactions :
Na++ KX = K+ + NaX , (19)
2Na++ CaX - Ca++ + 2NaX , (20)
where X represents a surface site. These would be specified to SOLMINEQ.88
using the following three association reactions:
X" + Na+ = NaX , (21)
X" + K+ = KX , (22)
2X~ + Ca++ = CaX . (23)
The cation exchange capacity (CEC) is the sum given by:
CEC = NaX + KX + 2CaX2 , (97)
and is expressed in meq/kg of the solvent. The CEC is given by:
AN 1000CEC (meq/kg) = ̂ , (98)
A
where A is total area of the exchanging surface per kg of water, N is the-L O
number of sites per unit area of the surface, and N. is Avogadro's number.f\
The equilibrium constants for reactions (21), (22), and (23) must sum to the
equilibrium constants for reactions (19) and (20) . They can be combined with
equation (98) to solve for the concentration of surface and aqueous species by
using an iterative technique similar to that used for the distribution of
species .
The adsorption model in SOLMINEQ.88 is based on the Gouy-Chapman theory
following Healy and White (1978) for the distribution of charge and potential
at the solution- surf ace interface, which states that:
OQ + ad = 0 , (99)
where a is the charge density at the surface (o) or in the diffuse layer made
up of coions and counterions (d) . To illustrate the implementation of the
Gouy-Chapman model, let us consider an amphoteric surface with ionizable
83
surface sites, SOH, in an NaCl solution. The intrinsic ionization of these
sites is given as:
SOH,
SOH
SOH + H
SO + H
and the specific adsorption of ions as:
SOH + Na
SOH + H
SONa H
Cl" - SOH0C1 s 2
where the subscript "s" refers to the surface ions. The relation between the
activities of ions in bulk solution and surface is given by
(24)
(25)
(26)
(27)
a exp(-z«Y ); Y aq rv o 7 ' o /cT (100)
where a is the activity of an ion in the bulk solution, z is its charge, e aq
is the electron charge, ^ is the surface potential, K is Boltzman's constant
and T is the temperature in Kelvin. The mass-action equations for (24) to
(27), with the surface concentration described by equation (100), are:
K24 "ESOH * V
ESOH+ (101)
'so' V_________S_
25 ESOH(102)
ESONa°
ESOH ' aNa+s
(103)
Now,
K
ESOH2C1°
27 V - ESOH ' acrs s
(104)
(105)
84
LIMITATIONS OF GEOCHEMICAL MODELING
Geochemical models are extremely powerful and useful tools for
understanding the processes of water-rock interactions and predicting their
consequences. However, uncertainties involved in computations carried out
using SOLMINEQ.88 and similar computer codes should be recognized by all
users. Major uncertainties may be imposed by the amount and quality of
thermochemical and other data used to calculate the equilibrium constants (K)
for the dissociation of complexes and dissolution of minerals. Uncertainties
in the computed activity coefficients of aqueous species are probably less
severe except for those species (including aluminum and carbonate) that have
no published Pitzer coefficients in concentrated brines at high temperatures.
Usefulness of the results obtained is limited also by the completeness and
reliability of the reported physical and chemical parameters used as input to
the codes. It is also important to take the necessary precautions to insure
that the sample is "representative" of the water in a specified part of the
aquifer (Hull and others, 1985).
Physical Parameters
Accurate temperature and pressure values are needed to model water-rock
interactions, especially in deep sedimentary basins where these values may be
high. In these basins, oil and gas wells are the primary sources of
temperature data. Unfortunately, the accuracy of temperatures obtained from
oil wells varies widely (Meyer and McGee, 1985). Many operators do not
recognize the importance of temperatures in exploration and production of
petroleum and make no attempt to gather accurate data. Also, most
temperatures are obtained from wells during drilling when the temperature
distribution in the hole is under maximum thermal disturbance. The most
reliable temperatures are those obtained from static bottom-hole pressure and
temperature surveys generally conducted in production wells. Temperatures
obtained from drill-stem tests are of intermediate accuracy. However, the
majority of temperatures are obtained from electric log headings; these give
the least reliable data, and are generally lower than the true subsurface
values. Meyer and McGee (1985) showed that the discrepancy between log-header
and static bottom-hole test temperatures from the Wattenberg field, Colorado,
is large, ranging from 11 °C to 61 °C.
86
ESOH+ " ESO"a = - - | - - ~ ~ , (106)
SOH9 + SO + SONa + SOH,, Cl + SOH
where E refers to the equivalent fraction of surface sites occupied by the
species. The dominator of equation (106) thus is unity and a is the
fractional surface charge. Following Hunter (1981),
ad - {2e o e/cT Sni (exp(-Zi .YQ ) - 1)} 1/2 , (107)L
where n. is the number of ions of i per gram of the solution (n. l,OOONAm.;1. 1. A 1.
m. being the molality of each charged species inj solution), is the
permittivity of the vacuum, and e is the dielecdric constant of water.
Equations (99) and (101) to (107) are sufficient to uniquely solve for
the concentrations of the surface species in equilibrium with the solution at
a given pH, temperature and surface potential, ^». The calculation routine in
SOLMINEQ.88 satisfies equation (99) by iteratively changing the value of Y
until its sign changes. An interpolation polynomial is then used to solve for
the final value of Y .
85
Chemical geothermometers, based on the concentration of silica and
proportions of sodium, potassium, lithium, calcium and magnesium in water from
hot springs and geothermal wells, have been used successfully to estimate the
subsurface temperatures of the reservoir rocks (Fournier and Truesdell, 1973;
Fournier, 1981). Modified versions of these geothermometers and a new
chemical geothermometer, based on the concentrations of magnesium and lithium
(Table 7), were developed (Kharaka and others, 1985; Kharaka and Mariner,
1988) to estimate the subsurface temperatures (30 °C to 200 °C) in sedimentary
basins where water salinities and hydraulic pressures are generally much
higher than those in geothermal systems. SOLMINEQ.88 computes all the
chemical geothermometer listed in Table 7.
Quartz, Mg-Li, Mg-corrected Na-K-Ca, and Na-Li geothermometers generally
give concordant subsurface temperatures that are within 10 °C of the measured
values for reservoir temperatures higher than about 70 °C. Mg-Li, Na-Li, and
chalcedony geothermometers give the best results for reservoir temperatures
from 30 °C to 70 °C. Subsurface temperatures calculated by chemical
geothermometers are at least as reliable as those obtained by conventional
methods. Chemical and conventional methods should be used together where
reliable temperature data are required. The user then makes the selection of
the temperature to be used for the high temperature option in SOLMINEQ.88.
For more details see Kharaka and Mariner (1988).
Hydraulic pressure, as discussed earlier, is also an important parameter
that affects the equilibrium constants for the aqueous species and minerals,
especially at temperatures higher than about 150 °C. Assuming a hydrostatic
pressure gradient of 0.45 psi/ft (10.2 kPa/m) is generally reasonable for
petroleum wells immediately after drilling. However, in geopressured
geothermal systems, initial hydraulic pressure gradients may reach lithostatic
pressure gradient of 1.0 psi/ft (22.6 kPa/m). Production wells may have
hydraulic pressures that are much lower than the original (virgin) shut-in
pressure of the well. Accurate pressure readings at regular time intervals
are generally available from the operator and should be extrapolated or
interpolated to the time of sampling.
87
Table 7 Chemical Geothermometers in SOLMINEQ.88
(from Kharaka and Mariner, 1988)
Ge o the rmome t e r Equation
(Concentration^ are in mg/L; t in °C)
1. Quartz 13090.41 - log (k.pf)aH/SiO. 4 4
- 273.15 ;
pf - (1-7.862X105 e (3 - 61xl° ' t) p(bar))
2. Chalcedony 1032-0.09 - log (k^pf) - 273.15
3. Mg-Li 2200 - 273.15log (jMg/Ll) +5.47
4. Na-K 1180log (Na/K) +1.31 - 273.15
5. Na-K-Ca
6. Mg-Corrected,
Na-K-Ca
699
7. Na/Li
t
AtMg
log (Na/K) + 0 [log(JCa/Na) + 2.06] + 0.489
0 - 4/3 for t<100; - 1/3 for t>100
t c - AtM . For R values of 0.5 to 5. 5 Mg
1.03 + 59.971 log R + 145.05(log R) 2
- 36711 (logR) 2/T(K) . 1.67xl07 log (R/T2 );
- 273.15
For R values of 5 to 50
AtM - 10.66 - 47415 R + 325.87(log R) 2
- 1.032xl05 (log R) 2/T - 1.968xl07 (log R) 2/T2
+ 1.605xl07 (log R) 3/T2 ;
No correction should be attempted if R > 50.
Me_________R -
t -
Mg + 0.61 Ca + 0.31 K 1590________
log (Na/Li) + 0.779
100
- 273.15
88
Chemical Analysis
Chemical data may be a major source of uncertainty in the computation of
water-rock interactions. Uncertainty may result from:
1. Incomplete analyses. Chemical data collected by oil companies from
wells drilled in search of, or for production of oil and gas are plentiful but
almost always inadequate for these computations because data are available
only for a limited number of major cations and anions. There are very few
analyses of trace constituents from oil-field or geothermal waters. A major
problem of almost all chemical data is the paucity of Al determinations that
are essential for computing the states of reaction of water and
aluminosilicates. Barnes (1975) showed that Al concentrations in natural
waters at near-neutral pH values are generally less than 57 micrograms per
liter (/zg/1). Analyses of Al in oil-field and geothermal waters give values
that are generally less than 20 /zg/1 (Kharaka and others, 1985).
Concentrations of this magnitude are difficult to determine reliably and some
possibility exists that a portion of Al may have precipitated from water prior
to sampling (MacGowan and Surdam, 1988).
Another major limitation of many chemical analyses is lack of data on the
concentrations of dissolved organic species (Thurman, 1985). It is now
generally accepted that mono- and dicarboxylic acid anions may be present at
high concentrations (up to 10,000 mg/L) in waters from sedimentary basins
(Carothers and Kharaka, 1978; Kharaka and others, 1986; MacGowan and Surdam,
1988). Detailed studies of organic species in oil field waters were initiated
(Willey and others, 1975), to a large degree, because computations using
SOLMNEQ (Kharaka and Barnes, 1973) had shown that oil field waters at
Kettleman North Dome, California, were supersaturated by up to 3 kcal/mole
with respect to calcite (Willey and others, 1975; Merino, 1975). Willey and
others (1975) showed that the high supersaturation resulted because the
alkalinities of the waters were attributed only to inorganic species (mainly
HCO" CO" and HS"). They further showed that organic acid anions (C ? - C,.)
contributed up to 99 percent of the measured alkalinities. Carothers and
Kharaka (1978) and Lundegard and Land (1986) showed that up to 100 percent of
field determined alkalinities in oil field waters are contributed by organic
species (Figure 7).
2. Unreliable chemical analyses. The reliability of many chemical
analyses is uncertain because of the method of sample collection, treatment,
89
VO o
OP 0>
-JC
ON
CE
NT
RA
TIO
N (
mg/
L)
and analysis (Hem, 1985). Values of pH, alkalinity, H2 S, and NH3 not
determined in the field are always suspect (Presser and Barnes, 1974; Lico and
others, 1982). Field treatment of the samples should include filtration
through a 0.1 or 0.45 jum pore-size membrane filter for the major cations,
anions, and organics and, in the case of cations, acidification with
concentrated HC1 to pH of about 2. An aliquot of the filtrate is diluted with
distilled deionized water to decrease the silica concentration to less than
100 mg/L to prevent polymerization. Aluminum should be extracted in the field
after filtration through a 0.1 jum filter (Barnes, 1975). Filtration through a
0.1 jum filter and acidification to pH 1.5 with high-purity nitric acid is also
required for reliable determination of other trace metals (Kennedy and others,
1974). Mercuric chloride or sodium azide, and potassium permanganate should
be added to preserve dissolved organics and mercury, respectively, (Hull and
others, 1985).
Laboratory analyses require methodologies and instruments that give the
best results for the samples selected. Analysis of cations is generally
performed by atomic absorption (AA), flame emission spectrophotometry and
inductively-coupled plasma atomic emission spectrometry (ICP-AES). Graphite-
furnace AA with Zeeman background correction is used for the determination of
most trace metals. An increasing number of anionic species, including
sulfate, bromide, and iodide, are being determined by ion chromatographic
techniques. Dissolved organics are determined by gas and ion chromatography
and other instrumentation, such as mass spectrometry. The reader is referred
to recent reviews by Parsons and others (1983) and Hull and others (1985).
A high level of analytical skill is required to obtain reliable data from
the highly sophisticated instruments described above. Ellis (1976), in an
international laboratory-comparison program, showed that the analytical
precision for many chemical constituents was poor. The reported silica
concentration of a geothermal sample, for example, ranged from 70 to 920 ppm.
Lowest precisions were reported for geothermal and alkaline spring waters of
unusual composition. Friedman and Erdmann (1982) provide some guidance for
setting up a quality assurance program.
3. Incorrect interpretation of chemical determinations. We have already
discussed the problems associated with assuming that alkalinities are
contributed only by inorganic species. Similar problems may arise if the
iodometric titration method, which measures the concentrations of bisulfides,
sulfites, polysulfides and other oxidizable species, is assumed to titrate
only the bisulfide species. In oil field waters, H«S values obtained by
91
specific sulfide electrode are more accurate and are much lower (by a factor
of up to 10) than those obtained by titration (Lico and others, 1982).
Equilibrium Constants
Reliability of equilibrium constants for the dissociation of complexes
and dissolution of minerals is highly variable, depending on the quality and
the nature of the thermochemical data used
and others, 1982; Nordstrom and Munoz, 1985
in these computations (Arnorsson
Apps and others, 1987). The
range of available thermochemical data is large. The Gibbs free energy values
reported for the same mineral may vary by more than 10 kcal/mole (Tardy and
Garrels, 1974; Berman and others, 1985). For instance reported values of the
- 8 -13 equilibrium constant at 25 °C for fluorite range from 10" to 10 (Nordstrom
and Jenne, 1977); those for the second dissociation constant of H^S range from
10 1010 to 10 (Schoonen and Barnes, 1988). Equilibrium constants computed
from solubility or free energy determinations over the temperature range of
interest are probably the most reliable. As discussed earlier, equilibrium
constants for most minerals and a few aqueous complexes used in SOLMINEQ.88
are computed from an integrated form of the Van't Hoff equation (Equation 37).
These equilibrium constants are the most reliable for the pure mineral samples
used to generate thermochemical data in laboratory experiments. However,
minerals in natural systems often show large variations in chemical
composition, surface characteristics, degree of crystallinity, order-disorder,
and lattice imperfections. Clays and zeolites are two major groups of
minerals for which large uncertainties in equilibrium constants may result
from these imperfections (Tardy and Garrels, 1974; Bassett and others, 1979;
May and others, 1986).
Heat-capacity data are not available for most aqueous complexes.
Equilibrium constants for these complexes are computed from empirical relation
using a large number of assumptions and extrapolations (see previous section).
Equilibrium constants calculated from these empirical equations, nonetheless,
more closely approximate the actual values at higher temperatures than those
computed assuming a constant or zero-heat capacity of reaction. However, very
large errors may be present in log K values calculated from these equations,
especially at temperatures above 200 °C (Apps and others, 1988). Equilibrium
constants for many minerals and aqueous complexes (especially with organic
ligands) are either not available or are available only at 25 °C.
92
Equilibrium constants are unquestionably the most important parameters
used in geochemical codes like SOLMINEQ.88. However, these constants are
subject to continuous refinements, modifications or major changes (Hovey and
Tremaine, 1986; Apps and and others, 1988), and the user should carry out
literature searches to select the most reliable constants for the critical
minerals and aqueous species in their study. SOLMINEQ.88 allows computations
to be carried out using a set of up to six (at low and high temperatures) user
selected equilibrium constants for minerals and aqueous complexes. The INPUT
routine prompts the user to enter the desired equilibrium constants which will
be used for any computations during that run. Permanent changes in the
equilibrium constants, of course, can be made by changing the values for the
desired complex or mineral in the permanent data file listed in Appendix IB
and 1C.
Limitations of Modeling Options
All of the modeling options in SOLMINEQ.88 have been designed to allow
modification of the analyzed chemistry of a water sample to the in situ
chemistry of the water and its mineral saturations. The options, also, can be
used to study the consequences of the various hypothetical or planned water-
rock interactions including sensitivity calculations.
The carbon option may be used to validate a chemical analysis if
independent determinations of alkalinity and TIC exist. Given a value for
one, SOLMINEQ.88 will calculate a value for the other. This can be compared
to the analytical value (see Merino 1979 for examples). For high temperature
calculations the assumption of constant TIC or constant alkalinity will affect
the predictions differently. Constant alkalinity can only be enforced by
allowing CO^ to enter or leave the water, whereas constant TIC is a closed
system. If C0~ is known to have been lost from the system, it can be titrated
back in with the gas-option. However, it is difficult to measure the ratio of
gas/water in a flowing well. If the aim is to combine the masses of gas and
water as they are in situ, large uncertainties exist because once gas
separates from liquid water the two can travel at different velocities to the
wellhead. If oil is present in the system, the gas lost from the oil must
also be titrated back using the gas-water-oil option to reconstruct the in
situ conditions. However, data on gas solubilities in oil have large
uncertainties because of differences in the physical and chemical properties
of oil. The gas-water-oil option will not run if the total pressure of the
93
gas phase (at high or low temperature) is less than the vapor pressure of
water at that temperature and pressure. These calculations are carried out
assuming that Henry's law does not vary with pressure and ideal mixing of
gases. Although these assumption are good along the vapor pressure curve for
water, significant errors will be introduced when pressures exceed several
hundred bars at low temperatures; such conditions exist in deep wells in
sedimentary basins. In addition, at high pressures, a significant mass of
water vapor may exist in the natural gas phase which may condense in the well
leading to erroneously low concentrations of dissolved species (Kharaka and
others, 1985). Presently, all the water is assigned to the liquid phase in
SOLMINEQ.88 except for the boiling option. The boiling and mixing options can
handle loss or addition of water to in situ water, however, the fraction of
boiling or the composition and amount of water mixing with the in situ water
must be accurately known.
Minerals can also be used to compute the water chemistry at subsurface
conditions. If the amount of gas which is lost is unknown, for example, an
estimate can be made by assuming equilibrium with an in situ carbonate mineral
using the CO,, option; commonly equilibrium is assumed with calcite. If other
minerals are controlling the water chemistry, a user specified set of
components can be dissolved into or precipitated out of the water to reach
saturation with a specified mineral. Even if the in situ mineralogy is known
in detail, the extent to which a mineral controls the water chemistry depends
on its surface area and reactivity, which are usually unknown. In addition,
most minerals are solid solutions which are not presently included in the
database of SOLMINEQ.88.
The mineral saturation option may be used to calculate the concentrations
of unknown or suspect components. This option, for example, may be used to
calculate the concentrations of SiO- (assuming quartz saturation) and Al
(assuming equilibrium with kaolinite). This use of saturation options should
only be used as a last resort because of the large uncertainties involved. If
the pH is unknown or suspect, equilibrium with calcite is commonly assumed and
the pH changed to attain equilibrium using the pH option. This case is only
correct as long as significant amounts of the; other ions in solution have not
been added or subtracted at the same time the
SOLMINEQ.88 allows only equilibration with one mineral phase even when the
reaction is incongruent, involving several minerals.
The water chemistry can also be changed
pH changed. Presently,
by ion exchange or adsorption.
Large uncertainties exist in the values for the ion exchange constants.
94
Consequently, in the ion exchange option, these constants must be specified by
the user. Surface complexes are assumed to behave ideally. Smectites, the
clays which control most of the ion exchange, are poorly characterized
chemically. The double layer, one-site model chosen for adsorption
calculations is probably too simple, but even this simple a model is difficult
to use because of paucity of data. Consequently, mineral surface-water
equilibrium calculations lag far behind mineral-water equilibrium predictions
in accuracy.
The above discussion is included in this report because the uncertainties
in the predictions made by these options can be large. The user should be
cautioned to understand fully the assumptions and simplifications made in both
the data and the calculations in order to use the model successfully.
95
INPUT FOR SOLMINEQ.88
The input to SOLMINEQ.88 consists of two sets of data: fixed and
variable. The fixed set contains the chemical composition of an aqueous fluid
and options for processing these data. The variable set consists of input data
required for using the modeling options. Multiple samples may be processed
during each run. The arrangement of input data is shown in Table 8. A list
of input variable names and their description is given below. An interactive
FORTRAN-77 program, SOLINPUT, is also available which can be used to generate
or modify an input file. This program prompts! the user for input data with a
brief description of the required data. The user is prompted to press the
"RETURN" key in cases where data are not available and where the default
values are preferred. An abbreviated terminal session for building a data
file using SOLINPUT is given in Appendix II. An interactive input-output
management program (shell) that can be used with personal computers (PCs) is
also available (Wiwchar and others, 1988) for SOLMINEQ.88
A. Input Data for the Fixed Set
TITLE
TEMP
HITEMP
DENS
PRESS
PH
EHM
Sample identification and description.
Temperature at which the pH of the solution was measured.
In-situ temperature, different from TEMP, at which a new pH is
to be calculated.
Measured or desired density. If cjensity is not entered,
it is calculated based on the following empirical relationship
(Kharaka, unpublished data):
Density - 1.0 + 6.88x10" 7 * Total Dissolved Solids (mg/L)
Total in-situ pressure (in bars). K values of the aqueous and
mineral reactions will be adjusted for the pressure difference
of (PRESS-PH Q). The K values are adjusted at only one
temperature, TEMP or HITEMP. If PRESS is greater than P__ _ atH,~O
TEMP and a value for HITEMP is entered, the K values are
adjusted only at HITEMP.
Measured pH of the solution.
Measured or calculated Eh relativle to the hydrogen electrode
potential in volts, otherwise a default value of 9.0 is entered
by the program.
96
EHMC
EMFZSC
UNITS
TIC
ALK
Measured Eh relative to the Calomel electrode potential in volts,
otherwise a default value of 9.0 is entered by the program.
Measured Eh using Zobell's solution in volts, otherwise
a default value of 9.0 is entered in the program.
Concentration units in which the chemical composition of the
solution will be entered.
MG/L - milligrams/liter
PPM = parts per million
MOL/L - moles/liter (molar units)
MOL/K - moles/kg of solvent (molal units)
MEQ/L = milli-equivalents/liter
Total or analytical concentration of the specified component.
The concentrations must be entered for the specified formula of
the component (for example, sodium is entered as Na, silica as
SiO«, phosphorous as PO,). The components are listed in Table 6.
Concentration of total inorganic carbon in solution, if measured,
in the same units used for the rest of the components. If UNITS
is "MEQ/L", carbon concentration should not be entered as TIC;
instead it should be entered as alkalinity (ALK).
Criterion for the distribution of carbonate species.
"0" indicates that the entered concentration of HCO., and for CO.,
represent "TOTAL ALKALINITY" that includes inorganic and organic
species.
"1" indicates that the entered concentrations of HCO., and for COl
represent "CARBONATE ALKALINITY" only.
"2" indicates that the entered concentrations of HCOl and COl"
represent "TIC".
It should be noted if ALK - 2 and TIC - 0.0, the entered
concentration of HCO^ and COl" will be treated as TIC after
conversion to the molality of carbon; if TIC is greater than
0.0, ALK will be set equal to 2 and the concentrations of HCOl
and CO., , if entered, will be disregarded.
97
me
NUFLAG
IPIT
FLAGS(I)
INFORM
RATIO
GEOTH
IPRIN1
IPRIN2
Criterion for the distribution of carbonate species at HITEMP
"1" if this distribution is to be done with the value of TIC
calculated at the end of low-temperature species distributioj
Note that if a value for TIC is entered, ITIC will be
automatically set equal to "1".
Sets the activity coefficients of neutral species;
"1" for setting them equal to unity;
"0" for setting them equal to the activity coefficient of
aqueous C0».
Enter "1" if activity coefficientis are to be calculated using the
Pitzer equations.
Flags for the calculation of red6x equilibria. If these flags are
set equal to "1" the distribution of redox species will be
calculated using the measured or calculated Eh and equations of
the type:
Fe++ . Fe3+ + e -
else, if equal to "0", the I VSO" and Fe++/Fe+3 , will
be used to determine redox species distribution.
FLAG(l) for Fe
FLAG(2) for Cu
FLAG(3) for Hg
FLAG(4) for Mn
FLAG(5) for U
FLAG(6) for V
Flag for printing all the log K values in Tables 2 and 3.
Set INFORM equal to "1" if you want the tables printed.
Flag for printing the analytical and calculated activity ratios of
major elements. Set RATIO equal to "1" if you want the ratios
printed.
Flag for printing the temperature estimates from the chemical
geothermometers. Set GEOTH equal to "1" if you want the
geothermometers printed.
Flag for printing the data on iteration of anions, set equal to
"1" for output.
Flag for printing the data on (nv, _ - m-.., _) whenever a new pHn, t, l On,t,1
is calculated. Set IPRIN2 equal to "1" to print data.
98
CONV1
CONV2
OUTIN
Tolerance factor for convergence on distribution of anions. Enter
the desired factor if different from a default value of 0.5E-4.
Use of a lower value may result in greater accuracy but more
computer time.
Tolerance factor for pH calculation using hydronium mass-balance
equation. Enter a desired factor if different from a default
value of 0.5E-4. Use of a higher value may result in faster
execution, but a larger pH difference between calculated and
in situ.
A restart file will be generated with the file name located in
OUTIN. The restart file will contain data from the current
SOLMINEQ.88 run. Leave blank if a restart file is not to be
created.
B. Input for Gas, PH, and CCL options
DC02
DH2S
DNH3
DCH4
ICCSAT
IMC03
Concentration of C09 gas (moles/kg of water) that was lost
before pH measurement.
Concentration of H~S gas (moles/kg of water) that was lost
before pH measurement.
Concentration of NH~ gas (moles/kg of water) that was lost
before pH measurement.
Concentration of CH, gas (moles/kg of water) that was lost
before pH measurement.
Switch for the pH option (calculation of pH in equilibrium with
carbonate mineral). "1" for calcite; "2" for dolomite; "3" for
siderite. Default is "0"
Switch for the application of the C09 option.
"0" = do not use option (default).
"1" Enter for saturation with calcite.
"2" Enter for saturation with dolomite.
"3" Enter for saturation with siderite.
"4" for fixing a molality of H^CCL specified by FIXIT.
"5" for fixing a pH specified by FIXIT.
"6" for fixing a P specified by FIXIT.
99
FIXIT Specify the value to be fixed using the CCL option above if
IMC03 -4, 5, or 6.
FCCSAT Tolerance factor for satisfying the equilibrium criterion in the
PH and CCL options (default = 0.05). The equilibrium is tested
in log units.
C. Input for the Gas Distribution option
TC02M
TCH4M
TH2SM
WROIL
KC020L
KCH40L
KH2SOL
DSEP
Total moles of C09 (per kg of water) to be distributed between
Oil, Water, and Vapor.
Total moles of CH, (per kg of water) to be distributed between
Oil, Water, and Vapor.
Total moles of H«S (per kg of water) to be distributed between
Oil, Water and Vapor.
Oil to water weight ratio.
Henry's law coefficient for the solubility of CO^ in oil. If
value entered is "0", which is the default value, then the value
is calculated in the program.
Henry's law coefficient for the solubility of CH, in oil. If
value entered is "0", which is the default value, then the value
is calculated in the program.
Henry's law coefficient for the solubility of H^S in oil. If
value entered is "0", which is the default value, then the value
is calculated in the program.
Density of oil at 15 °C needed to calculate Henry's law
coefficients for the solubility of gas in oil.
D. Input for the Ion Exchange or Adsorption Option
ADEX Flag for surface chemistry option:
"A" for adsorption, "E" for ion exchange.
CEC Cation exchange capacity in milliequivalents/kg of water.
Either a value for CEC or values for TAREA and SAREA must be
specified.
2 TAREA Site density per unit area (N ) in sites/cm .
100
SAREA Total surface area per kilogram of solvent in cm .
INSP Total number of surface species (10 maximum)
ISCHG(I) Charge of each surface site (e.g. ISCHG - 0 for NaX; -1 for X~),
where X represents vacant surface site.
MBASE(I) Equivalent fraction of surface sites occupied by each surface
species. If vacant surface sites occupy an appreciable fraction
of total, then a dummy reaction X «- X must be specified.
SPN(I) Name of each of the surface species.
KRXN(I) Kn for the association reaction of the surface species.
ISCOMP(I) Total number of components in the association reaction of SPN(I).
COEF(I,J) Stoichiometric coefficient of each of the reacting species (only
those in Table 6) in the association reaction of SPN(I).
IDN(I,J) ID#s of the ISCOMP(I) components in the association reaction of
SPN(I). It is important that the K and coefficients for the
species be specified as for an association reaction; and that all
association reactions use only the vacant surface site X as the
reactant surface site.
E. Input for the Dissolution/Precipitation, Mixing, and Boiling Option
IBMIX
ITMIX
IDSAT
IDDP
Switch for the mixing and mass transfer option.
"1" for dissolution/precipitation.
"2" for mixing two solutions.
"3" for boiling-off or adding steam.
Total number of species to be added when IBMIX=1. If ITMIX is
zero, it is used as the switch for the mineral saturation
option. That is, if IBMIX = 1 and ITMIX - 0, then the program
would look for the ID# of the mineral to be saturated. If
ITMIX is not equal to zero, then a specified amount of mineral
will be added if ITMIX - -1. If ITMIX - n, where n is greater
than zero, then specified amounts of n aqueous components will
be added.
ID# (from 1 to 214) of the mineral to be equilibrated (i.e.
SI=0). (See Table 3.)
ID # (from 1 to 214) of the mineral to be dissolved or
precipitated. If IDDP equals "0", then a number of aqueous
species are added or subtracted from the water.
101
ITT
DP
IRXDP(I)
RXDP(I)
IDMIX(I)
AMOL(I)
INMIX
DFRAC1
DING
MIXFLE
FBOIL
Total number of aqueous species to be added to or subtracted from
the water.
Dissolution/precipitation switch. If DP is positive it will
dissolve minerals or add aqueous components into solution; if
negative, it will precipitate or subtract them out. The absolute
value of DP is also used to scale the amount of material being
added or subtracted. If the default value of zero is used then
the program will determine the path to acheive equilibrium.
ID# of the aqueous species to be added (only the species listed
in Table 6 can be used).
Stoichiometric coefficient of the aqueous species to be added.
ID number of the aqueous species to be added (only the species
listed in Table 6 can be used).
Molality (Moles/kg of H~0) of the aqueous or mineral species to
be added.
Total number of mixtures of the two solutions to be mixed.
Smallest fraction of solution 1 to be mixed with solution 2.
Increment of solution 1 to be added (INMIX-1) times. For example,
if INMIX - 3, DING - 0.25 and DFRAC1 - 0.10, a total of THREE
mixtures will be prepared with the following fractions of the two
solutions:
(1) solution 1 - 0.10; solution 2 - 0.90
(2) solution 1 - 0.35; solution 2 - 0.65
(3) solution 1 - 0.60; solution 2 - 0.40
Name of second data file to form the mixture. No other mass
transfer options can be executed as part of mixing.
Fraction of the solution to be boiled-off as steam.
F. Input for variable K values at TEMP and then again at HIGHTEMP
ODUM(I) Switch for data base. If KT is for an aqueous complex
dissociation reaction, enter "A"; if for a mineral dissociation
reaction enter "M".
NDUM(I) ID# of the mineral (Table 3) or aqueous complex (Table 2) whose
(KT) is to be changed.
XDUM(I) Log (KT) for the dissociation reaction specified in
Tables 2 or 3.
102
G. Input for additional anions.
ANSI, ANS2 Switches for additional anion option. If ANSI or ANS2 are not
zero, the value of ANSI or ANS2 is the number of lines (one line
per complex with anion) to follow. If ANSI - 0 (default option)
and ANS2 - 0, skip option. If ANSI > 0 and ANS2 - 0, or vice
versa then add one additional anion. If ANSI > 0 and ANS2 > 0,
then add both additional anions.
PAGE1 Name of additional anions.
CUNITS Total concentration (same UNITS as other components) of
additional anions.
GFW Gram formula weight of additional anion.
Z Charge of additional anion (-1 to -4).it
DHA Debye Huckel radius of additional anion (default values are
available).
NAME(I) Name of each complex formed by association with the additional
anion.
INDEX(I) ID# of the dissociation reaction (Table 5) for the anion complex,
NAME(I).
LOWKT(I) Low temperature log (KT) for the INDEX(I) dissociation reaction.
HIGHKT(I) High temperature log (KT) for the INDEX(I) dissociation reaction.
H. Input for additional cation.
NUMCOM Number of complexes entered for the additional cation.
Z Charge of additional cation (+1 to +4).it
DHA Debye Huckel radius of additional cation (default values are
available).
GFW Gram formula weight of additional cation.
CUNITS Total concentration (same UNITS as other components) of
additional cation.
NAME(I) Name of each complex formed by association with the additional
cation.
INDEX(I) ID# of the dissociation reaction (Table 5) for the cation complex,
NAME(I).
LOWKT(I) Low temperature log K(T) for the INDEX(I) dissociation reaction.
HIGHKT(I) High temperature log K(T) for the INDEX(I) dissociation reaction.
103
J. Input for additional minerals.
NUMINS Number of minerals to be added (up to 5 allowed)
LOWKT Low temperature log K(T) for the congruent dissolution of
the mineral
HIGHKT High temperature log K(T) for the congruent dissolution of
the mineral
ADDACT An additional activity parameter which can be added to the
dissolution reaction of mineral
NAME Name of the mineral
COEFF(I) Coefficient of aqueous species (I) in the dissolution reaction of
the mineral.
INDEX(I) Index number of aqueous species (I) in the dissolution reaction
of the mineral
104
Table 8 Arrangement of data for input to SOLMINEQ.88.
Line Variable Format
10
11
12
13
14
TITLE
TEMP, HITEMP, DENS, PRESS
PH, EHM, EHMC, EMFZSC, UNITS
Total aqueous concentration of
[Na, K, Li, Ca, Mg, Fe, Al]
Total aqueous concentration of
[Si02 , Cl, S04 , H2 S, HC03 , C03 , TIC]
Total aqueous concentration of
[F, P04 , N03 , NH3 , B, Sr, Ba]
Total aqueous concentration of
[Pb, Zn, Cu, Mn, Hg, Ag]
Total aqueous concentration of
[As, U, V]
Total aqueous concentration of
[Acetate, Oxalate, Succinate, CH4 ]
Carbon, High Temperature Carbon Option
ALK, ITIC
Gas Addition Option
DC02, DH2S, DNH3, DCH4
pH and C02 Saturation Option
ICCSAT, IMC03, FIXIT, FCCSAT
Gas-Water-Oil Option
TC02M, TCH4M, TH2SM, WROIL,
KC020L, KCH40L, KH2SOL, DSEP
Ion Exchange Option
ADEX
if ADEX is "E" or "A", then
A. CEC, TAREA, SAREA, INSP
followed by INSP lines of
B. ISCHG(I), MBASE(I), SPN(I)
C. KRXN(I), ISCOMP(I),(COEF(I,J),IDN(I,J))
A80
4E10.4
4E10.4, A5
7E10.4
7E10.4
7E10.4
6E10.4
3E10.4
4E10.4
212
4E10.4
212, 2E10.4
8E10.4
Al
3E10.4, 13
14, E10.4, A10
11(E10.4, 13)
105
15 Precipitation/Mixing/Boiling Options
IBMIX, ITMIX
Dissolution/Precipitation Option:
If IBMIX - 1, then
(Dsl/Ppt a specific mineral amount)
If IBMIX - 1 and ITMIX < 0, then
A. IDDP, AMOL(l)
(Dsl/Ppt a mineral to saturation^
then
to saturation
Else If IBMIX - 1 and ITMIX - 0,
A. IDSAT, IDDP, DP
(Add/Subtract aqueous species
with a mineral)
If IDDP - 0, then
A. ITT
followed by ITT lines of
B. IRXDP(I), RXDP(I)
(Add/Subtract a specific amount of aqueous
species)
Else If IBMIX - 1 and ITMIX > 0, then
followed by ITMIX lines of
A. IDMIX(I), AMOL(I)
212
14, E10.4
214, E10.4
14
14, E10.4
14, E10.4
16
17
Mixing Option:
Else If IBMIX - 2, then
A. INMIX, DFRAC1, DING, MIXFLE
Boiling Option:
Else If IBMIX = 3, then
A. FBOIL
Optional User Defined Log K at TEMP
A. ODUM(I), NDUM(I), XDUM(I)
Optional User Defined Log K at HITEMP
B. ODUM(I), NDUM(I), XDUM(I)
14, 2E10.4, A80
E10.4
6(A1, 14, E10.4)
6(A1, 14, E10.4)
106
18 Additional Anions Option
ANSI, ANS2
Skip if both ANSI - 0 and ANS2 - 0.
If ANSI > 0 or ANS2 > 0, then
A. CUNITS, GFW, Z, DHA, PAGEl
followed by ANSI lines of
B. INDEX(I), DHA, LOWKT, HIGHKT, NAME(I)
212
2E10.4, 12,
E10.4, A8
12, 3E10.4, A8
19
If ANSI > 0 and ANS2 > 0, then
A. CUNITS, GFW, Z, DHA, PAGEl
followed by ANS2 lines of
B. INDEX, DHA, LOWKT, HIGHKT, NAME
Additional Cation Option
A. NUMCOM, Z, DHA, GFW, CUNITS, NAME
followed by NUMCOM lines of
B. INDEX, DHA, LOWKT, HIGHKT, NAME
2E10.4, 12,
E10.4, A8
12, 3E10.4, A8
212, 3E10.4, A8
12, 3E10.4, A8
20
21
22
23
Additional Minerals Option
NUMINS
followed by NUMINS lines of
B. LOWKT, HIGHKT, ADDACT, NAME
C. (COEFF(I), INDEX(I), 1=1, 8)
NUFLAG, IPIT, (FLAGS(I), I - 1, 6)
INFORM, RATIO, GEOTH, IPRIN1, IPRIN2, OUTIN
CONV1, CONV2
12
5E10.4, A8
8(E10.4, 13)
812
512, A80
2E10.4
107
OUTPUT FROM SOLMINEQ.88
The results of the computations carried out by SOLMINEQ.88 and appearing
in the printout (Appendix III) consist of a standard output which is similar
to that from the original code and additional output which will depend on the
options selected. The standard output consists of items listed below:
1. An input data echo that shows the values and options selected for
each sample.
2. A table listing the calculated tolerance factor (1 - Y.) for
successive iterations on the anions. Each set of iterations is completed at a
fixed pH. At the end of each set or when the tolerance criteria are met, the
current hydronium/hydroxyl summation (IIL. _ - m-... T ) is printed out along
with the correct (desired) value. The printout of these numbers may be
enabled by inputting IPRIN1 - IPRIN2 - 1. These data are used to verify the
timely execution of the program and are not normally needed.
3. A list of input to SOLMINEQ.88, including sample description, pH, Eh
(measured or computed, a dummy value of 9.0000 is printed when no Eh data are
available) temperature, total milliequivalent of cations (MEQ/L CAT) and
anions (MEQ/L AN) computed from the analytical data (ANAL...) and from the
calculated molalities (CALC...), the true ionic strength of solution (I), the
total pressure and the partial pressures, in atmospheres, of H^O, CO-, H^S,
CH, , and NflL in the gas phase that is in equilibrium with the solution, the
density of the solution, dissolved solids concentration and activity of water.
The total hydronium and hydroxyl and their difference; the total alkalinity
calculated as HCO~ , C0~ and CaCO~; and the dissolved inorganic carbon (split
up into HCO~ - alkalinity, H^CO^, sum of all HCOl species and the sum of all
CO,, species) and total inorganic carbon are also printed out.
4. A table showing the distribution of species in solution. This
consists of the index number (1 to 340) and name of the species which are
present, reported and computed ppm, reported and computed mg/1, reported and
computed molality, activity, activity coefficient, and -log activity. This
table can be used to calculate the degree of cqmplexing in the solution under
study.
5. Ratios of a number of cations and anidns of importance in geochemical
processes. These consist of the mole ratios of cations and anions which may
108
aid in deciphering the origin of the water samples (White, 1965; Kharaka,
1985) and logs of the activity ratios of a number of cations used to study the
stability fields of minerals. The subsurface temperature of a reservoir is
computed by 12 different chemical geothermometers (see Table 7 for details of
computations). A number of criteria for selecting the most probable
temperature are also printed. (Fournier and Truesdell, 1973; Kharaka and
Mariner, 1988). The computation and printout of these ratios and temperatures
may be suppressed by inputting "RATIO - 0" and "GEOTH = 0" in the INPUT
routine.
6. A table showing the states of reactions for minerals considered. The
"DELG" column gives the (AG,. ff), in kcal/mole. A positive (DELG) value
indicates that the solution is supersaturated with respect to the given
mineral; a negative (DELG) value indicates undersaturation with respect to it.
This table also shows the mineral name and its ID numbers, log (AP), log (KT),
and log (AP/KT). A mineral that contains a species not reported in the
chemical analyses of the water sample will not appear in this table. The log
(KT) of a number of minerals (for example, kenyaite, magadiite) is known only
at 25 °C; it is assumed constant at other temperatures. The "DELG" values
obtained for these minerals will not be significant if the temperature of the
sample is outside the range of 15°-35 °C.
It is important to repeat here that (DELG) indicates that the reaction
can proceed but does not mean that it will proceed in the specified direction.
It is possible for a given solution to be supersaturated (unstable but
persistent condition) with respect to a mineral by a number of kilocalories
without precipitation. It is also important to note here that large
uncertainties are involved in the computed log (KT) values for most aqueous
complexes at temperatures higher than 200 °C.
Beside the standard output described above, implementation of various
options will create additional output. This output is self-explanatory once*
the standard output format is understood. Selected examples are contained in
Appendix III. The total number of possible options is large and could not be
illustrated in this report. However, we have input/output from 20 different
options that will be mailed, together with the source code, to those willing
to implement this program.
109
REFERENCES
Aggarwal, P. K., Gunter W. D., and Kharaka, Y. K., 1989, The effect of pressure on a aqueous equilibria: American Chemical Society Symposium, Series on Ground Water Modeling, R. L. Bassett and D. C. Melchior, eds., in press.
Aggarwal, P. K. , Hull, R. W. , Gunter, W. D. , an^d Kharaka, Y. K. , 1986,SOLMNEQF: A computer code for geochemicalinteractions in sedimentary basins: Proceedings Third Canadian-American Conference on Hydrogeology-Hydrogeology of Sedimentary Basins. Application to Exploration and Exploitation, B. Hitchon, S. Bachu, and C. M. Sauveplane (editors), National Water Well Association v. 3, p. 196-203.
American Society of Testing and Materials, 1985
modeling of water-rock
Standard method forestimation of solubility of gases in petroleum liquids: Annual Bookof ASTM Standards, 05.02, p. 669-673.
Apps, J. A., Neil, J. M., and Chi-Hyuck, J., 1^88, Thermochemical propertiesof gibbsite, boehmite, diaspore and the ailuminate ion between 0 and350°C: Lawrence Berkeley Laboratory Report No. LBL-21482, 98 pp.
Arnorsson, S., Sigurdsson, S., and Svavarsson, H., 1982, The chemistryof geothermal waters in Iceland. I. Calculation of aqueous speciationfrom 0-370°C: Geochimica et Cosmochimica Acta, v. 46, p. 1513-1532.
Baes, C. F., and Mesmer, R. E., 1981, The thermodynamics of cation hydrolysis:American Journal of Science, v. 281, p. 935-962.
Ball, J. W., Nordstrom, D. K., and Zachmann, D. W., 1987, WATEQ4--A personalcomputer FORTRAN translation of the geochemical model WATEQ2 withrevised data base. U. S. Geological Survey Open-File Report 87-50,108 p.
Barnes, H. L., Romberger, S. B., and Stemprok, M., 1967, Ore solutionchemistry II. Solubility of HgS in sulfide solutions: Economic Geology,v. 62, p. 957-982.
Barnes, I., and Back, W., 1964, Geochemistry of iron-rich ground water ofsouthern Maryland: Journal of Geology, v
Barnes, I., and Clarke, F. E., 1969, Chemical properties of ground water andtheir encrustation effects on wells: U.
72, p. 435-447.
S. Geological SurveyProfessional Paper 498-D, 58 p.
Barnes, R. B., 1975, The determination of specific forms of aluminum innatural water: Chemical Geology, v. 15, p. 177-191.
Bassett, R. L., Kharaka, Y. K., and Langmuir, D., 1979, Critical reviewof the equilibrium constants for kaolinite and sepiolite, inChemical Modeling in Aqueous Systems, Jenne, E. A., ed., ACSSymposium Series v. 93, p. 389-400.
Beerbower, A., 1980, Estimating the solubility of gases in petroleum andsynthetic lubricants: American Society Tfesting and Materials,Transaction 23, p. 335-342.
Berman, R. G., Brown, T. H., and Greenwood, H. J., 1985, An internallyconsistent thermodynamic data base for minerals in the systemNa20-K20-CaO-MgO-FeO-Fe203 -Al203 -Si02Ti02 -H20-C02 : Atomic Energy of
Canada Ltd., Technical Record TR-377, 62 p.ii
Bilinski, H. B., Horvath, L., Ingri, N., and Sj^berg S., 1986, Equilibrium aluminum hydroxo- oxalate phases during initial clay formation;
H -Al -oxalic acid-Na system: Geochimic.i et Cosmochimica Acta, v. 50, p. 1911-1922.
Bolt, G. H., 1982, Soil Chemistry, B. Physicoctusmical models: Elsevier Science Publishing Company, New York, 527 p.
110
Bourcier, W. L., and Barnes, H. L., 1987, Ore solution chemistry--VII.Stabilities of chloride and bisulfide complexes of zinc to 350°C:Economic Geology, v. 82, p. 1839-1863.
Bradley, D. J., and Pitzer, K. S., 1979, Thermodynamics of Electrolytes.n
12. Dielectric Properties of Water and Debye-Huckel Parameters to350 °C and 1 kbar: Journal of Physical Chemistry, v. 83, p. 1599-1603.
Bryzgalin, 0. V., and Rafal'ski, R. P., 1982, Estimation of instabilityconstants for ore-element complexes at elevated temperatures: Geochemi.International, v. 19, p. 158-169
Busenberg, E., Plummer, N. L., and Parker, V. B., 1984, The solubility ofstrontianite (SrC03 ) in CO^-H-O solutions between 2 and 91°C, the
association constant of SrHCO? (aq) between 5 and 80°C, and an
evaluation of the thermodynamic properties of Sr (aq) and SrCO^(cr)
at 25°C and 1 atm total pressure: Geochimica et Cosmochimica Acta,v. 48, p.2021-2036.
Busey, R. H., and Mesmer, R. E., 1977, lonization equilibria of silicic acidand polysilicate formation in aqueous chloride solutions to 300°C:Inorganic Chemistry, v. 16, p. 2444-2450.
Carothers, W. W. , and Kharaka, Y. K. , 1978, Aliphatic acid anions in oilfield waters-Implications for origin of natural gas: AmericanAssociation Petroleum Geology Bulletin v. 62, p. 2441-2453.
Carothers, W. W. , and Kharaka, Y. K., 1980, Stable Carbon Isotopes inOil Field Waters and the Origin of CO: Geochimica et Cosmochimica Acta,v. 44, p. 323-333.
Chen, C. A., and Marshall, W. M., 1982, Amorphous silica solubility, IV.Behaviour in pure water and aqueous sodium chloride, sodium sulfate,magnesium chloride, and magnesium sulfate solutions up to 350°C:Geochimica et Cosmochimica Acta, v. 46, p. 279-287.
Cho, M. , Marayama, S., and Liou, J. G., 1987, An experimental investigationof heulandite-laumontite equilibrium at 1000 to 2000 bar P fluid.Contribution Mineral Petroleum, v. 97, p. 43-50.
Cobble, J. W. , Murray, R. C. Jr., Turner, P. J., and Chen, K., 1982, Hightemperature thermodynamic data for species in aqueous solution: ElectricPower Research Institute, EPRI report NP-2400, 165 p.
Conard, B. R. , Sridhar, R. , and Warner, J. S., 1980, High temperaturethermodynamic properties of chalcopyrite: Journal ChemicalThermodynamics, v. 12, p. 817-833.
Crerar, D., E., and Barnes, H. L., 1976, Ore solution chemistry V.Solubilities of chalcopyrite and chalcocite assemblages in hydro- thermal solution at 200° to 350°C. Economic Geology 71, 772-794.
Crerar, D. E. , Suzak, N. J., Borszik, M., and Schwartz, S., 1978, Solubilityof the buffer assemblage pyrite + phrrhotite + magnetite in NaClsolutions from 200 to 350°C: Geochimica et Cosmochimica Acta, v. 42,p. 1427-1437.
Daniele, P. G., Rigano, C., and Smmartano, S., 1981, The formation of protonand alkali-metal complexes with ligands of biological interest in
aqueous solutions. Thermodynamics of H , Na and K oxalate complexes:Thermochimica Acta, v. 46, p. 103-116
DeKock, C. W., 1986, Thermodynamic properties of selected metal sulfates andtheir hydrates. Bureau of Mines Information Circular IC9081, 59 p.
Drummond, S. E. Jr., 1981, Boiling and mixing of hydrothermal fluids:Chemical effects on mineral precipitation: Pennsylvania StateUniversity, unpublished Ph.D. thesis.
Ill
Ellis, A. J., 1976, The IAGC interlaboratory water analysis comparisonprogramme: Geochimica et Cosmochimica Acta, v. 40, p. 1359-1374.
Ellis, A. J., and Golding, R. M., 1963, The solubility of carbon dioxide above100 C in water and in sodium chloride solutions: American Journal ofScience, v. 261, p. 47-60.
EPRI (Electric Power Research Institute), 1984L Geohydrochemical modelsfor solute migration. Volumes I and II, EPRI Report EA-3417, Palo Alto,California, 120 p.
Felmy, A.R., Girvin, D., and Jenne, E.A., 19841 MINTEQ: a computerprogram for calculating aqueous geochemical equilibria: U.S.Environmental Protection Agency, Athens, Georgia.
Fournier, R. 0., 1981, Application of water chemistry to geothermalexploration and reservoir engineering, iji Rybach, Ladislaus, andMuffler, L. J. P., eds., Geothermal Systems: Principles and CaseHistories: New York, Wiley, p. 109-143.
Fournier, R. 0., and. Potter, R. W., 1982, An equation correlating thesolubility of quartz in water from 25° to 900°C at pressures up to10,000 bars: Geochimica et Cosmochimica Acta, v. 46, p. 1969-1974.
Fournier, R. 0., and Truesdell, A. H., 1973, An empirical Na-K-Cageothermometer for natural water: Geochimica et Cosmochimica Acta,v. 37, p. 1255-1276.
Freeze, R. A., and Cherry, J. A., 1979, Ground Water: Englewood Cliffs,New Jersey, Prentice Hall Incorporated, 604 p.
Friedman, L. C., and Erdmann, D. E., 1982, Quality assurance practices for thechemical and biological analyses of water and fluvial sediments: U. S.Geological Survey Professional Paper 750-C, p. cl51-c!55.
Fuoss, R. M., 1958, Ionic association. III. The equilibrium between ion pairsand free ions: Journal of the American Chemical Society, v. 80,p. 5059-5061.
Garrels, R. M., and Christ, C.L., 1965, Solutions, minerals, and equilibria:Freeman-Cooper, San Francisco, California, 450 p.
Giordano, T. H., and Barnes, H. L., 1981, Lead transport in MississippiValley-type ore solutions: Economic Geology, v. 76, p. 2200-2211.
Giordano, T. H., and Drummond, S. E., 1987, Zinc acetate complexing inhydrothermal solutions: (Abs.) Geological Society of American Program,v. 19, p. 677.
Goodwin, B., 1982, Calculated uranium solubility in groundwater: implicationsfor nuclear fuel waste disposal: Canadian Journal of Chemistry, v. 60,p. 1759-1766.
Gueddari, M., Mannin, C., Perret, D., Fritz, B., and Tardy, Y., 1983,Geochemistry of brines of the Chottel Jerid in southern Tunesia --application of Pitzer's equations: Chemical Geology, v. 39,pp. 165-178.
Harned, H. S., and Owen, B. B., 1958, The physical chemistry of electrolytesolutions: Reinhold, New York, 803 p.
Harvie, C. E., and Weare, J. H., 1980, The prediction of mineral solubilitiesin natural waters: the Na-K-Mg-Ca-Cl-SO,-H,,0 system from zero to high
concentration at 25°C: Geochimica et Cosmochimica Acta., v. 44, p. 981-997.
Harvie, C. E., Miller, N., and Weare, J. H., 1934, The prediction of mineral solubilities in natural waters: The Na-K-Mg-Ca-H-Cl-SO.-OH-HCCyCC^-
HgO system to high ionic strengths at 25°<b: Geochimica et Cosmochimica
Acta, v. 48, p. 723-751.Healy, T. W. , White, L. R., 1978, lonizable surface group models of aqueous
interfaces: Advances in Colloid and Interface Science, v. 9, p. 303-345.
112
Helgeson, H. C., 1967, Thermodynamics of complex dissociation in aqueous solutions at elevated temperatures: Journal of Physical Chemistry, v. 71, p. 3121-3136
1969, Thermodynamics of hydrothermal systems at elevatedtemperatures: American Journal of Science, v. 267, p. 729-804.
1971a, KELYCOB, Theoretical geochemistry computer program: Library No. 0802D/E, University of California, Berkeley, California.
1971b, Kinetics of mass transfer among silicates and aqueous solutions: Geochimica et Cosmochimica Acta, v. 34, p. 569-592.
1985, SUPCRT-unpublished thermodynamic data base for minerals, aqueousspecies and gases. University of California, Berkeley, California.
Helgeson, H. C., Kirkham, D. H., 1974, Theoretical prediction of thethermodynamic behavior of aqueous electrolytes at high pressures and
ittemperatures: II. Debye-Huckel parameters for activity coefficientsand relative partial-molal properties: American Journal of Science,v. 274, p. 1199-1261.
Helgeson, H. C., Brown, T. H., Nigrini, A., and Jones, T. A., 1970,Calculations of mass transfer in geochemical processes involvingaqueous solutions. Geochimica et Cosmochimica Acta, v. 34, p. 569-592.
Helgeson, H. C., Delany, J. M., Nesbitt, H. W., and Bird, D. K., 1978,Summary and critique of the thermodynamic properties of rock-formingminerals: American Journal of Science, v. 278A, 229 p.
Helgeson, H. C., Kirkham, D. H., and Flowers, G. C., 1981, Theoreticalprediction of the thermodynamic behavior of aqueous electrolytes athigh temperatures and pressures: IV. Calculation of activitycoefficients, osmotic coefficients, and apparent molal properties to600°C and 5 kb: American Journal of Science, v. 281, p. 1249-1516.
Hem, J. D., 1985, Study and Interpretation of the Chemical Characteristicsof Natural Water: U.S. Geological Survey Water-Supply Paper 2254, 253 p.
Hemingway, B. S., 1982, Thermodynamic properties of selected uraniumcompounds and aqueous species at 298.15 K and at higher temperatures:Preliminary nodels for the origin of coffinite deposits: U.S.Geological Survey Open-File Report 82-619, 90 p.
Hemmes, P., 1972, The volume change of ionic association reactions: Journal ofPhysical Chemistry, v. 76, p. 895-900.
Hogfeldt, E., 1982, Stability constants of metal-ion complexes. Part A:Inorganic Ligands: Int. Un. of Pure and Appl. Chemical IUPAC ChemicalData Series, No. 21, 310 pp.
Hohl, H., Sigg, L., and Stumm, W., 1980, Characterization of surfacechemical properties of oxides in natural waters: in Advances inChemistry series, Leckie, J., and Kavanaugh, M., eds., American ChemicalSociety, p. 1-31.
Holmes, H. F., and Mesmer, R. E., 1983, Thermodynamic properties of aqueoussolutions of alkali metal chlorides to 250°C. Journal of PhysicalChemistry, v. 87, p. 1242-1255.
Holmes, H. F., Bais, C. F., Jr., and Mesmer, R. E., 1978, Isopiestic studiesof aqueous solutions at elevated temperatures I. KC1, CaCl^, and MgCl^:
Journal of Chemical Thermodynamics, v. 10, p. 983-996. Holmes, H. F., Bais, C. F., JR., and Mesmer, R. E., 1981, Isopiestic studies
of aqueous solutions at elevated temperatures. III. (1-7) NaCl + 7CaCl2 :
Journal of Chemical Thermodynamics, v. 13, p. 101-113. Hovey, J. K., and Tremaine, P. R., 1986, Thermodynamics of aqueous aluminum
standard partial molar heat capacities of Al+ from 10 to 55°C: Geochimica et Cosmochimica Acta, v. 50, p. 453-460.
113
Hovey, J. K., Hepler, L. G., and Tremaine, P. R., 1988, Thermodynamics of aqueous aluminate ion: standard partial molar heat capacities and
volumes of Al(OH)T(aq) from 10 to 55°C: Journal of Physical Chemistry,
v. 92, p. 1323-1332. Hull, R. W., Kharaka, Y. K., Maest, A. S., and Fries, T. L., 1985, Sampling
and analysis of subsurface waters. A sumniary of current methodology:Proceedings Canadian-American Conference on Practical Applications ofGroundwater Geo-chemistry, ARC, National Water Well Association, Banff,Canada, p. 117-126.
Hunter, R. J., 1981, Zeta potential in colloid science principles andapplications. Academic Press, New York, 386 p.
Jacobson, P. L., and Langmuir, D., 1974, Dissociation constants ofcalcite and CaHCO for 0° to 50°C: Geochlmica et Cosmochimica Acta,v. 38, p. 301-318.
James, R. 0., and Parks, G. A., 1982, Characterization of Aqueous Colloidsby their electrical double-layer and intrinsic surface chemicalproperties, in Surface and Colloid Science, Matijevic, E., ed., PlenumPress, New York, v. 12, p. 119-216.
Kalyanaraman, R., Yeatts, L. B., and Marshal, W. L., 1973, Solubility ofcalcium sulfate and association equilibrium in CaSO, and NaSO, and
NaClO., and H20 at 273 to 623 K: Journal of Chemical Thermodynamics,
v. 5, p. 899-909. Katayama, S., 1976, Conductimetric determination of ion-association
constants for calcium, cobalt, zinc, and cadmium sulfates in aqueoussolutions at various temperatures between 0° to 45°C: Journal ofSolution Chemistry, v. 5, p. 241-248.
Keenan, J. H., Keyes, F. G., Hill, P. G., and Moore, J. G., 1969,Steam Tables: Wiley, New York, p. 162.
Kelly, K. K., 1960, Contributions to the data on theoretical metallurgy.XIII. High temperature heat content, heat capacity and entropy datafor the elements and inorganic compounds: U. S. Bureau of MinesBulletin No. 584, 232 p.
Kennedy, V. C., Zellweger, G. W., and Jones, B. F., 1974, Filter pore-sizeeffects on the analysis of Al, Fe, Mn, and Ti in water: Water ResourcesResearch, v. 10, p. 785-790.
Kerrisk, J. F., 1983, Reaction-path calculation!? of groundwater chemistry andmineral formation at Rainier Mesa, Nevada: Los Alamos NationalLaboratory Report #LA.9912-MS, 41 pp.
Kharaka, Y. K., andBarnes, I., 1973, SOLMNEQ: Solution-mineral equilibriumcomputations: U. S. Geological Survey Computer Contributions, NationalTechnical Information Service, #PB215- 899, 81 p.
Kharaka, Y. K, and Mariner, R. H., 1989, Chemical geothermometers andtheir application to formation waters from sedimentary basins, inThermal History of Sedimentary Basins. Naeser, N. D. and McCulloh, T.,eds., Springer Verlag, New York, p. 99-117.
Kharaka, Y. K., Lico, M. S., and Carothers, W. W., 1980, Predicted corrosionand scale-formation properties of geopressured-geothermal watersfrom the Northern Gulf of Mexico Basin: Journal of Petroleum Technology,v. 32, p. 319-324.
Kharaka, Y. K., Hull, R. W., and Carothers, W. W., 1985, Water-rockinteractions in sedimentary basins. Chap. 2., in Relationship of OrganicMatter and Mineral Diagenesis. SEPM Short Course no. 17, p. 79-176.
Kharaka, Y. K., Law, L. M., Carothers, W. W., and Goerlitz, D. F., 1986,Role of organic species dissolved in formation waters in mineraldiagenesis, in Special Vol. on Relationship of Organic Matter andMineral Diagenesis, (ed D. Gautier), SEPM Special Vol. No. 38, 111-122.
114
Kielland, J., 1937, Individual activity coefficients of ions in aqueoussolutions: American Chemical Society Journal, v. 59, p. 1675-1678.
Kublanovskii, V. S., 1977, Manganese(II) chloride complexes in themanganese(II) chloride-ammonia chloride-water system: Russian Journalof Inorganic Chemistry, v. 22, p. 405-408.
Lafon, G. M., 1969, Some quantitative aspects of the chemical evolution of theoceans: Ph.D. thesis, Northwestern University., Evanston, Illinois.
Lafon, G. M., and Truesdell, A. H., 1971, Temperature dependence of sodiumsulfate complexing in aqueous solutions (abs.): American GeophysicalUnion Transactions, v. 52, p 362.
Langmuir, D., 1978, Uranium solution-mineral equilibria at low temperatureswith applications to sedimentary ore deposits: Geochimica etCosmochimica Acta, v. 42, p. 547-569.
Lemire., R. J., and Tremaine, P. R., 1980, Uranium and plutonium equilibria inaqueous solutions to 200°C: Journal of Chemical Engineering Data,v. 25, p. 361-370.
Lewis, G. N. , andRandall, M., 1961, Thermodynamics: McGraw-Hill, New York,723 p.
Lico, M. S., Kharaka, Y. K., Carothers, W. W., and Wright, V. A., 1982,Methods for collection and analysis of geopressured geothermal and oil field waters: U. S. Geological Water-Supply Paper 2194, 21 p.
Lindsay, W. T., 1980, Estimation of concentration quotients for ionicequilibria in high temperature water: the model substance approach.Proceedings 41st International Water Conference, Engineering Societyof Western Pennsylvania, pp. 284-294.
Lown, D. A., Thirsk, M. R., and Wynn-Jones, L., 1970, Temperature and pressuredependence of the ionization of acetic acid in water from 25° to 225°Cand 1 to 3000 bars: Faraday Society Transactions, v. 66, p. 51-73.
Lundegard, P. D., and Land, L. S., 1986, Carbon dioxide and organic acids:Their origin and role in diagenesis, the Texas Gulf Coast Tertiary,in Relationship of Organic Matter and Mineral Diagenesis, Gautier, D.L.,ed., SEPM Special Publication No. 38, p. 129-146.
MacGowan, D. B., and Surdam, R. C., 1988, Difunctional carboxylic acids inoilfield waters: Organic Geochemistry, v. 12, pp 245-259.
Marshall, W. M., 1980, Amorphous silica solubility, III. Activitycoefficient relationships and prediction of solubility behavior insalt solutions, 0-350°C. Geochimica et Cosmochimica Acta, v. 44,p. 925-931.
Marshall, W. L., and Frank, E. V., 1981, Ion product of water substance,0-1000°C, 1-10,000 bars, new international formulation and itsbackground: Journal of Physical Chemical Reference Data, v. 10,p. 295-304.
Marshall, W. L., and Mesmer, R. E., 1981, On the pressure effects ofionization constants in aqueous solutions: Journal of SolutionChemistry, v. 10, p. 121-127.
Martell, A. E., and Smith, R. M., 1977, Critical stability constants: NewYork, Plenum, v. 3, 495 p.
May, H. M., Helmke, P.A., and Jackson, M. L., 1979, gibbsite solubilityand thermodynamic properties of hydroxyaluminum ion in aqueous solutionat 25°C: Geochimica et Cosmochimica Acta, v. 75, p. 351-361.
May, H. M., Kinniburgh, D. G., Helmke, P. A., and Jackson, M. L., 1986,Aqueous dissolution solubilities and thermodynamic stabilities ofcommon alumino silicate clay minerals: Kaolinite and smectites:Geochimica et Cosmochimica Acta, v. 50, p. 1667-1678.
Merino, E., 1975, Diagenesis in Tertiary Sandstones From KettlemanNorth Dome, California--!. Diagenetic Mineralogy. Journal of SedimentaryPetrology, v. 45, p. 320-336.
115
, 1979, Internal consistency of a water analysis and uncertaintyof the calculated distribution of aqueous species at 25 C: Geochimicaet Cosmochimica Acta, v. 43, p. 1533-1542.
Mesmer, R. E., Bates, C. F., and Seeton, F. H., 1972, Acidity measurementsat elevated temperatures: VI. Boric acid equilibrium: InorganicChemistry, v. 11, p. 536-543.
Meyer, H. J., and McGee, H. W., 1985, Oil and gas fields accompanied bygeothermal anomalies in Rocky Mountain Region. American Association of Petroleum Geologists Bulletin, v. 69, p. 933-945.
Millero, F. J., 1972, The partial molal volumes of electrolytes inaqueous solutions, in Water and Aqueous Solutions, Horne, R. A., ed.John Wiley, New York, p. 519-593.
Miller, N. , 1988, The prediction of mineral solubilities in natural waters: A chemical equilibrium model for the Na-iCa-Cl-SO,-H~0 system, to high
temperature and concentration: Geochimica et Cosmochimica Acta, v. 52p. 821-837.
Morel, F. M. , 1983, Principles of aqueous geochemistry. Wiley-Interscience,New York, 446 p.
Murray, R. C., and Cobble, J. W., 1980, Chemical equilibria in aqueoussystems at high temperatures. Proceedings 41st International WaterConference, Engineering Society of Western Pennsylvania, pp 295-310.
Nancollas, G. H., 1956, Thermodynamics of ion association. II. Alkalineearth acetates and formates: Journal of Chemistry Society, p. 744-749.
Narasimhan, T. N., White, A. F., and Tokunaga, T, 1986, Groundwatercontamination from an active uranium mill tailings piles, 2.Application of dynamic mixing model. Water Resources Research, v. 22,p. 1820-1834.
Naumov. G. B., Ryzhenko, B. N., and Khodakouskii, I. L., 1974, Handbook ofthermodynamic data: U. S. Geological Survey Water Resources Publication74-001, 239 p. (translated from Spravochnik TermodinamichesnikhVelichmin, Atomizdat, Moscow).
Navrotsky, A., 1987, Models of crystalline solutions, in ThermodynamicModeling of Geological Materials: Minerals, Fluids, and Melts,Carmichael, I. S. E., and Eugster, H. P., Mineral Society of America,17, p. 35-39.
Nordstrom, D. K., and Jenne, E. A., 1977, Fluorite solubility equilibriain selected geothermal waters: Geochimica et Cosmochimica Acta, v. 41,p. 175-188.
Nordstrom, D. K., and Munoz, J. L., 1985, Geochemical thermodynamics. TheBenjamin/Cummings Publishing Company, Incorporated, Menlo Park,California, 477 p.
Nordstrom, D. K., Plummer, L. N., Wigley, T. M. L., Wolery, T. J., Ball,J. W., Jenne, E. A., Basset, R. L., Crerar, D. A., Floremce, T. M.,Fritz, B., Hoffman, M., Holdren, G. R., Lafon, G. M., Mattigod, S. V.,McDuff, R. E., Morel, F., Reddu, M. M., Sposito, G., and Thrailkill,J., (1979), A comparison of computerized chemical models forequilibrium calculations in aqueous systems. In Chemical Modeling inAqueous Systems, Jenne, E. A., ed., American Chemical Society,Symposium Series 93, p. 857-892.
Pabalan, R. T. and Pitzer, K. S., 1987, Thermodynamics of NaOH(aq) inhydrothermal solutions: Geochimica et Cosmochimica Acta, v. 51,p. 829-838.
Palmer, D. A., and Drummond, S. E., 1988, A po^entiometric determination ofthe molal formation constants of ferrous acetate complexes in aqueoussolutions to high temperatures: Journal of Physical Chemistry, v. 92,p. 6795-6800.
116
Parkhurst, S. L., Thorstenson, C., and Plummer, L.N., 1980, PHREEQE: acomputer program for geochemical calculations. U. S. GeologicalSurvey, Report No. PB81-167801.
Parsons, M. L., Major, S., and Forster, A. R., 1983, Trace elementdetermination by atomic spectroscopic methods-state of the art:Applied Spectroscopy, v. 37, no. 5, p. 411-418.
Patterson, C. S., Slocum, G. H., Busey, R. H., and Mesmer, R. E., 1982,Carbonate equilibria in hydrothermal systems: first ionization ofcarbonic acid in NaCl media to 300°C: Geochimica et Cosmochimica Acta,v. 46, p. 1653-1663.
Perkins, E. H., 1980, A reinvestigation of the theoretical basis ofPATHI. University of British Columbia, Unpublished M.Sc. thesis.
Phillips, S. L., 1982, Hydrolysis and formation constants at 25°C:University of California Publication, LBL-14313.
Pitzer, K. S., 1973, Thermodynamics of electrolytes. I. Theoreticalbasis and general equations: Journal of Physical Chemistry, v. 77,p. 268-277.
, 1981, Characteristics of very concentrated aqueous solutions,in Chemistry and geochemistry of solutions of high temperatures and pressures. Physics and Chemistry of the Earth, 13-14, p. 249-272.
Plummer, L. N. , and Busenberg, Eurybiades, 1982, The solubilities of calcite aragonite and vaterite in C0« - H~0 solutions between 0° and 90°C, and
an evaluation of the aqueous model for the system CaGO^-CO^-H^O:
Geochimica et Cosmochimica Acta, v. 46, p. 1011-1040. Plummer, L. N., Jones, B. F., and Truesdell, A. H., 1976, WATEQF a FORTRAN IV
version of WATEQ, a computer program for calculating chemical equilibrium of natural waters: U. S. Geological Survey Water ResourceInvestigation 76-13, 61 p.
Plummer, L. N., and Busenberg, E., 1984, WATEQF a FORTRAN IV version of WATEQ,a computer program for calculating chemical equilibrium of naturalwaters. U. S. Geological Survey Water Resources Investigation 76-13,70 p.
Presser, T. S., and Barnes, I., 1974, Special techniques for determiningchemical properties of geothermal waters: U.S. Geological Survey WaterResources Investigation 22-74, 11 p.
Reardon, E. J., 1975, Dissociation constants of some monovalent sulfateion pairs at 25 form stoichiometric activity coefficients: Journal ofPhysical Chemistry, v. 79. p. 422-425.
Reed, M, H., 1982, Calculation of multicomponent chemical equilibria andreaction processes involving minerals, gases and an aqueous phase:Geochimica et Cosmochimica Acta, v. 46, p. 513-528.
Richet, P., Bottinga, Y., Denielou, L., Petit, J. P., and Tequi, C., 1982,Thermodynamic properties of quartz, cristobalite and amorphous silicondioxide: Drop Calorimetry measurements between 1000 and 1800 K anda review from 0 to 2000 K: Geochimica et Cosmochimica Acta, v. 46,p. 2639-2658.
Roberson, C. E., and Barnes, R. B., 1978, Stability of fluoride complexwith silica and its distribution in natural water systems: ChemicalGeology, v. 21, p. 239-256.
Robie, R. A., Hemingway, B. S., and Fisher, J. R., 1978, Thermodynamicproperties of minerals and related substances at 298.15 K and 1 barpressure and at higher pressures: U. S. Geological Survey Bulletin 1452,456 p.
Ruaya, J. R., and Seward, T. M., 1986, The stability of chlorozinc (II)complexes of hydrothermal solutions up to 350°C: Geochimica etCosmochimica Acta, v. 50, p. 651-662.
117
Schoonen, M. A. A., and Barnes, H. L., 1988, An approximation of the second dissociation constant for H? S: Geochimica et Cosmochimlca Acta, v. 92,
p. 649-654. Seward, T. M., 1976, The stability of chloride complexes of silver in
hydrothermal solutions up to 350°C: Geochimica et Cosmochimica Acta, v. 40, p. 1329-1342.
-, 1981, Metal complex formation in aqueous elevated temperatures and pressures: Physics 13-14, p. 113-128.
solutions atand Chemistry of the Earth,
, 1984, The formation of lead(II) chloride complexes to 300°C.A spectrophotometric study: Geochimica 4t Cosmochimica Acta, v. 48,p. 121-134.
Shanks, W. C., and Bischoff, J. L., 1977, Ore transport and deposition in theRed Sea geothermal system: a geochemical model: Geochimica etCosmochimica Acta, v. 41, p. 1507-1519.
Siebert, R. M., and Hostetler, P. B., 1977, Stability constants of metal-ioncomplexes: Chemical Society [London], 745 p.
Sillen, L. G., and Martell, A. E., 1964, Stability constants of metal-ioncomplexes: Chemical Society [London], 754 p.
Silvester, K. S., and Pitzer, K. S., 1978, Thermodynamics of electrolytes.X. Enthalpy and the effect of temperature on the activity coefficients:Journal of Solution Chemistry, v. 7, p. 327-337.
Smith, R. M., and Martell, A. E., 1976, Critical stability constants:Plenum Press, New York, 4 vols.
Smith, R. W., Popp, C. J., and Norman, D. I., 1986, The dissociation ofoxy-acids at elevated temperatures: Geochimica et Cosmochimica Acta,v. 50, p. 137-142.
Smith, W. R., and Missin, R. W., 1982, Chemical reaction equilibriumanalysis. Wiley-Interscience, New York.
Sposito, G., 1982, The thermodynamic theory of ion exchange, inThermodynamics of Ion Exchange, Sposito, G., ed., Wiley, New York,pp. 126-153.
Sposito, G., and Mattigod, S.V., 1980, GEOCHEM: A computer program forthe calculation of chemical equilibria in soil solutions and othernatural water systems. Report, Kearney Foundation of Soil Science,University of California.
Staples, B. R., and Nuttall, R. L., 1977, The activity and osmoticcoefficients of aqueous calcium chloride at 298.15°: Journal ofPhysical Chemistry Reference Data, v. 6, p. 385-407.
Stoessell, R. K., 1988, 25°C and 1 atm dissolution experiments of sepioliteand kerolite: Geochimica et Cosmochimica Acta, v. 52, p. 365-374.
Swaddle, T. W., and Mak, M. K. S., 1983, The partial molar volumes ofaqueous metal cations: their prediction and relation to volumes ofactivation for water exchange: Canadian Journal of Chemistry, v. 61,p. 473-480.
Tanger, J. C., and Helgeson, H. C., 1988, Calculation of the thermodynamicand transport properties of aqueous species at high pressure andtemperatures: Revised equations of state for the standard partial molalproperties of ions and electrolytes: American Journal of Science,v. 287, p. 1025-1049.
Tardy, Y., and Garrels, R. M., 1974, A method of estimating the Gibbs energiesof formation of layer silicates: Geochimica et Cosmochimica Acta, v.38, p. 1101-1116.
Thorstenson, D. C., 1984, The concept of election activity and its relationto redox potentials in aqueous geochemical systems. U.S. GeologicalSurvey Open-File Report 84-072, 45 p.
118
Thurman, E. M. , 1984, Humic Substances I. Geochemistry, Characterization and Isolation. New York, John Wiley and Sons, 380 p.
, 1985, Organic geochemistry natural waters: Boston MartinusNijhoff, DRW Junk Publishers, 479 p.
Tremaine, P., 1987, Solubility and hydrolysis of aluminum oxides andhydroxides at elevated temperatures from apparent molar heat capacityand volume measurements near 25°C: Proceedings of Symposium on Chemistryin High Temperature Aqueous Solutions, Prove, Utah, Electric PowerResearch Institute Report, p. 18.
Tremaine, P. R. , Chen, J. D. , Wallace, G. J., and Boivin, W. A., 1981,Solubility of Uranium (IV) oxide in alkaline aqueous solutions to 300°C:Journal of Solution Chemistry, v. 10, No. 3, pp. 221-230.
Truesdell, A. H. , and Jones, B. F. , 1974, WATEQ, a computer program forcalculating chemical equilibria of natural waters. Journal ofResearch, U.S. Geological Survey, v. 2, p. 233-248.
Truesdell, A. H. , and Singer W. , 1974, The calculation of aquifer chemistryin hot-water geothermal systems: U.S. Geological Survey Journal ofResearch v. 2, pp. 271-278.
Tugarinov, I. A., Ganeyev, I. G. , and Khodakovskiy , I. L. , 1975, Experimentaldeterminations of hydrolysis constants of lead ions in aqueous solutionsat temperatures up to 300°C: Geochemistry International, v. 12,p. 47- 55.
Vanderzee, C. E. , 1982, Thermodynamic relations and equilibria in (NaCOo,
H20) : Standard Gibbs energies of formation and other properties
of sodium hydrogen carbonate, sodium carbonate heptahydrate, sodium carbonate decahydrate, trona: (Na^COo-NaHCOo* 2H,,0) , and wegscheiders
salt: (Na2CO * SNaHCO-) : Journal Chemical Termo., v. 14, pp 219-238.
Wagman, D. D. , Evans, W. H. , Parker, V. B. , and Schumm, R. H. , 1976,Chemical thermodynamic properties of compounds of sodium, potassium and rubidium: An interm tabulation of selected values: National Technical Information Service (NTIS) report, PB 254-460, 73 pp.
Wagman, D. D. , Evans, W. H. , Parker, V. B., Schumm, R. H. , Harlow, I.,Bailey, S. M. , Churney, K. L. , and Nuttall, R. L. , 1982, The NBS tables of chemical thermodynamic properties. Journal of Chemical and Reference Data, vol 11, supplement 2.
Wagman, D. D. and others, 1968 and 1969, Selected values of chemicalthermodynamic properties: NBS Technical Note No. 270-3; No. 270-4.
Westall, J., 1980, Chemical equilibrium including adsorption on chargedsurfaces, in Advances in Chemistry series, Leckie, J., and Kavanaugh, M. , eds., American Chemical Society, p. 33-44.
Westall, J., and Hohl, H. , 1980, A comparison of electrostatic models for the oxide/solution interface. Advances in Colloid and Interface Science, vol 12, p. 265-294.
Westall, J., Zachary, J. L. , and Morel, F. M. M. , 1976, MINEQL, a computer program for the calculation of chemical equilibrium composition of aqueous systems. Massachusetts Institute Technical Department of Civil Engineering Technical Note 18, 91 p.
Whitfield, M. , 1975, An improved specific interaction model for seawater at 25 C and 1 atmosphere pressure: Mar. Chemical, v. 3, p. 197-205.
Willey, L. M. , Kharaka, Y. K. , Presser, T. S., Rapp, J. B. andBarmes, I., 1975, Short-chain aliphatic acids in oil field waters of Kettleman Dome oil field, California: Geochimica et Cosmochimica Acta, v. 39, p. 1707-1710.
119
Williams-Jones, A. E., and Seward, T. M., 1988, The stability of calciumchloro-complexes in aqueous solutions at temperatures between 100° and 360°C: Abstract in proceedings of Experimental investigations of hydrothermal processes: Applications to ore deposit genesis, Montreal, Quebec, Canada.
Wiwchar, B. W., Perkins, E. H., Gunter, W. D., in press, SOLMINEQ.88 PC/SHELL, Alberta Research Council Report, 130 p.
Wolery, T. J., 1979, Calculation of chemical Equilibrium between aqueous solution and mineral: the EQ3/EQ6 software package: Lawrence Livermore Laboratory (UCRL-52658), 41 pj
, 1983, EQ3NR, a computer program for g4ochemical aqueousspeciation-solubility calculations, user's guide and documentation: Lawrence Livermore Laboratory (UCRL-534]i4) , 191 p.
, 1984, EQ36, a computer program for reaction-path modeling of aqueousgeochemical systems: User's guide and documentation, Lawrence Livermore Laboratory UCRL-51 (draft), 251 pp.
, 1986, unpublished EQ3 data base.Wolley, E. M., and Hepler, L. G., 1977, Heat capacities of weak electrolytes
and ion association reactions: Method and application to aqueous MgSO, and HIO., at 298 K: Canadian Journal of Chemistry, v. 55,
p. 158-163. Wood, S. A., Crerar, D. A., and Borcsik, M. P., 1987, Solubility of the
assemblage pyrite-pyrrotite-magnetite-sphalerite-galena-gold-stibnite- dismuthinite-argentite-molybdenite in H«0-Nacl-C0« solutions from 200°
to 350°C: Economic Geology, v. 82, p. 1864-1887.Zen, E-an, 1972, Gibbs free energy, enthalpy and entropy of ten rock-
forming minerals: Calculations, discrepancies, implications: American Mineralogist, v. 57, p. 524-553.
120
APPENDIX I. DATABASE
The database for SOLMINEQ.88 consists of physical parameters of the
aqueous species, equilibrium constants (K) of the dissociation, redox, and
dissolution reactions, constants for calculating the activity coefficients,
and data for the extrapolation of the K values to higher pressures. The
physical parameters are listed in Table IA. In this table, the name of the
species is followed by its charge, hydrated radius (a ), and molecular weight.
Tables IB and 1C list the equilibrium constants at eleven temperatures
from 0° to 350°C for the dissociation of aqueous complexes and redox reactions
(IB), and dissolution reactions for the minerals (1C). The eleven constants
are arranged in two lines for each of the species; the first line contains
data for the temperatures (°C) 0, 25, 50, 75, 100, 125, and 150, and the
second line for 200, 250, 300, and 350. The corresponding reactions together
with the sources of thermochemical data are listed in Tables 2 and 3 of the
main text.
Parameters and equations used for calculating the activity coefficients
are given in the main text and Table ID. Table ID contains the B* values for
the specific temperatures used to calculate the activity coefficients of
charged species by the equation (24).
Data for the pressure effects on K values are given in Tables IE and IF.
Table IE contains the fit parameters for adjusting the K values of dissolution
reactions of 158 minerals. These parameters have been obtained (see text for
details) mainly by the regression of high temperature-high pressure values of
K reported by Helgeson and others (1978).
Entries in Table IF consist of three parameters. The first refers to the
number of the aqueous dissociation reaction from Table IB, the second to the
AV of this reaction at 25°C, and the third to the number of water ionization
reactions that must be added to convert the dissociation reaction to an
"ISOCOULOMBIC" form. Table IG contains the Pitzer Coefficients used to
calculate the activity of water and the activity coefficients of charged
species. Table IH gives the aqueous species number and stoichiometry involved
in the congruent dissolution of minerals. This table is used in the
calculation of saturation states of minerals and reactions involving mass
transfer between minerals and water.
121
Table IA. Physical Parameters of Aqueous Species.
Charge
1 Ca ++2 Mg ++3 Na +4 K +5 Cl -6 S04 --7 HC03 -8 H +9 OH -
10 H2011 H4Si0412 Si0213 Ag +14 Al +315 Ba ++16 Cu +17 Cu ++18 Fe ++19 Fe +320 Hg2 ++21 Hg ++22 Li +23 Mn ++24 Mn +325 Pb ++26 Sr ++27 Zn ++28 H2As03-29 P04 -330 F -31 B(OH)332 NH333 H2S34 A1F ++35 A1F2 +36 A1F337 A1F4 -38 A1(OH)++39 A1(OH)2+40 A1(OH)4-41 A1(S04)+42 A1S04)2-43 AgCl44 AgC12 -45 AgC13 --46 AgC14 -347 Ag(S04)-48 CH3COO -49 H3As0350 As04 -351 BaC0352 BaHC03 +
2211
-1-2-11
-1000132122322123222
-1-3-1000210
-121
-11
-10
-1-2-3-1-10
-301
\j a
6.08.04.03.03.04.04.59.03.50.00.00.02.59.05.02.56.06.09.04.05.06.06.09.04.55.06.04.05.03.50.00.00.05.45.40.04.55.45.44.54.54.50.04.05.06.04.04.50.06.00.04.0
MolecularWeight
40.08024.31222.99039.10235.45396.06261.0171.008
17.00718.01596.11560.085
107.87026.982
137.34063.54063.54055.84755.847
401.180200.590
6.93954.93854.938
207.19087.62065.370
130.93694.97118.99861.83317.03134.08045.98064.97883.977102.97543.98960.99695.011
123.043219.105143.323178.776214.229249.682203.93259.045
125.944138.921197.349198.357
53 Ba(OH) +54 BaS0455 CaC0356 CaHC03 +57 Ca(OH) +58 CaP04 -59 CaHP0460 CaH2P04+61 CaS0462 CuCl63 CuC1264 CuC1365 CuCl +66 CuC1267 CuC13 -68 CuC14 --69 Cu(OH) +70 CuS0471 FeCl +72 FeCl273 FeHP0474 H3P0475 Fe(OH) +76 Fe(OH)277 FeOOH -78 FeS0479 FeCl ++80 FeCl2 +81 FeCl382 FeC14 -83 FeS04 +84 FeS04)2-85 Fe(OH)++86 Fe(OH)2+87 Fe(OH)388 Fe(OH)4-89 B(OH)4 -90 H2Si04--91 H3Si04 -92 HAs03 --93 HAs04 --94 H2As04 -95 H3As0496 HF97 H2C0398 C03 --99 HP04 --
100 H2P04 -101 HS -102 S --103 HS04 -104 HN03
arge
10011
-10100
-1-210
-1-210100010
-10210
-11
-1210
-1-1-2-1-2-2-1000
-2-2-1-1-2-10
o a
5.00.00.06.06.05.40.05.40.00.04.05.04.00.04.05.04.00.04.00.00.00.05.00.05.00.05.05.00.04.05.04.05.05.40.05.42.65.44.05.05.04.00.00.00.04.55.05.43.55.04.50.0
MolecularWeight
154.347233.402100.089101.09757.087
135.051136.059137.067136.14298.993
134.446169.89998.993
134.446169.899205.35280.547
159.60291.300
126.753151.82697.99572.85489.86288.854
151.90991.300
126.753162.206197.659151.909247.97072.85489.862
106.869123.87778.84094.10095.108
129.928139.929140.936141.94420.00662.02560.00995.97996.98733.07232.06497.07063.013
122
Charge
105 HgCl +106 HgC12107 HgC13 -108 HgC14 --109 HgS04110 HgSH2S)2111 Hg(HS)3-112 Hg113 KC1114 KC03 -115 KHS04116 KS04 -117 KHP04 -118 LiOH119 L1S04 -120 MgC03121 MgHC03 +122 MgF +123 MgOH +124 MgS04125 MgP04 -126 MgHP04127 MgH2P04+128 MnCl +129 MnC12130 MnC13 -131 MnC14 --132 MnHC03 +133 MnS04134 MnHP04135 MnOH +136 N03 -137 NaCl138 NaC03 -139 NaHC03140 Na2C03141 Na2S04142 NaS04 -143 NaHP04 -144 NaF145 NaHS146 NH4 +147 NH40H148 PbCl +149 PbC12150 PbC13 -151 PbC14 --152 PbS04153 MnCl ++154 Sr(OH) +155 SrC03156 SrHC03 +157 SrS04158 ZnCl +
10
-1-200
-100
-10
-1-10
-101110
-10110
-1-21001
-10
-1000-1-1001010
-1-20210101
oa
4.00.04.05.00.00.04.00.00.03.80.05.45.40.05.00.04.04.56.50.05.40.05.44.00.04.05.04.00.00.04.03.00.05.40.00.00.05.45.40.00.02.50.04.00.04.05.00.05.05.00.04.00.04.0
MolecularWeight
236.043271.496306.949342.402296.652300.814299.806200.59074.55599.111
136.172135.164135.08123.946
103.00184.32185.32943.31041.319120.374119.283120.291121.29990.391
125.844161.297196.750115.955151.000150.91771.94562.00558.44382.99984.007
105.989142.041119.051118.96941.98856.06218.03935.046
242.643278.096313.549349.002303.25290.391
104.627147.629148.637183.682100.823
159 ZnC12160 ZnC13 -161 ZnC14 --162 ZnS04163 A1F5 --164 A1F6 -3165 HgOH +166 Hg(OH)2167 U +4168 U02 +169 U02 ++170 UOH +3171 U(OH)2++172 U(OH)3 +173 U(OH)4174 U(OH)5 -175 UF +3176 UF2 ++177 UF3 +178 UF4179 UF5 -180 UF6 --181 UC1 +3182 UHP04 ++183 U(HP04)2184 U(HP04)3185 U(HP04)4186 US04 ++187 U(S04)2188 U6(OH)15189 U020H +190 U02(OH)2191 U02)20H2192 U02)30H5193 U02)30H7194 U02S04195 U02S04)2196 U02F +197 U02F2198 U02F3 -199 U02F4 --200 U02C1 +201 UH3S104+202 U02HP04203 U02HP042204 U02H2P04205 UH2P04)2206 UH2P04)3207 U02C03208 U02C03)2209 U02C03)3210 V04 -3211 VO ++212 V +3
arge
0-1-20
-2-3104123210
-13210
-1-2320
-2-42091021
-10
-210
-1-2110
-210
-10
-2-4-323
oa
0.04.05.00.05.06.04.00.09.92.56.09.06.02.50.03.59.06.02.50.03.54.59.06.00.04.56.06.00.09.92.50.06.02.53.50.04.52.50.03.54.52.52.50.04.52.50.03.50.04.56.05.25.09.0
MolecularWeight
136.276171.729207.182161.432121.974140.972217.597234.605238.030270.030270.030255.040272.050289.060306.070323.080257.030276.030295.030314.030333.030352.030273.480334.010429.990525.970621.960334.090430.1501683.330287.040304.050574.080895.140929.160366.090462.150289.030308.030327.030346.030305.480265.140366.010461.990367.080464.130561.180330.040390.050450.060114.94066.94050.940
123
213 HV04 --214 H2V04 -215 H3V04216 H4V04 +217 NaHV04 -218 V02F219 V02F2 -220 VOH ++221 V(OH)2 +222 V(OH)3223 VOOH +224 VOS04225 VOC1 +226 VOF +227 VOF2228 CH3COOH229 AlAce ++230 BaAce +231 CaAce +232 CuAce +233 FeAce +234 Fe(Ace)2235 KAce236 MgAce +237 NaAce238 PbAce +239 Pb(Ace)2240 Pb(Ace)3241 SrAce +242 U02Ace +243 U02Ace2244 ZnAce +245 Zn(Ace)2246 C204 --247 HC204 -248 H2C204249 AlOxy +250 AlOxy)2-251 BaOxy252 CaOxy253 FeOxy254 FeOxy +255 KOxy -256 MgOxy257 MnOxy258 MnOxy)2259 MnOxy)3260 MnOxy +261 NaOxy -262 PbOxy263 SrOxy264 ZnOxy265 C4H404--266 HC4H404-
arge
-2-101
-10
-121010110021111001010
-111010
-2-101
-10001
-100
-2-41
-1000
-2-1
oa
5.25.60.04.04.00.04.05.05.40.02.50.02.52.50.00.04.54.54.54.54.50.00.04.50.04.50.04.54.53.50.04.50.05.44.50.04.54.50.00.00.04.54.50.00.05.45.44.54.50.00.00.05.44.5
MolecularWeight
115.950116.960117.970118.980138.940101.940120.94067.95084.960
101.97083.950
163.000102.39085.940
104.94060.05386.027196.38599.125
122.585114.892173.93798.14783.35782.035
266.235325.280384.325146.665329.075338.120124.415183.46088.01889.02690.034
115.000203.018225.358128.098143.865143.865127.120112.330142.956197.894252.832142.956111.008295.208175.638153.388116.072117.080
267 H2C4H404 0 0.0268 AlSuc + 1 4.5269 AlSuc)2- -1 4.5270 BaSufc 0 0.0271 CaSu<k 0 0.0272 FeSu£ 0 0.0273 FeSufc + 1 4.5274 KSucj- -1 4.5275 MgSuc 0 0.0276 MnSue 0 0.0277 NaSuc - -1 4.5278 PbSuc 0 0.0279 SrSut 0 0.0280 ZnSuc 0 0.0281 CaCl + 1 4.0282 CaCl2 0 0.0283 FeF ++ 2 5.0284 SiF6 -- -2 5.0285 CH4 Gas 0 0.0286 Pb(HS)2 0 0.0287 Pb(HS)3- -1 4.0288 PbC03 0 0.0289 PbOH + 1 4.0290 Zn(HS)2 0 0.0291 Zn(HS)3- -1 4.0292 ZnHC03 + 1 4.0293 ZnOH + 1 4.0294 Zn(OH)2 0 0.0295 ZnHSOH 0 0.0
Molecular Weight
118.088143.054143.054253.412156.152171.919171.919155.174140.384171.010139.062323.262203.692181.44275.533
110.98674.845
142.07616.043
273.334306.416267.199224.197131.514164.596126.38782.37799.385
115.449
124
Table IB. Equilibrium Constants of Dissociation, and Redox Reactions at 0°to 350°C.
1 HC03 -
2 H20
3 H4Si04
4 Cu ++
5 Fe +3
6 Hg ++
7 Mn +3
8 H2As03 -
9 A1F5 --
10 H2S
11 A1F ++
12 A1F2 +
13 A1F3
14 A1F4 -
15 A1(OH)++
16 A1(OH)2+
17 A1(OH)4-
18 A1(S04)+
19 A1S04)2-
20 AgCl
21 AgC12 -
22 AgC13 --
23 AgC14 -3
24 Ag(S04)-
25 CH3COOH
26 BaC03
0/200
-10.63-10.78-14.94-11.31-10.28-8.87
-11.09-7.218.967.926.11-0.9713.236.80
-12.68-11.35-20.39-25.20-7.40-7.17-6.94-8.78
-12.52-15.88-16.61-20.82-19.00-23.89-9.17-9.32
-18.08-22.19-33.72-31.88-2.88-4.55-4.72-7.13-3.70-2.90-5.80-4.58-6.30-3.66-5.80-1.40-1.22-2.23-4.77-5.58-2.40-3.60
25/250
-10.33-11.29-13.99-11.20-9.83-8.96
-10.35-6.668.807.844.67-1.8511.955.98
-12.13-11.70-20.40-27 .77-7.00-7.72-6.97-9.69
-12.57-17.53-16.65-22.94-19.04-26.08-9.04-9.54
-18.06-24.38-32.77-32.40-3.00-5.18-4.89-8.06-3.32-3.07-5.32-4.86-5.10-3.70-3.90-1.50-1.31-2.69-4.76-6.10-2.50-4.10
50/300
-10.17-11.88-13.27-11.33-9.49-9.20-9.72-6.208.647.853.46-2.5610.865.31
-11.74-12.10-20.61-30.86-6.75-8.43-7.07
-10.94-12.76-19.64-16.86-25.42-19.26-28.87-8.96-9.86
-18.22-26.92-32.20-33.10-3.16-5.88-5.10-9.01-3.07-3.54-4.74-5.42-4.40-3.85-3.10-1.70-1.41-3.44-4.78-6.80-2.60-4.70
75/350
-10.13-12.53-12.71-11.88-9.26-9.36-9.16-5.808.487.942.44-3.149.944.74
-11.47-12.60-20.99-34.72-6.63-9.23-7.22
-11.93-13.05-21.60-17.22-28.21-19.64-32.02-8.97
-10.49-18.57-29.81-31.84-34.20-3.34-6.65-5.35
-10.27-2.94-4.22-4.52-6.52-4.00-4.10-2.40-2.10-1.51-5.02-4.85-7.68-2.70-5.30
100
-10.16
-12.26
-9.09
-8.68
8.33
1.56
9.14
-11.30
-21.54
-6.61
-7.43
-13.45
-17.72
-20.18
-9.00
-19.05
-31.67
-3.54
-5.64
-2.88
-4.46
-3.85
-1.94
-1.62
-4.79
-2.85
125
-10.25
-11.91
-8.97
-8.25
8.20
0.80
8.44
-11.23
-22.26
-6.61
-7.71
-13.93
-18.34
-20.88
-9.05
-19.66
-31.58
-3.76
-5.96
-2.88
-4.46
-3.77
-1.70
-1.75
-5.12
-3.00
150
-10.39
-11.64
-8.90
-7.86
8.09
0.13
7.83
-11.20
-23.16
-6.75
-8.04
-14.51
-19.06
-21.75
-9.13
-20.40
-31.59
-4.01
-6.32
-2.88
-4.45
-3.73
-1.60
-1.89
-5.31
-3.20
125
27 BaHC03)+
28 Ba(OH)+
29 BaS04
30 CaC03
31 CaHC03)+
32 Ca(OH)+
33 CaP04 -
34 CaHP04
35 CaH2P04+
36 CaS04
37 CuCl
38 CuCl2 -
39 CuCl3 --
40 CuCl +
41 CuCl2
42 CuCl3 -
43 CuC14 --
44 Cu(OH)+
45 CuS04
46 FeCl +
47 FeCl2
48 FeHP04
49 H3P04
50 Fe(OH) +
51 Fe(OH)2
52 FeOOH -
53 FeS04
54 FeCl ++
0/200
-1.18-3.62-0.43-1.86-2.39-2.38-3.14-5.44-0.82-2.33-1.03-2.51-6.31-9.19-2.41-4.58-1.23-3.21-2.30-3.60-2.80-2.25-4.99-5.82-5.15-6.36-0.53-3.731.38-3.673.18-3.085.75-2.04-6.19-6.57-2.19-3.261.06-1.589.191.35-3.49-5.00
-21.97-23.71-4.54-5.19-7.28-9.7331.2221.36-2.41-3.19-0.98-5.06
25/250
-1.44-4.60-0.53-2.30-2.31-2.59-3.22-6.30-1.11-2.64-1.14-2.91-6.47
-10.77-2.61-5.56-1.44-4.01-2.30-4.10-2.70-2.20-4.94-6.57-5.14-7.25-0.02-4.800.71-4.902.30-4.604.60-3.90-6.06-6.89-2.25-3.840.53-2.348.21-0.61-3.60-5.60
-21.69-24.97-4.50-5.49-7.39
-10.5429.0020.41-2.43-3.69-1.47-6.20
50/300 11
-1.70
>/350
2.00
100
-2.27
125
-2.60
150
-2.88-5.60 -6.80-0.65 -0.83-2.83 3.68-2.26 -2.23-3.01-3.51-7.24-1.28-2.90-1.28-3.44-6.69
-13.41 -:-2.82
3.603.868.28 1.47 3.10 1.47 4.24 6.95L9.ll 3.05
-1.03
-2.23
-4.17
-1.66
-1.67
-7.23
-3.29
-1.22
-2.24
-4.32
-1.83
-1.87
-7.65
-3.57
-1.43
-2.26
-4.67
-2.00
-2.08
-8.09
-3.87-7.13 -10.46-1.65-5.27-2.40-4.50-2.65-2.40
-1.87-7.90 2.55-5.00-2.60-2.70
-4.94 -4.98-7.40-5.18
-8.80-5.27
-2.10
-2.70
-2.50
-5.06
-5.39
-2.34
-2.90
-2.45
-5.19
-5.56
-2.60
-3.10
-2.35
-5.35
-5.78-8.30 -10.50-0.54-6.000.08-6.501.49-6.503.56-6.10-6.06-7.32-2.34
-1.04-7.30-0.53-8.500.72-9.002.58
8.70 6.02-8.06-2.44
-1.54
-1.13
-0.02
1.65
-6.08
-2.56
-2.05
-1.73
-0.76
0.74
-6.18
-2.70
-2.58
-2.34
-1.50
-0.16
-6.30
-2.86-4.79 -6.840.08 -0.31-2.337.23
-2.006.25
-0.66
5.27
-0.69
4.29
-1.23
3.31-2.57 -4.53-3.72-6.30
-3.89-7.10
-21.63 -21.80
-4.09
-22.02
-4.30
-22.34
-4.56
-22.73-26.60 -29.15-4.50 -4.57 -4.66 -4.77 -4.90-5.87 -6.54-7.57 -7.87 -8.20 -8.55 -8.94
-11.50 -13.0427.22 25.76 24.55 23.54 22.6819.77 19.36-2.48 -2.54 -2.63 -2.73 -2.86-4.53 -6.37-1.96-7.50
^2.45-8.80
-2.94 -3.45 -3.97
126
55 FeC12 +
56 FeC13
57 FeC14 -
58 FeS04 +
59 FeS04)2-
60 Fe(OH)++
61 Fe(OH)2+
62 Fe(OH)3
63 Fe(OH)4-
64 H4(B04)-
65 A1F6 -3
66 H3S104)-
67 H3As03
68 HAs04 --
69 H2As04 -
70 H3As04
71 HF
72 H2C03
73 HP04 --
74 H2P04 -
75 HS -
76 HS04 -
77 HN03
78 HgCl +
79 HgC12
80 HgC13 -
81 HgC14 --
82 HgS04
0/200
-1.64-5.87-0.48-5.641.67-4.83-3.77-7.545.168.61
-12.10-11.68-21.14-23.71-30.28-23.31-34.92-36.95-5.45-2.27
-20.97-25.14-12.20-11.00-9.70-8.22
-11.85-11.50-18.79-19.19-20.95-22.60-2.99-4.86-6.58-7.23
-12.62-12.45-19.93-20.35-17.50-15.10-1.63-4.511.67-0.49-6.59-5.54
-14.18-10.36-16.40-12.09-15.85-12.34-1.20-3.20
25/250
-2.13-7.11-1.13-7.060.79-6.49-4.14-8.795.42
10.40-11.86-11.82-20.88-25.66-28.50-23.60-34.06-39.47-4.77-1.98
-20.88-27.54-11.70-11.50-9.29-8.29
-11.52-11.90-18.46-20.01-20.70-23.57-3.18-5.40-6.35-7.79
-12.34-12.80-19.54-21.16-17.00-14.80-1.95-5.291.43-1.04-6.25-5.78
-13.26-10.34-15.35-12.10-14.92-12.58-1.40-4.00
50/300
-2.62-8.46-1.75-8.59-0.04-8.24-4.54
-10.1.65.72
13.40-11.69-12.08-20.75-28.01-27.01-25.06-33.70-42.68-4.20-1.80
-21.00-30.39-11.30-12.00-8.94-8.51
-11.30-12.40-1.8.24-21.12-20.60-25.49-3.38-5.95-6.29-8.40
-12.18-13.30-19.36-22.26-16.70-14.60-2.29-6.081.13-1.66-5.99-6.39
-12.51-10.84-14.50-12.73-14.18-13.53-1.60-5.10
75/350
-3.12-9.89-2.37
-10.19-0.84
-10.05-4.96
-11.646.07
20.89-11.60-12.66-20.89-30.70-25.90-30.05-33.64-46.43-3.72-1.70
-21.30-33.81-11.10-13.00-8.67-8.59
-11.20-12.90-18.20-22.40-20.71-27.40-3.61-6.50-6.32-8.26
-12.14-13.80-19.38-24.20-16.30-14.40-2.64-6.880.85-2.25-5.80-8.00
-11.91-12.63-13.81-14.91-13.59-16.35-1.90-6.05
100
-3.62
-2.99
-1.63
-5.42
6.45
-11.55
-21.17
-24.97
-33.83
-3.32
-21.18
-11.00
-8.49
-11.15
-18.24
-20.90
-3.84
-6.43
-12.10
-19.43
-16.10
-3.00
0.59
-5.65
-11.42
-13.26
-13.13
-2.10
125
-4.16
-3.63
-2.42
-5.91
6.89
-11.56
-21.61
-24.28
-34.28
-2.99
-22.42
-11.00
-8.35
-11.20
-18.40
-21.23
-4.09
-6.58
-12.14
-19.58
-15.80
-3.37
0.30
-5.56
-11.03
-12.82
-12.79
-2.30
150
-4.72
-4.30
-3.23
-6 .'-2
7.38
-11.58
-22.19
-23.79
-34.95
-2.71
-23.25
-11.00
-8.27
-11.25
-18.61
-21.63
-4.33
-6.77
-12.20
-19.77
-15.40
-3.74
0.05
-5.51
-10.73
-12.48
-12.54
-2.60
127
83 HgSH2S)2
84 Hg(HS)3-
85 Hg
86 KC1
87 KC03 -
88 KHS04
89 KS04 -
90 KHP04 -
91 LiOH
92 Li(S04)-
93 MgC03
94 MgHC03)+
95 MgF +
96 Mg(OH) +
97 MgS04
98 MgP04 -
99 MgHP04
100 MgH2P04+
101 MnCl +
102 MnC12
103 MnC13 -
104 MnCU --
105 MnHC03 +
106 MnS04
107 MnCl ++
108 MnHP04
109 MnOH +
110 NaCl
0/200
38.5025.1524.41-9.79-3.2810.301.00-0.06-1.04-2.10-0.65-1.80-0.87-1.74-0.11-3.01-0.26-0.68-0.64-0.64-2.87-4.40-1.00-1.77-1.54-3.70-2.55-4.04-2.34-3.32-6.31-9.19-2.91-5.08-1.23-3.216.506.003.152.251.800.401.05-1.00-1.25-2.54-2.03-3.70-2.12-6.20-3.47-4.98-3.41-4.641.000.15
25/250
-35.65-24.04-22.03-7.15-4.06
-13.040.88-0.34-1.07-2.67-0.85-2.20-0.89-2.21-0.29-4.59-0.18-0.87-0.64-0.64-2.98-4.98-1.07-2.04-1.82-4.40-2.60-4.59-2.40-3.64-6.47
-10.77-3.11-6.06-1.44-4.016.505.703.101.801.70-0.200.80-1.80-1.27-3.02-2.26-4.49-2.61-7.34-3.58-5.60-3.44-5.170.85-0.25
50/300
-33.25-23.83-19.90-5.31-5.61
-17.310.77-0.95-1.14-3.64-1.05-2.60-0.95-3.00-0.51-7.23-0.20-1.07-0.64-0.64-3.11-5.65-1.14-2.34-2.11-5.29-2.71-5.03-2.49-3.96-6.69
-13.41-3.32-7.63-1.65-5.276.455.203.001.001.60-1.200.60-3.10-1.36-3.51-2.40-5.85-3.10-8.64-3.70-6.30-3.52-5.910.80-0.95
75/350
-31.26-25.50-18.13-6.16-i6.42
-26.180.67-1.90-1.24-5.80-1.15-3.20-1.04-4.78-0.77
-12.42-0.26-1.30-0.64-0.64-3.27-6.37-1.23-2.67-2.41-6.27-2.89-5.82-2.60-4.27-6.95
-19.11-3.55
-11.00-1.87-7.906.404.002.95-0.701.50-3.400.40-5.80-1.50-4.00-2.56-9.10-3.59-9.94-3.87-7.10-3.66-7.244.70-2.00
100
-29.58
-16.13
-7.28
0.57
-1.37
-1.29
-1.14
-1.05
-0.34
-0.64
-3.46
-1.32
-2.72
-3.09
-2.73
-7.23
-3.79
-2.10
6.35
2.90
1.30
0.15
-1.68
-2.74
-4.08
-4.07
-3.82
0.65
125
-28.16
-14.43
-8.20
0.46
-1.52
-1.39
-1.27
-1.47
-0.42
-0.64
-3.66
-1.42
-3.00
-3.32
-2.87
-7.65
-4.07
-2.34
6.30
2.80
1.15
-0.15
-1.87
-2.93
-4.59
-4.28
-4.00
0.55
150
-26.97
-12.79
-9.19
0.34
-1.96
-1.41
-1.41
-1.91
-0.50
-0.64
-3.89
-1.53
-3.20
-3.56
-3.02
-8.09
-4.37
-2.60
6.20
2.65
0.95
-0.40
-2.08
-3.15
-5.11
-4.55
-4.20
0.45
128
111 NaC03 -
112 NaHC03
113 Na2C03
114 Na2S04
115 NaS04 -
116 NaHP04 -
117 Hg(OH) +
118 NH40H
119 NaHS
120 NaF
121 PbCl +
122 PbC12
123 PbC13 -
124 PbC14 --
125 PbS04
126 Zn(AC)2
127 Sr(OH) +
128 SrC03
129 SrHC03 +
130 SrS04
131 ZnCl +
132 ZnC12
133 ZnCl3 -
134 ZnC14 --
135 ZnS04
136 As04 -3
137 Hg(OH)2
138 Fe2-Fe3
0/200
-0.71-5.100.39-0.681.00-1.40
999.99999.99-1.00-2.20-0.11-3.01
-10.90-10.08-4.87-5.530.90-0.061.06-0.22-1.39-2.55-1.80-4.00-1.64-3.81-1.40-2.14-2.75-2.75-1.02-3.96-0.57-2.07-2.48-5.90-0.82-4.14-2.12-3.250.07-4.01-0.13-3.98-0.11-3.001.07-4.23-2.10-3.606.056.33
-22.99-19.7717.1022.33
25/250
-1.27-6.150.25-0.960.68-2.20
999.99999.99-1.20-2.60-0.29-4.59
-10.46-10.79-4.75-6.000.83-0.340.88-0.55-1.41-3.18-1.97-4.98-1.66-5.03-1.46-2.14-2.75-2.75-1.35-5.07-0.69-2.52-2.82-7.40-1.19-5.35-2.20-3.84-0.42-5.21-0.62-5.70-0.34-3.89-0.18-6.24-2.21-4.365.217.75
-21.87-20.7717.7523.92
50/300
-1.81-7.200.12-1.400.40-3.20
999.99999.99-1.30-3.00-0.51-7.23
-10.14-12.29-4.70-6.750.77-0.950.70-0.93-1.47-3.89-2.17-6.26-1.70-6.76-1.56-2.14-2.75-2.75-1.72-7.02-0.83-3.06-3.13-9.24-1.56-6.88-2.29-4.81-0.88-6.55-1.04-7.51-0.62-4.86-1.03-9.00-2.35-5.684.629.80
-21.02-23.1418.3826.01
75/350
-2.35-8.30-0.01-1.800.20-4.30
999.99999.99-1.50-3.80-0.77
-12.42-9.92
-15.93-4.75-8.000.69-1.900.54-1.45-1.55-4.80-2.39-8.20-1.91-9.50-1.73-2.14-2.75-2.75-2.04
-11.55-0.99-3.92-3.45
-11.65-1.93-8.86-2.40-6.30-1.35-8.00-1.45-9.54-0.94-5.85-1.63
-12.70-2.50-6.854.5312.60-20.38-29.1319.0129.87
100
-2.89
-0.13
-0.05
999.99
-1.64
-1.05
-9.79
-4.85
0.57
0.38
-1.67
-2.62
-2.21
-1.93
-2.75
-2.33
-1.22
-3.77
-2.31
-2.52
-1.80
-1.92
-1.36
-2.04
-2.67
4.73
-19.94
19.64
125
-3.45
-0.25
-0.40
999.99
-1.80
-1.47
-9.74
-4.95
0.47
0.23
-1.85
-2.89
-2.50
-2.14
-2.75
-2.70
-1.42
-4.18
-2.70
-2.67
-2.34
-2.37
-1.69
-2.57
-2.86
5.00
-19.66
20.29
150
-4.04
-0.38
-0.70
999.99
-1.90
-1.91
-9.77
-5.10
0.34
0.08
-2.09
-3.18
-2.84
-2.36
-2.75
-3.07
-1.63
-4.72
-3.12
-2.84
-2.89
-2.96
-2.02
-3.21
-3.07
5.30
-19.54
20.94
129
139 Cu+-Cu2
140 Hg2-2Hg2
141 Mn2-Mn3
142 U4-U02+
143 U02+-++
144 V - VO
145 VO - V04
146 CaCl +
147 CaC12
148 UOH +3
149 U(OH)2++
150 U(OH)3 +
151 U(OH)4
152 U(OH)5 -
153 UF +3
154 UF2 ++
155 UF3 +
156 UF4
157 UF5 -
158 UF6 --
159 UC1 +3
160 UHP04 ++
161 U(HP04)2
162 U(HP04)3
163 U(HP04)4
164 US04 -H-
165 U(S04)2
166 U6(OH)15
0/200
3.776.41
20.9021.5634.0028.8010.62-4.35-3.76-5.01-6.72-1.7448.3736.21-0.12-1.880.30-1.8213.4113.4126.2924.785.54-0.7410.252.94
17.287.44-8.3510.5714.0817.8318.8623.0723.5628.2325.1930.0927.6432.34-2.58-5.2811.3916.6621.5327.44-8.8111.9910.56-9.76-5.56-8.00-9.6114.2231.5216.47
25/250
4.256.93
20.9521.9034.4828.608.74-8.07-3.77-5.66-5.71-1.12
-45.34-36.58-0.42-2.040.15-2.58
-13.27-13.69-25.65-25.235.00-1.608.572.27
15.096.57-8.66
-11.16-14.49-19.01-19.10-24.92-23.72-30.57-25.35-32.68-27.68-34.88-2.59-6.45
-12.06-17.86-21.99-29.18-9.06
-12.67-9.86
-10.05-5.54-9.21-9.84
-16.17-24.8027.80
50/300 75/350
4.657.52
21.0122.4734.9728.506.87
-11.79-3.83-6.42-4.87-0.61
5.008.49
21.0723.7835.4728.304.9915.51-3.94-7.27-4.15-0.19
-42.90 -40.92
100
5.32
21.15
36.49
3.12
-4.08
-3.53
-39.45
125
5.61
21.23
37.00
1.25
-4.26
-3.00
-38.12
150
5.89
21.32
38.06
-0.61
-4.48
-2.53
-37.19-39.28 -48.59-0.65-2.59-0.02-3.44
-13.21-14.10-25.24-25.99
3.69-2.017.131.17
13.306.14-9.24
-11.96-14.94
-0.87-2.91-0.25-4.8113.1914.6624.9627.072.64-0.936.054.0311.8610.06-9.5113.5515.40
-1.08
-0.51
-13.19
-24.78
1.77
5.18
10.65
-9.78
-15.86
-1.25
-0.83
-13.21
-24.67
1.01
4.47
9.63
-10.03
-16.33
-1.49
-1.15
-13.25
-24.64
0.37
3.88
8.77
-10.57
-16.81-20.62 -23.85-19.48-27.71
19.9433.83
-24.07 -24.54
-20.45
-25.11
-21.01
-25.72
-21.63
-26.48-34.17 -42.23-25.72 -26.21 -26.78 -27.45 -28.21-36.85 -46.59-27.99 -28.45 -29.02 -29.69 -30.46-38.84 -47.78-2.76-7.73
-12.73-19.00-22.59-30.90-9.43
-13.27-9.50
-3.03-9.1213.4120.0823.2932.57-9.7913.63-9.24
-3.38
-14.09
-24.06
-10.33
-9.33
-3.79
-14.75
-24.88
-10.74
-9.34
-4.25
-15.40
-25.72
-11.23
-9.52-10.55 -10.54-5.68
-10.65-5.9212.34
-10.25 -10.76-18.55-18.4238.00
£1.39i.2.0638.00
-6.23
-11.32
-5.90
-6.59
-11.95
-0.09
-7.01
-12.63
5.55
130
167 U020H +
168 U02(OH)2
169 U02)20H2
170 U02)30H5
171 U02)30H7
172 U02S04
173 U02S04)2
174 U02F +
175 U02F2
176 U02F3 -
177 U02F4 --
178 U02C1 +
179 UH3S106+
180 U02HP04
181 U02HP042
182 U02H2P04
183 UH4P2010
184 UH6P3014
185 U02C03
186 U02C03)2
187 U02C03)3
188 HV04 -3
189 H2V04 --
190 H3V04 -
191 H4V04
192 NaHV04 --
193 V02F
194 V02F2 -
0/200
-8.42-7.8616.7113.7623.4219.5617.3510.5133.9715.81-2.72-7.34-3.81-7.75-5.27-6.01-9.04-9.8611.5311.7212.7114.36-1.71-6.832.621.51-8.3710.1918.7321.6210.2211.7020.6820.1730.1828.4510.4113.114.312.369.427.54
13.6214.1421.9222.4726.5522.9329.7626.16-0.20-0.9027.1716.2522.7815.13
25/250
-8.23-7.98
-16.05-13.65-22.43-19.5515.6410.0930.8012.82-2.93-9.10-4.18-9.57-5.19-6.54-8.92
-10.58-11.43-12.29-12.54-15.73-2.10-8.452.401.37-8.41
-10.86-18.25-23.41-10.15-12.39-19.92-20.99-28.80-29.62-10.04-14.84
3.602.359.556.36
-13.27-15.53-21.33-24.58-25.16-25.94-28.38-27.54-0.30-1.10
-24.96-14.94-21.10-14.55
50/300
-8.10-8.24
-15.54-13.84-21.68-19.8914.1810.3327.8410.00-3.33
-11.09-4.57
-12.69-5.19-7.32-8.91
-11.80-11.39-13.57-12.55-18.07-2.62
-10.142.211.25-8.53
-11.55-18.16-25.30-10.20-13.10-19.48-21.92-27.94-30.99-10.00-16.87
3.112.109.514.62
-13.02-17.60-20.94-27.76-24.11-28.85-27.33-29.94-0.40-1.40
-23.10-13.99-19.73-14.48
75/350
-8.01-8.65
-15.11-14.37-21.08-20.5813.1412.9825.3612.22-3.84
-13.29-4.99
-20.01-5.24-8.94-8.96
-14.68-11.38-17.36-12.66-23.75-3.22
-11.912.061.15-8.73
-12.23-18.36-27.23-10.44-13.82-19.27-22.92-27.48-32.48-10.20-19.592.770.679.361.03
-12.98-20.48-20.73-32.22-23.25-32.85-26.57-33.48-0.40-1.70
-21.51-13.55-18.56-15.70
100
-7.94
-14.74
-20.60
12.35
23.14
-4.43
-5.43
-5.33
-9.06
-11.38
-12.85
-3.88
1.92
-8.97
-18.77
-10.54
-19.24
-27.32
-10.55
2.56
9.12
-12.95
-20.74
-22.83
-26.06
-0.50
-20.16
-17.63
125
-7.89
-14.41
-20.21
11.73
21.10
-5.08
-5.92
-5.46
-9.19
-11.40
-13.11
-4.57
1.80
-9.24
-19.34
-10.79
-19.34
-27.37
-11.04
2.43
8.81
-13.21
-20.86
-22.55
-25.77
-0.60
-18.98
-16.82
150
-7.85
-14.14
-19.91
11.20
19.24
-5.78
-6.46
-5.62
-9.37
-11.46
-13.45
-5.30
1.69
-9.54
-20.02
-11.07
-19.54
-27.61
-11.65
2.37
8.45
-13.32
-21.24
-22.47
-25.69
-0.70
-17.95
-16.15
131
0/200
195 V(OH) ++
196 V(OH)2 +
197 V(OH)3
198 VOOH +
199 VOS04
200 VOC1 +
201 VOF +
202 VOF2
203 U02 Ace+
204 U02(Ace2
205 U02 +
206 U +4
207 VO ++
208 V04 -3
209 AlAce +
210 BaAce +
211 CaAce +
212 CuAce +
213 FeAce +
214 FeAce)2
215 KAce
216 MgAce +
217 NaAce
218 PbAce +
219 PbAce)2
220 PbAce)3-
221 SrAce +
222 ZnAce +
-11.88-11.52-23.48-18.62-32.69-26.76-8.52-8.87 2.72 0.24 0.13-1.25-3.39-4.25-5.61-5.82-2.23-4.09-4.41-6.3310.668.335.19
12.68-7.11-9.00 34.98 22.51-2.86-2.86-1.08-1.80-1.18-1.90-1.84-2.74-0.60-2.40-1.70-4.00 0.31 0.13-1.35-0.86 0.33 0.11-2.28-2.71-3.67-4.36-3.82-4.02-1.12-1.70-5.40-5.10
10 50
11.7311.8322.1319.0030.9227.61-8.32-9.312.48-0.69-0.04-1.69-3.30-4.85-5.46-6.35-2.39-4.99-4.51-7.4710.248.106.62
13.86-7.44-9.4232.3321.43-2.86-2.86-1.13-2.20-1.23-2.30-1.89-3.25-0.87-3.00-1.89-5.270.390.13-1.25-0.820.230.11-2.26-3.10-3.64-4.98-3.72-4.48-1.16-2.10-4.91-5.53
/300 75>
-11.48-12.03-21.07-20.00-29.55-29.60-8.29-9.822.18-2.00-0.21-2.34-3.28-6.40-5.37-7.10-2.57-6.55-4.64-9.519.878.007.84
14.96-7.73-9.9130.1321.21-2.86-2.86-1.19-2.85-1.29-2.92-1.96-4.17-1.10-3.70-2.10-6.820.130.13-1.16-0.800.110.11-2.26-3.83-3.65-6.14-3.67-5.38-1.21-2.64-4.83-6.53
132
'350
-11.40-12.60-20.18-21.67-2:8.40-23.30-8.23
-10.571.88-3.10^0.36^3.74-3.43-6.95-5.30-8.10-2.76
-10.24-4.81
-14.448.538.048.89
16.04-7.94
-10.4628.2722.99-2.86-2.86-1.26-3.60-1.36-3.73-2.04-6.36-1.38-4.80-2.34-8.900.130.13-1.09-0.810.110.11-2.29-5.63-3.68-9.02-3.65-7.69-1.27-3.37-4.76-9.19
100
-11.32
-19.62
-27.73
-8.28
1.57
-0.54
-3.56
-5.34
-2.96
-5.03
9.22
9.81
-8.20
26.71
-2.86
-1.40
-1.44
-2.14
-1.60
-2.60
0.13
-1.03
0.11
-2.33
-3.75
-3.66
-1.34
-4.75
125
-11.32
-19.15
-27.18
-8.38
1.23
-0.70
-3.68
-5.40
-3.20
-5.28
8.95
10.62
-8.40
25.38
-2.86
-1.40
-1.54
-2.26
-1.79
-2.90
0.13
-0.97
0.11
-2.39
-3.85
-3.70
-1.42
-4.78
150
-11.38
-18.83
-26.85
-8.50
0.92
-0.87
-3.86
-5.50
-3.46
-5.57
8.71
11.37
-8.60
24.25
-2.86
-1.53
-1.64
-2.40
-2.00
-3.20
0.13
-0.93
0.11
-2.47
-3.98
-3.77
-1.51
-4.84
223 HC204 -
224 H2C204
225 AlOxy +
226 A10xy)2-
227 BaOxy
228 CaOxy
229 FeOxy
230 FeOxy +
231 KOxy -
232 MgOxy
233 MnOxy
234 MnOxy)2
235 MnOxy)3
236 MnOxy +
237 NaOxy -
238 PbOxy
239 SrOxy
240 ZnOxy
241 HC4H404-
242 H2C4H404
243 AlSuc +
244 AlSi^c)2-
245 BaSuc
246 CaSuc
247 FeSuc
248 FeSuc +
249 KSuc -
250 MgSuc
0/200
-1.32-1.13-4.23-5.90-6.00-6.0011.0011.00-1.57-1.57-3.00-3.00-4.30-5.80-7.74-7.74-0.70-0.70-3.47-3.47-3.93-5.4917.7018.7019.5020.5011.0012.10-0.90-0.90-4.90-4.90-2.54-2.54-4.78-5.90-4.27-4.80-5.67-6.89-5.30-5.3010.0010.00-2.02-2.02-2.00-2.00-2.00-3.90-7.00-7.00-0.30-0.30-2.05-2.05
25/250
-1.25-1.18-4.31-6.82-6.00-6.00
-11.00-11.00-1.57-1.57-3.00-3.00-4.40-6.70-7.74-7.74-0.70-0.70-3.47-3.47-4.00-6.45
-17.70-19.20-19.50-21.00-11.10-12.60-0.90-0.90-4.74-5.31-2.54-2.54-4.90-6.40-4.21-5.33-5.64-7.77-5.30-5.30
-10.00-10.00-2.02-2.02-2.00-2.00-2.20-4.70-7.00-7.00-0.30-0.30-2.05-2.05
50/300
-1.20-1.27-4.43-7.96-6.00-6.00
-11.00-11.00-1.57-1.57-3.00-3.00-4.50-7.70-7.74-7.74-0.70-0.70-3.47-3.47-4.10-8.18
-17.70-20.20-19.50-22.00-11.10-13.60-0.90-0.90-4.65-5.89-2.54-2.54-4.90-7.40-4.18-6.04-5.68-8.91-5.30-5.30
-10.00-10.00-2.02-2.02-2.00-2.00-2.40-5.70-7.00-7.00-0.30-0.30-2.05-2.05
75/350
-1.17-1.39-4.58-9.35-6.00-6.00
-11.00-11.00-1.57-1.57-3.00-3.00-4.60-9.00-7.74-7.74-0.70-0.70-3.47-3.47-4.29
-12.37-17.80-22.70-19.60-24.50-11.20-16.10-0.90-0.90-4.59-6.62-2.54-2.54-5.00-9.90-4.20-6.92-5.76
-10.31-5.30-5.30
-10.00-10.00-2.02-2.02-2.00-2.00-2.60-6.80-7.00-7.00-0.30-0.30-2.05-2.05
100
-1.14
-4.77
-6.00
-11.00
-1.57
-3.00
-4.90
-7.74
-0.70
-3.47
-4.41
-17.90
-19.70
-11.30
-0.90
-4.58
-2.54
-5.10
-4.25
-5.89
-5.30
-10.00
-2.02
-2.00
-2.80
-7.00
-0.30
-2.05
125
-1.13
-4.99
-6.00
-11.00
-1.57
-3.00
-5.00
-7.74
-0.70
-3.47
-4.61
-18.00
-19.80
-11.40
-0.90
-4.61
-2.54
-5.20
-4.34
-6.07
-5.30
-10.00
-2.02
-2.00
-3.00
-7.00
-0.30
-2.05
150
-1.12
-5.26
-6.00
-11.00
-1.57
-3.00
-5.20
-7.74
-0.70
-3.47
-4.86
-18.20
-20.00
-11.60
-0.90
-4.66
-2.54
-5.40
-4.44
-6.26
-5.30
-10.00
-2.02
-2.00
-3.30
-7.00
-0.30
-2.05
133
251 MnSuc
252 NaSuc +
253 PbSuc
254 SrSuc
255 ZnSuc
256 FeF ++
257 SiF6 --
258 Pb(HS)2
259 Pb(HS)3-
260 PbC03
261 PbOH +
262 Zn(HS)2
263 Zn(HS)3-
264 ZnHC03 +
265 ZnOH +
266 Zn(OH)2
267 ZnHSOH
0/200
-1.99-3.91-0.30-0.30-3.20-5.90-2.00-2,00-2.19-4.85-5.82-8.5028.3015.4116.8013.0018.5812.66-6.0011.70-8.00-7.5114.1412.9017.0114.60-1.35-2.71-5.14-5.9610.50-8.2519.2016.00
25/250
-2.17-4.71-0.30-0.30-3.50-6.90-2.00-2.00-2.46-5.92-6.00-9.6025.7212.92-15.90-13.40-16.66-13.11-7.00
-12.40-7.82-7.79
-13.78-13.80-15.95-15.30-1.42-3.41-5.04-6.45-9.58-8.71
-18.40-16.40
50/300
-2.36-5.69-0.30-0.30-3.70-8.20-2.00-2.00-2.73-7.20-6.20
-10.7023.6010.75-15.10-14.20-15.23-13.93-8.00
-13.00-7.68-8.33
-12.75-15.00-15.10-16.20-1.55-4.55-5.06-7.16-8.96-9.70
-17.80-17.00
Z5/
-2-6-0-0-4-9-2-2-3-8-6
-122110-14-15-14-15-8
-13-7-9
-12-16-14-17-1-6-5-8-8
-11-17-17
350
.57
.84
.30
.30
.00
.70
.00
.00r 02i72.48.00.90,33.50,30,19,03.80.51.57.49.20.30.50.10.68.03.12.46.54.91.30.80
100
-2.79
-0.30
-4.30
-2.00
-3.33
-6.81
20.42
-14.00
-13.46
-9.60
-7.48
-12.30
-14.20
-1.82
-5.27
-8.32
-16.80
125
-3.03
-0.30
-4.70
-2.00
-3.67
-7.18
19.06
-13.50
-12.98
-10.30
-7.44
-12.30
-14.20
-1.98
-5.41
-8.20
-16.30
150
-3.28
-0.30
-5.00
-2.00
-4.02
-7.60
17.92
-13.30
-12.71
-10.80
-7.42
-12.30
-14.20
-2.20
-5.58
-8.13
-16.00
134
Table 1C. Equilibrium Constants of Dissolution Reactions at 0° to 350°C
0/200 25/250 50/300 75/350 100 125 150
1 ADULARIA
2 AKERMANITE
3 ALBITE
4 ALBITE LOW
5 ALBITE HIGH
6 ALUNITE
7 AMESI14A
8 ANALCIME
9 ANDALUSITE
10 ANDESITE
11 ANHYDRITE
12 ANNITE
13 ANORTHITE
14 APATCHLR
15 APATFLUR
16 APATHYDX
17 ARAGONITE
18 AUGITE
19 AZURITE
20 BARITE
21 BOEHMITE
22 BRUCITE
23 BYTOWNITE
24 CALCITE
25 CELESTITE
26 CHALCEDONY
27 CHAM, 7A
IB^«____M«i
2.16-1.7650.1326.353.63
-1.163.93
-0.765.42
-0.150.11
-17.1144.8714.557.330.83
20.162.42
15.122.91
-4.14-7.2633.2212.1630.546.93
-64.90-74.90-68.56-76.13-59.89-71.03-8.22
-11.2337.9111.51
-39.86-40.68-10.50-10.31
8.700.23
-11.54-12.8922.184.20
-8.38-11.29-6.51-8.35-4.21-2.2634.607.23
^^ ^^ M««
1.26-2.1445.4623.282.50
-1.753.11
-1.394.43
-0.90-2.79
-20.9938.6310.466.05
-0.0316.57-0.0912.731.28
-4.33-8.4829.149.22
25.833.63
-66.15-77.40-68.34-79.82-60.39-75.13-8.34
-12.5932.567.88
-39.46-41.89-9.96
-10.806.95
-0.96-11.47-13.8318.602.96
-8.48-12.64-6.43-9.41-3.73-2.0529.033.43
HM*MB^^^^^
0.54-2.4341.4120.581.75
-3.452.30
-2.113.47
-1.72-5.53
-26.5433.506.004.91
-1.1513.53-2.8910.64-0.37-4.64-9.2625.485.88
21.810.02
-67.40-79.80-68.74-84.61-61.41-80.22-8.54
-14.1428.044.00
-39.36-44.14-9.69
-11.575.50
-2.33-11.53-15.1215.51-0.60-8.66
-14.18-6.53
-10.30-3.38-1.8824.50-0.80
^ ^ ^^ M
-0.35-2.6537.9319.031.02
-4.901.58
-2.582.62
-2.27-7.84
-40.0829.003.003.93
-3.6510.97-6.798.85
-1.61-5.00
-12.0622.39-0.6018.38-6.45
-68.65-82.40-69.50-93.10-62.70-88.93-8.81
-15.8424.22-2.66
-39.38-50.00-9.58
-13.004.27
-4.85-11.65-16.7912.89-2.44-8.93
-15.84-6.71
-12.15-3.10-1.8020.05-3.50
-0.51
34.94
0.46
0.96
1.89
-9.89
25.20
3.11
8.78
7.30
-5.40
19.74
15.44
-69.90
-70.50
-64.15
-9.17
20.96
-39.50
-9.59
3.24
-11.85
10.62
-9.27
-6.95
-2.88
17.00
-0.91
32.35
-0.05
0.43
1.27
-11.80
22.30
2.41
6.90
5.97
-5.82
17.47
12.91
-71.15
-71.70
-65.73
-9.59
18.14
-39.68
-9.69
2.35
-12.00
8.69
-9.68
-7.23
-2.69
14.00
-1.24
30.10
-0.48
-0.02
0.73
-13.59
19.24
1.81
5.23
4.82
-6.26
15.49
10.69
-72.40
-73.04
-67.41
-10.08
15.68
-39.94
-9.88
1.56
-12.24
6.97
-10.16
-7.56
-2.53
11.54
135
28 CHLOR, 7A
29 CHLOR, 14A
30 CRYSOTIL
31 C-ENSTATIT
32 C-PTIL.Na
33 C-PTIL,K
34 C-PTIL.Ca
35 C-PTIL.Mg
36 CORUNDUM
37 CRISTOBA
38 CRISTOBB
39 DICKITE
40 DIOPSIDE
41 DOLOMITE
42 DSORD
43 ENSTATITE
44 EPIDOTE
45 FAYALITE
46 FLUORITE
47 FORSTERITE
48 GIBBS AM
49 GIBBSITE
50 GREENALITE
51 GYPSUM
52 HALITE
53 HALLOYSITE
54 HEULANDITE
55 HUNTITE
0/200
81.8632.9678.3030.3935.6517.6812.635.67
-8.1010.2016.0013.80-9.2013.10-4.2011.5025.605.37
-3.80-2.13-3.13-2.098.34
-2.0721.6910.8817.7525.1916.0124.4412.825.77
38.047.74
21.919.28
11.3210.7132.4915.3034.2930.7034.9531.1125.2811.34-4.65-5.881.501.24
11.35-0.463.00
-6.2628.7939.91
25/250
71.9426.4368.5723.9732.0315.5311.294.75
-7.90-10.70-15.00-14.00-9.30
-14.40-5.00
-13.0021.402.58
-3.54-1.91-2.94-1.906.17
-3.3519.639.47
-18.06-28.36-16.52-27.7411.474.85
31.993.45
19.437.61
-10.96-10.9529.0713.08
-34.42-31.29-34.92-31.7522.589.42
-4.60-6.501.590.898.91
-1.931.41
-7.61-30.62-42.13
50/300
63.4719.4160.2817.0428.8913.7410.103.91
-8.10-11.90-14.55-15.00-9.60
-15.50-5.80
-15.3017.91-0.45-3.27-1.77-2.76-1.794.32
-4.6117.798.16
-18.68-32.77-17.30-32.2610.274.00
26.79-1.4717.276.10
-10.73-11.2426.1311.07
-32.41-32.60-32.70-33.2220.217.30
-4.70-7.671.62
-0.416.83
-3.33-0.20-9.57
-32.33-44.85
15/350
56.309.99
53.707.70
26.2314.509.083.32
-8.55-13.80-14.25-16.90-10.10-16.80-7.00
-18.0015.00-4.47-3.01-1.76-2.59-1.782.78
-3.9816.197.45
-19.50-39.61-18.26-39.18
9.233.40
22.37-10.9915.425.19
-10.59-11.5723.639.69
-31.80-36.22-32.09-37.0018.164.36
-4.85-8.481.62
-0.205.08
-2.84-1.63
-14.80-33.88-50.13
100
50.24
47.32
23.97
8.20
-9.00
-14.10
-10.60
-8.10
12.53
-2.80
-2.54
1.48
14.81
-20.42
-19.31
8.34
18.61
13.84
-10.53
21.48
-31.23
-31.64
16.41
-4.98
1.57
3.61
-2.86
-35.26
125
45.06
42.25
22.04
7.44
-9.35
-13.95
-11.10
-9.10
10.40
-2.61
-2.34
0.38
13.63
-21.45
-20.45
7.57
15.37
12.47
-10.52
19.62
-30.89
-31.31
14.89
-5.16
1.52
2.36
-3.91
-36.53
150
40.53
37.80
20.39
6.77
-9.70
-13.90
-11.70
-10.00
8.53
-2.43
-2.23
-0.54
12.59
-22.60
-21.69
6.90
12.54
11.27
-10.55
18.00
-30.60
-31.13
13.56
-5.37
1.44
1.29
-4.80
-37.08
136
56 HYDRMAGN
57 HYPHILIT
58 ILLITE
59 KAOLINITE
60 KENYAITE
61 K-SPAR
62 KYANITE
63 LABRADOR
64 LARNITE
65 LAUMONTITE
66 LEUCITE
67 LIME
68 MAGADITE
69 MgFe204
70 MAGNESITE
71 MgCl2
72 MARIALITE
73 MERWINITE
74-MICROCLN
75 MIEONITE
76 MIRABILT
77 MONTICEL
78 MORD, Na
79 MORD, K
80 MUSCOVITE
81 NACHOLIT
82 NATRTHRM
83 NATRON
0/200
36.7248.7913.034.9213.52-1.038.55-2.8225.0025.00-0.18-2.8217.851.36
19.293.92
42.5823.9417.052.667.751.31
35.7620.3414.34 14.3425.603.48-7.5810.4324.5710.704.05-8.0475.0540.31-0.18-2.8483.98-0.78-2.364.5233.2816.81-4.00-5.10-8.00-6.9016.51-1.34-0.711.230.08-2.39-1.933.70
25/250
-38.53-51.6511.803.09
10.34-2.596.23-4.44
-25.00-25.00-0.55-3.3114.48-0.8716.252.26
38.8821.5614.170.996.520.4432.6618.38-14.34-14.3421.100.46-8.05
-11.0022.158.441.71-9.5768.1735.86-0.55-3.3369.95-16.72-1.095.73
30.1514.51-3.90-5.50-7.60-7.0012.88-3.68-0.431.53-0.01-3.26-0.884.74
50/300
-40.34-55.6810.640.867.75-3.794.25-6.50
-25.00-25.00-0.99-4.1211.64-3.1314.28-0.1835.7119.5111.63-0.395.42-0.4630.0416.72-14.34-14.3417.31-2.51-8.50
-11.7120.006.44-0.45
-11.2862.2431.97-0.99-4.1357.12-34.00-0.027.33
27.4012.42-4.04-6.00-7.30-7.309.76-6.10-0.161.60-0.21-4.140.016.38
75/350
-41.99-64.64
9.56-3.185.61-4.742.58
-11.08-25.00-25.00-1.40-6.429.24-5.1211.31-1.8932.9918.389.46-2.204.46-0.9727.8115.65-14.34-14.3414.12-4.75-8.89
-13.0718.094.65-2.25
-13.8057.1729.75-1.41-6.4145.48-60.600.9215.9525.0211.07-4.22-6.60-7.13-7.807.12-7.070.100.87-0.48-5.020.7615.88
100
-43.49
8.55
3.82
1.17
-25.00
-1.76
7.21
9.43
30.66
7.63
3.64
25.89
-14.34
11.39
-9.25
16.34
-3.63
52.82
-1.77
34.86
1.76
22.96
-4.40
-7.10
4.89
0.35
-0.80
1.47
125
-44.89
7.60
2.31
-0.03
-25.00
-2.07
5.46
7.77
28.64
6.08
2.93
24.23
-14.34
9.04
-9.57
14.76
-5.15
49.05
-2.09
25.08
2.53
21.14
-4.60
-7.03
3.00
0.59
-1.17
2.10
150
-45.21
6.69
1.03
-1.07
-25.00
-2.34
3.93
6.32
26.87
4.76
2.32
22.78
-14.34
6.97
-9.87
13.30
-6.37
45.77
-2.36
15.99
3.24
19.54
-4.80
-7.00
1.37
0.82
-1.56
2.66
137
84 NEPHALINE
85 NESQUHON
86 NONT, Na
87 NONT, K
88 NONT, H
89 NONT, Ca
90 NONT, Mg
91 OLDHAMIT
92 OLIGOCLA
93 PARAGONI
94 PARAGASI
95 PERICLAS
96 PHILLIPS
97 PHLOGPITE
98 PHLOGPTF
99 PORTLAN
100 POTASSI
101 PREHNITE
102 PYROPHYL
103 QUARTZ
104 SANIDINE
105 SAPO, Na
106 SAPO, K
107 SAPO, H
108 SAPO, Ca
109 SAPO, Mg
110 SEPIOLITE
111 SILICAAM
0/200
15.635.28
-4.14-4.86
-10.88-14.59-11.30-14.66-11.94-15.95-10.84-15.13-10.81-15.3513.195.66
10.401.63
18.42-1.41
114.7144.8223.9212.003.303.30
42.1017.2520.52-0.91-5.25-7.9090.9656.6936.8712.411.42
-7.27-4.24-2.361.74
-1.8230.1912.8729.7812.8028.1611.8430.2312.3330.2612.1234.5620.10-2.88-1.81
25/250
13.523.89
-5.35-4.86
-11.48-15.35-11.81-15.40-12.50-16.90-11.54-16.00-11.56-16.2511.904.408.730.47
14.39-4.20
100.7935.3521.5110.483.303.30
37.2213.7516.73-4.59-5.42-8.9284.1252.3232.029.00
-0.10-8.65-3.93-2.111.18
-2.3626.8810.5026.5510.4525.859.43
26.829.85
26.809.61
31.5218.36-2.70-1.67
50/300 75/350
11.73 10.21
100
8.92
125
7.82
150
6.872.37 -0.47
-5.32 5.22 -5.04 -4.96 -4.90-5.07 -6.01
-11.90 -:L-16.83 -:.-12.17 -:.
3.179.903.38
-13.18
-13.35
-13.58
-13.72
-13.95
-14.06-16.85 -19.90-12.92 -14.21 -14.26 -14.73 -15.16-18.54 -21.76-12.05 -13.40 -13.48 -13.96 -14.38-17.58 -20.77-12.12 -13.49 -13.61 -14.11 -14.56-17.87 -21.1010.753.277.220.44
10.95
9.712.265.911.468.03
8.77
4.79
5.57
7.90
3.82
3.47
7.10
2.99
1.65-7.61 -14.8988.81 78.6125.38 8.3419.46 17.74'9.143.303.30
8.193.303.30
32.91 29.2110.11 3.2013.25 10.19
69.89
16.26
3.30
26.09
7.49
62.38
14.98
3.30
23.41
5.10
55.83
13.86
3.30
21.06
2.94-8.84 -14.53-5.71 6.04 -6.38 -6.73 -7.09
-10.51 -14.2578.33 73.39 69.13 65.41 62.1548.79 46.5827.82 24.24 21.19 18.56 16.275.16 -2.13
-1.61 2.90 -4.02 -4.98 -5.82-10.54 -15.09-3.63 3.35 -3.10 -2.88 -2.68-1.94 -1.900.58
-3.000.033.35
23.91 21.327.85 4.07
23.65 21.117.82 4.08
22.91 20.336.75 2.97
23.76 21.097.09 3.20
23.71 21.006.82 2.89
28.70 26.6017.10 1-2.52-1.59
6.402.37L.54
-0.45
19.14
18.97
18.15
18.84
18.72
25.00
-2.23
-0.86
17.26
17.12
16.26
16.89
16.74
23.60
-2.10
-1.22
15.61
15.50
14.61
15.18
15.01
22.20
-1.99
138
112 SILICGEL
113 SILLIMAN
114 SMEC Ca
115 SMEC K
116 SMEC Mg
117 SMEC Na
118 Na20
119 SPINEL
120 STILBITE
121 STRENGIT
122 SrC03
123 SYLVITE
124 TALC
125 THENARDI
126 TREMOLITE
127 TRONA
128 VIVIANIT
129 WAIRAKITE
130 WITHERITE
131 WOLLASTO
132 ZOISITE
133 SILVER
134 AgCl
135 Ag2S
136 COPPER
137 MALACHITE
138 CuO
139 Cu20
0/200
-2.94-1.7419.391.319.14-4.608.67-4.129.08-4.839.01-4.1373.0945.2742.4913.583.00-6.2627.3130.66-9.3411.640.601.29
23.5910.16-0.33-1.8467.5332.06-0.65-3.2936.0036.0021.051.80-8.9611.7014.828.34
49.2113.76-1.532.75
10.82-6.3339.9021.303.786.41
33.5532.718.703.66
-2.350.65
25/250
-2.71-1.5315.73-1.246.14-6.075.86-5.476.04-6.326.12-5.5167.4341.8636.469.881.41-7.61
-27.20-32.03-9.27
-12.650.911.02
21.138.27-0.29-2.7160.8927.15-0.63-2.92
-36.00-36.0017.33-0.92-8.63
-13.3112.607.79
42.108.83-0.504.58-9.73-6.10
-36.26-18.894.256.93
-33.58-34.16
7.672.98-1.901.25
50/300
-2.52-1.3012.63-4.093.70-7.203.57-6.513.57-7.473.77-6.5762.6939.1231.446.36-0.20-9.57
-27.41-33.43-9.37
-13.701.120.61
18.836.14-0.37-4.0954.8721.83-1.56-2.16
-36.00-36.0014.05-4.04-8.78
-15.2512.506.58
36.033.370.355.43-8.86-6.43
-33.18-16.994.657.52
-32.03-36.776.802.23-1.501.72
75/350
-2.36-0.9510.02-9.281.68-8.101.69-7.321.51-8.361.83-7.3958.6537.4727.243.56-1.63
-14.80-27.76-34.84-9.59
-14.721.260.0416.841.98-0.52-7.2549.6212.15-2.21-1.32
-36.00-36.0011.22-10.17-9.05
-17.5511.555.21
30.89-6.691.096.69-8.15-6.97
-30.52-15.535.008.49
-31.76-43.08
6.070.90-1.111.86
100
-2.20
7.79
-0.01
0.12
-0.02
0.22
55.20
23.68
-2.86
-28.22
-9.90
1.35
15.11
-0.71
45.10
-2.70
-36.00
8.79
-9.42
10.73
26.46
1.73
-7.65
-28.20
5.31
-31.65
5.44
-0.73
125
-2.06
5.86
-1.44
-1.21
-1.64
-1.14
52.25
20.63
-3.91
-28.69
-10.28
1.39
13.62
-0.94
41.19
-3.04
-36.00
6.70
-9.88
10.01
22.66
2.31
-7.19
-26.16
5.61
-31.70
4.91
-0.36
150
-1.93
4.18
-2.65
-2.33
-2.87
-2.29
49.59
17.99
-4.80
-29.36
-10.70
1.40
12.32
-1.19
37.78
-3.23
-36.00
4.87
-10.41
9.39
19.39
2.83
-6.81
-24.35
5.89
-31.90
4.44
-0.01
139
140 CuS
141 Cu2S
142 CuFeS2
143 BORNITE
144 FeC12
145 FeC13
146 FeC03
147 FeO
148 Fe203HEM
149 Fe203MGH
150 Fe304
151 Fe(OH)3
152 GOETHITE
153 FeSPYRHO
154 FeSTROLT
155 FeS2PYR
156 GREIGITE
157 Hg(L)
158 HgC12(C)
159 Hg2C12(C
160 HgO
161 CINNABAR
162 CINABMET
163 MnC12
164 MnC03
165 MnO
166 Mn02
167 MnS
0/200
-24.48-17.16-38.29-21.82-36.32-27.09111.09-70.88
9.121.24
14.650.42
-10.34-13.2715.196.792.14-7.856.406.40
14.28-2.64
-38.67-33.92
1.49-3.20-3.69-5.19-3.78-5.33
-26.54-19.88-45.00-45.00-4.252.98
-15.11-10.88-19.49-11.08
2.831.31
-43.32-27.14-41.84-26.60
9.892.54
-10.52-12.8119.6210.28-7.79
-10.23-0.13-2.87
25/250
-22.83-16.64-34.95-19.86-34.07-26.77
-102.51-67.017.90-0.2412.34-2.13
-10.54-14.2813.505.660.04-9.366.406.40
10.75-4.92
-37.20-34.040.48-3.83-3.76-5.86-3.87-5.99
-24.71-20.00-45.00-45.00-2.844.16
-14.11-10.79-17.84-9.952.441.25
-39.86-25.53-38.58-25.11
8.790.84
-10.54-13.9117.709.13-8.33
-10.36-0.47-3.70
50/300
-21.50-16.70-32.17-18.40-32.32-27.45-95.49-65.436.76-1.6010.23-4.45
-10.84-15.4812.074.55-1.69
-11.306.406.407.82-7.26
-36.10-34.35-0.33-4.47-3.90-6.89-4.02-7.01
-23.34-21.05-45.00-45.00-1.695.38
-13.30-11.25-16.43-8.972.111.19
-37.02-24.94-35.89-25.26
7.75-1.30
-10.70-15.4316.088.13-8.75
-10.06-0.82-4.67
75/350
-20.41-18.15-29.79-17.38-30.90-30.99-89.60-69.175.70-2.558.30-6.57
-11.21-1>.3210.15£.93-3.13
-15.556.406.405.36-8.92
-35.30-34.79-1.00-4.50-4.06-9.24-4.20-9.36
-22.28-25.35-45.00-45.00-0.707.11
-12.64-12.99-15.23-8.041.861.53
-34.64-23.94-33.64-23.25
6.77-5.35
-10.94-18.2614.727.56-9.11-7.29-1.16-5.82
100
-19.50
-27.74
-29.76
-84.60
4.70
6.51
-11.57
9.81
-4.34
6.40
3.28
-34.73
-1.60
-4.24
-4.38
-21.46
-45.00
0.18
-12.10
-14.19
1.67
-32.62
-31.74
5.85
-11.21
13.56
-9.42
-1.50
125
-18.75
-25.96
-28.83
-80.33
3.76
4.84
-11.96
8.91
-5.37
6.40
1.51
-34.34
-2.08
-4.44
-4.59
-20.82
-45.00
0.96
-11.66
-14.27
1.53
-30.90
-30.12
4.99
-11.54
12.56
-9.68
-1.82
150
-18.10
-24.39
-28.08
-76.67
2.88
3.28
-12.38
8.91
-6.28
6.40
-0.04
-34.10
-2.50
-4.66
-4.81
-20.36
-45.00
1.68
-11.32
-12.46
1.43
-29.44
-28.75
4.16
-11.92
11.70
-9.90
-2.16
140
168 PbC12
169 PbC03
170 PbOLITHR
171 PbOMASIC
172 PbS GALN
173 PbS04
174 ZnC03
175 ZnO
176 ZnS
177 ZnS04
178 RUTHERFO
179 URAMPHIT
180 PRZHEVAL
181 TOBERNIT
182 SALEEITE
183 SR AUTUN
184 URANOCIR
185 BASSEXIT
186 U03 (C)
187 U03 (AM)
188 U02(OH)2
189 UF4*2.5W
190 UHP)2*4W
191 NINGYOIT
192 U308
193 U02(AM)
194 U02(C)
195 U409
0/200
-5.31-4.3513.3712.8813.608.62
13.768.98
16.3010.93-8.07-8.43-9.2013.3412.904.4212.4210.604.71-3.3617.1118.3327.4430.2618.4927.4219.0231.0416.9226.3618.3128.0618.7729.2917.9431.309.052.41
10.994.0923.0620.3827.6629.9626.6931.4028.7335.390.30-5.932.81-6.66-3.40-9.6413.6125.79
25/250
-4.82-4.86
-12.89-13.5212.558.33
12.698.53
-14.78-10.72-7.80-9.15-9.87
-13.8311.204.02
-11.79-10.833.54-5.23
-16.88-19.31-27 .07-31.89-19.52-29.65-20.37-34.09-18.73-27.81-19.52-30.38-19.70-32.27-19.55-34.53
7.761.50
10.453.02
-22.12-20.78-27.61-31.41-26.74-33.09-29.19-37.49-1.00-6.670.92-7.87-4.66
-10.42-16.33-26.95
50/300
-4.51-5.94
-12.62-14.5811.677.64
11.808.19
-13.59-10.82-7.70
-10.45-10.50-14.229.704.02
-11.32-11.052.38-7.57
-16.81-20.54-27.04-33.62-20.62-31.86-21.82-37.11-20.28-29.16-20.77-32.69-20.84-35.27-21.23-37.72
6.660.759.142.13
-21.47-21.54-27.70-33.29-27.06-34.41-29.85-39.66-2.08-7.26-0.68-8.85-5.72
-11.07-18.54-27.78
75/350
-4.31-8.92
-12.48-16.8510.908.97
11.078.34
-12.90-11.10-7.69
-13.74-10.15-14.638.304.23
-11.00-10.951.30
-11.95-16.89-22.47-27.25-35.39-21.75-34.06-23.33-40.13-21.62-30.47-22.02-34.99-22.12-38.28-22.94-40.87
5.710.118.011.38
21.00-22.64-27.89-35.61-27.56-32.18-30.63-41.89-2.99-7.73-2.05-9.68-6.61
-11.60-20.36-28.37
100
-4.19
-12.40
10.25
10.48
-12.34
-7.74
-11.72
7.17
-10.82
0.30
-17.03
-27.64
-22.89
-24.87
-22.80
-23.26
-23.49
-24.64
4.88
7.02
-20.68
-28.15
-28.19
-31.50
-3.76
-3.22
-7.39
-21.86
125
-4.14
-12.42
9.66
9.99
-11.83
-7.84
-12.22
6.10
-10.65
-0.66
-17.26
-28.17
-24.03
-26.41
-23.83
-24.48
-24.90
-26.33
4.16
6.16
-20.47
-28.48
-28.92
-32.42
-4.42
-4.25
-8.06
-23.11
150
-4.15
-12.51
9.18
9.59
-11.42
-7.98
-12.66
5.38
-10.54
-1.58
-17.57
-28.80
-25.17
-27.96
-24.76
-25.69
-26.34
-28.00
3.51
5.39
-20.36
-28.89
-29.71
-33.38
-5.00
-5.15
-8.65
-24.16
141
196 USI04
197 H AUTUNI
198 NA AUTUN
199 K AUTUNI
200 AUTUNITE
201 K2U2V20x
202 CAU2V20X
203 URANOPHA
204 SCHOEPIT
205 MGU04
206 CAU04
207 BAU04
208 U02F2
209 US3
210 V203
211 V204
212 V205
213 VOS04*6W
214 PB3V04)2
0/200
-7.4411.9622.7827.5222.0425.5123.2724.9418.3026.6957.9851.8753.2854.0317.3817.3824.4620.9126.4210.5117.016.9419.759.71-6.7910.7819.3318.3212.50-0.3010.472.19
33.2625.98-5.10-8.1452.4944.41
25/250
-8.30-12.51-23.40-28.58-22.49-26.29-23.28-25.58-19.62-28.31-56.45-51.51-53.02-54.7217.3817.38-23.38-21.0723.228.49
14.895.8217.648.60-7.30
-12.05-18.41-19.51
9.83-1.808.531.51
-31.82-25.03-4.68
-10.13-50.84-43.47
50/300
-9.06-12.95-24.01-29.57-22.95-27.06-23.40-26.25-20.85-29.86-55.26-51.39-52.94-55.6217.3817.38-22.60-21.7220.516.85
13.125.00
15.887.83-7.82
-13.66-17.83-21.59
7.61-2.996.981.06
-30.60-24.24-4.64
-12.14-49.52-43.11
75/350
-9.72-13.33-24.64-30.51-23.41-27.83-23.58-26.95-22.00-31.40-54.32-51.58-52.97-b7.1117.3817.38-22.02-23.1718.216.56
11.635.58
14.418.56-8.33
-16.88-17.53-27.485.74-3.945.730.78
-29.55-23.58*4.85
-15.01-48.39-44.37
100
-10.31
-25.24
-23.85
-23.81
-23.05
-53.58
-53.08
17.38
-21.59
16.23
10.38
13.16
-8.83
-17.41
4.16
4.71
-28.64
-5.26
-47.39
122
-10.81
-25.83
-24.29
-24.07
-24.03
-52.99
-53.25
17.38
-21.28
14.51
9.32
12.09
-9.33
-17.45
2.80
3.88
-27.85
-5.81
-46.51
J^o-11.05
-26.41
-24.71
-24.35
-24.96
-52.51
-53.47
17.38
-21.07
13.01
8.41
11.18
-10.87
-17.63
1.62
3.20
-27.15
-6.49
-45.72
Table ID. Parameters for Calculating Activity Coefficients
by the B* Method (Helgeson, 1969).
Temperature
0.025.050.0
100.0150.0
B
0.0380.0410.0430.0460.047
Temperature
200.0250.0270.0300.0350.0
B
0.0470.0340.0150.0000.000
142
Table IE. Fit Parameters for Calculating the Equilibrium Constants of Dissolution Reactions at Higher Pressures.
500 bars
BxlO CxlO16
1000 bars
BxlO CxlO16
123456789
1011121314151617181920212223242526272829303132333435363738394041424344454647484950
0.6230.0380.5840.7050.7091.8471.6030.4910.5370.7690.4230.8710.8651.3801.3801.3800.4730.0001.7010.3940.1930.4840.8330.5140.4170.1110.9130.0000.0000.4320.1880.0000.0000.0000.0000.4130.1350.1500.1620.4220.9820.9210.1881.2210.3490.3990.3020.7730.7730.645
-5.38017.930-4.260
-10.557-10.69632.520
-20.100-2.578-0.576-7.714-1.000-3.512-3.4490.0000.0000.000
-1.5750.000
-28.676-1.119-0.145-1.633-4.871-1.970-1.015-0.963
-13.2660.0000.0001.1860.0840.0000.0000.0000.0000.634
-1.345-1.60028.640-0.558-3.101
-15.6530.084
-12.484-1.967-0.0470.224
-2.712-2.712-7.980
12.26010.05011.17015.70215.14475.36059.01612.68321.45020.01016.17628.66826.4800.0000.000ci.ooo
17.1900.000
27.07615.30510.25018.29724.32017.09615.8190.435
29.1510.0000.000
17.6136.0010.0000.0000.0000.000
20.9400.5840.480
16,79021.13035.3609.4256.001
36.87611.19017.58011.63029.53029.53014.829
2.2750.0591.0571.3881.3903.7172.8100.8690.9301.4410.7291.5061.5202.7502.7502.7500.8460.0003.2060.6740.2880.8401.4940.9280.7200.2101.6460.0000.0000.6610.3130.0000.0000.0000.0000.6900.2680.2880.9000.6381.7491.7470.3132.1800.6100.6820.4761.3731.3731.156
-22.60028.706-1.960
-24.487-24.37142.296
-14.920-1.7193.320
-14.9381.5760.512
-0.6140.0000.0000.0000.1080.000
-44.7371.2293.7320.681
-5.389-0.7901.324
-1.617-14.039
0.0000.0007.2871.5200.0000.0000.0000.0005.624
-2.402-2.9405.8261.8320.756
-26.1931.520
-8.362-0.9433.6023.6870.4530.453
-7.986
16.49012.71014.98624.04324.00596.76380.25315.85526.92927.29020.30235.88732.1600.0000.0000.000
21.6500.000
38.13819.20213.10823.00430.54021.48519.8760.575
39.7870.0000.000
21.9547.5300.0000.0000.0000.000
26.2900.5830.621
27.26013.70044.43013.4807.530
50.10814.06022.02014.51037.14037.14020.008
143
500 bars 1000 bars
BxlO CxlO16 BxlO CxlO16
51525354555657585960616263646566676869707172737475767778798081flOozQQ 0 J
840 coD
86fl7 0 /ftfl ooflo07909192939495Q£7O
97QQ7O
99100
0.3280.1200.5401.2821.9422.2180.3011.1950.5400.0000.5720.4940.8010.3130.8480.5060.1220.0001.1750.4640.2430.0000.6650.6003.2980.0100.3400.0000.0000.8970.2701.7901.7900.3810.6900.0000.0000.0000.0000.0000.2560.7370.9941.9630.2320.9330.8461.5700.5281.659
0.589-2.3330.126
-10.518-5.41410.0180.321-3.1200.1390.000-3.745-0.082-6.292-0.730-2.231-2.701-0.3480.000
-10.520-0.6841.7830.000-1.940-3.402
-40.5704.441-0.9100.0000.000-0.8530.000-6.960-6.960-1.777-4.5490.0000.0000.0000.0000.000-3.080-9.135
-10.189-17.122-1.814-7.970-6.644
-10.500-2.789
-86.100
16.1206.703
21.85023.93571.81073.15015.16827.43021.8400.000
10.64021.50022.1709.450
27.36012.1354.5190.000
25.75018.16016.1820.000
20.07112.61075.13113.90010.5830.0000.00033.4900.000
15.30015.31012.25118.3300.0000.0000.0000.0000.0009.658
17.86030.42959.2405.702
13.70025.84042.43017.22411.590
0.5530.1920.8972.3433.4473.9600.5142.1670.9020.0001.0370.8391.4670.5211.5450.9070.1960.0002.165-0.1980.4050.0002.0131.0806.054-0.1180.5590.0000.0001.5320.5403.4703.4700.6600.4760.0000.0000.0000.0000.0000.4191.4141.7863.4160.4042.0971.4493.9030.935-0.030
4.785-2.3725.936-7.2833.294-5.1143.7450.4925.8340.000-1.2364.588
-10.163-0.9852.523-2.3960.5480.000
-15.47079.6006.1000.000
-42.620-3.414
-46.60012.7401.3290.0000.000-0.8530.000-9.280-9.280-0.20354.3300.0000.0000.0000.0000.0001.628
-19.712-6.568-5.334-1.879
-23.500-10.942-25.200-1.8211.101
20.18010.02027.29031.72990.21092.04019.00733.51027.2900.000
14.24627.00028.91011.84334.23012.2305.6950.000
32.59010.34520.3500.000
29.84015.770
102.88817.31013.2100.0000.000
33.4900.000
22.52022 520fc- A. -J &-\j
15.32712.4900.0000.0000.0000.0000.000
12.01025.67041.28980.0877.131
20.25034.78354.21021.7101.788
144
500 bars 1000 bars
BxlO CxlO16 BxlO CxlO16
101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
1.4350.7830.1110.6320.0000.0000.0000.0000.0000.1640.1180.0000.5371.6871.4301.4201.4200.1110.5402.5910.5600.5280.9190.6820.3131.6440.7700.0001.5220.5230.2371.0900.0000.0550.075-0.0560.8660.4130.4810.2130.1830.4220.8100.2470.4290.4950.1230.4720.4270.610
-32.900-1.869-0.936-5.3820.0000.0000.0000.0000.000-1.848-0.9360.000-0.576-2.84011.45011.69010.620-5.3300.599
-24.6620.000-2.590
-42.710-1.479-0.813-4.3700.0000.000
32.050-3.039-1.350-1.0000.0000.658-0.017-1.2202.034-6.360
-23.710-0.334-1.730-0.588-3.6890.1300.547-2.141-0.665-0.912-0.912-1.692
38.06022.7500.45312.2650.0000.0000.0000.0000.0000.4950.4530.00021.45026.97025.79025.69025.5002.757
26.58058.5760.00016.82011.12018.61014 . 14040.5300.0000.000
33.18016.3104.990
41.8500.0006.1246.804-3.22435.4205.4238.307
10.5907.770
21.13036.97116.07025.87018.0005.394
19.79019.79025.150
1.9321.3740.2082.2750.0000.0000.0000.0000.0000.3130.2160.0000.9263.1601.7001.6001.600-0.0660.8844.6971.1300.9510.1441.1250.5242.7901.5500.0000.7930.9360.3171.8150.0000.0810.108-0.0951.8870.7540.6000.3310.3160.7371.4230.3400.7340.8970.2020.8130.8131.054
-7.1501.858-1.530
-22.6300.0000.0000.0000.0000.0003.366-1.5300.0003.4470.9158.2301.216-5.920-7.9407.127
-18.0250.000-1.6712.1493.3501.9882.6280.0000.000
82.000-2.3434.9208.8500.0002.6131.843-2.810-4.074-9.060
-25.9203.695-1.1133.2130.869-2.8406.011-7.3800.3302.4302.4302.029
39.75028.4200.55916.4900.0000.0000.0000.0000.0000.6340.5590.00026.88033.39034.04034.26034.2106.72833.33078.1890.00021.1407.550
23.11017.69050.6800.0000.000
19.15020.5007.330
52.3000.0007.6898.524-4.00045.7007.200-9.94213.0609.756
26.53046.52519.79032.39022.6406.734
24.84024.84031.620
145
500 bars 1000 bars
BxlO CxlO16 BxlO CxlO16
151152153154155156157158159160161162163164165166167168169170171172173174175176177
0.0000.2660.2000.2000.2570.000-0.1740.0000.0000.1340.2100.2180.2170.4820.0820.0000.1500.2260.5070.1370.1230.2020.3980.4680.3390.1980.409
0.000-0.456-0.500-0.5000.3760.0004.5800.0000.000-1.463-0.849-1.1141.652-2.9910.1530.0000.9540.812-2.940-1.400-0.828-0.663-1.417-1.760-2.9300.094-1.110
0.0009.895
10.44010.44016.9200.000-7.0100.0000.0004.3179.4329.478
15.73018.3505.1480.000
10.25514.58016.6604.0394.0909.142
15.66018.0104.95010.49017.050
0.0000.4680.5700.5700.3900.000-0.2630.0000.0000.2820.3720.3820.3540.8530.1220.0000.2240.4170.9240.0340.0150.3590.6990.8330.6630.3400.699
0.0001.215
-13.900-13.9006.8900.0004.2950.0000.000-4.1430.1730.0266.450-1.3911.8050.0004.0542.367-2.37014.20014.8700.5480.4964.472-4.2402.3502.090
0.00012.42016.15016.15021.5800.000-8.8000.0000.0005.732
11.89711.92019.66023.1006.4070.00012.83017.99020.9702 259<t» t~ J *
2.08311.49719.70022.6205.850
13.17021.330
146
Table IF. Data for Calculating the Effect of Pressureon Aqueous Dissociation Reactions.
AV 025°C # Water lonization Reactions
1.01.01.01.02.03.01.02.01.01.02.02.01.01.02.01.02.01.02.02.01.01.02.03.04.00.01.01.01.01.01.02.01.01.02.01.02.01.01.01.02.01.01.01.02.01.02.02.0
13
101516172526272829303132364445505153546061626364727374768793949697
105106110111112114115118127128129130135
-28.7-37.9-13.0-22.4-43.2-64.3-11.2-7.5
-34.3-19.74-7.1
-10.6-31.6-19.74-25.0-19.74-7.1
-19.74-5.7-7.1-4.6
-22.4-43.5-64.6-85.7-35.5-27.2-35.96-25.85-14.81-19.8-9.8
-31.5-19.74-7.4
-34.0-7.1
-13.7-23.1-13.8-7.1
-15.8-28.8-19.74-9.12
-31.5-7.1-7.6
147
Table IG. Pitzer Coefficients
MX ft(0) MX ft
(0)ft(1)
Na Cl 0
25
50
75
100
125
150
200
250
300
350
Na S04 0
25
50
75
100
125
150
200
250
300
350
0
0
0
0
0
0
0
0
0
0
0
-0
0
0
0
0
0
0
0
0
0
0
.0532
.0765
.0903
.0978
.1012
.1017
.1003
.0938
.0838
.0708
.0546
.08601
.01864
.06264
.0888
.1057
.1175
.1266
.1415
.1546
.1656
.1723
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
3
12
.2496
.2664
.2846
.3041
.3250
.3472
.3707
.4218
.4738
.5401
.6073
.892
.096
.213
.285
.330
.357
.374
.444
.856
.730
.550
0
0-0
-0
-0
-0
-0
-0
-0
-0
-0
0
0-0
-0
-0
-0
-0
-0
-0
-0
-0
. 00441
.00127
.00095
.00250
.00354
.00420
.00457
.00469
.00429
.00357
.00268
.0353
.00555
.00303
.00839
.0123
.0153
.0178
.0213
.0235
.0249
.0256
K Cl 0
25
50
75
100
125
150
200
250
300
350
K S04 0
25
50
75
100
125
150
200
250
300
350
0
0
0
0
0
0
0
0
0
0
0
-0
0
0
0
0
0
0
0
0
0
0
.0296
.0485
.0596
.0662
.0698
.0715
.0721
.0710
.0677
.0621
.0534
.04138
.00000
.02771
.04888
.06819
.0887
.1124
.1743
.2596
.3701
.5058
0.1621
0.2122
0.2429
0.2705
0.2977
0.3250
0.3527
0.4084
0.4640
0.5188
0.5724
0.7830
1.1023
1.2578
0.3704
0.4637
1.5510
1.6415
1.8578
2.1511
2.5460
3.0590
0.00119
-0.00084
-0.00205
-0.00277
-0.00318
-0.00340
-0.00350
-0.00349
-0.00322
-0.00264
-0.00162
0.0172
0.0188
0.0174
0.0137
0.00811
0.00098
-0.00741
-0.0271
-0.0499
-0.0749
-0.1015
Na HC03 25 0.0277 0.0411 0.0000 K HC03 25 0.0296 -0.013 -0.0080
Na C03 25 0.0399 1.389 0.0044 K C03 25 0.1488 1.430 -0.0015
Ca S04 25 0.200 3.1973 0.0000 H Cl 25 0.1775 0.2945 0.0008
Ca HC03 25 0.400 2.977 0.0000 H S04 25 0.0298 0.000 0.0438
Zn Cl 25 0.2602 1.6425 -0.08798 Al Cl 25 0.6993 5.845 0.00273
148
M X,(0) ,(1) M X ,(0)
ft(1)
Ca Cl 0
25
50
75
100
125
150
200
250
300
350
Ba Cl 0
25
50
75
100
125
150
200
250
300
350
Sr Cl 0
25
50
75
100
125
150
200
250
300
350
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
.318
.3159
.313
.310
.305
.299
.291
.272
.230
.244
.369
.385
.350
.314
.292
.276
.263
.252
.235
.219
.210
.206
.460
.381
.344
.320
.302
.290
.278
.264
.258
.256
.2555
1
1
1
1
2
2
2
3
3
5
8
2
2
1
1
1
2
2
2
3
5
8
2
2
2
2
2
2
2
2
3
5
8
.500
.6140
.800
.980
.170
.400
.600
.100
.830
.250
.300
.10
.00
.92
.90
.92
.00
.22
.87
.83
.25
.30
.35
.22
.20
.13
.10
.16
.30
.90
.83
.25
.30
0-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
0-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
.00155
.00034
.0033
.0058
.0080
.0098
.0113
.0138
.0133
.0143
.0232
.0154
.0193
.0222
.247
.261
.263
.258
.229
.0168
.0122
.0067
.0100
.0013
.0080
.0115
.0139
.0156
.0167
.0180
.0191
.0198
.0203
Mg Cl 0
25
50
75
100
125
150
200
250
300
350
Mg S04 0
25
50
75
100
125
150
200
250
300
350
Mg HC03 25
Mn S04 25
0.368
0.3524
0.338
0.324
0.311
0.300
0.289
0.269
0.230
0.244
0.369
0.1866
0.2150
0.2275
0.2372
0.2489
0.2640
0.2856
0.3785
0.6489
1.334
2.806
0.329
0.201
1
1
1
2
2
2
2
3
3
5
8
3
3
3
3
4
4
5
9
7
9
12
0
2
.55
.682
.85
.03
.23
.45
.65
.15
.88
.30
.35
.039
.365
.163
.843
.410
.805
.912
.736
.532
.736
.57
.6072
.98
0.00700
0.00519
0.00325
0.00125
-0.00025
-0.00138
-0.00238
-0.00388
-0.00513
-0.00613
-0.00700
0.00979
0.00699
0.00494
0.00290
0.00079
-0.00130
-0.00353
-0.0115
-0.0364
-0.1046
-0.2575
0.0000
0.0182
149
k 1
Na Ca
Na K
Na Mg
Na H
K Ca
K H
Ca Mg
Ca H
Mg H
0
25
50
75
100
125
150
200
250
300
350
25
25
25
25
25
25
25
25
-0.0085 Cl S04 25 0.02
-0.0078
-0.00726 Cl HC03 25 0.03
-0.00696
-0.0068 Cl C03 25 -0.02
-0.0069
-0.0074 Cl C
-0.0099
>H 25 -0.05
-0.0128 SO. HCCL 25 0.014-0.0155
J
-0.0180 S04 C03 25 0.02
-0.012 S04 OH 25 -0.01
0.070 HC03 C03 25 -0.04
0.036 C03 OH 25 0.01
0.032
0.005
0.007
0.092
0.100
150
i j k k 1 i t
Na Ca Cl
Na K Cl
Na K S04
Na K HC03
Na K C03
Na Ca SO. 4
Na Mg Cl
Na Mg S04
Na H Cl
Na H S04
K Ca Cl
K Mg Cl
K Mg S04
0 0.0044
25 0.0029
50 0.0015
75 0.00066
100 0.00042
125 0.00035
150 0.00035
200 0.00035
250 0.00035
300 0.00035
350 0.00035
25 -0.0018
25 -0.01
25 -0.003
25 0.003
25 -0.055
25 -0.012
25 -0.015
25 -0.004
25 -0.012
25 -0.025
25 -0.022
25 -0.048
Cl S04 Na 25 0.0014
Cl S04 Ca 25 -0.018
Cl S04 Mg 25 -0.004
Cl HC03 Na 25 -0.015
Cl HC03 Mg 25 -0.096
Cl C03 Na 25 0.0085
Cl C03 K 25 0.004
Cl OH Na 25 -0.006
Cl OH K 25 -0.006
Cl OH Ca 25 -0.025
SO, HC00 Na 25 -0.005 4 3
SO, HCO« Mg 25 -0.161
S04 C03 Na 25 -0.005
S04 C03 K 25 -0.009
S04 OH Na 25 -0.009
S04 OH K 25 -0.05
HC03 C03 Na 25 0.002
HC03 C03 K 25 0.0129
151
i j fc
K H Cl
K H S04
Ca Mg Cl
Ca Mg S04
Ca H Cl
25 -0.011
25
25
25
25
0.197
-0.012
0.024
-0.015
k 1 i t
C03 OH Na 25 -0.017
C03 OH K 25 -0.01
Mg H Cl 25 -0.011
152
Table IH. Table of congruent dissolution of minerals listing the aqueous species number and stoichiometry.
1. 1.0,4,1.0,14,3.0,11,-4.0,8,-4.0,10,2. 2.0,1,1.0,2,2.0,11,-6.0,8,-1.0,10,3. 1.0,3,1.0,14,3.0,11,-4.0,8,-4.0,10,4. 1.0,3,1.0,14,3.0,11,-4.0,8,-4.0,10,5. 1.0,3,1.0,14,3.0,11,-4.0,8,-4.0,10,6. 1.0,4,3.0,14,2.0,6,-6.0,8,6.0,10,7. 2.0,2,2.0,14,1.0,11,-10.0,8,5.0,10,8. 1.0,3,1.0,14,2.0,11,-4.0,8,-1.0,10,9. 2.0,14,1.0,11,-6.0,8,1.0,10,10. 0.4,1,0.6,3,1.4,14,2.6,11,-5.6,8,-2.4,10,11. 1.0,1,1.0,6,12. 1.0,4,3.0,18,1.0,14,3.0,11,-10.0,8,13. 1.0,1,2.0,14,2.0,11,-8.0,8,14. 5.0,1,3.0,29,1.0,5,15. 5.0,1,3.0,29,1.0,30,16. 5.0,1,3.0,29,1.0,9,17. 1.0,1,1.0,98,18. 1.0,1,2.0,14,1.0,11,-8.0,8,2.0,10,19. 3.0,17,2.0,98,2.0,9,20. 1.0,15,1.0,6,21. 1.0,14,2.0,10,-3.0,8,22. 1.0,2,2.0,9,23. 0.8,1,0.2,3,1.8,14,2.2,11,-7.2,8,-0.8,10,24. 1.0,1,1.0,98,25. 1.0,26,1.0,6,26. 1.0,11,-2.0,10,27. 2.0,18,2.0,14,1.0,11,-10.0,8,5.0,10,28. 5.0,2,2.0,14,3.0,11,6.0,10,-16.0,8,29. 5.0,2,2.0,14,3.0,11,6.0,10,-16.0,8,30. 3.0,2,2.0,11,-6.0,8,1.0,10,31. 1.0,2,1.0,11,-2.0,8,-1.0,10,32. 2.0,3,2.0,14,10.0,11,-8.0,8,-8.0,10,33. 2.0,4,2.0,14,10.0,11,-8.0,8,-8.0,10,34. 1.0,1,2.0,14,10.0,11,-8.0,8,- 8.0,10,35. 1.0,2,2.0,14,10.0,11,-8.0,8,-8.0,10,36. 2.0,14,3.0,10,-6.0,8,37. 1.0,11,-2.0,10,38. 1.0,11,-2.0,10,39. 2.0,14,2.0,11,-6.0,8,1.0,10,40. 1.0,1,1.0,2,2.0,11,-4.0,8,-2.0,10,41. 1.0,1,1.0,2,2.0,98,42. 1.0,1,1.0,2,2.0,98,43. 1.0,2,1.0,11,-2.0,8,-1.0,10,44. 2.0,1,1.0,19,2.0,14,3.0,11,-13.0,8,1.0,10,45. 2.0,18,1.0,11,-4.0,8,46. 1.0,1,2.0,30,47. 2.0,2,1.0,11,-4.0,8,48. 1.0,14,3.0,9,49. 1.0,14,3.0,9,50. 3.0,18,2.0,11,-6.0,8,1.0,10,51. 1.0,1,1.0,6,2.0,10,52. 1.0,3,1.0,5,53. 2.0,14,2.0,11,-6.0,8,1.0,10,'54, 1.0,1,2.0,14,7.0,11,-8.0,8,-4.0,10,55, 1.0,1,3.0,2,4.0,98,
153
56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.
5.0,2,4.0,98,2.0,9,3.0,10,1.0,1,2.0,5,0.6,4,0.25,2,2.3,14,3.5,11,-8.0,8,-2.0,10,2.0,14,2.0,11,-6.0,8,1.0,10,1.0,3,11.0,11,-1.0,8,-16.5,10,1.0,4,1.0,14,3.0,11,-4.0,8,-4.0,10,2.0,14,1.0,11,-6.0,8,1.0,10,0.6,1,0.4,3,1.6,14,2.4,11,-6.6,8,-1.6,10,2.0,1,1.0,11,-4.0,8,1.0,1,2.0,14,4.0,11,-8.0,8,1.0,4,1.0,14,2.0,11,-4.0,8,-2.0,10,1.0,1,1.0,10,-2.0,8,1.0,3,7.0,11,-1.0,8,-9.0,10,1.0,2,2.0,19,4.0,10,-8.0,8,1.0,2,1.0,98,1.0,2,2.0,5,4.0,3,3.0,14,9.0,11,1.0,5,-12.0,8,-12.0,10,3.0,1,1.0,2,2.0,11,-8.0,8,1.0,4,1.0,14,3.0,11,-4.0,8,-4.0,10,4.0,1,6.0,14,6.0,11,1.0,98,-24.0,8,2.0,3,1.0,6,10.0,10,
0,1,1.0,2,1.0,11,-4.0,8,0,3,1.0,14,5.0,11,-4.0,8,-5.0,10,0,4,1.0,14,5.0,11,-4.0,8,-5.0,10,0,4,3.0,14,3.0,11,-10.0,8,0,3,1.0,7,
3,1.0,98,1.0,10, 3,1.0,98,10.0,10,
1.0,3,1.0,14,1.0,11,-4.0,8, 1.0,2,1.0,98,3.0,10,0.33,3,2.0,19,0.33,14,3.67,11,-7.32,8,-2,68,10, 0.33,4,2.0,19,0.33,14,3.67,11,-7.32,8,-2.68,10, 2.0,19,0.33,14,3.67,11,-6.99,8,-2.68,10, 0.165,1,2.0,19,0.33,14,3.67,11,-7.32,8,-2.68,10, 0.165,2,2.0,19,0.33,14,3.67,11,-7.32,8,-2-68,10, 1.0,1,1.0,101,-1.0,8,0.2,1,0.8,3,1.2,14,2.8,11,-4.8,8,-3.2,10, 1.0,3,3.0,14,3.0,11,-10.0,8, 1.0,3,2.0,1,4.0,2,3.0,14,6.0,11,-22.0,8,
111112.02.0
1.0,2,-2.0,8,1.0,10,0.5,3,0.5,4,1.0,14,3.0,11,-4.0,8,-3.0,10,1.0,4,3.0,2,1.0,14,3.0,11,-10.0,8,1.0,4,3.0,2,1.0,14,3.0,11,2.0,30,-8.0,8,-2.0,10,1.0,1,2.0,9,2.0,4,-2.0,8,1.0,10,2.0,1,2.0,14,3.0,11,-10.0,8,2.0,14,4.0,11,-6.0,8,-4.0,10,1.0,11,-2.0,10,1.0,4,1.0,14,3.0,11,-4.0,8,-4.0,10,0.33,3,3.0,2,0.33,14,3.67,11,-7.32,8,-2.68,10,0.33,4,3.0,2,0.33,14,3.67,11,-7.32,8,-2.68,10,3.0,2,0.33,14,3.67,11,-6.99,8,-2.68,10,0.165,1,3.0,2,0.33,14,3.67,11,-7.32,8,-2.68,10,0.165,2,3.0,2,0.33,14,3.67,11,-7.32,8,-2.68,10,4.0,2,6.0,11,-8.0,8,-1.0,10,1.0,11,-2.0,10,1.0,11,-2.0,10,2.0,14,1.0,11,-6.0,8,1.0,10,
154
114. 0.167,1,2.33,14,3.67,11,-7.32,8,-2.68,10,115. 0.33,4,2.33,14,3.67,11,-7.32,8,-2.68,10,116. 0.167,2,2.33,14,3.67,11,-7.32,8,-2.68,10,117. 0.33,3,2.33,14,3.67,11,-7.32,8,-2.68,10,118. 2.0,3,-2.0,8,1.0,10,119. 1.0,2,2.0,14,4.0,10,-8.0,8,120. 1.0,1,2.0,14,7.0,11,-8.0,8,-3.0,10,121. 1.0,19,1.0,29,2.0,10,122. 1.0,26,1.0,98,123. 1.0,4,1.0,5,124. 3.0,2,4.0,11,-6.0,8,-4.0,10,125. 2.0,3,1.0,6,126. 2.0,1,5.0,2,8.0,11,-14.0,8,-8.0,10,127. 3.0,3,1.0,7,1.0,98,2.0,10,128. 3.0,18,2.0,29,8.0,10,129. 1.0,1,2.0,14,4.0,11,-8.0,8,-2.0,10,130. 1.0,15,1.0,98,131. 1.0,1,1.0,11,-2.0,8,-1.0,10,132. 2.0,1,3.0,14,3.0,11,-13.0,8,1.0,10,133. 1.0,13,1.0,18,-1.0,19,134. 1.0,13,1.0,5,135. 2.0,13,1.0,101,-1.0,8,136. 1.0,16,1.0,18,-1.0,19,137. 2.0,17,1.0,98,2.0,9,138. 1.0,17,-2.0,8,1.0,10,139. 2.0,16,-2.0,8,1.0,10,140. 1.0,17,1.0,101,-1.0,8,141. 2.0,16,1.0,101,-1.0,8,142. 1.0,17,1.0,18,2.0,101,-2.0,8,143. 4.0,16,1.0,17,1.0,18,4.0,101,-4.0,8,144. 1.0,18,2.0,5,145. 1.0,19,3.0,5,146. 1.0,18,1.0,98,147. 1.0,18,-2.0,8,1.0,10,148. 2.0,19,3.0,10,-6.0,8,149. 2.0,19,3.0,10,-6.0,8,150. 2.0,19,1.0,18,4.0,10,-8.0,8,151. 1.0,19,3.0,9,152. 1.0,19,2.0,10,-3.0,8,153. 1.0,18,1.0,101,-1.0,8,154. 1.0,18,1.0,101,-1.0,8,155. 1.0,18,1.75,101,0.25,6,0.25,8,-1.0,10,156. 2.0,19,1.0,18,4.0,101,-4.0,8,157. 1.0,21,2.0,18,-2.0,19,158. 1.0,21,2.0,5,159. 1.0,20,2.0,5,160. 1.0,21,-2.0,8,1.0,10,161. 1.0,21,1.0,101,-1.0,8,162. 1.0,21,1.0,101,-1.0,8,163. 1.0,23,2.0,5,164. 1.0,23,1.0,98,165. 1.0,23,-2.0,8,1.0,10,166. 2.0,24,2.0,10,-1.0,23,-4.0,8,167. 1.0,23,1.0,101,-1.0,8,168. 1.0,25,2.0,5,169. 1.0,25,1.0,98,170. 1.0,25,-2.0,8,1.0,10,171. 1.0,25,-2.0,8,1.0,10,
155
roN
>ro
roro
roK
>N
>K
>K
>ro
K>
K>
roK
>i »
i-» r
o r
o ro
o o
o <
o ro
ro
ro
roI-
1 M
M
M
i-1 o
»-«
ro
M O
N
i C
J.
. 4>
.O
O
O
- -
o-
ON O
O-
|->-
- 00
OO
N
I -
- i*j
ro
iO
ON
- O
O
M-
- O
O
I-
1 l-»-
- O
O
00
O O
O
O
O
O
ON
ON O
N ON
ON
ON
ON
vo
vO v
O
vo
vo v
O
c»j
ro i
> i
' i
' r
o
o o
o o
o o
* ro
vo
o-
- I-
00
-
o-
N>
O
O O
<-n
-l >
- -
i i
i »i
4>
4>
l-i
J>
O.
O O
- O
O
- -
I-1
- oo
oo
o
oo
oo
- -
- ro
ro
I 1
ON
- vo
o
- o
I '-
ON
K>
vo I
1-
o
i i
ro r
o
o o
oo
oo
ro r
o
O O
P*
IjO
ro r
o ro
o
o o
Q
V.
V.
V.
oi
r**» ^
-
00
O
-
O
ON
ro
i-
4>
o
- o
h-1-
ON
00
VO
--
I 1
ro -
- o
o-
- i
1vo
ON
VO
~
vj
O O
O
OO
OO
O-
OO
OO
OO
O
- - o ----- O O O O O O O -------
K>
ON
l_i
vo
O-
ON
ON
vo
vo
ro o o o
o-
-MOO
o-
-
ro ro
o b
vo
VOvo
vO
vo
vO
O M
- o
I-1
t-> O 00
Ul oON ON
ON O
N oo
vo
ON O
N ON O
N oo o
o oo o
o 00 o
o oo
ON
^j ^
j ^j ^
j en e
n ^^j
v^j
v^j vo
^J v
O vO vo --
vo
^
^ ^
i_
»i_»
- »
^ -
roro
roro
roro
ro-
i »i »i
i » i
» i
»
roi
iro-
ro
roi
i
i >
ro
-
-
4>4>
- o
o-
roroooooooo-
oo
- ooo
O
O -
-
(J1
O
.-»
-----
Q -
-
o -
-
--
OO
-
I 'I 1
- -
OO
h-'I
'I 'I 'I 'I 'I '-
ON
I-J-
vO
O
N
l »
l-i-
-
I '
ON
ON
l »
vo
- -
ON
ON
ON
ON
ON
ON
ON
VO
- O
OO
OO
- O
O
NO
OO
OO
N^vJ^
vJO
- O
OO
OvO
vovovovO
VO
vO
OO
I
»-
- I
» O
o-
- O
O- --
-.-»
--»
--,
-I »
-ro
ro-r
o4
>4
>
i 'i 'ro
roro
roro
roro
i
i
i .
. i
. .
. .........
MO
I-
1O
O4
>O
OO
O
OO
OO
OO
OO
-
«^*<
«<
«<
«
> .«
< <
^^
! -!
f^
I »
i »
O
vo
I »
IjO
i »
| »
vo
vo
vo
vo
vo
vo
vo
-
OO
O-V
OO
O
OO
vo
vo
vo
vo
vO
vo
vo
O
O-
OO
-O
O---
^-^^-^^-^
ro -
o
o-
- i
1M
O
O
-
OO
OO
OO
O
I > |-
i K
> K
> I
> ro
I
» oo
un
O
N -
~vj
Ln
4>
Cn
ON
APPENDIX II. An abbreviated version of the interactive input routine SOLINPUT
SOLMINEQ_88 Input Data File Creation Program
Sample 1
MAIN MENU
1) Create/Edit Current Sample Data
2) Read an Existing Input File
3) Go to Next Sample
4) Go to Previous Sample
5) Write All Samples to an Input File
6) Exit Program
Enter Choice (1-6)
OPTIONS MENU
1) Enter Basic Parameters
2) Enter Program Option Flags
3) Enter Gas, pH, and C02 Options
4) Enter Gas Distribution Option
5) Enter Ion Exchange or Adsorption Option
6) Enter Precipitation/Mixing/Boiling Option
7) Enter User Log K Option
8) Enter Additional Anions/Cation/Minerals Option
9) Return to Main Menu
Enter Choice (1-9)
BASIC PARAMETERS MENU
1) Enter Title and Units
2) Enter Temperatures, Density, and Pressure
3) Enter pH, and Eh
4) Enter Concentrations for Major Species
5) Enter Concentrations for Minor Species
6) Enter Concentrations for Organic Species
7) Return to Options Menu
Enter Choice (1-7)
157
Enter the title of this sample
[SAMPLE # 1]
Test Sample #1 for SOLMINEQ.88 - Modified Seawater at 25 C
Enter Concentration Units (Mg/1, PPM, Mol/1, Mol/K, Meq/1)
[MG/L ]
ppm
Enter the pH [Current - 7.0000]
8.2
Enter Eh in Volts [Current - 9.0000]
0.5
1) ENTER: Na, K, Li, Ca, Mg, Fe, Al
2) ENTER: Si02, Cl, S04, H2S, HC03, C03, TIC
3) Return to Basic Parameters Menu
Enter Choice (1-3)
Enter Concentration of Na [Current - O.OOOOE-01]
10770
Enter Concentration of K [Current - O.OOOOE-01]
399.1
Enter Concentration of Li [Current - O.OOOOE-01]
0.181
Enter Concentration of Ca [Current - O.OOOOE-01]
412.3
Enter Concentration of Mg [Current - O.OOOOE-01]
1292
Enter Concentration of Fe [Current - O.OOOOE-01]
0.002
Enter Concentration of Al [Current - O.OOOOE-01]
0.002
Enter Concentration of Si02 [Current - O.OOOOE^Ol]
4.28
Enter Concentration of Cl [Current - O.OOOOE-01]
0.1935E+05
Enter Concentration of S04 [Current - O.OOOOE-01]
2712
158
Enter Concentration of H2S [Current = O.OOOOE-01]
Enter Alkalinity as HC03 [Current = O.OOOOE-01]
123.4
Enter Alkalinity as COS [Current = O.OOOOE-01]
Enter TIC [Current = O.OOOOE-01]
1) ENTER: F, P04, N03, NH3, B, Sr, Ba
2) ENTER: Pb, Zn, Cu, Mn, Hg, Ag
3) ENTER: As, U, V
4) Return to Basic Parameters Menu
Enter Choice (1-4)
Enter Concentration of F [Current = O.OOOOE-01]
1.39
Enter Concentration of P04 [Current = O.OOOOE-01]
0.06
Enter Concentration of N03 [Current - O.OOOOE-01]
.29
Enter Concentration of NH3 [Current = O.OOOOE-01]
.03
Enter Concentration of B [Current - O.OOOOE-01]
4.45
Enter Concentration of Sr [Current = O.OOOOE-01]
8.14
Enter Concentration of Ba [Current = O.OOOOE-01]
.02
Enter Concentration of Pb [Current = O.OOOOE-01]
0.5E-4
Enter Concentration of Zn [Current = O.OOOOE-01]
0.0049
Enter Concentration of Cu [Current = O.OOOOE-01]
0.0007
Enter Concentration of Mn [Current = O.OOOOE-01]
0.0002
159
Enter Concentration of Hg [Current - O.OOOOE-01]
Enter Concentration of Ag [Current - O.OOOOE-01]
0.004
OPTIONS MENU
1) Enter Basic Parameters
2) Enter Program Option Flags
3) Enter Gas, pH, and C02 Options
4) Enter Gas Distribution Option
5) Enter Ion Exchange or Adsorption Option
6) Enter Precipitation/Mixing/Boiling Option
7) Enter User Log K Option
8) Enter Additional Anions/Cation/Minerals Option
9) Return to Main Menu
Enter Choice (1-9)
FLAGS MENU
1) Enter Carbonate Distribution
2) Enter Activity Coefficient Control
3) Enter Redox Equilibria
4) Enter Printout Control
5) Enter Tolerance Control
6) Return to Options Menu
Enter Choice (1-6)
What does the concentration of bicarbonate/carbonate
refer to:
0 - Total Alkalinity as HC03/C03?
1 - Carbonate Alkalinity as HC03/C03?
2 - Total Inorganic Carbon (TIC)?
[Current - 0]
Do you wish to use TIC for the distribution of
carbonate species at high temperature? (Y/N)
[Current - N]
160
Do you want to distribute Fe using Eh? (Y/N)
[Current - N]
yDo you want to distribute Cu using Eh? (Y/N)
[Current - N]
yDo you want to distribute Hg using Eh? (Y/N)
[Current - N]
yDo you want to distribute Mn using Eh? (Y/N)
[Current - N]
yDo you want to distribute U using Eh? (Y/N)
[Current - N]
Do you want to distribute V using Eh? (Y/N)
[Current - N]
Do you want to print the aqueous log K values in the
data base at the temperatures of interest ? (Y/N)
[Current - N]
Do you want to print out the analytical and calculated
activity ratios of the major elements? (Y/N)
[Current - N]
yDo you want to print out the temperature estimates
from the chemical geothermometers? (Y/N)
[Current - N]
yDo you want to print out the data on the iteration
of the anions? (Y/N)
[Current - N]
Do you want to print out the data on the mass balance
on Hydrogen whenever a new pH is calculated? (Y/N)
[Current - N]
161
Name of a new input file to be created based upon
the output of this sample.
[Current - ]
Sample 1
MAIN MENU
1) Create/Edit Current Sample Data
2) Read an Existing Input File
3) Go to Next Sample
4) Go to Previous Sample
5) Write All Samples to an Input Pile
6) Exit Program :
Enter Choice (1-6)
What do you want to call this file?
[Current - SOLMINEQ.IN]
SOLMINEQ.IN
already exists. Do you wish to overwrite?
yWill write out 1 sample(s).
Enter a <CR> for ok or a number indicating how many
samples you want written out.
Writing file ...
Sample 1
MAIN MENU
1) Create/Edit Current Sample Data
2) Read an Existing Input File
3) Go to Next Sample
4) Go to Previous Sample
5) Write All Samples to an Input File
6) Exit Program
Enter Choice (1-6)
6
**** STOP
162
Input File Created
Test Sample #1 for SOLMINEQ.88 - Modified Seawater at 25 C
0.2500E+020.OOOOE+000.OOOOE+000.OOOOE+00
0.8200E+010.5000E+000.9000E+010.9000E+01PPM
0.1077E+050.3991E+030.1810E+000.4123E+030.1292E+040.2000E-020.2000E-02
0.4280E+010.1935E+050.2712E+040.OOOOE+000.1234E+030.OOOOE+000.OOOOE+00
0.1390E+010.6000E-010.2900E+000.3000E-010.4450E+010.8140E+010.2000E-01
0.5000E-040.4900E-020.7000E-030.2000E-030.3000E-040.4000E-04
0.4000E-020.OOOOE+000.OOOOE+00
0.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+00
2 0
0.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+00
0 00.OOOOE+000.5000E-01
0.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+000.OOOOE+00
0 0
00.OOOOE+00 00.OOOOE+00
00.OOOOE+00
00.OOOOE+00 00.OOOOE+00
00.OOOOE+00
0 0
0
0
10111100
01100
0.5000E-040.5000E-04
00.OOOOE+00 00.OOOOE+00 00.OOOOE+00
00.OOOOE+00 00.OOOOE+00 00.OOOOE+00
163
APPENDIX III. Output Examples
The output from four test cases are given below. These cases were selected
to illustrate several of the main options in this code and to be used for
comparison of results by those who acquire and implement this program. The
number of possible options in this code is extremely large and can not be
adequately illustrated in this report.
Test sample #1 gives the chemical composition of modified sea water
(Nordstrom and others, 1979) to which has been added 0.1 ppm acetate, oxalate,
and succinate. The output gives the distribution of all the inorganic and
organic species and the saturation states of all the minerals in the database
with the exception of those for U and V. The activity coefficients for the
charged species are calculated using the B method and those for neutral species
are made equal to the activity coefficient of dissolved CO^. The printing
options selected display the iterations for anions (total = 6), the ratios for
cations and anions, and the chemical geothermometers.
The mixing option in SOLMINEQ.88 is illustrated with the test sample #2.
This case is a real world test involving the mixing of formation water from the
McMurray formation, Alberta, Canada, and high pH flood water. The mixing
proportions specified in this case are 50/50%, but the number of the mixtures
and the mixing proportions can be varied by the user for any one run.
Speciation and saturation computations are carried out and results are listed
for each end member as well as for the specified mixture or mixtures.
Test sample #3 illustrates one of the dissolution/precipitation options in
SOLMINEQ.88. In this case the mineral anorthite (index number =13) is to be
dissolved/precipitated until the sea water of test sample #1 is at equilibrium
with the mineral gibbsite (index number = 49). The program initially carries
out speciation and saturation computations for sea water (printout not shown,
but is similar to that shown on pages 2-10 of test sample #1). Results of
speciation and saturation computations after equilibration with gibbsite are
then printed.
The amount of anorthite precipitated to achieve equilibrium with gibbsiteo
(SI < 0.05) is -3.076 x 10" moles. The "thinking" geochemist should realize
that the program (which obeys all commands!) Is performing an impossible task.
The saturation states of anorthite and gibbsite in sea water are -6.782 and
0.917 kcal/mole, respectively. Thus, in order to equilibrate with gibbsite,
anorthite must precipitate form this sea water sample. Precipitation of
164
anorthite from a solution that is undersaturated with respect to it is, of
course, thermodynamically impossible. This example illustrates the fact that
the user (not the code) is responsible for all the results of computations
carried out by this program.
The ion exchange option is illustrated with the test sample #4. In this
case 100 g of smectite, with cation exchange capacity (CEC) of 100 meq per 100 g
and with its sites filled with an equal amount of Ca and Mg, is added to one
liter of sea water. We assume that the selectivity constant of smectite for
divalent cations relative to monovalent cations is so high that we can neglect
any exchange with monovalent cations in sea water. We assume, also, that the
selectivity of smectite for Ca and Mg is equal to one.
The program initially computes the distribution of species and the
saturation states of minerals (printout deleted as it is similar to that of test
sample #1). The program then computes the final distribution of Ca and Mg on
the smectite surface and the new distribution of species and saturation state of
minerals in the resulting sea water sample. The output shows that 424 ppm Ca
has been transferred from the smectite surface to the sea water and 257 ppm Mg
from sea water to the smectite surface. The saturation states of all the Ca and
Mg minerals, of course, are changed from the initial conditions.
165
PAGE
-
1 -
****
** IN
PUT
DATA
EC
HO ******
TITL
E : Te
st Sample #1
for
SOLM
INEQ
.88
- Modified Se
awat
er at
25
C
TEMP
HI TEMP
DENS
PR
ESS
0.25
00E+
02
O.OO
OOE+
00
0.1023E+01
O.OO
OOE+
00PH
EHM
EHMC
EMFZSC
0.8200E+
01
0.50
00E+
00
0.9000E+01
0.9000E+01
CONCENTRATION
UNIT
S :
PPM
Na
K Li
Ca0.
1077
E+05
0.39
91E+
03
0.18
10E+
00
0.41
23E+
03Si
02
Cl
S04
H2S
0.4280E+
01
0.1935E+05
0.2712E+04
O.OO
OOE+
00F
P04
N03
NH3
0.1390E+01
0.6000E-01
0.29
00E+
00
0.30
00E-
01Pb
Zn
Cu
Mn0.
5000
E-04
0.
4900
E-02
0.
7000
E-03
0.
2000
E-03
As
U V
0.4000E-02
O.OO
OOE+
00
O.OOOOE+00
Acet
ate
Oxal
ate
Succinate
CH4
0.10
00E+
00
0.10
00E+
00
0.10
00E+
00
0.10
00E+
00AL
K IT
IC2
0DC
02
DH2S
DNH3
DCH4
O.OO
OOE+
00
O.OO
OOE+
00
O.OO
OOE+
00
O.OO
OOE+
00IC
CSAT
IMC03
FIXI
T FCCSAT
0 0
O.OO
OOOE
+00
0.05
00TC02M
TCH4H
TH2S
H WR
OIL
O.OO
OOE+
00
O.OO
OOE+
00
O.OO
OOE+
00
O.OO
OOE+
00Adsorption/Exchange
option (N
=no)
=
N1BMIX
ITMIX
0 0
LOG
KT TO BE CH
ANGE
D AT TEMP =
25.0
00
O.OO
OOE+
00
0 O.
OOOO
E+00
0
LOG
KT TO
BE
CHAN
GED
AT TE
MP =
0.00
0 O.
OOOO
E+00
0
O.OO
OOE+
00
0
Mg0.1292E+04
HC03
0.1234E+03
B0.4450E+01
Hg0.3000E-04
KC02
0LO.OOOOE+00
O.OOOOE+00
O.OOOOE+00
Fe
Al0.
2000
E-02
0.
2000
E-02
C03
TIC
O.OOOOE+00
O.OOOOE+00
Sr
Ba0.
8140
E+01
0.2000E-01
Ag0.
40 00 E-
04
KCH4
0L
KH2S
OLO.
OOOO
E+00
O.OOOOE+00
0 O.
OOOO
E+00
0 O.OOOOE+00
DSEP
O.OOOOE+00
0 O.
OOOO
E+00
0 O.
OOOO
E+00
AN
SI
AN
S2
0 0
Num
ber
of
Additio
nal
Min
era
ls
= 0
FLAG
FO
R A
CT
IVIT
Y
CO
EFF
OF
NE
UTR
AL
SP
EC
IES
: 1
FLA
G
FOR
A
CT
IVIT
Y
CO
EFF
B
Y
PIT
ZE
RS
E
QU
AT
ION
S:
0 FL
AG
S
FOR
CA
LCU
LATI
NG
R
EDO
X S
PE
CIE
S:
Fe
Cu
Hg
Mn
U V
11
11
00
P
RIN
TIN
G
OP
TIO
NS
:IN
FOR
M
RA
TIO
G
EOTH
IP
RIN
1 IP
RIN
20
11
11
TO
LER
AN
CE
FA
CTO
RS
: C
ON
V1
= 0
.50
00
E-0
4
CO
NV2
=
0.5
000E
-04
0 O.OOOOE+00
0 O.OOOOE+00
PAGE
-2
-
SOLMINEQ.87 (VERSION:
USGS-ARC-88-8
) - SOLUTION-MINERAL-EQUILIBRIUM COMPUTATIONS
SAMP
LE ID
ENT:
- Test S
ample
#1 for
SOLM
INEQ.88
- Modified S
eawa
ter
at 2
5 C
ITERATIVE
CONVERGENCE
TEST
AT
TEMPERATURE
= 25.00
ITER CARBONATE
~T
6
SULFATE
FLUO
RIDE
PHOSPHATE
CHLORIDE
ACETATE
SULF
IDE
OXYLATE
SUCC
INAT
E US
R-DE
F #1 USR-DEF
#2
3.442E-01
5.388E-06
1.13
1E+0
0 1.
801E
-05
6.964E-01
1.24
5E-0
53.
761E
+00
2.84
3E-0
53.
108E
-02
2.75
2E-0
73.447E-01
5.39
8E-0
6O.
OOOE
+00
O.OO
OE+0
08.063E+00
3.134E-05
4.936E-01
9.37
4E-0
6O.
OOOE
+00
O.OO
OE+0
0O.OOOE+00
O.OOOE+00
Total
number o
f it
erat
ions
=
6 at pH =
8.20
PAGE
-
SAMP
LE IDEN
T:-
Test
Sample #
1 for
SOLMIN
EQ.8
8 - Mo
difi
ed S
eawater
at 25 C
KM
CM
icnr
uni luno
8.20
0.5000
25.0
0
DENS
ITY
AT
TOTAL
DISSOLVED
INPUT
T SOLIDS (MG/L)
t I. 023
035
906.
34
ANAL=
CALC=
IONIC
STRENGTH
0.64
945
619.
6747
577.6364
ACTI
VITY
OF W
ATER
0.9809
Tota
l Al
kali
nity
as
HC03
- C0
3=
CaC03
(MG/L)=0.1423E+03
0.6999E+02 0
.116
7E+0
3 (P
PM)=
0.13
91E+
03 0.
6842
E+02
0.1
141E
+03
(MOLALITY)=0.2363E-02
0.11
82E-
02 0
.118
2E-0
2
1 2 3 4 5 6 7 8 9"H
-12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37
SPECIES
Ca +
+Mg +
+Na +
K +
Cl
-S0
4 --
HC03
-H
+OH
-tt
4Si0
4Si 02
Ag +
Al +3
Ba +
+Cu
+Cu
++
Fe +
+Fe
+3
Hg
++Li
+
Mn +
+Mn
+3
Pb +
+Sr +
+Zn
++
H2As03
-P0
4 -3
F -
B(OH
)3NH
3Al
F ++
ALF2
+
AIF3
AIF4
-
PPM
412.3000
1292.0000
1077
0.00
00399.1000
1935
0.00
0027
12.0
000
123.
4000
4.28
000.
0000
0.00
200.
0200
0.0007
0.00
20
0.0000
0.18
100.0002
0.00
018.
1400
0.00
490.0067
0.06
001.
3900
25.4540
0.03
00
MG/L
MOLA
LITY
421.
7829
1321
.716
011017.7100
408.
2793
19795.0500
2774.3760
126.
2382
4.37
840.
0000
0.00
200.
0205
0.00
07
0.00
20
0.00
000.
1852
0.00
02
0.0001
8.32
720.
0050
0.00
680.
0614
1.4220
26.0
394
0.03
07
0.1066E-01
0.5508E-01
0.48
55E+
000.1058E-01
0.56
56E+
000.2926E-01
0.20
96E-
02
0.7382E-04
0.38
43E-
090.7682E-07
0.15
09E-
060.1142E-07
0.3711E-07
0.1550E-09
0.27
03E-
040.3773E-08
0.25
01E-
090.9628E-04
0.7768E-07
0.52
81E-
070.6548E-06
0.7583E-04
0.4266E-03
0.18
26E-
05
nniuno
uirrcKCNic in
cw/u
.;
618.2648
569.
7726
P TOTAL
(BARS)
1 .0000
as
1.40
99
7.86
38
--- M
" Urt BMLMNLt (HULtd; -------
HTOT
OH
TOT
DIFF
EREN
CE
0.2198
E-02
0.1351E-02
0.84
77E-
03
_ _
r*nc
e»e»
i tnc
PH20
PC02
PH2S
PC
H4
PNH3
(B
ARS)
(B
ARS)
(B
ARS)
(BARS)
(BAR
S)0.3169E-01 0.4782E-03 O.OOOOE+00 0.5252E-02 0
.1644E-08
Dissolved
Inorganic
Carbon
HC03
- H2C03
Sum
of
Sum
ofTI
C Al
kali
nity
sp
ecie
s HC
03-
C03=
0.2485E+02 0.1373E+03 0.8648E+00 0.
1130
E+03
0.
1216
E+02
0.2429E+02 0.
1343
E+03
0.
8454
E+00
0.1105E+03 0.1188E+02
0.20
96E-
02 0.
2287
E-02
0.1413E-04 0.1877E-02 0.2052E-03
PPM
0.2844E+03
0.1121E+04
0.10
24E+
050.
3825
E+03
0.18
74E+
050.
1203
E+04
0.8534E+02
0.76
38E-
050.4016E-01
0.6615E+01
0.1039E-08
0.4280E-11
0.1815E-01
0.23
95E-
090.3648E-03
0.12
68E-
080.1009E-12
0.74
74E-
180.1792E+00
0.58
64E-
060.
8887
E-23
0.99
66E-
060.7551E+01
0.28
86E-
020.7209E-03
0.5919E-05
0.76
72E+
000.
2205
E+02
0.7083E-09
0.3364E-08
0.1024E-08
0.1215E-10
-
- - OHLUULH ICU -----------
MG/L
MOLA
LITY
0.2909E+03
0.11
47E+
040.1048E+05
0.3913E+03
0.1917E+05
0.1231E+04
0.8730E+02
0.7814E-05
0.4108E-01
0.6767E+01
0.10
63E-
080.
4379
E-11
0.1857E-01
0.24
50E-
090.3732E-03
0.12
97E-
080.1032E-12
0.76
46E-
180.1833E+00
0.59
99E-
060.9092E-23
0.1020E-05
0.7725E+01
0.29
52E-
020.7375E-03
0.6055E-05
0.7848E+00
0.22
56E+
02
0.72
46E-
090.3442E-08
0.10
47E-
080.
1243
E '0
0.7353E-02
0.4779E-01
0.4618E+00
0.1014E-01
0.5478E+00
0.12
98E-
010.1449E-02
0.78
53E-
080.
2447
E-05
0.71
33E-
04
0.9982E-14
0.16
44E-
150.
1370
E-06
0.39
06E-
140.5950E-08
0.23
53E-
130.
1872
E-17
0.3861E-23
0.2677E-04
0.1106E-10
0.16
77E-
270.4985E-11
0.89
31E-
040.
4575
E-07
0.5706E-08
0.6459E-10
0.4185E-04
0.3696E-03
0.1597E-13
0.53
66E-
130.
1263
E-13
0.12
23E-
15
ACTI
VITY
0.18
07E-
020.1261E-01
0.30
99E+
000.63
57E-02
0.34
34E+
000.21
89E-02
0.10
00E-02
0.63
10E-08
0.1591E-05
0.7133E-04
0.6000E-14
0.1404E-16
0.28
49E-
070.2348E-14
0.1462E-08
0.57
84E-
140.1599E-18
0.80
33E-
240.19
73E-
040.2719E-11
0.14
32E-
280.9397E-12
0.1858E-04
0.11
24E-
070.3829E-08
0.1748E-11
0.2721
E-04
0.36
96E-
03
0.3566E-14
0.38
63E-
130.1263E-13
0.8438E-16
HOI 1
VI 1
1
COEF
F.0.
2458
0.26
400.
6710
0.62
690.
6269
0.1687
0.68
990.
8034
0.6501
1.0000
0.6011
0.08
540.
2080
0.6011
0.24
580.
2458
0.0854
0.20
800.
7373
0.24
580.
0854
0.18
850.
2080
0.24
580.
6710
0.0271
0.6501
1.0000
0.22
340.
7198
1.0000
0.68
99
-LOG10
ACTI
VITY
2.74
291.
8992
0.5088
2.19
680.4641
2.65
983.
0000
8.20
005.
7984
4.1467
14.2219
16.8525
7.54
5314
.629
48.8349
14.2378
18.7
962
24.0951
4.7048
11.5656
28.8440
12.0
270
4.73
107.
9490
8.4169
11.7573
4.56
533.
4323
14.4
478
13.4131
13.8
984
16.0
737
38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
SPECIES
Al(O
H)++
Al(O
H)2+
Al(O
H)4-
AIS0
4 +
AIS0
4)2-
AgCl
AgCl
2 -
AgCl
3 --
AgCU -3
AgS0
4 -
CH3COO
H3As03
BaC0
3BaHC03 +
BaOH +
BaS0
4CaC0
3CaHC03 +
CaOH +
CaP0
4 -
CaHP04
CaH2P04+
CaS04
CuCl
CuCl
2 -
CuCl
3 --
CuCl
+
CuCl
2Cu
Cl3
-CuCU --
CuOH +
CuS0
4Fe
Cl +
FeCl
2Fe
HP04
H3P0
4Fe
OH +
Fe(OH)2
FeOOH
-Fe
S04
FeCl
++
FeCl
2 +
FeCl
3Fe
Cl4
-Fe
S04
+Fe
S04)
2-Fe
OH ++
Fe(O
H)2+
Fe(O
H)3
Fe(O
H)4-
B(OH)4
-H2Si04--
H3Si
04
-
................. AN
AL T ̂
tu ...........
....
....
...
PPM
MG/L
MO
LALI
TY
PPM
0.4655E-08
0.3336E-05
0.70
37E-
020.5289E-11
0.1600E-11
0.5954E-06
0.3801E-04
0.3041E-04
0.4054E-05
0.7863E-10
0.1000
0.1023
0.17
55E-
05
0.72
25E-
010.
5724
E-02
0.1272E-04
0.22
38E-
030.
3234
E-07
0.2867E-02
0.21
47E+
010.
3081
E+01
0.29
65E-
020.1688E-02
0.23
33E-
020.2207E-04
0.1037E+03
0.38
60E-
070.4663E-05
0.1035E-04
0.7487E-04
0.4364E-05
0.72
55E-
070.4869E-09
0.3094E-03
0.8766E-04
0.7697E-10
0.5145E-18
0.81
41E-
130.2034E-09
0.2892E-10
0.31
15E-
130.2686E-13
0.4994E-09
0.68
63E-
120.
4400
E-12
0.1368E-13
0.1026E-15
0.1001E-11
0.1038E-23
0.6227E-07
0.3697E-04
0.20
99E-
020.1952E-02
0.43
42E+
010.
2150
E-03
0.2287E+00
- -
- -LMLUULAI Cl
MG/L
0.47
62E-
080.
3413
E-05
0.7199E-02
0.54
11E-
110.
1637
E-11
0. 609
1 E- 06
0.3889E-04
0.31
11E-
040.
4148
E-05
0.80
44E-
100.
7391
E-01
0.5856E-02
0.1301E-04
0.2290E-03
0.3309E-07
0.29
33E-
020.2197E+01
0.3152E+01
0.30
34E-
020.
1727
E-02
0.2387E-02
0.2258E-04
0.10
61E+
030.
3949
E-07
0.4770E-05
0.1058E-04
0.7659E-04
0.4464E-05
0.7422E-07
0.4981E-09
0.3165E-03
0.8967E-04
0.7874E-10
0.5263E-18
0.8329E-13
0.20
81E-
090.2959E-10
0.3187E-13
0.27
48E-
130.5109E-09
0.70
21E-
120.
4501
E-12
0.1399E-13
0.1049E-15
0.1024E-11
0.10
62E-
230.
6370
E-07
0.3782E-04
0.2147E-02
0.1997E-02
0.4442E+01
0.21
99E-
030.2340E+00
j- ---
----
---
MOLA
LITY
0.10
97E-
120.
5669
E-10
0.76
76E-
070.4455E-16
0.75
69E-
170.4305E-11
0.2204E-09
0.1471E-09
0.16
83E-
100.
3996
E-15
0.12
68E-
050.4710E-07
0.66
79E-
100.1169E-08
0.2172E-12
0.1273E-07
0.22
24E-
040.
3158
E-04
0.53
83E-
070.
1296
E-07
0.1777E-07
0.1669E-09
0.7893E-03
0.4041E-12
0.35
94E-
100.
6311
E-10
0.7839E-09
0.33
64E-
100.4425E-12
0.2457E-14
0.3981E-08
0.5692E-09
0.87
37E-
150.
4207
E-23
0.5557E-18
0.21
51E-
140.
4115
E-15
0.3593E-18
0.3133E-18
0.34
07E-
140.
7791
E-17
0.35
98E-
170.8738E-19
0.5377E-21
0.6831E-17
0.4340E-29
0.8858E-12
0.4264E-09
0.2035E-07
0.16
33E-
070.
5708
E-04
0.2367E-08
0.24
92E-
05
ACTI
VITY
0.2450
E-13
0.4081
E-10
0.52
96E-
070.3074E-16
0.52
22E-
170.
4305
E-11
0.14
79E-
090.
3060
E-10
0.6631
E-12
0.26
81E-
150.8749E-06
0.4710
E-07
0.6679
E-10
0.7847E-09
0.15
36E-
126.
1273
E-07
0.2224
E-04
0.2328E-04
0.3969
E-07
0.93
26E-
080.1777E-07
0.12
01E-
090.
7893
E-03
0.4041
E-12
0.2412E-10
0.1313E-10
0.52
60E-
090.3364E-10
0.2969
E-12
0.5111
E-15
0.26
71E-
080.5692E-09
0.5862E-15
0.4207
E-23
0.55
57E-
180.2151E-14
0.2910E-15
0.3593E-18
0.2215E-18
0.3407
E-14
0.1621E-17
0.2544E-17
0.87
38E-
190.
3608
E-21
0.4831E-17
0.29
12E-
290.
1843
E-12
0.30
69E-
090.
2035
E-07
0.11
76E-
070.3462E-04
0.52
88E-
090.
1672
E-05
AL 1
1 V
1 1 I
COEF
F.0.2234
0.7198
0.6899
0.6899
0.6899
1.00
000.6710
0.2080
0.0394
0.6710
0.6899
1.00
001.
0000
0.6710
0.70
711.0000
1.00
000.7373
0.7373
0.7198
1.00
000.7198
1.0000
1.00
000.6710
0.2080
0.6710
1.00
000.6710
0.2080
0.6710
1.00
000.6710
1.00
001.
0000
1.00
000.
7071
1.00
000.
7071
1.00
000.2080
0.70
711.0000
0.6710
0.70
710.6710
0.2080
0.7198
1.00
000.7198
0.6065
0.2234
0.6710
-LUblU
ACTIVITY
13.6109
10.3893
7.27
6116.5123
17.2822
11.3
660
9.83
0110.5143
12.1784
15.5717
6.0580
7.3269
10.1753
9.1053
12.8137
7.89
514.6529
4.6329
7.4013
8.0303
7.7503
9.9203
3.10
2812
.393
510.6177
10.8818
9.2790
10.4732
12.5
273
15.2915
8.5733
9.24
4715.2319
23.3
761
18.2
551
14.6673
15.5362
18.4446
18.6546
14.4676
17.7903
17.5945
19.0586
21.4427
17.3160
29.5358
12.7346
9.5130
7.6913
7.92
974.
4607
9.27
675.
7767
PAGE
-5
-
SPE
CIES
92
HA
S03
--96
HF97
H2C03
98
C03
--99
HP
04 --
100
H2P04
-103
HS04
-104
HN03
105
HgCl +
106
HgCl2
107
HgCl3
-108
HgCK --
109
HgS04
113
KCl
114
KC03
-115
KHS0
4116
KS04
-
117
KHP04
-118
LiOH
119
LiS04
-120
MgC03
121
MgHC03 +
122
MgF
+123
MgOH +
124
MgS0
4125
MgP0
4 -
PPM
MG/L
127
MgH2
P04+
128
MnCl
+
129
MnCl
2130
MnCl
3 -
131
MnCU --
132
MnHC03 +
133
MnS0
4134
MnHP04
135
MnOH
+
136
N03
-13
7 NaCl
138
NaC0
3 -
139
NaHC
03140
Na2C
03141
Na2S
04142
NaS0
4 -
143
NaHP04
-14
4 Na
F146
NH4
+147
NH40H
148
PbCl +
149
PbCl2
150
PbCl3
-151
PbCl4
--152
PbS04
153
MnCl
-n-
0.29
000.2967
MOLALITY
PPM
0.1173E-07
0.5016E-05
0.8454E+00
0.1922E+01
0.1074E-01
0.3138E-03
0.16
71E-
030.4331E-10
0.16
65E-
120.
4517
E-06
0.32
16E-
040.
1476
E-04
0.12
64E-
190.
2070
E+02
0.79
87E-
010.7277E-05
0.19
57E+
020.
5417
E-04
0.1098E-05
0.2650E-01
0.7265E+01
0.18
18E+
020.
1373
E+01
0.42
44E+
000.8054E+03
0.1041E-01
(X.4552E-01
0.1363E-03
0.3839E-13
0.3094E-10
0.50
98E-
090.5472E-08
0.84
43E-
080.
1578
E-06
0.36
33E-
100.
1233
E-08
0.48
47E-
05
0.2900E+00
0.8478E+03
0.4759E+01
0.14
13E+
020.1521E-01
0.9321E+03
0.1838E+03
0.23
26E-
020.4503E-01
0.30
15E-
010.
3150
E-02
0.2894E-05
0.2776E-05
0.78
45E-
060.
6104
E-06
0.33
84E-
060.
8401
E-21
- -LMLLULMI
ciMG/L
0.12
00E-
070.5131E-05
0.8648E+00
0.1966E+01
0.1099E-01
0.3210E-03
0.1709E-03
0.44
31E-
100.1704E-12
0.4621E-06
0.3290E-04
0.15
10E-
040.1293E-19
0.21
18E+
020.8171E-01
0.7445E-05
0.2002E+02
0.5541E-04
0.1123E-05
0.2711E-01
0.7432E+01
0.1860E+02
0.1405E+01
0.4341E+00
0.82
40E+
030.1065E-01
0.4657E-01
0.13
95E-
030.3927E-13
0.3165E-10
0.5215E-09
0.5598E-08
0.86
37E-
080.1614E-06
0.37
17E-
100.1261E-08
0.29
67E+
000.
8673
E+03
0.4869E+01
0.14
45E+
020.1556E-01
0.9536E+03
0.1880E+03
0.23
79E-
020.
4607
E-01
0.3085E-01
0.3223E-02
0.2961E-05
0.2840E-05
0.8026E-06
0.62
44E-
060.3462E-06
0.85
95E-
21
j.. .........
MOLALITY
0.9358E-13
0.25
98E-
090.1413E-04
0.3319E-04
0.1160E-06
0.3353E-08
0.17
84E-
080.
7124
E-15
0.7311E-18
0.17
24E-
110.
1086
E-09
0.4469E-10
0.44
16E-
250.2878E-03
0.8352E-06
0.5539E-10
0.1500E-03
0.41
56E-
090.4751E-10
0.2666E-06
0.8930E-04
0.2209E-03
0.3286E-04
0.10
64E-
040.6934E-02
0.90
42E-
070.
3922
E-06
0.1165E-08
0.4401E-18
0.25
48E-
150.3276E-14
0.28
82E-
130.7546E-13
0.10
83E-
110.
2495
E-15
0.1776E-13
0.48
47E-
050.1503E-01
0.5943E-04
0.1743E-03
0.14
87E-
060.6801E-02
0.1600E-02
0.2026E-07
0.1111E-05
0.1732E-05
0.93
15E-
070.1236E-10
0.1034E-10
0.2593E-11
0.18
13E-
110.
1157
E-11
0.96
33E-
26
ACTI
VITY
0.19
47E-
130.
2598
E-09
0.1413E-04
0.7413
E-05
0.24
14E-
070.
2414
E-08
0.12
31E-
080.
7124
E-15
0.4906E-18
0.1724E-11
0.7285E-10
0.92
96E-
110.
4416
E-25
0.2878E-03
0.5536E-06
0.55
39E-
100.
1080
E-03
0.29
91E-
090.4751E-10
0.1885E-06
0.8930E-04
0.1482E-03
0.2267E-04
0.7988E-05
0.6934E-02
0.6509E-07
0.39
22T-
060.
8385
E-09
0.29
53E-
180.
2548
E-15
0.2198E-14
0.59
96E-
140.5063E-13
0.10
83E-
110.
2495
E-15
0.11
91E-
130.3039E-05
0.1503E-01
0.42
78E-
040.1743E-03
0.1487E-06
0.68
01E-
020.
1152
E-02
0.1458E-07
0.1111E-05
0.10
41E-
050.9315E-07
0.8295E-11
0.10
34E-
100.1740E-11
0.3771E-12
0.11
57E-
110.2004E-26
ML 1
1 VI 1
I
COEFF.
0.20
801.
0000
1.00
000.2234
0.2080
0.71
980.6899
1.00
000.
6710
1.00
000.
6710
0.2080
1.00
001.
0000
0.6629
1.00
000.7198
0.7198
1.00
000.7071
1.00
000.6710
0.6899
0.75
051.
0000
0.7198
1.00
000.7198
0.67
101.
0000
0.6710
0.20
800.6710
1.00
001.
0000
0.67
100.6269
1.00
000.7198
1.00
001.
0000
1.00
000.7198
0.7198
1.00
000.6011
1.00
000.6710
1.00
000.6710
0.2080
1.00
000.2080
- LUd 1
U
ACTIVITY
13.7
107
9.5853
4.8500
5.13
007.
6173
8.6173
8.9098
15.1
473
18.3
093
11.7634
10.1376
11.0
317
25.3
550
3.5409
6.2568
10.2566
3.9666
9.5241
10.3
232
6.7246
4.0492
3.8292
4.64
455.0976
2.1590
7.18
656.
4065
9.07
6518.5297
15.5938
14.6
580
14.2221
13.2956
11.9654
15.6029
13.9239
5.51
731.
8229
4.3688
3.7588
6.8276
2.16
742.
9386
7.8361
5.9541
5.98
247.
0308
11.0
812
10.9
853
11.7
594
12.4
236
11.9368
26.6981
154
155
156
157
158
159
160
161
162
163
164
165
166
228
229
230
231
232
233
234
235
236
237
238
239
240
241
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
SPEC
IES
SrOH
-
SrC03
SrHC
03 +
SrS04
ZnCl +
ZnCl
2Zn
Cl3
-ZnCU --
ZnS0
4AI
F5
--AI
F6 -3
HgOH
+Hg
(OH)
2CH
3COO
HA
I Ace +
+Ba
Ace
+Ca
Ace
+Cu
Ace
+FeAce
+Fe(Ace)2
KAce
MgAce
+NaAce
PbAc
e +
Pb(Ace)2
Pb(A
ce)3
SrAc
e +
ZnAc
e +
Zn(Ace)2
C204
--
HC204
-H2
C204
AlOx
y +
AlOxy)2-
BaOx
yCa
Oxy
FeOxy
FeOx
y +
KOxy
-MgOx
yMnOxy
MnOx
y)2
MnOx
y)3
MnOxy
NaOx
y
PbOx
ySr
Oxy
ZnOx
yC4H404--
HC4H404-
H2C4H404
AlSu
c +
AlSuc)2-
.............. ---ftN/iLT£tU---- .......
...........
PPM
MG/L
MO
LALI
TY
PPM
0.20
67E-
040.1296E-01
0.61
51E-
010.1142E+01
0.14
73E-
020.
7271
E-03
0.2461E-03
0.22
76E-
030.6217E-03
0.2976E-13
0.1492E-16
0.1153E-13
0.3411E-08
0.1841E-04
0.3920E-14
0.9235E-07
0.37
23E-
020.2733E-13
0.16
22E-
120.
9354
E-20
0.2146E-03
0.2288E-01
0.1264E-01
0.5570E-10
0.98
55E-
150.
1775
E-20
0.4820E-04
0.1391E-03
0.3411E-13
0.10
00
0.10
23
0.11
77E-
05
0.94
39E-
020.
3468
E-09
0.3117E-13
0.5607E-13
0.24
57E-
150.
5714
E-08
0.55
46E-
020.
5006
E-12
0.3028E-13
0.1406E-03
0.10
02E+
000.9311E-10
0.7180E-03
0.15
50E-
060.
2764
E-19
0.9487E-02
0.36
51E-
090.
2710
E-04
0.32
82E-
050.
1000
0.
1023
0.8929E-06
0.6405E-01
0.21
40E-
050.
4102
E-08
0.7162E-13
0.45
85E-
15
-
-lALlULHICI
MG/L
0.21
14E-
040.1326E-01
0.6292E-01
0.1169E+01
0.15
07E-
020.7438E-03
0.2518E-03
0.23
28E-
030.6360E-03
0.30
44E-
130.1526E-16
0.1180E-13
0.3490E-08
0.1883E-04
0.40
10E-
140.9447E-07
0.38
09E-
020.2796E-13
0.16
60E-
120.
9569
E-20
0.2195E-03
0.2340E-01
0.1293E-01
0.56
99E-
100.1008E-14
0.18
16E-
200.
4930
E-04
0.14
23E-
030.3490E-13
0.96
56E-
020.
3548
E-09
0.3189E-13
0.5736E-13
0.25
14E-
150.
5845
E-08
0.56
73E-
020.
5122
E-12
0.3097E-13
0.1438E-03
0.10
25E+
000.
9525
E-10
0.73
45E-
030.
1585
E-06
0.28
28E-
190.
9705
E-02
0.37
35E-
090.
2773
E-04
0.3357E-05
0.6553E-01
0.2190E-05
0.41
97E-
080.
7326
E-13
0.4690E-15
j- ---
----
---
MOLA
LITY
0.20
47E-
090.
9100
E-07
0.42
89E-
060.
6445
E-05
0.15
14E-
070.
5529
E-08
0.1485E-08
0.1138E-08
0.39
91E-
080.
2528
E-18
0.1097E-21
0.5492E-19
0.15
07E-
130.3177E-09
0.4722E-19
0.4874E-12
0.38
92E-
070.
2311
E-18
0.1463E-17
0.55
74E-
250.
2266
E-08
0.28
44E-
060.
1596
E-06
0.21
68E-
150.3140E-20
0.47
87E-
260.3406E-09
0.11
59E-
080.
1927
E-18
0.11
11E-
060.
4037
E-14
0.35
88E-
180.
5053
E-18
0.1254E-20
0.26
28E-
130.
4487
E-07
0.3606E-17
0.21
81E-
180.
1146
E-08
0.92
41E-
060.
6750
E-15
0.37
60E-
080.
6353
E-12
0.20
04E-
240.
8857
E-07
0.1282E-14
0.15
99E-
090.2217E-10
0.57
19E-
060.1895E-10
0.3600E-13
0.51
88E-
180.
3322
E-20
ACTIVITY
0.14
48E-
090.
9100
E-07
0.2878E-06
0.6445E-05
0.10
16E-
070.
5529
E-08
0.99
66E-
090.
2368
E-09
0.39
91E-
080.
5260
E-19
0.4322
E-23
0.36
85E-
190.
1507
E-13
0.31
77E-
090.
8901
E-20
0.33
62E-
120.2685E-07
0.1594E-18
0.1010E-17
0.5574E-25
0.2266E-08
0.19
62E-
060.
1596
E-06
0.1496
E-15
0.31
40E-
200.
3303
E-26
0.23
50E-
090.
7997
E-09
0.1927E-18
0.2482E-07
0.27
85E-
140.3588E-18
0.34
86E-
180.8654E-21
0.26
28E-
130.4487E-07
0.3606E-17
0.1505E-18
0.79
08E-
090.
9241
E-06
0.6750E-15
0.83
98E-
090.
1315
E-14
0.13
82E-
240.6110E-07
0.12
82E-
140.
1599
E-09
0.22
17E-
100.
1277
E-06
0.13
07E-
100.
3600
E-13
0.3579E-18
0.22
92E-
20
All 1V1 1
T
COEFF.
0.7071
1.00
000.
6710
1.00
000.
6710
1.00
000.
6710
0.20
801.
0000
0.20
800.
0394
0.67
101.
0000
1.00
000.
1885
0.6899
0.6899
0.6899
0.6899
1.00
001.
0000
0.6899
1.00
000.6899
1.00
000.6899
0.6899
0.6899
1.00
000.
2234
0.6899
1.00
000.6899
0.6899
1.00
001.
0000
1.00
000.6899
0.68
991.
0000
1.0000
0.22
340.0021
0.68
990.
6899
1.0000
1.0000
1.0000
0.22
340.6899
1.00
000.
6899
0.68
99
LUU1U
ACTI
VITY
9.83
947.
0410
6.5410
5.19
087.
9932
8.2573
9.00
159.6256
8.3989
19.2
791
23.3644
19.4335
13.8219
9.4980
20.0
506
12.4
734
7.57
1018
.797
417.9958
25.2
539
8.6448
6.7072
6.7968
15.8251
20.5031
26.4811
9.6290
9.0971
18.7
151
7.6051
14.5
551
18.4451
18.4576
21.0
628
13.5
804
7.3481
17.4429
18.8225
9.1019
6.0343
15.1707
9.0758
14.8809
24.8
593
7.21
3914
.892
29.7961
10.6
542
6.8937
10.8837
13.4437
18.4
462
20.6
399
PAGE
-7
-
SPE
CIES
270
BaSu
c27
1 Ca
Suc
272
FeSuc
273
FeSuc
+27
4 KS
uc
-27
5 Mg
Suc
276
MnSu
c27
7 Na
Suc
-27
8 Pb
Suc
279
SrSu
c28
0 ZnSu
c28
1 CaCl +
282
CaCl
228
3 Fe
F ++
284
SiF6 --
285
CH4
Gas
288
PbC0
328
9 Pb
OH +
292
ZnHC
03 *
293
ZnOH
+29
4 Zn
(OH)
2
.-..---........ --HNMLT£tU---- -------
............
PPM
MG/L
MOLA
LITY
PP
M0.9318E-07
0.3479E-02
0.1942E-13
0.4911E-13
0.3516E-03
0.24
49E-
010.
8478
E-11
0.15
36E-
010.1184E-09
0.46
65E-
040.7253E-07
0.17
73E+
030.
3377
E+01
0.15
10E-
110.1180E-28
0.10
00
0.1023
0.64
60E-
05
0.10
00E+
000.
1796
E-04
0.31
84E-
040.
5376
E-04
0.23
23E-
030.
1037
E-04
-
- -IHLIULMICI
MG/L
0.95
32E-
070.
3559
E-02
0.19
87E-
130.
5024
E-13
0.35
97E-
030.2505E-01
0.8673E-11
0.1571E-01
0.12
11E-
090.
4772
E-04
0.7420E-07
0.18
14E+
030.3455E+01
0.15
45E-
110.
1207
E-28
0.1023E+00
0.18
37E-
040.
3257
E-04
0.54
99E-
040.
2377
E-03
0.10
61E-
04
,,- -
- ...
....
.MO
LALI
TY0.
3811
E-12
0.2309E-07
0.11
71E-
180.
2960
E-18
0.23
48E-
080.1808E-06
0.5138E-16
0.1145E-06
0.37
96E-
150.
2373
E-09
0.41
43E-
120.
2433
E-02
0.31
53E-
040.2091E-16
0.86
09E-
340.6460E-05
0.69
66E-
100.1472E-09
0.44
08E-
090.
2923
E-08
0.10
82E-
09
ACTIVITY
0.38
11E-
120.2309E-07
0.11
71E-
180.2042E-18
0.16
20E-
080.1808E-06
0.51
38E-
160.7898E-07
0.37
96E-
150.
2373
E-09
0.41
43E-
120.
1633
E-02
0.3153E-04
0.4350E-17
0.1791E-34
O.OOOOE+00
0.69
66E-
100.9876E-10
0.29
58E-
090.
1961
E-08
0.1082E-09
Ml,
1 1 V 1 I
T
COEFF.
1.0000
1.0000
1.00
000.6899
0.6899
1.00
001.0000
0.6899
1.00
001.0000
1.0000
0.67
101.
0000
0.2080
0.2080
1.00
001.
0000
0.6710
0.67
100.6710
1.00
00
-LUlilU
ACTI
VITY
12.4
190
7.6366
18.9
315
18.6898
8.7904
6.7428
16.2892
7.10
2515
.420
79.6246
12.3
827
2.7871
4.5012
17.3615
34.7
469
0.00
0010
.157
010.0054
9.52
908.7074
9.9658
N>
PAGE
-
8 -
SAMP
LE ID
ENT
- Te
st S
ample
#1 fo
r SOLNINEQ.88
- Modified S
eawa
ter
at 2
5 C
TEMPERATURE
=25.00
MOLE RA
TIOS
(USING AN
ALYT
ICAL
MO
LALI
TY)
CL/CA
CL/M
GCL
/NA
CL/K
CL/A
LCL/FE
CL/S04
CL/H
C03
CA/MG
SQRT(CA)/NA
0.53
06E+
02
0.10
27E+
02
0.11
65E+
01
0.5347E+02
0.7363E+07
0.1524E+08
0.1933E+02
0.2699E+03
0.19
36E+
00
0.2127E+00
NH3/NA
LI/N
AK/
NAHG/CA
SR/CA
BA/CA
S04/CL
HC03
/CL
F/CL
B/CL
0.3760E-05
0.55
68E-
04
0.21
79E-
01
0.5166E+01
0.90
31E-
02
0.14
16E-
04
0.51
73E-
01
0.37
05E-
02
0.1341E-03
0.75
42E-
03
LOG
OF A
CTIVITY
RATIOS
CA/H
2MG
/H2
MA/H
K/H
AL/H
3FE/H2
CA/M
GNA/K
0.13
66E+
02
0.1450E+02
0.7691E+01
0.6003E+01
0.77
47E+
01
0.21
62E+
01
-0.8
438E
+00
0.1688E+01
LOG(
NA/K
)-H/
3(LO
G(SQ
RT(C
A)/M
A))
= 0.144E+01
LOG(
NA/K
)+4/
3(LO
G(SQ
RT(C
A)/N
A))
= 0.
765E
+00
CHEM
ICAL
GE
OTHE
RMOM
ETER
TEMPERATURES (I
N DE
GREE
S CENTIGRADE)
("99
9.0"
IN
DICA
TES
THAT A VALUE GR
EATE
R TH
AN 0.0
WAS
NOT
CALC
ULAT
ED)
TEHP.
WITH
PR
ESSU
RE
TEMP
ERAT
URE
AND/OR ACTIVITY
CORRECTION
14.0
24
.2
999.
0
999.
0
999.
0
144.
5 17
4.7
274.9
194.0
999.
0
10.2
13.1
QUAR
TZ (CONDUCTIVE)
: QUARTZ (A
DIAB
ATIC
) :
CHALCEDONY WI
TH SI
02
:
ALFA
CR
ISTO
BALI
TE WI
TH SI02
:
Amorphous
Sili
ca W
ith
Si02
:
LOG
(NA/
K)
LOG
(NA/
K) +
1/3
LOG(SQRT(CA)/NA)
LOG
(NA/
K)
* 4/
3 LO
G(SQ
RT(C
A)/N
A)
LOG
(NA/
K) +
4/3
LOG(SQRT(CA)/NA)
+ 1 -36+0.253*LOG(
PC02
)
MG CO
RREC
TED
1/3
(NA-K-CA)
LOG
(SQR
T(MG
)/LI
) LOG
(NA/
LI)
15.2
25.3
999.0
999.
0
999.
0
IF THE
WATER
IS BO
ILIN
G OR ST
EAM
IS LO
ST DU
RING
THE
SAMP
LING
OF GROUNDWATERS TH
EN USE
THE
QUARTZ
ADIA
BATI
C TEMPERATURE.
IF THERE
IS NO ST
EAM
LOSS TH
EN USE
THE
QUARTZ
COND
UCTI
VE TEMPERATURE.
The Am
orph
ous
Sili
ca T
emperature S
hould
Be C
onsi
dere
dWhen T
he S
ample
Is S
aturated Wit
h Amorphous
Silica
(THE
DELTA
G OF MINERAL
NO.
275
IS POSITIVE).
IF THE
IN SI
TU TE
MPER
ATUR
E EXCEEDS
150
DEGREES
THEN
THE
NA/K TEMPERATURE
MAY
BE USED.
ALTHOUGH THE
4/3
LOG
TEMP
ERAT
URE
IS GENERALLY
USED
WHEN
THE
TEMPERATURE
IS LE
SS TH
AN 100
DEGREES
IT IS
CONS
IDER
ED LE
SS RELIABLE TH
AN TH
E 1/
3 LO
G TE
MPER
ATUR
E.THE
ACTIVITIES OF H4SI04 AND
WATER
WILL BE
COMPUTED
AT THE
SURF
ACE
TEMP
ERAT
URE
ONLY
IF TH
E HI TEMP
OPTION IS SELECTED.
THE
ORDE
R OF RE
LIAB
ILIT
Y OF TH
E CATION GEOTHERMOMETERS:
MG-L
I>MG
-COR
RECT
ED NA-K-CA>NA-LI>OTHERS
DETAILS
OF THE
EQUATIONS
AND
PARAMETERS CAN
BE
IFO
UND
IN KHARAKA
AND
MARINER,19
88).
\
»-ONt»-
«-*-in^*-*-o^
oooooooooooooooooooooooo o o oooooooooooooooo ooooo
o o fo m «-CM CM CM CM CM t>o
*-ruT-T-M
ro ro ro ro ro
i 2S2ac z _j aeI- O < 3 »
<D O) < - i-i GO GO I U.
ggg(^(^.t.^^^
OC3O_JC3C3<<--,_joo
_JCOZQ-I Q
tO CD I X I Z31 O Z « 2 LU <
-I 2 C3 Z
< « O > 3 3 3
"8 oo»-O'O>*ioro»-co»-rOCMLOiOCMCMN.CMOCM«-
O O O O <- 00 CM
o»-oo»-iO»-»-ir>cM»-«->*iO>*Lnois.cooocM»-ooororO'>ot*1»ocM»-CMiOLr>o»-»-ot*1»»-»->*Oo>*oo>*o
_ _ _ _>*>*N.rO'OCMN.C>rOiON-CMCMCO (orooNj-Lno^-iOOLn^a-o^^a-oo - - »-LncMro^cMco^^cM^c>Ln>ocoococM^c>^»-coco<>»')C>»-cgcMT-N.Lnc>>Ln»-rocM'OC>cO'«o»-»-c>oc>>*>*CM>* >* iro <r-«-iCMCM^^5'Oiroroi «-«- CM N. ^o ro «- «- -CMI T-T-»-«-ro»-»-cMrorocMi
>* O CM CM CM >* COsf ro ro ro ro CM o ro in o o o o ro « \O in in fM M uS OD
N.r«.«*Lr>ininLnoorocM«-Lr>>*>a-N.O>*>*OiOO«-. I . T-S-R-r«-)T-T-T-T-T-T-. T- T- T- <T- ff> «- ICM>»LOLOiCM»*T- T-T-
- LU - O N- CO CO LU Q I fiLU Z LU
i_«i_ z 3 oo o »a:a:ooo««'-'«zt i « oo z o < o -IQSI oo oo z '0: '3ZtJOUUJ-JZOOOOZt I H- I UOOOO^^OOCt- Q < O 00 00 00 LU
OQOQUOOOOOOUOUOU
174
PAGE
-
10
-
SAMP
LE ID
ENT
- Te
st Sa
mple
#1
for
SOLMINEQ.88
- Mo
difi
ed S
eawa
ter
at 25 C
(TEMPERATURE =
25.0
0)
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
PHASE
HALI
TEHALLOYSI
HEUL
ANDI
HUNTITE
HYDRMAGN
HYPHILIT
ILLITE
KAOLINIT
KENY
AITE
K-SPAR
KYANITE
LABRADOR
LARN
ITE
LAUM
ONTI
LEUC
ITE
LIME
MAGA
DITE
MgFe204
MAGNESIT
MgCl2
MARIALIT
MERU
INIT
MICR
OCLN
MIEO
NITE
MIRA
BILT
MONT
ICEL
MORD,
NaMORD
, K
MUSC
OVIT
NACHOLIT
LOG
(AP)
-0.9
737.
193
0.15
8-2
8.96
0-3
6.50
8-3.671
10.5
507.193
-37.
785
1.344
11.3
4015
.368
23.167
12.565
5.47
4-1
9.15
1-2
1.26
026.075
-7.0
29-2
.827
8.12
347.179
1.344
54.7
03-3.761
24.0
11-5
.253
-6.941
16.8
05-3
.509
LOG
(KT)
1.59
08.910
1.41
0-3
0.62
0-3
8.53
011
.800
10.3
406.
230
-25.
000
-0.5
5014
.480
16.250
38.880
14.1
706.
520
32.6
60-1
4.34
021.100
-8.0
5022.150
1.71
068.170
-0.5
5069
.950
-1.0
9030
.150
-3.9
00-7
.600
12.8
80-0
.430
LOG
(AP/KT)
-2.563
-1.7
17-1.252
1.660
2.022
-15.471
0.210
0.963
-12.785
1.89
4-3.140
-0.882
-15.713
-1.605
-1.046
-51.811
-6.920
4.97
51.021
-24.977
6.413
-20.
991
1.89
4-1
5.24
7-2
.671
-6.139
-1.3
530.
659
3.925
-3.079
DELG
-3.4
96-2
.342
-1.7
072.
264
2.75
9-2
1.10
60.
286
1.314
-17.
441
2.58
4-4
.284
-1.203
-21.
436
-2.1
89-1.427
-70.683
-9.441
6.78
71.393
-34.075
8.749
-28.637
2.58
4-2
0.80
1 3.644
-8.375
-1.8
460.
899
5.35
5-4.200
134
136
137
138
139
144
145
146
147
148
149
150
151
152
157
158
160
163
164
165
166
168
169
170
171
173
174
175
177
PHAS
EAgCl
COPP
ERMA
LACH
ITCuO
Cu20
FeC
1 2FeC 13
FeC03
FeO
Fe20
3HEM
Fe20
3MGH
Fe304
Fe(O
H)3
GOET
HITE
Hg(L
)Hg
Cl2(
C)Hg
OMnCl2
MnC0
3MnO
Mn02
PbCl
2Pb
C03
PbOL
ITHR
PbOM
ASIC
PbS04
ZnC0
3Zn
OZnS04
LOG
(AP)
-14.
686
-10.071
-34.
397
7.557
-12.867
-15.166
-20.189
-19.
368
2.15
411
.582
11.5
8213
.736
-36.191
5.78
7-1
4.97
8-2
5.02
3-7.704
-12.
494
-16.
696
4.826
-13.
339
-12.955
-17.157
4.36
54.
365
-14.687
-13.
079
8.44
3-10.609
LOG
(KT)
-9.7
304.250
-33.
580
7.67
0-1.900
7.900
12.340
-10.540
13.500
0.04
06.
400
10.750
-37.200
0.48
0-2.840
-14.110
2.440
8.790
-10.540
17.7
00-8.330
4.820
-12.890
12.550
12.6
90-7.800
-9.870
11.200
3.54
0
LOG
(AP/
KT)
-4.956
-14.321
-0.8
17-0.113
-10.
967
-23.
066
-32.
529
-8.828
-11.346
11.542
5.18
22.
986
1.00
95.
307
-12.
138
-10.913
-10.144
-21.
284
-6.156
-12.
874
-5.0
09-8.135
-4.2
67-8.185
-8.325
-6.887
-3.2
09-2
.757
-14.149
DELG
-6.761
-19.537
-1.1
14-0.155
-14.
962
-31.468
-44.377
-12.
043
-15.479
15.7
477.070
4.07
41.376
7.240
-16.
560
-14.
888
-13.838
-29.036
-8.398
-17.
563
-6.834
-11.
098
5.821
-11.167
-11.358
-9.395
-4.3
78-3.762
19.302
PAGE
-1
-
****
** IN
PUT
DATA ECHO *
*****
cr*
TITL
E : Test
TEMP
0.25
00E+02
0 PH
0.10
92E+
02
0CO
NCEN
TRAT
ION
0 0 0
Na .4000E-0
1Si
02
.OOOOE+00
F .OOOOE+00
Pb0. OOO
OE+0
0
0 0 0
As .OOOOE+00
Acet
ate
.OOOOE+00
ALK
2DC
02.OOOOE+00
ICCS
AT0
TC02M
0. OOO
OE+0
0
0 0 0 0
Sample #
2 HI TEMP
.OOOOE+00
EHM
.9000E+01
UNIT
S :
K .OOO
OE+0
0Ct .200
0E-0
1P04
.OOOOE+00
Zn .OOOOE+00
U0.
OOO
OE+0
0
0 0 0
Oxal
ate
.OOOOE+00
ITIC 0 DH2S
.OOO
OE+0
0IMC03
0 0.
TCH4
M.OOOOE+00
- Mi
x ca
usti
c flood
with
fo
rmat
ion
wate
r DE
NS
PRESS
0.1000E+01
0. OOO
OE+0
0 EHMC
EMFZ
SC
0.9000E+01
0.9000E+01
MOL/L
0 0
Li .OOO
OE+0
0S04
.OOO
OE+0
0N0
30. OOO
OE+0
0
0 0 0 0
Cu .OOO
OE+0
0V .OOO
OE+0
0Su
ccin
ate
.OOOOE+00
DNH3
.OOO
OE+0
0FI
XIT
0 0 0 0 0 0
OOOO
OE+0
0
0TH2SM
.OOO
OE+0
00
Ca .OOO
OE+0
0H2
S.O
OOOE
+00
NH3
.OOO
OE+0
0Mn .OOO
OE+0
0
CH4
.OOO
OE+0
0
DCH4
.OOO
OE+0
0FC
CSAT
0.05
00UROIL
.OOO
OE+0
0
Mg0.
OOO
OE+0
0HC03
0.2000E-01
B0. OOO
OE+0
0Hg
0. OOO
OE+0
0
KC020L
0. OOO
OE+0
0
Fe0.
OOO
OE+0
0C03
0. OOO
OE+0
0Sr
0. OOO
OE+0
0Ag
0. OOO
OE+0
0
KCH40L
0. OOO
OE+0
0
Al0.
OOO
OE+0
0TIC
0. OOO
OE+0
0Ba
0. OOO
OE+0
0
KH2SOL
DSEP
0. OOO
OE+0
0 0.
OOO
OE+0
0Ad
sorp
tion
/Exc
hang
e op
tion
(N
=no)
=
N ^BMfX
ITMI
X 2
0Nu
mber
of mi
xtur
es =
1 st
arti
ng at
fr
acti
on o
f so
luti
on o
ne =
and
read
ing
the
seco
nd water
composition
from
the
data set
foll
owin
g th
is on
e.
LOG
KT TO B
E CH
ANGE
D AT
TEMP =
25.00
0 0.
OOOOE+00
0 0.
OOOO
E+00
0
0.OOOOE+00
LOG
KT TO BE
CH
ANGE
D AT TEMP =
0.00
0 0.
OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+00
ANSI
ANS2
0 0
Num
ber
of
Ad
ditio
na
l M
ine
rals
=
0 FL
AG
FOR
AC
TIV
ITY
C
OEF
F O
F N
EUTR
AL
SP
EC
IES
: 1
FLAG
FO
R A
CT
IVIT
Y
CO
EFF
BY
PIT
ZE
RS
E
QU
ATI
ON
S:
0 FL
AG
S
FOR
CA
LCU
LATI
NG
R
EDO
X S
PE
CIE
S:
Fe
Cu
Hg
Mn
U V
11
11
00
P
RIN
TIN
G
OP
TIO
NS
:IN
FOR
M
RA
TIO
G
EOTH
IP
RIN
10000
TOLE
RA
NC
E
FAC
TOR
S:
CO
NV1
0.5
000 u
sin
g
a ste
p
incre
ment
of:
0 0.
OO
OO
E+0
0
0 0.
OO
OO
E+0
0
0 0.
OO
OO
E+0
0
0 0.
OO
OO
E+0
0
0.0
000
0 0.
OO
OO
E+0
0
0 0.
OO
OO
E+0
0
0.5
00
0E
-04
C
ON
V2
=
IPR
IN2
0 0.5
000E
-04
PAGE
-
2 -
SAMPLE ID
ENT:
- Te
st Sample #2
- Mi
x ca
usti
c flood
with
fo
rmat
ion
water
i cnr
ufti
lUNa
HNlUNb
Ull
10.9
2 9.0000
25.0
0 ANAL=
40.0
000
40.0
000
CALC=
35.7
888
54.8
365
DENS
ITY
AT
TOTAL
DISS
OLVE
D IO
NIC
ACTI
VITY
P
INPUT
T SO
LIDS
(M
G/L)
STRENGTH
OF WA
TER
1.0000
2840
.91
0.05935
0.9987
Tota
l Al
kali
nity
as
HC03
- C03=
CaC03
(MG/L)=0.2383E+04
0.1172E+04 0.1954E+04
0.
(PPM)=0.2383E+04 0.1172E+04 0.
1954
E+04
0.
(MOLALITY)=0.3916E-01
0.1958E-01 0.1958E-01
0.
SPEC
IES
3 5 7 8 9 97
98
137
138
139
140
Na +
Cl
-
HC03
-
H +
OH
- H2
C03
C03
--
NaCl
NaC0
3 -
NaHC03
Na2C03
PPM
MG/L
MO
LALI
TY91
9.60
00
919.
6000
0.4011E-01
0 70
9.06
00
709.0600
0.2006E-01
0 1220.3400
1220
.340
0 0.
2006
E-01
0 0 0 0 0 0 0 0 0
TOTA
L (B
ARS)
1.00
00
rrtKtNLt ^ntU;
0.00
00
-19.
0477
i\-)
---
n - un BH
LHNU
C ^H
ULCO
; -------
HTOT
OHTO
T DI
FFER
ENCE
0.2010E-02
0.1057E-02
0.9526E-03
PH20
PC
02
PH2S
PCH4
(BAR
S)
(BAR
S)
(BARS)
(BAR
S)0.3169E-01 0.
1287
E-05
O.OOOOE+00 O.OOOOE+00
Dissolved
Inor
gani
c Ca
rbon
as
HC03-
H2C03
Sum
of
Sum
of
TIC
Alkalinity
spec
ies
HC03-
C03=
2402
E+03
0.
2282
E+04
0.2690E-02 0.1223E+03
0.
1080
E+0
2402E+03 0.
2282
E+04
0.2690E-02 0.
1223
E+03
0.
1080
E+0
2006
E-01
0.3810E-01 0.
4349
E-07
0.2010E-02 0.
1805
E-0
PPM
.8228E+03
.7067E+03
.1207E+03
.141
9E-0
7 .1793E+02
.2690E-02
.832
7E+0
3 .3816E+01
.3418E+03
.2211E+01
.1171E+00
-
- -UrtLUULHi CU -----------
MG/L
MOLA
LITY
0.82
28E+
03
0.70
67E+
03
0.1207E+03
0.1419E-07
0.1793E+02
0.26
90E-
02
0.8327E+03
0.3816E+01
0.3418E+03
0.2211E+01
0.1171E+00
0.3589E-01
0.19
99E-
01
0.19
83E-
02
0.14
12E-
10
0.10
57E-
02
0.4349E-07
0.1392E-01
0.65
48E-
04
0.4130E-02
0.2639E-04
0.1108E-05
ACTIVITY
0.2905E-01
0.1596E-01
0.16
16E-
02
0.12
02E-
10
0.85
00E-
03
0.43
49E-
07
0.6286E-02
0.6548E-04
0.3400E-02
0.2639E-04
0.11
08E-
05
PNH3
(BAR
S)O.
OOOO
E+00
4 4 1 ACTI
VITY
CO
EFF.
0 0 0 0 0 1 0 1 0 1 1
.809
4 .7981
.814
6 .8
513
.8039
.0000
.4517
.0000
.823
3 .0
000
.0000
-LOG
10
ACTIVITY
1 1 2 10 3 7 2 4 2 4 5
.5368
.7971
.791
6 .9
200
.070
6 .3
616
.2016
.183
9 .4685
.578
5 .9
553
PAGE
3 -
SAMPLE IDEN
T - Te
st S
ample
#2
Mix
caus
tic
flood
with
fo
rmat
ion
wate
r(TEMPERATURE =
25.00)
PHAS
E52
HALI
TE
81
NACH
OLIT
82
NATR
THRM
LOG
(AP)
-3.334
-4.3
28
-5.2
76
LOG
(KT)
1.590
-0.4
30
-0.0
10
LOG
(AP/
KT)
4.9
24
3.8
98
-5.2
66
DELG
-6.7
17-5
.318
-7.184
PHAS
E83
NATR
ON
118
Na20
127
TRON
A
LOG
(AP)
-5.281
18.7
66
-9.605
LOG
(KT)
-0.880
67.430
-0.630
LOG
(AP/
KT)
-4.401
-48.664
-8.975
DELG
-6.004
-66.
390
-12.244
****
*Thi
s so
luti
on i
s to
be mi
xed
with t
he n
ext
solution.....
CO
PAGE
-4
-
****** IN
PUT
DATA
ECHO **
****
TITL
E : Mc
Murr
ay Fo
rmat
ion
Wate
r TE
MP
HITEMP
DENS
0.2500E+02
O.
OOOO
E+00
0.
1000
E+01
PH
EH
M EH
MC
0.7100E+01
0.90
00E+
01
0.9000E+01
CONC
ENTR
ATIO
N UNITS
: MG
/L
0 0 0 0 0
Na .157
2E+0
5Si
02
.OOO
OE+0
0F .OOOOE+00
Pb .OOO
OE+0
0As .OOO
OE+0
0Acetate
O.OOOOE+
00ALK
2 DC02
O.OOOOE+
00
0
ICCS
AT0
TC02
M.OOOOE+00
0K .OOOOE+00
Cl0.
2670
E+05
0 0 0 0 0 0
P04
.OOO
OE+0
0Zn .OOOOE+00
U .OOOOE+00
Oxal
ate
.OOOOE+00
ITIC
0 DH2S
.OOO
OE+0
0IM
C03
0 0.
TCH4M
.OOOOE+00
0 0 0 0 0 0 0
Li .OOOOE+00
S04
.120
0E+0
2N03
.OOO
OE+0
0Cu .OOO
OE+0
0V .OOO
OE+0
0Su
ccin
ate
.OOO
OE+0
0
DNH3
.OOO
OE+0
0FI
XIT
0 0 0 0 0 0 0 0
OOOOOE+00
0TH
2SM
.OOO
OE+0
00
PRES
S .OOOOE+00
EMFZSC
.900
0E+0
1
Ca .8010E+03
H2S
.OOOOE+00
NH3
.OOOOE+00
Mn .OOOOE+00
CH4
.OOOOE+00
DCH4
.OOOOE+00
FCCS
AT0.0500
UROIL
.OOOOE+00
Mg0.4430E+03
HC03
0.4000E+03
BO.OOOOE+00
HgO.OOOOE+00
KC02
0LO.
OOOO
E+00
FeO.
OOOO
E+00
C03
O.OOOOE+00
SrO.OOOOE+00
AgO.OOOOE+00
KCH40L
O.OO
OOE+
00
AlO.OOOOE+00
TIC
O.OOOOE+00
BaO.OOOOE+00
KH2SOL
O.OOOOE+00
DSEP
O.OO
OOE+
00Adsorption/Exchange
option (N=no) =
NIB
MIX
ITMI
X 2
0Because
the Mi
option w
as chosen in
the
prev
ious
data set,
the MIXING in
form
atio
n wi
ll no
t be
re
ad fr
om th
is data set.
LOG
KT TO
BE CHANGED
AT TE
MP =
25.00
0 O.
OOOO
E+00
0 O.OOOOE+00
0 O.
OOOO
E+00
LOG
KT TO BE CHANGED
AT TEMP =
0.00
0 O.
OOOO
E+00
0
O.OO
OOE+
00
0 O.
OOOO
E+00
ANSI
AN
S2
0 0
Numb
er of
Ad
diti
onal
Minerals =
0 FLAG FO
R ACTIVITY CO
EFF
OF NE
UTRA
L SPECIES:
1 FLAG FO
R ACTIVITY CO
EFF
BY PITZERS
EQUATIONS:
0 FLAGS
FOR
CALC
ULAT
ING
REDO
X SPECIES:
Fe
Cu
Hg
Mn
U V
111100
PRIN
TING
OP
TION
S:IN
FORM
RATIO
0 0
TOLE
RANCE
FACT
ORS:
CONV1
0 O.OOOOE+00
0 O.OOOOE+00
0 O.
OOOO
E+00
0 O.OOOOE+00
0 O.
OOOO
E+00
0 O.OOOOE+00
GEOTH
0IPRIN1
00.5000E-04
CONV2
=
IPRI
N2 0 0.5000E-04
PAG
E -
5 -
SAM
PLE
IDE
NT
:-
McM
urra
y Fo
rmat
ion
Wat
er
00 o
rntn
1 tnr
UHI 1UN&
HNlUNd
Ul
7.10
9.0000
25.00
ANAL=
760.
1885
759.9151
CALC
= 72
4.09
43
723.2526
DENSITY
AT
TOTA
L DISSOLVED
IONIC
ACTI
VITY
P
TOTAL
INPUT
T SOLIDS (M
G/L)
STRENGTH
OF W
ATER
(BAR
S)1 .
0000
4407
6.00
0.79028
0.9743
1.0000
Tota
l Al
kali
nity
as
as
rrcKcmc incw/uj
0.2734
0.84
17
--
n - un
BH
LANL
C in
uLca
j --
----
-
HTOT
OH
TOT
DIFFERENCE
0.74
00E-02
0.52
10E-
06
0.73
99E-
02
- -
- -ODCCfl miT- -
-----
----
PH20
PC02
PH2S
PCH4
(BAR
S)
(BAR
S)
(BAR
S)
(BAR
S)PNH3
(BAR
S)0.3169E-01 0.2089E-01 O.OOOOE+00 O.OOOOE+00 O
.OOOOE+00
Diss
olve
d Inorganic
Carbon
HC03
- H2
C03
Sum
of
Sum
ofHC03-
C03=
CaCO
3 TI
C Al
kali
nity
species
HC03-
C03=
(MG/
L)=0.3684E+03
0.18
12E+
03 0
.302
1E+0
3 0.7874E+02 0
.3683E+03
0.3525E+02 0
.3623E+03
0.30
19E+
01
(PPM
)=0.
3684
E+03
0.
1812
E+03
0.3
021E
+03
0.7874E+02 0
.368
3E+0
3 0.3525E+02 0
.3623E+03
0.3019E+01
(MOLALITY)=0.6317E-02
0.31
58E-
02 0
.3158E-02
0.6858E-02 0
.6316E-02
0.5945E-03 0.6211E-02 0.
5263
E-04
1 2 3 5 6 7 8 9 55
56 57 61 97 98 103
120
121
123
124
137
138
139
140
141
142
281
282
SPECIES
Ca ++
Mg +
+Na +
Cl
S04
--HC
03
-H
+OH
-
acuj
CaHC03 +
CaOH
+
CaS0
4H2
C03
C03
--HS
04
-MgC03
MgHC03 +
MgOH +
MgS0
4Nad
NaC0
3 -
NaHC03
Na2C03
Na2S04
NaS0
4 -
Cad +
CaCl
2
PPM
MG/L
MO
LALI
TY
PPM
801.
0000
801.0000
0.
209
1 E- 01
0.55
06E+
0344
3.00
00
443.
0000
0.
1906
E-01
0.
4360
E+03
1572
0.00
00
15720.0000
0.71
53E+
00
0.15
04E+
0526
700.
0000
26
700.
0000
0.
7878
E+00
0.
2547
E+05
12.0000
12.0000
0.13
07E-
03
0.4775E+01
400.
0000
40
0.00
00
0.68
58E-
02
0.28
43E+
030.
9476
E-04
0.31
76E-
020.1059E+01
0.19
14E+
020.
4347
E-03
0.71
64E+
000.
3525
E+02
0.53
10E+
000.7800E-05
0.72
37E+
000.
2300
E+02
0.12
55E-
010.
1124
E+01
0.16
67E+
040.1844E+01
0.68
75E+
020.8641E-02
0.74
19E+
010.
9979
E+00
0.44
87E+
030.
1144
E+02
MG/L
MOLALITY
0.5506E+03
0.43
60E+
030.
1504
E+05
0.25
47E+
050.4775E+01
0.2843E+03
0.94
76E-
040.3176E-02
0.10
59E+
01
0.1914E+02
0.43
47E-
030.
7164
E+00
0.35
25E+
020.
5310
E+00
0.78
00E-
050.
7237
E+00
0.23
00E+
020.
1255
E-01
0.1124E+01
0.16
67E+
040.1844E+01
0.68
75E+
020.8641E-02
0.7419E+01
0.99
79E+
000.
4487
E+03
0.1144E+02
0.1437E-01
0.18
76E-
010.
6845
E+00
0.75
16E+
000.
5200
E-04
0.48
75E-
020.
9834
E-07
0.1954E-06
0.1WE-04
0.19
80E-
030.7966E-08
0.55
05E-
050.
5945
E-03
0.92
57E-
050.
8406
E-10
0.89
78E-
050.
2820
E-03
0.31
77E-
060.
9768
E-05
0.2984E-01
0.2324E-04
0.85
61E-
030.8529E-07
0.54
64E-
040.
8769
E-05
0.62
14E-
020.1078E-03
ACTI
VITY
0.33
88E-
020.4776E-02
0.45
54E+
000.4638E+00
0.8143
E-05
0.33
43E-02
0.79
43E-07
0.12
55E-
060.
1107
E-04
0.
1459
E-03
0.58
71E-08
0.5505
E-05
0.59
45E-
030.1969
E-05
0.57
65E-
100.
8978
E-05
0.18
76E-
030.2386E-06
0.9768
E-05
0.29
84E-
010.1669E-04
0.85
61E-
030.
8529
E-07
0.54
64E-
040.6297
E-05
0.41
34E-
020.
1078
E-03
COEFF.
0.2358
0.2546
0.66
530.
6171
0.1566
0.6858
0.8077
0.64
251.
0000
0.7369
0.7369
1.00
001.
0000
0.2126
0.6858
1.00
000.
6653
0.75
121.
0000
1.00
000.
7182
1.00
001.
0000
1.00
000.
7182
0.6653
1.00
00
-LOG10
ACTI
VITY
2.4700
2.3210
0.34
160.3336
5.0892
2.47
597.1000
6.9013
4.95
59
3.83
598.
2313
5.2592
3.22
595.7059
10.2392
5.04
683.
7268
6.6223
5.0102
1.5253
4.7775
3.0675
7.06
914.2625
5.2009
2.38
363.9673
PAGE
-
6 -
SAMPLE IDENT
- McMurray Fo
rmat
ion Water
(TEMPERATURE =
25.0
0)
11 17 22 24 41 42 51 52 55 56 57 67
PHASE
ANHY
DRIT
ARAG
ONIT
BRUC
ITE
CALC
ITE
DOLO
MITE
DSORD
GYPS
UMHALITE
HUNT
ITE
HYDRMAGN
HYPHILIT
LIME
LOG
(AP)
-7.559
-8.1
76-1
6.12
4-8
.176
-16.
203
-16.
203
-7.582
-0.6
75-3
2.25
6-4
2.55
9-3
.137
-16.
681
LOG
(KT)
-4.330
-8.3
40-1
1.47
0-8.480
-18.
060
-16.
520
-4.600
1.590
-30.
620
-38.
530
11.8
0032.660
LOG
(AP/
KT)
-3.229
0.164
-4.654
0.30
41.
857
0.317
-2.982
-2.265
-1.6
36-4.029
-14.
937
-49.
341
OELG
-4.4
05"
0.22
4-6
.349
0.41
52.534
0.433
-4.0
68-3
.090
-2.2
32-5.496
-20.
378
-67.
313
70 71 76 81 82 83 85 95 99 118
125
127
PHASE
MAGN
ESIT
MgCl2
MIRA
BILT
NACH
OLIT
NATR
THRM
NATRON
NESQ
UHON
PERI
CLAS
PORT
LAN
Na20
THENARDI
TRONA
LOG
(AP)
-8.027
-2.988
-5.8
86-2.817
-6.4
00-6
.502
-8.061
11.8
68-1
6.27
313
.505
-5.7
72-9
.229
LOG
(KT)
-8.050
22.150
-1.090
-0.430
-0.010
-0.880
-5.350
21.510
-5.420
67.430
-0.290
-0.630
LOG
(AP/
KT)
0.023
-25.
138
-4.7
96-2.387
-6.3
90-5
.622
-2.7
11-9
.642
-10.
853
-53.
925
-5.4
82-8
.599
DELG
0.032
-34.
295
-6.5
42-3
.257
-8.7
18-7
.670
-3.6
98-1
3.15
4-1
4.80
6-7
3.56
6-7
.479
-11.
731
oo
PAGE
- 7
-
****
Mixing
of the
two
prev
ious
so
luti
ons
in t
he fo
llow
ing
prop
orti
ons:
Initial
fraction o
f solution
1 =
0.50
00Number o
f mixtures =
1
and
the
incr
emen
t be
twee
n so
luti
ons
= 0.
5000
00 10
PAGE
-8
-
SAMP
LE ID
ENT:
- MI
XTUR
E OF Te
st Sa
mple
#2
- Mi
x caustic
flo
AND
McMurray F
orma
tion
Wat
er
(PROPORTIONS:
1= 0.
50 2
= 0.
50)
rn
en
i tnr
LA
I luro
ANIUNU
Ull-l-tKtNLt ^HcU/LJ
9.67
9.00
00
25.0
0 ANAL=
407.
6953
40
7.55
57
CALC
= 386.6610
395.5575
DENS
ITY
AT
TOTAL
DISSOLVED
IONI
C AC
TIVI
TY
P IN
PUT
T SO
LIDS
(M
G/L)
ST
RENG
TH
OF WATER
1.0
000
23897.61
0.41
785
0.9865
Total
Alka
lini
ty a
s
TOTAL
(BAR
S)1.0000
as
0.13
96
-8.8
965
- - n
- un
BA
LANU
L ^n
uLta
j ..
....
.
HTOT
OHTO
T DI
FFER
ENCE
0.
4307
E-02
0.
1313
E-03
0.4176E-02
PH20
PC02
PH2S
PCH4
(BAR
S)
(BAR
S)
(BAR
S)
(BAR
S)0.3169E-01 0.4037E-04 O.OOOOE+00 O.OOOOE+00
Diss
olve
d Inorganic
Carbon
HC03
- H2C03
Sum
ofSu
m of
PNH3
(BAR
S)O.OOOOE+00
HC03-
C03=
CaC0
3 TIC
Alkalinity
spec
ies
HC03-
C03=
(MG/L)=0.1354E+04
0.6659E+03 0.1111E+04
0.1578E+03 0.1328E+04 0.7566E-01 0.2564E+03 0.5360E+03
(PPM
)=0.1354E+04 0.6659E+03 0.1111E+04
0.1578E+03 0.1328E+04 0.7566E-01 0.2564E+03 0.5360E+03
(MOLALITY)
=0.2274E-01
0.1137E-01 0.1137E-01
0.1346E-01 0.
2261
E-01
0.
1250
E-05
0.4305E-02 0.
9151
E-02
1 2 3 5 6 7 8 9 55 56 57 61 97 98 103
120
121
123
124
137
138
139
140
141
142
281
282
SPEC
IES
Ca ++
Mg ++
Na +
Cl
-S0
4 --
HC03
-
H +
OH
-CaC03
CaHC
03 +
CaOH
+
CaS04
H2C0
3C03
--HS
04
-Mg
C03
MgHC03 +
MgOH +
MgS04
NaCl
NaC03
-Na
HC03
Na2C
03Na
2S04
NaS04
-CaCl +
CaCl2
PPM
MG/L
MOLA
LITY
PPM
408.9541
408.9541
0.1045E-01
0.2642E+03
226.
1756
22
6.17
56
0.9531E-02
084
76.0
056
8476.0056
0.3777E+00
013978.8458
1397
8.84
58
0.4039E+00
06.1267
6.1267
0.6534E-04
080
1.50
70
801.
5070
0.1346E-01
0 0 0 0 0 0 0
.1913E+03
.817
8E+0
4.1360E+05
.356
2E+0
1.2
229E
+03
.2598E-06
.1178E+01
.174
5E+0
3.8310E+01
.9093E-01
.373
3E+0
00.7566E-01
0 0 0 0 0 0 0 0 0 0 0 0 0 0
.135
5E+0
3.1933E-07
.107
2E+0
3.8
752E
+01
.2369E+01
.526
5E+0
0.5
203E
+03
.303
1E+0
3.3
059E
+02
.796
8E+0
0.2163E+01
.518
6E+0
0.1333E+03
.1951E+01
MG/L
MOLA
LITY
0.26
42E+
030.1913E+03
0.8178E+04
0.1360E+05
0.3562E+01
0.2229E+03
0.2598E-06
0.1178E+01
0.17
45E+
030.
8310
E+01
0.9093E-01
0.3733E+00
0.7566E-01
0.13
55E+
030.1933E-07
0.10
72E+
030.8752E+01
0.23
69E+
010.
5265
E+00
0.52
03E+
030.3031E+03
0.3059E+02
0.79
68E+
000.
2163
E+01
0.5186E+00
0.1333E+03
0.1951E+01
0.6752E-02
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.8060E-02
.3644E+00
.393
0E+0
0.3
799E
-04
.374
2E-0
2.2640E-09
.709
6E-0
4.1
787E
-02
.842
2E-0
4.1
632E
-05
.280
9E-0
5.1250E-05
.231
3E-0
2.2
040E
-12
.130
3E-0
2.1051E-03
.587
4E-0
4.4
481E
-05
.912
1E-0
2.3
741E
-02
.373
0E-0
3.7702E-05
.156
0E-0
4.4462E-05
.1808E-02
. 180
1 E- 04
ACTI
VITY
0 0 0 0
.184
5E-0
2.2
337E
-02
.251
3E+0
0.2
569E
+00
0.76
33E-
050.2
639E
-02
0.2115E-09
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.477
2E-0
4.1
787E
-02
. 6271 E-
04
.1215E-05
.2809E-05
.1250E-05
.583
6E-0
3.1
439E
-12
.130
3E-0
2.7
246E
-04
.4440E-04
.4481E-05
.912
1E-0
2.2
731E
-02
.373
0E-0
3.7702E-05
.156
0E-0
4.3258E-05
.124
7E-0
2. 1
801 E- 04
nu i
i v
i i
i
COEF
F.0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1
.273
2.2
900
.6896
.653
8.2
009
.705
2.8
012
.6726
.000
0.7447
.744
7.0
000
.000
0.2
523
.705
2.0
000
.689
6.7
558
.000
0.0
000
.730
0.0
000
.000
0.0
000
.730
0.6
896
.000
0
-LOG10
ACTI
VITY
2.73
412.
6313
0.5998
0.59
025.1173
2.57
859.6747
4.3213
2.74
804.2027
5.91
545.
5514
5.9032
3.2339
12.8
420
2.88
524.1399
4.3526
5.3487
2.0399
2.5636
3.4283
5.11
344.8069
5.4871
2.90
434.
7445
PAGE
-
9 -
SAMP
LE ID
ENT
- MI
XTUR
E OF
Tes
t Sample #2
- Mix
caus
tic
flo AN
D Mc
Murr
ay F
ormation Water
(PROPORTIONS:
1= 0
.50
2= 0
.50)
(TEM
PERA
TURE
=
25.00)
11 17 22 24 41 42 51 52 55 56 57 67
PHASE
ANHY
DRIT
ARAGONIT
BRUCITE
CALCITE
DOLOMITE
DSORD
GYPSUM
HALITE
HUNTITE
HYDRMAGN
HYPH
ILIT
LIME
LOG
(AP)
-7.851
-5.9
68-1
1.27
4-5
.968
-11.
833
-11.
833
-7.8
63 1
.190
-23.
564
-31.
519
-3.9
14 2
2.08
9
LOG
(KT)
-4.3
30-8
.340
-11.470
-8.4
80 18.060
-16.
520
4.6
001.
590
-30.620
-38.
530
11.8
0032.660
LOG
(AP/KT)
-3.521
2.37
20.
196
2.51
26.227
4.687
-3.263
-2.7
807.
056
7.01
1-1
5.71
4-54.749
DELG
-4.804
3.23
60.
268
3.427
8.495
6.394
-4.452
-3.793
9.627
9.56
5-21.438
-74.
691
70 71 76 81 82 83 85 95 99 118
125
127
PHAS
EMAGNESIT
MgCl
2MI
RABI
LTNACHOLIT
NATRTHRM
NATRON
NESQUHON
PERI
CLAS
PORT LAN
Na20
THENARDI
TRONA
LOG
(AP)
-5.8
65-3
.812
-6.376
-3.1
78-4.439
-4.493
-5.883
16.712
-11.377
18.144
-6.3
17-7
.624
LOG
(KT)
-8.050
22.1
50-1.090
-0.430
0.010
-0.880
5.350
21.5
10-5.420
67.430
-0.290
-0.6
30
LOG
(AP/KT)
2.185
-25.962
-5.286
-2.748
-4.4
29-3.613
-0.533
-4.7
98-5
.957
-49.286
-6.0
27-6.994
DELG
2.981
-35.
418
-7.211
-3.7
49-6.043
-4.928
-0.7
27-6
.546
-8.1
26-67.238
-8.222
-9.541
00 p-
PAGE
-
1 -
****** IN
PUT
DATA
EC
HO *
*****
TITL
E : Te
st Sa
mple
#3
TEMP
HI TEM
P 0.2500E+02
O.OOOOE+00
PH
EHM
0.8200E+01
0.50
00E+
00CONCENTRATION
UNIT
S :
Na0.1077E+05
Si 02
0.42
80E+
01F
0.1390E+01
Pb0.5000E-04
As0.
4000
E-02
Acetate
0.1000E+00
ALK
2 DC02
O.OOOOE+00
ICCS
AT0
TC02
MO.OOOOE+00
K0.3991E+03
Cl0.
1935
E+05
P04
0.60
00E-
01Zn
0.4900E-02
UO.
OOOO
E+00
Oxalate
0.10
00E+
00me 0 DH2S
O.OOOOE+00
IMC0
30
0.TCH4M
O.OO
OOE+
00
- Di
ssol
ve A
northite to
DENS
PRESS
0.1023E+01
O.OO
OOE+
00
EHMC
EMFZSC
0.9000E+01
0.9000
E+01
PPMLi
0.18
10E+
00S0
40.
2712
E+04
N03
0.2900E+00
Cu0.
7000
E-03
VO.
OOOO
E+00
Succ
inat
e0.
1000
E+00
DNH3
O.OO
OOE+
00FI
XIT
OOOO
OE+0
0TH
2SM
O.OO
OOE+
00
0 0 0 0 0 0 0
Ca .412
3E+0
3H2
S.OOOOE+00
NH3
.3000E-01
Mn .2000E-03
CH4
.1000E+00
DCH4
.OOOOE+00
FCCSAT
0.0500
UROI
L.OOOOE+00
saturate w
ith
Gibbsite in
sea
wate
r
Mg0.1292E+04
HC03
0.1234E+03
B0.
4450
E+01
Hg0.
3000
E-04
KC020L
O.OO
OOE+
00
Fe0.2000E-02
C03
O.OOOOE+00
Sr0.
8140
E+01
Ag0.4000E-04
KCH40L
O.OOOOE+00
Al0.2000E-02
TIC
O.OOOOE+00
Ba0.2000E-01
KH2SOL
DSEP
O.OOOOE+00
O.OOOOE+00
Adsorption/Exchange
option (N
=no)
=
NIB
MIX
ITMIX
1 0
MINERAL
TO B
E DI
SSOL
VED/
PREC
IPIT
ATED
TO S
ATUR
ATIO
N: GI
BBSI
TEMINERAL
TO BE D
ISSOLVED/PRECIPITATED:
LOG
KT TO
BE
CHANGED
AT TEMP =
25.0
00
O.OO
OOE+
00
0 O.
OOOO
E+00
LOG
KT TO
BE CH
ANGE
D AT TEMP =
0.00
0 O.
OOOOE+00
0 O.
OOOO
E+00
ANSI
ANS2
0
0Nu
mber
of Ad
diti
onal
Mi
nera
ls =
0 FL
AG FOR
ACTI
VITY
CO
EFF
OF NE
UTRA
L SP
ECIES:
FLAG
FO
R AC
TIVI
TY COEFF
BY PI
TZER
S EQ
UATI
ONS
FLAG
S FO
R CALCULATING
REDO
X SP
ECIE
S:
Fe
Cu
Hg
Mn
U V
111100
PRIN
TING
OPTIONS:
INFORM
RATIO
0 0
TOLERANCE
FACT
ORS:
CO
NV1
ANOR
THIT
0 O.OOOOE+00
0 O.OOOOE+00
Inde
x nu
mber
: In
dex
numb
er:
0 O.OOOOE+00
0 O.OOOOE+00
49 13
0 O.OOOOE+00
0 O.
OOOO
E+00
0 O.OOOOE+00
0 O.
OOOO
E+00
GEOT
H IPRIN1
0 0
0.5000E-04
CO
NV2
=
IPRIN2 0
0.50
00E-
04
Tota
l mo
les
of AN
ORTH
IT PP
T/DI
SS
(See pages
2-10 of
Test Sample #
1)
to ac
hiev
e sa
tura
tion
: -.3076E-07
PAGE
-
SAMP
LE ID
ENT:
- Te
st Sample #
3 - Dissolve A
northite to s
aturate
with
Gibbsite in
se
awat
er
ANOR
THIT
PPT/DISS
rn
en
i enr
8.20
9.0000
25.00
DENSITY
AT
TOTA
L DISSOLVED
INPU
T T
SOLIDS (M
G/L)
1.0
230
35906.27
ANAL
= CA
LC=
IONIC
STRE
NGTH
0.64945
UH 1
lUNd
619.6745
577.6363
ACTI
VITY
OF WA
TER
0.9809
Total
Alkalinity as
HC03
-
(MG/L)
=0.1
423E
+03
(PPM
)=0.
1391
E+03
(M
OLAL
ITY)=0.2363E-02
1 2 3 4 5 6 7 8 9 rr 12 13 14 15 16 18 21 22 23 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40
SPECIES
Ca ++
Mg +
+Na
+
K +
Cl
-S04
- HC03
-H
+OH
-H4ST04
Si 02
Ag +
Al +3
Ba +
+Cu
+Fe
++
Hg
++Li +
Mn +
+Pb
++
Sr +
+Zn +
+H2
As03
-P04
-3F
-B(
OH)3
NH3
AlF
++AI
F2 +
AIF3
AIF4
-Al(OH)++
Al(OH)2+
Al(O
H)4-
C03=
CaC03
0.6998E+02 0.
1167
E+03
0.6841E+02 0.
1141
E+03
0.1181E-02 0.
1181
E-02
A LI A 1
V7Crri
PPM
412.
1292.
10770.
399.
19350.
2712
.12
3.
2988
0001
0007
1000
0013
0002
4007
4.27
640. 0. 0. 0. 0. 0. 0. 0. 0. 8. 0. 0. 0. 1. 25. 0.
0000
0004
0200
0007
0020
0000
1810
0002
0001
1400
0049
0067
0600
3900
4540
0300
MWHLI I
.C.U ----------
MG/L
MOLALITY
421.
7817
1321.7160
1101
7.71
02408.2793
1979
5.05
042774.3761
126.
2389
4.3748
0.0000
0.00
040.
0205
0.0007
0.00
200.
0000
0.18
520.0002
0.0001
8.3272
0.00
500.0068
0.06
141.
4220
26.0394
0.0307
0.1066E-01
0.55
08E-
010.4855E+00
0.10
58E-
010.
5656
E+00
0.29
26E-
010.2096E-02
0.73
76E-
040.3843E-09
0.1529E-07
0.1509E-06
0.1142E-07
0.3711E-07
0.15
50E-
090.
2703
E-04
0.3773E-08
0.25
01E-
090.
9628
E-04
0.7768E-07
0.5281E-07
0.6548E-06
0.75
83E-
040.4266E-03
0.1826E-05
MNIUNO
D 1
I
618.2648
569.7726
P TO
TAL
(BARS)
1.00
00
as
rrcK
CNOt
^n
cu,
1.4097
7.8638
f\-)
---
n -
un b«
LANL
t <.
nuLc
a; -------
HTOT
OHTOT
DIFFERENCE
0.2198E-
02
0.1350E-02
0.84
77E-
03
....
....
....
. -.
--rKC
-)-)UKC
- ...............
PH20
PC02
PH2S
PCH4
(BAR
S)
(BARS)
(BARS)
(BARS)
PNH3
;'BARS)
0.3169E-01 0.4780E-03 O.OOOOE+00 0.5252E-02 0.
1644
E-08
Diss
olve
d In
orga
nic
Carbon
HC03
- H2
C03
Sum
of
Sum
ofTIC
Alkalinity
species
HC03
- C03=
0.24
85E+
02 0.
1374
E+03
0.
8644
E+00
0.
1130
E+03
0.
1216
E+02
0.
2429
E+02
0.1343E+03 0.8450E+00 0.
1105
E+03
0.
1189
E+02
0.2096E-02 0.
2287
E-02
0.
1412
E-04
0.1877E-02 0.2053E-03
.
/* A 1 fl II
A Tff\
* r*T T \
H f\f
PPM
0.28
44E+
030.
1121
E+04
0.1024E+05
0.3825E+03
0.1874E+05
0.1203E+04
0.8534E+02
0.7635E-05
0.4017E-01
0.66
10E-
--01
0.1039E-08
0.8504E-12
0.18
15E-
010.2749E-07
0.16
67E-
020.7474E-18
0.17
92E+
000.5864E-06
0.99
62E-
060.7551E+01
0.28
85E-
020.
7212
E-03
0.59
21E-
050.
7672
E+00
0.22
05E+
02
0.14
07E-
090.6684E-09
0.20
34E-
090.2415E-11
0.92
53E-
090.6635E-06
0.14
01E-
02
OHLUULH IC.U -----------
MG/L
MOLALITY
0.2909E-»-03
0.11
47E+
040.
1048
E+05
0.3913E-t-03
0.1917E+05
0.12
31E+
040.
873C
E-t-
020.7810E-05
0.41
10E-
010.6762E+01
0.1063E-08
0.86
99E-
120.
1857
E-01
0.2812E-07
0.17
05E-
020.7646E-18
0.1833E-t-00
0.5999E-06
0.1019E-05
0.77
25E+
010.
2952
E-02
0.73
78E-
030.
6058
E-05
0.7848E-fOO
0.2255E+02
0.1440E-09
0.6838E-09
0.20
81E-
090.
2470
E-11
0.9466E-09
0.6787E-06
0.1433E-02
0.73
53E-
020.
4779
E-01
0.4618E+00
0.1014E-01
0.54
78E+
000.1298E-01
0.14
49E-
020.7850E-08
0.24
48E-
050.
7127
E-04
0.99
82E-
140.
3266
E-16
0.13
70E-
060.
4483
E-12
0.3094E-07
0.3861E-23
0.26
77E-
040.1106E-10
0.4983E-11
0.89
31E-
040.4575E-07
0.5708E-08
0.6462E-10
0.41
85E-
040.
3695
E-03
0.31
72E-
140.
1066
E-13
0.25
10E-
140.2430E-16
0.21
80E-
130.
1127
E-10
0.1528E-07
ACTI
VITY
0.1807E-C2
Q.1261E-01
0.3099E+00
0.6357E-02
0.3434E+00
0.2189E-02
0.10
00E-
020.6307E-08
0.1592E-05
0.7127E-04
0.6000E-14
0.27
90E-
170.2849E-07
0.2695
E-12
0.76
04E-
C80.8033
E-24
0.1973E-04
0.2719E-11
0.9393
E-12
0.1858E-C4
0.1124E-C7
0.3830
E-C8
0.1749E-11
0.2721E-04
0.3695
E-03
0.7085E-15
0.7674
E-14
0.2510E-14
0.16
77E-
160.4869E-14
0.81
15E-
110.1054E-07
ML 1
i V 1
1
I
COEF
F.0.
2458
0.2640
C.67
100.
6269
Q.62
690.
'!68
73.
6S99
0.80
34-i
i,4>
5XX1
1.CO
OO
0.60
11-V..0854
0.2C
809.6011
G.24
583.
2080
0.73
730.2458
0."885
0.2080
0.2458
0.6710
0.02
710.6501
1.00
00
0.2234
0.7198
1.00
000.6899
0.2234
0.7198
0.6899
-LOG
10
ACTIVITY
2.7429
1.8992
0.5088
2.19
680.
4641
2.6598
3.00
008.2002
5.79S2
4.14
71
14.2219
17.5
544
7.5453
12.5
695
8.1189
24.0
951
4.7048
11.5656
12.0272
4.7310
7.94
918.4168
11.7572
4.5653
3.4323
15.1497
14.1150
14.6
003
16.7756
14.3
125
11.0907
7.97
71
PAG
E -
12
-
41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 71 72 73 74 75 76 77 78 89 90 91 92 96 97 98 99 100
103
104
105
106
107
108
109
113
114
115
116
117
118
SPECIES
AIS04
+AI
S04)
2-Ag
ClAgCl2
-AgCl3
--AgCl4
-3Ag
S04
-CH3COO
-H3AS03
BaC0
3BaHC03 +
BaOH
+
BaSO
ACa
C03
CaHC03 +
CaOH +
CaP0
4 -
CaHP04
CaH2
P04+
CaS0
4CuC
ICu
Cl2
-CuC 13 --
Fed +
FeC
1 2Fe
HP04
H3P04
FeOH
+
Fe(OH)2
FeOOH
-Fe
S04
B(OH)4
-H2
S104
--H3
Si04
-
HAs03
--HF H2
C03
C03
--HP
04 --
H2P04
-HS
04
-HN
03Hg
Cl +
HgCl2
HgCl3
-Hg
Cl4
- HgSOA
KG I
KC03
-
KHS0
4KS
04
-KH
P04
-Li OH
......---------- -HNHLT£CL»- ----------
PPM
MG/L
MOLALITY
0. 0. 0. 0. 0. 0. 0.0.1000
0.1023
0.17
55E-
05
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
PPM
1051
E-11
3179E-12
5954E-06
3801 E- 04
3041E-04
4054
E-05
7863E-10
7225
E-01
5724E-02
1272
E-04
2238
E-03
3236
E-07
2867
E-02
2148E+01
3081E+01
2967E-02
1689E-02
2333
E-02
2206
E-04
1037
E+03
4431 E- 05
5353E-03
1188
E-02
1012
E-03
6764E-12
1070
E-06
2032E-09
3805
E-04
4100
E-07
3536
E-07
6566E-03
4344E+01
2150
E-03
2286E+00
1174
E-07
5013E-05
8450E+00
1923
E+01
1074
E-01
3136E-03
1670
E-03
4329E-10
1665
E-12
4517E-06
3216E-04
0.14
76E-
040. 0. 0. 0. 0. 0. 0.
1264
E-19
2070
E+02
7990E-01
7274
E-05
1957E+02
5416
E-04
1098E-05
-LALLULftltU- '
MG/L
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.1075E-11
.325
2E-1
2. 609
1 E-
06
.3889E-04
.311
1E-0
4.4148E-05
.804
4E-1
0.7391E-01
.585
6E-0
2.1
302E
-04
.229
0E-0
3.3310E-07
.293
3E-0
2.2198E+01
.3152E+01
.303
5E-0
2.1
728E
-02
.238
6E-0
2.2
257E
-04
.106
1E+0
3.4
533E
-05
.547
6E-0
3.1
215E
-02
.103
5E-0
3.6
920E
-12
.1095E-06
.2079E-09
.389
2E-0
4.4
194E
-07
.3618E-07
.671
7E-0
3.4444E+01
0.2199E-03
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
.233
9E+0
0.1201E-07
.5129E-05
.864
4E+0
0.1967E+01
.1099E-01
.320
8E-0
3.1709E-03
.442
9E-1
0.1
704E
-12
.462
1E-0
6.3
290E
-04
.151
0E-0
4.1
293E
-19
.211
8E+0
2.8174E-01
. 7441 E- 05
.200
2E+0
2.5
541E
-04
.1124E-05
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0MOLALITY
.885
2E-1
7.1504E-17
.4305E-11
.2204E-09
.147
1E-0
9.1683E-10
.399
6E-1
5.1
268E
-05
.471
0E-0
7.6681E-10
.1169E-08
.217
3E-1
2.1
273E
-07
.222
5E-0
4.3
158E
-04
.538
6E-0
7.1
296E
-07
.177
7E-0
7.1668E-09
.7893E-03
.4639E-10
.4126E-08
.7244E-08
.1149E-08
.553
1E-1
7.7
306E
-12
.214
9E-1
4.5412E-09
.4728E-12
.412
5E-1
2.4
480E
-08
.571
0E-0
4.2
368E
-08
. 249
1 E- 05
.9366E-13
.259
7E-0
9.1412E-04
.332
0E-0
4.1
160E
-06
.335
1E-0
8.1
783E
-08
.712
0E-1
5.7311E-18
.172
4E-1
1.1086E-09
.4469E-10
.441
6E-2
50.2878E-03
0.83
55E-
060 0 0 0
.5536E-10
.150
0E-0
3.4
155E
-09
.4754E-10
ACTIVITY
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
6107E-17
1038E-17
4305E-11
1479
E-09
3060E-10
6631E-12
2681
E-15
8749E-06
4710
E-07
6681E-10
7846E-09
1536E-12
1273
E-07
2225
E-04
2328
E-04
3971
E- 07
9330E-08
1777
E-07
1201
E-09
7893E-03
4639E-10
2769E-08
1507
E-08
7708E-09
5531
E-17
7306E-12
2149
E-14
3827E-09
4728E-12
2917E-12
4480
E-08
3463E-04
5288E-09
1671
E-05
1948
E-13
2597E-09
1412
E-04
7416E-05
2413
E-07
2412
E-08
1230
E-08
7120
E-15
4906
E-18
1724
E-11
7285E-10
9296E-11
4416E-25
0.2878E-
030.
5539
E-06
0. 0. 0. 0.
5536E-10
1080
E-03
2991 E- 09
4754E-10
All 1
VI 1
T
COEF
F.
0.6899
0.6899
1.0000
0.6710
0.2080
0.0394
0.6710
0.6899
1.0000
1.0000
0.6710
0.70
711.0000
1.0000
0.7373
0.7373
0.7198
1.00
000.7198
1.0000
1.0000
0.6710
0.2080
0.6710
1.0000
1.0000
1.0000
0.70
711.0000
0.70
711.0000
0.6065
0.2234
0.6710
0.2080
1.0000
1.0000
0.2234
0.2080
0.7198
0.6899
1.0000
0.6710
1.0000
0.6710
0.2080
1.0000
1.00
000.6629
1.00
000.7198
0.7198
1.00
00
- LI
A» 1
U
ACTIVITY
17.2
142
17.9840
11.3660
9.83
0110
.514
312
.178
415.5717
6.0580
7.3270
10.1
751
9.1053
12.8
135
7.89
514.6528
4.6330
7.40
118.
0301
7.7503
9.9205
3.1028
10.3336
8.5577
8.8219
9.11
3117
.257
212
.136
314.6678
9.41
7112.3253
12.5
351
8.3488
4.4605
9.27
675.7769
13.7
104
9.5855
4.8502
5.1298
7.6174
8.6176
8.9100
15.1
475
18.3093
11.7634
10.1376
11.0317
25.3550
3.5409
6.2566
10.2568
3.9666
9.5242
10.3230
PAG
E13
-
oo
oo
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
146
147
148
149
150
151
152
154
155
156
157
158
159
160
161
162
163
164
165
166
228
229
230
231
232
233
234
SPECIES
LiS04
-MgC0
3MgHC03 +
MgF
+MgOH +
MgS0
4MgP04
-MgHPOA
MgH2P04+
MnCl
+
MnCl
2MnCl
3 -
MnCl4
--MnHC03 +
MnS04
MnHPOA
MnOH +
N03
-NaCl
NaC0
3 -
NaHC03
Na2C03
Na2S04
NaS0
4 -
NaHPOA
-NaF
NH4
+NH
40H
PbCt +
PbCl
2PbCl
3 -
PbCl
4 --
PbS0
4Sr
OH
-SrC03
SrHC03 +
SrS0
4Zn
Cl +
ZnCl
ZZnCl
3 -
ZnCl
4 --
ZnSO
AAI
F5 --
AIF6
-3
HgOH
+
Hg(OH)2
CH3COOH
AlAce
++BaAce
+Ca
Ace
+Cu
Ace
+FeAce
+Fe
(Ace
)2
................ -H
|MML j £CU -...-..-...
-.--..-....
PPM
MG/L
MO
LALI
TY
PPM
0.2650E-01
0.72
68E+
010.1818E+02
0.1373E+01
0.42
45E+
000.8054E+03
0.1041E-01
0.4552E-01
0.1363E-03
0.38
39E-
130.3094E-10
0.5098E-09
0.54
72E-
080.
8443
E-08
0.1578E-06
0.3633E-10
0.12
33E-
080.
2900
0.
2967
0.
4847
E-05
0.
2900
E+00
0.8478E+03
0.47
61E+
010.1413E+02
0.1522E-01
0.9321E+03
0.1838E+03
0.23
26E-
020.
4503
E-01
0.3015E-Q1
0.3151E-02
0.2893E-05
0.27
75E-
050.
7843
E-06
0.61
02E-
060.3383E-06
0.20
68E-
040.
1297
E-01
0.61
51E-
010.
1142
E+01
0.14
73E-
020.7271E-03
0.2461E-03
0.22
76E-
030.6217E-03
0.5912E-14
0.29
64E-
170.1154E-13
0.34
14E-
080.1840E-04
0.77
88E-
150.
9235
E-07
0.3723E-02
0.31
38E-
110.2133E-06
0.1230E-13
- -
- -OrtLOULMI CU
MG/L
0.27
11E-
010.
7436
E+01
0.18
60E+
020.1405E+01
0.4343E+00
0.8240E+03
0.1065E-01
0.4656E-01
0.1394E-03
0.39
27E-
130.3165E-10
0.5215E-09
0.55
98E-
080.
8637
E-08
0.16
14E-
060.
3717
E-10
0.12
62E-
080.
2967
E+00
0.8673E+03
0.48
71E+
010.1445E+02
0.1557E-01
0.95
36E+
030.1880E+03
0.23
79E-
020.4607E-01
IL3085E-01
0.3224E-02
0.2960E-05
0.2838E-05
0.80
23E-
060.6242E-06
0.34
61E-
060.
2115
E-04
0.13
27E-
010.
6292
E-01
0.11
69E+
010.
1507
E-02
0.74
38E-
030.
2518
E-03
0.2328E-03
0.63
60E-
030.
6048
E-14
0.3032E-17
0.11
80E-
130.3493E-08
0.18
82E-
040.
7967
E-15
0.9447E-07
0.38
09E-
020.3210E-11
0.21
82E-
060.
1258
E-13
MOLA
LITY
0.2666E-06
0.8933E-04
0.2209E-03
0.3286E-04
0.1065E-04
0.69
34E-
020.9045E-07
0.39
22E-
060.1164E-08
0.44
01E-
180.
2548
E-15
0.32
76E-
140.2882E-13
0.75
46E-
130.
1083
E-11
0.24
95E-
150.1776E-13
0.4847E-05
0.1503E-01
0.5945E-04
0.17
43E-
030.
1488
E-06
0.68
01E-
020.1600E-02
0.2026E-07
0.11
11E-
050.1732E-05
0.93
19E-
070.1236E-10
0.1034E-10
0.25
92E-
110.
1812
E-11
0.1156E-11
0.2048E-09
0.91
04E-
070.4289E-06
0.64
45E-
050.1514E-07
0.55
29E-
080.
1485
E-08
0.1138E-08
0.39
91E-
080.5023E-19
0.2179E-22
0.5495E-19
0.1508E-13
0.31
75E-
090.9382E-20
0.48
74E-
120.
3892
E-07
0.26
53E-
160.1924E-11
0.73
28E-
19
ACTI
VITY
0.1885E-06
0.89
33E-
040.
1482
E-03
0.2267E-04
0.79
92E-
050.
6934
E-02
0.65
11E-
070.3922E-06
0.8380E-09
0.2953E-
180.
2548E-
150.
2198
E-14
0.5996E-
140.5063E-13
0.10
83E-
110.
2495
E-15
0.1192E-13
0.3039
E-05
0.1503E-01
0.4279E-04
0.1743E-03
0.1488E-06
0.68
01E-
020.
1152
E-02
0.1458E-07
0.1111E-05
n ir
uic-
n^V r V*t
"~rE
v^
0.93
19E-
070.
8292
E-11
0.10
34E-
100.
1739
E-11
0.3769
E-12
0.11
56E-
110.1448E-09
0.9104E-07
0.28
78E-
060.6445
E-05
0.10
16E-07
0.5529E-08
0.99
66E-09
0.2368E-09
0.3991E-08
0.10
45E-
190.8586
E-24
0.36
87E-19
0.15
08E-
130.
3175E-09
0.17
69E-
200.
3362
E-12
0.26
85E-07
0.18
30E-
160.1327E-11
0.73
28E-19
«LI 1 VI
1 I
COEF
F.
0.70
711.
0000
0.6710
0.6899
0.7505
1.00
000.7198
1.00
000.7198
0.6710
1.00
000.6710
0.2080
0.6710
1.0000
1.00
000.6710
0.6269
1.00
000.7198
1.00
001.0000
1.0000
0.7198
0.7198
1.00
000.6044^
1.0000
0.6710
1.00
000.6710
0.2080
1.0000
0.70
711.0000
0.6710
1.00
000.6710
1.0000
0.6710
0.2080
1.00
000.2080
0.0394
0.6710
1.00
001.
0000
0.18
850.6899
0.6899
0.68
990.6899
1.0000
- LUU IU
ACTI
VITY
6.72
464.0490
3.8292
4.6445
5.0974
2.1590
7.1864
6.4065
9.07
6718.5297
15.5938
14.6580
14.2
221
13.2956
11.9654
15.6029
13.9237
5.5173
1.8229
4.3686
3.75
886.
8274
2.1674
2.9386
7.8362
5.95
41S
oao/
« yot*t
7.0306
11.0813
10.9855
11.7596
12.4238
11.9370
9.83
927.0408
6.54
105.1908
7.99
328.2573
9.0015
9.62
568.
3989
19.9809
24.0662
19.4333
13.8215
9.4982
20.7524
12.4734
7.5710
16.7375
11.8770
19.1350
PAG
E -
14
-
235
236
237
238
239
240
241
244
245
246
247
248
249
250
251
252
253
255
256
257
258
259
261
262
263
264
265
266
267
268
269
270
271
272
274
275
276
277
278
279
280
281
282
284
285
288
289
292
293
294
SPECIES
KAce
MgAce
+Na
Ace
PbAce +
Pb(Ace)2
Pb(A
ce)3
SrAc
e +
ZnAc
e +
Zn(Ace)2
C204 --
HC20
4 -
H2C2
04AlOxy
+Al
Oxy)
2-BaOx
yCaOx
yFe
Oxy
KOxy
-
MgOxy
MnOx
yMnOxy)2
MnOxy)3
NaOx
y -
PbOx
ySrOxy
ZnOxy
C4H404--
HC4H
404-
H2C4
H404
AlSu
c +
AlSuc)2-
BaSu
cCa
Suc
FeSu
cKS
uc
-MgSu
cMn
Suc
NaSu
c -
PbSuc
SrSu
cZn
Suc
CaCl +
CaCl
2SiF6 --
CH4
Gas
PbC0
3Pb
OH +
ZnHC
03 +
ZnOH +
Zn(OH)2
..-.....-.....-- -MNHLI^CLI- ----------
............
PPM
MG/L
MOLA
LITY
PP
M0.
2146
E-03
0.2288E-01
0.1264E-01
0.55
68E-
100.9851E-15
0.1775E-20
0.4820E-04
0.13
91E-
030.
3411
E-13
0.1000
0.1023
0.1177E-05
0.9439E-02
0.34
66E-
090.3114E-13
0.1114E-13
0.48
82E-
160.
5714
E-08
0.55
46E-
020.6582E-06
0.1406E-03
0.1002E+00
0.93
11E-
100.7180E-03
0.15
50E-
060.9487E-02
0.36
50E-
090.2710E-04
0.32
82E-
050.1000
0.1023
0.89
29E-
06
0.64
05E-
010.2139E-05
0.40
99E-
080.1423E-13
0.9109E-16
0.93
18E-
070.3479E-02
0.2554E-07
0.3516E-03
0.2449E-01
0.84
78E-
110.1536E-01
0.1184E-09
0.4665E-04
0.72
53E-
070.1773E+03
0.3377E+01
0.11
77E-
280.1000
0.10
23
0.64
60E-
05
0.10COE+00
0.1796E-04
0.3184E-04
0.53
75E-
040.2324E-03
OJ038E-04
---UALUULAItl
MG/L
0.2195E-03
0.23
40E-
010.1293E-01
0.56
96E-
100.
1008
E-14
0.18
15E-
200.
4930
E-04
0.14
23E-
030.
3490
E-13
0.9656E-02
0.35
46E-
090.
3186
E-13
0.1140E-13
0.49
94E-
160.5845E-08
0.56
73E-
020.6734E-06
0.1438E-03
0.10
25E+
000.9525E-10
0.7345E-03
0.1585E-06
0.9705E-02
0.3734E-09
0.2773E-04
0.33
57E-
050.
6553
E-01
0.2189E-05
0.41
93E-
080.1456E-13
0.93
19E-
160.
9532
E-07
0.35
59E-
020.2613E-07
0.35
97E-
030.
2505
E-01
0.86
73E-
110.
1571
E-01
0.12
11E-
090.
4772
E-04
0.74
19E-
070.
1814
E+03
0.3455E+01
0.1204E-28
0.10
23E+
000.
1837
E-04
0.32
58E-
040.
5499
E-04
0.23
78E-
030.1062E-04
;......--...
MOLALITY
0.22
66E-
080.2844E-06
0.15
96E-
060.2168E-15
0.3139E-20
0.4785E-26
0.3406E-09
0.11
59E-
080.
1927
E-18
0.1111E-06
0.40
35E-
140.
3585
E-18
0.10
04E-
180.2492E-21
0.26
28E-
130.
4487
E-07
0.4742E-11
0.11
46E-
080.9241E-06
0.67
50E-
150.
3760
E-08
0.6353E-12
0.88
57E-
070.
1281
E-14
0.15
99E-
090.
2217
E-10
0.57
19E-
060.1894E-10
0.35
97E-
130.
1031
E-18
0.65
99E-
210.
3811
E-12
0.23
09E-
070.
1540
E-12
0.2348E-08
0.1808E-06
0.51
38E-
160.
1145
E-06
0.3794E-15
0.23
73E-
090.
4143
E-12
0.2433E-02
0.31
53E-
040.
8586
E-34
0.6460E-05
0.69
66E-
100.1472E-09
0.4408E-09
0.29
24E-
080.
1083
E-09
ACTI
VITY
0.22
66E-
080.1962E-06
0.1596E-06
0.1495E-15
0.3139E-20
0.3301E-26
0.2350E-09
0.7997E-09
0.1927E-18
0.24
82E-
070.2784E-14
0.3585E-18
0.6926E-19
0.1719
E-21
0.26
28E-
130.
4487
E-07
0.4742E-11
0.7908E-09
0.9241E-06
0.6750E-15
0.8398E-09
0.13
15E-
140.6110E-07
0.12
81E-
140.
1599E-09
0.2217E-10
0.12
77E-
060.1307E-10
0.3597E-13
0.7112E-19
0.45
53E-
210.
3811
E-12
0.23
09E-
070.1540E-12
0.1620E-08
0.1808E-06
0.5138E-16
0.7898E-07
0.37
94E-
150.
2373E-09
0.4143E-12
0.1633E-02
0.3153E-04
0.17
86E-
34O.OOOOE+00
0.6966E-10
0.9877E-10
0.2958E-09
0.19
62E-
080.
1083E-09
MUI 1 VI 1
T
COEF
F.1.0000
0.68
991.0000
0.68
991.0000
0.68
990.
6899
0.68
991.0000
0.2234
0.68
991.0000
0.68
990.
6899
1 .0
000
1.0000
1.0000
0.68
991 .0
000
1.0000
0.2234
0.00
210.
6899
1.0000
1.0000
1.0000
0.2234
0.6899
1.0000
0.68
990.
6899
1.0000
1.0000
1.0000
0.6899
1.0000
1.0000
0.68
991.0000
1.0000
1.0000
0.67
101.0000
0.2080
1.0000
1.0000
0.6710
0.67
100.
6710
1.0000
-LUU iv
ACTIVITY
8.64
486.7072
6.79
6815.8252
20.5033
26.4813
9.6290
9.0971
18.7
151
7.60
5114.5553
18.4
455
19.1595
21.7646
13.5804
7.34
8111
.324
19.
1019
6.03
4315.1707
9.07
5814.8809
7.2139
14.8923
9.79
6110.6542
6.89
3710.8839
13.4
441
19.1480
21.3417
12.4190
7.6366
12.8126
8.7904
6.74
2816.2892
7.1025
15.4209
9.62
4612.3827
2.78
714.5012
34.7
481
0.0000
10.1570
10.0054
9.5291
8.7072
9.9654
PAGE
-
15
-
SAMPLE ID
ENT
Test
Sample #
3 Di
ssol
ve A
northite to s
aturate
with Gibbsite in se
awat
er
ANORTHIT PP
T/DI
SS(TEMPERATURE =
25.00)
vo
o
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53
PHAS
EADULARIA
AKER
MANI
ALBITE
ALBITE L
ALBITE H
ALUN
ITE
AMESI14A
ANAL
CIME
ANDA
LUSI
ANDE
SITE
ANHY
DRIT
ANNI
TEAN
ORTH
ITAP
ATCH
LRAP
ATFL
URAPATHYDX
ARAG
ONIT
AUGITE
BARI
TEBO
EHMI
TEBR
UCIT
EBY
TOWN
ITCA
LCIT
ECE
LEST
ITCH
ALCE
DOCHAM; ZA
CHLO
R, 7
CHLO
R,
1CR
YSOT
ILC-
ENST
ATC-
PTIL
.NC-
PTIL
,KC-
PTIL
,CC-
PTIL
.MCO
RUND
UMCR
ISTO
BACR
ISTO
BBDI
CKIT
EDI
OPSI
DEDO
LOMI
TEDSOR
DENSTATIT
FAYA
LITE
FLUO
R I TE
FORS
TERI
GIBB
S AM
GIBB
SITE
GREENALI
GYPS
UMHA
LITE
HALL
OYSI
LOG
(AP)
0.642
33.530
2.33
02.
330
2.33
0-1
1.02
938
.906
6.452
9.937
9.18
0-5
.403
25.453
19.4
56-4
9.45
0-5
3.55
2-5
4.78
4-7
.873
23.586
-10.
205
7.029
-13.
496
16.031
-7.8
73-7.391
-4.1
3026.466
74.107
74.107
35.2
0110
.363
-11.
929
-15.
305
-13.
654
-12.
810
14.067
-4.1
30-4
.130
5.79
019.881
-14.
902
-14.
902
10.3
6312.416
-11.
874
24.8
55-3
4.94
9-3
4.94
916
.542
-5.4
20-0
.973
5.790
LOG
(KT)
1.26
045.460
2.50
03.
110
4.43
0-2
.790
38.630
6.05
016
.570
12.7
30-4
.330
29.140
25.830
-66.
150
-68.
340
-60.
390
-8.3
4032.560
-9.9
606.
950
-11.
470
18.6
00-8
.480
-6.4
30 3
.730
29.030
71 .940
68.570
32.030
11.2
90-7
.900
-15.
000
-9.3
00-5
.000
21.400
-3.5
40-2
.940
6.17
019
.630
-18.
060
-16.
520
11.4
7019
.430
-10.
960
29.070
-34.
420
-34.
920
22.580
-4.6
001.590
8.91
0
LOG
(AP/
KT)
-0.618
-11.
930
-0.1
70-0
.780
-2.1
00-8.239
0.27
60.402
-6.633
-3.5
50-1
.073
-3.687
-6.3
7416.700
14.788
5.60
60.
467
-8.9
74-0
.245
0.079
-2.026
-2.569
0.60
7-0.961
-0.4
00-2
.564
2.16
75.
537
3.171
-0.927
-4.029
-0.3
05-4.354
-7.8
10-7
.333
-0.5
90-1
.190
-0.3
800.251
3.15
81.618
-1.107
-7.014
-0.9
14-4
.215
-0.529
-0.0
29-6.038
-0.8
20-2.563
-3.1
20
DELG
-0.8
43-1
6.27
5-0
.232
-1.0
64-2
.865
-11.239
0.37
60.
548
-9.049
-4.8
43-1
.464
-5.0
30-8.696
22.782
20.175
7.647
0.63
7-12.243
-0.3
340.108
-2.7
63-3
.505
0.82
8-1.311
-0.5
46-3.497
2.95
67.
554
4.32
6-1
.265
-5.496
-0.4
16-5.940
-10.
655
-10.
004
-0.8
05-1
.624
-0.5
190.343
4.30
92.208
-1.511
-9.569
-1.246
-5.7
50-0.722
-0.039
-8.238
-1.118
-3.496
-4.257
74 75 76 77 78 79 80 81 82 83 84 85 92 93 94 95 96 97 98 99 100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
122
123
124
125
126
127
128
129
130
131
PHAS
EMICROCLN
MIEO
NITE
MIRA
BILT
MONT
ICEL
MORD,
NaMORD,
KMU
SCOV
ITNACHOLIT
NATR
THRM
NATR
ONNE
PHAL
INNE
SQUH
ONOL
IGOC
LAPA
RAGO
N I
PARAGASI
PERI
CLAS
PHIL
LIPS
PHLO
GPIT
PHLO
GPTF
PORT
LAN
POTA
SS I
PREH
NITE
PYRO
PHYL
QUAR
TZSA
NIDI
NESA
PO,
NaSA
PO,
KSAPO,
HSA
PO,
CaSAPO,
MgSEPIOLIT
SILI
CAAM
SILICGEL
SILL
IMAN
SMEC Ca
SMEC K
SMEC
Mg
SMEC Na
Na20
SPINEL
STILBITE
SrC03
SYLV
ITE
TALC
THENARDI
TREMOLIT
TRONA
VIVI
ANIT
WA IRAKI!
WITH
ERIT
WOLL
ASTO
LOG
(AP)
0.642
50.4
94-3.761
24.0
12-5.956
-7.644
14.7
01-3.509
-6.156
-6.231
10.591
-7.0
545.755
16.389
89.2
6714.493
1.47
744
.112
18.598
-14.339
11.998
28.9
66-2.462
-4.1
300.642
33.1
7032.613
30.632
32.885
33.024
33.1
31-4
.130
-4.130
9.93
73.
468
3.20
13.609
3.75
815.374
28.560
-1.2
55-9.861
-2.661
26.9
49-3.677
66.7
11-9.673
-47.938
11.178
-12.
675
9.51
9
LOG
(KT)
-0.5
5069.950
-1.0
9030.150
-3.9
00-7
.600
12.880
-0.4
30-0
.010
-0.8
8013.520
-5.350
8.73
014.390
100.790
21.5
103.300
37.2
2016.730
-5.4
2084
.120
32.0
20-0.100
-3.930
1.180
26.880
26.550
25.850
26.820
26.800
31.5
20-2.700
-2.710
15.730
6.14
05.
860
6.04
06.
120
67.4
3036.460
1.410
-9.270
0.91
021
.130
-0.290
60.8
90-0.630
-36.000
17.330
-8.630
12.600
LOG
(AP/
KT)
1.192
-19.456
-2.671
-6.1
38-2.056
-0.0
441.
821
-3.079
-6.146
-5.351
-2.929
-1.7
04-2
.975
1.99
9-1
1.52
3-7.017
-1.8
236.
892
1.86
8-8.919
-72.122
-3.0
54-2.362
-0.2
00-0.538
6.290
6.063
4.78
26.
065
6.224
1.61
1-1
.430
-1.420
-5.7
93-2
.672
-2.659
-2.431
-2.3
62-52.056
-7.9
00-2
.665
-0.591
-3.5
715.819
-3.387
5.821
-9.043
-11.938
-6.1
52-4
.045
-3.081
DELG
1.626
-26.
542
-3.6
44-8
.374
-2.8
05-0
.060
2.48
4-4
.200
-8.3
84-7
.300
-3.9
96-2
.325
-4.0
592.727
-15.
720
-9.5
73-2
.486
9.402
2.54
8-1
2.16
8-9
8.39
1-4.166
-3.2
23-0
.273
-JL734
8.581
8.271
6.523
8.27
48.
491
2.197
-1.951
-1.9
38-7
.903
-3.6
45-3.627
-3.3
16-3
.222
-71.
016
-10.
777
-3.6
35-0
.806
-4.8
727.938
-4.621
7.94
2-12.337
-16.287
-8.3
92-5.519
-4.2
04
PAGE
-
16
-
SAMP
LE ID
ENT
- Te
st Sample #
3 - Dissolve A
northite to
sat
urat
e wi
th Gi
bbsi
te in s
eawater
ANORTHIT PPT/DISS
(TEM
PERA
TURE
=
25.0
0)
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73
PHASE
HEULANDI
HUNT
ITE
HYDRMAGN
HYPH
ILIT
ILLITE
KAOL
INIT
KENY
AITE
K-SP
ARKY
ANIT
ELABRADOR
LARN
ITE
LAUM
ONTI
LEUC
ITE
LIME
MAGA
DITE
MAGN
ESIT
MgCL
2MA
RIAL
ITME
RWIN
IT
LOG
(AP)
-1.2
46-2
8.96
0-3
6.50
7-3.671
8.93
65.790
-37.
788
0.64
29.
937
14.2
4523
.168
11.162
4.772
-19.
152
-21.
263
-7.029
-2.8
276.017
47.179
LOG
(KT)
1.41
0-3
0.62
0-3
8.53
011.800
10.3
406.
230
-25.
000
-0.5
5014
.480
16.250
38.8
8014.170
6.52
032
.660
-14.
340
-8.050
22.150
1.710
68.1
70
LOG
(AP/
KT)
. -2.656
1.66
02.
023
-15.
471
-1.4
04-0
.440
-12.
788
1.192
-4.5
43-2.005
-15.
712
-3.0
08-1.748
-51.
812
-6.9
231.
021
-24.
977
4.30
7-2
0.99
1
DELG
-3.6
242.
265
2.760
-21.
106
-1.916
-0.6
00-1
7.44
61.626
-6.198
-2.735
-21.
435
-4.1
04-2
.384
-70.
683
-9.4
441.393
-34.
075
5.875
-28.
636
132
134
139
144
146
147
158
160
163
164
165
168
169
170
171
173
174
175
177
PHAS
EZO
ISIT
EAg
ClCu20
FeC
1 2FeC03
FeO
HgCl2(C)
HgO
MnCl2
MnC03
MnO
PbCl
2Pb
C03
PbOL
ITHR
PbOM
ASIC
PbS0
4Zn
CCG
ZnO
ZnS04
LOG
(AP)
36.0
04-1
4.68
6-8
.747
-9.0
47-1
3.24
98.273
-25.
023
-7.7
03-1
2.49
4-1
6.69
54.826
-12.
955
-17.
157
4.36
54.365
-14.
687
-13.
079
8.443
-10.
609
LOG
(KT)
42.1
00-9
.730
-1.9
007.
900
-10.
540
13.5
00-1
4.11
02.440
8.790
-10.
540
17.7
00-4
.820
-12.
890
12.5
5012
.690
-7.800
-9.8
7011
.200
3.540
LOG
(AP/
KT)
-6.096
-4.9
56-6
.847
-16.
947
-2.709
-5.227
-10.
913
-10.
143
-21.
284
-6.155
-12.
874
-8.135
-4.267
-8.185
-8.325
-6.8
87-3.209
-2.7
57-1
4.14
9
DELG
-8.317
-6.7
61-9
.341
-23.
120
-3.6
95-7
.131
-14.
888
-13.
838
-29.
036
-8.3
97-1
7.56
3-1
1.09
9-5.821
-11.
167
-11.
358
-9.3
96-4.378
-3.7
61-1
9.30
2
PAGE
-
1 -
****** INPUT
DATA
ECHO *
*****
TITLE
: Te
st Sample #
4TE
MP
HI TEMP
0.25
00E+
02
0.OOOOE+00
PH
EHM
0.8200E+01
0.5000E+00
CONCENTR
ATIO
N UN
ITS
:Na
K
0.1077E+05
Si 02
0.4280E+01
F 0.1390E+01
Pb
0.50
00E-
04As
0.40
00E-
02Ac
etat
e0.
1000
E+00
ALK
2 DC02
0.OO
OOE+
00
ICCSAT
0TC02M
0.OO
OOE+
00
- Ca/Mg
exch
ange in
se
awat
erDE
NS0.1023E+01
EHMC
0.9000E+01
PPMLi
0.1810E+00
S04
0.2712E+04
N03
0.2900E+00
Cu
0.7000E-03
V 0.OOOOE+00
Succ
inat
e 0.1000E+00
PRES
S0.OOOOE+00
EMFZ
SC0.
9000
E+01
Ca
0.4123E+03
H2S
0.1000E+02
NH3
0.OO
OOE+
00Mn
0.2000E-03
0.3991E+03
Cl
0.19
35E+
05P0
4 0.6000E-01
Zn
0.4900E-02
U 0.OOOOE+00
Oxal
ate
Succ
inat
e CH4
0.1OOOE+00
0.1OOOE+00
0.1O
OOE+
00
ITIC
0 DH2S
DN
H3
DCH4
0.OOOOE+00
0.OO
OOE+
00
0.OO
OOE+
00
IMC0
3 FIXIT
FCCSAT
0 O.OOOOOE+00
0.00
00
TCH4M
TH2S
M WROIL
0.OO
OOE+
00
0.OOOOE+00
0.OOOOE+00
Adsorption/Exchange
option (N=no) =
E Su
rfac
e Ch
emis
try
inpu
t fo
r Io
n Ex
change:
CEC
TARE
A SA
REA
INSP
0.
1000
E+03
0.OOOOE+00
0.OOOOE+00
2 NAME
CHAR
GE
Fract. Surf.
Sites
0.5000E+00
0.50
00E+
00*
Coef
«-0
.100
00E+
01-0
.100
00E+
01
= 0.00
.OOO
OE+0
0
CaX2
0 MgX2
0K
= 1.
1.00
00
CaX2
1.00
00
MgX2
IBMIX
ITMIX
0 0
LOG
KT TO BE CH
ANGE
D AT
TE
MP =
25.00
0 0.OOOOE+00
0 0.OOOOE+00
LOG
KT TO
BE
CH
ANGE
D AT TEMP
0 0.OOOOE+00
0 0
ANSI
ANS2
0 0
Numb
er of
Ad
diti
onal
Mi
nera
ls =
0 FL
AG FOR
ACTI
VITY
COEFF
OF NE
UTRA
L SP
ECIE
S:
FLAG
FO
R AC
TIVI
TY CO
EFF
BY PI
TZER
S EQ
UATI
ONS
FLAGS
FOR
CALCULATING
REDOX
SPEC
IES:
Fe
Cu
Hg
Mn
U V
111100
PRIN
TING
OPTIONS:
INFORM
RATI
O0
0 TOLERANCE
FACT
ORS:
CO
NV1
Mg
0.1292E+04
HC03
0.1234E+03
B 0.
4450
E+01
Hg
0.3000E-04
KC020L
0.OOOOE+00
Fe
0.20
00E-
02C0
3 0.OOOOE+00
Sr
0.81
40E+
01Ag
0.4000E-04
KCH40L
0.OO
OOE+
00
ID 1 2-0.20000E+01
-0.2
0000
E+01
Al
0.OO
OOE+
00TIC
0.OO
OOE+
00Ba
0.2000E-01
KH2SOL
0.OO
OOE+
00DS
EP
0.OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+
00
0 0.OOOOE+00
0 0.OOOOE+00
0 0.OOOOE+00
GEOTH
IPRIN1
0 0
0.5000E-04
CONV
2 =
IPRI
N2 0 0.5000E-04
PAGE
-2
-
SAMP
LE ID
ENT:
- Te
st Sa
mple
#4
- Ca
/Mg
exchange in s
eawater
KH
tni tnK
8.20
0.5000
25.00
DENS
ITY
AT
TOTAL
DISS
OLVE
D IN
PUT
T SO
LIDS
(M
G/L)
1.0230
3591
6.54
ANAL
= CA
LC=
IONIC
STRENGTH
0.64
960
mi IUNO
619.
6745
577.6281
ACTIVITY
OF W
ATER
0.98
09
Tota
l Al
kali
nity
as
HC03
- C0
3=
CaC03
(MG/
L)=0.1594E+03
0.7840E+02 0
.1308E
+03
(PPM)=0.1559E+03 0
.7664E+02
0.1278E+03
(MOLALITY)=0.2647E-02
0.1324E-02 0
.1324E-02
1 2 3 4 5 6 7 8 9 11 12 13 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 33 43 44 45 46 47
SPEC
IES
Ca +
+Mg
++
Na +
K +
Cl
-S04
--HC
03
-H
+OH
-H4
Si04
Si 02
Ag +
Ba +
+Cu
+Cu
++
Fe +
+Fe +
3Hg
++Li
+
Mn +
+Mn
+3
Pb +
+Sr
++
Zn +
+H2
As03
-P04
-3F
-B(
OH)3
H2S
AgCl
AgCl
2 -
AgCl
3 --
AgCl
4 -3
AgS04
-
PPM
412.3000
1292
.000
010
770.
0000
399.1000
1935
0.00
0027
12.0
000
123.4000
4.28
000.
0000
0.02
000.0007
0.00
20
0.00
000.
1810
0.00
02
0.0001
8.14
000.
0049
0.00
670.
0600
1.39
0025.4540
10.0
000
HnHL.IttL>
MG/L
MOLALITY
421.7829
1321.7160
1101
7.71
00408.2793
1979
5.05
002774.3760
126.
2382
4.37
840.
0000
0.02
050.
0007
0.00
20
0.00
000.
1852
0.00
02
0.0001
8.32
720.
0050
0.00
680.
0614
1.4220
26.0
394
10.2
300
0.10
66E-
010.5508E-01
0.48
55E+
000.1058E-01
0.56
57E+
000.
2926
E-01
0.2096E-02
0.73
82E-
040.3843E-09
0.15
09E-
060.
1142
E-07
0.37
12E-
07
0.15
50E-
090.
2703
E-04
0.37
73E-
08
0.2501E-09
0.96
28E-
040.
7769
E-07
0.52
81E-
070.
6548
E-06
0.75
83E-
040.4266E-03
0.3041E-03
HN1UNO
Uil
618.
2648
570.0555
P TOTAL
(BARS)
1.0000
as
rrtKtmt intuj
1 .4097
7.5726
n-)
---
H - un BALAN^t
^nuLta;
----
---
HTOT
OH
TOT
DIFFERENCE
0.2514E-
02
0.1350E-02
0.1163E-02
nncc
e*i me
...-.----..-..___ fucj^um; ----------------
PH20
PC
02
PH2S
PC
H4
(BARS)
(BARS)
(BARS)
(BARS)
PNH3
(BARS)
0.3169E-01 0.
4782
E-03
0.1449E-03
0.52
52E-
02 O
.OOO
OE+0
0
Dissolved
Inorganic
Carb
onHC
03-
H2C03
Sum
of
Sum
ofTI
C Alkalinity
species
HC03-
C03=
0.
2485
E+02
0.1
373E
+03
0.86
48E+
00 0
.1130E+03
0.12
16E+
02
0.24
29E+
02 0.1343E+03 0
.845
4E+0
0 0.
1105
E+03
0.
1188
E+02
0.
2096
E-02
0.2287E-02 0
.1413E-04
0.18
77E-
02 0
.2052E-03
PPM
0.28
44E+
030.
1121
E+04
0.10
24E+
050.
3825
E+03
0.18
74E+
050.
1203
E+04
0.85
34E+
020.
7638
E-05
0.40
16E-
010.
6615
E+01
0.1039E-08
0.1815E-01
0.23
94E-
090.
3648
E-03
0.1268E-08
0.10
09E-
120.
7470
E-18
0.17
92E+
000.
5864
E-06
0.88
86E-
230.
9758
E-12
0.7551E+01
0.26
91E-
100.
7209
E-03
0.5920E-05
0.76
72E+
000.
2205
E+02
0.36
85E+
000.
5954
E-06
0.38
01E-
040.
3041
E-04
0.4055E-05
0.78
63E-
10
v*nL.VAJL.n
i c.u -----------
MG/L
MOLALITY
0.2909E+03
0.11
47E+
040.
1048
E+05
0.3913E+03
0.19
17E+
050.
1231
E+04
0.87
30E+
020.
7814
E-05
0.41
08E-
010.
6767
E+01
0.1063E-08
0.1857E-01
0.24
50E-
090.3732E-03
0.12
97E-
080.1032E-12
0.7642E-18
0.18
33E+
000.
5998
E-06
0.9091E-23
0.99
83E-
120.7725E+01
0.27
53E-
100.
7375
E-03
0.60
56E-
050.
7848
E+00
0.22
56E+
020.3770E+00
0. 6091 E- 06
0.38
89E-
040.
3111
E-04
0.41
48E-
050.8043E-10
0.73
53E-
020.
4779
E-01
0.46
18E+
000.1014E-01
0.54
78E+
000.
1298
E-01
0.14
49E-
020.7853E-08
0.24
47E-
050.
7133
E-04
0.99
82E-
140.1370E-06
0.39
06E-
140.
5950
E-08
0.23
53E-
130.
1872
E-17
0.38
60E-
230.
2677
E-04
0.11
06E-
100.
1676
E-27
0.48
81E-
170.
8932
E-04
0.42
67E-
150.5706E-08
0.6461E-10
0.41
85E-
040.
3696
E-03
0.11
21E-
040.
4305
E-11
0.2204E-09
0.14
71E-
090.
1683
E-10
0.39
96E-
15
ACTI
VITY
0.18
07E-
020.1261E-01
0.30
99E+
000.6356E-02
0.34
34E+
000.2189E-02
0.1000E-02
0.63
10E-
080.
1591
E-05
0.7133E-04
0.6000E-14
0.28
49E-
070.
2348
E-14
0.14
62E-
080.
5784
E-14
0.15
99E-
180.
8029
E-24
0.1973E-04
0.2719E-11
0.14
32E-
280.
9200
E-18
0.1858E-04
0.10
49E-
150.
3829
E-08
0.1748E-11
0.2721E-04
0.36
96E-
030.1166E-04
0.4305E-11
0.14
79E-
090.3060E-10
0.6631E-12
0.26
81E-
15
MV< 1
1 V 1
1 1
COEFF.
0.24
580.
2639
0.67
100.
6269
0.62
690.
1686
0.68
990.
8034
0.6501
1.0000
0.6011
0.20
800.6011
0.24
580.
2458
0.08
540.
2080
0.73
730.
2458
0.0854
0.1885
0.20
800.
2458
0.67
100.0271
0.6501
1.0000
1.04
071.0000
0.67
100.
2080
0.03
940.
6710
-LOG10
ACTI
VITY
2.74
301.
8992
0.5088
2.1968
0.4641
2.65
983.0000
8.2000
5.79
844.1467
14.2219
7.54
5314
.629
48.8349
14.2378
18.7962
24.0954
4.7048
11.5656
28.8441
18.0362
4.7310
15.9
794
8.4169
11.7
573
4.5653
3.43
234.9332
11.3
660
9.83
0110
.514
312
.178
415.5717
48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 96 97 98 99 100
101
102
103
104
SP
EC
IES
CH3C
OO
-
H3A
S03
BaC
03B
aHC
03 +
BaO
H +
BaS
04C
aC03
CaH
C03
+Ca
OH
+C
aP04
-
CaH
P04
CaH
2P04
+C
aS04
CuC
IC
uC 1
2 -
CuC
13
--C
uC I
+Cu
C 1 2
CuC
13
-C
uC 1
4 --
CuO
H +
CuS
04Fe
Cl
+F
ed
2Fe
HP
04U
3P04
FeO
H +
Fe(
OH
)2Fe
CX)H
-
FeS
04Fe
C I
++F
eCl2
+
FeC
l3F
eCl4
-
FeS
04
+F
eS04
)2-
FeO
H ++
Fe(
OH
)2+
Fe(
OH
)3F
e(O
H)4
-B
(OH
)4
-H
2S
i04
--H
3Si0
4 -
HA
s03
--HF H
2C03
C03
--
HP
04
--H
2P04
-
HS
-S
--
HS
04
-H
N03
................ -
HrW
LT
£C
L>
" ----------
-------__--.
PPM
M
G/L
M
OLA
LITY
PP
M0.1
000
0.1
02
3
0.1
75
5E
-05
0
.72
30
E-0
10.5
724E
-02
0.1
272E
-04
0.2
23
8E
-03
0.3
23
4E
-07
0.2
86
7E
-02
0.21
47E
+01
0.30
81E
+01
0.2
965E
-02
0.1
68
8E
-02
0.2
33
3E
-02
0.2
207E
-04
0.10
37E
-KI3
0.3
86
0E
-07
0.4
66
3E
-05
0.1
035E
-04
0.7
487E
-04
0.4
363E
-05
0.7
25
5E
-07
0.4
86
9E
-09
0.3
094E
-03
0.8
765E
-04
0.7
69
7E
-10
0.5
14
5E
-18
0.8
142E
-13
0.2Q
34E
-09
0.2
893E
-10
0.3
115E
-13
0.2
68
6E
-13
0.4
994E
-09
0.6
86
4E
-12
0.4
40
0E
-12
0.1
368E
-13
0.1
025E
-15
0.1
00
1E
-11
0.1
03
8E
-23
0.6
22
7E
-07
0.3
69
7E
-04
0.2
09
9E
-02
0.1
95
2E
-02
0.43
42E
+01
0.2
15
0E
-03
0.22
87E
+00
0.1
173E
-07
0.5
01
6E
-05
0.84
54E
+00
0.19
22E
+01
0.1
07
5E
-01
0.3
13
8E
-03
0.90
74E
+01
0.4
357E
-07
0.1
671E
-03
0.4
33
1E
-10
-I
ML
IUL
/MC
I
MG
/L
0.7
396E
-01
0.5
85
6E
-02
0.1
30
1E
-04
0.2
290E
-03
0.3
308E
-07
0.2
93
3E
-02
0.21
97E
+01
0.31
52E
+01
0.3
03
3E
-02
0.1
72
7E
-02
0.2
387E
-02
0.2
25
8E
-04
0.10
61E
+03
0.3
948E
-07
0.4
77
0E
-05
0.1
05
8E
-04
0.7
659E
-04
0.4
464E
-05
0.7
42
1E
-07
0.4
981E
-09
0.3
16
5E
-03
0.8
96
7E
-04
0.7
874E
-10
0.5
26
3E
-18
0.8
32
9E
-13
0.2
08
1E
-09
0.2
95
9E
-10
0.3
18
7E
-13
0.2
74
8E
-13
0.5
10
9E
-09
0.7
02
2E
-12
0.4
50
2E
-12
0.1
39
9E
-13
0.1
049E
-15
0.1
02
4E
-11
0.1
06
2E
-23
0.6
370E
-07
0.3
78
2E
-04
0.2
14
7E
-02
0.1
997E
-02
0.44
42E
+01
0.2
199E
-03
0.23
40E
+00
0.1
20
0E
-07
0.5
13
1E
-05
0.86
48E
+00
0.19
66E
+01
0.1
099E
-01
0.3
21
0E
-03
0.92
82E
+01
0.4
45
8E
-07
0.1
70
9E
-03
0.4
431E
-10
j.. ..
....
...
MO
LALI
TY0.1
269E
-05
0.4
71
0E
-07
0.6
678E
-10
0.1
169E
-08
0.2
172E
-12
0.1
27
3E
-07
0.2
224E
-04
0.3
158E
-04
0.5
38
3E
-07
0.1
29
6E
-07
0.1
777E
-07
0.1
669E
-09
0.7
892E
-03
0.4
041E
-12
0.3
594E
-10
0.6
31
1E
-10
0.7
83
8E
-09
0.3
36
4E
-10
0.4
425E
-12
0.2
457E
-14
0. 3
981
E- 0
80
.56
92
E-0
90.8
737E
-15
0.4
20
7E
-23
0.5
55
8E
-18
0.2
151E
-U0.4
115E
-15
0.3
59
3E
-18
0.3
13
3E
-18
0.3
407E
-14
0.7
791E
-17
0.3
598E
-17
0.8
73
8E
-19
0.5
37
7E
-21
0.6
831E
-17
0.4
340E
-29
0.8
859E
-12
0.4
264E
-09
0.2
035E
-07
0.1
633E
-07
0.5
70
8E
-04
0.2
368E
-08
0.2
492E
-05
0.9
35
7E
-13
0.2
59
8E
-09
0.1
41
3E
-04
0.3
319E
-04
0.1
160E
-06
0.3
353E
-08
0.2
84
3E
-03
0.1
40
8E
-11
0.1
784E
-08
0.7
124E
-15
AC
TIV
ITY
0.8
755E
-06
0.4
710E
-07
0.6
67
8E
-10
0.7
84
6E
-09
0.1
536E
-12
0.1
27
3E
-07
0.2
22
4E
-04
0.2
328E
-04
0.3
969E
-07
0.9
326E
-08
0.1
77
7E
-07
0.1
20
1E
-09
0.7
892E
-03
0.4
04
1E
-12
0.2
41
2E
-10
0.1
313E
-10
0.5
259E
-09
0.3
36
4E
-10
0.2
96
9E
-12
0.5
111E
-15
0.2
671E
-08
0.5
692E
-09
0.5
86
2E
-15
0.4
20
7E
-23
0.5
558E
-18
0,2
15 1
£- 1
40
.29
10
E-1
50.3
593E
-18
0.2
215E
-18
0.3
407E
-14
0.1
621E
-17
0.2
544E
-17
0.8
738E
-19
0.3
60
8E
-21
0.4
83
1E
-17
0.2
912E
-29
0.1
843E
-12
0.3
06
9E
-09
0.2
035E
-07
0.1
176E
-07
0.3
462E
-04
0.5
288E
-09
0.1
672E
-05
0.1
94
6E
-13
0.2
59
8E
-09
0.1
41
3E
-04
0.7
413E
-05
0.2
414E
-07
0.2
414E
-08
0.1
849E
-03
0.2
93
0E
-12
0.1
23
1E
-08
0.7
124E
-15
Ml. 1
I V
I 1
T
CO
EFF
.0
.68
99
1.0
000
1.0
00
00
.67
10
0.7
07
11
.00
00
1.0
000
0.7
373
0.7
37
30.7
198
1.0
00
00
.71
98
1.0
00
01.0
000
0.6
71
00
.20
80
0.6
710
1.0
000
0.6
710
0.2
080
0.6
71
01
.00
00
0.6
71
01.0
000
1.0
00
0j^
ooa
0.7
071
1.0
00
00
.70
71
1.0
000
0.2
080
0.7
07
11
.00
00
0.6
71
00
.70
71
0.6
71
00
.20
80
0.7
198
1.0
00
00
.71
98
0.6
065
0.2
233
0.6
71
00
.20
80
1.0
00
01
.00
00
0.2
233
0.2
08
00.7
198
0.6
50
10
.20
80
0.6
89
91
.00
00
- LU
U 1
U
AC
TIV
ITY
6.0
577
7.3
269
10
.17
53
9.1
053
12
.81
37
7.8
95
24
.65
29
4.6
329
7.4
01
38
.03
03
7.7
503
9.9
20
33
.10
28
12.3
935
10.6
177
10
.88
18
9.27
911
0.4
73
212.5
273
15
.29
15
8.5
733
9.2
44
715.2
319
23.3
761
18.2
551
14.6
673
15
.53
62
18
.44
46
18
.65
46
14.4
676
17
.79
03
17.5
945
19
.05
86
21.4
427
17.3
160
29.5
358
12.7
346
9.5
12
97.6
913
7.9
297
4.4
60
79
.27
67
5.7
76
71
3.7
10
89
.58
53
4.8
50
05
.13
00
7.6
17
38.6
173
3.7
33
21
2.5
33
28.9
098
15.1
473
PAG
E -
4 -
vo
Ln
105
106
107
108
109
111
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
148
149
150
151
152
153
154
155
156
157
158
159
160
161
SPEC
IES
HgCl
+
HgCl2
HgCl
3 -
HgCl4
--HgSOA
Hg(H
S)3-
KCl
KC03
-
KHS0
4KS
04
-KH
P04
Li OH
LiSOA
-Mg
C03
MgHC
03 +
MgF
+Mg
OH +
MgSO
AMg
POA
Mg
HP04
MgH2
P04+
MnCl
+
MnCl 2
MnCl3
-Mn
Cl4
--Mn
HC03
+Mn
SOA
MnHPOA
MnOH
+N0
3 -
NaCl
NaC03
-Na
HC03
Na2C
03Na2S04
NaS0
4 -
NaHP
04
-NaF
NaHS
PbCl +
PbCl
2Pb
Cl3
-PbCU --
PbS0
4Mn
Cl ++
SrOH
-
SrC03
SrHC
03 +
SrS04
ZnCl +
ZnCl
2Zn
Cl3
-Zn
Cl4
--
................ -HNMLT^tU- ----------
-----------
PPM
MG/L
MOLALITY
PPM
0.16
64E-
120.
4514
E-06
0.32
14E-
040.
1476
E-04
0.1263E-19
0.23
43E-
070.
2070
E+02
0.7987E-01
0.72
77E-
050.
1957
E+02
0.54
17E-
040.
1098
E-05
0.26
50E-
010.7265E+01
0.18
18E+
020.
1373
E+01
0.42
43E+
000.8054E+03
0.1041E-01
0.4552E-01
0.13
63E-
030.
3838
E-13
0.30
93E-
100.
5097
E-09
0.5472E-08
0.84
42E-
080.
1578
E-06
0.36
33E-
100.
1232
E-08
0.29
00
0.2967
0.48
47E-
05
0.29
00E+
000.
8477
E+03
0.47
59E+
010.
1413
E+02
0.1521E-01
0.93
21E+
030.
1838
E+03
0.23
26E-
020.4503E-01
0.45
83E+
000.
2834
E-11
0.2718E-11
0.76
81E-
120.
5976
E-12
0.3313E-12
0.8400E-21
0.20
67E-
040.
1296
E-01
0.6151E-01
0.1142E+01
0.13
74E-
100.6780E-11
0.2295E-11
0.21
22E-
11
---UftLUULfllCl
MG/L
0.1703E-12
0.4618E-06
0.32
88E-
040.1510E-04
0.12
92E-
190.2397E-07
0.2118E+02
0.8171E-01
0.74
44E-
050.2002E+02
0.5541E-04
0.11
23E-
050.
2711
E-01
0.7432E+01
0.18
60E+
020.
1405
E+01
0.4341E+00
0.82
39E+
030.1065E-01
0.4657E-01
0.13
95E-
030.3926E-13
0.31
64E-
100.
5215
E-09
0.55
97E-
080.
8636
E-08
0.16
14E-
060.3716E-10
0.12
61E-
080.2967E+00
0.8672E+03
0.4869E+01
0.1445E+02
0.1556E-01
0.9535E+03
0.1880E+03
0.2379E-02
0.4607E-01
0.4689E+00
0.2899E-11
0.2780E-11
0.7858E-12
0.6114E-12
0.33
89E-
120.8594E-21
0.2114E-04
0.1326E-01
0.6292E-01
0.11
68E+
010.1405E-10
0.6936E-11
0.23
48E-
110.2171E-11
}. ..........
MOLA
LITY
0.73
08E-
180.
1723
E-11
0.10
85E-
090.4467E-10
0.44
14E-
250.
8098
E-13
0.28
78E-
030.
8352
E-06
0.55
38E-
100.
1500
E-03
0.41
56E-
090.4751E-10
0.26
66E-
060.8930E-04
0.2209E-03
0.3286E-04
0.1064E-04
0.69
34E-
020.9042E-07
0.39
22E-
060.
1165
E-08
0.44
01E-
180.
2547
E-15
0.3275E-14
0.28
82E-
130.7545E-13
0.10
83E-
110.2495E-15
0.1775E-13
0.48
47E-
050.1503E-01
0.59
43E-
040.
1743
E-03
0.14
87E-
060.
6801
E-02
0.1600E-02
0.2026E-07
0.1111E-05
0.84
73E-
050.1210E-16
0.1013E-16
0.2539E-17
0.1775E-17
0.11
32E-
170.9632E-26
0.2047E-09
0.9100E-07
0.4289E-06
0.6444E-05
0.14
12E-
150.5157E-16
0.1385E-16
0.1062E-16
ACTIVITY
0.49
03E-
180.
1723
E-11
0.7281E-10
0.9291E-11
0.44
14E-
250.
5434
E-13
0.28
78E-
030.5536E-06
0.5538E-10
0.10
80E-
030.2991E-09
0.4751E-10
0.18
85E-
060.
8930
E-04
0.14
82E-
030.2267E-04
0.79
88E-
050.
6934
E-02
0.6508E-07
0.39
22E-
060.8385E-09
0.29
53E-
180.
2547
E-15
0.21
98E-
140.5995E-14
0.5063E-13
0.1083E-11
0.24
95E-
150.1191E-13
0.30
39E-
050.1503E-01
0.4278E-04
0.1743E-03
0.14
87E-
060.6801E-02
0.11
52E-
020.1458E-07
0.11
11E-
050.
8473
E-05
0.8122E-17
0.1013E-16
0.1704E-17
0.36
92E-
180.1132E-17
0.20
03E-
260.
1448
E-09
0.9100E-07
0.28
78E-
060.
6444
E-05
0.94
73E-
160.
5157
E-16
0.92
94E-
170.
2208
E-17
AM 1V1 1
I
COEFF.
0.67
101.
0000
0.67
100.2080
1.00
000.6710
1.00
000.6629
1.00
000.7198
0.7198
1.00
000.7071
1.00
000.6710
0.6899
0.75
051.
0000
0.7198
1.00
000.7198
0.67
101.
0000
0.67
100.2080
0.6710
1.00
001.
0000
0.6710
0.6269
1.00
000.7198
1.00
001.
0000
1.00
000.7198
0.7198
1.00
001.
0000
0.67
101.
0000
0.67
100.
2080
1.00
000.2080
0.7071
1.00
000.6710
1.00
000.6710
1.00
000.
6710
0.2080
- LU
lJ 1
U
ACTIVITY
18.3095
11.7637
10.1378
11.0
319
25.3552
13.2649
3.54
096.2568
10.2566
3.9666
9.5241
10.3
232
6.7246
4.04
923.
8292
4.64
455.
0976
2.15
907.
1865
6.40
659.
0765
18.5298
15.5939
14.6
581
14.2
222
13.2
956
11.9654
15.6
030
13.9
240
5.51
731.
8229
4.3688
3.7588
6.8276
2.16
742.9386
7.8361
5.9541
5.07
2017
.090
416
.994
517.7686
18.4328
17.9
460
26.6
982
9.83
947.
0410
6.54
105.
1908
16.0
235
16.2
876
17.0318
17.6
559
PAG
E -
5 -
162
165
166
228
230
231
232
233
234
235
236
237
238
239
240
241
244
245
246
247
248
251
252
253
254
255
^56^
257
258
259
260
261
262
263
264
265
266
267
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
SPECIES
ZnS0
4Hg
OH +
Hg(OH)2
CH3COOH
BaAce
+CaAce
+Cu
Ace
+FeAce
+Fe
(Ace
)2KA
ceMg
Ace
+NaAce
PbAc
e +
Pb(A
ce)2
Pb(A
ce)3
SrAc
e +
ZnAc
e +
Zn(A
ce)2
C204
--
HC20
4 -
H2C2
04Ba
Oxy
CaOx
yFe
Oxy
FeOx
y +
KOxy
-MgOxy
MnOxy
MnOxy)2
MnOxy)3
MnOx
yNa
Oxy
-Pb
Oxy
SrOx
yZn
Oxy
C4H404--
HC4H
404-
H2C4
H404
BaSu
cCa
Suc
FeSu
cFe
Suc
+KS
uc
-Mg
Suc
MnSu
cNaSuc
-PbSuc
SrSu
cZnSuc
CaCl
+
CaCl
2Fe
F ++
SiF6 --
.......--------- -ANALT^tU- ----------
--.-.--.-...
PPM
MG/L
MOLALITY
PPM
0.5798E-11
0.11
53E-
130.3409E-08
0.18
42E-
040.
9241
E-07
0.37
25E-
020.
2735
E-13
0.1624E-12
0.93
67E-
200.2147E-03
0.22
89E-
010.1265E-01
0.5458E-16
0.96
61E-
210.1742E-26
0.4823E-04
0.12
99E-
110.
3185
E-21
0.1000
0.1023
0.1177E-05
0.94
40E-
020.3468E-09
0.3117E-13
0.57
14E-
080.5546E-02
0.5007E-12
0.3028E-13
0.1406E-03
0.10
02E+
000.
9310
E-10
0.7180E-03
0.15
50E-
060.
2764
E-19
0.9487E-02
0.3575E-15
0.2710E-04
0.3061E-13
0.1000
0.1023
0.89
29E-
06
0.64
06E-
010.
2140
E-05
0.41
02E-
080.9317E-07
0.3478E-02
0.1942E-13
0.4911E-13
0.3516E-03
0.24
49E-
010.
8476
E-11
0.1536E-01
0.11
59E-
150.4664E-04
0.67
64E-
150.1773E+03
0.3377E+01
0.15
10E-
110.
1180
E-28
-UHLUULHI tl
MG/L
0.5931E-11
0.11
79E-
130.
3488
E-08
0.18
84E-
040.9453E-07
0.3811E-02
0.27
98E-
130.1661E-12
0.95
82E-
200.
2196
E-03
0.2342E-01
0.12
94E-
010.
5583
E-16
0.98
84E-
210.1782E-26
0.49
33E-
040.1328E-11
0.3259E-21
0.9657E-02
0.35
48E-
090.3189E-13
0.58
45E-
080.5673E-02
0.5122E-12
0.3098E-13
0.1438E-03
O.T0
25E+
000.
9524
E-10
0.7345E-03
0.15
86E-
060.
2827
E-19
0.9705E-02
0.36
57E-
150.2773E-04
0.3131E-13
0.65
53E-
010.
2190
E-05
0.41
96E-
080.
9532
E-07
0.3558E-02
0.1987E-13
0.5024E-13
0.3597E-03
0.25
05E-
010.8671E-11
0.15
71E-
010.1186E-15
0.4772E-04
0.69
19E-
150.1814E+03
0.3454E+01
0.1545E-11
0.12
07E-
28
j...
...
....
.MOLALITY
0.3722E-16
0.54
90E-
190.1506E-13
0.31
79E-
090.4877E-12
0.3895E-07
0.23
12E-
180.1464E-17
0.55
81E-
250.2267E-08
0.28
46E-
060.
1598
E-06
0.21
24E-
210.
3078
E-26
0.4696E-32
0.3408E-09
0.10
82E-
160.
1800
E-26
0.1112E-06
0.40
37E-
140.
3588
E-18
0.26
28E-
130.4487E-07
0.3607E-17
0.21
81E-
180.
1146
E-08
0.92
4TE-
060.
6749
E-15
0.37
60E-
080.6354E-12
0.2004E-24
0.8857E-07
0.1255E-20
0.15
99E-
090.2068E-18
0.5719E-06
0.18
95E-
100.3600E-13
0.38
11E-
120.
2309
E-07
0.1171E-18
0.29
60E-
180.2348E-08
0.18
08E-
060.
5137
E-16
0.11
45E-
060.
3716
E-21
0.23
73E-
090.
3863
E-20
0.24
33E-
020.3153E-04
0.20
91E-
160.
8610
E-34
ACTIVITY
0.3722E-16
0.3683E-19
0.15
06E-
130.
3179E-09
0.33
64E-
120.
2687E-07
0.1595E-18
0.1010E-17
0.5581
E-25
0.2267E-08
0.1964E-06
0.15
98E-
060.1466E-21
0.3078E-26
0.32
40E-
320.
2351E-09
0.7463E-17
0.18
00E-
260.
2483
E-07
0.27
85E-
140.3588E-18
0.26
28E-
130.
4487E-07
0.3607E-17
0.15
05E-
180.7909E-09
0.92
41 E"0
60.6749E-15
0.8398
E-09
0.13
15E-
140.1382
E-24
0.61
11E-
070.
1255
E-20
0.15
99E-
090.
2068
E-18
0.12
77E-
060.
1307
E-10
0.3600E-13
0.3811
E-12
0.23
09E-07
0.1171E-18
0.20
42E-
180.
1620
E-08
0.1808E-06
0.5137E-16
0.78
98E-
070.3716E-21
0.2373E-09
0.38
63E-
200.1633
E-02
0.31
53E-
040.
4350
E-17
0.17
91E-
34
m. 1
1 v 1
1 1
COEFF.
1 .00
000.
6710
1.0000
1.0000
0.68
990.
6899
0.68
990.
6899
1.0000
1.0000
0.68
991.0000
0.68
991.0000
0.68
990.
6899
0.68
991.0000
0.22
330.
6899
1.0000
1.0000
1.0000
1.0000
0.68
990.
6899
r.oo
oo1.0000
0.2233
0.0021
0.68
990.
6899
1.0000
1.0000
1.0000
0.2233
0.68
991.0000
1.0000
1.0000
1.0000
0.68
990.
6899
1.0000
1.0000
0.68
991.0000
1.0000
1.0000
0.67
101.0000
0.20
800.
2080
- LUU 1
U
ACTIVITY
16.4292
19.4337
13.8
221
9.49
7712
.473
17.
5707
18.7
971
17.9955
25.2533
8.6445
6.70
696.7965
21 .83
4026.5117
32.4894
9.62
8717
.127
126.7448
7.60
5114
.555
118
.445
113.5804
7.34
8117.4429
18.8
225
9.10
19- &.
0343
15.1707
9.07
5814.8809
24.8594
7.2139
20.9013
9.79
6118
.684
56.
8937
10.8837
13.4437
12.4190
7.6366
18.9
315
18.6898
8.7905
6.74
2916.2893
7.1025
21.4299
9.62
4720.4130
2.78
714.5012
17.3
615
34.7469
PAGE
-
6 -
SPE
CIES
285
CH4
Gas
286
Pb(HS)2
287
Pb(HS)3-
288
PbC03
289
PbOH +
290
Zn(HS)2
291
Zn(H
S)3-
292
ZnHC03
»29
3 Zn
OH +
294
Zn(OH)2
295
ZnHSOH
--.........--.-- -HNHLT£CU- ----------
.----.......
PPM
MG/L
MOLA
LITY
PPM
0.10
00
0.10
23
0.64
60E-
05
0.10
00E+
000.6586E-04
0.1170E-06
0.1758E-10
0.31
17E-
100.2740E-04
0.1397E-05
0.5013E-12
0.2167E-11
0.96
75E-
130.8629E-02
-
- -LHLl-ULMI CL
MG/L
0.1023E+00
0.6737E-04
0.11
97E-
060.
1799
E-10
0.31
89E-
100.2803E-04
0.1429E-05
0.5129E-12
0.2217E-11
0.9898E-13
0.8827E-02
j. .
. ...
....
.MO
LALI
TY0.6460E-05
0.24
97E-
090.3959E-12
0.68
20E-
160.1441E-15
0.21
59E-
090.8798E-11
0.41
11E-
170.2726E-16
0.10
09E-
170.
7746
E-07
ACTI
VITY
O.OO
OOE+
000.2497E-09
0.26
56E-12
0.6820E-16
0.96
70E-16
0.21
59E-09
0.5903E-11
0.27
58E-
170.18
29E-16
0.1009E-17
0.77
46E-
07
COEF
F.1.0000
1.0000
0.67
101.0000
0.67
101.
0000
0.67
100.
6710
0.67
101.0000
1.0000
ACTI
VITY
0.00
009.6026
12.5
757
16.1
662
16.0
146
9.6657
11.2
289
17.5
593
16.7
377
17.9
961
7.1109
VQ oo
2 11 14 15 16 17 19 20 22 24 25 26 30 31 37 38 40 41 42 43 45 46 47 50 51 52 55 56 57 60 64 67 68 69 70 71 73 76 77 81 82 83 85 91 95 99 100
103
110
111
112
PHAS
EAKERMANI
ANHY
ORIT
APATCHLR
APATFLUR
APATHYDX
ARAG
ONIT
AZUR
ITE
BARITE
BRUC
ITE
CALC
ITE
CELESTIT
CHALCEOO
CRYS
OTIL
C-EN
STAT
CRIS
TOBA
CRIS
TOBB
DIOP
SIDE
DOLO
MITE
OSORO
ENST
ATIT
FAYALITE
FLUO
R I TE
FORS
TERI
GREENALI
GYPSUM
HALI
TEHU
NTIT
EHY
ORMA
GNHY
PHIL
ITKE
NYAI
TELA
RNIT
ELIME
MAGADITE
MgFe
204
MAGNESIT
MgCl2
MERU
INIT
MIRABILT
MONT
ICEL
NACH
OLIT
NATR
THRM
NATR
ONNE
SQUH
ONOL
OHAM
ITPE
RICL
ASPORT LAN
POTA
SS I
QUAR
TZSE
PIOL
ITSI
LICA
AMSILICGEL
LOG
(AP)
33.530
-5.4
03-4
9.45
1-5
3.55
2-54.785
-7.873
-48.
361
-10.
205
-13.496
-7.8
73-7.391
-4.1
3035.201
10.3
62-4.130
-4.1
3019.881
-14.
902
-14.
902
10.3
620.
178
-11.874
24.8
55-1
.815
-5.4
20-0
.973
-28.
960
-36.
508
-3.671
-37.784
23.167
-19.
151
-21.
260
26.0
75-7.029
-2.8
2747.178
-3.761
24.0
11-3
.509
-6.1
56-6.231
-7.054
1.72
414
.492
-14.340
11.9
98-4.130
33.1
31-4.130
-4.130
LOG
(KT)
45.460
-4.3
30-66.150
-68.
340
-60.
390
-8.3
40-3
9.46
0-9
.960
-11.
470
-8.480
-6.4
30-3.730
32.030
11.290
-3.540
-2.9
4019
.630
-18.060
-16.520
11.4
7019
.430
-10.960
29.070
22.580
-4.600
1.59
0-30.620
-38.530
11.8
00-25.000
38.880
32.660
-14.340
21.1
00-8.050
22.150
68.170
-1.0
9030.150
-0.4
30-0
.010
-0.8
80-5
.350
11.9
0021
.510
-5.4
2084.120
-3.9
3031.520
-2.7
00-2.710
LOG
(AP/KT)
-11.
930
-1.073
16.699
14.7
885.605
0.467
-8.901
-0.245
-2.0
260.
607
-0.961
-0.400
3.171
-0.928
-0.590
-1.190
0.251
3.158
1.61
8-1
.108
-19.
252
-0.9
14-4.215
-24.
395
-0.820
2.5
631.
660
2.02
2-1
5.47
1-12.784
-15.
713
-51.
811
-6.920
4.97
51.
021
-24.977
-20.
992
-2.671
-6.139
-3.0
79-6
.146
-5.351
-1.704
-10.176
-7.018
-8.920
-72.
122
-0.200
1.611
-1.430
-1.420
OELG
-16.
276"
-1.464
22.781
20.1
747.
646
0.63
7-1
2.14
4-0.334
-2.764
0.82
8-1.311
-0.546
4.32
5-1.265
-0.805
-1.623
0.34
34.308
2.207
-1.511
-26.
265
-1.2
46-5.750
-33.
281
-1.1
18-3
.496
2.26
42.
759
-21.
106
-17.441
-21.
436
-70.
683
-9.441
6.787
1.39
3-3
4.07
5-28.637
3.6
44-8.375
-4.200
-8.385
-7.301
-2.325
-13.883
-9.574
-12.169
-98.
391
-0.273
2.19
8-1.951
-1.9
37
122
123
124
125
126
127
128
130
131
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
PHAS
ESr
C03
SYLVITE
TALC
THENARDI
TREMOLIT
TRON
AVI
VIAN
ITUITHERIT
UOLLASTO
SILV
ERAg
C I
Ag2S
COPP
ERMA
LACH
ITCu
OCu
20CuS
Cu2S
CuFeS2
BORN
ITE
FeC
1 2Fe
C 1 3
FeC03
FeO
Fe20
3HEM
Fe20
3MGH
Fe304
Fe(OH)3
GOETHITE
FeSPYRHO
FeSTROLT
FeS2
PYR
GREI
GITE
Hg(L
)Hg
Cl2(
C)Hg
OCI
NNAB
ARCI
NABM
ETMn
Cl2
MnC0
3Mn
OMn
02Mn
SPbCl2
PbC03
PbOL
ITHR
PbOM
ASIC
PbS
GALN
PbS0
4ZnC03
ZnO
LOG
(AP)
-9.861
-2.661
26.949
-3.6
7766
.711
-9.673
-66.295
-12.
675
9.519
-9.663
-14.
686
-23.
977
-10.
071
-34.397
7.55
7-12.867
-4.3
68 2
4.79
2-1
4.13
9-6
3.72
3-15.166
-20.189
19.368
2.15
411
.583
11.5
8313
.736
-36.191
5.78
7-9.771
-9.771
-23.
477
-33.
963
-14.979
-25.024
-7.7
04-19.629
-19.629
-12.
494
16.696
4.826
-13.
339
-7.099
-18.
964
-23.166
1.645
1.645
-13.
569
-20.696
-21.
109
0.41
2
LOG
(KT)
-9.270
0.910
21.1
30-0.290
60.8
90-0.630
-36.000
-8.630
12.600
-0.500
-9.7
30-36.260
4.25
0-33.580
7.670
-1.900
-22.830
-34.
950
-34.
070
-102
.510
7.900
12.3
40-1
0.54
013
.500
0.040
6.40
010
.750
-37.
200
0.480
-3.7
60-3.870
24.
710
-45.
000
-2.840
-14.
110
2.44
0-3
9.86
0-3
8.58
08.
790
-10.540
17.7
00 8.330
-0.470
-4.820
-12.
890
12.5
5012
.690
-14.
780
-7.8
00 9.870
11.2
00
LOG
(AP/KT)
-0.591
-3.571
5.819
-3.3
875.821
-9.043
-30.295
-4.045
-3.081
-9.163
-4.9
5612
.283
-14.
321
-0.8
17-0.113
-10.967
18.4
6210
.158
19.931
38.7
87-23.066
-32.
529
-8.828
-11.346
1K54
3
5.18
32.986
1.00
95.
307
-6.011
-5.901
1.23
311.037
-12.139
-10.
914
-10.
144
20.231
18.951
-21.
284
-6.1
56 1
2.87
4-5
.009
-6.6
29-1
4.14
4-10.276
14.
195
-14.
335
1.211
-12.
896
-11.239
-10.788
OELG
-0.8
06"
-4.872
7.93
9-4.621
7.94
2-12.337
-41.
330
-5.5
19-4
.204
12.
501
-6.761
16.757
-19.537
-1.114
-0.155
-14.
962
25.186
13.8
5827
.191
52.915
-31.468
44.
377
-12.043
-15.479
15^747
7.07
04.
074
1.37
67.
240
8.2
00-8
.050
1.682
15.057
-16.
560
-14.889
-13.
838
27.601
25.854
-29.036
-8.398
-17.563
-6.834
-9.043
-19.296
-14.019
-19.
365
-19.556
1.652
17.593
-15.333
-14.717
PAGE
-
8 -
SAMP
LE ID
ENT
- Te
st Sample #
4 - Ca/Mg
exch
ange
in
sea
wate
r(T
EMPE
RATU
RE =
25.00)
118
121
PHAS
ENa
20ST
RENG
IT
LOG
(AP)
LOG
(KT)
LOG
(AP/
KT)
15.374
-30.
570
67.4
30
-27.
200
-52.
056
-3.370
DELG
-7
1.01
7"
-4.598
PHAS
E17
6 Zn
S177
ZnS04
LOG
(AP)
LOG
(KT)
LOG
(AP/
KT)
-11.
513
-18.
639
-11.
790
3.54
00.
277
-22.
179
DELG
0.
379"
-30.
258
PAGE
9 -
Initial
Surface
Conditions
Surface
Comp
lex
CaX2
HgX2
Mole
s on
Surface
0.25
000E
-01
0.25
000E
-01
Holes
ofSu
rfac
e Si
te0.
5000
0E-0
10.
5000
0E-0
1
Frac
tion
of
Surf
ace
Sites
0.5000
0.50
00
Surf
ace
Comp
. Sp
ecie
s an
d Coef.
...
0.10
000E
+01
= Ca
X2
* (Ca
0.10
000E
+01
= Mg
X2
* (Mg
** -1.00) *
(X-
** -1.00) *
(X-
** -2.00)
** -2.00)
Fina
l Eq
uili
briu
m Su
rfac
e Co
ndit
ions
Surface
Complex
CaX2
HgX2
Mole
s on
Surf
ace
0.14
040E
-01
0.35
960E
-01
Hole
s of
Surf
ace
Site
0.28
079E
-01
0.71921E-01
Frac
tion
of
Surf
ace
Sites
0.2808
0.71
92
ro
o o
CEC
= 0.10000E+03
mi Hi-equivalents
0.10000E+00
mole
s ex
chan
ge c
apacity
for
mono
vale
nt cations
and
anio
ns
PAGE
-
10
-
SAMP
LE ID
ENT:
- Te
st Sa
mple
#4
- Ca/Mg
exch
ange
in s
eawater
ro
o
KH
tH
ItMK
8.19
0.
5000
25.00
DENS
ITY
AT
TOTAL
DISS
OLVE
D IN
PUT
T SO
LIDS
(M
G/L)
1.0
230
3591
6.54
ANAL
= CALC=
IONI
C STRENGTH
0.64
588
LAI 1UN5
619.
6745
57
5.84
76
ACTI
VITY
OF
WATER
0.98
09
Tota
l Alkalinity a
sHC03-
C03=
CaC03
(MG/
L)=0
.159
4E+0
3 0.7840E+02 0
.1308E+03
(PPM)=0.1559E+03 0
.7664E+02
0.12
78E+
03
(MOLALITY)=0.2647E-02
0.1324E-02 0
.132
4E-0
2
1 2 3 4 5 6 7 8 9 11 12 13 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 33 43 44 45 46 47
SPEC
IES
Ca ++
Mg ++
Na +
K +
Cl
-S0
4 --
HC03
-H
+OH
-H4Si04
Si 02
Ag +
Ba ++
Cu +
Cu ++
Fe ++
Fe +3
Hg
++Li
+
Mn ++
Mn +3
Pb +
+Sr ++
Zn ++
H2As
03-
P04
-3F
-B(
OH)3
H2S
AgCl
AgCl
2 -
AgCl
3 --
AgCl
4 -3
AgS0
4 -
PPM
836.
2569
1034
.833
310770.0000
399.
1000
1935
0.00
0027
12.0
000
123.4007
4.28
000.
0000
0.02
000.
0007
0.00
20
0.00
000.
1810
0.00
02
0.00
018.
1400
0.00
490.
0067
0.0600
1.39
0025
.454
010
.000
0
. . . .
. -MNMLI tc
lMG/L
855.
4908
1058
.634
511017.71
0040
8.27
9319
795.
0500
2774
.376
0126.2389
4.37
840.
0000
0.02
050.0007
0.00
20
0.00
000.
1852
0.00
02
0.00
018.
3272
0.00
500.
0068
0.06
141.
4220
26.0
394
10.2
300
j- ----------
MOLA
LITY
0.2162E-01
0.4411E-01
0.48
55E+
000.1058E-01
0.5657E+00
0.29
26E-
010.2096E-02
0.73
82E-
040.3843E-09
0.1509E-06
0.11
42E-
07
0.37
12E-
07
0.1550E-09
0.2703E-04
0.37
73E-
08
0.2501E-09
0.9628E-04
0.7769E-07
0.5281E-07
0.65
48E-
060.7583E-04
0.42
66E-
030.
3041
E-03
«NIU
N:>
uirrtKtNLt V.HCU/L;
---
n - un BM
LMNL
L muLts; --
----
-61
8.26
48
568.1310
P TOTAL
(BARS)
1.0000
as
1.4097
7.7167
HTOT
OHTOT
DIFFERENCE
0.25
11E-
02
0.1347E-02
0.1163E-02
rtncooi me
................ -r
i^Cooui\c"
--------------
PH20
PC
02
PH2S
PCH4
(BAR
S)
(BAR
S)
(BAR
S)
(BAR
S)PNH3
(BARS)
0.3169E-01 0.4865E-03 0.
1467
E-03
0.5252E-02 O.
OOOO
E+00
Dissolved
Inor
gani
c Ca
rbon
HC03-
H2C0
3 Su
mof
Sum
ofTI
C Al
kali
nity
sp
ecie
s HC03-
C03=
0.2485E+02 0.
1375
E+03
0.
8799
E+00
0.
1128
E+03
0.1235E+02
0.2429E+02 0.1344E+03 0.
8601
E+00
0.
1103
E+03
0.1207E+02
0.2096E-02 0.2290E-02 0.1437E-04 0.
1873
E-02
0.2085E-03
PPM
0.57
62E+
030.
8953
E+03
0.1024E+05
0.3825E+03
0.1866E+05
0.1226E+04
0.8572E+02
0.7736E-05
0.39
64E-
010.
6618
E+01
0.10
50E-
080.
1811
E-01
0.24
05E-
090.3660E-03
0.1323E-08
0.1052E-12
0.7563E-18
0.1792E+00
0.45
56E-
060.6904E-23
0.9742E-12
0.7539E+01
0.2722E-10
0.7126E-03
0.6480E-05
0.8401E+00
0.2209E+02
0.37
32E+
000.5995E-06
0.3811E-04
0.3032E-04
0.4020E-05
0.81
15E-
10
unuuuun ICL
> -----------
MG/L
MOLA
LITY
0.5895E+03
0.91
59E+
030.1048E+05
0.3913E+03
0.1908E+05
0.1254E+04
0.8769E+02
0.7914E-05
0.4055E-01
0.67
70E+
01
0.1074E-08
0.1853E-01
0.24
60E-
090.
3744
E-03
0.1353E-08
0.1076E-12
0.7737E-18
0.18
33E+
000.4660E-06
0.7063E-23
0.9966E-12
0.7713E+01
0.27
85E-
100.7290E-03
0.6629E-05
0.8594E+00
0.22
60E+
020.
3818
E+00
0.6133E-06
0.38
99E-
040.
3102
E-04
0.4113E-05
0.8301E-10
0.1490E-01
0.3817E-01
0.46
17E+
000.
1014
E-01
0.5454E+00
0.1322E-01
0.1456E-02
0.7954E-08
0.2415E-05
0.7136E-04
0.1009E-13
0.1367E-06
0.39
23E-
140.5969E-08
0.2454E-13
0.1951E-17
0.39
07E-
230.2676E-04
0.8594E-11
0.13
02E-
270.4873E-17
0.8918E-04
0.43
16E-
150.5640E-08
0.70
71E-
100.4583E-04
0.37
02E-
030.1135E-04
0.4335E-11
0.2209E-09
0.1467E-09
0.16
69E-
100.
4124
E-15
ACTI
VITY
0.3667E-02
0.10
08E-
010.3099E+00
0.63
58E-
020.3421E+00
0.2235E-02
0.1005E-02
0.63
90E-
080.1571E-05
0.71
36E-
04
0.6066E-14
0.28
48E-
070.2359E-14
0.1469E-08
0.6040E-14
0.1670E-18
0.8141E-24
0.1973E-04
0.2115E-11
0.11
14E-
280.
9202
E-18
0.1858E-04
0.1062E-15
0.3786E-08
0.1922E-11
0.2981E-04
0.3702E-03
0.1181E-04
0.4335E-11
0.1483E-09
0.3056E-10
0.6596E-12
0.2768E-15
MUI 1
VI 1
1
COEF
F.0.
2461
0.26
420.
6712
0.62
720.
6272
0.1690
0.69
010.
8034
0.65
031.0000
0.60
150.
2084
0.60
150.
2461
0.24
610.
0856
0.20
840.7373
0.24
610.
0856
0.1888
0.20
840.
2461
0.67
120.
0272
0.65
031.
0000
1.04
071.
0000
0.67
120.
2084
0.03
950.6712
-LOG
10AC
TIVI
TY2.4357
1.99
630.
5088
2.1967
0.46
592.6507
2.99
808.
1945
5.80
394.
1465
14.2
171
7.5455
14.6
272
8.83
3014
.218
918
.777
324
.089
34.
7049
11.6
747
28.9
529
18.0
361
4.73
0915
.973
88.
4218
11.7
163
4.5257
3.4316
4.9277
11.3
630
9.8289
10.5
148
12.1
807
15.5
578
zoz
wtfjco p- --
ononnnnonnnnonnnoooooooozn
' ^5 zc ^~ ^ ^ ^ * ^ ^ ^~ O ^J ^ O ^c o O O zc f^ ^^ w f^ ^s ^s> i/j ro o^ ro ^^ ^ o ^* o OJ ^*
w
O 3»
I- 3«
ooooooooooooooooooooooooooooooooooooooooooooooooooooo
ijf *o f\j ^*> v/i ^^ ^D (^ v/i ~^ rvj ^^ rvj ^D * ^^ ^^ ^^ **** <^ ^« v/i ->^ o^ *^ * ^5 OJ ^* OJ ^^ ^o *"^ oo ~* ' ' "" ooro*oo*wsoooo*~~~~~'' ~ -------------- .-^--_.._Tr___OOO»yi'O^*>*^-»«^>mrTirnmrrimmmm --- , - -,--, -------------- . , + . + + , + , + . . i . . i i , . , + , , , , + +^pooooooppopooopprvj-i^^^^Or^r^T^Qr^r^TfPPQPQPOooooooooooooooo
wio^oro-sro-s-^roo mmrnmmmmmm m
o ui ~g -» w -» -»
ooooooooooooooooooooooooooooooooooooooooooooooooooooo
o^j^oooorvj^'O mrnrnrnrnmmm + + ++ ++ + -»oooooooooooooooor\j-»-»-»-»-»o-»-»-j»o-»-»-»oooooooooooooooooooooo
oooooooooooooooooooooooooopoooooooooooooooooooooooooo
rj ^ oo
ooooooooooooooooooooooooooooooooooooooooooooooooooooo
rnmrnmrnirirnrnmrnrnrnmmmmrnrn rn m m rn rn p-ippopoo-^oooooo-^rvj-^rvj-e-*-*-:*^'
-»oooooo-»-»ooooo-»ooooo-»oo-»o-»c
oooooooo-»o-»oo
-»_._.o-»ooo-»ooo-»-»o-»ooo-»-»oo-»-»o o-i
PAGE
- 12
-
fO o
SPECIES
105
HgCl
+
106
HgClZ
107
HgCl3
-10
8 HgCl4
--10
9 HgS04
111
Hg(H
S>3-
113
KCl
114
KC03
-
115
KHS04
116
KS04
-117
KHP04
-11
8 Li
OH119
LiS0
4 -
120
MgC0
3121
MgHC
03 +
122
MgF
+123
MgOH +
124
MgS04
125
MgP04
-12
6 Mg
HP04
127
MgH2
P04+
128
MnCl +
129
MnCl2
130
MnCl
3 -
131
MnCl4
--132
MnHC03 +
133
MnS0
4134
MnHP
0413
5 MnOH +
136
N03
-13
7 Na
Cl13
8 Na
C03
-13
9 NaHC03
140
Na2C03
141
Na2S04
142
NaS0
4 -
143
NaHP04
-144
NaF
145
NaHS
148
PbCL +
149
PbCl
2150
PbCl
3 -
151
PbCL
4 --
152
PbS0
4153
MnCl ++
154
SrOH
-
155
SrC0
3156
SrHC03 +
157
SrS04
158
ZnCl +
159
ZnCl
2160
ZnCl3
-161
ZnCU --
PPM
MG/L
0.2900
0.29
67
MOLALITY
PPM
0.16
80E-
120.
4541
E-06
0.32
19E-
040.
1470
E-04
0.1308E-19
0.2374E-07
0.20
62E+
020.
7923
E-01
0.7528E-05
0.19
98E+
020.
6030
E-04
0.1084E-05
0.27
05E-
010.5762E+01
0.1460E+02
0.12
03E+
010.
3350
E+00
0.6576E+03
0.91
44E-
020.4051E-01
0.1229E-03
0.29
73E-
130.
2387
E-10
0.39
16E-
090.
4181
E-08
0.65
96E-
080.
1253
E-06
0.3146E-10
0.9464E-09
0.48
47E-
05
0.2900E+00
0.84
43E+
030.4721E+01
0.1419E+02
0.15
09E-
010.
9519
E+03
0.1877E+03
0.25
89E-
020.4933E-01
0.4583E+00
0.2822E-11
0.2696E-11
0.75
88E-
120.
5872
E-12
0.33
84E-
120.6501E-21
0.2041E-04
0.12
86E-
010.
6178
E-01
0.1166E+01
0.13
85E-
100.
6812
E-11
0.22
96E-
110.2111E-11
- - --L.MLUJLAItl
MG/L
0.17
19E-
120.
4645
E-06
0.32
93E-
040.
1504
E-04
0.1338E-19
0.24
29E-
070.
2110
E+02
0.8105E-01
0.7701E-05
0.2044E+02
0.61
69E-
040.1109E-05
0.27
67E-
010.
5895
E+01
0.1494E+02
0.12
30E+
010.
3427
E+00
0.67
27E+
030.9355E-02
0.4144E-01
0.12
57E-
030.
3041
E-13
0.24
42E-
100.4006E-09
0.42
77E-
080.
6747
E-08
0.12
82E-
060.3218E-10
0.9682E-09
0.2967E+00
0.86
38E+
030.4829E+01
0.14
52E+
020.
1544
E-01
0.97
37E+
030.
1920
E+03
0.2648E-02
0.50
46E-
010.4688E+00
0.2887E-11
0.2758E-11
0.7762E-12
0.6007E-12
0.34
62E-
120.6650E-21
0.2087E-04
0.1316E-01
0.6320E-01
0.1193E+01
0.1417E-10
0.69
68E-
110.2349E-11
0.21
60E-
11
j---
- --
----
-MOLALITY
0.73
78E-
180.
1733
E-11
0.10
87E-
090.
4449
E-10
0.45
70E-
250.8207E-13
0.2867E-03
0.8285E-06
0.57
29E-
100.1532E-03
0.4627E-09
0.4691E-10
0.2722E-06
0.7082E-04
0.17
74E-
030.2878E-04
0.84
03E-
050.5661E-02
0.7945E-07
0.3490E-06
0.10
50E-
080.3408E-18
0.1966E-15
0.2516E-14
0.22
02E-
130.
5895
E-13
0.86
01E-
120.2160E-15
0.13
63E-
130.4847E-05
0.1497E-01
0.58
95E-
040.
1751
E-03
0.1475E-06
0.6945E-02
0.1634E-02'
0.2255E-07
0.1218E-05
0.8472E-05
0.12
05E-
160.1005E-16
0.25
08E-
170.
1744
E-17
0.11
57E-
170.7454E-26
0.20
21E-
090.
9028
E-07
0.43
08E-
060.6581E-05
O.U24E-15
0.51
80E-
160.1386E-16
0.10
56E-
16
ACTIVITY
0.4952E-18
0.1733E-11
0.72
94E-
100.
9270
E-11
0.45
70E-
250.55
08E-
130.28
67E-
030.
5494
E-06
0.57
29E-
100.11
03E-
030.3331E-09
0.46
91E-
100.1925E-06
0.7082
E-04
0.11
90E-
030.
1986
E-04
0.63
07E-
050.5661
E-02
0.57
20E-
070.3490E-06
0.7558E-09
0.2288E-18
0.1966E-15
0.1689
E-14
0.4589
E-14
0.3957E-13
0.86
01E-
120.2160E-15
0.9150
E-14
0.3040E-05
0.14
97E-
010.4243E-04
0.1751
E-03
0.14
75E-
060.
6945
E-02
0.11
76E-
020.1623E-07
0.12
18E-
050.8472E-05
0.8091E-17
0.1005E-16
0.1683E-17
0.36
33E-
180.1157E-17
0.15
53E-26
0.1429E-09
0.9028E-07
0.2891E-06
0.65
81E-
050.
9556E-16
0.5180E-16
0.92
99E-
170.2201E-17
HL.I 1V1 1
I
COEF
F.0.6712
1.0000
0.6712
0.20
841.0000
0.6712
1.0000
0.6631
1.0000
0.71
990.
7199
1.0000
0.7072
1.0000
0.67
120.
6901
0.7505
1.0000
0.71
991.0000
0.71
990.6712
1.0000
0.6712
0.2084
0.67
121.0000
1.0000
0.6712
0.62
721.0000
0.71
991.0000
1.00
001.0000
0.71
990.
7199
1.0000
1.0000
0.6712
1.00
000.6712
0.2084
1.0000
0.20
840.7072
1.0000
0.67
121.0000
0.6712
1.0000
0.67
120.2084
uuu i u
ACTIVITY
18.3052
11.7
611
10.1370
11.0329
25.3400
13.2590
3.54
266.2601
10.2419
3.9574
9.4775
10.3287
6.71
564.
1498
3.92
434.7020
5.2002
2.24
717.
2426
6.45
719.
1216
18.6406
15.7065
14.7724
14.3383
13.4027
12.0654
15.6
655
14.0386
5.5171
1.8247
4.3723
3.75
686.8311
2.1583
2.9295
7.78
965.9145
5.0720
17.0920
16.9979
17.7738
18.4397
17.9369
26.8088
9.84
487.0444
6.53
895.
1817
16.0197
16.2856
17.0315
17.6574
PAGE
-
13
-
ro
o
SPE
CIES
162
ZnS04
165
HgOH +
166
Hg(O
H)2
228
CH3C
OOH
230
BaAc
e +
231
CaAc
e +
232
CuAc
e +
233
FeAce
+23
4 Fe
(Ace
)2235
KAce
236
MgAc
e +
237
NaAc
e23
8 Pb
Ace
+23
9 Pb
(Ace
)2240
Pb(A
ce)3
241
SrAc
e +
244
ZnAc
e +
245
Zn(Ace)2
246
C204
--
247
HC204
-24
8 H2
C204
251
BaOx
y25
2 Ca
Oxy
253
FeOxy
254
FeOxy
+255
KOxy
-
256
MgOxy
257
MnQxy
258
MnOx
y)2
259
MnOxy)3
260
MnOxy
261
NaOx
y
262
PbOx
y26
3 Sr
Oxy
264
ZnOx
y265
C4H404--
266
HC4H
404-
267
H2C4
H404
270
BaSuc
271
CaSuc
272
FeSu
c27
3 Fe
Suc
+27
4 KS
uc
-275
MgSu
c27
6 Mn
Suc
277
NaSuc
-27
8 PbSuc
279
SrSu
c280
ZnSu
c281
CaCl +
282
CaCl
2283
FeF
++28
4 Si
F6 -
PPM
MG/L
0.10
000.
1023
0.10
000.
1023
MOLA
LITY
PP
M0.
5996
E-11
0.11
54E-
130.
3371 E- 08
0.1884E-04
0.93
28E-
070.7632E-02
0.27
76E-
130.1712E-12
0.99
78E-
200.2169E-03
0.1848E-01
0.1277E-01
0.55
12E-
160.
9857
E-21
0.17
94E-
260.
4870
E-04
0.1328E-11
0.32
91E-
210.1177E-05
0.1070E-01
0.39
86E-
090.
3629
E-13
0.64
83E-
080.
1277
E-01
0.5935E-12
0.35
89E-
130.
1596
E-03
0.9090E-01
0.8220E-10
0.71
85E-
030.
1751
E-06
0.24
38E-
190.1077E-01
0.40
59E-
150.3077E-04
0.35
18E-
130.
8929
E-06
0.6493E-01
0.22
00E-
050.
4271
E-08
0.94
56E-
070.
7165
E-02
0.2059E-13
0.5205E-13
0.35
70E-
030.1988E-01
0.6694E-11
0.15
59E-
010.
1177
E-15
0.4736E-04
0.69
54E-
150.3582E+03
0.6796E+01
0.1725E-11
0.21
47E-
28
- -- -UU-UJLAItl
MG/L
0.61
34E-
110.1180E-13
0.34
49E-
080.
1927
E-04
0.95
42E-
070.
7808
E-02
0.28
40E-
130.
1751
E-12
0.10
21E-
190.
2219
E-03
0.1891E-01
0.1307E-01
0.5639E-16
0.1008E-20
0.18
35E-
260.
4982
E-04
0.1359E-11
0.3366E-21
0.10
94E-
010.
4078
E-09
0.3713E-13
0.66
32E-
080.1307E-01
0.60
71E-
120.
3672
E-13
0.1633E-03
0.9299E-01
n ft
A noc *
1 n0.
*735
0E-0
30.1791E-06
0.24
94E-
190.1101E-01
0.41
52E-
150.3147E-04
0.3599E-13
0.6642E-01
0.2251E-05
0.43
70E-
080.
9673
E-07
0.7329E-02
0.2107E-13
0.53
25E-
130.
3652
E-03
0.2033E-01
0.6848E-11
0.15
95E-
010.
1204
E-15
0.48
45E-
040.
7114
E-15
0.3665E+03
0.6952E+01
0.1765E-11
0.21
96E-
28
j... ...
....
.MO
LALI
TY0.3850E-16
0.54
95E-
190.
1489
E-13
0.3251E-09
0.4923E-12
0.79
80E-
070.
2347
E-18
0.15
44E-
170.
5945
E-25
0.22
90E-
080.
2298
E-06
0.16
13E-
060.2146E-21
0.31
41E-
260.4838E-32
0.34
41E-
090.
1106
E-16
0.18
59E-
260.1260E-06
0.4640E-14
0.41
78E-
180.
2981
E-13
0.10
33E-
060.
4275
E-17
0.25
86E-
180.
1301
E-08
0.83
86E-
06A *sORQC 1 R
o!37
63E-
080.7178E-12
0.1768E-24
0.10
05E-
060.1425E-20
0.18
15E-
090.
2377
E-18
0.57
98E-
060.1948E-10
0.3749E-13
0.3867E-12
0.47
55E-
070.
1241
E-18
0.31
38E-
180.
2384
E-08
0.14
67E-
060.
4057
E-16
0.1162E-06
0.3774E-21
0.24
09E-
090.
3972
E-20
0.4915E-02
0.63
46E-
040.
2389
E-16
0.15
66E-
33
ACTI
VITY
0.38
50E-
160.
3688
E-19
0.14
89E-
130.
3251
E-09
0.33
97E-
120.
5506
E-07
0.1619E-18
0.10
66E-
170.
5945
E-25
0.22
90E-
080.
1586
E-06
0.16
13E-
060.1481E-21
0.31
41E-
260.3339E-32
0.23
75E-
090.
7634
E-17
0.18
59E-
260.2818E-07
0.3202E-14
0.41
78E-
180.
2981
E-13
0.1033E-06
0.42
75E-
170.
1784
E-18
0.89
79E-
090.8386E-06
0.5959E-45
0.84
16E-
090.
1496
E-14
0.12
20E-
240.6936E-07
0.1425E-20
0.18
15E-
090.
2377
E-18
0.1297E-06
0.13
44E-
100.
3749
E-13
0.38
67E-
120.4755E-07
0.12
41E-
180.2165E-18
0.1645E-08
0.1467E-06
0.4057E-16
0.8018E-07
0.3774
E-21
0.2409E-09
0.39
72E-
200.3299E-02
0.6346E-04
0.4977E-17
0.3262E-34
AU 1
1 V
1 1 I
COEFF.
1.00
000.
6712
1.0000
1.0000
0.6901
0.6901
0.6901
0.6901
1.0000
1.00
000.6901
1.0000
0.6901
1.0000
0.6901
0.6901
0.6901
1.0000
0.2237
0.6901
1.0000
1.0000
1.00
001.0000
0.6901
0.6901
1.0000
1.00
000.
2237
0.0021
0.6901
0.6901
1.0000
1.0000
1.0000
0.2237
0.6901
1.0000
1.0000
1.0000
1.0000
0.6901
0.6901
1.0000
1.0000
0.6901
1.0000
1.0000
1.0000
0.67
121.0000
0.20
840.
2084
- LUlI 1
U
ACTI
VITY
16.4
146
19.4
332
13.8
271
9.4879
12.4689
7.2591
18.7
906
17.9724
25.2
258
8.6401
6.7998
6.7922
21.8
296
26.5
030
32.4
764
9.6244
17.1173
26.7
307
7.5501
14.4946
18.3791
13.5256
6.9858
17.3
690
18.7
485
9.0468
6.0764
*c ??/ft
9.0749
14.8
250
24.9
138
7.1589
20.8
462
9.7410
18.6239
6.88
7110
.871
613.4261
12.4126
7.32
2818.9061
18.6
645
8.7838
6.83
3516.3918
7.0959
21.4
232
9.6181
20.4
010
2.4816
4.19
7517
.303
034
.486
5
PAGE
- 14
-
SPECIES
285
CH4
Gas
286
Pb(HS)2
287
Pb(HS)3-
288
P6C0
328
9 Pb
OH +
290
Zn(HS)2
291
Zn(HS)3-
292
ZnHC03 ^
293
ZnOH +
294
Zn(OH)2
295
ZnHSOH
PPM
0.1000
MG/L
MOLA
LITY
PPM
0.1023
0.6460E-05
0.10
00E+
000.6586E-04
0.1170E-06
0.17
45E-
100.3078E-10
0.2774E-04
0.1414E-05
0.5100E-12
0.2166E-11
0.9555E-13
0.86
28E-
02
MG/L
0.1023E+00
0.67
37E-
040.
1197
E-06
0.1785E-10
0.3149E-10
0.2838E-04
0.14
47E-
050.5217E-12
0.22
16E-
110.9774E-13
0.8827E-02
MOLA
LITY
0.6460E-05
0.24
97E-
090.3957E-12
0.6767E-16
0.1423E-15
0.2186E-09
0.8905E-11
0.4182E-17
0.27
26E-
160.9964E-18
0.7746E-07
ACTI
VITY
O.OOOOE+00
0.24
97E-
090.2656E-12
0.67
67E-
160.
9550
E-16
0.2186E-09
0.59
77E-
110.
2807
E-17
0.18
29E-16
0.99
64E-
180.7746E-07
COEF
F.1.
0000
1.0000
0.6712
1.0000
0.6712
1.00
000.6712
0.6712
0.6712
1.00
001.
0000
ACTIVITY
0.0000
9.60
2612.5758
16.1696
16.0
200
9.6603
11.2
235
17.5518
16.7377
18.0016
7.1109
C3 T-
UJ Q
«- «* «- o in
« T-« « CJCJCJ'*"
oooooooooo oooooooooo i O O «- xj- <I T- Vt I
ooooo
o «-«-«- cj«*««-
UJ o .- - -
sSoliiSO _J _J UJ UJ O >
v> tx.2gJ-
UJ
- CJ ro roz o
a. ooooi-i-i-i->35(o<<o
O I i _i ot acO>- >-oia.Q. t CJ
HI ^N cfc( u <i_i s^ ea
o.a.a.a.CLCLisirsi
S <> p -^ cj ro >* in \o s. s. s. N- s. N-
«*CJrocjrocJOCJ«-roooinroroinrooin>*oOtOO>' « ro«4i ONOin<ocjT-^-ON«4i oo« ocjoeoeoin«4-« »ooo«*o«o«-roo>'CJCJin«)>*oo<o«Oin>j-^cjr>. o<o«* <ocjsj-3cjfMin<o»-T-toro>*«*N.r>.>j-Cj<o
ON<o*-«*f>.rocOvtcor>-cjroo>'«-coo«-«-«- rocj'>i>>i<-><-ON>
oooooooooooooooooooooooooooooooooooooooooooooooooo
cj ro ro «- CJ cj
o o N. oo «-- - - Z31 °^ vo c5 o o to s- s- oinroincj ooroororo
CJ «-«-«- «- CJ ,- ^ ^ ro
z >- _i u o - UJ UJ i-i 1-1
Q£i->OU
ex ex i-> oI < O 00 UJ 00
Z < I O Of >-
Z I UJ UJ111 (3 ! * ^_ III ^^
~ X ~ < « Q
gt
1 *- OJ Iin in] i
O>UJi->O<<<UJ-JUJ a. o (O oo oo
206
PAGE
-
16
-
SAMP
LE ID
ENT
- Te
st Sample #
4 - Ca
/Mg
exchange in s
eawater
(TEM
PERA
TURE
=
25.0
0)
PHAS
E LO
G (AP)
LOG
(KT)
LOG
(AP/
KT)
DELG
PHASE
LOG
(AP)
LO
G (KT)
LOG
(AP/
KT)
DELG
_11
8 Na20~
15.3
63
67.4
30
-52.067
-71.032
176
ZnS
-11.
513
-11.
790
0.27
7 0.
378
121
STRE
NGIT
-3
0.51
0 -2
7.20
0 -3
.310
-4
.516
17
7 Zn
S04
-18.625
3.54
0 -22.165
-30.
238
o <~>
"
IS5
O
c. £ 4^
APPENDIX IV. Listing of SOLMINEQ.88
PROGRAM SOLMIN
Program SOLMINEQ.88 : SOLution-MINeral EQuilibrium 1/11/89 JDD j
Written by: P.K. Aggarwal (now at Battelle) |J.D. DeBraal (U.S. Geological Survey) jW.D. Gunter (Alberta Research Council) |R.W. Hull (U.S. Geological Survey) jY.K. Kharaka (U.S. Geological Survey) jE.H. Perkins (Alberta Research Council) jD.J. Specht (U.S. Geological Survey) j
ISOLMINEQ.88 is based on SOLMNEQ (Kharaka and Barnes, 1973), |SOLMNEQF (Aggarwal and others, 1986), and many other unpublished jversions. |
IThis version has been extensively re-written and modified by |E.H. Perkins. The input format was redesigned in conjunction jwith W.D. Gunter and Y.K. Kharaka; these changes were |implemented by J.D. DeBraal. |
IFinancial support for designing SOLMINEQ.88 was provided by |Brian Hitchon (Alberta Geological Survey) and by the Oil Sands |and Hydrocarbon Recovery department, Alberta Research Council. j
IInput/output units: |
5: Sample input file |6: Output from solmineq.88 |7: Data file for Pitzer's equations |
10: Main data file for solmineq.88 |12: Data file for dissolution reactions of the minerals |
I Routines and their purpose |
IACTIVE : Calculate and print activity products of minerals |ADSORB : Routine for calculating surface adsorption j
and ion exchange |AITLIM : Determines the maximum stepsize for convergence on the j
anions |CALCUL : Calculate analyzed molality, cation-anion balance, j
stoichiometric ionic strength, activity coefficients jof neutral species, temperature effects on debye-huckel|constants, and bdot. |
C020PT : Routine for titrating co2 to a given criterion j(pH, pco2, m(h2co3), or saturation with calcite, jsiderite, or dolomite) j
DISTRB Calculate the distribution of species jDPVT Calculate the vapor pressure and vapor density |GASES Routine for partitioning of a gas phase (co2/ch4) |
Between liquid, oil, and vapor jGUESS Routine for calculating the root of a function which j
is known to change sign in a given interval jINPUT Read sample input file from unit 5 \INTIAL Initialize several variable to 0.0 or default values |LAGINT Calculate logk values for aqueous complexes and j
minerals at the desired temperature (t)
SOL 0010 SOL 0020 SOL 0030 SOL 0040 SOL 0050 SOL 0060 SOL 0070 SOL 0080 SOL 0090 SOL 0100 SOL 0110 SOL 0120 SOL 0130 SOL 0140 SOL 0150 SOL 0160 SOL 0170 SOL 0180 SOL 0190 SOL 0200 SOL 0210 SOL 0220 SOL 0230 SOL 0240 SOL 0250 SOL 0260 SOL 0270 SOL 0280 SOL 0290 SOL 0300 SOL 0310 SOL 0320 SOL 0330 SOL 0340 SOL 0350 SOL 0360 SOL 0370 SOL 0380 SOL 0390 SOL 0400 SOL 0410 SOL 0420 SOL 0430 SOL 0440 SOL 0450 SOL 0460 SOL 0470 SOL 0480 SOL 0490 SOL 0500 SOL 0510 SOL 0520 SOL 0530 SOL 0540 SOL 0550 SOL 0560
209
cccccccccccccccccccccccccccccccccccccccc
-
c-
ccccc
-
c
c
MIXER Routine for precipitation/dissolution, mixing, boilingNACALC Calculate the osmotic coefficient of NaCl (aq) and
pure waterPAGE Keeps track of output pagingPCLOGK Calculate the effect of pressure on logk if pressure
is greater than ph2oPHCALC Routine for calculating pH at £ higher temperaturePHOPT Routine for the pH option (adjust pH to saturation
with calcite or siderite or colomite)PITZER Calculate the activity of aqueous species and the
osmotic coefficient based up the pitzer ion pairingmodel
POLY Solves the cubic equation which describes thepartitioning between gas, oil, and water.
PRATIO Print mole ratio, log of activity ratio, andcalculated subsurface temperatures
PRINTR Print calculated distribution df speciesPRNTAB Print the calculated values of aqueous log kPSAT Calculate the vapor saturated pressure of water (ph2o)
at temperature tPTZINT Calculate the parameters for the pitzer equation as a
function of temperatureSORTA Sorts arraysSTORE Creates the restart fileTABLES Read main data file from unit 10WAPVT Calculate the properties of pure waterWDBP Calculate the dielectric properties of water
Functions
ATCPRD Calculates the activity product of a mineralDEBYE Determines the value of an unknown ion size parameterGETUNT Return the unit number of a fileKHCH4 Calculate the Henry's law constant for CH4KHC02 Calculate the Henry's law constant for C02KHH2S Calculate the Henry's law constant for H2SKHNH3 Calculate the Henry's law constant for NH3LENGTH Determines the length of a character stringSEXP10 Substitute exponetial functionSLOG10 Substitute common log function
Declare constants
CPUMAX DBL Largest positive real value program usesCPUMIN DBL Smallest positive real value program usesNMAX INT General array dimension to allow easy expansionUNI INT File unit assigned for input fileUNO INT File unit assigned for output file
INTEGER NMAX, UNI, UNODOUBLE PRECISION CPUMAX, CPUMINPARAMETER (NMAX - 340, UNI - 5, UNO - 6)PARAMETER (CPUMAX - l.OD+35, CPUMIN - l.OB-35)
---__------------------_--_------_--_---_--_i-_-__-________________.Declare variables
*A DBL Molal Debye-Huckel coeffiiient
|SOL 0570JSOL 0580JSOL 0590ISOL 0600ISOL 0610JSOL 0620|SOL 0630(SOL 0640JSOL 0650|SOL 0660(SOL 0670JSOL 0680JSOL 0690ISOL 0700JSOL 0710|SOL 0720(SOL 0730JSOL 0740|SOL 0750|SOL 0760(SOL 0770|SOL 0780JSOL 0790ISOL 0800JSOL 0810JSOL 0820|SOL 0830JSOL 0840JSOL 0850|SOL 0860|SOL 0870JSOL 0880JSOL 0890JSOL 0900JSOL 0910JSOL 0920|SOL 0930JSOL 0940JSOL 0950JSOL 0960
| SOL 0970 |SOL 09801 SOT OQQOI i3wi_i \jyy\j
JSOL 1000JSOL 1010|SOL 1020JSOL 1030JSOL 1040JSOL 1050SOL 1060SOL 1070SOL 1080SOL 1090SOL 1100|SOL 1110ISOL 1120JSOL 1130ISOL 1140
210
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
A1MIXAD ENSAD EXAHIALFAALKALOWAMOLANALMANMMIXANMTICATEMPBB2MIXBOATBDENSBOOTBHIBLOWBNMMIXBTEMPBUFFERCECCHICLOWC02FCOEFCONV1CONV2CRCUNITSDCH4DDCH4DC02DDC02DH2SDDH2SDNH3DDNH3DELVRDENSDFRAC1DHADINGDNSDPDSEPEHMEHMCEMFZSCEXELTFBOILFCCSATFILEINFILEOTFIXITFLAGSFMIX
DBLDBLINTDBLDBLINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLCHADBLDBLDBLDBLDBLDBLDBLCHADBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLCHADBLDBLDBLDBLDBLDBLDBLDBLCHACHADBLINTDBL
HTOT, OHTOT, and TIC for comp 1 of a mixture |SOL 1150Density of solution A jSOL 1160Flag for surface chemistry option (SOL 1170Pressure correction fit parameter jSOL 1180Activity of aqueous species i |SOL 1190Flag for distribution of carbonate species (SOL 1200Pressure correction fit parameter JSOL 1210Molality of aqueous/mineral species added |SOL 1220Analyzed molality of species i |SOL 1230Analyzed molality of species i in solution A |SOL 1240Analysed TIC |SOL 1250Temperature of solution A |SOL 1260Molal Debye-Huckel coefficient jSOL 1270HTOT, OHTOT, and TIC for comp 1 of a mixture jSOL 1280B-dot as a function of temperature |SOL 1290Density of solution B |SOL 1300Activity coefficient deviation function (SOL 1310Pressure correction fit parameter JSOL 1320Pressure correction fit parameter (SOL 1330Analyzed molality of species i in solution B (SOL 1340Temperature of solution B |SOL 1350Used for memory/memory writes j SOL 1360Cation exchange capacity JSOL 1370Pressure correction fit parameter j SOL 1380Pressure correction fit parameter j SOL 1390Sum of C02 plus C02 lost from solution |SOL 1400Stoichiometric coefficient and Id number |SOL 1410Tolerance factor for convergence of anions j SOL 1420Tolerance factor for hydronium mass-balance |SOL 1430Inserts carriage returns in output j SOL 1440Analytical input concentration |SOL 1450Used to add/remove CH4 from water JSOL 1460 Concentration of CH4 lost before pH measurement |SOL 1470Used to add/remove C02 from water JSOL 1480 Concentration of C02 lost before pH measurement JSOL 1490Used to add/remove H2S from Water JSOL 1500 Concentration of H2S lost before pH measurement |SOL 1510Used to add/remove NH3 from water JSOL 1520 Concentration of NH3 lost before pH measurement JSOL 1530Change in volume at 25 degrees |SOL 1540Density |SOL 1550Smallest fraction of soln 1 mixed with soln 2 JSOL 1560Ion size parameter JSOL 1570Increment of solution 1 to be added |SOL 1580Determines if density should be calculated JSOL 1590Dissolution/precipitation switch JSOL 1600Density of oil at 15 degree C JSOL 1610Measured Eh in volts |SOL 1620Measured Eh using the Calomel electrode |SOL 1630Measured Eh using the Zobell's solution JSOL 1640Total moles of component. |SOL 1650Fraction of solution boiled-off as steam |SOL 1660Tolerance factor for pH and C02 options j SOL 1670Name of input file |SOL 1680Name of output file j SOL 1690Fixing value in the C02 option . |SOL 1700Selection flags for calculation of redox equil. JSOL 1710Stores fraction of mixing |SOL 1720
211
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
GAMMAGEOTHGFWHITEMPHTOTHTOTIIIACTIADJIBMIXI CALLICCSATIC02IDDPIDMIXIDNID SATIEXCHIGASILOIMAXIMC03IMIXINFORMINMIXINSPIOPTI PAGEIPGLNI PHASEIPHNUMIPITIPRIN1IPRIN2IRUNIRXDPI SALTI SATISCHGISCOMPITICITMIXITWRJJCCSTJC03JMIXTRKCH40LKC020LKH2SOLKRXNKT1LKT1LKT2LOGKT1LOGKT2MMBASE
DELINTDELDELDELDELINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTDELDELDELDELDELDELDELDELDELDELDEL
Activity coefficient |SOL 1730Flag to select geothermometer j SOL 1740Gram formula weight of aqueous species |SOL 1750In-situ temperature |SOL 1760Current sum of all H+ in solution jSOL 1770Target sum of all H+ in solution |SOL 1780Loop variable/counter jSOL 1790Switch for printing activity ratios |SOL 1800Has HITEMP been calculated or not |SOL 1810Switch for mixing option jSOL 1820Loop variable |SOL 1830Switch for pH option jSOL 1840Switch for C02 option |SOL 1850Id number of the mineral to be dissolved/ppt jSOL 1860Id number of the aqueous species to be added |SOL 1870Id numbers of the ISCOMP components adsorption [SOL 1880Id number of the mineral to be equilibrated jSOL 1890Switch for adsorption/ion exchange |SOL 1900Loop variable for gas qption |SOL 1910Lower limit for index for low/high T log K's |SOL 1920Max number of iterations for various options jSOL 1930Selects C02 option |SOL 1940Switch used in MIXER routines |SOL 1950 Flag to print all the log K values in data base jSOL 1960Total number of mixtures of two solution mixed jSOL 1970Total number of surface sites for adsorption [SOL 1980Switch for C02 option jSOL 1990Current page number of output file |SOL 2000Current line number of the output file jSOL 2010Switch used for GAS options |SOL 2020Counter used in PHCALC |SOL 2030Flag to use pitzer activity coefficients jSOL 2040Flag for printing iteration of anions jSOL 2050Flag for printing hydronium balance j SOL 2060Keeps track of the number of runs completed |SOL 2070Id number of the aqueous species to be added [SOL 2080Switch used in mixer to indicate option jSOL 2090Counter used in co2opt |SOL 2100Charge of each surface site for adsorption jSOL 2110Total number of components in dissociation jSOL 2120Hitemp distribution of carbonate species jSOL 2130Switch for the mineral saturation option jSOL 2140Switch to control printing of some headings |SOL 2150Loop counter jSOL 2160Switch indicating if phopt called 1st time [SOL 2170Switch to control printing of some headings jSOL 2180Counter for maximum number of mixtures [SOL 2190Henry's law coefficient for CH4 in oil [SOL 2200Henry's law coefficient for C02 in oil jSOL 2210Henry's law coefficient for H2S in oil jSOL 2220K for dissociation reaction of surface species jSOL 2230Equilibrium constant of the aqueous reactions jSOL 2240Log K for aqueous species with temperature jSOL 2250Log K for minerals with temperature [SOL 2260Log K for aqueous species at specified temp. |SOL 2270Log K for minerals at specified temperature |SOL 2280Calculated molality of ^queous species |SOL 2290Equivalence Mole Fraction (initial) on surface SOL 2300
212
cccccccccccccccccccccccccccccccccccccccccccccccccccccc
MINCOMININDMINLOGMNACLDMUMXAQKMXMNKMXPCMXSPNDUMNH20NUFLAGODUMOHTOTOHTOTIOKOUTINPAGE1PAGE 2PAGE3PC02PHPH20PHHITPPHHITPRESSRATIORXDPSAREASC02SPNTAREATCH4MTC02TC02MTDSTEMPTH2SMTICTIT1TIT2TITLETITMIXTITRTKTOFTOTELUNITSUNMWROILXDXDUMY28Z
INTEGERINTEGERINTEGER
DBLINTDBLDBLDBLINTINTINTINTINTDBLINTCHADBLDBLINTCHACHACHACHADBLDBLDBLINTINTDBLINTDBLDBLDBLCHADBLDBLDBLDBLDBLDBLDBLDBLCHACHACHACHADBLDBLCHADBLCHAINTDBLDBLDBLINTINT
Stoichiometric coefficient for added mineralsIndex number of the added mineralLog K values for added mineralsSum of Molality * charge / 2Ionic strength of aqueous solutionTotal number of aqueous log k valuesTotal number of mineral log k valuesTotal number of mineral pressure constantsTotal number of aqueous speciesId of mineral/aqueous complex with K(T) changedNumber of water ionization reactions
|SOL 2310JSOL 2320|SOL 2330JSOL 2340|SOL 2350JSOL 2360|SOL 2370JSOL 2380|SOL 2390JSOL 2400|SOL 2410
Sets the activity coefficients of neutral species) SOL 2420Switch to indicate a mineral/aqueous complexCurrent sum of all OH- in solutionTarget sum of all OH- in solutionError flag for Lagrange interpolation routineName of restart file nameNames of aqueous speciesNames of equilibrium constantsNames of solubility constantsPartial pressure of C02Measured pH of the solutionPartial pressure of H20Hitemp switch, used to control phcalcSwitch to control calling phcalcTotal pressureFlag for printing activity ratios of elementsMolal amount of the aqueous species addedTotal surface area per kilogram of solventSum of C02 speciesName of each surface species adsorptionSite density per unit areaMoles CH4 distributed between oil, water, vaporActivity coefficients of C02 with temperatureMoles C02 distributed between oil, water, vaporTotal Dissolved Solids (UNITS = KG/L)Temperature of the solution when pH was measuredMoles H2S distributed between oil, water, vaporConcentration of total inorganic carbonName of solution AName of solution BName of the sampleTitle for mixturesIteration array in DISTRB, used for guessesTemperature steps used by programPlaces a form feed in output fileContains HTOT, OHTOT and Sum C02Units of concentrationFile unit connected the external mixing fileOil to water weight ratioHolds Log K's for additional anions & cationsNew log K(T) valueSet at hitemp to skip unneeded calculationsCharge of aqueous species
ALK, ANSI, ANS2, FLAGS (6), GEOTHI, IACT , IADJ, IBMIX, ICALL, ICCSAT, IC02, IDDPIDMIX(50), IDN(10,10), IDONE, IDSAT
|SOL 2430JSOL 2440|SOL 2450JSOL 2460|SOL 2470JSOL 2480|SOL 2490JSOL 2500|SOL 2510JSOL 2520JSOL 2530|SOL 2540|SOL 2550|SOL 2560|SOL 2570JSOL 2580JSOL 2590|SOL 2600|SOL 2610JSOL 2620|SOL 2630|SOL 2640|SOL 2650JSOL 2660JSOL 2670|SOL 2680|SOL 2690|SOL 2700|SOL 2710|SOL 2720|SOL 2730JSOL 2740|SOL 2750|SOL 2760JSOL 2770JSOL 2780|SOL 2790|SOL 2800JSOL 2810|SOL 2820|SOL 2830|SOL 2840i COT OP ̂ n 1 bULi ZoDU
SOL 2860SOL 2870SOL 2880
213
INTEGER IEXCH, IGAS, ILO, IMAX, IMC03, IMIX, INFORM, INMIX, INSP INTEGER IOPT, IPAGE, IPGLN, IPHASE, IPHNUM, IPIT, IPRINl, IPRIN2 INTEGER IRUN, IRXDP(IO), ISALT, ISAT, ISCHG(IO), ISCOMP(IO) INTEGER ITIC, ITMIX, ITT, ITWR, J, JCCST, JC03, JMIXTR, LEN INTEGER LENGTH, MININD(8,5), MIXFLG, MXAQK, MXMNK, MXPC, MXSP INTEGER NDUM(12), NUFLAG, NUM, NUMCOM, NUMINS, OK, PHHIT, PPHHIT INTEGER RATIO, UNM, Y28, Z(NMAX)
CHARACTER*! CHARACTER*5 CHARACTER*8 CHARACTER*10 SPN(IO) CHARACTER*32 TIT1, TIT2 CHARACTER*40 TITMIX CHARACTER*80 ANS, BUFFER
ADEX, CR, DNS, ODUM(12), TOFUNITSPAGEl(NMAX), PAGE2(NMAX), PAGES(NMAX)
FILEIN, FILEOT, MIXFLE, OUTIN, TITLE
DOUBLE PRECISION A, AlMIX(5), ADENS, AHI(200), ALFA(NMAX) DOUBLE PRECISION ALOW(200), AMOL(50), ANALM(NMAX), ANMMIX(NMAX)
SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL
DOUBLE PRECISION ANMTIC, ATEMP, B, B2MIX(5), BDAT(IO), BDENS, BDOTSOL DOUBLE PRECISION BHI(200), BLOW(200), BNMMIX(NMAX), BTEMP SOLDOUBLE PRECISION CEC, CHI(200), CLOW(200), C02FDOUBLE PRECISION COEF(10,10), CONV1, CONV2DOUBLE PRECISION CUNITS(NMAX), DCH4, DC02, DDCH4, DDC02, DDH2SDOUBLE PRECISION DDNH3, DELVR(NMAX), DENS, DFRAC1, DH2SDOUBLE PRECISION DHA(NMAX), DING, DNH3, DPDOUBLE PRECISION EHM, EHMC, EMFZSC, EXELT(35)DOUBLE PRECISION FBOIL, FCCSAT, FIXIT, FMIX(IO)DOUBLE PRECISION GAMMA(NMAX), GFW(NMAX), HITEMP, HTOT, HTOTIDOUBLE PRECISION KCH40L, KC020L, KH2SOL, KRXN(IO)DOUBLE PRECISION KTl(NMAX)DOUBLE PRECISION LKT1(NMAX,11), LKT2(NMAX,11)DOUBLE PRECISION LOGKTl(NMAX), LOGKT2(NMAX), M(NMAX)DOUBLE PRECISION MBASE(10), MINCO(9,5), MINLOG(2,5)DOUBLE PRECISION MNACLD, MU, NH20(NMAX), OHTOT, OHTOTIDOUBLE PRECISION PC02, PH, PH20, PRESS, DSEP, RXDP(IO)DOUBLE PRECISION SAREA, SC02
TCH4M, TC02(10), TC02M, TDS, TEMP TIC, TITR(ll), TK(ll), TOTEL(5) XD(2,45), XDUM(12)
DOUBLE PRECISION TAREA DOUBLE PRECISION TH2SM DOUBLE PRECISION WROIL
EXTERNAL ACTIVE, EXTERNAL INTIAL, EXTERNAL PRNTAB,
INTRINSIC DABS, DLOG10, INDEX
SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOL SOLSOL
COMMON /AL / NDUM, XDUM SOLCOMMON /ALOGK / LOGKT1, LOGKT2 SOLCOMMON /AMM / IDMIX, AMOL, ITMIX, INMIX, DFRAC1, DING, FBOIL SOLCOMMON /BASIC / DENS, PRESS, EHM, EHMC, EMFZSC, TIC, FCCSAT, XD, SOL
NUMCOM, NUMINS, MINLOG, MINCO, MININD, CONV1, SOLCONV2 SOL
COMMON /CH / ODUM SOLCOMMON /DIST / TC02M, TCH4M, TH2SM, WROIL, KCH40L, KC020L, SOL
KH2SOL, IPHASE, DSEP SOLCOMMON /EXCHAN/ COEF, MBASE, KRXN, CEC, TAREA, SOL
SAREA, IDN, ISCHG, ISCOMP^ INSP SOLCOMMON /EXTOT / EXELT, TOTEL, TITR SOL
2890290029102920293029402950296029702980299030003010302030303040305030603070308030903100311031203130314031503160317031803190320032103220323032403250326032703280329033003310332033303340335033603370338033903400341034203430344034503460
214
r>\J -
CCCC
COMMON /FLAGCM/ ALK, ITIC, ICCSAT, IMC03 , ITT, ANSI, ANS2,NUFLAG, IPIT, FLAGS, INFORM, RATIO, GEOTH,IPRIN1, IPRIN2
COMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /IMM / IBMIX, IMIXCOMMON /KK / LKT1, LKT2COMMON /MM / ANMMIX, AlMIX, B2MIX, FMIX, BNMMIX, ADENS , BDENS ,
ATEMP, BTEMPCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /NAMES1/ PAGE1, PAGE 2 , PAGE3COMMON /NAMES 2/ SPNCOMMON /NAMES3/ MIXFLE, OUTIN, TITLE, UNITS, ADEXCOMMON /PTK / DELVR, NH20, ALOW, BLOW, CLOW, AHI , BHI , CHICOMMON /SAT/ IDDP, IDSAT, DP, RXDP, IRXDPCOMMON /TABCOM/ MXSP, MXMNK, GFW, Z, DHACOMMON /TOTALS/ C02F, HTOTI , OHTOTICOMMON /TTK / KT1COMMON /ZPH / PHHIT, PPHHIT, JC03, SC02 , HTOT, OHTOT
The following open statements have been commented out byErnie Perkins (ORSD, ARC) in order to allow a commandproceedure under VMS 4.5 on DEC VAX's to assign the filesexternal to the program.
PRINT *, ' ENTER THE NAME OF THE SAMPLE INPUT FILE ?'PRINT*, ' Default- [ SOLMINEQ . IN ]'READ ' (A) ' , FILEINIF (FILEIN ,EQ. ' ') FILEIN - ' SOLMINEQ. IN'
NUM - INDEX (FILEIN, '.')
IF (NUM .EQ. 0) THENNUM - LENGTH (FILEIN)FILEOT - FILEIN(1:NUM) // '.OUT'
ELSEFILEOT - FILEIN(liNUM) // 'OUT'
END IF
LEN = LENGTH (FILEOT)
PRINT *, ' ENTER THE NAME OF THE OUTPUT FILE ?'PRINT '(IX, A, A, A)', ' Default- [', FILEOT (1: LEN ), ']'READ ' (A) ' , ANSIF (ANS .NE. ' ') FILEOT = ANS
OPEN (UNIT-UNI, FILE - FILEIN, STATUS - 'OLD')OPEN (UNIT-UNO, FILE - FILEOT, STATUS - 'UNKNOWN')
TOF - '!'CR - '+'
SOL 3470SOL 3480SOL 3490SOL 3500SOL 3510SOL 3520SOL 3530SOL 3540SOL 3550SOL 3560SOL 3570SOL 3580SOL 3590SOL 3600SOL 3610SOL 3620SOL 3630SOL 3640SOL 3650SOL 3660SOL 3670SOL 3680|SOL 3690 SOL 3700|SOL 3710 |SOL 3720|SOL 3730|SOL 3740JSOL 3750SOL 3760SOL 3770SOL 3780SOL 3790SOL 3800SOL 3810SOL 3820SOL 3830SOL 3840SOL 3850SOL 3860SOL 3870SOL 3880SOL 3890SOL 3900SOL 3910SOL 3920SOL 3930SOL 3940SOL 3950SOL 3960SOL 3970SOL 3980SOL 3990|SOL 4000 SOL 4010SOL 4020SOL 4030SOL 4040
215
MIXFLG IRUN IPGLN I PAGE
DO 10 I - 1, NMAX PAGEl(I) = ' GFW(I) = 0.0 DHA(I) = 0.0 Z(I) - 0
10 CONTINUE
Read the data base on unit 10
CALL TABLES (MXAQK, BDAT, TK, TC02, MXPC)
Initialize values for each new sample input
20 CONTINUE ICALL = 0 ISALT = 0 IMIX = 0 IBMIX = 0 JMIXTR = 0 INMIX = 0 TITMIX = '
CALL INTIAL (OK, ALK, INFORM, RATIO, GAMMA, TEMP, HITEMP, PRESS, HTOTI, OHTOTI, IC02, IMC03, IBMIX, FCCSAT, IEXCH, ISAT, IPHNUM, JCCST)
Read one data set from the input file on unit 5
CALL INPUT (UNI, TEMP, HITEMP, DNS, PHHIT, IEXCH, IC02, MIXFLG)
ILO - 1
Compute aqueous LOGKT'S at the desired temperature
30 CONTINUECALL LAGINT (TK, LKT1, TEMP, LOGKT1, MXAQK, NMAX, OK)
If the sample "TEMP" is within the range from 0-350 degrees then continue, otherwise get the next data set or stop.
IF (OK .NE. 1) THENCALL STORE (TEMP, HITEMP) GO TO 20
SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOL
| SOL| SOLj SOL| SOLSOLSOLSOLSOL
4050406040704080409041004110412041304140415041604170418041904200421042204230424042504260427042804290430043104320433043404350436043704380439044004410442044304440445044604470448044904500451045204530454045504560457045804590460046104620
216
END IF
C Compute mineral LOGKT'S at the desired temperature. C ----.-....-.-.-.---..-.....-.-.-----....-----------------
CALL LAGINT (TK, LKT2, TEMP, LOGKT2, MXMNK, NMAX, OK)
C Calculate the saturation pressure of H20 C ------.-...-...--....-......--------.....-...
CALL PSAT (TEMP, PH20)
If input pressure is greater than PH20, the logkt ofaqueous species are adjusted using the "density model" of mesmerIf hitemp is > 0, adjustment of logkt is done only at hitemp.
IADJ = 0IF (PHHIT .EQ. 1) THEN
IF (DABS(HITEMP - TEMP) .LT. CPUMIN) THENILO = 7
ELSEIADJ - 1
END IF END IF
Replace some of the logkt's that were read in input
DO 40 I = ILO, (ILO + 5) IF (NDUM(I) .GT. 0) THEN
IF (ODUM(I).EQ.'A') THENLOGKT1(NDUM(I)) = XDUM(I)
ELSE IF (ODUM(I).EQ.'M') THENLOGKT2(NDUM(I)) = XDUM(I)
END IF END IF
40 CONTINUE
DO 50 I = 2, 15IF (DABS(HITEMP - TEMP) .LT. CPUMIN) THEN LOGKTl(MXAQK+I- 1) = XD(2,I) LOGKTl(MXAQK+I+13) = XD(2,I+15) LOGKTl(MXAQK+I+27) = XD(2,I+30)
ELSELOGKTl(MXAQK+I- 1) = XD(1,I) LOGKTl(MXAQK+I+13) = XD(1,I+15) LOGKTl(MXAQK+I+27) = XD(1,1+30)
END IF 50 CONTINUE
DO 60 I - 1, 5IF (DABS(HITEMP - TEMP) .LT. CPUMIN) THEN
SOLSOL
| SOL[SOLj SOLSOLSOLSOL
| SOL[SOLj SOLSOLSOLSOLSOL
| SOLj SOLj SOL[SOLI SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
| SOLj SOL| SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
4630464046504660467046804690470047104720473047404750476047704780479048004810482048304840485048604870488048904900491049204930494049504960497049804990500050105020503050405050506050705080509051005110512051305140515051605170518051905200
217
LOGKT2(MXMNK+I) ELSELOGKT2(MXMNK+I)
END IF 60 CONTINUE
MINLOG(2,I)
MINLOG(1,I)
Adjust aqueous logkts for the pressure difference (press - ph2o)
IF (IADJ .EQ. 0 .AND. PRESS .GT. PH20 .AND. PRESS .GT. l.ODOO) CALL PCLOGK (TEMP, PH20, PRESS, MXAQK, MXPC)
Reset aqueous logkt's so there will be no zero divide and calculate kt from logkt
DLOGIO(CPUMIN) DLOGIO(CPUMAX)
DO 70 I = 1, NMAXIF (LOGKTl(I) .LT. DLOGIO(CPUMIN)) LOGKTl(I) IF (LOGKTl(I) .GT. DLOGIO(CPUMAX)) LOGKTl(I) KT1(I) = 10.0**(LOGKT1(I))
70 CONTINUE
Print log k values
IF (INFORM .EQ. 1) CALL PRNTAB (TITLE, TEMP, MXAQK) Y28 = 1
If "temp" is greater than 0 and equal to "hitemp" then go to calculate.
IF (TEMP.GT.1.0D-10.AND.(DABS(HITEMP-TEMP)).LT.l.OD-10) GO TO 80 ALFA(8) - 10.0DOO**(-PH)
Calculate the molality of total inorganic carbon from the given value of tic and assign first-guess values to the concentration of hco3 and co3
IF (TIC .GT. CPUMIN) THENIF (UNITS .NE. ANMTIC = TIC CUNITS(98) =
CUNITS( 7) = CUNITS(98) = CUNITS( 7) -
ELSE ANMTIC CUNITS(98) -
'MOL/L' .AND. UNITS .NE. 'MOL/K' ) THEN/ 12011.0(TIC / 12011.0) / (l.ODOO + (ALFA(8) / KT1(1))
+ (ALFA(8)**2.0 / (KT1(1) * KT1(72)))) CUNITS(98) * ALFA(8) / KT1(1) CUNITS(98) * 1.0D3 * GFW(98) CUNITS( 7) * 1.0D3 * GFW( 7)
TICTIC / (l.ODOO + (ALFA(8) / KT1(1))
(ALFA(8)**2.0CUNITS( 7) - (CUNITS(98) * ALFA(8) / KTl(l))
* KT1(72))))
SOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOL
| SOL| SOL| SOLI SOLSOLSOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOL
| SOL| SOLI SOL| SOLSOLSOLSOLSOL
| SOLI SOL| SOL| SOL| SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
5210522052305240525052605270528052905300531053205330534053505360537053805390540054105420543054405450546054705480549055005510552055305540555055605570558055905600561056205630564056505660567056805690570057105720573057405750576057705780
218
END IF ALK - 2
END IF
Y28 - 0
SOL 5790 SOL 5800 SOL 5810 SOL 5820 SOL 5830 SOL 5840
____._.____________._-----------------------------------------------| SOL 5850Calculation of eh, cation-anion balance, gamma of neutral species)SOL 5860temperature effects on debye-huckel constants and assignment (SOL 5870of mass-balance criteria for speciation calculations (SOL 5880
_____________________.____.-------------------------..------.-----.-jSOL 5890SOL 5900
80 CONTINUE SOL 5910CALL CALCUL (A, B, TDS, Y28, DNS, TEMP, HITEMP, PRESS, DENS, EHM, SOL 5920
EHMC, EMFZSC, GFW, Z, UNITS, MXSP, TIC, ANMTIC, SOL 5930GAMMA, TC02, BOAT, BOOT, MNACLD, NUFIAG) SOL 5940
SOL 5950 .....................................................................|SOL 5960
|SOL 5970 I SOL 5980
-----|SOL 5990 SOL 6000 SOL 6010 SOL 6020 SOL 6030 SOL 6040 SOL 6050
-----|SOL 6060jSOL 6070
..................................................................|SOL 6080SOL 6090
CALL DISTRB (NUFIAG, FLAGS, GAMMA, Z, DHA, TEMP, HITEMP, EHM, ALK,SOL 6100 TITLE, A, B, MXSP, MXAQK, MU, IPRIN1, IPIT, TK, SOL 6110 CONV1, ANMTIC, ITIC, HTOT, OHTOT, SC02, JC03, ITWR, SOL 6120 BOOT) SOL 6130
SOL 6140IF (PHHIT .EQ. 1 .AND. DABS(HITEMP-TEMP) .LT. l.OD-10) GO TO 110 SOL 6150 IF (PHHIT .NE. 1 .AND. IOPT .GT. 0) GO TO 120 SOL 6160
SOL 6170IF (ICCSAT .EQ. 0) THEN SOL 6180
IACT - 1 SOL 6190 GO TO 100 SOL 6200
END IF SOL 6210SOL 6220
-----|SOL 6230 |SOL 6240
..................................................................j SOL 6250SOL 6260
IF (ICCSAT .GT. 0) CALL PHOPT (ICCSAT, FCCSAT, ITWR, JCCST, *90) SOL 6270 IF (PHHIT . EQ. 1) IACT - 1 SOL 6280
SOL 6290-----|SOL 6300
jSOL 6310 .....................................................................| SOL 6320
SOL 6330100 CONTINUE SOL 6340
CALL PRINTR (TITLE, EHM, UNITS, DENS, PRESS, GFW, TEMP, Z, GAMMA, SOL 6350PH20, PC02, TDS, MU, MNACLD, SC02, HTOT, OHTOT, MXSP)SOL 6360
ITWR is set equal to 1 in distrb to avoid the printing of headings during ph calculations
ITWR = 0
90 CONTINUE IACT - 0
Distribution of species calculations
Do the ph option, if asked for
Print the distribution of species calculations.
219
IF (IACT .EQ. 1) GO TO 210
Iteration routine for the calculation of a new ph
110 CONTINUEIF (PPHHIT .EQ. 0) CALL PHCALC (TEMP, HITEMP, CONV2, ITIC, ITWR,
ISALT; IPHNUM, IPRIN2, *30, *90,*100, *220)
Do the co2 option
120 CONTINUEIF (IOPT .GT. 0) THEN
CALL C020PT (TEMP, HITEMP, GAMMA, IC02, IMC03, FCCSAT, MNACLDITIC, ISAT, IPRIN2, *100)
GO TO 110 END IF
Gas distribution option. Note a max. of twenty five tries
IF (IPHASE .GT. 0) THEN IMAX = 25DO 150 IGAS = 1, IMAX
I = IGAS CALL GASES (TEMP, PRESS, MNACLD, PH20, FCCSAT, I, IMAX,
IPRIN2)IF (IPHASE .LE. 0) GO TO 160 JC03 = 0 ITIC = 2 IOPT = 0 PHHIT = 1 PPHHIT = 0 IPHNUM = 0 DO 140 J - 1, IMAX
CALL PHCALC (TEMP, HITEMP, CONV2, ITIC, ITWR, ISALT, IPHNUMIPRIN2, *150, *130, *150, *150)
GO TO 150 130 CONTINUE
CALL DISTRB (NUFLAG, FLAGS, GAMMA, Z, DHA, TEMP, HITEMP,EHM, ALK, TITLE, A, B, MXSP, MXAQK, MU, IPRIN1 IPIT, TK, CONV1, ANMTIC, ITIC, HTOT, OHTOT, SC02, JC03, ITWR, BDOT)
140 CONTINUE 150 CONTINUE 160 CONTINUE
IACT = 0 CALL PRINTR (TITLE, EHM, UNITS, DENS, PRESS, GFW, TEMP, Z,
GAMMA, PH20, PC02, TDS, MU, MNACLD, SC02, HTOT, OHTOT, MXSP)
END IF
SOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOL,SOLSOLSOLSOLSOL
| SOL| SOL| SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL,SOLSOLSOLSOLSOL,SOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOLSOL
6370638063906400641064206430644064506460647064806490650065106520653065406550656065706580659066006610662066306640665066606670668066906700671067206730674067506760677067806790680068106820683068406850686068706880689069006910692069306940
220
ocp\J
c\j Cc
Exchange and adsorption options
IF (IEXCH .GT. 0) THENUNITS = 'MOL/K'IMAX = 100HI TEMP = TEMPDO 190 ICALL = 1, IMAX
I = ICALLCALL ADSORB (TEMP, Z, IDONE, I, IEXCH, MXSP, IPRIN2)IF (IDONE .LE. 0) THEN
IEXCH = 0GO TO 200
END IFJC03 = 0ITIC = 2IOPT = 0PHHIT = 1PPHHIT = 0IPHNUM = 0CALL DISTRB (NUFLAG, FLAGS, GAMMA, Z, DMA,' TEMP, HITEMP, EHM,
ALK, TITLE, A, B, MXSP, MXAQK, MU, IPRIN1,IPIT, TK, CONV1, ANMTIC, ITIC, HTOT, OHTOT,SC02, JC03, ITWR, BDOT)
DO 180 J - 1, IMAXCALL PHCALC (TEMP, HITEMP, CONV2 , ITIC, ITWR, ISALT, IPHNUM
IPRIN2, *190, *170, *190, *190)GO TO 190
170 CONTINUECALL DISTRB (NUFLAG, FLAGS, GAMMA, Z, DHA, TEMP, HITEMP,
EHM, ALK, TITLE, A, B, MXSP, MXAQK, MU,IPRIN1, IPIT, TK, CONV1, ANMTIC, ITIC, HTOT,OHTOT, SC02, JC03, ITWR, BDOT)
180 CONTINUE190 CONTINUE
IPGLN = IPGLN + 6IF (IPGLN .GT. 58) CALL PAGEWRITE (UNO, 910)
200 CONTINUEIACT = 0CALL PRINTR (TITLE, EHM, UNITS, DENS, PRESS, GFW, TEMP, Z,
GAMMA, PH20, PC02 , TDS , MU, MNACLD, SC02 , HTOT,OHTOT, MXSP)
END IF
IF (IACT .EQ. 1) GO TO 220
Print mole ratios, log of activity ratios, and temperaturescalculated by chemical geothermometers
210 CONTINUECALL PRATIO (TITLE, PRESS, TEMP, DENS, UNITS, PC02 , GEOTH, RATIO)
| ID\JLJ u y j\j
JSOL 6960|SOL 6970SOL 6980SOL 6990SOL 7000SOL 7010SOL 7020SOL 7030SOL 7040SOL 7050SOL 7060SOL 7070SOL 7080SOL 7090SOL 7100SOL 7110SOL 7120SOL 7130SOL 7140SOL 7150SOL 7160SOL 7170SOL 7180SOL 7190SOL 7200,SOL 7210SOL 7220SOL 7230SOL 7240SOL 7250SOL 7260SOL 7270SOL 7280SOL 7290SOL 7300SOL 7310SOL 7320SOL 7330SOL 7340SOL 7350SOL 7360SOL 7370SOL 7380SOL 7390SOL 7400SOL 7410SOL 7420SOL 7430SOL 7440|SOL 7450 |SOL 7460|SOL 7470|SOL 7480SOL 7490SOL 7500SOL 7510SOL 7520
221
Calculate and print activity products of phases
CALL ACTIVE (TITLE, ALFA, TEMP, MXMNK, LOGKT2, PAGE3, MINCO, MININD)
IF (IACT .EQ. 1) GO TO 110
Process the mixing/boiling/mineral saturation option
220 CONTINUEIF (IBMIX .NE. 0) THEN
IF (IRUN .EQ. 0 .AND. ISALT .EQ. 0) THENTIT1 - TITLE
END IFIF (IBMIX ,EQ. 1) THEN
IF (ICALL .NE. 3) THENICALL - 1ISALT - 1IMIX - 1IF (ITMIX .EQ. 0) ISALT - 3IF (ISALT .EQ. 1) TITLE - 'MIXTURE OF '// TIT1 //
' WITH A SALT OR MINERAL' END IF CALL MIXER (TEMP, MNACLD, PRESS, DENS, ICALL, ISALT, IRUN,
MXSP, FCCSAT, PH20, IPRIN2, MXMNK) IF (ICALL .EQ. 1) THEN
PHHIT - 0PPHHIT - 1IMIX = 0IBMIX - 0GO TO 100
ELSEIF (ISALT .EQ. 1) IBMIX = 0GO TO 230
END IFELSE IF (IBMIX .EQ. 2) THEN
ICALL - 1 IF (IRUN .NE. 0) THEN
ICALL = 2IMIX - 1TIT2 - TITLE
END IF CALL MIXER (TEMP, MNACLD, PRESS, DENS, ICALL, ISALT, IRUN,
MXSP, FCCSAT, PH20, IPRIN2, MXMNK) IF (IMIX .EQ. 1) THEN
IBMIX - 0TITLE - 'MIXTURE OF '//TIT1//' AND ' // TIT2GO TO 250
END IF ICALL - 0 ISALT - 0 IMIX - 0 JMIXTR - 0 TITMIX - '
|SOL 7530 |SOL 7540 |SOL 7550 SOL 7560 SOL 7570 SOL 7580 SOL 7590 SOL 7600 SOL 7610 |SOL 7620 |SOL 7630 |SOL 7640 SOL 7650 SOL 7660 SOL 7670 SOL 7680 SOL 7690 SOL 7700 SOL 7710 SOL 7720 SOL 7730 SOL 7740 SOL 7750 SOL 7760 SOL 7770 SOL 7780 SOL 7790 SOL 7800 SOL 7810 SOL 7820 SOL 7830 SOL 7840 SOL 7850 SOL 7860 SOL 7870 SOL 7880 SOL 7890 SOL 7900 SOL 7910 SOL 7920 SOL 7930 SOL 7940 SOL 7950 SOL 7960 SOL 7970 SOL 7980 SOL 7990 SOL 8000 SOL 8010 SOL 8020 SOL 8030 SOL 8040 SOL 8050 SOL 8060 SOL 8070 SOL 8080 SOL 8090 SOL 8100
222
CALL INTIAL (OK, ALK, INFORM, RATIO, GAMMA, TEMP, HITEMP, PRESS, HTOTI, OHTOTI, IC02, IMC03, IBMIX, FCCSAT, IEXCH, ISAT, IPHNUM, JCCST)
IF (MIXFLE .EQ. ' ') THENCALL INPUT (UNI, TEMP, HITEMP, DNS, PHHIT, IEXCH, IC02,
MIXFLG) ELSEUNM - 39OPEN (UNM, FILE - MIXFLE, STATUS = 'OLD')CALL INPUT (UNM, TEMP, HITEMP, DNS, PHHIT, IEXCH, IC02,
MIXFLG)CLOSE (UNM)
END IF IBMIX = 2 ILO = 1 GO TO 30
ELSEIF (ISALT .NE. 2) THEN
ICALL - 1IMIX - 1ISALT - 2TITLE - 'SOLUTION AFTER BOILING OF .. ' // TIT1
END IF CALL MIXER (TEMP, MNACLD, PRESS, DENS, ICALL, ISALT, IRUN,
MXSP, FCCSAT, PH20, IPRIN2, MXMNK) IF (ICALL .EQ. 1) THEN
PHHIT - 0PPHHIT = 1IMIX = 0IBMIX = 0GO TO 100
ELSEGO TO 230
END IF END IF
END IF
IMIX - 0IF (INMIX .EQ. 0) THEN
CALL STORE (TEMP, HITEMP)GO TO 20
END IF
Change the solution parameters to those of the mixture
230 CONTINUEIF (IMIX .EQ. 1) THENCALL INTIAL (OK, ALK, INFORM, RATIO, GAMMA, TEMP, HITEMP, PRESS
HTOTI, OHTOTI, IC02, IMC03, IMIX, FCCSAT, IEXCH, ISAT, IPHNUM, JCCST)
UNITS - 'MOL/K'ALK = 2ITIC - 0
SOL 8110 SOL 8120 SOL 8130 SOL 8140 SOL 8150 SOL 8160 SOL 8170 SOL 8180 SOL 8190 SOL 8200 SOL 8210 SOL 8220 SOL 8230 SOL 8240 SOL 8250 SOL 8260 SOL 8270 SOL 8280 SOL 8290 SOL 8300 SOL 8310 SOL 8320 SOL 8330 SOL 8340 SOL 8350 SOL 8360 SOL 8370 SOL 8380 SOL 8390 SOL 8400 SOL 8410 SOL 8420 SOL 8430 SOL 8440 SOL 8450 SOL 8460 SOL 8470 SOL 8480 SOL 8490 SOL 8500 SOL 8510 SOL 8520 SOL 8530 SOL 8540 SOL 8550 |SOL 8560 |SOL 8570 |SOL 8580 SOL 8590 SOL 8600 SOL 8610 ,SOL 8620 SOL 8630 SOL 8640 SOL 8650 SOL 8660 SOL 8670 SOL 8680
223
HITEMP - TEMPEHM = 9.0DOEMFZSC - 9.0DOEHMC = 9.0DOY28 = 0PHHIT = 1HTOTI = TOTEL(l)OHTOTI = TOTEL(2)ANMTIC = TOTEL(3)DO 240 I = 1, NMAX
IF (I .EQ. 8) ANALM(I) = O.ODOOIF (I .EQ. 9) ANALM(I) = O.ODOOCUNITS(I) - ANALM(I)M(I) - ANALM(I)
240 CONTINUEGO TO 80
END IF
C ______________ -- - __.
SOL 8690SOL 8700SOL 8710SOL 8720SOL 8730SOL 8740SOL 8750SOL 8760SOL 8770SOL 8780SOL 8790SOL 8800SOL 8810SOL 8820SOL 8830SOL 8840SOL 8850SOL 8860
_______________ ____ _ COT PP7fi-----___-_________-______ i3Vjj_, OO/U
C Mix the two solution in a single or multiple mixtures case SOL 8880c ______________
250 CONTINUEJMIXTR = JMIXTR + 1CALL STORE (TEMP, HITEMP)IF (INMIX .LT. JMIXTR) GO TO 20
QHT p p on_________________________ j)Ui_i ooyu SOL 8900SOL 8910SOL 8920SOL 8930SOL 8940SOL 8950
WRITE (BUFFER, 900) FMIX ( JMIXTR) , (l.ODO - FMIX(JMIXTR) ) SOL 8960READ (BUFFER, '(A)') TITMIX
f> 260 I = 1, MXSP + 44ANALM(I) = (ANMMIX(I) * FMIX ( JMIXTR) )
SOL 8970SOL 8980SOL 8990SOL 9000
+ (BNMMIX(I) * (l.ODO - FMIX (JMIXTR))) SOL 9010260 CONTINUE
DO 270 I = 1, 5TOTEL(I) = (AIMIX(I) * FMIX ( JMIXTR) )
SOL 9020SOL 9030SOL 9040SOL 9050
+ (B2MIX(I) * (l.ODO - FMIX (JMIXTR))) SOL 9060270 CONTINUE
IMIX = 1DNS = 'Y'
SOL 9070SOL 9080SOL 9090SOL 9100
DENS = (ADENS * FMIX(JMIXTR) ) + (BDENS * (l.ODO - FMIX ( JMIXTR) )) SOL 9110TEMP = (ATEMP * FMIX(JMIXTR) ) + (BTEMP * (l.ODO - FMIX ( JMIXTR) )) SOL 9120HITEMP = O.ODOOGO TO 230
SOL 9130SOL 9140SOL 9150
900 FORMAT ('(PROPORTIONS: 1= ' , F4 . 2 , ' 2= ',F4.2,')') SOL 9160910 FORMAT(//, ' ***************WARNING********************' , SOL 9170
/, ' Convergence not reached/, ' /ION EXCHANGE routine./ , ' may be in error . ' ,/)
END
in ADSORBPTION' , SOL 9180Following results', SOL 9190
SOL 9200SOL 9210SOL 9220
224
522
0850 IOV0^50 IOV0950 IOV0550 IOV0^750 IOVoeso iov0250 IOV0150 IOV0050 IOV06t70 lOVl -08^0 lOVlQLW lovl09^0 lOVl05^0 lOVlOVVO lOVloevo lovl02^0 lOVlOTt70 lOVl00^0 lOVl06£0 lOVloseo lovlo^eo lovl09£0 lOVl05CO lOVloveo lovloeeo lovlO2eo lovloieo lovl00£0 lOVl0620 lOVl0820 lOVl0^20 lOVl0920 lOVl0520 lOVlOV20 lOVloe2o lovl0220 lOVl0120 lOVl0020 lOVl0610 lOVl0810 lOVl -oao iov0910 IOV0510 IOVOt7TO IOVoeio iov0210 lOVl -OIIO lOVl0010 lOVl0600 lOVl0800 lOVl0^00 lOVl 0900 lOVl0500 lOVl -ow lovloeoo'ioyl-0200 IDV^0100 IOV
aim os *XIWIII 0^7 *
(XVWNK33Va 8 *HO '£01 I *
WQN '2NWXW '(5'6)QNINIW ' (XVWN' Ol)XQNIW 'l '233Vai 'Nioai '(OI)XQNI ' (XVWN)X3dNI 'NI£I '01
e^Tj ^nd^no UT peej uiaoj B seoB^j VHOSUTXTUI aoj pasn ai^Tj, VHO
endures eq:j jo euiBj^ VHOepBjST^ueo seeaSep UT exn^B-ieduie:} ^ueaanQ igQ
UTAT_a>i seeaSep UT aan^Baeduia^ ^ueaanQ igQ^UB^SUOO SBO ^gQ
S^UB^SUOO X^TXTci171!03 J° sauiB^ VHO^no pe^uTad eq 03 sxBaeuTui jo ^UHOQ j^NI
sen^BA >[ 'Soi ^BaauTui jo aequmu ^B^OJ, INIXBaeuTUi peppB eq:j jo aequinu xepuj j^NI
e^qB^ UIJLOJ UT pBaa seToeds eq^ jo aequinu xepuj ^gQsxBaeuTUi peppB aoj ^uaTOTjjeoo oTa^euioTqoTo^s 19G
a~[qB^ uioaj UT pBea seToads jo ^uaTOTjjeoQ ^gQean^Baeduie^ peTjToads ^B sxBjeuTui aoj ^ So^ ^gQ^nd^no aq^ jo epTS ^je^; eq^ jo aequinu xapuj j^NI
^nd^no eq^ jo epTS ^qSTJ aq^ jo aequinu xepuj ^NIa^qBTJLBA SUT^UUOO doo^ ^NI
e"[Tj ^nd^no eq^ jo aequmu eufx ^uaaanQ XNIe"[Tj ^nd^no jo aequinu eSBd ^ueaan[) jjsil
uoT^oBea eq^ UT seToads eq^ jo xepuj J.NI^no pe^uTad eq o^ s^BaeuTui eq^ jo sen^BA xepuj XNI
^nd^no eq:j S^BUIJLO^ ^NIuoT^OBea UT s^uauoduioo jo aaquinj^ ^NI
e^qBTaBA SUT^UHOO dooq; ^NIeouaaejjTp XSaeue eaaj sqqfS B^"[eQ ^gQ^nd^no UT suan^ea aSBTaaBO s^aesui VHDuoT^oBea UT seToeds jo ^ueTOTjjeoQ igQ
xepuT uoTtjBjn^Bg 19QuoT^oBea eq:j jo ^onpoad X^TAT^OV 19Q
T seToeds snoenbB jo X^TAT^OV IHQ
(5e-ao'i=Niwnao 'e-a6i^86'i = H)(21 = HNfl '9 = ONQ 'Ot7 = XVWN)
Niwnjo 'H NOISIO:
H3IOVT3VHOH3IOVHVHOH3IOVHVHOH3IOVHVHO
'f H333INI'I H333INI
101XIWIIIami
dW3II^J
e3ovaWQN
>INWXWQNINIW
XQNIWOONIW£300W
2I>I301TXr
Nioai3 ova i
XQNIX3QNINIII
01I
wwnaED
£30D2Dav
vnv
"H3I3WVHVa a3i3WVHva
H"aa 3ianoa
-- o000000000000000000000000000000,-.J
HNQ 'ONQ 'XVWN H333INI
e^Tj uoT^OBea aoj peuSfssB 3Tun a"[T^ iNIa~[Tj ^nd^no aoj pau§TssB ^Tun aii£ XNI
uoTsuBdxe XsBe ^O-[-[B o^ uoTsueuiTp XBJJB -[Bjeue^ xNIsasn uiBjSoad en~[BA T;Bea aAT^TSod ^saxiBuig iga
S3UB3SU
sesBqd jo s^onpoad X^TAT^OB srjuTJid puB se^B~[no~[BO au
\ (QNINIW 'OONIW"^--'caova '2i>iooi '>INWXW 'awai 'v^iv 'aim) BAIIOV
HNQONn
XVWNNiwnao
oo e^BToaa
T^noa STqx
3Niino"aans
0000
0 - 0k-/
0
DOUBLE PRECISION ATCPRD, ALFA(NMAX), AP(NMAX), C2(2)DOUBLE PRECISION COEF(IO), DUMM(2), LOGKT2(NMAX), MCOEF(10,NMAX)DOUBLE PRECISION MINCO(9,5), T, TEMP
INTRINSIC DABS
EXTERNAL ATCPRD, PAGE
COMMON /FMFD / TOF, CR, TITMIX COMMON /FORM / IPAGE, IPGLN
The following open statement have been changed out by Ernie Perkins (ORSD, ARC) in order to allow an command proceedure under VMS 4.5 on DEC VAX's to assign the files external to the program.
OPEN (UNR, STATUS = 'OLD', shared, readonly) OPEN (UNR, FILE = 'RXN.TBL', STATUS - 'OLD')
DO 10 L - 1, MXMNKREAD (UNR, 900) I, (MCOEF(J,I), MINDX(J.I), J - 1, 10)
10 CONTINUE
CLOSE (UNR)
DO 20 I = 1, MXMNK + 5AP(I) = O.ODO
20 CONTINUE
T = TEMP + 273.15
Activity products of phases
DO 40 I - 1, MXMNK 1C = 0 DO 30 J = 1, 10
IF (DABS(MCOEF(J,I)) .GT. CPUMIN) THEN 1C = 1C + 1 COEF(J) = MCOEF(J,I) INDX(J) - MINDX(J.I)
ELSECOEF(J) = O.ODO INDX(J) = MINDX(J,I)
END IF 30 CONTINUE
AP(I) - ATCPRD (1C, INDX, COEF, ALFA) 40 CONTINUE
Calculate activity product for added minerals
DO 60 I = 1, 5 DO 50 J - 1, 8
ACT ACT ACT ACT ACT ACT ACT ACT ACT ACT ACT
(ACT| ACTI ACTI ACT| ACT| ACTACTACTACTACTACTACTACTACTACTACTACTACTACTACTACT
| ACTj ACT(ACTACTACTACTACTACTACTACTACTACTACTACTACTACTACTACTACT
| ACTI ACT| ACTACTACTACT
0590060006100620063006400650066006700680069007000710072007300740075007600770078007900800081008200830084008500860087008800890090009100920093009400950096009700980099010001010102010301040105010601070108010901100111011201130114011501160
226
IF (DABS(MINCO(J,I)) .GT. CPUMIN) AP(MXMNK+I) =AP(MXMNK+I) + MINCO(J,I)*ALFA(MININD(J,I))
50 CONTINUEAP(MXMNK+I) - AP(MXMNK+I) + MINCO(9,I)
60 CONTINUE
rj ___________________________________
C Write out activity productsQ __ ______________________
CALL PAGEWRITE (UNO, 910) TITLE, TEMP, TITMIXWRITE (UNO, 920)WRITE (UNO, 930) CRIPGLN = IPGLN + 4NUM = 0
DO 70 I - 1, MXMNK + 5IF (DABS(AP(I)) .LE. 300.0 .AND.
DABS(LOGKT2(I)) .LE. 300.0) THENNUM - NUM + 1INDEX(NUM) - I
END IF70 CONTINUE
IFIN - (NUM + 1) / 2DO 80 I - 1, IFIN
L - INDEX(I)C2(l) = AP(L) - LOGKT2(L)DUMM(l) = 2.302585DO * R * T * C2(l)J = I + IFINIF (J .LE. NUM) THENK - INDEX(J)C2(2) = AP(K) - LOGKT2(K)DUMM(2) = 2.302585DO * R * T * C2(2)
END IF
IF (IPGLN .GT. 58) THENCALL PAGEWRITE (UNO, 910) TITLE, TEMP, TITMIXWRITE (UNO, 920)WRITE (UNO, 930) CRIPGLN = IPGLN + 4
END IF
IF (J .LE. NUM) THENWRITE (UNO, 940)
L, PAGE3(L), AP(L), LOGKT2(L) , C2(l) , DUMM(l) ,K, PAGE3(K), AP(K), LOGKT2(K), C2(2) , DUMM(2)
IPGLN - IPGLN + 1ELSEWRITE (UNO, 940)
L, PAGE3(L), AP(L), LOGKT2(L), C2(l), DUMM(l)IPGLN - IPGLN + 1
END IF80 CONTINUE
RETURN
ACT 1170ACT 1180ACT 1190ACT 1200ACT 1210ACT 1220
_ _ . _ . 1 ACT 1230IACT 1240
- - - 1 ATT 1 9 SO
ACT 1260ACT 1270ACT 1280ACT 1290ACT 1300ACT 1310ACT 1320ACT 1330ACT 1340ACT 1350ACT 1360ACT 1370ACT 1380ACT 1390ACT 1400ACT 1410ACT 1420ACT 1430ACT 1440ACT 1450ACT 1460ACT 1470ACT 1480ACT 1490ACT 1500ACT 1510ACT 1520ACT 1530ACT 1540ACT 1550ACT 1560ACT 1570ACT 1580ACT 1590ACT 1600ACT 1610ACT 1620ACT 1630ACT 1640ACT 1650ACT 1660ACT 1670ACT 1680ACT 1690ACT 1700ACT 1710ACT 1720ACT 1730ACT 1740
227
900 FORMAT(I3,/,10(F10.4,I4))910 FORMAT(' SAMPLE IDENT - ',A80,4X,'(TEMPERATURE = ',F6.2,')',
/.20X.A40) 920 FORMAT(/,6X,'PHASE',5X,'LOG (AP)',4X,'LOG (KT)',2X,
'LOG (AP/KT)',7X,'DELG', 10X,'PHASE',5X,'LOG (AP)',4X,'LOG (KT)',2X,'LOG (AP/KT)',7X,'DELG')
930 FORMAT(A1,6X, '____' ,5X, '______' ,4X, '______' ,2X,'_________',7X,'___', 10X,'____',5X,' ______',4X,'______',2X,
',7X,'
940 FORMAT (IX, 13, 2X, A8, F10.3, 3(2X,F10.: 5X, 13, 2X, A8, F10.3, 3(2X,F10.:
END
ACT 1750 ACT 1760 ACT 1770 ACT 1780 ACT 1790 ACT 1800 ACT 1810 ACT 1820 ACT 1830 ACT 1840 ACT 1850 ACT 1860 ACT 1870 ACT 1880 ACT 1890 ACT 1900
SUBROUTINE ADSORB (TC, Z, OK, ICALL, IEXCH, MXSP, IPRIN2)
C This is the adsorption routiner -i_, _________........._________.__________------.--_____-_____.----_--_-.C Declare constants rL, _-_-_______.._....___
C AVOG DEL Avogadro's number C BOLTZ DEL Boltzman constant C CPUMIN DEL Smallest positive real value program uses C ECHG DEL Electron charge C NMAX INT General array dimension to allow easy expansion C UNO INT File unit assigned for output file C PERMV DBL Perm, in a vacuumC TEST DBL Value to test against, f
INTEGER NMAX, UNO DOUBLE PRECISION AVOG, BOLTZ, CPUMIN, DIE, ECHG, PERMV, TEST PARAMETER (NMAX - 340, UNO = 6) PARAMETER (AVOG = 6.022D+23, BOLTZ = 1.38D-23) PARAMETER (CPUMIN = l.OD-35, DIE - 78.27, ECHG = 1.6022D-19) PARAMETER (PERMV = 8.854D-12, TEST = l.OD-03)
P C -------------.--..-----------.------..--.----.-...........__.._......
C Declare variables---------------------
C A1MIX DBL HTOT, OHTOT, TIC for initial conditions C ADD DBL Amount of component to add/remove from water C ANALM DBL Analyzed molality of species i C ANMIX DBL Number of moles of initial components C ANSWER DBL Coefficent array used to calculate results C B2MIX DBL HTOT, OHTOT, and TIC for comp 1 of a mixture C BNMMIX DBL Analyzed molality of species i in solution B C C3MIX DBL Temp storage for HTOT, OHTOT, TIC C CEC DBL Cation Exchange Capacity C CNMMIX DBL Temp Storage for total mass of each component C COEF DBL Stoichiometric coefficient and Id number C CROSS LOG Have we crossed the root for species adsorption?
ADS 0010 ADS 0020 ADS 0030 ADS 0040ADS 0050 ADS 0060ADS 0070 ADS 0080 ADS 0090 ADS 0100 ADS 0110 ADS 0120 ADS 0130 ADS 0140 ADS 0150ADS 0160 ADS 0170 ADS 0180 ADS 0190 ADS 0200 ADS 0210 ADS 0220 ADS 0230ADS 0240ADS 0250 ADS 0260 ADS 0270 ADS 0280 ADS 0290 ADS 0300 ADS 0310 ADS 0320 ADS 0330 ADS 0340 ADS 0350 ADS 0360 ADS 0370
228
BNMMIX(7) BNMMIX(98)
TOTEL(3) 0.0
25
3040
II .EQ. 8 .OR. II .EQ. 10) THEN
DO 40 I - 1, INSP NEUT = 0 II - 0 X - 0.0 IBASE(I) = 0 DO 25 K - 1, ISCOMP(I)
J = IDN(I,K) IF (J .EQ. 0) THENNEUT = K
ELSEIF (II .EQ. 0 .OR.
II .EQ. 9 .OR. II = J X =10.0
ELSEIF (COEF(I.K) .LT. X) THEN X - COEF(I.K) II - J
END IF END IF
END IF CONTINUE IBASE(I) = II DO 30 K = 1, ISCOMP(I)
J = IDN(I.K)IF (J .EQ. 0 .OR. DABS(COEF(I,K)) .LT. CPUMIN) GO TO 30 X = CEC * l.OD-03 * MBASE(I) / (DABS(COEF(I, NEUT))) X = X * (-1.0) * COEF(I.K)EQFACIFIFIFIFIFIFIFIFIFIFIFEQH
IFIFIFIFIFIFIF
(J(J(J(J(J(J(J(J(J(J(J=*
(J(J(J(J(J(J(JJ
= 0..EQ..EQ..EQ..EQ..EQ..EQ..EQ..EQ..EQ..EQ..EQ.EQH
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
07)8)9)
11)12)28)3D32)33)49)97)
+ (X
7)97)98)
207)208)209)
7207
EQFACEQFACEQFACJ - 12EQFACEQFACEQFACEQFACEQFACEQFACEQFAC
==-
=-=====>
1.1.
-1.
4.2.
-3.-1.2.1.2.
000
0000000
* EQFAC)
EQC =EQC =EQC -EQC -EQC =EQC =.OR. J.OR. J
(X(X(X(X(X(X
**
.EQ.
.EQ.
))))
2.0)3.0)97
208
+ EQC+ EQC+ EQC+ EQC+ EQC+ EQC.OR. J .EQ. 98 .OR..OR. J .EQ. 209) J =
BNMMIX(J) CONTINUE
CONTINUE
BNMMIX(J) + X
B2MIX(1) = B2MIX(1) + EQH
ADS 1540 ADS 1550 ADS 1560 ADS 1570 ADS 1580 ADS 1590 ADS 1600 ADS 1610 ADS 1620 ADS 1630 ADS 1640 ADS 1650 ADS 1660 ADS 1670 ADS 1680 ADS 1690 ADS 1700 ADS 1710 ADS 1720 ADS 1730 ADS 1740 ADS 1750 ADS 1760 ADS 1770 ADS 1780 ADS 1790 ADS 1800 ADS 1810 ADS 1820 ADS 1830 ADS 1840 ADS 1850 ADS 1860 ADS 1870 ADS 1880 ADS 1890 ADS 1900 ADS 1910 ADS 1920 ADS 1930 ADS 1940 ADS 1950 ADS 1960 ADS 1970 ADS 1980 ADS 1990 ADS 2000 ADS 2010 ADS 2020 ADS 2030 ADS 2040 ADS 2050 ADS 2060 ADS 2070 ADS 2080 ADS 2090 ADS 2100 ADS 2110
231
CC
CCC
B2MIX(3) - B2MIX(3) + EQCIF (B2MIX(3) .GT. 0.0) THEN
BNMMIX(7) = B2MIX(3)BNMMIX(98) =0.0
ELSEBNMMIX(7) =0.0BNMMIX(98) =0.0
END IF
DO 50 I - 1, 11ADD(I) = O.ODOOSTEP(I) = O.ODOO
50 CONTINUE
YO - 0.0END IF
Zero out local arrays
NEUT = 0DO 80 I - 1,11
DO 70 J - 1, 11ANSWER(J,I) = O.ODOO
70 CONTINUEKNOWN(I) = O.ODOO
80 CONTINUE
ADS 2120ADS 2130ADS 2140ADS 2150ADS 2160ADS 2170ADS 2180ADS 2190ADS 2200ADS 2210ADS 2220ADS 2230ADS 2240ADS 2250ADS 2260ADS 2270ADS 2280
-_-__-___-_.__-__--_.--. I AD*? 99901 rvL? O £. £.J\J
JADS 2300........................ | ADS 2310
ADS 2320ADS 2330ADS 2340ADS 2350ADS 2360ADS 2370ADS 2380ADS 2390ADS 2400
--_...._...._.._........ | ADS 2410Set Coefficient array and known column vector |ADS 2420
100 DO 120 I = 1, INSPKNOWN(I) = DLOG10(KRXN(I))DO 110 J = 1, ISCOMP(I)
IF (IDN(I,J) .EQ. 0) THENANSWER(I, 11) = COEF(I,J)
ELSEIF (IEXCH .EQ. 1) THENKNOWN(I) = KNOWN(I) - (COEF(I,J)
---_-..-_..._-....._.... | ADS 2430ADS 2440ADS 2450ADS 2460ADS 2470ADS 2480ADS 2490ADS 2500ADS 2510
* DLOG10((M(IDN(I,J)) * ADS 2520DEXP(((-1.0) * YO * DBLE(ISCHG(I))))))) ADS 2530
17T OT"ELSEKNOWN(I) = KNOWN(I) - (COEF(I,J)
END IFEND IF
110 CONTINUEANSWER(I, I) = l.ODOO
ADS 2540* DLQG10(M(IDN(I,J)))) ADS 2550
ADS 2560ADS 2570ADS 2580ADS 2590
IF (ISCOMP(I) .EQ. 1 .AND. IDN(I.l) .EQ. 0) NEUT = I ADS 26001 OA /" / » XTrpTVTTTTI120 CONTINUE
IF (NEUT .EQ. 0) NEUT = INSP + 1
DO 130 I = 1, INSPANSWER(NEUT, I) =0.0ANSWER(I, NEUT) - ANSWER(I, 11)ANSWER(I, 11) = O.ODOO
130 CONTINUE
ADS 2610ADS 2620ADS 2630ADS 2640ADS 2650ADS 2660ADS 2670ADS 2680ADS 2690
232
cccccccccccccccccccccccccccccccccccccccccccccccccccp
CROSSY LOG Have we crossed the root for epsilon?DIE DEL Dielectric constantDIFF DEL Difference from rootDIFYO DBL Difference from YODONE LOG If we are finished, set to .TRUE.DUM CHA Dummy character arrayEQC DBL Equivalent carbon in material been added/removedEQFAC DBL Factor for adding/removing materialEQH DBL Equivalent Hydrogen in material added/removedEXELT DBL Total amount of componentsHTOTI DBL Total hydroniumI INT Loop CounterIBASE INT ID numbers of the surface for adsorptionICALL INT Number of calls to this routineIDN INT Id numbers of the ISCOMP components adsorptionIEXCH INT Switch for adsorption/ion exchangeII INT Local pointer used to check for H, OH or H20INSP INT Total number of surface sites for adsorptionIPRIN2 INT Print switch to print out iterationsISCHG INT Charge of each surface site for adsorptionISCOMP INT Total number of components in dissociationIVAL INT Number of IterationsIY INT Pointer to last value calculatedJ INT Loop counterK INT Loop counterKNOWN DBL Final value of moles of complex on surfaceKRXN DBL K for dissociation reaction of surface speciesM DBL Calculated molality of aqueous speciesMAT DBL Matrix used for intermediate calculationsMBASE DBL Equivalence Mole Fraction (initial) on surfaceMXSP INT Max number of speciesNEUT INT Index for the bare surface complexOHTOTI DBL Initial OH totalOK INT Normal exit?PAGE1 CHA Names of aqueous speciesSIGD DBL Charge density in the difuse layerSIGO DBL Charge density at the surfaceSINGLE LOG Switch if all surface comp. have same # of X'sSPN CHA Name of each surface species adsorptionSTEP DBL Step size for amount added/subSUM DBL Total of charged species on surfaceTC DBL Temperature in deg CTITR DBL Iteration array in DISTRB, used for guessesTOTEL DBL Contains HTOT, OHTOT and Sum C02TRYV DBL Working storage for mass on surfaceTRYYO DBL Guess for YOVAL DBL Intermediate storageVECT DBL Solution vector for surface complexesX DBL Temperary storageYO DBL YOZ INT Charge of aqueous species
LOGICAL DONE, CROSS, CROSSY, SINGLE
CHARACTER*8 PAGEl(NMAX), PAGE2(NMAX), PAGES (NMAX)CHARACTER*8 DUM(ll)CHARACTER*10 SPN(IO)
IADS ossoIADS 0390IADS 0400IADS 04ioIADS 0420IADS 0430IADS 0440IADS 0450IADS 0460IADS 0470IADS 0480IADS 0490IADS osooIADS osioIADS 0520IADS 0530IADS 0540IADS 0550IADS 0560IADS 0570IADS ossoIADS 0590IADS oeooIADS 06ioIADS 0620IADS 0630IADS 0640IADS 0650IADS 0660IADS 0670IADS 0680IADS 0690IADS 0700IADS 0710IADS 0720IADS 0730IADS 0740IADS 0750IADS 0760IADS 0770IADS 0780IADS 0790IADS osooIADS osioIADS 0820IADS 0830IADS 0840IADS ossoIADS 0860IADS 0870IADS ossoIADS 0890ADS 0900ADS 0910ADS 0920ADS 0930ADS 0940ADS 0950
229
INTEGER I, IBASE(IO), ICALLADS 0960ADS 0970
INTEGER IDN(10,10), IEXCH, II, IPRIN2, ISCHG(IO) , INSP ADS 0980INTEGER IPAGE, IPGLN, ISCOMP(IO) , IVAL,INTEGER NEUT, OK, Z(NMAX)
IY, J, K, MXSP ADS 0990ADS 1000ADS 1010
DOUBLE PRECISION ADD(ll) , AD ENS , ALFA(NMAX) , ANALM(NMAX) ADS 1020DOUBLE PRECISION ANMMIX(NMAX) , ANSWER(11 ,11), ATEMP, A1MIX(5) ADS 1030DOUBLE PRECISION BDENS , BNMMIX(NMAX) , BTEMP, B2MIX(5) ADS 1040DOUBLE PRECISION CEC, CNMMIX(NMAX) , COEF(10,10) ADS 1050DOUBLE PRECISION CUNITS (NMAX) , C02F, C3MlX(5) , DIFF(IO) ADS 1060DOUBLE PRECISION DIFYO(IO), EQC, EQFAC,DOUBLE PRECISION EXELT(35) , FMIX(IO) , HIDOUBLE PRECISION KRXN(IO) , M(NMAX) , MAT(DOUBLE PRECISION OHTOTI , PH, SAREA, SIGDDOUBLE PRECISION STEP(ll) , SUM, TAREA, 1
EQH ADS 1070OTI, KNOWN(ll) ADS 108010,10), MBASE(IO) ADS 1090, SIGO ADS 1100C, TITR(ll) ADS 1110
DOUBLE PRECISION TOTEL(5) , TRYV(IO) , TRYYO(IO) ADS 1120DOUBLE PRECISION VAL, VECT(IO) , X, YO
EXTERNAL GUESS, SORTA, PAGE
ADS 1130ADS 1140ADS 1150ADS 1160
INTRINSIC DABS, DBLE, DEXP, DLOG10, DSIGN, MAXO , DSQRT ADS 1170
COMMON /EXCHAN/ COEF, MBASE, KRXN, CEC,ISCHG, ISCOMP, INSP
COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FORM / IPAGE, IPGLN
ADS 1180TAREA, SAREA, IDN, ADS 1190
ADS 1200ADS 1210ADS 1220
COMMON /MM / ANMMIX, AlMIX, B2MIX, FMIX, BNMMIX, ADENS , BDENS, ADS 1230ATEMP, BTEMP ADS 1240
COMMON /MOLS / PH, ANALM, M, ALFA, CUNITS ADS 1250
C
CCCC
COMMON /NAMES1/ PAGE1 , PAGE2 , PAGE3COMMON /NAMES2/ SPNCOMMON /TOTALS/ C02F, HTOTI , OHTOTI
SAVE ADD, IBASE, KNOWN, STEP, YO
_ ar -r
IY =0CROSSY - .FALSE.
Store solution parameters if first call
ADS 1260ADS 1270ADS 1280ADS 1290ADS 1300ADS 1310
._ 1 Arjc 1 ^901 tHJ >3 J- J t- \J
ADS 1330ADS 1340ADS 1350ADS 1360
......................... | ADS 1370IADS 1380
totel: (1) = htot; (2) = ohtot; (3) = tf.c |ADS 1390
IF (ICALL .EQ. 1) THENDO 10 I - 1, 5AIMIX(I) = TOTEL(I)B2MIX(I) - TOTEL(I)
10 CONTINUE
DO 20 I - 1, MXSP + 44ANMMIX(I) - ANALM(I)BNMMIX(I) - ANALM(I)
20 CONTINUE
EQC = 0.0EQH =0.0
fc ........................ | ADS 1400ADS 1410ADS 1420ADS 1430ADS 1440ADS 1450ADS 1460ADS 1470ADS 1480ADS 1490ADS 1500ADS 1510ADS 1520ADS 1530
230
SINGLE = .TRUE.
DO 132 1=1, (INSP-1)IF (DABS (ANSWER (I, NEUT) - ANSWER (INSP, NEUT )) .GT. l.OE-05)
SINGLE = .FALSE.132 CONTINUE
KNOWN (NEUT) =0.0ANSWER (NEUT, NEUT) =1.0
r - ____ ____________________________--___------------------------\j -------------------------------------- ___C Now normalize values and get current valuesr - - ____ ___________________________--_____---_-----------\j --------------------------------------------- -____
IF (SINGLE) THENSUM =0.0DO 150 I = 1, INSP
KNOWN(I) = 10.0**KNOWN(I)SUM = SUM + (KNOWN(I) * DABS(ANSWER(I ,NEUT) ) )
150 CONTINUE
DO 160 I = 1, INSPKNOWN(I) = KNOWN(I) * CEC / (1000.0 * SUM)
160 CONTINUE
ELSECROSS = .FALSE.IVAL = 0VAL - O.ODOO
200 DO 220 I = 1, MAXO(INSP, NEUT)VECT(I) = KNOWN(I)DO 210 K = 1, MAXO(INSP, NEUT)
MAT(K.I) = ANSWER(K,I)210 CONTINUE220 CONTINUE
VECT(NEUT) = VAL
DO 250 I = 1, MAXO(INSP, NEUT)IF (I .NE. NEUT) THENX = MAT (I, NEUT) / MAT (NEUT, NEUT)VECT(I) = VECT(I) - (X * VECT(NEUT))
END IF250 CONTINUE
SUM =0.0DO 260 1=1, INSP
SUM = SUM + (10.0**VECT(I))260 CONTINUE
IVAL = IVAL + 1TRYV(IVAL) = VALDIFF(IVAL) = SUM - l.ODOOIF (DABS (DIFF( IVAL)) .GT. TEST) THEN
IF (IVAL .GT. 1 .AND. .NOT. CROSS) THENIF ((DIFF(IVAL) * DIFF(IVAL-l)) .LT. 0.0) CROSS = .TRUE.
END IF
ADS 2700ADS 2710ADS 2720ADS 2730ADS 2740ADS 2750ADS 2760ADS 2770ADS 2780ADS 2790ADS 2800
--|ADS 2810IADS 2820
-- JADS 2830ADS 2840ADS 2850ADS 2860ADS 2870ADS 2880ADS 2890ADS 2900ADS 2910ADS 2920ADS 2930ADS 2940ADS 2950ADS 2960ADS 2970ADS 2980ADS 2990ADS 3000ADS 3010ADS 3020ADS 3030ADS 3040ADS 3050ADS 3060ADS 3070ADS 3080ADS 3090ADS 3100ADS 3110ADS 3120ADS 3130ADS 3140ADS 3150ADS 3160ADS 3170ADS 3180ADS 3190ADS 3200ADS 3210ADS 3220ADS 3230ADS 3240ADS 3250ADS 3260ADS 3270
233
270
280
290
IF (IVAL .GT. 1) THEN 1 = 1CALL SORTA(TRYV, DIFF, IVAL, I)
END IFIF (CROSS) THEN K - 0 DO 270 I - 1, (IVAL-1)
IF ((DIFF(I) * DIFF(I+1)) .LT. 0,0) K CONTINUE IF (IVAL .GT. 5) THEN
IF (K .GT. (IVAL/2)) THEN DO 280 I - 1, (IVAL-1)
DIFF(I) = DIFF(I+1) TRYV(I) - TRYV(I+1)
CONTINUE K - K - 1
END IFIVAL - IVAL - 1
END IF CALL GUESS(TRYV, DIFF, VAL, IVAL)X - DABS(TRYV(K) - TRYV(K+1)) / 10000.ODOO IF (DABS (TRYV(K) - VAL) .LT. X
DABS (TRYV(K+1) - VAL) .LT. X ).OR.THEN
(TRYV(K) + TRYV(K+1)) / 2.0VAL = END IF
END IFIF (.NOT. CROSS) THEN
IF (IVAL .GT. 2) THEN DO 290 I - 1, (IVAL-1)
DIFF(I) = DIFF(I+1) TRYV(I) - TRYV(I+1)
CONTINUE IVAL - IVAL - 1
END IF IF (IVAL .EQ. 1) THENVAL = VAL - l.ODOO
ELSE IF (DABS(DIFF(IVAL)) .LT. DABS(DIFF(IVAL-1))) THENVAL = (2.0 * TRYV(IVAL)) - TRYV(lVAL-l)
ELSEVAL - (2.0 * TRYV(IVAL-1)) - TRYV(IVAL)
END IF END IF GO TO 200
END IF
DO 300 I - 1, INSPKNOWN(I) - (10.0**VECT(I)) * CEC * l.OD-3 /
DABS(ANSWER(I,NEUT)) 300 CONTINUE
END IF
IF (IEXCH .EQ. 1) THEN SIGO = O.ODOO SUM = O.ODOO DO 330 I - 1, INSP
IF (ISCHG(I) .NE. 0) SIGO = (DBLE(ISCHG(I)) * KNOWN(I)) +J =0DO 320 K = 1, ISCOMP(I)
ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS
SIGOADS ADS ADS
3280329033003310332033303340335033603370338033903400341034203430344034503460347034803490350035103520353035403550356035703580359036003610362036303640365036603670368036903700371037203730374037503760377037803790380038103820383038403850
234
320
330
350
370
380
PERMV * DIE) (TC + 273.15))
IF (IDN(I,K) .EQ. 0) J - K CONTINUESUM = SUM + (DABS(COEF(I,J)) * KNOWN(I))
CONTINUESIGO - ECHG * CEC * AVOG * SIGO / (SUM * 1000.0) SIGD - O.ODOO DO 350 I - 1, MXSP + 44
SIGD = (M(I) * (DEXP(DBLE(Z(I)) * YO * (-1.0DO)) -SIGD
CONTINUESIGD = SIGD * 1000.ODOO * AVOG IF (SIGD .GT. CPUMIN) THEN
SIGD - DSQRT(SIGD) ELSE
SIGD - O.ODOO END IFSIGD - SIGD * DSQRT(2.0DOO * SIGD - SIGD * DSQRT(BOLTZ * IY - IY + 1 TRYYO(IY) - YO DIFYO(IY) - SIGD + SIGO IF (DABS(DIFYO(IY)) .GT. TEST) THEN
IF (IY .GT. 1 .AND. .NOT. CROSSY) THENIF ((DIFYO(IY) * DIFYO(IY-l)) .LT. 0.0) CROSSY =
END IFIF (CROSSY) THEN
1 = 1CALL SORTA(TRYYO, DIFYO, IY, I)
END IFIF (IY .GT. 6) THEN K = 0 IF (CROSSY) THEN
DO 370 1=1, (IY-1)IF ((DIFYO(I) * DIFYO(I+1)) .LT. 0.0) K = I
CONTINUE END IF IF (K .GT. (IY/2) .OR. .NOT. CROSSY) THEN
, (IY-1) DIFYO(I+1) TRYYO(I+1)
DO 380 I - DIFYO(I) TRYYO(I)
CONTINUE K - K - 1
END IF IY = IY - 1
END IFIF (CROSSY) THEN CALL GUESS(TRYYO, X = DABS(TRYYO(K) IF (DABS (TRYYO(K) - YO) .LT.
DABS (TRYYO(KH-l) - YO) .LT. VAL - (TRYYO(K) + TRYYO(K+1))
END IF ELSE
IF (DIFYO(IY) .GT. 0.0) THENYO - YO + 0.1DOO
ELSEYO - YO - l.ODOO
END IF
DIFYO, YO, IY) - TRYYO(K+1))
X X
10000.ODOO.OR.
) THEN 2.0
ADS 3860 ADS 3870 ADS 3880 ADS 3890 ADS 3900 ADS 3910 ADS 3920
l.ODO)) + ADS 3930 ADS 3940 ADS 3950 ADS 3960 ADS 3970 ADS 3980 ADS 3990 ADS 4000 ADS 4010 ADS 4020 ADS 4030 ADS 4040 ADS 4050 ADS 4060 ADS 4070 ADS 4080
.TRUE. ADS 4090 ADS 4100 ADS 4110 ADS 4120 ADS 4130 ADS 4140 ADS 4150 ADS 4160 ADS 4170 ADS 4180 ADS 4190 ADS 4200 ADS 4210 ADS 4220 ADS 4230 ADS 4240 ADS 4250 ADS 4260 ADS 4270 ADS 4280 ADS 4290 ADS 4300 ADS 4310 ADS 4320 ADS 4330 ADS 4340 ADS 4350 ADS 4360 ADS 4370 ADS 4380 ADS 4390 ADS 4400 ADS 4410 ADS 4420 ADS 4430
235
c c cf*_l
END IF GO TO 100
END IF END IF
ADS 4440 ADS 4450 ADS 4460 ADS 4470 ADS 4480
1 A n C A A Q fi
Check totels, see if we are done, calculate step size. |ADS 4500 Always iterate at least once. JADS 4510
________________________________ ____________i________________________i&nc A e;on1
500 DO 505 I = 1, MXSP + 44CNMMIX(I) = ANALM(I)
505 CONTINUE
EQC =0.0EQH = 0.0CNMMIX(7) = TOTEL(3)CNMMIX(98) =0.0DO 520 I = 1, INSP
DO 510 K = 1, ISCOMP(I)J = IDN(I.K)
------------------------- | t\u ij «+ _; £, \J
ADS 4530ADS 4540ADS 4550ADS 4560ADS 4570ADS 4580ADS 4590ADS 4600ADS 4610ADS 4620ADS 4630ADS 4640
IF (J .EQ. 0 .OR. DABS(COEF(I,K)) ,LT. CPUMIN) GO TO 510 ADS 4650f T T T\.T/"\T T"».T / -¥" V « ̂. « " y ^ »- ». . - -
X = KNOWN(I) * COEF(I.K) * (-1.0)EQFAC =0.0IF (J .EQ. 7) EQFAC = 1.0IF (J .EQ. 8) EQFAC = 1.0IF (J .EQ. 9) EQFAC = -1.0IF (J .EQ. 11) J = 12IF (J .EQ. 12) EQFAC = 4.0IF (J .EQ. 28) EQFAC = 2.0IF (J .EQ. 31) EQFAC = -3.0IF (J .EQ. 32) EQFAC = -1.0IF (J .EQ. 33) EQFAC = 2.0IF (J .EQ. 49) EQFAC = 1.0IF (J .EQ. 97) EQFAC = 2.0EQH = EQH + (X * EQFAC)
ADS 4660ADS 4670ADS 4680ADS 4690ADS 4700ADS 4710ADS 4720ADS 4730ADS 4740ADS 4750ADS 4760ADS 4770ADS 4780ADS 4790ADS 4800
IF (J .EQ. 7) EQC = (X ) + EQC ADS 4810IF (J .EQ. 97) EQC = (X ) + EQC ADS 4820IF (J .EQ. 98) EQC = (X ) + EQC ADS 4830IF (J .EQ. 207) EQC = (X ) + EQC ADS 4840IF (J .EQ. 208) EQC = (X * 2.0) + EQC ADS 4850IF (J .EQ. 209) EQC = (X * 3.0) + EQC ADS 4860IF (J .EQ. 7 .OR. J .EQ. 97 .OR. J .EQ. 98 .OR. ADS 4870
J .EQ. 207 .OR. J .EQ. 208 .OR. J .EQ. 209) J = 7 ADS 4880
CNMMIX(J) = CNMMIX(J) + X510 CONTINUE520 CONTINUE
C3MIX(1) = TOTEL(l) + EQHC3MIX(2) = TOTEL(2)C3MIX(3) = TOTEL(3) + EQCIF (C3MIX(3) .GT. 0.0) THEN
CNMMIX(7) = C3MIX(3)CNMMIX(98) =0.0
ELSECNMMIX(7) =0.0
ADS 4890ADS 4900ADS 4910ADS 4920ADS 4930ADS 4940ADS 4950ADS 4960ADS 4970ADS 4980ADS 4990ADS 5000ADS 5010
236
CNMMIX(98) END IF
0.0
IF (ICALL .EQ. 1) THEN DONE = .FALSE. DO 530 I = 1, INSP
J - IBASE(I) IF (J .EQ. 11) J - 12 IF (J .NE. 0 .AND. J THENSTEP(I) = (BNMMIX(J)
ELSE IF (J .EQ. 8 .OR.
NE. 8 .AND. J .NE. 9 .AND. J .NE. 10)
- CNMMIX(J)) * 0.25 J .EQ. 9) THEN
X - (B2MIX(1) - B2MIX(2)) - (C3MIX(1) - C3MIX(2)) IF (DABS(X) .GT. l.OE-06) STEP(I) = X * 0.1
END IF IF (DABS(STEP(I)) .LT. CPUMIN) THEN
STEP(I) - (CEC / 1000.0) / 100.0 END IF
530 CONTINUEIF (INSP .EQ. 2) THENX - (DABS(STEP(1)) + DABS(STEP(2))) / 2.0 STEP(l) - DSIGN(X, STEP(l)) STEP(2) = DSIGN(X, STEP(2))
END IF ELSE
DONE - .TRUE. DO 550 1=1, INSP
J - IBASE(I)IF (J .NE. 0 .AND. J .NE. 8 .AND. J .NE. 9 .AND. J .NE. 1 THEN IF ((DABS(BNMMIX(J) - CNMMIX(J)) / BNMMIX(J)) .GT. TEST)DONE - .FALSE.
IF ((BNMMIX(J) - CNMMIX(J)) .GT. 0.0) THENIF (STEP(I) .LT. 0.0) STEP(I) - STEP(I) * (-0.4)
ELSEIF (STEP(I) .GT. 0.0) STEP(I) = STEP(I) * (-0.4)
END IF ELSE IF (J .EQ. 8 .OR. J .EQ. 9) THENX - (B2MIX(1) - B2MIX(2)) - (C3MIX(1) - C3MIX(2)) IF ((DABS(B2MIX(1) - B2MIX(2))) .GT. l.OD-8)X - X / (B2MIX(1) - B2MIX(2))
IF (DABS(X) .GT. TEST) DONE = .FALSE. IF (X .GT. 0.0) THEN
IF (STEP(I) .LT. 0.0) STEP(I) - STEP(I) * (-0.4) ELSE
IF (STEP(I) .GT. 0.0) STEP(I) - STEP(I) * (-0.4) END IF
END IF550 CONTINUE
END IF
IF (DONE) THEN J - NEUTIF (NEUT .EQ. 0) J = INSP+1 OK - 0 CALL PAGEIPGLN - IPGLN + 26 + (INSP * 3) WRITE (UNO, 1005)
ADS 5020 ADS 5030 ADS 5040 ADS 5050 ADS 5060 ADS 5070 ADS 5080 ADS 5090 ADS 5100 ADS 5110 ADS 5120 ADS 5130 ADS 5140 ADS 5150 ADS 5160 ADS 5170 ADS 5180 ADS 5190 ADS 5200 ADS 5210 ADS 5220 ADS 5230 ADS 5240 ADS 5250 ADS 5260 ADS 5270 ADS 5280 ADS 5290 ADS 5300 ADS 5310 ADS 5320 ADS 5330 ADS 5340 ADS 5350 ADS 5360 ADS 5370 ADS 5380 ADS 5390 ADS 5400 ADS 5410 ADS 5420 ADS 5430 ADS 5440 ADS 5450 ADS 5460 ADS 5470 ADS 5480 ADS 5490 ADS 5500 ADS 5510 ADS 5520 ADS 5530 ADS 5540 ADS 5550 ADS 5560 ADS 5570 ADS 5580 ADS 5590
237
GCCG
WRITE (UNO, 1002)DO 600 I - 1, INSPWRITE (UNO, 1003) SPN(I) ,
(MBASE(I) * CEC / (1000.0 * DABS(ANSWER(I , J) ) ) ) ,(MBASE(I) * CEC / 1000.0), MBASE(I)
600 CONTINUE
WRITE (UNO, 1007)DO 620 I - 1, INSP
DO 610 K - 1, ISCOMP(I)IF (IDN(I,K) .EQ. 0) THEN
DUM(K) - 'X-ELSE
DUM(K) - PAGE1(IDN(I,K))END IF
610 CONTINUEWRITE (UNO, 1008) KRXN(I), SPN(I) , (DUM(K) , COEF(I.K), K-l,
ISCOMP(I))620 CONTINUE
WRITE (UNO, 1001)WRITE (UNO, 1002)DO 650 I - 1, INSPWRITE (UNO, 1003) SPN(I) , KNOWN(I) ,
(KNOWN(I) * DABS (ANSWER (I, J))),(KNOWN(I) * 1000.0 * DABS ( ANSWER ( I, J)) / CEC)
650 CONTINUE
WRITE (UNO, 1006) CEC, (CEC / 1000.0)RETURN
END IF
Change the original solution parameters for the new step andgo back to calculate species distribution
700 EQC =0.0EQH = 0.0ANALM(7) = A1MIX(3)ANALM(98) =0.0DO 710 I = 1, INSPADD(I) = ADD(I) + STEP(I)
710 CONTINUE
DO 730 I - 1, INSPDO 720 K - 1, ISCOMP(I)
J = IDN(I.K)IF (J .EQ. 0 .OR. DABS(COEF(I,K)) .LT. CPUMIN) GO TO 720X = COEF(I.K) * ADD(I) * (-1.0)EQFAC =0.0IF (J .EQ. 7) EQFAC = 1.0IF (J .EQ. 8) EQFAC = 1.0IF (J .EQ. 9) EQFAC = -1.0IF (J .EQ. 11) J - 12IF (J .EQ. 12) EQFAC = 4.0IF (J .EQ. 28) EQFAC - 2.0IF (J .EQ. 31) EQFAC - -3.0
ADS 5600ADS 5610ADS 5620ADS 5630ADS 5640ADS 5650ADS 5660ADS 5670ADS 5680ADS 5690ADS 5700ADS 5710ADS 5720ADS 5730ADS 5740ADS 5750ADS 5760ADS 5770ADS 5780ADS 5790ADS 5800ADS 5810ADS 5820ADS 5830ADS 5840ADS 5850ADS 5860ADS 5870ADS 5880ADS 5890ADS 5900ADS 5910
-| ADS 5920|ADS 5930|ADS 5940
-JADS 5950ADS 5960ADS 5970ADS 5980ADS 5990ADS 6000ADS 6010ADS 6020ADS 6030ADS 6040ADS 6050ADS 6060ADS 6070ADS 6080ADS 6090ADS 6100ADS 6110ADS 6120ADS 6130ADS 6140ADS 6150ADS 6160ADS 6170
238
IFIFIFIFEQH
IFIFIFIFIFIFIF
(J(J(J(J=
(J(J(J(J(J(J(JJ
.EQ.
.EQ.
.EQ.
.EQ.EQH
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
.EQ.
32)33)49)97)
+ (X
7)97)98)
207)208)209)
7207
EQFACEQFACEQFACEQFAC
- -1.- 2.- 1.- 2.
0000
* EQFAC)
EQC -EQC =EQC -EQC -EQC -EQC -.OR. J.OR. J
(X(X(X(X(X *(X *.EQ..EQ.
23
2
) + EQC) +) +) +
EQC EQC EQC EQC0)
0) + EQC 97 .OR. J EQ. 98 .OR.
OR. J .EQ. 209) J -
ANALM(J) - ANMMIX(J) + XIF (J .NE. 8 .AND. J .NE. 9 .AND. J .NE. 10
.AND. ANALM(J) .LE. 0.0) THEN1, INSP ADD(J) - STEP(J)STEP(J) * (0.5DOO)
DO 715 J ADD(J) STEP(J)
715 CONTINUEGO TO 700
END IF720 CONTINUE 730 CONTINUE
TOTEL(l) - AlMIX(l) + EQH TOTEL(3) - A1MIX(3) + EQC IF (TOTEL(3) .GT. 0.0) THENANALM(7) - TOTEL(3)ANALM(98) - 0.0
ELSEANALM(7) - 0.0ANALM(98) - 0.0
END IF
J - 0 DO 800 I - 1
J - J + 1 IF (J .EQ. IF (J .EQ. IF (J .EQ. IF (J .EQ. IF (J .EQ. IF (J .EQ. IF (J .EQ. EXELT(I)
800 CONTINUE EXELT(29) - EXELT(30) - EXELT(31) - EXELT(32) - EXELT(33) - EXELT(34) - EXELT(35) -
, 28
8) J - 12 17) J - 18 19) J - 21 24) J - 25 34) J - 48 49) J - 169 170) J - 210
- ANALM(J)
ANALM(7) ANALM(246) ANALM(265) ANALM(136) ANALM(MXSP+1) ANALM(MXSP+16) ANALM(MXSP+31)
TITR( 1) - EXELT(29)
ADS 6180ADS 6190ADS 6200ADS 6210ADS 6220ADS 6230ADS 6240ADS 6250ADS 6260ADS 6270ADS 6280ADS 6290ADS 6300ADS 6310ADS 6320ADS 6330ADS 6340ADS 6350ADS 6360ADS 6370ADS 6380ADS 6390ADS 6400ADS 6410ADS 6420ADS 6430ADS 6440ADS 6450ADS 6460ADS 6470ADS 6480ADS 6490ADS 6500ADS 6510ADS 6520ADS 6530ADS 6540ADS 6550ADS 6560ADS 6570ADS 6580ADS 6590ADS 6600ADS 6610ADS 6620ADS 6630ADS 6640ADS 6650ADS 6660ADS 6670ADS 6680ADS 6690ADS 6700ADS 6710ADS 6720ADS 6730ADS 6740ADS 6750
239
TITR( 2) = EXELT( 6) TITR( 3) = EXELT(22) TITR( 4) = EXELT(21) TITR( 5) = EXELT( 5) TITR( 6) = EXELT(26) TITR( 7) = EXELT(25) TITR( 8) - EXELT(30) TITR( 9) = EXELT(31) TITR(IO) = EXELT(33) TITR(ll) = EXELT(34)
HTOTI OHTOTI
TOTEL(l) TOTEL(2)
J - NEUTIF (NEUT .EQ. 0) J - INSP+1OK - 1IF (IPRIN2 .NE. 0) THEN
IF ((IPGLN + INSP +9) .GT. 58) CALL PAGE IPGLN = IPGLN + INSP + 9 WRITE (UNO, 1000) WRITE (UNO, 1002) DO 970 I - 1, INSPWRITE (UNO, 1003) SPN(I), KNOWN(I),
(KNOWN(I) * DABS(ANSWER(I,J))), (KNOWN(I) * 1000.0 * DABS(ANSWER(I,J)) / CEC)
970 CONTINUE
WRITE (UNO, 1004) END IF
RETURN
1000 FORMAT(//, ' Surface Conditions calculated for the next', ' step ..... ')
1001 FORMAT(///, ' Final Equilibrium Surface Conditions .........')1002 FORMAT( /,3X, 'Surface', 9X, 'Moles on', 11X, 'Moles of, 6X,
' Fraction of ,/,3X, 'Complex', 9X, 'Surface', 10X, 'Surface Site', 4X,
'Surface Sites')1003 FORMAT(5X, A, 2X, E12.5, 7X, E12.5, 7X, F6.4)1004 FORMAT(//)1005 FORMAT(//, ' Initial Surface Conditions .........')1006 FORMAT(//, ' CEC = ',E12.5,' milli-equivalents ',
/, ' ',E12.5,' moles exchange capacity for mono','valent cations and anions')
1007 FORMAT(//, ' K Surface Comp. Species and Coef. .... '
1008 FORMAT(E12.5, ' - ',A, END
ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS ADS
67606770678067906800681068206830684068506860687068806890690069106920693069406950696069706980699070007010702070307040705070607070708070907100711071207130714071507160717071807190720072107220723072407250
C ===C
SUBROUTINE AITLIM (X, Y, CROSS)
Determines maximum stepsize for convergence on anions
240
AIT 0010'IAIT 0020|AIT 0030
C CROSS LOG Indicates root has been crossed JAIT 0050 C RATIO DBL Test value based on Y |AIT 0060 C X DBL Multiplication factor for stepsize JAIT 0070 C Y DBL Currently calculated value over mass of |AIT 0080 C component in solution |AIT 0090 c - - - -------------------------------------------- IATT mnn
DOUBLE PRECISION X, Y, RATIOLOGICAL CROSSINTRINSIC DABS
-o
RATIO = DABS(1.0DOO - Y)
IF (CROSS) THENX - X / 2.0IF (X .LT. 1.0) X = 1.0
ELSEX = X * 1.3
END IF
IF (X .GT. 20.0) X - 20.0
IF (RATIO .GT. 0.02 .AND. X .GT. 10.0) X =10.0IF (RATIO .GT. 0.05 .AND. X .GT. 5.0) X - 5.0IF (RATIO .GT. 0.10 .AND. X .GT. 3.0) X - 3.0IF (RATIO .GT. 0.20 .AND. X .GT. 2.0) X = 2.0IF (RATIO .GT. 0.3) X = 1.0
RETURNEND
AIT 0110AIT 0120AIT 0130IATT 0140AIT 0150AIT 0160AIT 0170AIT 0180AIT 0190AIT 0200AIT 0210AIT 0220AIT 0230AIT 0240AIT 0250AIT 0260AIT 0270AIT 0280AIT 0290AIT 0300AIT 0310AIT 0320AIT 0330AIT 0340
CCCCCCCCCCC
C
DOUBLE PRECISION FUNCTION ATCPRD (1C, INDEX, COEF, ALFA)
This function calculates the activity products for reactions
ALFA DBL Activity of aqueous speciesCOEF DBL Stoichiometric coefficient for the speciesCPUMIN DBL Smallest positive real value program usesI INT Loop counting variable1C INT Number of componentsINDEX INT Index number of the componentsJ INT Current index number of this component
DOUBLE PRECISION CPUMINPARAMETER (CPUMIN = l.OD-35)
INTEGER I, 1C, INDEX(*) , JDOUBLE PRECISION ALFA(*) , COEF(*)INTRINSIC DLOG10
=====================================================================
ATC 0010IATC 0020IATC 0030IATC 0040IATC oosoIATC 0060IATC 0070IATC oosoIATC 0090IATC 0100IATC 0110IATC 0120ATC 0130ATC 0140ATC 0150ATC 0160ATC 0170ATC 0180ATC 0190ATC 0200IATC 0210ATC 0220
241
ATCPRD - O.ODOO
DO 100 1=1, 1C J - INDEX(I) IF (J .GT. 0) THEN
IF (ALFA(J) .LT. CPUMIN) THEN ATCPRD = -999.99 RETURN
END IFATCPRD - ATCPRD + (COEF(I) * DLOG10(ALFA(J)))
END IF 100 CONTINUE
RETURN END
ATCATCATCATCATCATCATCATCATCATCATCATCATCATCATC
023002400250026002700280029003000310032003300340035003600370
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
SUBROUTINE CALCUL (A, B, TDS , Y28, DNS, TEMP, HITEMP, PRESS. DENS CAT. nmn
This routine 1) Calculate2) Calculate 3) Calculate4) Calc. temp
A DBL ANALM DBL ANMTIC DBLB DBL BOAT DBL BOOT DBL CADENS DBL CPUMIN DBL CUNITS DBL CURDEN DBLDENOLD DBL DENS DBLDNS CHA EHM DBLEHMC DBL EMFZSC DBL EXELT DBL GAMMA DBL GFW DBL GFWC DBL HITEMP DBLI INTIMIX INT J INTM DBL MNACLD DBL MXSP INT
ifiHM, EHMC, EMFZSC, GFW, Z, UNITS, MXSP,ANMTIC, GAMMA, TC02, BOAT, BOOT, MNACLDNUFLAG)
will do the following: eh from field data.analyzed molality.C* JJ f~ "T f^T^ £t f\ "1 f^T^ t\ Q 1 QT^ f* OL-ctUJ-Uil" dilJ-Ull UclJ_ctIlCc .
. effects on debye-huckel solvent constants.
Molal Debye-Huckel coefficient Analyzed molality of species i Analyzed TICMolal Debye-Huckel coefficient B-dot as a function of temperature Activity coefficient deviation function Calculated density Smallest positive real value program uses Analytical input concentration Current densityPrevious density, used for iterations DensityDetermines if density should be calculated Measured Eh in voltsMeasured Eh using the Calomel electrode Measured Eh using the Zobell's solution Total moles of component. Activity coef . of species Gram formula weight of aqueous species Gram Formula weight of catbon In- situ temperatureLoop variableSwitch used in MIXER routines Loop variableCalculated molality of aqUeous species Sum of Molality * charge / 2 Total number of aqueous species
TIT PAT nfionI XL", \jt\Li UU^U
CAL 0030CAL 0040
|CAL 0050
ICAL 0060ICAL 0070JCAL 0080|CAL 0090ICAL 0100
--..... JCAL 0110 ICAL 0120 ICAL 0130|CAL 0140 |CAL 0150 JCAL 0160 |CAL 0170ICAL oiso|CAL 0190 JCAL 0200|CAL 0210ICAL 0220|CAL 0230 |CAL 0240|CAL 0250 JCAL 0260ICAL 0270 ICAL 0280 ICAL 0290 ICAL 0300 ICAL 0310JCAL 0320JCAL 0330 |CAL 0340|CAL 0350ICAL 0360 ICAL 0370JCAL 0380
242
ccccccccccccccccr\J
c
cr.
NMAX INT General array dimension to allow easy expansionNUFLAG INT Sets the activity coefficients of neutral speciesPRESS DEL Total pressureSi DEL Temperary sum variableS2 DEL Temperary sum variableS3 DEL Temperary sum variableT DEL Temperature in deg. KTC02 DEL Activity coefficients of C02 with temperatureTDS DEL Total Dissolved Solids (UNITS = KG/L)TEMP DEL Temperature of the solution when pH was measuredTIC DEL Concentration of total inorganic carbonTITR DEL Used for convergence in DISTRBTOTEL DEL Contains HTOT, OHTOT and Sum C02UNITS CHA Units of concentrationY28 INT Set at hitemp to skip unneeded calculationsZ INT Charge of aqueous species
INTEGER NMAXDOUBLE PRECISION CPUMIN, GFWC
PARAMETER (NMAX = 340)PARAMETER (CPUMIN=1 .OD-35 , GFWC - 12.011DO)
CHARACTER*! DNSCHARACTER*5 UNITS
INTEGER I, IBMIX, IDMIX(50) , IMIX, INMIX, ITMIXINTEGER J, MXSP, NUFLAG, Y28, Z(NMAX)
DOUBLE PRECISION A, ALFA ( NMAX ), AMOL(50) , ANALM(NMAX) , ANMTICDOUBLE PRECISION B, BDAT(IO) , BOOT, CADENS , C02F, CUNITS(NMAX)DOUBLE PRECISION CURDEN, DENOLD, DENS, DFRACl, DINC, EHM, EHMCDOUBLE PRECISION EMFZSC , EXELT(35) , FBOIL, GAMMA(NMAX)DOUBLE PRECISION GFW(NMAX) , HITEMP, HTOTI, KHC02 , KHH2SDOUBLE PRECISION M(NMAX) , MNACLD, OHTOTI , PH, PRESS, SI, S2, S3DOUBLE PRECISION T, TC02(10), TDS, TEMP, TIC, TITR(ll) , TOTEL(5)
EXTERNAL KHC02 , KHH2S
INTRINSIC DABS, DSQRT, IABS
COMMON /AMM / IDMIX, AMOL, ITMIX, INMIX, DFRACl, DINC, FBOILCOMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /IMM / IBMIX, IMIXCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /TOTALS/ C02F, HTOTI, OHTOTI
SAVE DENOLD
=====================================================================
T = TEMP + 273.15DOIF (Y28 .EQ. 1) GO TO 70
Calculation of Eh from field data.
|CAL 0390JCAL 0400ICAL 0410JCAL 0420JCAL 0430ICAL 0440JCAL 0450JCAL 0460JCAL 0470JCAL 0480JCAL 0490ICAL osoo|CAL 0510JCAL 0520ICAL 0530ICAL 0540JCAL 0550CAL 0560CAL 0570CAL 0580CAL 0590CAL 0600CAL 0610CAL 0620CAL 0630CAL 0640CAL 0650CAL 0660CAL 0670CAL 0680CAL 0690CAL 0700CAL 0710CAL 0720CAL 0730CAL 0740CAL 0750CAL 0760CAL 0770CAL 0780CAL 0790CAL 0800CAL 0810CAL 0820CAL 0830CAL 0840CAL 0850CAL 0860CAL 0870CAL 0880(GAL 0890CAL 0900CAL 0910CAL 0920CAL 0930(GAL 0940ICAL 0950ITAT OQAn
243
ccccc
IF ((DABS(EMFZSC - 9.0DO)) .LT. l.OD-10) THENSI - 0.2145DO - (7.6D-04 * (TEMP - 25.0DO))
ELSESI = 4.28D-1 - (2.2D-03 * (TEMP - 25.0DO)) - EMFZSC
END IF
IF (EHMC .LT. 9. DO) EHM - EHMC + SI
Calculation of analyzed molality.If no value for density is entered then One will be computedusing the empirical equation:DENSITY = 1.00 + 6.88 X 10 D-7 X TOTAL I^ISSOLVED SOLIDS
i
CURDEN - DENSTDS = O.ODOO
10 CONTINUESI - O.ODOODO 20 I = 1, MXSP + 44
IF (UNITS .EQ. 'PPM ') THENSI = SI + (l.OD-6 * CUNITS(I) * DENS)
ELSE IF (UNITS .EQ. 'MG/L ') THENSI - SI + (l.OD-6 * CUNITS(I))
ELSE IF (UNITS .EQ. 'MOL/L' .OR. UNITS .EQ. 'MOL/K') THENSI = SI + (l.OD-3 * CUNITS(I) * GFW(I) * (DENS - TDS))
ELSE IF (UNITS .EQ. 'MEQ/L' .AND. Z(I) .NE. 0) THENSI - SI + (l.OD-6 * CUNITS(I) * GFW(I) * (DENS - TDS) /
IABS(Z(I)))END IF
20 CONTINUE
CADENS = l.ODO + (6.88D-7 * (1.0D6 * Si))IF (DNS .EQ. 'U') THEN
DENS = CADENSDENOLD = CADENS
END IF
IF (SI .GT. CPUMIN) THENIF (DABS ((TDS - Si) / Si) .LT. 0.0001) THEN
TDS - SIELSE
TDS - SIGO TO 10
END IFEND IF
IF (DNS .EQ. 'N') THENCURDEN = CURDEN + CADENS - DENOLD
ELSE IF (DNS .EQ. 'U') THENCURDEN = DENS
END IF
DNS = 'N'DENOLD = CADENSDENS = CURDEN
CAL 0970CAL 0980CAL 0990CAL 1000CAL 1010CAL 1020CAL 1030CAL 1040CAL 1050
--ICAL 1060JCAL 1070ICAL losoJCAL 1090JCAL 1100
--JCAL 1110CAL 1120CAL 1130CAL 1140CAL 1150CAL 1160CAL 1170CAL 1180CAL 1190CAL 1200CAL 1210CAL 1220CAL 1230CAL 1240CAL 1250CAL 1260CAL 1270CAL 1280CAL 1290CAL 1300CAL 1310CAL 1320CAL 1330CAL 1340CAL 1350CAL 1360CAL 1370CAL 1380CAL 1390CAL 1400CAL 1410CAL 1420CAL 1430CAL 1440CAL 1450CAL 1460CAL 1470CAL 1480CAL 1490CAL 1500CAL 1510CAL 1520CAL 1530CAL 1540
244
IF (IMIX .EQ. 1) GO TO 40
DO 30 I = 1, MXSP + 44M(I) = O.ODOIF (UNITS .EQ. 'PPM ' .AND. GFW(I) .GT. CPUMIN) THENM(I) - l.OD-3 * CUNITS(I) * DENS / (GFW(I) * (DENS - TDS))
ELSE IF (UNITS .EQ. 'MG/L ' .AND. GFW(I) .GT. CPUMIN) THENM(I) = l.OD-3 * CUNITS(I) / (GFW(I) * (DENS - TDS))
ELSE IF (UNITS .EQ. 'MOL/L') THENM(I) = CUNITS(I) / (DENS - TDS)
ELSE IF (UNITS .EQ. 'MOL/K') THENM(I) = CUNITS(I)
ELSE IF (UNITS .EQ. 'MEQ/L' .AND. Z(I) .NE. 0) THENM(I) = l.OD-3 * CUNITS(I) / (IABS(Z(I)) * (DENS - TDS))
END IFANALM(I) = M(I)
30 CONTINUE
IF (UNITS .EQ. 'PPM ') THENANMTIC - TIC * l.OD-3 * DENS / (GFWC * (DENS - TDS))
ELSE IF (UNITS .EQ. 'MG/L ') THENANMTIC = TIC * l.OD-3 / (GFWC * (DENS - TDS))
ELSE IF (UNITS .EQ. 'MOL/L') THENANMTIC - TIC / (DENS - TDS)
ELSE IF (UNITS .EQ. 'MOL/K') THENANMTIC = TIC
END IF
40 CONTINUE
Set the mass balance variables to be used in species distribution
J = 0DO 60 I = 1, 28
J = J + 1IF (J .EQ. 8) J - 12IF (J .EQ. 17) J - 18IF (J .EQ. 19) J - 21IF (J .EQ. 24) J - 25IF (J .EQ. 34) J - 48IF (J .EQ. 49) J - 169IF (J .EQ. 170) J - 210EXELT(I) = M(J)
60 CONTINUE
EXELT(29) = M(7) + (2.0 * M(98))EXELT(30) - M(246)EXELT(31) = M(265)EXELT(32) = M(136)EXELT(33) = M(MXSP+1)EXELT(34) = M(MXSP+16)EXELT(35) = M(MXSP+31)
TITR( 1) = EXELT(29)
CAL 1550CAL 1560CAL 1570CAL 1580CAL 1590CAL 1600CAL 1610CAL 1620CAL 1630CAL 1640CAL 1650CAL 1660CAL 1670CAL 1680CAL 1690CAL 1700CAL 1710CAL 1720CAL 1730CAL 1740CAL 1750CAL 1760CAL 1770CAL 1780CAL 1790CAL 1800CAL 1810CAL 1820CAL 1830CAL 1840CAL 1850
-| CAL 1860 JCAL 1870
-ICAL i860CAL 1890CAL 1900CAL 1910CAL 1920CAL 1930CAL 1940CAL 1950CAL 1960CAL 1970CAL 1980CAL 1990CAL 2000CAL 2010CAL 2020CAL 2030CAL 2040CAL 2050CAL 2060CAL 2070CAL 2080CAL 2090CAL 2100CAL 2110CAL 2120
245
r>\_>
cccccr>\_>
ccr> \_>
TITR( 2) - EXELT( 6)TITR( 3) - EXELT(22)TITR( 4) - EXELT(21)TITR( 5) - EXELT( 5)TITR( 6) - EXELT(26)TITR( 7) - EXELT(25)TITR( 8) - EXELT(30)TITR( 9) - EXELT(31)TITR(IO) - EXELT(33)TITR(ll) - EXELT(34)
70 CONTINUE
MNACLD - O.ODODO 80 I = 1, MXSP + 44MNACLD = MNACLD + (ANALM(I) * IABS(Z(I)))
80 CONTINUEMNACLD - 0.5*MNACLD + l.DO
Calculation of the activity coeffs (gamma) for neutral species.Gamma - 1 if nuflag =1. If nuflag = 0 then gamma for neutralspecies are equal to gamma (co2) except for gamma (h2s) which iscalculated separately. Gamma for co2 is calculated by the methodof drummond (unpublished disert. , 1981) .
SI - KHC02(T, MNACLD) / KHC02(T, l.ODOO)
DO 90 I - 1, MXSP + 44IF (IABS(Z(I)) .LT. 1) THEN
IF (NUFLAG .EQ. 1) THENGAMMA(I) - l.ODO
ELSEGAMMA(I) = SI
END IFEND IF
90 CONTINUE
IF (ANALM(33) .GT. CPUMIN) THENGAMMA(33) - KHH2S(T, MNACLD) / KHH2S(T, l.ODOO)
ELSEGAMMA(33) = l.ODOO
END IF
IF (IMIX .EQ. 1) RETURN
Temperature effects on debye-huckel solvent constants.
SI - 374.11DO - TEMPS2 = S1**0.333333DOS3 = DSQRT( (l.ODO + 0.1342489DO * S2 - 3.946263D-3 * SI) /
(3.1975DO - 0.3151548DO * S2 - 1.203374D-3 * SI +7.48908D-13 * Sl**4))
CAL 2130CAL 2140CAL 2150CAL 2160CAL 2170CAL 2180CAL 2190CAL 2200CAL 2210CAL 2220CAL 2230CAL 2240CAL 2250CAL 2260CAL 2270CAL 2280CAL 2290CAL 2300CAL 2310CAL 2320
|CAL 2330 |CAL 2340|CAL 2350JCAL 2360|CAL 2370JCAL 2380|CAL 2390CAL 2400CAL 2410CAL 2420CAL 2430CAL 2440CAL 2450CAL 2460CAL 2470CAL 2480CAL 2490CAL 2500CAL 2510CAL 2520CAL 2530CAL 2540CAL 2550CAL 2560CAL 2570CAL 2580CAL 2590CAL 2600|CAL 2610 |CAL 2620|CAL 2630 CAL 2640CAL 2650CAL 2660CAL 2670CAL 2680CAL 2690CAL 2700
246
IF ((DABS(HITEMP-TEMP)) .LT. l.OD-10 .OR. HITEMP .LT. l.OD-10) . S3 = DSQRT(S3**2 + 0.0087 * PRESS / (400.0 - TEMP)**0.95)
IF (T .LT. 373.16DO) THENSI = 87.74DO - TEMP * (TEMP * (1.41D-6 * TEMP -
9.398D-4) + 0.4008DO) ELSE
SI - 5321DO / T + 233.76DO - T * (T * (8.292D-7 * T -1.417D-3) + 0.9297DO)
END IF
IF ((DABS(HITEMP-TEMP)) .LT. l.OD-10 .OR. HITEMP .LT. l.OD-10) . SI = SI + 0.053 * PRESS / (400.0 - TEMP)**0.5
SI = DSQRT(S1 * T)A = 18246D2 * S3 / Sl**3B =50.29 * S3 / SI
Calculate bdot
IF (TEMP .GT. 300.ODO) THENBDOT = O.ODO
ELSEDO 120 J - 1, 9
IF ((DABS(TEMP-TC02(J))) .LT. l.OD-10) THEN BDOT = BDAT(J) GO TO 130
ELSE IF (TEMP .LT. TC02(J)) THENBDOT = BDAT(J-l) + (TEMP-TC02(J-1)) * (BDAT(J)
BDAT(J-l)) / (TC02(J)-TC02(J-1)) GO TO 130
END IF120 CONTINUE130 CONTINUE
END IF
RETURN END
CAL 2710 CAL 2720 CAL 2730 CAL 2740 CAL 2750 CAL 2760 CAL 2770 CAL 2780 CAL 2790 CAL 2800 CAL 2810 CAL 2820 CAL 2830 CAL 2840 CAL 2850 CAL 2860 CAL 2870 CAL 2880 |CAL 2890 jCAL 2900 ICAL 2910 CAL 2920 CAL 2930 CAL 2940 CAL 2950 CAL 2960 CAL 2970 CAL 2980 CAL 2990 CAL 3000 CAL 3010 CAL 3020 CAL 3030 CAL 3040 CAL 3050 CAL 3060 CAL 3070 CAL 3080 CAL 3090 CAL 3100
C .
cC
c c c c c c c
SUBROUTINE C020PT (TEMP, HITEMP, GAMMA, IC02 , IMC03 , FCCSAT, MNACLD, ITIC, ISAT, IPRIN2 , *)
Titrates co2 to a given criterion (pH, pco2, m(h2co3) , or saturation with calcite, siderite, or dolomite)
ALFA DBL Activity of aqueous species i ANALM DBL Analyzed molality of species i C02F DBL Sum of C02 plus C02 lost from solution C02INC DBL Amount of C02 to be added/removed C02SAT DBL Saturation indices/test for various options CPUMIN DBL Smallest positive real value program uses CROSS LOG Have we crossed root?
C02 0010 C02 0020
<===|C02 0030 |C02 0040 JC02 0050
--- JC02 0060JC02 0070 JC02 0080 |C02 0090 |C02 0100 |C02 0110 |C02 0120 IC02 0130
247
cccccccccccccccccccccccccccccccccccccccccccccccccccccc
- -
DCH4DDCH4DC02DDC02DH2SDDH2SDNH3DDNH3DONEEXELTFCCSATFIXITGAMMAHFACHITEMPHTOTHTOTIIIC02IICIMC03IOPTI PAGEIPGLNIPRIN2I SATITICJC03KHKHC02KT1KTFACLOGKT1LOGKT2LTCSATMMAXC02
MNACLDNDIMNMAXOHTOTOHTOTIPHPHHITPPHHITSATNAMTEMPTIAPTITRTKTKTTOTELUNO
INTEGERDOUBLE
DELDELDELDELDELDELDELDBLLOGDBLDBLDBLDBLDBLDBLDBLDBLINTINTINTINTINTINTINTINTINTINTINTDBLDBLDBLDBLDBLDBLDBLDBLDBL
DBLINTINTDBLDBLDBLINTINTCHADBLDBLDBLDBLDBLDBLINT
NDIM,
Concentration of CH4 lost up annulusConcentration of CH4 lost before pH measurementConcentration of C02 lost up annulusConcentration of C02 lost before pH measurementConcentration of H2S lost up annulusConcentration of H2S lost before pH measurementConcentration of NH3 lost up annulusConcentration of NH3 lost before pH measurementSwitch indicating DONETotal amount of componentsZero test valueFixing value in the C02 optionActivity coef . of aqueous speciesAmount of H to be added to hydronium balanceIn- situ temperatureCurrent total hydroniumInitial hydroniumLoop variableSwitch for C02 optionIndex pointer to select carbonate speciesSelects C02 optionSwitch for C02 optionCurrent page number of output fileCurrent line number of the output fileSwitch for printingCounter for storing things in the positionHitemp distribution of carbonate speciesSwitch to control printing of some headingsHenry's law constant for C02 at TFunction to Calculate the Henry's law K for C02Equilibrium constant of the aqueous reactionsCorrection for number of C02 groupsLog K for aqueous species at specified temp.Log K for minerals at specified temperatureValue used for testingCalculated molality of aqueous speciesDetermines which carbonate species has the
largest molalitySum of Molality * charge / 2Parameter for dimensionGeneral array dimension to allow easy expansionTotal OH in solutionTotal OH in solution . . initiallyMeasured pH of the solutionHITEMP switch, used to control PHCALCSwitch to control calling PHCALCName used for this option, Cal, Dol, ....Temperature of the solution when pH was measuredTemporary activity productUsed for convergence in DISTRBTemperature in deg KTemporary thermodynamic log kTotal amount of each elenientFile unit assigned for odtput file
NMAX, UNOPRECISION CPUMIN
|C02 0140C02 0150|C02 0160C02 0170C02 0180|C02 0190C02 0200|C02 0210JC02 0220JC02 0230|C02 0240C02 0250|C02 0260|C02 0270|C02 0280JC02 0290|C02 0300|C02 0310|C02 0320|C02 0330JC02 0340|C02 0350|C02 0360|C02 0370|C02 0380|C02 0390|C02 0400|C02 0410|C02 0420|C02 0430JC02 0440|C02 0450|C02 0460|C02 0470|C02 0480|C02 0490|C02 0500JC02 0510|C02 0520|C02 0530|C02 0540|C02 0550|C02 0560C02 0570|C02 0580C02 0590|C02 0600|C02 0610|C02 0620|C02 0630|C02 0640|C02 0650|C02 0660|C02 0670|C02 0680C02 0690C02 0700C02 0710
248
PARAMETER (CPUMIN - l.OD-35, NDIM - 7, NMAX - 340, UNO = 6)
INTEGER I, IC02, IIC, IMC03 , IOPT, IPAGE, IPGLN, IPRIN2 , ISATINTEGER ITIC, JC03, PHHIT, PPHHIT
LOGICAL CROSS, DONE
CHARACTER * 1 TOF, CRCHARACTER * 8 SATNAM(6)CHARACTER * 40 TITMIX
DOUBLE PRECISION ALFA(NMAX) , ANALM(NMAX)DOUBLE PRECISION C02F, C02SAT(NDIM) , C02INC(NDIM) , CUNITS(NMAX)DOUBLE PRECISION DCH4, DDCH4, DC02 , DDC02 , DH2S, DDH2SDOUBLE PRECISION DNH3 , DDNH3 , EXELT(35) , FCCSAT, FIXITDOUBLE PRECISION GAMMA(NMAX) , HFAC, HITEMP, HTOT, HTOTIDOUBLE PRECISION KH, KHC02 , KTl(NMAX) , KTFACDOUBLE PRECISION LOGKTl(NMAX) , LOGKT2 (NMAX) , LTCSATDOUBLE PRECISION M(NMAX) , MAXC02 , MNACLD, OHTOT, OHTOTI , PHDOUBLE PRECISION SC02, TEMP, TIAP, TITR(ll) , TK, TKT, TOTEL(5)
EXTERNAL GUESS, KHC02 , PAGE, SORTA
INTRINSIC DABS, DLOG10
COMMON /ALOGK / LOGKTl , LOGKT2COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /TOTALS/ C02F, HTOTI, OHTOTICOMMON /TTK / KT1COMMON /ZPH / PHHIT, PPHHIT, JC03, SC02 , HTOT, OHTOT
SAVE C02SAT, C02INC, CROSS, DONE
DATA SATNAM/ 'CALCITE ', 'DOLOMITE', 'SIDERITE', ' AQ C02 ' ,' PH' , ' PC02'/
c ======================================================================
C -----
C If C02, H2S, NH3 or CH4 are being addedC -----
IF (IC02 .EQ. 0) THENDC02 = DDC02DH2S = DDH2SDNH3 = DDNH3DCH4 - DDCH4CALL PAGEWRITE (UNO, 1001) DC02, DH2S, DNH3 , DCH4IPGLN = IPGLN + 6
IF (DABS(HITEMP-TEMP) .GT. CPUMIN) HITEMP = TEMP
C02 0720C02 0730C02 0740C02 0750C02 0760C02 0770C02 0780C02 0790C02 0800C02 0810C02 0820C02 0830C02 0840C02 0850C02 0860C02 0870C02 0880C02 0890C02 0900C02 0910C02 0920C02 0930C02 0940C02 0950C02 0960C02 0970C02 0980C02 0990C02 1000C02 1010C02 1020C02 1030C02 1040C02 1050C02 1060C02 1070C02 1080C02 1090C02 1100C02 1110C02 1120|C02 1130C02 1140|C02 1150 |C02 1160|C02 1170 C02 1180C02 1190C02 1200C02 1210C02 1220C02 1230C02 1240C02 1250C02 1260C02 1270C02 1280C02 1290
249
cccccccccccc
c --cc
JC03 = 1me = 2IOPT - 0PHHIT = 1PPHHIT = 0HTOTI - HTOTOHTOTI = OHTOT
EXELT(25) = EXELT(25) + DDH2STITR(7) = EXELT(25)EXELT(24) - EXELT(24) + DDNH3EXELT(29) - EXELT(29) + DDC02TITR(l) - EXELT(29)M(285) = M(285) + DDCH4ANALM(285) = M(285) + DDCH4
DDC02 =0.0DDH2S =0.0DDNH3 =0.0DDCH4 =0.0
RETURNEND IF
Add the amount of CO 2required for saturation with CALCITE (IMC03=1)required for saturation with DOLOMJTE (IMC03=2)required for saturation with SIDERITE (IMC03=3)required to reach a specified m H2C03 (IMC03=4)
which is stored in FIXITrequired to reach a specified pH (IMC03=5)
which is stored in FIXITrequired to reach a specified p C02 (IMC03=6)
which is stored in FIXIT
IC02 must be greater than zero for this option to be used.,_________________________________________ H _______________________
IF (ISAT .EQ. 0) THENCROSS = .FALSE.DONE = .FALSE.
IF (DABS(HITEMP-TEMP) .GT. l.OD-10) HITEMP - TEMP
PHHIT - 1PPHHIT - 0HTOTI = HTOTOHTOTI = OHTOTJC03 = 1ITIC = 2
END IF
ISAT - ISAT + 1
Scan for the most abundant species of C02 and use it later tominimize round- off errors in calculation^ .
C02 1300C02 1310C02 1320C02 1330C02 1340C02 1350C02 1360C02 1370C02 1380C02 1390C02 1400C02 1410C02 1420C02 1430C02 1440C02 1450C02 1460C02 1470C02 1480C02 1490C02 1500C02 1510C02 1520C02 1530
--|C02 1540JC02 1550|C02 1560|C02 1570|C02 1580JC02 1590JC02 1600|C02 1610JC02 1620|C02 1630|C02 1640|C02 1650JC02 1660
--|C02 1670C02 1680C02 1690C02 1700C02 1710C02 1720C02 1730C02 1740C02 1750C02 1760C02 1770C02 1780C02 1790C02 1800C02 1810C02 1820C02 1830C02 1840
|C02 1860JC02 1870
250
^ _________-___-______--__--_---------------------------------------
MAXC02 = M(7)HFAC = ALFA(8)IIC = 7
DO 10 I = 97, 98IF (M(I) .GT. MAXC02) THENMAXC02 = M(I)IIC = I
END IF10 CONTINUE
IF (IIC .EQ. 97) HFAC = ALFA(8)**2IF (IIC .EQ. 98) HFAC =1.0
_________-_______-----____----------------------------------------C Set up TEST for each of the optionsr ___ ______ ____--___.__________--___---.
IF (IMC03 .EQ. 1) THENTKT = LOGKT2(24)KTFAC =1.0TIAP = ALFA(l) * ALFA (I 1C) / HFAC
ELSE IF (IMC03 .EQ. 2) THENTKT = LOGKT2(41)KTFAC =2.0TIAP = ALFA(l) * ALFA(2) * ALFA(IIC)**2 / HFAC**2
ELSE IF (IMC03 .EQ. 3) THENTKT = LOGKT2(146)KTFAC =1.0TIAP = ALFA(18) * ALFA(IIC) / HFAC
ELSE IF (IMC03 .EQ. 4) THENLTCSAT = DLOGIO(FIXIT) - DLOG10(M(97) )
ELSE IF (IMC03 .EQ. 5) THENLTCSAT = PH - FIXIT
ELSE IF (IMC03 .EQ. 6) THENTK = TEMP + 273.15KH = KHC02 (TK, MNACLD)LTCSAT = DLOG10((FIXIT/KH)) - DLOG10(M(97) )
END IF
IF (IMC03 .EQ. 1 .OR. IMC03 .EQ. 2 .OR. IMC03 .EQ. 3) THENIF (IIC .EQ. 7) THENTKT = TKT - KTFAC * LOGKTl(l)
ELSE IF (IIC .EQ. 97) THENTKT = TKT - KTFAC * (LOGKTl(l) + LOGKT1(72))
END IFLTCSAT = DLOGIO(TIAP) - TKT
END IF
IF (DABS (LTCSAT) .LT. FCCSAT) DONE = .TRUE,
IF (DONE) THENIOPT = 0PHHIT = 0PPHHIT = 1ISAT = 0
C02 1890C02 1900C02 1910C02 1920C02 1930C02 1940C02 1950C02 1960C02 1970C02 1980C02 1990C02 2000C02 2010C02 2020C02 2030
---|C02 2040|C02 2050i rr\o often - - - | uUZ ZUoUC02 2070C02 2080C02 2090C02 2100C02 2110C02 2120C02 2130C02 2140C02 2150C02 2160C02 2170C02 2180C02 2190C02 2200C02 2210C02 2220C02 2230C02 2240C02 2250C02 2260C02 2270C02 2280C02 2290C02 2300C02 2310C02 2320C02 2330C02 2340C02 2350C02 2360C02 2370C02 2380C02 2390C02 2400C02 2410C02 2420C02 2430C02 2440C02 2450
251
JC03HTOTITOTEL(l)TOTEL(3)C02F
0HTOTIHTOTITOTEL(3) + DC02C02F + DC02
+ (2.DO * DC02)
IF (IPGLN .GT. 55 .OR. IPRIN2 .EQ. 0) CALL PAGE IF (IMC03 .LE. 3) THENWRITE (UNO,1007) SATNAM(IMC03), DC02
ELSE IF (IMC03 .EQ. 4) THENWRITE (UNO,1008) SATNAM(IMC03), FIXlT, DC02
ELSE IF (IMC03 .EQ. 5) THENWRITE (UNO,1009) FIXIT, DC02
ELSE IF (IMC03 .EQ. 6) THENWRITE (UNO,1008) SATNAM(IMC03), FIXlT, DC02
END IFIPGLN = IPGLN + 5 DC02 = O.DO RETURN 1
END IF
IF (ISAT .EQ. 1) THEN C02SAT(1) = LTCSAT C02INC(1) - 0.0 IF (IMC03 EQ. 1) THEN DC02 = M(IIC) * ((1.0/(10.0**LTCSAT)) -1.0) IF (DC02 .LT. 0.0) DC02 =0.01 IF (DC02 .GT. 0.05) DC02 - 0.01
ELSE IF (IMC03 .EQ. 2) THENDC02 = M(IIC) * ((1.0/(10.0**LTCSAT)) -1.0) DC02 = DC02 / 2.0 IF (DC02 .LT. 0.0) DC02 =0.01 IF (DC02 .GT. 0.05) DC02 =0.01
ELSE IF (IMC03 .EQ. 3) THENDC02 - M(IIC) * ((1.0/(10.0**LTCSAT)) -1.0) IF (DC02 .LT. 0.0) DC02 = 0.01 IF (DC02 .GT. 0.05) DC02 =0.01
ELSE IF (IMC03 .EQ. 4) THEN IF (IIC .EQ. 7) THEN
DC02 - FIXIT * KT1(72) * GAMMA(97) / ALFA(8)DC02 - DC02 / GAMMA(7)DC02 = (DC02 - M(7)) / 3.0
ELSE IF (IIC .EQ. 97) THENDC02 = FIXIT - M(97)
ELSE IF (IIC .EQ. 98) THENDC02 - FIXIT * KT1(72) * GAMMA(97) / ALFA(8)DC02 = DC02 * KT1(1) / (GAMMA(98) * ALFA(8))DC02 = (DC02 - M(98)) / 3.0
END IF ELSE IF (IMC03 .EQ. 5) THEN
DC02 = 10.0**(-FIXIT) - 10.0**(-PH) DC02 = DC02 / 2.0
ELSE IF (IMC03 .EQ. 6) THEN IF (IIC .EQ. 7) THENDC02 = (FIXIT/KH) * KT1(72) * GAMMA(97) / ALFA(8)DC02 = DC02 / GAMMA(7)DC02 = (DC02 - M(7)) / 3.0
ELSE IF (IIC .EQ. 97) THEN
C02 2460 C02 2470 C02 2480 C02 2490 C02 2500 C02 2510 C02 2520 C02 2530 C02 2540 C02 2550 C02 2560 C02 2570 C02 2580 C02 2590 C02 2600 C02 2610 C02 2620 C02 2630 C02 2640 C02 2650 C02 2660 C02 2670 C02 2680 C02 2690 C02 2700 C02 2710 C02 2720 C02 2730 C02 2740 C02 2750 C02 2760 C02 2770 C02 2780 C02 2790 C02 2800 C02 2810 C02 2820 C02 2830 C02 2840 C02 2850 C02 2860 C02 2870 C02 2880 C02 2890 C02 2900 C02 2910 C02 2920 C02 2930 C02 2940 C02 2950 C02 2960 C02 2970 C02 2980 C02 2990 C02 3000 C02 3010 C02 3020 C02 3030
252
20
30
40
DC02 = (FIXIT/KH) - M(97) ELSE IF (IIC .EQ. 98) THEN
DC02 = (FIXIT/KH) * KTl(72) * GAMMA(97) / ALFA(8) DC02 = DC02 * KT1(1) / (GAMMA(98) * ALFA(8)) DC02 = (DC02 - M(98)) / 3.0
END IF END IF
ELSE IF (ISAT .GE. 2) THEN C02SAT(ISAT) = LTCSAT C02INC(ISAT) = DC02 IF ((LTCSAT * C02SAT(1)) .LT. 0.0) CROSS = .TRUE.
Sort if Root has been crossed
1 = 1IF (CROSS) CALL SORTA (C02INC, C02SAT, ISAT, I)
Due to size of guess routine, keep only last NDIM-1 pts
IF (ISAT .EQ. NDIM) THEN IF (.NOT. CROSS) THEN
DO 20 I = 1, (NDIM-1) C02INC(I) = C02INC(I+1) C02SAT(I) = C02SAT(I+1)
CONTINUE END IF IF (CROSS) THEN
IF (C02SAT(1) * C02SAT(2)ISAT = NDIM-1
ELSE IF (C02SAT(NDIM-1)*C02SAT(NDIM) DO 30 I = 1,(NDIM-1)
C02INC(I) = C02INC(I+1) C02SAT(I) = C02SAT(I+1)
CONTINUEELSE IF (DABS(C02SAT(1)) .GT
DO 40 I = 1,(NDIM-1)C02INC(I) = C02INC(I+1)
C02SAT(I+1)
,LT. 0.0) THEN
.LT. 0.0) THEN
DABS(C02SAT(NDIM))) THEN
C02SAT(I) CONTINUE
END IF END IFISAT = NDIM - 1
END IF
If root not yet crossed, keep on trucking
IF (.NOT. CROSS) THENDC02 = DC02 * 2.0IF ((C02F + DC02) .LT. CPUMIN) DC02
END IFl.OD-10 - C02F
C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 |C02 |C02 |C02 C02 C02 C02 C02 |C02 JC02 |C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 C02 |C02 |C02 |C02 C02 C02 C02 C02 C02 C02 IC02
3040305030603070308030903100311031203130314031503160317031803190320032103220323032403250326032703280329033003310332033303340335033603370338033903400341034203430344034503460347034803490350035103520353035403550356035703580359036003610
253
C If ROOT crossed, go and get it C ----------------.-------.---_--___..-_..--.....-_._....__..-..-......
IF (CROSS) THENCALL GUESS (C02INC, C02SAT, DC02 , ISAT)
END IFEND IF
IF (IPRIN2 .GT. 0) THENIF (IMC03 .LE. 3) THENWRITE (UNO, 1004) SATNAM(IMC03) , LTCSAT
ELSEWRITE (UNO, 1002) SATNAM(IMC03) , LTtfSAT
END IFIPGLN - IPGLN + 2IF (IPGLN .GT. 57) CALL PAGEWRITE (UNO, 1003) DC02IPGLN - IPGLN + 2
END IF
IF (ISAT .EQ. 1) THENEXELT(29) - DC02 + EXELT(29)TITR(l) - EXELT(29)
END IF
RETURN
1001 FORMAT(/,' Adding gases to the analyses using the DC02/DH2S/DNH3'' /DCH4 ' ,
/,' option. Moles of C02 added - ', E14.6,/, ' of H2S added - ' , E14.6,/,' of NH3 added - ', E14.6,/ , ' of CH4 added - ' , E14 . 6 ,/)
1002 FORMAT (/,5X, 'LOG (CALCULATED -DES IRED) ',A8,' - '.E10.4)1003 FORMAT (/,5X, 'VALUE OF DC02 FOR THIS ITERATION - ',E10.4)1004 FORMAT (/,5X, 'LOG SI (',A8,') - ', E10.4)1005 FORMAT(/, *** DESIRED EQUILIBRIUM DOES NOT SEEM TO ',
CONVERGE WITHIN THE LIMITS OF' ,.5 AND 1.0E5 PPM AQ C02 ***' ,
/, SI - ' , D16.8, ' TIC - ' , D16.8,MOLS/KG WATER')
1006 FORMAT(/, *** DESIRED EQUILIBRIUM DOES NOT SEEM TO',CONVERGE ***' , /)
1007 FORMAT (//,5X,'C02 added to achieve equilibrium with ' , A8 , ' - ',E10.4, 'Moles/Kg Water' ,//)
1008 FORMAT (//,' C02 added to achieve saturation with ',A8,' of ',E10.4,' - ', E10.4, ' Moles/Kg water' ,//)
1009 FORMAT (//,' C02 added to achieve pH of ', F10.4, ' - ',E13.4, ' Moles/Kg water' ,//)
END
|C02 3620 |C02 3630C02 3640C02 3650C02 3660C02 3670C02 3680C02 3690C02 3700C02 3710C02 3720C02 3730C02 3740C02 3750C02 3760C02 3770C02 3780C02 3790C02 3800C02 3810C02 3820C02 3830C02 3840C02 3850C02 3860C02 3870C02 3880C02 3890,C02 3900C02 3910C02 3920C02 3930C02 3940C02 3950C02 3960C02 3970C02 3980C02 3990C02 4000C02 4010C02 4020C02 4030C02 4040C02 4050C02 4060C02 4070C02 4080C02 4090C02 4100C02 4110C02 4120C02 4130C02 4140
254
cc
ccc
C = =
c
cccccccccc
DOUBLE PRECISION FUNCTION DEBYE (CHARGE, DNA)
This function returns the value of the ion size parameter basedupon the charge of the species
CHARGE INT Charge of the aqueous speciesCPUMIN DBL Smallest positive real value program usesDNA DBL Read- in value of the ion size parameter
DOUBLE PRECISION CPUMINPARAMETER (CPUMIN - l.OD-35)
INTEGER CHARGEDOUBLE PRECISION DNA
INTRINSIC IABS
IF (DNA .GT. CPUMIN) THENDEBYE - DNA
ELSE IF (IABS (CHARGE) .EQ. 0) THENDEBYE - O.ODOO
ELSE IF (IABS (CHARGE) .EQ. 1) THENDEBYE - 4.0DOO
ELSE IF (IABS (CHARGE) .EQ. 2) THENDEBYE - 6.0DOO
ELSE IF (IABS (CHARGE) .EQ. 3) THENDEBYE - 9.0DOO
ELSE IF (IABS (CHARGE) .GE. 4) THENDEBYE - 12.0DOO
END IF
RETURNEND
SUBROUTINE DISTRB (NUFLAG, FLAGS, GAMMA, Z, DHA, TEMP, HITEMP,EHM, ALK, TITLE, A, B, MXSP, MXAQK, MU,IPRIN1, IPIT, TK, CONV1, ANMTIC, ITIC, HTOT,OHTOT, SC02, JC03, ITWR, BOOT)
This routine iterates and distributes the species
A DBL Molal Debye-Huckel coefficientALFA DBL Activity of aqueous species iALK INT Flag for distribution of carbonate speciesANALCO DBL Inorganic Carbon . . . initially alk or ticANALM DBL Analyzed molality of species iANMTIC DBL Analyzed total inorganic carbonB DBL Molal Debye-Huckel coefficientBDOT DBL Activity coefficient deviation functionCl DBL TDS * 1000.0C02F DBL Sum of C02 plus C02 lost from solution
DEB 0010i r\T?m r\r\or\ 1 L/CJ.D UUZU
IDEB 0030IDEB 0040
-IDEB ooso IDEB ooeoIDEB 0070IDEB ooso
-IDEB 0090DEB 0100DEB 0110DEB 0120DEB 0130DEB 0140DEB 0150DEB 0160DEB 0170DEB 0180
=|DEB 0190 DEB 0200DEB 0210DEB 0220DEB 0230DEB 0240DEB 0250DEB 0260DEB 0270DEB 0280DEB 0290DEB 0300DEB 0310DEB 0320DEB 0330DEB 0340DEB 0350DEB 0360
DIS 0010DIS 0020DIS 0030DIS 0040
-|DIS 0050 JDIS 0060
-IDIS 0070 IDIS oosoIDIS 0090IDIS 0100IDIS 0110IDIS 0120IDIS 0130IDIS ouoIDIS oisoIDIS 0160IDIS 0170
255
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
CONV1CPUMINCRCROSSCUNITSDHADIFFDONEEHMEXELTFFACTORFIXITFLAGSGAMMAHITEMPHTOTHTOTIIIFL1IOPTI PAGEIPGLNIPITIPRIN1ITERITICITWRJC03KT1T .OGKT1LOGKT2MMUMXAQKMXSPNMAXNUFLAGOHTOTOHTOTIPAGE1PAGE2PAGE3PALFAPGPGDCAPGDNAPHRSSC02TTEMPTITLETITMIXTITRTKTOTEL
DBLDBLCHALOGDBLDBLDBLLOGDBLDBLDBLDBLDBLINTDBLDBLDBLDBLINTINTINTINTINTINTINTINTINTINTINTDBLDBLDBLDBLDBLINTINTINTINTDBLDBLCHACHACHADBLDBLDBLDBLDBLDBLDBLDBLDBLDBLCHACHADBLDBLDBL
Tolerance factor for convergence of anionsSmallest positive real value program usesInserts carriage returns in outputLocal logical variable for crossing rootAnalytical input concentrationIon size parameterDifference used in convergenceHave we crossed rootMeasured Eh in voltsTotal amount of each componentFaraday constantFactor used in convergenceFixing value in the C02 optionSelection flags for calculation of redox equil.Activity coefficient of species iIn-situ temperatureTotal hydronium (currenn)Total hydronium (initial)Loop counterSwitch sets activity coeffs of non-pitzer speciesH+ optionCurrent page number of output fileCurrent line number of the output fileFlag to use pitzer activity coefficientsFlag for printing iteration of anionsIteration countHitemp distribution of carbonate speciesPrinting FlagSwitch to control printing of some headingsEquilibrium constant of the aqueous reactionsLog K for aqueous species at specified temp.Log K for minerals at specified temperatureCalculated molality of aqueous speciesIonic strength of aqueous solutionTotal number of aqueous log k valuesTotal number of aqueous speciesGeneral array dimension to allow easy expansionSets the activity coefficients of neutral speciesOH totalInitial OH totalNames of aqueous speciesNames of equilibrium constantsNames of solubility constantsPitzer alpha'sPitzer gamma'sPitzer gamma for CaPitzer gamma for NaMeasured pH of the solutionGas constantSum of anions complexesSum of carbonate in solutionTemperatureTemperature of the solution when pH was measuredName of the sampleTitle for MixturesConvergence (vector) for each componentTemperature steps used by programTotal amount of each component
IDIS IDIS|DISIDIS IDIS IDIS IDIS IDIS JDIS JDIS IDIS JDIS|DISJDIS|DIS JDISJDIS IDIS|DIS |DIS JDIS JDIS |DISIDIS IDIS IDIS IDIS JDIS IDIS IDIS|DISJDIS JDIS JDIS IDIS JDIS IDIS JDIS|DISIDIS IDIS JDIS IDIS JDIS IDIS IDIS JDIS IDIS JDIS IDIS JDIS JDIS|DIS |DISJDIS IDIS IDIS JDIS
0180019002000210022002300240025002600270028002900300031003200330034003500360037003800390040004100420043004400450046004700480049005000510052005300540055005600570058005900600061006200630064006500660067006800690070007100720073007400750
256
c c c c
_ _ .
UNO INT File unit assigned for output file VERSN CHA Version Number X DBL Temperary variable Z INT Charge of aqueous species
INTEGER NMAX, UNODOUBLE PRECISION CPUMIN, F, R
PARAMETER (NMAX = 340, UNO = 6)PARAMETER (CPUMIN =1.00-35, F = 2.30603D+1, R = 1.98719D-3)
INTEGER ALK, FLAGS(6), I, IFL1, IOPT, IPAGE, IPGLNINTEGER IPIT, IPRINl, ITER, ITIC, ITWRINTEGER JC03, MXAQK, MXSP, NUFLAG, Z(NMAX)
LOGICAL DONE, CROSS
CHARACTER * 1 TOF, CRCHARACTER* 8 PAGEl(NMAX) , PAGE2(NMAX), PAGE3(NMAX)CHARACTER * 14 VERSNCHARACTER * 40 TITMIXCHARACTER * 80 TITLE
DOUBLE PRECISION A, ALFA ( NMAX ), ANALCO, ANALM(NMAX) , ANMTICDOUBLE PRECISION B, BOOT, Cl , C02F, CONVl , CUNITS(NMAX)DOUBLE PRECISION DCH4, DC02 , DDCH4, DDC02 , DDH2S, DDNH3DOUBLE PRECISION DH2S , DHA(NMAX) , DIFF(ll) , DNH3DOUBLE PRECISION EHM, EXELT(35) , FACTOR ( 11 ), FIXIT, GAMMA(NMAX)DOUBLE PRECISION HITEMP, HTOT, HTOTI , INC, KTl(NMAX)DOUBLE PRECISION LALFA(NMAX) , LOGKTl(NMAX) , LOGKT2(NMAX)DOUBLE PRECISION M(NMAX) , MU, OHTOT, OHTOTIDOUBLE PRECISION PALFA(NMAX) , PG(NMAX) , PGDCA, PGDNA, PHDOUBLE PRECISION S(ll), SC02, SEXP10, SLOG10 , T, TEMP, TITR(ll)DOUBLE PRECISION TK(ll) , TOTEL(5) , X
EXTERNAL AITLIM, PAGE, PITZER, SEXP10, SLOG10
INTRINSIC DABS, DLOG10, DSQRT, IABS , MOD
COMMON /ALOGK / LOGKTl , LOGKT2COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /NAMES1/ PAGEl , PAGE2 , PAGE3COMMON /TOTALS/ C02F, HTOTI, OHTOTICOMMON /TTK / KT1
SAVE DIFF, PGDCA, PGDNA
VERSN ='USGS-ARC-88-8'
T = TEMP + 273.15
|DIS 0760 |DIS 0770 |DIS 0780 |DIS 0790
- IDIS 0800DIS 0810DIS 0820DIS 0830DIS 0840DIS 0850DIS 0860DIS 0870DIS 0880DIS 0890DIS 0900DIS 0910DIS 0920DIS 0930DIS 0940DIS 0950DIS 0960DIS 0970DIS 0980DIS 0990DIS 1000DIS 1010DIS 1020DIS 1030DIS 1040DIS 1050DIS 1060DIS 1070DIS 1080DIS 1090DIS 1100DIS 1110DIS 1120DIS 1130DIS 1140DIS 1150DIS 1160DIS 1170DIS 1180DIS 1190DIS 1200DIS 1210DIS 1220DIS 1230DIS 1240DIS 1250DIS 1260DIS 1270DIS 1280
1 t-f J_ O J_ £. J \J
DIS 1300DIS 1310DIS 1320DIS 1330
257
cc
ccc
cc
c
c
Initialize activities to 0
DO 10 I - 1, NMAXALFA(I) = O.ODOPG(I) = O.ODO
10 CONTINUE
ALFA(8) - 10.0**(-PH)
IFL1 - 0
DO 20 I - 1, 11DIFF(I) - 0.0FACTOR(I) -1.0
20 CONTINUE
Write titles etc.
IF (JC03 .EQ. 0 .AND. ITWR .EQ. 0) THENIF (IPRIN1 .NE. 0) THEN
IF (IPGLN .GE. 45) CALL PAGEWRITE (UNO, 1000) VERSN, CRWRITE (UNO, 1001) TITLE, TITMIXWRITE (UNO, 1002) TEMPWRITE (UNO, 1003)WRITE (UNO, 1004) CRIPGLN = IPGLN + 14
END IFEND IF
Iterative loopiter2 counts ph loop; iter counts species distribution
ITER - 0
30 CONTINUEITER - ITER + 1
Calculation of total molality & ah2o.
Cl = O.ODODO 40 I - 1, MXSP + 44
IF (I .NE. 10 .AND. I .NE. 12 .AND. I .NE. 32) Cl - Cl + M(I)40 CONTINUE
IF (Cl .GT. 10.0) Cl - 10.0ALFA(IO) = l.ODO - (1.7D-2 * Cl)
DIS 1340-|DIS 1350 JDIS 1360
-JDIS 1370DIS 1380DIS 1390DIS 1400DIS 1410DIS 1420DIS 1430DIS 1440DIS 1450DIS 1460DIS 1470DIS 1480DIS 1490DIS 1500DIS 1510DIS 1520
-|DIS 1530|DIS 1540
-JDIS 1550DIS 1560DIS 1570DIS 1580DIS 1590DIS 1600DIS 1610DIS 1620DIS 1630DIS 1640DIS 1650DIS 1660DIS 1670DIS 1680
-|DIS 1690 JDIS 1700|DIS 1710
-JDIS 1720DIS 1730DIS 1740DIS 1750DIS 1760DIS 1770DIS 1780
-|DIS 1790 |DIS 1800
-|DIS 1810DIS 1820DIS 1830DIS 1840DIS 1850DIS 1860DIS 1870DIS 1880DIS 1890DIS 1900
_ iniQ i oin
258
Calculation of the ionic strength (i), equivalent mnacle=i.
MU = O.ODODO 50 I = 1, MXSP + 44
IF (M(I) .LT. CPUMIN) THENM(I) = O.ODO
ELSE IF (I .EQ. 163 .AND. M(I) .GT. 2.0) THENMU - MU + (1.0 * Z(I)**2)
ELSEMU - MU + (M(I) * Z(I)**2)
END IF50 CONTINUE
MU - 0.5DO * MUIF (MU .GT. 10.0) MU = 10.0
|DIS 1920 ---|DIS 1930
DIS 1940DIS 1950DIS 1960DIS 1970DIS 1980DIS 1990DIS 2000DIS 2010DIS 2020DIS 2030DIS 2040DIS 2050DIS 2060DIS 2070DIS 2080
--- IDTS 2090C Only call pitzer the first time each temperature is done |DIS 2100 C .---.....-.--.....---------------------------------------------------j DIS 2110
DIS 2120IF (IPIT .EQ. 1 .AND. ITER .EQ. 1) THEN DIS 2130
CALL PITZER (A, MU, MXSP, TEMP, PGDCA, PGDNA, PG, TK, PALFA, DIS 2140EXELT(29), Z, IFL1) DIS 2150
END IF DIS 2160DIS 2170
IFL1 = 1 DIS 2180DIS 2190
60 CONTINUE DIS 2200DIS 2210 DIS 2220 DIS 2230 DIS 2240 DIS 2250 DIS 2260 .DIS 2270
C The following statement when enabled may give improved results JDIS 2280 C at lower temperatures and salinities. When high temperatures or JDIS 2290 C salinities are involved this statement should be disabled since JDIS 2300 C it will cause the program to return activity coefficients which JDIS 2310 C are too high. JDIS 2320 C IF (M(I) .GT. CPUMIN) GAMMA(I) - GAMMA(I) * EXELT(I) / M(I) DIS 2330 C _____________________________________________________________________iDIS 2340
IF (IPIT .EQ. 1) THEN IF (IFL1 .EQ. 1) 1=3 IF (IFL1 .EQ. 2) 1=1 IF (IFL1 .EQ. 1) GAMMA(I) IF (IFL1 .EQ. 2) GAMMA(I)
= PGDNA - PGDCA
BOOT
BOOT END IF
- DLOG10(GAMMA(I)) (1.0 + DHA(I) * B
= BOOT / MU
+ ((A * Z(I)**2 * DSQRT(MU)) / * DSQRT(MU)))
DIS 2350 DIS 2360 DIS 2370 DIS 2380 DIS 2390 DIS 2400
. . . . i r>TQ 9AinC Calculation of the activity coefficients (gamma) for charged |DIS 2420 C species by the bdot method (helgeson,1969). If pitzer equations JDIS 2430 C are being used, bdot is not the same as in helgeson. JDIS 2440 C ---------------------------------------------------------------------|DIS 2450
DIS 2460DO 70 I - 1, MXSP + 44 DIS 2470
IF (Z(I).EQ.O) GO TO 70 DIS 2480 IF (IFL1.EQ.1 .AND. (IABS(Z(I))).NE.1) GO TO 70 DIS 2490
259
IF (IFL1.EQ.2 .AND. (IABS(Z(I))) .LT.2) GO TO 70 DIS 2500GAMMA(I) - A * DSQRT(MU) * Z(I)**2 DIS 2510GAMMA(I) - GAMMA(I) / (1.0 + (DHA(I) * B * DSQRT(MU))) DIS 2520
CCpo
GAMMA(I) - (BOOT * MU) - GAMMA(I)GAMMA(I) = 10.0**GAMMA(I)
70 CONTINUE
DIS 2530DIS 2540DIS 2550DIS 2560
__________________________ 1 DIS 2570Calculation of a number of anion activities. JDIS 2580
IF (NUFLAG '.EQ. 0) THEN
1 TNT C O C Q f\
DIS 2600DIS 2610
GAMMA(ll) = 10. 0**(0. 00978 * 10.0**(2dO.O / T) * (MU + l.ODO)) DIS 2620
CC
/*"
CC
GAMMA(12) - GAMMA(ll)END IF
IF (IFL1 .EQ. 1) THENIFL1 - 2GO TO 60
END IF
IFL1 = 3
DO 80 I - 1, MXSP + 44IF (ALFA(I) .LT. CPUMIN) THEN
ALFA(I) - O.ODOLALFA(I) - -999.9
ELSELALFA(I) - DLOG10(ALFA(I))
END IFIF (I .NE. 6 .AND. PG(I) .GT. CPUMIN)
80 CONTINUE
Activity of H+ and OH-
ALFA(8) = 10.0**(-PH)LALFA(8) = -PHM(8) - ALFA(8) / GAMMA(8)
ALFA(9) - ALFA(IO) * KT1(2) / ALFA(8)LALFA(9) = DLOG10(ALFA(9))M(9) - ALFA(9) / GAMMA(9)
Chloride species
IF (EXELT(5) .GT. CPUMIN) THEN90 CONTINUE
M(5) = TITR(5)ALFA(5) - M(5) * GAMMA(5)LALFA(5) - SLOG10(ALFA(5))
DIS 2630DIS 2640DIS 2650DIS 2660DIS 2670DIS 2680DIS 2690DIS 2700DIS 2710DIS 2720DIS 2730DIS 2740DIS 2750DIS 2760DIS 2770DIS 2780DIS 2790
GAMMA(I) = PG(I) DIS 2800DIS 2810DIS 2820
I TVT o o o o r\DIS zoJU |DIS 2840JDIS 2850DIS 2860DIS 2870DIS 2880DIS 2890DIS 2900DIS 2910DIS 2920DIS 2930DIS 2940
_________________________ 1 r\T<? 9950| L/ J_ t_> £-jJ\J
JDIS 2960JDIS 2970DIS 2980DIS 2990DIS 3000DIS 3010DIS 3020DIS 3030DIS 3040
IF (IPIT .EQ. 1 .AND. PG(5) .GT. CPUMIN DIS 3050.AND. GAMMA(5) .LE. 10) THEN DIS 3060
IF (DABS(PALFA(5) - ALFA(5)) .GT. 1. OD-2 * PALFA(5)) THEN DIS 3070
260
c
c -cp
c - c
IF (PALFA(5) .GT. ALFA(5)) THENINC=0 . 1
ELSEINC=-0.01
END IFGAMMA ( 5 ) =GAMMA ( 5 ) * ( 1 . 0+INC )GO TO 90
END IFEND IFIF (IPIT .EQ. 1 .AND. GAMMA(5) .GT. 10.0) GAMMA(5) = 10.0IF (IPIT .EQ. 1 .AND. GAMMA(5) .LT. PG(5)) GAMMA(5) = PG(5)
END IF
Acetate species
IF (EXELT(26) .GT. CPUMIN) THENM(228) = TITR(6) / (l.ODO + ((GAMMA(228) * KTl(25)) /
(ALFA(8) * GAMMA(48))))ALFA(228) = M(228) * GAMMA(228)LALFA(228) = SLOG10(ALFA(228) )
M(48) = LOGKT1(25) + LALFA(228) - DLOG10(GAMMA(48) ) - LALFA(8)M(48) = SEXP10(M(48))ALFA(48) = M(48) * GAMMA(48)LALFA(48) = SLOG10(ALFA(48) )
END IF
Oxalate species
IF (EXELT(30) .GT. CPUMIN) THENM(247) = TITR(8) / (l.ODO + ((GAMMA(247) * ALFA(8) /
KT1(224) * GAMMA(248)). + ((KT1(223) * GAMMA(247))(GAMMA(246) * ALFA(8)))))
ALFA(247) = M(247) * GAMMA(247)LALFA(247) = SLOG10 (ALFA ( 247 ))
M(248) = LALFA(247) + LALFA(8) - LOGKT1(224)- DLOG10( GAMMA (248))
M(248) = SEXP10(M(248))
ALFA(248) = M(248) * GAMMA(248)LALFA(248) = SLOG10 (ALFA ( 248 ))
M(246) = LOGKT1(223) + LALFA(247) - DLOG10 ( GAMMA ( 246 ))- LALFA(8)
M(246) = SEXP10(M(246))ALFA(246) = M(246) * GAMMA(246)LALFA(246) - SLOG10 ( ALFA ( 246 ))
END IF
Succinate species
DIS 3080DIS 3090DIS 3100DIS 3110DIS 3120DIS 3130DIS 3140DIS 3150DIS 3160DIS 3170DIS 3180DIS 3190DIS 3200
-|DIS 3210|DIS 3220injc 707f)1 UJ.^ *j£.*J\J
DIS 3240DIS 3250DIS 3260DIS 3270DIS 3280DIS 3290DIS 3300DIS 3310DIS 3320DIS 3330DIS 3340DIS 3350DIS 3360
-|DIS 3370|DIS 3380|DIS 3390DIS 3400DIS 3410DIS 3420
/ DIS 3430DIS 3440DIS 3450DIS 3460DIS 3470DIS 3480DIS 3490DIS 3500DIS 3510DIS 3520DIS 3530DIS 3540DIS 3550DIS 3560DIS 3570DIS 3580DIS 3590DIS 3600DIS 3610DIS 3620
| r\TC *3 £ *3 r\ULa JDJU
|DIS 3640|DIS 3650
261
IF (EXELT(31) .GT. CPUMIN) THENM(266) - TITR(9) / (l.ODO + ((GAMMA(266) * ALFA(8) /
KT1(242) * GAMMA(267)) + ((KT1(241) * GAMMA(266)) (GAMMA(265) * ALFA(8)))))
ALFA(266) LALFA(266)
M(267) M(267) M(267)
ALFA(267) - LALFA(267)
M(265) M(265) M(265)
ALFA(265) LALFA(265)
END IF
= M(266) * GAMMA(266) = SLOG10(ALFA(266))
LALFA(266) + LALFA(8) - LOGKT1(242)SEXP10(M(267))M(267) / GAMMA(267)
M(267) * GAMMA(267) = SLOG10(ALFA(267))
LOGKT1(241) + LALFA(266)SEXP10(M(265))M(265) / GAMMA(265)
= M(265) * GAMMA(265) = SLOG10(ALFA(265))
LALFA(8)
User defined anion #1
IF (EXELT(33) M(MXSP+2)
ALFA(MXSP+2)
M(MXSP+3)
.GT. CPUMIN) THEN = TITR(IO) / (l.ODO + ((GAMMA(MXSP+2) * ALFA(8)) /
(KTl(MXAQK+2) * GAMMA(MXSP+3)) + ((KT1(MXAQK+1) * GAMMA(MXSP+2)) /(GAMMA(MXSP+1) * ALFA(8)))))
- M(MXSP+2) * GAMMA(MXSP+2)
= (ALFA(MXSP+2) * ALFA(8))|/ (KTl(MXAQK+2) *GAMMA(MXSP+3))
ALFA(MXSP+3) - M(MXSP+3) * GAMMA(MXSP+3)
M(MXSP+1)
ALFA(MXSP+1) END IF
(KT1(MXAQK+1) * ALFA(MXSP+2)) / (GAMMA(MXSP+1) * ALFA(8)) M(MXSP+1) * GAMMA(MXSP+1)
User defined anion #2
IF (EXELT(34) .GT. CPUMIN) THENM(MXSP+17) - TITR(ll) / (l.ODO + ((GAMMA(MXSP+17) *
ALFA(8)) / (KT1(MXAQK+16) * GAMMA(MXSP+18)) + ((KT1(MXAQK+15) * GAMMA(MXSP+17)) /(GAMMA(MXSP+16) * ALFA(8)))))
ALFA(MXSP+17) - M(MXSP+17) * GAMMA(MXSP+17)
M(MXSP+18) - (ALFA(MXSP+17) * ALFA(8)) GAMMA(MXSP+18))
(KT1(MXAQK+16) *
DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DISIDISI DIS I DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS
| DIS | DIS | DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS
3660367036803690370037103720373037403750376037703780379038003810382038303840385038603870388038903900391039203930394039503960397039803990400040104020403040404050406040704080409041004110412041304140415041604170418041904200421042204230
262
c
c
c
ALFA(MXSP+18) - M(MXSP+18) * GAMMA(MXSP+18)
M(MXSP+16) - (KT1(MXAQK+15) * ALFA(MXSP+17)) /(GAMMA(MXSP+16) * ALFA(8))
ALFA(MXSP+16) - M(MXSP+16) * GAMMA(MXSP+16)END IF
Fluoride species
IF (EXELT(22) .GT. CPUMIN) THENM(30) - TITR(3) / (l.ODO + ((GAMMA(30) * ALFA(8)) /
(KT1(71) * GAMMA(96))))ALFA(30) - M(30) * GAMMA(30)LALFA(30) - SLOG10(ALFA(30))
M(96) - (ALFA(30) * ALFA(8)) / (KT1(71) * GAMMA(96))ALFA(96) - M(96) * GAMMA(96)LALFA(96) - SLOG10(ALFA(96))
END IF
C02 species
IF (EXELT(29) .GT. CPUMIN) THENM(7) - TITR(l) / (l.ODO + ((GAMMA(7) * KT1(1) * 2) /
(GAMMA(98) * ALFA(8))))ALFA(7) - M(7) * GAMMA(7)LALFA(7) = SLOG10(ALFA(7))
M(98) - (KT1(1) * ALFA(7)) / (GAMMA(98) * ALFA(8))ALFA(98) = M(98) * GAMMA(98)LALFA(98) - SLOG10(ALFA(98))
M(97) = (ALFA(7) * ALFA(8)) / (KT1(72) * GAMMA(97))ALFA(97) - M(97) * GAMMA(97)LALFA(97) = SLOG10(ALFA(97) )
END IF
Sulfur species
IF (EXELT(25) .GT. CPUMIN) THENM(101) - TITR(7) / (l.ODO + ((GAMMA(lOl) * ALFA(8)) /
(KTl(lO) * GAMMA(33)) + ((KT1(75) * GAMMA(lOl)) /(GAMMA(102) * ALFA(8)))))
ALFA(lOl) - GAMMA(lOl) * M(101)LALFA(lOl) = SLOG10(ALFA(101))
M(33) - (ALFA(lOl) * ALFA(8)) / (KTl(lO) * GAMMA(33))ALFA(33) - M(33) * GAMMA(33)LALFA(33) - SLOG10(ALFA(33))
M(102) = (KT1(75) * ALFA(lOl)) / (GAMMA(102) * ALFA(8))ALFA(102) - M(102) * GAMMA(102)
DIS 4240DIS 4250DIS 4260DIS 4270DIS 4280DIS 4290DIS 4300
-| DIS 4310|DIS 4320JDIS 4330DIS 4340DIS 4350DIS 4360DIS 4370DIS 4380DIS 4390DIS 4400DIS 4410DIS 4420DIS 4430DIS 4440DIS 4450
- |DIS 4460 |DIS 4470|DIS 4480 DIS 4490DIS 4500DIS 4510DIS 4520DIS 4530DIS 4540DIS 4550DIS 4560DIS 4570DIS 4580DIS 4590DIS 4600DIS 4610DIS 4620DIS 4630DIS 4640
- |DIS 4650 |DIS 4660|DIS 4670DIS 4680DIS 4690DIS 4700DIS 4710DIS 4720DIS 4730DIS 4740DIS 4750DIS 4760DIS 4770DIS 4780DIS 4790DIS 4800DIS 4810
263
LALFA(102) = SLOG10( ALFA (102))END IF
100 CONTINUEIF (EXELT(6) .GE. CPUMIN) THEN
DIS 4820DIS 4830DIS 4840DIS 4850DIS 4860
M(103) = TITR(2) / (l.ODO + (((KTl(76) * GAMMA(103)) / DIS 4870(GAMMA(6) * ALFA(8)))))
ALFA(103) = M(103) * GAMMA(103)LALFA(103) - SLOG10( ALFA (103))
DIS 4880DIS 4890DIS 4900DIS 4910
M(6) - (KT1(76) * ALFA(103)) / (GAMMA(6) * ALFA(8)) DIS 4920ALFA(6) = M(6) * GAMMA(6)LALFA(6) = SLOG10(ALFA(6))
IF (IPIT .EQ. 1 .AND. PG(6) .GT. CPUMI.AND. GAMMA(6) .LE. 10
DIS 4930DIS 4940DIS 4950
V DIS 4960.0) THEN DIS 4970
IF (DABS(PALFA(6)-ALFA(6)) .GT. 1 . OD-2*PALFA(6) ) THEN DIS 4980IF (PALFA(6) .GT. ALFA(6)) THEN
INC=0 . 1ELSE
INC=-0.01END IFGAMMA ( 6 ) -GAMMA ( 6 ) * ( 1 . 0+INC )GO TO 100
END IFEND IF
DIS 4990DIS 5000DIS 5010DIS 5020DIS 5030DIS 5040DIS 5050DIS 5060DIS 5070
IF (IPIT.EQ.l .AND. GAMMA(6) .GT. 10.0) GAMMA(6) = 10.0 DIS 5080IF (IPIT.EQ.l .AND. GAMMA(6) .LT. PG(6)) GAMMA(6) = PG(6) DIS 5090
END IF
C ---______ _
C Silica speciesr>\j ------------------
IF (EXELT(8) .GT. CPUMIN) THEN
DIS 5100DIS 5110
......................... | DIS 5120|DIS 5130|DIS 5140DIS 5150DIS 5160
M(91) = EXELT(8) / (l.ODO + ((GAMMA(91) * ALFA(8)) / DIS 5170(KT1(3) * GAMMA(ll)) + ((Kltl(66) * GAMMA(91)) / DIS 5180(GAMMA(90) * ALFA(8)))))
ALFA(91) = GAMMA(91) * M(91)LALFA(91) - SLOG10(ALFA(91))
DIS 5190DIS 5200DIS 5210DIS 5220
M(ll) - (ALFA(91) * ALFA(8)) / (KT1(3) * GAMMA(ll)) DIS 5230ALFA(ll) - M(ll) * GAMMA (11)LALFA(ll) - SLOG10(ALFA(11))
DIS 5240DIS 5250DIS 5260
M(90) = (KT1(66) * ALFA(91)) / (GAMMA(90) * ALFA(8)) DIS 5270ALFA(90) = M(90) * GAMMA(90)LALFA(90) = SLOG10(ALFA(90))
M(12) = M(ll)ALFA(12) = M(12) * GAMMA(12)LALFA(12) - SLOG10(ALFA(12))
DIS 5280DIS 5290DIS 5300DIS 5310DIS 5320DIS 5330DIS 5340
M(284) = (ALFA(ll) * ALFA(30)**2 * (ALFA(30) / ALFA(9)) DIS 5350* (ALFA(30) / ALFA(9)) * (ALFA(30) / ALFA(9)) DIS 5360* (ALFA(30) / ALFA(9))) / KT1(257) DIS 5370
ALFA(284) = M(284) * GAMMA(284)DIS 5380DIS 5390
264
r>
Cr>
r<
Cr<
Cr<
LALFA(284) = SLOG10(ALFA(284) )END IF
Boron Species
IF (EXELT(23) .GT. CPUMIN) THENM(31) - EXELT(23) / (l.ODO + ((GAMMA(31) * ALFA(9)) /
(KT1(64) * GAMMA(89))))ALFA(31) - M(31) * GAMMA(31)LALFA(31) - SLOG10(ALFA(31))
M(89) = (ALFA(31) * ALFA(9)) / (KT1(64) * GAMMA(89))ALFA(89) = M(89) * GAMMA(89)LALFA(89) = SLOG10(ALFA(89) )
END IF
Phosphate species
IF (EXELT(21) .GT. CPUMIN) THENM(29) - TITR(4) / (l.ODO + GAMMA(29) * ((ALFA(8) /
(KT1(73) * GAMMA(99))) + (ALFA(8)**2 / (KT1(74) *GAMMA(IOO))) + (ALFA(8)**3 / (KT1(49) *GAMMA(74)))))
ALFA(29) - M(29) * GAMMA(29)LALFA(29) - SLOG10(ALFA(29) )
M(74) - (ALFA(29) * ALFA(8)**3) / (KT1(49) * GAMMA(74))ALFA(74) = M(74) * GAMMA(74)LALFA(74) - SLOG10(ALFA(74) )
M(99) = (ALFA(29) * ALFA(8)) / (KT1(73) * GAMMA(99))ALFA(99) - M(99) * GAMMA(99)LALFA(99) = SLOG10(ALFA(99) )
M(100) = (ALFA(29) * ALFA(8)**2) / (KT1(74) * GAMMA(IOO))ALFA(IOO) = M(100) * GAMMA(IOO)LALFA(IOO) = SLOG10( ALFA (100))
END IF
Nitrogen species
IF (EXELT(24) .GT. CPUMIN) THENM(147) - ALFA(9) / (KT1(118) * GAMMA(147))
M(146) = EXELT(24) / (l.ODO + GAMMA(146) * M(147))ALFA(146) = M(146) * GAMMA(146)LALFA(146) - SLOG10(ALFA(146) )
M(147) - M(147) * ALFA(146)ALFA(147) - M(147) * GAMMA(147)LALFA(147) = SLOG10(ALFA(147) )
DIS 5400DIS 5410DIS 5420
-| DIS 5430|DIS 5440|DIS 5450DIS 5460DIS 5470DIS 5480DIS 5490DIS 5500DIS 5510DIS 5520DIS 5530DIS 5540DIS 5550DIS 5560DIS 5570
-| DIS 5580 |DIS 5590|DIS 5600DIS 5610DIS 5620DIS 5630DIS 5640DIS 5650DIS 5660DIS 5670DIS 5680DIS 5690DIS 5700DIS 5710DIS 5720DIS 5730DIS 5740DIS 5750DIS 5760DIS 5770DIS 5780DIS 5790DIS 5800DIS 5810DIS 5820
1 T\T C Rfl ̂ fl- 1 L/lo Do JU
|DIS 5840|DIS 5850DIS 5860DIS 5870DIS 5880DIS 5890DIS 5900DIS 5910DIS 5920DIS 5930DIS 5940DIS 5950DIS 5960DIS 5970
265
cc
ccc
M(32) - M(147)ALFA(32) = M(32) * GAMMA(32)LALFA(32) = SLOG10(ALFA(32))
END IF
IF (EXELT(32) .GT. CPUMIN) THENM(136) = EXELT(32) / (l.ODO + ((GAMMA(136) * ALFA(8)) /
(KT1(77) * GAMMA(104))))ALFA(136) = M(136) * GAMMA(136)LALFA(136) - SLOG10(ALFA(136)) i
1
M(104) = (ALFA(8) * ALFA(136)) / (KT1(77) * GAMMA(104))ALFA(104) = M(104) * GAMMA(104)LALFA(104) = SLOG10(ALFA(104))
END IF
User defined cation
IF (EXELT(35) .GT. CPUMIN) THENM(MXSP+32) = ALFA( 5) / (KTl(MXAQK+29) * GAMMA (MXS P+32 ))M(MXSP+33) = ALFA( 6) / (KT1(MXAQK+30) * GAMMA (MXSP+33 ))M(MXSP+34) - ALFA( 7) / (KT1(MXAQK+31) * GAMMA (MXS P+34))M(MXSP+35) = ALFA( 9) / (KTl(MXAQK+32) * GAMMA ( MXS P+35 ))M(MXSP+36) = ALFA( 29) / (KTl(MXAQK+33) * GAMMA (MXS P+36 ))M(MXSP+37) = ALFA( 30) / (KTl(MXAQK+34) * GAMMA (MXS P+3 7) )M(MXSP+38) = ALFA( 48) / (KTl(MXAQK+35) * GAMMA ( MXSP+38 ))M(MXSP+39) = ALFA( 98) / (KTl(MXAQK+36) * GAMMA(MXSP+39) )M(MXSP+40) - ALFA(lOl) / (KTl(MXAQK+37) * GAMMA (MXS P+40 ))M(MXSP+41) - ALFA(246) / (KTl(MXAQK+38) * GAMMA ( MX SP+41 ))M(MXSP+42) = ALFA(265) / (KTl(MXAQK+39) * GAMMA (MXS P+42 ))M(MXSP+43) = ALFA(MXSP+ 1) / (KT1(MXAQK+40) * GAMMA (MXSP+43))M(MXSP+44) = ALFA(MXSP+16) / (KT1(MXAQK+41) * GAMMA (MXS P+44 ))
M(MXSP+31) = EXELT(35) / (l.ODO + GAMMA (MXS P+3 1) *(M(MXSP+32) + M(MXSP+33) + M(MXSP+34) +M(MXSP+35) + M(MXSP+36) + M(MXSP+37) +M(MXSP+38) + M(MXSP+39) + M(MXSP+40) +M(MXSP+41) + M(MXSP+42) + M(MXSP+43) +M(MXSP+44)))
ALFA(MXSP+31) - M(MXSP+31) * GAMMA (MXS P+3 1)LALFA(MXSP+31) - SLOG10(ALFA(MXSP+31))
DO 110 I = 32, 44M(MXSP+I) = M(MXSP+I) * ALFA(MXSP+31)ALFA(MXSP+I) = M(MXSP+I) * GAMMA(MXSP+I)LALFA(MXSP+I) - SLOG10(ALFA(MXSP+I) )
110 CONTINUEEND IF
Calcium species
120 CONTINUEIF (EXELT(l) .GT. CPUMIN) THENM( 55) = ALFA( 98) / (KT1( 30) * GAMMA(55))
DIS 5980DIS 5990DIS 6000DIS 6010DIS 6020DIS 6030DIS 6040DIS 6050DIS 6060DIS 6070DIS 6080DIS 6090DIS 6100DIS 6110DIS 6120DIS 6130
-|DIS 6140 |DIS 6150JDIS 6160DIS 6170DIS 6180DIS 6190DIS 6200DIS 6210DIS 6220DIS 6230DIS 6240DIS 6250DIS 6260DIS 6270DIS 6280DIS 6290DIS 6300DIS 6310DIS 6320DIS 6330DIS 6340DIS 6350DIS 6360DIS 6370DIS 6380DIS 6390DIS 6400DIS 6410DIS 6420DIS 6430DIS 6440DIS 6450DIS 6460DIS 6470DIS 6480
-| DIS 6490|DIS 6500|DIS 6510DIS 6520DIS 6530DIS 6540DIS 6550
266
M( 56) - ALFA( 7) M( 57) - ALFA( 9) M( 58) - ALFA( 29) M( 59) = ALFA( 99) M( 60) - ALFA(IOO) M( 61) = ALFA( 6) M(231) = ALFA( 48) M(252) = ALFA(246) M(271) = ALFA(265) M(281) = ALFA( 5) M(282) = ALFA( 5)**2 M(MXSP+ 6) M(MXSP+21)
M(l)
/ (KT1( 31) * GAMMA(56))/ (KT1( 32) * GAMMA(57))/ (KT1( 33) * GAMMA(58))/ (KT1( 34) * GAMMA(59))/ (KT1( 35) * GAMMA(60))/ (KT1( 36) * GAMMA(61))/ (KT1(211) * GAMMA(231))/ (KT1(228) * GAMMA(252))/ (KT1(246) * GAMMA(271))/ (KT1(146) * GAMMA(281))/ (KT1(147) * GAMMA(282))
ALFA(MXSP+ 1) / (KT1(MXAQK+ 5) * GAMMA(MXSP+ 6)) ALFA(MXSP+16) / (KT1(MXAQK+19) * GAMMA(MXSP+21))
EXELT(l) / (l.ODO + GAMMA(l) * (M(55) + M(56) + M(57) + M(58) + M(59) + M(60) + M(61) + M(231) + M(252) + M(271) + M(281) + M(282) + M(MXSP+6) + M(MXSP+21)))
ALFA(l) = M(l) * GAMMA(l)LALFA(l) = SLOG10(ALFA(1))
DO 130 1-55, 61M(I) = M(I) * ALFA(l) ALFA(I) = M(I) * GAMMA(I) LALFA(I) - SLOG10(ALFA(I))
130 CONTINUE
M(231) = M(231) * ALFA(l)ALFA(231) = M(231) * GAMMA(231)LALFA(231) = SLOG10(ALFA(231) )
M(252) = M(252) * ALFA(l)ALFA(252) = M(252) * GAMMA(252)LALFA(252) = SLOG10(ALFA(252) )
M(271) = M(271) * ALFA(l)ALFA(271) = M(271) * GAMMA(271)LALFA(271) = SLOG10(ALFA(271) )
M(281) = M(281) * ALFA(l)ALFA(281) = M(281) * GAMMA(281)LALFA(281) - SLOG10(ALFA(281) )
M(282) = M(282) * ALFA(l)ALFA(282) = M(282) * GAMMA(282)LALFA(282) = SLOG10(ALFA(282))
M(MXSP+6) = M(MXSP+6) * ALFA(l)ALFA(MXSP+6) = M(MXSP+6) * GAMMA(MXSP+6)LALFA(MXSP+6) = SLOG10(ALFA(MXSP+6) )
M(MXSP+21) - M(MXSP+21) * ALFA(l)ALFA(MXSP+21) = M(MXSP+21) * GAMMA (MXSP+21)LALFA(MXSP+21) - SLOG10(ALFA(MXSP+21) )
IF (IPIT.EQ.l .AND. PG(1) .GT. CPUMIN.AND. GAMMA(l).LE.lO.O) THEN
IF (DABS(PALFA(1) - ALFA(l)) .GT. 1.0D-2*PALFA(1) ) THEN IF (PALFA(l) .GT. ALFA(l)) THEN
DIS 6560 DIS 6570 DIS 6580 DIS 6590 DIS 6600 DIS 6610 DIS 6620 DIS 6630 DIS 6640 DIS 6650 DIS 6660 DIS 6670 DIS 6680 DIS 6690 DIS 6700 DIS 6710 DIS 6720 DIS 6730 DIS 6740 DIS 6750 DIS 6760 DIS 6770 DIS 6780 DIS 6790 DIS 6800 DIS 6810 DIS 6820 DIS 6830 DIS 6840 DIS 6850 DIS 6860 DIS 6870 DIS 6880 DIS 6890 DIS 6900 DIS 6910 DIS 6920 DIS 6930 DIS 6940 DIS 6950 DIS 6960 DIS 6970 DIS 6980 DIS 6990 DIS 7000 DIS 7010 DIS 7020 DIS 7030 DIS 7040 DIS 7050 DIS 7060 DIS 7070 DIS 7080 DIS 7090 DIS 7100 DIS 7110 DIS 7120 DIS 7130
267
INC = 0.1 ELSE
INC = -0.01 END IFGAMMA(l) - GAMMA(l) * (1 + INC) GO TO 120
END IF END IF
IF (IPIT.EQ.l .AND. GAMMA(l).GT.10.0) GAMMA(l) IF (IPIT.EQ.l .AND. GAMMA(l).LT.PG(1)) GAMMA(l)
END IF
10.0 PG(1)
Magnesium species
140 CONTINUEIF (EXELT(2) .GT. CPUMIN) THENM(120) = ALFA( 98) / (KT1( 93) * GAMMA(120)) M(121) = ALFA( 7) / (KT1( 94) * GAMMA(121)) M(122) = ALFA( 30) / (KT1( 95) * GAMMA(122)) M(123) = ALFA( 9) / (KT1( 96) * GAMMA(123)) M(124) = ALFA( 6) / (KT1( 97) * GAMMA(124)) M(125) = ALFA( 29) / (KT1( 98) * GAMMA(125)) M(126) = ALFA( 99) / (KT1( 99) * GAMMA(126)) M(127) = ALFA(IOO) / (KTl(lOO) * GAMMA(127)) M(236) - ALFA( 48) / (KT1(216) * GAMMA(236)) M(256) = ALFA(246) / (KT1(232) * GAMMA(256)) M(275) = ALFA(265) / (KT1(250) * GAMMA(275)) M(MXSP+10) = ALFA(MXSP+ 1) / (KT1(MXAQK+ 9) *
GAMMA(MXSP+10)) M(MXSP+25) = ALFA(MXSP+16) / (KTl(MXAQK+23) *
GAMMA(MXSP+25))
150
M(2)
ALFA(2) LALFA(2)
EXELT(2) / (l.ODO + GAMMA(2) * (M(120) + M(121) + M(122) + M(123) + M(124) + M(125) + M(126) + M(127) M(236) + M(256) + M(275) + M(MXSP+10) + M(MXSP+25))) M(2) * GAMMA(2) SLOG10(ALFA(2))
DO 150 I = 120, 127M(I) - M(I) * ALFA(2) ALFA(I) - M(I) * GAMMA(I) LALFA(I) = SLOG10(ALFA(I))
CONTINUE
M(236)ALFA(236)LALFA(236)
M(256)ALFA(256)LALFA(256)
M(275)ALFA(275)LALFA(275)
M(236) * ALFA(2) M(236) * GAMMA(236) SLOG10(ALFA(236))
M(256) * ALFA(2) M(256) * GAMMA(256)^ SLOG10(ALFA(256))
M(275) * ALFA(2) M(275) * GAMMA(275) SLOG10(ALFA(275))
DIS 7140 DIS 7150 DIS 7160 DIS 7170 DIS 7180 DIS 7190 DIS 7200 DIS 7210 DIS 7220 DIS 7230 DIS 7240 DIS 7250 DIS 7260
-|DIS 7270 |DIS 7280 |DIS 7290 DIS 7300 DIS 7310 DIS 7320 DIS 7330 DIS 7340 DIS 7350 DIS 7360 DIS 7370 DIS 7380 DIS 7390 DIS 7400 DIS 7410 DIS 7420 DIS 7430 DIS 7440 DIS 7450 DIS 7460 DIS 7470 DIS 7480 DIS 7490
+DIS 7500 DIS 7510 DIS 7520 DIS 7530 DIS 7540 DIS 7550 DIS 7560 DIS 7570 DIS 7580 DIS 7590 DIS 7600 DIS 7610 DIS 7620 DIS 7630 DIS 7640 DIS 7650 DIS 7660 DIS 7670 DIS 7680 DIS 7690 DIS 7700 DIS 7710
268
M(MXSP+10)ALFA(MXSP+10)LALFA(MXSP+10)
M(MXSP+25)ALFA(MXSP+25)LALFA(MXSP+25)
- M(MXSP+10) * ALFA(2)= M(MXSP+10) * GAMMA(MXSP+10)= SLOG10(ALFA(MXSP+10))
= M(MXSP+25) * ALFA(2)= M(MXSP+25) * GAMMA(MXSP+25)= SLOG10(ALFA(MXSP+25))
IF (IPIT.EQ.l .AND. PG(2).GT.CPUMIN.AND. GAMMA(2).LE.50.0) THEN
IF (DABS(PALFA(2)-ALFA(2)) .GT. 1.OD-2*PALFA(2)) THEN IF £PALFA(2) .GT. ALFA(2)) THEN
INC=0.1 ELSE
INC=-0.01 END IFGAMMA(2)=GAMMA(2)*(1.0+INC) GO TO 140
END IF END IF
IF (IPIT.EQ.l .AND. GAMMA(2) IF (IPIT.EQ.l .AND. GAMMA(2)
END IF
.GT. 10.0) GAMMA(2) = 10.0
.LT. PG(2)) GAMMA(2) = PG(2)
DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS
Sodium species
160 CONTINUEIF (EXELT(3) .GT. CPUMIN) THENM(137) = ALFA( 5) / (KTl(llO) * GAMMA(137))M(138) = ALFA( 98) / (KTl(lll) * GAMMA(138))M(139) = ALFA( 7) / (KT1(112) * GAMMA(139))M(140) = (M(3) * GAMMA(3) * ALFA(98)) /M(141) - (M(3) * GAMMA(3) * ALFA(6)) /M(142) = ALFA( 6) / (KTl(115) * GAMMA(142))M(143) = ALFA( 99) / (KTl(116) * GAMMA(143))M(144) - ALFA( 30) / (KT1(120) * GAMMA(144))M(145) - ALFA(lOl) / (KT1(119) * GAMMA(145))M(237) = ALFA( 48) / (KT1(217) * GAMMA(237))M(261) = ALFA(246) / (KT1(237) * GAMMA(261))M(277) - ALFA(265) / (KT1(252) * GAMMA(277))
| DIS I DIS DIS DIS DIS DIS DIS DIS
* GAMMA(140)) DIS* GAMMA(141)) DIS
DIS DIS DIS DIS DIS DISDIS
M(MXSP+12) - ALFA(MXSP+ 1) / (KT1(MXAQK+11) * GAMMA(MXSP+12)) DIS M(MXSP+27) - ALFA(MXSP+16) / (KTl(MXAQK+25) * GAMMA(MXSP+27)) DIS
DIS DISEXELT(3) / (l.ODO + GAMMA(3) * (M(137) + M(138) +
M(142) + M(143) + M(144) M(277) + M(MXSP+12)
M(3) -M(139) + M(140)M(145) + M(237) + M(261)M(MXSP+27)))
ALFA(3) = M(3) * GAMMA(3) LALFA(3) = SLOG10(ALFA(3))
DO 170 I = 137, 145M(I) = M(I) * ALFA(3) ALFA(I) = M(I) * GAMMA(I) LALFA(I) = SLOG10(ALFA(I))
DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS
7720773077407750776077707780779078007810782078307840785078607870788078907900791079207930794079507960797079807990800080108020803080408050806080708080809081008110812081308140815081608170818081908200821082208230824082508260827082808290
269
170 CONTINUE
M(237) - M(237) * ALFA(3)ALFA(237) - M(237) * GAMMA(237)LALFA(237) - SLOG10(ALFA(237) )
M(261) - M(261) * ALFA(3)ALFA(261) - M(261) * GAMMA(261)LALFA(261) - SLOG10(ALFA(261))
M(277) - M(277) * ALFA(3)ALFA(277) - M(277) * GAMMA(277)LALFA(277) - SLOG10(ALFA(277))
M(MXSP+12) - M(MXSP+12) * ALFA(3)ALFA(MXSP+12) - M(MXSP+12) * GAMMA(MXSP+12)LALFA(MXSP+12) - SLOG10(ALFA(MXSP+12) )
M(MXSP+27) - M(MXSP+27) * ALFA(3)ALFA(MXSP+27) - M(MXSP+27) * GAMMA(MXSP+27)LALFA(MXSP+27) - SLOG10(ALFA(MXSP+27))
IF (IPIT.EQ.l .AND. PG ( 3 ) . GT . CPUMIN.AND. GAMMA(3).LE.10.0) THEN
IF (DABS(PALFA(3)-ALFA(3)) .GT. 1.0D-2*PALFA(3) ) THENIF (PALFA(3) .GT. ALFA(3)) THEN
INC - 0.1ELSE
INC - -0.01END IF
GAMMA ( 3 ) =GAMMA ( 3 ) * ( 1+INC )GO TO 160END IF
END IF
IF (IPIT .EQ. 1 .AND. GAMMA(3) .GT. 10.0) GAMMA(3) = 10.0IF (IPIT .EQ. 1 .AND. GAMMA(3) .LT. PG(3)) GAMMA(3) = PG(3)
END IF
/ <
C Potassium species C --------...-........
180 CONTINUEIF (EXELT(4) .GT. CPUMIN) THENM(113) - ALFA( 5) / (KT1( 86) * GAMMA(113))M(114) - ALFA( 98) / (KT1( 87) * GAMMA(114))M(115) - ALFA(103) / (KT1( 88) * GAMMA(llS))M(116) - ALFA( 6) / (KT1( 89) * GAMMA(116))M(117) = ALFA( 99) / (KT1( 90) * GAMMA(117))M(235) - ALFA( 48) / (KT1(215) * GAMMA(235))M(255) = ALFA(246) / (KT1(231) * GAMMA(255))M(274) - ALFA(265) / (KT1(249) * GAMMA(274))
M(MXSP+ 9) = ALFA(MXSP+ 1) / (KTl(MXAQtf+8) * GAMMA(MXSP+ 9))M(MXSP+24) - ALFA(MXSP+16) / (KTl(MXAQK+22) * GAMMA (MXSP+24))
M(4) - EXELT(4) / (l.ODO + GAMMA(4) * (M(113) + M(114) +
DIS 8300DIS 8310DIS 8320DIS 8330DIS 8340DIS 8350DIS 8360DIS 8370DIS 8380DIS 8390DIS 8400DIS 8410DIS 8420DIS 8430DIS 8440DIS 8450DIS 8460DIS 8470DIS 8480DIS 8490DIS 8500DIS 8510DIS 8520DIS 8530DIS 8540DIS 8550DIS 8560DIS 8570DIS 8580DIS 8590DIS 8600DIS 8610DIS 8620DIS 8630DIS 8640DIS 8650DIS 8660DIS 8670DIS 8680
-|DIS 8690|DIS 8700|DIS 8710DIS 8720DIS 8730DIS 8740DIS 8750DIS 8760DIS 8770DIS 8780DIS 8790DIS 8800DIS 8810DIS 8820DIS 8830DIS 8840DIS 8850DIS 8860DIS 8870
270
M(115) + M(116) + M(117) + M(235) + M(255) +M(274) + M(MXSP+9) + M(MXSP+24)))
ALFA(4) = M(4) * GAMMA(4)
DO 190 1-113, 117M(I) = M(I) * ALFA(4)ALFA(I) = M(I) * GAMMA(I)
190 CONTINUE
M(235) = M(235) * ALFA(4)ALFA(235) - M(235) * GAMMA(235)
M(255) = M(255) * ALFA(4)ALFA(255) = M(255) * GAMMA(255)
M(274) = M(274) * ALFA(4)ALFA(274) = M(274) * GAMMA(274)
M(MXSP+ 9) = M(MXSP+ 9) * ALFA(4)ALFA(MXSP+ 9) = M(MXSP+ 9) * GAMMA(MXSP+ 9)
M(MXSP+24) - M(MXSP+24) * ALFA(4)ALFA(MXSP+24) - M(MXSP+24) * GAMMA (MXSP+24)
IF (IPIT.EQ.l .AND. PG(4) .GT.CPUMIN.AND. GAMMA(4).LE.10.0) THEN
IF (DABS(PALFA(4)-ALFA(4)) .GT. 1.0D-2*PALFA(4) ) THENIF (PALFA(4) .GT. ALFA(4)) THEN
INC =0.1ELSE
INC =-0.01END IFGAMMA ( 4 ) -GAMMA ( 4 ) * ( 1 . 0+INC )GO TO 180
END IFEND IF
IF (IPIT .EQ. 1 .AND. GAMMA(4) .GT. 10.0) GAMMA(4) = 10.0IF (IPIT .GT. 1 .AND. GAMMA(4) .LT. PG(4)) GAMMA(4) = PG(4)
END IF
C _ _ _C Silver speciesC _____ ______
IF (EXELT(9) .GT. CPUMIN) THENM(43) = O.ODOOM(44) = O.ODOOM(45) = O.ODOOM(46) = O.ODOOM(47) = O.ODOOIF (DABS(KT1(20)) .GT. l.OD-30)
M(43) - ALFA(5) / (KT1(20) * GAMMA(43))IF (DABS(KT1(21)) .GT. l.OD-30)
M(44) = ALFA(5)**2 / (KT1(21) * GAMMA(44))IF (DABS(KT1(22)) .GT. l.OD-30)
M(45) = ALFA(5)**3 / (KT1(22) * GAMMA(45))IF (DABS(KT1(23)) .GT. l.OD-30)
DIS 8880DIS 8890DIS 8900DIS 8910DIS 8920DIS 8930DIS 8940DIS 8950DIS 8960DIS 8970DIS 8980DIS 8990DIS 9000DIS 9010DIS 9020DIS 9030DIS 9040DIS 9050DIS 9060DIS 9070DIS 9080DIS 9090DIS 9100DIS 9110DIS 9120DIS 9130DIS 9140DIS 9150DIS 9160DIS 9170DIS 9180DIS 9190DIS 9200DIS 9210DIS 9220DIS 9230DIS 9240DIS 9250DIS 9260DIS 9270DIS 9280injc QOQO
JDIS 9300|DIS 9310 DIS 9320DIS 9330DIS 9340DIS 9350DIS 9360DIS 9370DIS 9380DIS 9390DIS 9400DIS 9410DIS 9420DIS 9430DIS 9440DIS 9450
271
M(46) = ALFA(5)**4 / (KT1(23) * GAMMA(46))IF (DABS(KT1(24)) .GT. l.OD-30)
M(47) = ALFA(6) / (KT1(24) * GAMMA(47))
M(13) = EXELT(9) / (l.ODO + GAMMA(13) * (M(42) + M(44) +M(45) + M(46) + M(47)))
ALFA(13) = M(13) * GAMMA(13)
DO 200 I = 43, 47M(I) = M(I) * ALFA(13)ALFA(I) = M(I) * GAMMA(I)
200 CONTINUEEND IF
C Aluminum species---------------------
IF (EXELT(IO) .GT. CPUMIN) THENM( 34) - ALFA( 30) / (KT1( 11) * GAMMA( 34))M( 35) - ALFA( 30)**2 / (KT1( 12) * GAMMA( 35))M( 36) - ALFA( 30)**3 / (KT1( 13) * GAMMA( 36))M( 37) - 0.0IF (DABS(KT1(15)) .GT. l.OD-30)
M( 37) - ALFA( 30)**4 / (KT1( 14) * GAMMA( 37))
M( 38) - LALFA(9) - LOGKT1(15) - DLOG10(GAMMA(38) )M( 38) - SEXP10( M(38))M( 39) - (2.0*LALFA(9)) - LOGKT1(16) - DLOG10(GAMMA(39))M( 39) - SEXP10( M(39))M( 40) - (4.0*LALFA(9)) - LOGKT1(17) - DLOG10(GAMMA(40) )M( 40) = SEXP10( M(40))
M( 41) = ALFA( 6) / (KT1( 18) * GAMMA( 41))M( 42) = ALFA( 6)**2 / (KT1( 19) * GAMMA( 42))M(163) = O.ODOOIF (DABS(KT1(9)) .GT. l.OD-30) M(163) = ALFA( 30)**5
/ (KT1( 9) * GAMMA(163))M(164) = O.ODOOIF (DABS(KT1(65)) .GT. l.OD-30) M(164) - ALFA( 30)**6
/ (KT1( 65) * GAMMA(164))M(229) = ALFA( 48) / (KT1(209) * GAMMA(229))M(249) = ALFA(246) / (KT1(225) * GAMMA(249))M(250) = ALFA(246)**2 / (KT1(226) * GAMMA(250))M(268) = ALFA(265) / (KT1(243) * GAMMA(268))M(269) = ALFA(265)**2 / (KT1(244) * GAMMA(269))M(MXSP+ 4) = ALFA(MXSP+ 1) / (KTl(MXAQK+3) * GAMMA(MXSP+ 4))M(MXSP+19) = ALFA(MXSP+16) / (KT1(MXAQK+17) * GAMMA (MXSP+ 19).)
M(14) = EXELT(IO) / (l.ODO + GAMMA(14) * (M(34) + M(35) +M( 36) + M( 37) + M( 38) + M( 39) + M( 40) + M(41) +M( 42) + M(163) + M(164) + M(229) + M(249) +M(250) + M(268) + M(269) + M(MXSP+4) + M(MXSP+19)))
ALFA(14) = M(14) * GAMMA(14)
IF (M(163) .GT. 3.0) M(163) = 3.0
DO 210 I = 34, 42
DIS 9460DIS 9470DIS 9480DIS 9490DIS 9500DIS 9510DIS 9520DIS 9530DIS 9540DIS 9550DIS 9560DIS 9570DIS 9580DIS 9590|DIS 9600|DIS 9610i T\T o n /" o /\
DIS 9630DIS 9640DIS 9650DIS 9660DIS 9670DIS 9680DIS 9690DIS 9700DIS 9710DIS 9720DIS 9730DIS 9740DIS 9750DIS 9760DIS 9770DIS 9780DIS 9790DIS 9800DIS 9810DIS 9820DIS 9830DIS 9840DIS 9850DIS 9860DIS 9870DIS 9880DIS 9890DIS 9900DIS 9910DIS 9920DIS 9930DIS 9940DIS 9950DIS 9960DIS 9970DIS 9980DIS 9990DIS10000DIS10010DIS10020DIS10030
272
210
220
M(I) = M(I) * ALFA(14) ALFA(I) = M(I) * GAMMA(I)
CONTINUE
DO 220 I = 163, 164M(I) = M(I) * ALFA(14) ALFA(I) = M(I) * GAMMA(I)
CONTINUE
M(229) ALFA(229)
M(249) ALFA(249)
M(250) ALFA(250)
M(268) ALFA(268)
M(269) ALFA(269)
M(MXSP+ 4) ALFA(MXSP+4)
M(MXSP+19) ALFA(MXSP+19)
END IF
M(229) M(229)
M(249) M(249)
M(250) M(250)
M(268) M(268)
M(269) M(269)
* ALFA(14)* GAMMA(229)
* ALFA(14)* GAMMA(249)
* ALFA(14)* GAMMA(250)
* ALFA(14)* GAMMA(268)
* ALFA(14)* GAMMA(269)
M(MXSP+ 4) * ALFA(14) M(MXSP+ 4) * GAMMA(MXSP+ 4)
M(MXSP+19) * ALFA(14) M(MXSP+19) * GAMMA(MXSP+19)
Iron species
IF (EXELT(13) .GT. CPUMIN) THENM( 71) = ALFA( 5) / (KT1( 46) * GAMMA( 71)) M( 72) = ALFA( 5)**2 / (KT1( 47) * GAMMA( 72))
ALFA( 99) / (KT1( 48) * GAMMA( 73)) 9) / (KT1( 50) * GAMMA( 75)) 9)**2 / (KT1( 51) * GAMMA( 76))
/ (KT1( 52) * GAMMA( 77) * ALFA(8)**3) / (KT1( 53) * GAMMA( 78)) / (KT1(213) * GAMMA(233)) / (KT1(214) * GAMMA(234)) / (KT1(229) * GAMMA(253)) / (KT1(247) * GAMMA(272))
M(MXSP+ 8) = ALFA(MXSP+ 1) / (KT1(MXAQK+ 7) * GAMMA(MXSP+ 8)) M(MXSP+23) = ALFA(MXSP+16) / (KT1(MXAQK+21) * GAMMA(MXSP+23))
M( 73)M( 75) = ALFA(M( 76) = ALFA(M( 77) = ALFA( 10)**2M( 78) = ALFA( 6)M(233) = ALFA( 48)M(234) = ALFA( 48)**2M(253) = ALFA(246)M(272) = ALFA(265)
If fe+3 is to be calculated from eh measurements then put flags(l) =1. If from the reaction:
fe+3 + l/2h2o + l/8hs- = fe++ + l/8so4 + 9/8h+ then flags(l) = 0.
IF (EHM .LT. 9.0DO .AND. FLAGS(l) .EQ. 1) THEN
273
DIS10040 DIS10050 DIS10060 DIS10070 DIS10080 DIS10090 DIS10100 DIS10110 DIS10120 DIS10130 DIS10140 DIS10150 DIS10160 DIS10170 DIS10180 DIS10190 DIS10200 DIS10210 DIS10220 DIS10230 DIS10240 DIS10250 DIS10260 DIS10270 DIS10280 DIS10290 DIS10300 DIS10310 DIS10320 DIS10330 DIS10340 |DIS10350 JDIS10360 JDIS10370 DIS10380 DIS10390 DIS10400 DIS10410 DIS10420 DIS10430 DIS10440 DIS10450 DIS10460 DIS10470 DIS10480 DIS10490 DIS10500 DIS10510 DIS10520 DIS10530 [DIS1054C JDIS10550 JDIS10560 JDIS10570 JDIS10580 [DIS10590 DIS10600 DIS10610
230
240
Cl = 10.0**((EHM * F - LOGKT1(138)) / (2 . 303 * R * T) )M(19) = Cl / GAMMA(19)
ELSE IF (EXELT(25) .LT. CPUMIN) THENM(19) = 0.0
ELSE IF (FLAGS(l) .EQ. 0) THENM(19) = (ALFA(6)**0.125 * ALFA(8)**1. 125) / (KT1(5) *
DSQRT(ALFA(10)) * ALFA(101)**0 . 125 * GAMMA(19))END IF
M( 79) = ALFA( 5) / (KT1( 54) * GAMMA( 79))M( 80) - ALFA( 5)**2 / (KT1( 55) * GAMMA( 80))M( 81) = O.ODOOIF (DABS(KT1(56)) .GT. l.OD-30)
M( 81) = ALFA( 5)**3 / (KT1( 56) * GAMMA( 81))M( 82) = O.ODOOIF (DABS(KT1(57)) .GT. l.OD-30)
M( 82) = ALFA( 5)**4 / (KT1( 57) * GAMMA( 82))M( 83) - ALFA( 6) / (KT1( 58) * GAMMA( 83))M( 84) - ALFA( 6)**2 / (KT1( 59) * GAMMA( 84))M( 85) - ALFA( 9) / (KT1( 60) * GAMMA( 85))M( 86) - ALFA( 9)**2 / (KT1( 61) * GAMMA( 86))M( 87) - O.ODOOIF (DABS(KT1(62)) .GT. l.OD-30)
M( 87) = ALFA( 9)**3 / (KT1( 62) * GAMMA( 87))M( 88) - O.ODOOIF (DABS(KT1(53)) .GT. l.OD-30)
M( 88) - ALFA( 9)**4 / (KT1( 63) * GAMMA( 88))M(254) - ALFA(246) / (KT1(230) * GAMMA(253))M(273) - ALFA(265) / (KT1(248) * GAMMA(273))M(283) = ALFA( 30) / (KT1(256) * GAMMA(283))
DO 230 I = 79, 88M(I) - M(I) * M(19) * GAMMA(19)
CONTINUE
M(254) = M(254) * M(19) * GAMMA(19)M(273) - M(273) * M(19) * GAMMA(19)M(283) = M(283) * M(19) * GAMMA(19)
M(18) - EXELT(13) / (l.ODO + GAMMA(18) * (M(19) + M(71) +M( 72) + M( 73) + M( 75) + M( 76) + M( 77) + M( 78)M( 79) + M( 80) + M( 81) + M( 82) + M( 83) + M( 84)M( 85) + M( 86) + M( 87) + M( 88) + M(233) + M(234)M(253) + M(254) + M(272) + M(273) + M(283) +M(MXSP+8) + M(MXSP+23)))
ALFA(18) = M(18) * GAMMA(18)
M(19) = M(19) * ALFA(18)ALFA(19) = M(19) * GAMMA(19)
DO 240 1-71, 88IF (I .EQ. 74) GO TO 240M(I) - M(I) * ALFA(18)ALFA(I) - M(I) * GAMMA(I)
CONTINUE
M(233) - M(233) * ALFA(18)ALFA(233) - M(233) * GAMMA(233)
DIS10620DIS10630DIS10640DIS10650DIS10660DIS10670DIS10680DIS10690DIS10700DIS10710DIS10720DIS10730DIS10740DIS10750DIS10760DIS10770DIS10780DIS10790DIS10800DIS10810DIS10820DIS10830DIS10840DIS10850DIS10860DIS10870DIS10880DIS10890DIS10900DIS10910DIS10920DIS10930DIS10940DIS10950DIS10960DIS10970DIS10980DIS10990DIS11000DIS11010
+ DIS11020+ DIS11030+ DIS11040
DIS11050DIS11060DIS11070DIS11080DIS11090DIS11100DIS11110DIS11120DIS11130DIS11140DIS11150DIS11160DIS11170DIS11180DIS11190
274
M(234) - M(234) * ALFA(18)ALFA(234) - M(234) * GAMMA(234)
M(253) - M(253) * ALFA(18)ALFA(253) - M(253) * GAMMA(253)
M(254) = M(254) * ALFA(18)ALFA(254) = M(254) * GAMMA(254)
M(272) = M(272) * ALFA(18)ALFA(272) = M(272) * GAMMA(272)
M(273) = M(273) * ALFA(18)ALFA(273) = M(273) * GAMMA(273)
M(283) = M(283) * ALFA(18)ALFA(283) = M(283) * GAMMA(283)
M(MXSP+ 8) = M(MXSP+ 8) * ALFA(18)ALFA(MXSP+ 8) - M(MXSP+ 8) * GAMMA(MXSP+ 8)
M(MXSP+23) - M(MXSP+23) * ALFA(18)ALFA(MXSP+23) - M(MXSP+23) * GAMMA(MXSP+23)
END IF
r __________C Barium speciesf
IF (EXELT(ll) .GT. CPUMIN) THENM( 51) = ALFA( 98) / (KT1( 26) * GAMMA( 51))M( 52) = ALFA( 7) / (KT1( 27) * GAMMA( 52))M( 53) = ALFA( 9) / (KT1( 28) * GAMMA( 53))M( 54) = ALFA( 6) / (KT1( 29) * GAMMA( 54))M(230) = ALFA( 48) / (KT1(210) * GAMMA(230))M(251) = ALFA(246) / (KT1(227) * GAMMA(251))M(270) = ALFA(265) / (KT1(245) * GAMMA(270))M(MXSP+ 5) = ALFA(MXSP+ 1) / (KT1(MXAQK+ 4) * GAMMA(MXSP+ 5))M(MXSP+20) = ALFA(MXSP+16) / (KT1(MXAQK+18) * GAMMA ( MXS P+20 ))
M(15) = EXELT(ll) / (l.ODO + GAMMA(15) * (M(51) + M(52) +M(53) + M(54) + M(230) + M(251) + M(270) +M(MXSP+5) + M(MXSP+20)))
ALFA(15) = M(15) * GAMMA(15)
DO 250 I = 51, 54M(I) = M(I) * ALFA(15)ALFA(I) = M(I) * GAMMA(I)
250 CONTINUE
M(230) - M(230) * ALFA(15)ALFA(230) = M(230) * GAMMA(230)
M(251) = M(251) * ALFA(15)ALFA(251) = M(251) * GAMMA(251)
M(270) = M(270) * ALFA(15)
275
DIS11200DIS11210DIS11220DIS11230DIS11240DIS11250DIS11260DIS11270DIS11280DIS11290DIS11300DIS11310DIS11320DIS11330DIS11340DIS11350DIS11360DIS11370DIS11380DIS11390DIS11400DIS11410DIS11420DIS11430DIS11440DIS11450
-|DIS11460|DIS11470|DIS11480DIS11490DIS11500DIS11510DIS11520DIS11530DIS11540DIS11550DIS11560DIS11570DIS11580DIS11590DIS11600DIS11610DIS11620DIS11630DIS11640DIS11650DIS11660DIS11670DIS11680DIS11690DIS11700DIS11710DIS11720DIS11730DIS11740DIS11750DIS11760DIS11770
/I^"
cy~i*-*
Ccc
ALFA(270) = M(270) * GAMMA(270)
M(MXSP+5) = M(MXSP+5) * ALFA(15)ALFA(MXSP+5) = M(MXSP+5) * GAMMA(MXSP+5)
M(MXSP+20) = M(MXSP+20) * ALFA(15)ALFA(MXSP+20) = M(MXSP+20) * GAMMA (MXSfP+20)
END IF
Copper species
IF (EXELT(12) .GE. CPUMIN) THENM(62) = ALFA( 5) / (KT1( 37) * GAMtfA( 62))M(63) - ALFA( 5)**2 / (KT1( 38) * GAMdA( 63))M(64) = ALFA( 5)**3 / (KTl( 39) * GAM*A( 64))M(232) = ALFA(48) / (KTl(212) * GAM*A(232))M(MXSP+ 7) = ALFA(MXSP+ 1) / (KT1(MXAQK+ 6) * GAMMA(MXSP+ 7))M(MXSP+22) = ALFA(MXSP+16) / (KT1(MXAQK+20) * GAMMA (MXS P+22 ))
If cu++ is to be calculated from eh measurements thenflags(2) =1. If from cu++ + fe++ - cu+ + fe+3, thenflags(2) = 0.
IF (EHM .LT. 9.0 .AND. FLAGS (2) .EQ. 1) THENCl = 1.0D1**((EHM * F - LOGKT1(139)) / (2 . 303 * R * T) )M(17) = Cl / GAMMA(19)
ELSE IF (EXELT(25) .LT. CPUMIN) THENM(17) = O.ODO
ELSE IF (FLAGS (2) .EQ. 0) THENM(17) = ALFA(19) / (KT1(4) * ALFA(18) * GAMMA(17))
END IF
M(65) = ALFA(5) / (KT1(40) * GAMMA(65))M(66) = ALFA(5)**2 / (KT1(41) * GAMMA(66))M(67) - O.ODOOIF (DABS(KT1(42)) .GT. l.OD-30)
M(67) = ALFA(5)**3 / (KT1(42) * GAMMA(67))M(68) = O.ODOOIF (DABS(KT1(43)) .GT. l.OD-30)
M(68) = ALFA(5)**4 / (KT1(43) * GAMMA(68))M(69) = ALFA(9) / (KT1(44) * GAMMA(69))M(70) = ALFA(6) / (KT1(45) * GAMMA(70))
DO 260 I = 65, 70M(I) = M(I) * M(17) * GAMMA(17)
260 CONTINUE
M(16) = EXELT(12) / (l.ODO + GAMMA(16) * (M(17) + M(62) +M(63) + M(64) + M(65) + M(66) + M(67) + M(68) +M(69) + M(70) + M(232) + M(MXSP+7) + M(MXSP+22)))
ALFA(16) = M(16) * GAMMA(16)
M(17) = M(17) * ALFA(16)ALFA(17) = M(17) * GAMMA(17)
DIS11780DIS11790DIS11800DIS11810DIS11820DIS11830DIS11840DIS11850DIS11860
-|DIS11870|DIS118801 T^T O1 1 BOH| Ulollo;7U
DIS11900DIS11910DIS11920DIS11930DIS11940DIS11950DIS11960DIS11970DIS11980
i F>T c 1 1 oon
JDIS12000|DIS12010|DIS12020
- (DIS12030 DIS12040DIS12050DIS12060DIS12070DIS12080DIS12090DIS12100DIS12110DIS12120DIS12130DIS12140DIS12150DIS12160DIS12170DIS12180DIS12190DIS12200DIS12210DIS12220DIS12230DIS12240DIS12250DIS12260DIS12270DIS12280DIS12290DIS12300DIS12310DIS12320DIS12330DIS12340DIS12350
276
c
ccfo
foccf o
DO 270 I = 62, 70M(I) - M(I) * ALFA(16)ALFA(I) - M(I) * GAMMA(I)
270 CONTINUE
M(232) - M(232) * ALFA(16)ALFA(232) - M(232) * GAMMA(232)
M(MXSP+.7) - M(MXSP+ 7) * ALFA(16)ALFA(MXSP+ 7) - M(MXSP+ 7) * GAMMA(MXSP+7)
M(MXSP+22) - M(MXSP+22) * ALFA(16)ALFA(MXSP+22) = M(MXSP+22) * GAMMA(MXSP+22)
END IF
Mercury species
IF (EXELT(14) .GT. CPUMIN) THENM(105) - ALFA(5) / (KT1(78) * GAMMA(105))M(106) - ALFA(5)**2 / (KT1(79) * GAMMA(106))M(107) - ALFA(5)**3 / (KT1(80) * GAMMA(107))M(108) = ALFA(5)**4 / (KT1(81) * GAMMA(108))M(109) - ALFA(6) / (KT1(82) * GAMMA(109))
The k values for hgsh2s)2 are so small a divide by zero errorwill occur is the reason for the following statement.
M(110) = 0.0IF (DABS(KT1(83)) .GT. l.OD-30) M(110) - ALFA(33)**2
* ALFA(lOl) / (KT1(83) * GAMMA(llO) * ALFA(8))M(lll) = ALFA(101)**3 / (KT1(84) * GAMMA(lll))M(165) - ALFA(9) / (KT1(117) * GAMMA(165))M(166) - ALFA(9)**2 / (KT1(137) * GAMMA(166))
If hg++ is to be calculated from eh then flags (3) - 1.If from 2hg++ + 2fe++ - hg++ + 2fe+3 then flags (3) - 0.
IF (EHM .LT. 9.0 .AND. FLAGS(3) .EQ. 1) THENCl - 10.0**(((EHM*F - LOGKT1(140))*2) / (2.303*R*T))M(20) - Cl * M(21) * GAMMA(21) / GAMMA(20)
ELSE IF (EXELT(25) .LT. CPUMIN .OR. EXELT(13) .LT. CPUMIN.OR. ALFA(18) .LT. l.OD-30 .OR. ALFA(19) .LT. l.OD-30)
THENM(20) - 0.0M(112) = 0.0
ELSE IF (FLAGS(3) .EQ. 0) THENM(20) = 2.0 * DLOG10(ALFA(18)) - 2.0 * DLOG10(ALFA(19) )
+ DLOG10(M(21)) + DLOG10(GAMMA(21)) + DLOG10(KT1(6) )- DLOG10(GAMMA(20))
IF (M(20) .GT. -30.0 .AND. M(20) .LT. +30.0) THENM(20) - 10.0**M(20)
ELSE
DIS12360DIS12370DIS12380DIS12390DIS12400DIS12410DIS12420DIS12430DIS12440DIS12450DIS12460DIS12470DIS12480DIS12490DIS12500DIS12510
1 DTS1 9S90| >J ± iJ 1. i- -J i-\J
|DIS12530JDIS12540DIS12550DIS12560DIS12570DIS12580DIS12590DIS12600DIS12610DIS12620
I T\T o i o a onUlDlZo JU (DIS12640(DIS12650|DIS12660DIS12670DIS12680DIS12690DIS12700DIS12710DIS12720DIS12730JDIS12740(DIS12750JDIS12760|DIS12770DIS12780DIS12790DIS12800DIS12810DIS12820DIS12830DIS12840DIS12850DIS12860DIS12870DIS12880DIS12890DIS12900DIS12910DIS12920DIS12930
277
M(20) - O.ODOOEND IF
M(112) - 2.0 * DLOG10(ALFA(18)) - 2
DIS12940DIS12950DIS12960
0 * DLOG10(ALFA(19)) DIS12970+ DLOG10(KT1(85)) - DLOG10(GAMMA(112)) DIS12980
IF (M(112) .GT. -30.0 .AND. M(112)M(112) - 10.0**M(112)
ELSEM(112) - 0.0
END IFEND IF
LT. +30.0) THEN DIS12990DIS13000DIS13010DIS13020DIS13030DIS13040DIS13050
M(21) = EXELT(14) / (l.ODO + GAMMA(21) * (M(20) + M(105) + DIS13060
CCC
M(106) + M(107) + M(108) +M(lll) + M(112) + M(165) +
ALFA(21) = M(21) * GAMMA(21)
M(20) - M(20) * ALFA(21)ALFA(20) = M(20) * GAMMA(20)
DO 280 1-105, 112M(I) - M(I) * ALFA(21)ALFA(I) - M(I) * GAMMA(I)
280 CONTINUE
DO 290 1-165, 166M(I) = M(I) * ALFA(21)ALFA(I) = M(I) * GAMMA(I)
290 CONTINUEEND IF
Lithium species
IF (EXELT(15) .GT. CPUMIN) THENM(118) = ALFA(9) / (KT1(91) * GAMMA(11M(119) = ALFA(6) / (KT1(92) * GAMMA(11
M(109) + M(110) + DIS13070M(166))) DIS13080
DIS13090DIS13100DIS13110DIS13120DIS13130DIS13140DIS13150DIS13160DIS13170DIS13180DIS13190DIS13200DIS13210DIS13220DIS13230DIS13240
......................... |DIS13250|DIS13260|DIS13270DIS13280DIS13290
8)) DIS133009)) DIS13310
DIS13320M(22) = EXELT(15) / (l.ODO + GAMMA(22) * (M(118) + M(119))) DIS13330
CCC
ALFA(22) = M(22) * GAMMA(22)
DO 300 I = 118, 119M(I) - M(I) * ALFA(22)ALFA(I) - M(I) * GAMMA(I)
300 CONTINUEEND IF
Manganese species
IF (EXELT(16) .GT. CPUMIN) THEN
DIS13340DIS13350DIS13360DIS13370DIS13380DIS13390DIS13400DIS13410
......................... | DIS13420|DIS13430JDIS13440DIS13450DIS13460
M(128) = ALFA( 5) / (KTl(lOl) * GAMMA(128)) DIS13470M(129) = ALFA( 5)**2 / (KT1(102) * GAMMA(129)) DIS13480M(130) = ALFA( 5)**3 / (KT1(103) * GAMMA(130)) DIS13490M(131) = O.ODOOIF ( DABS (KT1( 104)) .GT. l.OD-30)
DIS13500DIS13510
278
ALFA( 5)**4 / (KT1(104) * GAMMA(131))M(132) - ALFA( 7) / M(133) - ALFA( 6) / M(134) - ALFA( 99) / M(135) - ALFA( 9) / M(257) - ALFA(246) / M(258) - ALFA(246)**2 / M(259) - ALFA(246)**3 / M(276) = ALFA(265) / M(MXSP+11) = ALFA(MXSP+
(KT1(105) (KT1(106) (KT1(108) (KT1(109) (KT1(233) (KT1(234) (KT1(235) (KT1(251) 1) / (KT1(MXAQK+10) * GAMMA(MXSP+ll))
* GAMMA(132))* GAMMA(133))* GAMMA(134))* GAMMA(135))* GAMMA(257))* GAMMA(258))* GAMMA(259))* GAMMA(276))
M(MXSP+26) - ALFA(MXSP+16) / (KTl(MXAQK+24) * GAMMA(MXSP+26))
If mn+++ is to be calculated from eh then flags(4) - 1. If from mn+3 + fe++ = mn++ + fe+3 then flags(4) - 0.
IF (EHM.LT.9.0DO .AND. FLAGS(4) .EQ. 1) THENCl = 1.0D1**((EHM * F - LOGKT1(141)) / (2 . 303 * R * T) )M(24) - Cl / GAMMA(23)
ELSE IF (EXELT(25) .LT. CPUMIN) THENM(24) O.ODO
ELSE IF (EXELT(13) .LT. CPUMIN) THEN
310
320
M(24) - O.ODO ELSE IF (FLAGS (4) EQ. 0) THEN
M(24) END IF
M(153) M(153)
M(260) M(260)
M(23)
ALFA(23)
M(24) ALFA (24)
DO 310 I
ALFA(19) / (KT1(7) * ALFA(18) * GAMMA(24))
ALFA( 5) / M(153) * M(24)
(KT1(107) * GAMMA(153)) * GAMMA(24)
ALFA(I) CONTINUE
M(153) ALFA(153)
DO 320 I
ALFA(246) / (KTl(236) * GAMMA(258)) M(260) * M(24) * GAMMA(24)
= EXELT(16) / (l.ODO + GAMMA(23) * (M(24) + M(128) + M(129) + M(130) + M(131) + M(132) + M(133) + M(134) + M(135) + M(153) + M(257) + M(258) + M(259) + M(260) + M(276) + M(MXSP+11) + M(MXSP+26)))
- M(23) * GAMMA(23)
= M(24) * ALFA(23)- M(24) * GAMMA(24)
= 128, 135M(I) * ALFA(23) M(I) * GAMMA(I)
ALFA(I) CONTINUE
M(276) ALFA(276)
= M(153) - M(153)
257, 260 M(I) * ALFA(23) M(I) * GAMMA(I)
* ALFA(23)* GAMMA(153)
M(276) M(276)
* ALFA(23)* GAMMA(276)
DIS13520 DIS13530 DIS13540 DIS13550 DIS13560 DIS13570 DIS13580 DIS13590 DIS13600 DIS13610 DIS13620 DIS13630 |DIS13640 JDIS13650 JDIS13660 |DIS13670 DIS13680 DIS13690 DIS13700 DIS13710 DIS13720 DIS13730 DIS13740 DIS13750 DIS13760 DIS13770 DIS13780 DIS13790 DIS13800 DIS13810 DIS13820 DIS13830 DIS13840 DIS13850 DIS13860 DIS13870 DIS13880 DIS13890 DIS13900 DIS13910 DIS13920 DIS13930 DIS13940 DIS13950 DIS13960 DIS13970 DIS13980 DIS13990 DIS14000 DIS14010 DIS14020 DIS14030 DIS14040 DIS14050 DIS14060 DIS14070 DIS14080 DIS14090
279
M(MXSP+11) - M(MXSP+11) * ALFA(23)ALFA(MXSP+11) - M(MXSP+11) * GAMMA (MXSP+11)
M(MXSP+26) - M(MXSP+26) * ALFA(23)ALFA(MXSP+26) - M(MXSP+26) * GAMMA(MXSP+26)
END IF
/t\
C Lead species----------------
IF (EXELT(17) .GT. CPUMIN) THENM(148) - ALFA( 5) / (KT1(121) * GAMMA (148))M(149) - ALFA( 5)**2 / (KT1(122) * GAMMA(149))M(150) - ALFA( 5)**3 / (KT1(123) * GAMMA(ISO))M(151) - O.ODOOIF (DABS (KT1 (124)) .GT. l.OD-30)
M(151) - ALFA( 5)**4 / (KT1(124) * GAMMA(lSl))M(152) - ALFA( 6) / (KT1(125) * GAMMA(152))M(238) - ALFA( 48) / (KT1(218) * GAMMA(238))M(239) - ALFA( 48)**2 / (KT1(219) * GAMMA(239))M(240) - ALFA( 48)**3 / (KT1(220) * GAMMA(240))M(262) = ALFA(246) / (KT1(238) * GAMMA(262))M(278) - ALFA(265) / (KT1(253) * GAMMA(278))M(286) = ALFA(101)**2 / (KT1(258) * GAMMA(286))M(287) - ALFA(101)**3 / (KT1(259) * GAMMA(287))M(288) - ALFA( 98) / (KT1(260) * GAMMA(288))M(289) - ALFA( 9) / (KT1(261) * GAMMA(289))M(MXSP+13) - ALFA(MXSP+ 1) / (KT1(MXAQK+12) * GAMMA(MXSP+13) )M(MXSP+28) - ALFA(MXSP+16) / (KTl(MXAQK+26) * GAMMA(MXSP+28))
M(25) - EXELT(17) / (l.ODO + GAMMA(25) * (M(148) + M(149) +M(150) + M(151) + M(152) + M(238) + M(239) + M(240)M(262) + M(278) + M(286) + M(287) + M(288) + M(289)M(MXSP+13) + M(MXSP+28)))
ALFA(25) - M(25) * GAMMA(25)
DO 330 1-148, 152M(T) - M(I) * ALFA(25)ALFA(I) = M(I) * GAMMA(I)
330 CONTINUE
DO 340 I - 238, 240M(I) - M(I) * ALFA(25)ALFA(I) - M(I) * GAMMA(I)
340 CONTINUE
M(262) - M(262) * ALFA(25)ALFA(262) - M(262) * GAMMA(262)
M(278) - M(278) * ALFA(25)ALFA(278) - M(278) * GAMMA(278)
DO 350 I - 286, 289M(I) - M(I) * ALFA(25)ALFA(I) - M(I) * GAMMA(I)
DIS14100DIS14110,DIS14120DIS14130DIS14140DIS14150DIS14160DIS14170
-|DIS14180|DIS14190JDIS14200DIS14210DIS14220DIS14230DIS14240DIS14250DIS14260DIS14270DIS14280DIS14290DIS14300DIS14310DIS14320DIS14330DIS14340DIS14350DIS14360DIS14370DIS14380DIS14390DIS14400DIS14410DIS14420
+DIS14430+DIS 14440DIS14450DIS14460DIS14470DIS14480DIS14490DIS14500DIS14510DIS14520DIS14530DIS14540DIS14550DIS14560DIS14570DIS14580DIS14590DIS14600DIS14610DIS14620DIS14630DIS14640DIS14650DIS14660DIS14670
280
350 CONTINUE
M(MXSP+13) = M(MXSP+13) * ALFA(25)ALFA(MXSP+13) = M(MXSP+13) * GAMMA(MXSP+13)
M(MXSP+28) = M(MXSP+28) * ALFA(25)ALFA(MXSP+28) = M(MXSP+28) * GAMMA(MXSP+28)
END IF
r
C Strontium speciesP
360 CONTINUEIF (EXELT(18) .GT. CPUMIN) THENM(154) = ALFA( 9) / (KT1(127) * GAMMA(154))M(155) = ALFA( 98) / (KT1(128) * GAMMA(155))M(156) = ALFA( 7) / (KT1(129) * GAMMA(156))M(157) - ALFA( 6) / (KT1(130) * GAMMA(157))M(241) - ALFA( 48) / (KT1(221) * GAMMA(241))M(263) = ALFA(246) / (KT1(239) * GAMMA(263))M(279) = ALFA(265) / (KT1(254) * GAMMA(279))M(MXSP+14) - ALFA(MXSP+ 1) / (KTl(MXAQK+13) * GAMMA (MXS P+14 ))M(MXSP+29) = ALFA(MXSP+16) / (KTl(MXAQK+27) * GAMMA(MXSP+29) )
M(26) - EXELT(18) / (l.ODO + GAMMA(26) * (M(154) + M(155) +M(156) + M(157) + M(241) + M(263) + M(279) +M(MXSP+14) + M(MXSP+29)))
ALFA(26) = M(26) * GAMMA(26)
DO 370 I = 154, 157M(I) = M(I) * ALFA(26)ALFA(I) = M(I) * GAMMA(I)
370 CONTINUE
M(241) = M(241) * ALFA(26)ALFA(241) = M(241) * GAMMA(241)
M(263) - M(263) * ALFA(26)ALFA(263) - M(263) * GAMMA(263)
M(279) = M(279) * ALFA(26)ALFA(279) = M(279) * GAMMA(279)
M(MXSP+14) = M(MXSP+14) * ALFA(26)ALFA (MXS P+14) = M (MXS P+14) * GAMMA (MXS P+14)
M(MXSP+29) = M(MXSP+29) * ALFA(26)ALFA(MXSP+29) - M(MXSP+29) * GAMMA (MXS P+2 9)
IF (IPIT.EQ.l .AND. PG ( 26 ). GT. CPUMIN.AND. GAMMA(26).LE.10.0) THEN
IF (DABS(PALFA(26)-ALFA(26)) .GT. 1.0D-2*PALFA(26)) THENIF (PALFA(26) .GT. ALFA(26)) THEN
INC=0 . 1ELSEINC 0.01
END IF
DIS14680DIS14690DIS14700DIS14710DIS14720DIS14730DIS14740DIS14750DIS14760[DIS14770 JDIS14780JDIS14790DIS14800DIS14810DIS14820DIS14830DIS14840DIS14850DIS14860DIS14870DIS14880DIS14890DIS14900DIS14910DIS14920DIS14930DIS14940DIS14950DIS14960DIS14970DIS14980DIS14990DIS15000DIS15010DIS15020DIS15030DIS15040DIS15050DIS15060DIS15070DIS15080DIS15090DIS15100DIS15110DIS15120DIS15130DIS15140DIS15150DIS15160DIS15170DIS15180DIS15190DIS15200DIS15210DIS15220DIS15230DIS15240DIS15250
281
GAMMA(26)=GAMMA(26)*(1.0+INC)GO TO 360
END IFEND IF
IF (IPIT.EQ.l .AND. GAMMA(26) .GT. 10.0) GAMMA(26) = 10.0IF (IPIT.GT.l .AND. GAMMA(26) .LT.PG(26) ) GAMMA(26) = PG(26)
END IF
r
C Zinc speciesc
IF (EXELT(19) .GT. CPUMIN) THENM(158) - ALFA( 5) / (KT1(131) * GAMMA(158))M(159) = ALFA( 5)**2 / (KT1(132) * GAMMA(159))M(160) = ALFA( 5)**3 / (KT1(133) * GAMMA(IGO))M(161) = O.ODOOIF (DABS(KT1(134)) .GT. l.OD-30)
M(161) = ALFA( 5)**4 / (KT1(134) * GAMMA(161))M(162) = ALFA( 6) / (KT1(135) * GAMMA(162))M(244) = ALFA( 48) / (KT1(222) * GAMMA(244))M(245) = ALFA( 48)**2 / (KT1(126) * GAMMA(245))M(264) = ALFA(246) / (KT1(240) * GAMMA(264))M(280) = ALFA(265) / (KT1(255) * GAMMA(280))M(290) = ALFA(101)**2 / (KT1(262) * GAMMA(290))M(291) = ALFA(101)**3 / (KT1(263) * GAMMA(291))M(292) = ALFA( 7) / (KT1(264) * GAMMA(292))M(293) = ALFA( 9) / (KT1(265) * GAMMA(293))M(294) = ALFA( 9)**2 / (KT1(266) * GAMMA(294))M(295) = ALFA(lOl) * ALFA( 9) / (KT1(267) * GAMMA(295))M(MXSP+15) = ALFA(MXSP+ 1) / (KT1(MXAQK+14) * GAMMA (MXSP+15 ))M(MXSP+30) = ALFA(MXSP+16) / (KTl(MXAQK+28) * GAMMA (MXSP+30 ))
M(27) = EXELT(19) / (l.ODO + GAMMA(27) * (M(158) + M(159) +M(160) + M(161) + M(162) + M(244) + M(245) + M(264)M(280) + M(290) + M(291) + M(292) + M(293) + M(294)M(295) + M(MXSP+15) + M(MXSP+30)))
ALFA(27) - M(27) * GAMMA(27)
DO 380 I = 158, 162M(I) = M(I) * ALFA(27)ALFA(I) = M(I) * GAMMA(I)
380 CONTINUE
M(244) - M(244) * ALFA(27)ALFA(244) - M(244) * GAMMA(244)
M(245) = M(245) * ALFA(27)ALFA(245) - M(245) * GAMMA(245)
M(264) - M(264) * ALFA(27)ALFA(264) - M(264) * GAMMA(264)
M(280) - M(280) * ALFA(27)ALFA(280) - M(280) * GAMMA(280)
DO 390 1-290, 295
DIS15260DIS15270DIS15280DIS15290DIS15300DIS15310DIS15320DIS15330DIS15340
-|DIS15350|DIS15360|DIS15370DIS15380DIS15390DIS15400DIS15410DIS15420DIS15430DIS15440DIS15450DIS15460DIS15470DIS15480DIS15490DIS15500DIS15510DIS15520DIS15530DIS15540DIS15550DIS15560DIS15570DIS15580DIS15590DIS15600
+DIS15610+DIS15620DIS15630DIS15640DIS15650DIS15660DIS15670DIS15680DIS15690DIS15700DIS15710DIS15720DIS15730DIS15740DIS15750DIS15760DIS15770DIS15780DIS15790DIS15800DIS15810DIS15820DIS15830
282
390ALFA(I)
CONTINUE
M(I) * ALFA(27) M(I) * GAMMA(I)
M(MXSP+15) ALFA(MXSP+15)
M(MXSP+30) ALFA(MXSP+30)
END IF
M(MXSP+15) * ALFA(27)M(MXSP+15) * GAMMA(MXSP+15)
M(MXSP+30) * ALFA(27)M(MXSP+30) * GAMMA(MXSP+30)
Arsenic species
IF (EXELT(20) .GT. CPUMIN) THENM(49) = ALFA(8) / KT1(67) * GAMMA(49)
The following statement prevents a divide by zero error if the concentration or fe+2 is zero
IF (DABS(ALFA(18)) .GT. l.OD-30) M(50) = (ALFA(19) /ALFA(18))**2 * ALFA(IO) / KTl(136) * ALFA(8)**4 * GAMMA(50)
M(92) = KT1(8) / ALFA(8) * GAMMA(92)M(93) = ALFA(8) / (KT1(68) * GAMMA(93))M(94) = ALFA(8)**2 / (KT1(69) * GAMMA(94))M(95) = ALFA(8)**3 / (KT1(70) * GAMMA(95))
DO 400 I = 93, 95M(I) = M(I) * M(50) * GAMMA(50)
400 CONTINUE
M(28) = EXELT(20) / (l.ODO + GAMMA(28) * (M(49) + M(50) +M(92) + M(93) + M(94) + M(95)))
ALFA(28) = M(28) * GAMMA(28)
DO 410 I = 49, 50M(I) = M(I) * ALFA(28) ALFA(I) = M(I) * GAMMA(I)
410 CONTINUE
DO 420 I = 92, 95M(I) = M(I) * ALFA(28) ALFA(I) = M(I) * GAMMA(I)
420 CONTINUE END IF
Uranium species
IF (EXELT(27) .GT. CPUMIN) THENM(189) = ALFA(9) / (KT1(167) * GAMMA(189)) M(190) = ALFA(9)**2 / (KT1(168) * GAMMA(190)) M(191) - M(169) * GAMMA(169) * ALFA(9)**2 /
DIS15840 DIS15850 DIS15860 DIS15870 DIS15880 DIS15890 DIS15900 DIS15910 DIS15920 DIS15930 DIS15940 |DIS15950 |DIS15960 |DIS15970 DIS15980 DIS15990 DIS16000 DIS16010 DIS16020 DIS16030 DIS16040 DIS16050 DIS16060 DIS16070 DIS16080 DIS16090 DIS16100 DIS16110 DIS16120 DIS16130 DIS16140 DIS16150 DIS16160 DIS16170 DIS16180 DIS16190 DIS16200 DIS16210 DIS16220 DIS16230 DIS16240 DIS16250 DIS16260 DIS16270 DIS16280 DIS16290 DIS16300 DIS16310 DIS16320 DIS16330 [DIS16340 |DIS16350 [DIS16360 DIS16370 DIS16380 DIS16390 DIS16400 DIS16410
283
(KT1(169) * GAMMA(191)) M(192) - O.ODOO IF (DABS (KTl (170)) .GT. CPUMIN)
M(192) - M(169)**2 * GAMMA(169)**2 * ALFA(10)**5 /(ALFA(8)**5 * GAMMA(192) * KT1(170))
M(193) = O.ODOO IF (DABS (KTl (171)) .GT. CPUMIN)
M(193) = M(169)**2 * GAMMA(169)**2 * ALFA(10)**7 /(ALFA(8)**7 * GAMMA(193) * KT1(171»
M(194) = ALFA(6) / (KTl(172) * GAMMA(194)) M(195) - ALFA(6)**2 / (KT1(173) * GAMMA(195)) M(196) = ALFA(30) / (KTl(174) M(197) - ALFA(30)**2 / (KT1(175) M(198) = ALFA(30)**3 / (KT1(176) M(199) - 0.0 IF (DABS (KTl (177)) .GT. l.OD-30)
M(199) = ALFA(30)**4 / (KTl(177) * GAMMA(199)) M(200) = ALFA(5) / (KTl(178) * GAMMA(200)) M(201) = ALFA(ll) / (KT1(179) * GAMMA(201) * ALFA(8)) M(202) - ALFA(99) / (KT1(180) * GAMMA(202)) M(203) - ALFA(99)**2 / (KTl(181) * GA^1MA(203)) M(204) - ALFA(99) * ALFA(8) / (KT1(182) * GAMMA(204)) M(205) = ALFA(99)**2 * ALFA(8)**2 / (KT1(183) * GAMMA(205))
ALFA(8)**3 (KTl(185) (KT1(186) (KT1(187) (KT1(203) (KTl(204)
M(206) = ALFA(99)**3 M(207) - ALFA(98) M(208) = ALFA(98)**2 M(209) = ALFA(98)**3 M(242) = ALFA(48) M(243) = ALFA(48)**2
(KT1(184) * GAMMA(206)) GAMMA(207)) GAMMA(208)) GAMMA(209)) GAMMA(242))GAMMA(243))
If uo2 is to be calculated from eh then flags(5) =1, if from uo+2 + fe+2 - uo2+ + fe+3 then flags(5) - 0.
IF (EHM .LT. 9.0 .AND. FLAGS(5) .EQ. 1)Cl = 10.0**((-EHM * F - LOGKT1(143))M(168) = Cl / (GAMMA(169))
ELSE IF (EXELT(25) .LT. CPUMIN) THENM(168) = 0.0
ELSE IF (EXELT(13) .LT. CPUMIN) THENM(168) - 0.0
ELSE IF (FLAGS(5) .EQ. 0) THENM(168) - ALFA(18) / (KTl(205)
END IF
THEN / (2.303 * R * T))
ALFA(19) * GAMMA(168))
If u+4 is to be calculated from eh then flag(5) =1, if from uo2+ + fe+2 + 4h+ = u+4 + fe+3 +2 h2o then flag(5) = 0.
IF (EHM .LT. 9DO .AND. FLAGS(5) .EQ. I) THENCl = 1.0D1**((-EHM * F - (LOGKTi(142))) /
(2.303 * R * T)) + DLOG10(^LFA(10)**2 / ALFA(8)**4)M(167) = Cl / GAMMA(168)
ELSE IF (EXELT(25) .LT. CPUMIN .OR. EX^ELT(13) .LT. CPUMIN) THENM(167) = O.ODO
ELSE IF (FLAGS(5) .EQ. 0) THEN
DIS16420 DIS16430 DIS16440 DIS16450 DIS16460 DIS16470 DIS16480 DIS16490 DIS16500 DIS16510 DIS16520 DIS16530 DIS16540 DIS16550 DIS16560 DIS16570 DIS16580 DIS16590 DIS16600 DIS16610 DIS16620 DIS16630 DIS16640 DIS16650 DIS16660 DIS16670 DIS16680 DIS16690 DIS16700 DIS16710 [DIS16720 JDIS16730 JDIS16740 (DIS16750 DIS16760 DIS16770 DIS16780 DIS16790 DIS16800 DIS16810 DIS16820 DIS16830 DIS16840 DIS16850 DIS16860 DIS16870 [DIS16880 (DIS16890 |DIS16900 [DIS16910 DIS16920 DIS16930 DIS16940 DIS16950 DIS16960 DIS16970 DIS16980 DIS16990
284
430
M(167)
END IF(KT1(206)
ALFA(18) * ALFA(19)
* ALFA(8)**4 /* GAMMA(167) * ALFA(10)**2)
M(167) = M(167) * M(168) M(170) = ALFA(9) / M(171) = ALFA(9)**2 / M(172) = ALFA(10)**3 / M(173) = O.ODOO IF (DABS(KT1(151)) .GT.M(173) = ALFA(10)**4
M(174) = O.ODOO IF (DABS(KT1(152)) .GT.M(174) = ALFA(10)**5
M(175) = ALFA(30) / M(176) = ALFA(30)**2 / M(177) = O.ODOO IF (DABS(KTl(155)) .GT.M(177) = ALFA(30)**3
M(178) = O.ODOO IF (DABS(KT1(156)) .GT.M(178) = ALFA(30)**4
M(179) = O.ODOO IF (DABS(KT1(157)) .GT.M(179) = ALFA(30)**5
M(180) = O.ODOO IF (DABS(KT1(158)) .GT.M(180) = ALFA(30)**6
M(181) = ALFA(5) / M(182) = ALFA(99) / M(183) = ALFA(99)**2 / M(184) = ALFA(100)**3 / M(185) = O.ODOO IF (DABS(KT1(185)) .GT.M(185) = ALFA(100)**4
M(186) = ALFA(6) / M(187) = ALFA(6)**2 /
* GAMMA(168) (KT1(148) * GAMMA(170)) (KT1(149) * GAMMA(171)) (KT1(150) * GAMMA(172) * ALFA(8)**3)
1.OD-30) / * GAMMA(173) * ALFA(8)**4)
1.OD-30)/ (KT1(152) * GAMMA(174) (KT1(153) * GAMMA(175)) (KT1(154) * GAMMA(176))
* ALFA(8)**5)
1. OD-30) / (KT1(155)
1. OD-30) / (KT1(156)
1. OD-30) / (KT1(157)
GAMMA(177))
GAMMA(178))
GAMMA(179))
1.OD-30)/ (KT1(158) * GAMMA(180))(KT1(159) * GAMMA(181))(KT1(160) * GAMMA(182))(KT1(161) * GAMMA(183))(KT1(162) * GAMMA(184) * ALFA(8)**3)
1.OD-30)/ (KT1(163) * GAMMA(185) * ALFA(8)**4)(KT1(164) * GAMMA(186))(KT1(165) * GAMMA(187))
IF (ALFA(167) .GT. O.ODO) THENM(188) = ALFA(10)**12 * ALFA(9)**3 *
1.0D1**(DLOG10(ALFA(167)) * 5) / (KT1(166) * GAMMA(188) *1.0D1**(DLOG10(ALFA(8)) * 12))
END IF
DO 430 I = 170, 188M(I) = M(I) * M(167) * GAMMA(167)
CONTINUE
M(169) = M(167) M(168) M(173) + M(177) +
M(169) = M(169)
+M(185) + M(189) M(190) + 2 M(194) + M(198) + M(202) +
M(170) M(174) M(178) M(182) M(186)
0*M(191) M(195) M(199) M(203)
M(175) M(179) M(183) M(187)
3.0*M(192) M(196) M(200) M(204)
M(172) M(176) M(180) M(184)
6.0*M(188)
3.0*M(193) M(197) M(201) M(205)
DIS17000DIS17010DIS17020DIS17030DIS17040DIS17050DIS17060DIS17070DIS17080DIS17090DIS17100DIS17110DIS17120DIS17130DIS17140DIS17150DIS17160DIS17170DIS17180DIS17190DIS17200DIS17210DIS17220DIS17230DIS17240DIS17250DIS17260DIS17270DIS17280DIS17290DIS17300DIS17310DIS17320DIS17330DIS17340DIS17350DIS17360DIS17370DIS17380DIS17390DIS17400DIS17410DIS17420DIS17430DIS17440DIS17450DIS17460DIS17470DIS17480DIS17490DIS17500DIS17510DIS17520DIS17530DIS17540DIS17550DIS17560DIS17570
285
ccc
cccc
+ M(206) + M(207) + M(208) + M(209)+ M(242) + M(243)
M(169) = EXELT(27) / (l.ODO + GAMMA(169) * M(169))ALFA(169) = M(169) * GAMMA(169)
M(167) = M(167) * ALFA(169)ALFA(167) = M(167) * GAMMA(167)M(168) = M(168) * ALFA(169)ALFA(168) = M(168) * GAMMA(168)
DO 440 I = 170, 209M(I) = M(I) * ALFA(169)ALFA(I) = M(I) * GAMMA(I)
440 CONTINUE
M(242) = M(242) * ALFA(169)ALFA(242) = M(242) * GAMMA(242)M(243) = M(243) * ALFA(169)ALFA(243) = M(243) * GAMMA(243)
END IF
Vanadium species
IF (EXELT(28) .GT. CPUMIN) THENM(213) = ALFA(8) / (KT1(188) * GAMMA(213))M(214) = ALFA(8)**2 / (KT1(189) * GAMMA(214))M(215) = ALFA(8)**3 / (KT1(190) * GAMMA(215))M(216) = ((ALFA(8)**2 / KTl(191)) / GAMMA(216)) * ALFA(8)**2M(217) = ALFA(3) * ALFA(8) / (KT1(192) * GAMMA(217))M(218) = ALFA(30) / (KT1(193) * GAMMA(218))M(219) = ALFA(30)**2 / (KT1(194) * GAMMA(218))
If vo+2 is to be calculated from eh then flags (6) = 1 , iffrom vo4 -3 + 6h+ + fe+2 = vo+2 + 3h2o + fe+3 then flags (6) = 0.
IF (EHM .LT. 9.0 .AND. FLAGS (6) .EQ. 1) THENCl = 10.0**((EHM * F - LOGKT1(145) + DLOG10(ALFA(10)**3)
6.0 * DLOG10(ALFA(8))) / (2 . 303 * R * T) )M(211) = Cl / GAMMA(210)
ELSE IF (EXELT( 25 ).LT. CPUMIN .OR. EXELT ( 13 ). LT. CPUMIN) THENM(211) = O.ODO
ELSE IF (FLAGS(6) .EQ. 0 .AND. ALFA(18) .GT. CPUMIN) THENM(211) = 10.0**(DLOG10(ALFA(8)) * 6.0 + DLOG10(ALFA(18) /
ALFA(19))) / (KT1(208) * GAMMA(167) * ALFA(10)**3)ELSEM(211) = 0.0
END IF
M(223) = ALFA(9) / (KT1(198) * GAMMA(223))M(224) = ALFA(6) / (KT1(199) * GAMMA(224))M(225) = ALFA(5) / (KTl(200) * GAMMA(225))M(226) = ALFA(30) / (KTl(201) * GAMMA(226))M(227) = ALFA(30)**2 / (KTl(202) * GAMMA(227))
DIS17580DIS17590DIS17600DIS17610DIS17620DIS17630DIS17640DIS17650DIS17660DIS17670DIS17680DIS17690DIS17700DIS17710DIS17720DIS17730DIS17740DIS17750DIS17760DIS17770DIS17780[DIS17790|DIS17800|DIS17810DIS17820DIS17830DIS17840DIS17850DIS17860DIS17870DIS17880DIS17890DIS17900DIS17910(DIS17920(DIS17930|DIS17940|DIS17950DIS17960DIS17970-DIS17980DIS17990DIS18000DIS18010DIS18020DIS18030DIS18040DIS18050DIS18060DIS18070DIS18080DIS18090DIS18100DIS18110DIS18120DIS18130DIS18140DIS18150
286
cc
c
DO 450 I = 223, 227M(I) = M(I) * GAMMA(211) * M(211)
450 CONTINUE
If v+3 is to be calculated from eh then flag(6) = 1, if fromvo+2 + 2h+ + fe+2 = v+3 + h2o + fe+3 then flag(6) = 0.
IF (EHM .LT. 9.0 .AND. FLAGS (6) .EQ. 1) THENCl - 10.0** ((EHM * F * LOGKT1(144) + DLOG10(ALFA(10) ) -
2.0 * DLOG10(ALFA(8))) / (2.303 * R * T))M(212) = Cl / GAMMA(211)
ELSE IF (EXELT(25) .LT. CPUMIN) THENM(211) = 0.0
ELSE IF (EXELT(13) .LT. CPUMIN) THENM(220) - 0.0
ELSE IF (FLAGS(6) .EQ. 0) THENM(212) = ALFA(18) * ALFA(8)**2 / (KT1(207) * ALFA(19) *
GAMMA(167) * ALFA(IO))END IF
M(220) - ALFA(9) / (KT1(195) * GAMMA(220))M(221) = ALFA(9)**2 / (KT1(196) * GAMMA(221))M(222) = ALFA(9)**2 / (KT1(197) * GAMMA(222))
DO 460 I = 220, 222M(I) - M(I) * M(212) * GAMMA(212)
460 CONTINUE
Cl - O.ODO
DO 470 I = 211, 227Cl = Cl + M(I)
470 CONTINUE
M(210) - EXELT(28) / (1.0 + GAMMA(210) * Cl)ALFA(210) - M(210) * GAMMA(210)
DO 480 I = 211, 227M(I) = M(I) * ALFA(210)ALFA(I) - M(I) * GAMMA(I)
480 CONTINUEEND IF
Summation of anion species
S(l) - M(7) + 2.0*M(98) + 2.0*M(51) + M(52) +2.0*M(55) + M(56) + 2.0*M(114) + 2.0*M(120) +
M(121) + M(132) + 2.0*M(138) + M(139) +2.0*M(140) + 2.0*M(155) + M(156) + 2.0*M(207) +4.0*M(208) + 6.0*M(209) + 2.0*M(288) + M(292) +
M(MXSP+34) + 2.0*M(MXSP+39)
S(2) = M(6) + M(41) + 2.0*M(42) + M(47) +M(54) + M(61) + M(70) + M(78) +
DIS18160DIS18170DIS18180DIS18190
l r\TC 1 Bonn- - 1 LJlblOZUU
|DIS18210JDIS18220i r\T c i QO ir\- - 1 UloloZ jU
DIS18240DIS18250DIS18260DIS18270DIS18280DIS18290DIS18300DIS18310DIS18320DIS18330DIS18340DIS18350DIS18360DIS18370DIS18380DIS18390DIS18400DIS18410DIS18420DIS18430DIS18440DIS18450DIS18460DIS18470DIS18480DIS18490DIS18500DIS18510DIS18520DIS18530DIS18540DIS18550DIS18560DIS18570DIS18580DIS18590DIS18600
--JDIS18610 |DIS18620
--JDIS18630DIS18640DIS18650DIS18660DIS18670DIS18680DIS18690DIS18700DIS18710DIS18720DIS18730
287
S(3)
S(4)
S(5)
S(5)
S(6)
S(7)
S(8) -
S(9)
S(10)
M(83) 4M(115) 4M(133) 4M(157) 4M(194) 4
M(30) 44.0*M(37) 45.0*M(163) 43.0*M(177) 4
M(196) 4M(218) 4M(283) 4
M(29) 4M(73) 4M(117) 4M(134) 4
3.0*M(184) 4M(204) 4
M(5) 44.0*M(46) 4
M(65) 4M(71) 4
3.0*M(81) 43.0*M(107) 4S(5) 42.0*M(129) 4
M(148) 4M(153) 4
4.0*M(161) 4M(281) 4
M(48) 4M(231) 4M(235) 4
2.0*M(239) 42.0*M(243) 4
M(33) 43.0*M(111) 42.0*M(290) 4
M(246) 42.0*M(250) 4
M(254) 42.0*M(258) 4
M(262) 4
M(265) 42.0*M(269) 4
M(273) 4M(277) 4
2.0*M(84) 4M(116) 4M(141) 4M(162) 4
2.0*M(195) 4
M(34) 4M(96) 4
6.0*M(164) 44.0*M(178) 42.0*M(197) 42.0*M(219) 46.0*M(284) 4
M(58) 4M(74) 4M(125) 4M(143) 4
4.0*M(185) 42.0*M(205) 4
M(43) 4M(62) 4
2.0*M(66) 4- 2.0*M(72) 4- 4.0*M(82) 4- 4.0*M(108) 4
- 3.0*M(130) 4- 2.0*M(149) 4
M(158) 4M(181) 4
- 2.0*M(282) 4
M(228) 4M(232) 4M(236) 4
3.0*M(240) 4M(244) 4
M(101) 4M(145) 4
3.0*M(291) 4
M(247) 4M(251) 4M(255) 4
3.0*M(259) 4M(263) 4
M(266) 4M(270) 4M(274) 4M(278) 4
M(103) 4M(119) 4M(142) 4M(186) 4M(224) 4
2.0*M(35) 4M(}22) 4M(1.75) 4
5.0*M(179) 43.0*M(198) 4
M(2.26) 4
M(109) 4M(124) 4M(152) 4
2.0*M(187) 4M(MXSP433)
3.0*M(36) 4M(144) 4
2.0*M(176) 46.0*M(180) 44.0*M(199) 42.0*M(227) 4
M(^XSP437)
M(^9) 4M(99) 4M(126) 4M(182) 4M(202) 4
3.0*M(206) 4
2.0*M(44) 42.0*M(<J3) 43.0*M(^7) 4
M(7^9) 4M(105) 4M(113) 4
- 4.0*M(131) 4- 3.0*M(150) 4- 2.0*M(159) 4
M(200) 4
M(60) 4M(100) 4M(127) 4
2.0*M(183) 42.0*M(203) 4
M(MXSP436)
3.0*M(45) 43.0*M(64) 44.0*M(68) 4
- 2.0*M(80) 42.0*M(106) 4
M(128)
M(137) 4- 4.0*M(151) 4- 3.0*M(160) 4
M(225) 4M(MXSP432)
M(2!29) 4M(233) 4M(237) 4M(241) 4
2.0*M(245) 4
M(102) 42.0*M(286) 4
M(295)
M(248) 4M(252) 4M(256) 4M(260) 4M(264) 4
M(267) 4M(271) 4M(275) 4M(279) 4
M(230) 4 2.0*M(234) 4
M(238) 4M(242) 4M(MXSP+38)
4.0*M(110) 43.0*M(287) 4
M(249) 4M(253) 4M(257) 4M(261) 4M(MXSP441)
M(268) 4M(272) 4M(276) 4M(280) 4
M(MXSP442)
M(MXSP4 1)M(MXSP4 5)
4 M(MXSP4 2)4 M(MXSP4 6)
4 M(MXSP-h 3)4 M(MXSP4 7)
4 M(MXSP4 4) 44 M(MXSP4 8) 4
DIS18740 DIS18750 DIS18760 DIS18770 DIS18780 DIS18790 DIS18800 DIS18810 DIS18820 DIS18830 DIS18840 DIS18850 DIS18860 DIS18870 DIS18880 DIS18890 DIS18900 DIS18910 DIS18920 DIS18930 DIS18940 DIS18950 DIS18960 DIS18970 DIS18980 DIS18990 DIS19000 DIS19010 DIS19020 DIS19030 DIS19040 DIS19050 DIS19060 DIS19070 DIS19080 DIS19090 DIS19100 DIS19110 DIS19120 DIS19130 DIS19140 DIS19150 DIS19160 DIS19170 DIS19180 DIS19190 DIS19200 DIS19210 DIS19220 DIS19230 DIS19240 DIS19250 DIS19260 DIS19270 DIS19280 DIS19290 DIS19300 DIS19310
288
M(MXSP+ 9) + M(MXSP+10) + M(MXSP+11) + M(MXSP+12) + M(MXSP+13) + M(MXSP+14) + M(MXSP+15) + M(MXSP+43)
490
500
510
SC02 -
M(MXSP+16)M(MXSP+20)M(MXSP+24)M(MXSP+28)
M(7) +M(56) +M(120) +M(139) +M(207) +M(292) +
+ M(MXSP+17) ++ M(MXSP+21) ++ M(MXSP+25) ++ M(MXSP+29) +
M(51) +M(97) +M(121) +M(140) +
2.0*M(208) + 3M(MXSP+34)
M(MXSP+18) HM(MXSP+22) HM(MXSP+26) HM(MXSP+30) H
M(52) +M(98) +M(132) +M(155) +
.0*M(209) ++
h M(MXSP+19) +h M(MXSP+23) +h M(MXSP+27) +h M(MXSP+44)
M(55) +M(114) +M(138) +M(156) +M(288) +M(MXSP+39)
IF (ALK .EQ. 1) THEN ANALCO = EXELT(29)
ELSE IF (ALK .EQ. 0) THEN ANALCO - EXELT(29)
M(38) 3.0*M(50)
M(75) 0*M(86)
ANALCO -
2.2.0*M(90)
M(94) ANALCO
M(9) 2.0*M(39)
M(53) 2.0*M(76) 3.0*M(87)
M(91) 2.0*M(99)
M(28) - 4.0*M(40)
M(57) M(77)
- 4.0*M(88) - 2.0*M(92)
M(100)
- 3.0*M(29) M(48) M(69) M(85) M(89)
- 2.0*M(93)
2.0*M(102) - M(135) -
2.0*M(166) - 4.0*M(173) - 5 6.0*M(184) - 8 2.0*M(190) - 2
ANALCO - ANALCOM(201) - 2.
2.0*M(205) - 3. 2.0*M(214) - 2.0*M(221) - 3.
M(239) - 2. M(246) -
ANALCO - ANALCO2.0*M(265) -
M(293) - 2. ANALCO - ANALCO
3.0*M(MXSP+36) 2.0*M(MXSP+41)
1-229, 245 ANALCO -
M(103) -M(147) -M(170) - 2
,0*M(174) - 2,0*M(185) -15,0*M(191) - 5
DO 490ANALCO
CONTINUE
0*M(202) - 40*M(206) - 4M(215) - 3
0*M(222) -0*M(240) -M(250) -
M(266) - 0*M(294) - M(MXSP+34)
- M(MXSP+38)- M(MXSP+40)
M(154) ,0*M(171) ,0*M(182) ,0*M(188) ,0*M(192)
0*M(203)0*M(212)0*M(217)M(223)M(243)M(258)
M(123)M(165)
3.0*M(172)4.0*M(183)
M(189)7.0*M(193)
- 3M(204)
0*M(213) M(220) M(234) M(245)
2.0*M(259)
M(269) - M(289) - M(295)
M(MXSP+35) -- 2.0*M(MXSP+39) -- 2.0*M(MXSP+42)
DO 500 IANALCO
CONTINUE
DO 510 I ANALCO
CONTINUE ELSE
S(l) - SC02
249, 264 ANALCO -
268, 280 ANALCO -
DIS19320DIS19330DIS19340DIS19350DIS19360DIS19370DIS19380DIS19390DIS19400DIS19410DIS19420DIS19430DIS19440DIS19450DIS19460DIS19470DIS19480DIS19490DIS19500DIS19510DIS19520DIS19530DIS19540DIS19550DIS19560DIS19570DIS19580DIS19590DIS19600DIS19610DIS19620DIS19630DIS19640DIS19650DIS19660DIS19670DIS19680DIS19690DIS19700DIS19710DIS19720DIS19730DIS19740DIS19750DIS19760DIS19770DIS19780DIS19790DIS19800DIS19810DIS19820DIS19830DIS19840DIS19850DIS19860DIS19870DIS19880DIS19890
289
IF (ANMTIC .GT. O.ODO) THENANALCO = ANMTIC
ELSEANALCO - ANALM(7) + ANALM(98)
END IF END IF
IF ((DABS(HITEMP-TEMP)) .GT. l.OD-10) C02F = SC02
IF (ITIC .EQ. 2) THENS(l) - SC02ANALCO - C02F + DC02
END IF
Iteration test
DONE .TRUE.
IF (ANALCO .GT. CPUMIN) THEN X - (S(l) - ANALCO) / ANALCO CROSS = .FALSE.IF ((X * DIFF(l)) .LT. 0.0) CROSS - DIFF(l) - X IF (DABS(DIFF(1)) .GE. CONV1) DONE -
IF (DONE) THENFACTOR(l) -1.0
ELSE IF (ITER .GT. 7) THENX - ANALCO / S(l)CALL AITLIM (FACTOR(l), X, CROSS)
END IF X - FACTOR(l)
.TRUE.
.FALSE
IF (S(l) .GT. CPUMIN) THENTITR(l) - TITR(l) - (X * (1.0
ELSE / TITR(l) - ANALCOEND IF
END IF
IF (EXELT(6) .GE. CPUMIN) THEN X - (S(2) - EXELT(6)) / EXELT(6) CROSS - .FALSE.IF ((X * DIFF(2)) .LT. 0.0) CROSS DIFF(2) = X IF (DABS(DIFF(2)) .GE. CONV1) DONE
- (ANALCO / S(l))) * TITR(l))
.TRUE.
.FALSE.
IF (DONE) THENFACTOR(2) -1.0
ELSE IF (ITER .GT. 7) THENX = EXELT(6) / S(2)CALL AITLIM (FACTOR(2), X, CROSS)
END IFX = FACTOR(2) IF (S(2) .GT. CPUMIN) THEN
TITR(2) - TITR(2) - (X * (1.0 - (EXEL"(6) / S(2))) * TITR(2))
DIS19900 DIS19910 DIS19920 DIS19930 DIS19940 DIS19950 DIS19960 DIS19970 DIS19980 DIS19990 DIS20000 DIS20010 DIS20020 DIS20030 DIS20040 DIS20050 DIS20060 DIS20070 DIS20080 DIS20090 DIS20100 DIS20110 DIS20120 DIS20130 DIS20140 DIS20150 DIS20160 DIS20170 DIS20180 DIS20190 DIS20200 DIS20210 DIS20220 DIS20230 DIS20240 DIS20250 DIS20260 DIS20270 DIS20280 DIS20290 DIS20300 DIS20310 DIS20320 DIS20330 DIS20340 DIS20350 DIS20360 DIS20370 DIS20380 DIS20390 DIS20400 DIS20410 DIS20420 DIS20430 DIS20440 DIS20450 DIS20460 DIS20470
290
ELSETITR(2)
END IF END IF
EXELT(6)
IF (EXELT(22) .GE. CPUMIN) THENX - (S(3) - EXELT(22)) / EXELT(22)CROSS - .FALSE.IF ((X * DIFF(3)) .LT. 0.0) CROSS - .TRUE.DIFF(3) - XIF (DABS(DIFF(3)) .GE. CONV1) DONE - .FALSE.IF (DONE) THEN
FACTOR(3) -1.0 ELSE IF (ITER .GT. 7) THENX = EXELT(22) / S(3)CALL AITLIM (FACTOR(3), X, CROSS)
END IFX - FACTOR(3) IF (S(3) .GT. CPUMIN) THEN
TITR(3) - TITR(3) - (X * (1.0 - (EXELT(22) ELSE
TITR(3) - EXELT(22) END IF
END IF
IF (EXELT(21) .GE. CPUMIN) THENX - (S(4) - EXELT(21)) / EXELT(21)CROSS - .FALSE.IF ((X * DIFF(4)) .LT. 0.0) CROSS - .TRUE.DIFF(4) - XIF (DABS(DIFF(4)) .GE. CONV1) DONE - .FALSE.IF (DONE) THEN
FACTOR(4) -1.0 ELSE IF (ITER .GT. 7) THENX - EXELT(21) / S(4)CALL AITLIM (FACTOR(4), X, CROSS)
END IFX = FACTOR(4) IF (S(4) .GT. CPUMIN) THEN
TITR(4) = TITR(4) - (X * (1.0 - (EXELT(21) ELSE
TITR(4) = EXELT(21) END IF
END IF
IF (EXELT(5) .GE. CPUMIN) THEN X - (S(5) - EXELT(5)) / EXELT(5) CROSS - .FALSE. IF ((X * DIFF(5)) DIFF(5) = X IF (DABS(DIFF(5)) IF (DONE) THEN
FACTOR(5) -1.0 ELSE IF (ITER .GT
,LT. 0.0) CROSS - .TRUE.
,GE. CONV1) DONE - .FALSE,
7) THENX - EXELT(5) / S(5)CALL AITLIM (FACTOR(5), X, CROSS)
END IF X - FACTOR(5)
DIS20480 DIS20490 DIS20500 DIS20510 DIS20520 DIS20530 DIS20540 DIS20550 DIS20560 DIS20570 DIS20580 DIS20590 DIS20600 DIS20610 DIS20620 DIS20630 DIS20640 DIS20650 DIS20660
* TITR(3))DIS20670 DIS20680 DIS20690 DIS20700 DIS20710 DIS20720 DIS20730 DIS20740 DIS20750 DIS20760 DIS20770 DIS20780 DIS20790 DIS20800 DIS20810 DIS20820 DIS20830 DIS20840 DIS20850 DIS20860
* TITR(4))DIS20870 DIS20880 DIS20890 DIS20900 DIS20910 DIS20920 DIS20930 DIS20940 DIS20950 DIS20960 DIS20970 DIS20980 DIS20990 DIS21000 DIS21010 DIS21020 DIS21030 DIS21040 DIS21050
291
IF (S(5) .GT. CPUMIN) THENTITR(5) = TITR(5) - (X * (1.0 - (EXELT(5)
ELSETITR(5) = EXELT(5)
END IF END IF
IF (EXELT(26) .GE. CPUMIN) THEN X = (S(6) - EXELT(26)) / EXELT(26) CROSS = .FALSE. IF ((X * DIFF(6)) DIFF(6) = X IF (DABS(DIFF(6)) IF (DONE) THEN
FACTOR(6) =1.0 ELSE IF (ITER .GT,
.LT. 0.0) CROSS
.GE. CONV1) DONE
TRUE.
FALSE.
7) THENX = EXELT(26) / S(6)CALL AITLIM (FACTOR(6), X, CROSS)
END IFX = FACTOR(6) IF (S(6) .GT. CPUMIN) THENTITR(6) = TITR(6) - (X * (1.0 - (EXELT(26)
ELSETITR(6) = EXELT(26)
END IF END IF
LT. 0.0) CROSS
IF (EXELT(25) .GT. CPUMIN) THENX = (S(7) - EXELT(25)) / EXELT(25)CROSS = .FALSE.IF ((X * DIFF(7))DIFF(7) = XIF (DABS(DIFF(7))IF (DONE) THEN
FACTOR(7) =1.0 ELSE IF (ITER .GT
, TRUE.
,GE. CONV1) DONE = .FALSE.
7) THENX = EXELT(25) / S(7)CALL AITLIM (FACTOR(7), X, CROSS)
END IFX = FACTOR(7) IF (S(7) .GT. CPUMIN) THENTITR(7) - TITR(7) - (X * (1.0 - (EXELT(25)
ELSETITR(7) - EXELT(25)
END IF END IF
IF (EXELT(30) .GT. CPUMIN) THENX = (S(8) - EXELT(30)) / EXELT(30)CROSS = .FALSE.IF ((X * DIFF(8))DIFF(8) = XIF (DABS(DIFF(8))IF (DONE) THEN
FACTOR(8) =1.0 ELSE IF (ITER .GT. 7) THENX - EXELT(30) / S(8)CALL AITLIM (FACTOR(8), X, CROSS)
,LT. 0.0) CROSS = .TRUE.
,GE. CONV1) DONE = .FALSE,
DIS21060* TITR(5)) DIS21070
DIS21080 DIS21090 DIS21100 DIS21110 DIS21120 DIS21130 DIS21140 DIS21150 DIS21160 DIS21170 DIS21180 DIS21190 DIS21200 DIS21210 DIS21220 DIS21230 DIS21240 DIS21250 DIS21260
/ S(6))) * TITR(6))DIS21270DIS21280 DIS21290 DIS21300 DIS21310 DIS21320 DIS21330 DIS21340 DIS21350 DIS21360 DIS21370 DIS21380 DIS21390 DIS21400 DIS21410 DIS21420 DIS21430 DIS21440 DIS21450 DIS21460
/ S(7))) * TITR(7))DIS21470DIS21480 DIS21490 DIS21500 DIS21510 DIS21520 DIS21530 DIS21540 DIS21550 DIS21560 DIS21570 DIS21580 DIS21590 DIS21600 DIS21610 DIS21620 DIS21630
292
(1.0 - (EXELT(30) /
END IFX = FACTOR(8)IF (S(8) .GT. CPUMIN) THEN
TITR(8) = TITR(8) - (X * ELSE
TITR(8) = EXELT(30) END IF
END IF
IF (EXELT(31) .GT. CPUMIN) THENDIFF(9) = (S(9) - EXELT(31)) / EXELT(31)X = (S(9) - EXELT(31)) / EXELT(31)CROSS = .FALSE.IF ((X * DIFF(9))DIFF(9) = XIF (DABS(DIFF(9»IF (DONE) THEN
FACTOR(9) =1.0 ELSE IF (ITER .GT
LT. 0.0) CROSS TRUE.
,GE. CONV1) DONE = .FALSE.
7) THENX - EXELT(31) / S(9)CALL AITLIM (FACTOR(9), X, CROSS)
END IFX = FACTOR(9) IF (S(9) .GT. CPUMIN) THEN
TITR(9) = TITR(9) - (X * (1.0 - (EXELT(31) / ELSE
TITR(9) = EXELT(31) END IF
END IF
IF (EXELT(33) .GT. CPUMIN) THENX = (S(10) - EXELT(33)) / EXELT(33)CROSS - .FALSE.IF ((X * DIFF(IO)) .LT. 0.0) CROSS = .TRUE.DIFF(IO) = XIF (DABS(DIFF(10)) .GE. CONV1) DONE - .FALSE.IF (DONE) THEN
FACTOR(IO) =1.0 ELSE IF (ITER .GT. 7) THENX = EXELT(33) / S(10)CALL AITLIM (FACTOR(10), X, CROSS)
END IFX = FACTOR(10) IF (S(10) .GT. CPUMIN) THEN
TITR(IO) = TITR(IO) - (X * (1.0 - (EXELT(33) / S(10))) *TITR(IO))
ELSETITR(IO) = EXELT(33)
END IF END IF
IF (EXELT(34) .GT. CPUMIN) THEN
.TRUE.
.FALSE,
X = (S(ll) - EXELT(34)) / EXELT(34)CROSS = .FALSE.IF ((X * DIFF(ll)) .LT. 0.0) CROSSDIFF(ll) = XIF (DABS(DIFF(11)) .GE. CONV1) DONEIF (DONE) THEN
DIS21640 DIS21650 DIS21660
S(8))) * TITR(8))DIS21670 DIS21680 DIS21690 DIS21700 DIS21710 DIS21720 DIS21730 DIS21740 DIS21750 DIS21760 DIS21770 DIS21780 DIS21790 DIS21800 DIS21810 DIS21820 DIS21830 DIS21840 DIS21850 DIS21860 DIS21870
TITR(9))DIS21880 DIS21890 DIS21900 DIS21910 DIS21920 DIS21930 DIS21940 DIS21950 DIS21960 DIS21970 DIS21980 DIS21990 DIS22000 DIS22010 DIS22020 DIS22030 DIS22040 DIS22050 DIS22060 DIS22070 DIS22080 DIS22090 DIS22100 DIS22110 DIS22120 DIS22130 DIS22140 DIS22150 DIS22160 DIS22170 DIS22180 DIS22190 DIS22200 DIS22210
293
FACTOR(ll) -1.0 ELSE IF (ITER .GT. 7) THENX = EXELT(34) / S(ll)CALL AITLIM (FACTOR(ll), X, CROSS)
END IFX = FACTOR(ll) IF (S(ll) .GT. CPUMIN) THEN
TITR(ll) - TITR(ll) - (X * (1.0 - (EXELT(34) / S(ll))) *
ELSETITR(ll)
END IF END IF
TITR(ll))
EXELT(34)
IF (ITER .GE. 100) DONE = .TRUE.
IF (IPRIN1 .NE. 0) THENIF (ITER .EQ. 1 .OR. DONE .OR. MOD(ITER.IO) .EQ. 0) THEN
IF (IPGLN .GT. 57) THEN CALL PAGEWRITE (UNO, 1001) TITLE, TITMIX WRITE (UNO, 1002) TEMP WRITE (UNO, 1003) WRITE (UNO, 1004) CR IPGLN - IPGLN + 9
END IFWRITE (UNO, 1005) ITER, (DIFF(I) , 1=1,1JL) IPGLN = IPGLN + 1
END IF END IF
GO BACK OR QUIT
IF (.NOT. DONE) GO TO 30
IF (ITER .GE. 100) THEN IF (IPGLN .GT. 59) THENCALL PAGEWRITE (UNO, 1001) TITLE, TITMIXWRITE (UNO, 1002) TEMPIPGLN = IPGLN + 5
END IFWRITE (UNO,1006) IPGLN - IPGLN + 2
END IF
IF (IPRIN1 .NE. 0) THEN IF (IPGLN .GT. 57) THENCALL PAGEWRITE (UNO, 1001) TITLE, TITMIXWRITE (UNO, 1002) TEMPIPGLN - IPGLN + 5
END IFWRITE (UNO,1007) ITER, PH IPGLN - IPGLN + 2
END IF
DIS22220 DIS22230 DIS22240 DIS22250 DIS22260 DIS22270 DIS22280 DIS22290 DIS22300 DIS22310 DIS22320 DIS22330 DIS22340 DIS22350 DIS22360 DIS22370 DIS22380 DIS22390 DIS22400 DIS22410 DIS22420 DIS22430 DIS22440 DIS22450 DIS22460 DIS22470 DIS22480 DIS22490 DIS22500 DIS22510 DIS22520 DIS22530 DIS22540 DIS22550 DIS22560 DIS22570 DIS22580 DIS22590 DIS22600 DIS22610 DIS22620 DIS22630 DIS22640 DIS22650 DIS22660 DIS22670 DIS22680 DIS22690 DIS22700 DIS22710 DIS22720 DIS22730 DIS22740 DIS22750 DIS22760 DIS22770 DIS22780 DIS22790
294
HTOT - M(7) + M(8) + 4.0*M(11) + 2.0*M(28) +2.0*M(33) + 3.0*M(49) + M(52) + M(56) +
M(59) + 2.0*M(60) + M(73) + 3.0*M(74) +2.0*M(90) + 3.0*M(91) + M(92) + M(93) +2.0*M(94) + 3.0*M(95) + M(96) + 2.0*M(97) +
M(99) + 2.0*M(100) + M(101) + M(103) +M(104) + 4.0*M(110) + 3.0*M(111) + M(115) +M(117) + M(121) + M(126) + 2.0*M(127) +M(132) + M(134) + M(139) + M(143)
HTOT - HTOT +M(145) + M(156) + M(182) +
2.0*M(183) + 3.0*M(184) + 4.0*M(185) + M(202) +2.0*M(203) + 2.0*M(204) + 4.0*M(205) + 6.0*M(206) +
M(213) + 2.0*M(214) + 3.0*M(215) + 4.0*M(216) +M(217) + M(228) + M(247) + 2.0*M(248) +M(266) + 2.0*M(267) + 2.0*M(286) + 3.0*M(287) +
2.0*M(290) + 3.0*M(291) + M(292) + M(295) +M(MXSP+34) + M(MXSP+40)
OHTOT - M(9) + 3.0*M(31) + M(38) + 2.0*M(39) +4.0*M(40) + M(53) + M(57) + M(69) +
M(75) + 2.0*M(76) + M(77) + M(85) +2.0*M(86) + 3.0*M(87) + 4.0*M(88) + 4.0*M(89) +
M(118) + M(123) + M(135) + M(147) +M(154) + M(165) + 2.0*M(166) + M(170)
OHTOT - OHTOT +2.0*M(171) + 3.0*M(172) + 4.0*M(173) + 5.0*M(174) +
15.0*M(188) + M(189) + 2.0*M(190) + 2.0*M(191) +5.0*M(192) + 7.0*M(193) + M(220) + 2.0*M(221) +3.0*M(222) + M(223) + M(289) + M(293) +2.0*M(294) + M(295) + M(MXSP+35)
IF (PALFA(6) .GT. CPUMIN .AND. DABS(PALFA(6) -ALFA(6) ).GT. 1.0D-2*PALFA(6) .AND. IPIT .EQ. 1) THEN
ALFA(6) - PALFA(6)END IFIF (PALFA(l) .GT. CPUMIN .AND. DABS(PALFA(1) -ALFA(l) )
.GT. 1.0D-2*PALFA(1) .AND. IPIT .EQ. 1) THENALFA(l) - PALFA(l)
END IF
RETURN
1000 FORMAT (/, 2X, ' SOLMINEQ. 87 (VERSION: ',A14,') - SOLUTION -MINERAL- EQUILIBRIUM COMPUTATIONS' ,
/,A1,2X,77(' '),///)1001 FORMAT (' SAMPLE IDENT:- ' ,A80,/, 20X,A40)1002 FORMAT (//, 6X, ' ITERATIVE CONVERGENCE TEST AT TEMPERATURE =',F8.2)1003 FORMAT (//, IX, 'ITER', IX, 'CARBONATE', 3X, 'SULFATE', 4X,
'FLUORIDE', 2X, 'PHOSPHATE', 3X, 'CHLORIDE', 3X,'ACETATE', 4X, 'SULFIDE', 4X, 'OXYLATE', 3X,
'SUCCINATE', 2X, 'USR-DEF#1', IX, 'USR-DEF#2')1004 FORMAT (Al, ' ' , IX, 11(' ', IX))1005 FORMAT (IX, 13, 2X, IP, 11(E10.3, IX))1006 FORMAT (' *** NO CONVERGENCE IN 100 ITERATIONS DURING SPECIES',
' DISTRIBUTION ***' ,/,13X, 'RESULTS MAY BE IN ERROR')1007 FORMAT (/,6X, 'Total number of iterations = ',13,
DIS22800DIS22810DIS22820DIS22830DIS22840DIS22850DIS22860DIS22870DIS22880DIS22890DIS22900DIS22910DIS22920DIS22930DIS22940DIS22950DIS22960DIS22970DIS22980DIS22990DIS23000DIS23010DIS23020DIS23030DIS23040DIS23050DIS23060DIS23070DIS23080DIS23090DIS23100DIS23110DIS23120DIS23130DIS23140DIS23150DIS23160DIS23170DIS23180DIS23190DIS23200DIS23210DIS23220DIS23230DIS23240DIS23250DIS23260DIS23270DIS23280DIS23290DIS23300DIS23310DIS23320DIS23330DIS23340DIS23350DIS23360DIS23370
295
' at pH = ',F5.2)1008 FORMAT (/,6X,' *** ACT. OF S04 FROM PITZER ***',E12.5)1009 FORMAT (/,6X,' *** ACT. OF Ca FROM PITZER ***',E12.5)
END
DIS23380 DIS23390 DIS23400 DIS23410 DIS23420
cccccccccccccccccccccccc
SUBROUTINE DPVT (TC, TISA, PBAR, VDEN)
Routine dpvt calculates the vapor pressure and vapor densitygiven tc and the ionic strength of the solution.
ALPHA DBL Coefficient of thermal expansionAW DBL Activity of waterBETAG DBL Coefficient of compressibilityGG DBL Intermediate storage variableGLO DBL Initial gibbs free energy per moleGX DBL Gibbs free energy per moleI INT Loop variablePO DBL Saturation pressurePBAR DBL Pressure in barsPHI DBL Osmotic coefficientR DBL Gas constantRQ DBL Gas constant in cubic centimetersT DBL Temperature in kelvinTC DBL Temperature in celciusTISA DBL Sum of Molality * charge / 2VDEN DBL Vapor densityXG DBL DensityXS DBL Intermediate storage variableYP DBL Low temperature fit constantsZP DBL High temperature fit constants
INTEGER I
DOUBLE PRECISION ALPHA, AW, BETAG, GG, GLO, GXDOUBLE PRECISION PO, PBAR, PHI, R, RQDOUBLE PRECISION T, TC, TISA, VDENDOUBLE PRECISION XG, XS , YP(57) , ZP(57)
EXTERNAL NACALC, PSAT, WAPVT
INTRINSIC DABS, DEXP, DLOG
DATA YP /-71659.702, 2.3483335, -8 . 3668484D-5 ,2.4018168D-9, 624.88205, -5 . 3697119D-4,3.5126966D-7, 0., -110.74702,0.038900801, 2.6973456D-6, -6. 2746876D-10,-1.5267612D-5, 0., 516.99706,-5.9960300D6, -656.81518, , 24.879183,-2.1552731D-5, 5 .0166855D-8 , 0.,-4.4640952, 0.011087099, -6.4479761D-8 ,-2.3234032D-10, 0., -5 . 2194871D-6,2.4445210D-10, 2 . 8527066D-13 , -1.5696231,
DPV 0010=|DPV 0020|DPV 0030IDPV 0040
- IDPV 0050IDPV 0060|DPV 0070IDPV 0080|DPV 0090IDPV 0100IDPV 0110IDPV 0120IDPV 0130IDPV 0140IDPV oisoIDPV 0160IDPV 0170IDPV oisoJDPV 0190IDPV 0200IDPV 0210JDPV 0220IDPV 0230|DPV 0240IDPV 0250
- IDPV 0260 DPV 0270DPV 0280DPV 0290DPV 0300DPV 0310DPV 0320DPV 0330DPV 0340DPV 0350DPV 0360DPV 0370DPV 0380DPV 0390DPV 0400DPV 0410DPV 0420DPV 0430DPV 0440DPV 0450DPV 0460DPV 0470DPV 0480
296
2.2337864D-3,5.4151933,0.,1.4068095D-3,0.40743803,1.2609014D-4,-1.0731284D-10,0.,1.,
DATA ZP /- 71637. 375,-4.8099272D-9,3.4069074D-7,0.039494473,-1.5842012D-5,-5.9960301D6,5.3812753D-5,-4.4640952,1.7460070D-10,8.6340233D-10,2.2022821D-3,9.706578,-3.2153983D-9,1.4068095D-3,0.40217793,1.5317673D-4,8.6926600D-11,-0.091871455,1.,
-6.3933891D-7,o.,
119.31966,-4.2345814,-6.8152430D-6,6.2480692D-8,0.32136572,0.,1.,2.2209012,
624.68121,2.1962044D-11,-6.5313475D-7,3.2452006D-9,
-656.81518,-5.5887470D-8,0.011109914,1.0462619D-14,-4.1785962D-13,-1.3105503D-7,-2.6860396D-2,
119.31966,-4.2345814,2.2902837D-5,-9.0550901D-8,0.35310414,5.1904777D-4,1.,
4.5270573D-11, 0.,-0.48309327,-6.1084589,-0.075354649, 1.8994373D-8,-2.5382945D-4,1., I./-7.7991396D-5, 6.0159787D-4,
-110.74702,-6.4781894D-10,
516.99706, 24.86913, 6.5893263D-12,-2.6573399D-7,-5.3070129D-6,-1.579366,-6.3813683D-11, 1.5344744D-5,-0.48309327,-6.1084589,-0.075354649,-1.5386008D-8,-4.3314252D-4,1., I./
Nacalc calculates the osmotic coefficients of the nacl solution and the free energy of pure water at the saturation pressure of pure water and temperature.
IF (TC .LT. 65.1) THENCALL NACALC (TC, TISA, PBAR, PHI, YP, GLO)
ELSECALL NACALC (TC, TISA, PBAR, PHI, ZP, GLO)
END IF
Calculate water activity from phi.
AW = DEXP(-3.60304D-2 * PHI * TISA)
CALL PSAT (TC, PO)
R = 8.31424 RQ = 83.14699 T = TC + 273.15
Calculate an initial guess for the density of the vapor from the ideal gas law.
DPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPVDPV
| DPVDPV
| DPV| DPV| DPV| DPV| DPVDPVDPVDPVDPVDPVDPVDPV
| DPV| DPV| DPVDPVDPVDPVDPVDPVDPVDPVDPVDPV
| DPV| DPVI DPV
0490050005100520053005400550056005700580059006000610062006300640065006600670068006900700071007200730074007500760077007800790080008100820083008400850086008700880089009000910092009300940095009600970098009901000101010201030104010501060
297
L.
C
cCcc
cccccccc
XG - 18.0153 * PO / (RQ * T)
Calculate the free energy of the salt solution from the freeenergy of pure liquid water and the activity of water insolution.
GG - GW + (R * T) * DLOG(AW)
Use wapvt to calculate the vapor pressure and vapor density attc. wapvt is used iteratively along with a free energyadjustment of the vapor density until the vapor densityconverges. this requires that the free energy of the liquid and
' vapor are the same and that the equilibrium vapor pressure anddensity have been determined.
DO 10 I = 1, 100CALL WAPVT (TC, XG, PBAR, BETAG, GX, ALPHA)XS - XGXG - XG * DEXP((GG - GX) / (R * T))IF (DABS((XG-XS)/XS) .LT. l.OD-8) GO TO 20
10 CONTINUE
20 CONTINUEVDEN = XG
RETURNEND
| Uf V J.V / V
DPV 1080DPV 1090DPV 1100|DPV 1110IDPV 1120|DPV 1130IDPV 1140IDPV 1150DPV 1160DPV 1170DPV 1180IDPV 1190IDPV 1200IDPV 1210|DPV 1220|DPV 1230|DPV 1240|DPV 1250|DPV 1260DPV 1270DPV 1280DPV 1290DPV 1300DPV 1310DPV 1320DPV 1330DPV 1340DPV 1350DPV 1360DPV 1370DPV 1380DPV 1390
C
CCCCCCCCCCCCCCC
SUBROUTINE GASES (TC, PTOTAL, MNACLD, PH20, FCCSAT, I GAS , IMAX, IPRIN2)
Partitions gases between the oil, water, and gas phases
A DEL Temperary working variableANALM DBL Analyzed molality of species iB DBL Temperary working variableC DBL Temperary working variableCH4DIF DBL Difference in total CH4 . . . zero is rootCH4TRY DBL Next value of CH4 to tryC02DIF DBL Difference in total C02 . . . zero is rootC02TRY DBL Next value of C02 to tryCPUMIN DBL Smallest positive real value program usesD DBL Temperary working variableDCH4 DBL Concentration of CH4 lost before pH measurementDC02 DBL Concentration of C02 lost before pH measurementDH2S DBL Concentration of H2S lost before pH measurementDONE LOG Done?E DBL Temperary working variable
GAS 0010 GAS 0020
=|GAS 0030IGAS 0040
- 1 GAS 0050IGAS ooeoJGAS 0070JGAS 0080IGAS 0090IGAS 0100IGAS 0110IGAS 0120IGAS 0130JGAS 0140IGAS oisoJGAS 0160IGAS 0170JGAS oisoIGAS 0190IGAS 0200
298
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
EXELTFCCSATGH2SDIFH2STRYHTOTHTOTIII GASIMAXI PAGEIPGLNI PHASEIPRIN2JJC03KCH40LKCH4WKC020LKC02WKH2SOLKH2SWKHCH4KHC02KHH2SMMNACLDNMAXOHTOTOHTOTIORGCH4ORGC02ORGH2SORGT1PCH4WPC02WPH20PH2SWPTOTALROOTSC02STEPTCTCH4MTCH40TCH4VTCH4WTC02MTC020TC02VTC02WTESTTH2SMTH2SOTH2SVTH2SWTITRTK
DELDBLDBLDBLDBLDBLDBLINTINTINTINTINTINTINTDBLINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBL
Total amount of components |GAS 0210Zero Test value |GAS 0220Temperary working variable |GAS 0230Difference in total H2S ... zero is root JGAS 0240Next value of H2S to try |GAS 0250Current sum of all H+ in solution JGAS 0260Target sum of all H+ in solution |GAS 0270Loop counter GAS 0280Loop variable for gas option |GAS 0290 Max number of iterations for various options JGAS 0300Current page number of output file JGAS 0310Current line number of the output file JGAS 0320Switch used for GAS options JGAS 0330Print switch |GAS 0340Temperary working variable JGAS 0350Switch to control printing of some headings JGAS 0360Henry's law coefficient for CH4 in oil |GAS 0370Henry's law coefficient for CH4 in water |GAS 0380Henry's law coefficient for C02 in oil JGAS 0390Henry's law coefficient for C02 in water |GAS 0400Henry's law coefficient for H2S in oil |GAS 0410Henry's law coefficient for H2S in water |GAS 0420 Function to Calculate the Henry's law K for CH4 |GAS 0430 Function to Calculate the Henry's law K for C02 JGAS 0440 Function to Calculate the Henry's law K for H2S JGAS 0450Calculated molality of aqueous species JGAS 0460Sum of Molality * charge / 2 JGAS 0470 General array dimension to allow easy expansion |GAS 0480Total OH in system |GAS 0490initial total OH in system JGAS 0500Initial amount of CH4 in system JGAS 0510Initial amount of C02 in system JGAS 0520Initial amount of H2S in system JGAS 0530Original TOTEL(l) JGAS 0540Partial Pressure of Methane JGAS 0550Partial Pressure of Carbon Dioxide |GAS 0560Partial Pressure of Water |GAS 0570Partial Pressure of Hydrogen Sulphide JGAS 0580Total pressure on the system JGAS 0590Root of the equation |GAS 0600Sum of C02 species JGAS 0610Step adjustment for the moles of each gas JGAS 0620Temperature in deg C JGAS 0630 Moles CH4 distributed between oil, water, vapor JGAS 0640Moles CH4 in oil JGAS 0650Moles CH4 in vapor JGAS 0660Moles CH4 in water |GAS 0670 Moles C02 distributed between oil, water, vapor JGAS 0680Moles C02 in oil |GAS 0690Moles C02 in vapor |GAS 0700Moles C02 in water |GAS 0710 Insure sum of partitioned moles equal total moles|GAS 0720 Moles H2S distributed between oil, water, vapor JGAS 0730Moles H2S in oil JGAS 0740Moles H2S in vapor |GAS 0750Moles H2S in water |GAS 0760Iteration array in DISTRB, used for guesses JGAS 0770Temperature in deg K |GAS 0780
299
ccc
C _
TOTEL DBL Contains HTOT, OHTOT and Sum C02UNO INT File unit assigned for output fileWROIL DBL Oil to water weight ratio
INTEGER NMAX, UNODOUBLE PRECISION CPUMINPARAMETER (NMAX - 340, UNO = 6, CPUMIN = l.OD-35)
INTEGER I, IGAS, IMAX, IOPT, IPAGE, IPGLN, IPHASE, IPRIN2INTEGER PHHIT, PPHHIT, JC03
LOGICAL DONE
DOUBLE PRECISION A, ALFA ( NMAX ), ANALM(NMAX) , BDOUBLE PRECISION C, CH4DIF(3) , CH4TRY(3) , C02FDOUBLE PRECISION C02DIF(3) , C02TRY(3) , CUNITS(NMAX)DOUBLE PRECISION D, DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3DOUBLE PRECISION DCH4, DDCH4, E, EXELT(35) , FCCSAT, FIXIT, GDOUBLE PRECISION H2SDIF(3) , H2STRY(3) , HTOT, HTOT I , JDOUBLE PRECISION KHCH4, KHC02 , KHH2S, KCH40L, KC020L, KH2SOLDOUBLE PRECISION KCH4W, KC02W, KH2SWDOUBLE PRECISION M(NMAX) , MNACLD, OHTOT, OHTOTIDOUBLE PRECISION ORGCH4, ORGC02 , ORGH2S, ORGT1DOUBLE PRECISION PCH4W, PC02W, PH2SW, PH, PH20, DSEP, PTOTALDOUBLE PRECISION ROOT, SC02 , STEP(4)DOUBLE PRECISION TC, TCH4M, TC02M, TH2SMDOUBLE PRECISION TC020, TC02V, TC02WDOUBLE PRECISION TCH40, TCH4V, TCH4WDOUBLE PRECISION TH2SO, TH2SV, TH2SWDOUBLE PRECISION TEST, TITR(ll) , TK, TOTEL(5) , WROIL
EXTERNAL KHCH4, KHC02, KHH2S, POLY, PAGE
INTRINSIC DABS, DLOG10, DSIGN
COMMON /DIST / TC02M, TCH4M, TH2SM, WROIL, KCH40L, KC020L,KH2SOL, IPHASE, DSEP
COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FORM / IPAGE, IPGLNCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /TOTALS/ C02F, HTOTI , OHTOTICOMMON /ZPH / PHHIT, PPHHIT, JC03 , SC02 , HTOT, OHTOT
SAVE ORGT1, STEP, C02DIF, C02TRY, H2SDIF, H2STRY, CH4DIF, CH4TRYSAVE TC020, TC02V, TC02W, ORGC02 , PC02W, KC02WSAVE TCH40, TCH4V, TCH4W, ORGCH4, PCH4W, KCH4WSAVE TH2SO, TH2SV, TH2SW, ORGH2S, PH2SW, KH2SW
TK = TC + 273.15DOO
KC02W = KHC02 (TK, MNACLD)KH2SW = KHH2S (TK, MNACLD)
|GAS 0790JGAS 0800IGAS osioI f A c noon bAo UoZU
GAS 0830GAS 0840GAS 0850GAS 0860GAS 0870GAS 0880GAS 0890GAS 0900GAS 0910GAS 0920GAS 0930GAS 0940GAS 0950GAS 0960GAS 0970GAS 0980GAS 0990GAS 1000GAS 1010GAS 1020GAS 1030GAS 1040GAS 1050GAS 1060GAS 1070GAS 1080GAS 1090GAS 1100GAS 1110GAS 1120GAS 1130GAS 1140GAS 1150GAS 1160GAS 1170GAS 1180GAS 1190GAS 1200GAS 1210GAS 1220GAS 1230GAS 1240GAS 1250GAS 1260GAS 1270GAS 1280GAS 1290
=|GAS 1300 GAS 1310GAS 1320GAS 1330GAS 1340GAS 1350GAS 1360
300
10
20
IF (IGAS .EQ. 1) THEN HTOTI = HTOT OHTOTI = OHTOT ORGH2S = ANALM(33) ORGCH4 = ANALM(285) ORGC02 = SC02 ORGT1 = TOTEL(l) TC02M = TC02M + SC02 TCH4M = TCH4M + ANALM(285) TH2SM = TH2SM + ANALM(33) TC02W = ORGC02 TCH4W = ORGCH4 TH2SW = ORGH2S PCH4W -1.0 IF (TCH4M .GT. CPUMIN) THEN
DO 10 I - 1, 5KCH4W - KHCH4 (TK, MNACLD, PCH4W)PCH4W = TCH4M / ((WROIL / KCH40L) + (1.0 / KCH4W))IF (PCH4W .GT. PTOTAL) PCH4W = PTOTALIF (PCH4W .LT. 1.0) PCH4W -1.0
CONTINUE ELSEKCH4W = l.ODOOPCH4W = O.ODOO
END IFIF (TC02M .LT. CPUMIN) KC02W = l.ODOO IF (TH2SM .LT. CPUMIN) KH2SW = l.ODOO TCH40 TCH4W IF (TCH4W .LE.
CPUMIN) KC02W = CPUMIN) KH2SW -
WROIL * (PCH4W / KCH40L)TCH4M - TCH40
CPUMIN .AND. TCH4M .GT. CPUMIN) THENTCH4M / 2.ODOO TCH4W
TCH4WTCH40
ELSE IF (TCH4WTCH4W =0.0TCH40 =0.0
END IFM(285) = TCH4W DO 20 I = 1, 4
STEP(I) = 0.0 CONTINUE
END IF
PC02W = KC02W * M(97)PCH4W = KCH4W * M(285)PH2SW = KH2SW * M(33)
.LE. CPUMIN .AND. TCH4M .LE. CPUMIN) THEN
IF ((PH20 + PC02W + PCH4W + PH2SW) IPHASE = 2
WROIL * (PC02W / KC020L)WROIL * (PCH4W / KCH40L)WROIL * (PH2SW / KH2SOL)O.ODOOO.ODOOO.ODOO
LT. PTOTAL) THEN
TC020 TCH40 TH2SO TC02V TCH4V TH2SV
ELSEIPHASE = A - TC02M B = TCH4M
- SC02 + M(97)
GAS 1370 GAS 1380 GAS 1390 GAS 1400 GAS 1410 GAS 1420 GAS 1430 GAS 1440 GAS 1450 GAS 1460 GAS 1470 GAS 1480 GAS 1490 GAS 1500 GAS 1510 GAS 1520 GAS 1530 GAS 1540 GAS 1550 GAS 1560 GAS 1570 GAS 1580 GAS 1590 GAS 1600 GAS 1610 GAS 1620 GAS 1630 GAS 1640 GAS 1650 GAS 1660 GAS 1670 GAS 1680 GAS 1690 GAS 1700 GAS 1710 GAS 1720 GAS 1730 GAS 1740 GAS 1750 GAS 1760 GAS 1770 GAS 1780 GAS 1790 GAS 1800 GAS 1810 GAS 1820 GAS 1830 GAS 1840 GAS 1850 GAS 1860 GAS 1870 GAS 1880 GAS 1890 GAS 1900 GAS 1910 GAS 1920 GAS 1930 GAS 1940
301
C - TH2SM - ANALM(33) + M(33) E - PTOTAL - PH20 D - E * ((WROIL/KC020L) + G - E * ((WROIL/KCH40L) + J - E * ((WROIL/KH2SOL) + CALL POLY( A, B, C, E, D, D - D / E
(1.0DOO/KC02W)) (1.0DOO/KCH4W)) (1.0DOO/KH2SW)) G, J, ROOT)
G - G / EJ - J / EPC02W = A / (D + ROOT)PCH4W - B / (G + ROOT)PH2SW = C / (J + ROOT)
TC020 = WROIL * (PC02WTCH40 = WROIL * (PCH4WTH2SO - WROIL * (PH2SW
TC02V = PC02W * ROOTTCH4V - PCH4W * ROOTTH2SV - PH2SW * ROOT
A - PC02W / KC02WB - PCH4W / KCH4WC - PH2SW / KH2SW
/ KC020L)/ KCH40L)/ KH2SOL)
IF (A .GT. CPUMIN) THENTC020 = TC020 * M(97) / A TC02V = TC02V * M(97) / A
END IF
IF (B .GT. TCH40 - TCH4V =
END IF
CPUMIN) THEN TCH40 * M(285) / B TCH4V * M(285) / B
IF (C .GT. CPUMIN) THEN TH2SO = TH2SO * M(33) / TH2SV = TH2SV * M(33) /
END IF END IF
DONE .TRUE.
IF (TC02M .GT. CPUMIN) THENTEST - (TC020 + TC02V + SC02) / TC02MIF (TEST .LT.IF (IGAS .GT.DO 30 I = 1
CPUMIN) TEST = CPUMIN3 .AND. DABS(DLOGIO(TEST)) .GT. FCCSAT) THEN 2
C02TRY(I) = C02TRY(I+1) C02DIF(I) = C02DIF(I+1)
30 CONTINUEEND IFTEST = TEST - l.ODOOI = IGASIF (IGAS .GT. 3) I = 3C02TRY(I) - TC02WC02DIF(I) - TESTIF (IGAS .EQ. 1) THEN
GAS 1950 GAS 1960 GAS 1970 GAS 1980 GAS 1990 GAS 2000 GAS 2010 GAS 2020 GAS 2030 GAS 2040 GAS 2050 GAS 2060 GAS 2070 GAS 2080 GAS 2090 GAS 2100 GAS 2110 GAS 2120 GAS 2130 GAS 2140 GAS 2150 GAS 2160 GAS 2170 GAS 2180 GAS 2190 GAS 2200 GAS 2210 GAS 2220 GAS 2230 GAS 2240 GAS 2250 GAS 2260 GAS 2270 GAS 2280 GAS 2290 GAS 2300 GAS 2310 GAS 2320 GAS 2330 GAS 2340 GAS 2350 GAS 2360 GAS 2370 GAS 2380 GAS 2390 GAS 2400 GAS 2410 GAS 2420 GAS 2430 GAS 2440 GAS 2450 GAS 2460 GAS 2470 GAS 2480 GAS 2490 GAS 2500 GAS 2510 GAS 2520
302
40
IF (TEST .GT. -0.98) THENSTEP(l) - TC02W * ((1.0 / (TEST + 1.0)) - 1.0)
ELSESTEP(l) - TC02M / 3.0
END IFIF (DABS(STEP(1)) .LT. CPUMIN) STEP(l) - TC02M * l.OD-04
ELSEIF ((C02DIF(I) * C02DIF(I-1)) .LE. 0.0) THEN
STEP(l) - STEP(l) * (-0.40) END IFIF ((TC02W + STEP(l)) .LT. 0.0) STEP(l) - TC02W * (-0.90) IF ((TC02W + STEP(l)) .GT. TC02M)
STEP(l) - (TC02M - TC02W) * 0.90 END IFSTEP(l) - (-1.0) * DSIGN(STEP(1), TEST) TEST - TEST + l.ODOOIF (DABS(DLOGIO(TEST)) .GT. FCCSAT) THEN DONE - .FALSE. TC02W - TC02W + STEP(l)
END IF END IF
IF (TH2SM .GT. CPUMIN) THENTEST - (TH2SO + TH2SV + ANALM(33)) / TH2SM IF (TEST .LT. CPUMIN) TEST = CPUMIN
IF (IGAS .GT. 3 .AND. DABS(DLOG10(TEST)) .GT. FCCSAT) THEN DO 40 I = 1, 2H2STRY(I) - H2STRY(I+1) H2SDIF(I) - H2SDIF(I+1)
CONTINUE END IF
TEST - TEST - l.ODOO I - IGASIF (IGAS .GT. 3) 1-3 H2STRY(I) - TH2SW H2SDIF(I) - TEST
IF (IGAS .EQ. 1) THENIF (TEST .GT. -0.98) THEN
STEP(2) - TH2SW * ((1.0 / (TEST + 1.0)) - 1.0) ELSE
STEP(2) = TH2SM / 3.0 END IFIF (DABS(STEP(2)) .LT. CPUMIN) STEP(2) - TH2SM * l.OD-04
ELSEIF ((H2SDIF(I) * H2SDIF(I-1)) .LE. 0.0) THEN
STEP(2) = STEP(2) * (-0.40) END IFIF ((TH2SW + STEP(2)) .LT. 0.0) STEP(2) = TH2SW * (-0.90) IF ((TH2SW + STEP(2)) .GT. TH2SM)
STEP(2) = (TH2SM - TH2SW) * 0.90 END IF
STEP(2) - (-1.0) * DSIGN(STEP(2), TEST) TEST - TEST + l.ODOO
GAS 2530 GAS 2540 GAS 2550 GAS 2560 GAS 2570 GAS 2580 GAS 2590 GAS 2600 GAS 2610 GAS 2620 GAS 2630 GAS 2640 GAS 2650 GAS 2660 GAS 2670 GAS 2680 GAS 2690 GAS 2700 GAS 2710 GAS 2720 GAS 2730 GAS 2740 GAS 2750 GAS 2760 GAS 2770 GAS 2780 GAS 2790 GAS 2800 GAS 2810 GAS 2820 GAS 2830 GAS 2840 GAS 2850 GAS 2860 GAS 2870 GAS 2880 GAS 2890 GAS 2900 GAS 2910 GAS 2920 GAS 2930 GAS 2940 GAS 2950 GAS 2960 GAS 2970 GAS 2980 GAS 2990 GAS 3000 GAS 3010 GAS 3020 GAS 3030 GAS 3040 GAS 3050 GAS 3060 GAS 3070 GAS 3080 GAS 3090 GAS 3100
303
IF (DABS(DLOGIO(TEST)) .GT. FCCSAT) THENDONE = .FALSE.TH2SW = TH2SW + STEP(2)
END IF END IF
IF (TCH4M .GT. CPUMIN) THENTEST = (TCH40 + TCH4V + ANALM(285)) / IF (TEST .LT. CPUMIN) TEST = CPUMIN
CH4M
IF (IGAS .GT. 3 .AND. DABS(DLOGIO(TEST)) .GT. FCCSAT) THEN DO 50 I = 1, 2
CH4TRY(I) = CH4TRY(I+1) CH4DIF(I) - CH4DIF(I+1)
50 CONTINUE END IF
TEST - TEST - l.ODOO I = IGASIF (IGAS .GT. 3) 1=3 CH4TRY(I) = TCH4W CH4DIF(I) = TEST
IF (IGAS .EQ. 1) THENIF (TEST .GT. -0.98) THEN
STEP(3) - TCH4W * ((1.0 / (TEST + 1.0)) - 1.0) ELSE
STEP(3) = TCH4M / 3.0 END IFIF (DABS(STEP(3)) .LT. CPUMIN) STEP(3) - TCH4M * l.OD-04
ELSEIF ((CH4DIF(I) * CH4DIF(I-1)) .LE. 0.0) THEN
STEP(3) = STEP(3) * (-0.40) END IFIF ((TCH4W + STEP(3)) .LT. 0.0) STEP(3) = TCH4W * (-0.90) IF ((TCH4W + STEP(3)) .GT. TCH4M)
STEP(3) = (TCH4M - TCH4W) * 0.90 END IFSTEP(3) = (-1.0) * DSIGN(STEP(3), TEST) TEST = TEST + l.ODOOIF (DABS(DLOGIO(TEST)) .GT. FCCSAT) THEN DONE = .FALSE. TCH4W - TCH4W + STEP(3)
END IF END IF
IF (DONE .OR. IGAS .EQ. IMAX) THEN IPHASE = 0 CALL PAGE IPGLN = IPGLN + 6 WRITE (UNO,1000) IPGLN = IPGLN + 3WRITE (UNO, 1010) SC02, TC020, TC02V, T^02M, PC02W WRITE (UNO, 1020) TCH4W, TCH40, TCH4V, TCH4M, PCH4W WRITE (UNO, 1030) TH2SW, TH2SO, TH2SV, TH2SM, PH2SW IPGLN = IPGLN + 9WRITE (UNO, 1040) KC02W, KC020L, KCH4W, KCH40L, KH2SW, KH2SOL IPGLN = IPGLN + 3
GAS 3110 GAS 3120 GAS 3130 GAS 3140 GAS 3150 GAS 3160 GAS 3170 GAS 3180 GAS 3190 GAS 3200 GAS 3210 GAS 3220 GAS 3230 GAS 3240 GAS 3250 GAS 3260 GAS 3270 GAS 3280 GAS 3290 GAS 3300 GAS 3310 GAS 3320 GAS 3330 GAS 3340 GAS 3350 GAS 3360 GAS 3370 GAS 3380 GAS 3390 GAS 3400 GAS 3410 GAS 3420 GAS 3430 GAS 3440 GAS 3450 GAS 3460 GAS 3470 GAS 3480 GAS 3490 GAS 3500 GAS 3510 GAS 3520 GAS 3530 GAS 3540 GAS 3550 GAS 3560 GAS 3570 GAS 3580 GAS 3590 GAS 3600 GAS 3610 GAS 3620 GAS 3630 GAS 3640 GAS 3650 GAS 3660 GAS 3670 GAS 3680
304
WRITE (UNO, 1050) WROIL, FCCSATDC02 =0.0DH2S =0.0DCH4 =0.0
ELSETOTEL(3) = TC02WHTOTI = ORGT1
DC02 = TC02W - ORGC02EXELT(29) = TC02WTITR(l) = TC02WANALM(7) = TC02WANALM(98) =0.0
DH2S = TH2SW - ORGH2SEXELT(25) = TH2SWTITR(7) = TH2SWANALM(33) = TH2SW
DCH4 = TCH4W - ORGCH4ANALM(285) = TCH4WM(285) = TCH4W
IF (IPRIN2 .EQ. 0) RETURNIF (IGAS .EQ. 1 .OR. IPGLN .GT. 45) CALL PAGEIPGLN = IPGLN + 7WRITE (UNO, 1060)IPGLN = IPGLN + 4I = IGASIF (IGAS .GT. 3) 1=3WRITE (UNO, 1010) C02TRY(I), TC020, TC02V, TC02M, PC02W, TC02WWRITE (UNO, 1020) CH4TRY(I) , TCH40, TCH4V, TCH4M, PCH4W, TCH4WWRITE (UNO, 1030) H2STRY(I) , TH2SO, TH2SV, TH2SM, PH2SW, TH2SW
END IFRETURN
1000 FORMAT( //, ' ************ COMPOSITION OF CO-EXISTING GAS,',' OIL, AND WATER ********* ',
//,19X, 'Total Moles in' , 12X, ' Sum in Water, ' , 3X, 'Pressure' ,/,10X, 'Water' ,8X, 'Oil' ,10X, 'Gas',7X,'Oil and Gas ', 5X, ' (bars) ',/, 5X, 65( '='))
1010 FORMATC C02 ' , 6(E12 . 5 , IX) )1020 FORMATC CH4 ' , 6(E12 . 5 , IX) )1030 FORMATC H2S ' , 6 (E12 . 5 , IX) )1040 FORMAT(///,' HENRY LAW CONSTANTS used for',
' Calculations',//,' K(C02/H20) = ' ,E12.5,7X, 'K(C02/OIL) =',E12.5,/,' K(CH4/H20) = ' ,E12.5,7X, 'K(CH4/OIL) =',E12.5,/,' K(H2S/H20) = ' > E12.5,7X,'K(H2S/OIL) =',E12.5,/)
1050 FORMAT(/, ' Oil to Water ratio (WROIL) = '.E12.5,/, ' Convergence Factor (FCCSAT) = '.E12.5)
1060 FORMAT( //, ' ********** COMPOSITION OF CO-EXISTING GAS,',' OIL, AND WATER ********** ' ,
/,' **************CALCULATED PRE-STEP VALUES',' ***************************** >
//,19X, 'Total Moles in',12X,'Sum in Water, ',3X,'Pressure' ,3X, 'Next Guess for',
/,10X, 'Water' ,8X, 'Oil' ,10X, 'Gas' ,
GAS 3690GAS 3700GAS 3710GAS 3720GAS 3730GAS 3740GAS 3750GAS 3760GAS 3770GAS 3780GAS 3790GAS 3800GAS 3810GAS 3820GAS 3830GAS 3840GAS 3850GAS 3860GAS 3870GAS 3880GAS 3890GAS 3900GAS 3910GAS 3920GAS 3930GAS 3940GAS 3950GAS 3960GAS 3970GAS 3980GAS 3990GAS 4000GAS 4010GAS 4020GAS 4030GAS 4040GAS 4050GAS 4060GAS 4070GAS 4080GAS 4090GAS 4100GAS 4110GAS 4120GAS 4130GAS 4140GAS 4150GAS 4160GAS 4170GAS 4180GAS 4190GAS 4200GAS 4210GAS 4220GAS 4230GAS 4240GAS 4250GAS 4260
305
7X,'Oil and Gas' ,5X, '(bars)' ,4X, 'Moles in Water' , GAS 4270
/">
CCCc - - -ccccc
C __ _
/,5X,65('='))END
INTEGER FUNCTION GETUNT (NAME)I
L
GAS 4280GAS 4290
GET 0010
This function determines if a file is opened and return the unit (GET 0030it is opened under. If the file is not opened it will open the (GET 0040the file and return the unit it was opened under (GET 0050
BASE INT Starting choice for fileNAME CHA Name of file
1 /**VT* f\f\£.f\
unit |GET 0070(GET ooso
OPEN LOG Determines if file opened under name (GET 0090UNTNUM INT File unit number IGET 0100YES LOG Determines if file opened under unit (GET 0110
INTEGER BASE, UNTNUMLOGICAL OPEN, YESCHARACTER * 80 NAME
BASE - 40
1 ^f T^ /"M O f\________________________| Gh/T U12U
GET 0130GET 0140GET 0150GET 0160
- _= = 1 PT?T O1 7O
GET 0180GET 0190
INQUIRE (FILE = NAME, NUMBER - UNTNUM, OPENED = OPEN) GET 0200
10IF (.NOT. OPEN) THEN
INQUIRE (UNIT - BASE, OPENED = YES)IF (YES) THENBASE - BASE + 1GO TO 10
END IF
GET 0210GET 0220GET 0230GET 0240GET 0250GET 0260GET 0270
OPEN (BASE, FILE = NAME, STATUS = 'UNKNOWN') GET 0280
CCCCCCCC
GETUNT = BASEELSEGETUNT = UNTNUM
END IF
RETURNEND
SUBROUTINE GUESS (XX, FXX, NEWX, NPTS)
GET 0290GET 0300GET 0310GET 0320GET 0330GET 0340GET 0350
CUE 0010i sfi -m r\f\nn_J_ u._.^__f. ===.,==:= == ̂ ^n--»l i =s«== = = = =_= =_ | ^UE| \J\J£\J
Calculate the value of X where FUN(X) - 0 JGUE 0030
Input values ... X - NPTS values of X
FX - NPTS values of FUN(from lowest to
NPTS - number of X, FUN(X)
|GUE 0040IGUE oosoIGUE ooeo
X). MUST be ordered JGUE 0070highest. IGUE 0080pairs JGUE 0090
IGUE 0100
306
cccccc
ccccccccccccccccc
c
cc
Returned values . . ,NEWX - "Guessed" value of X where FUN(X) is zero
Uses method of Lagrangian interpolation. Note that we solveusing FX as the x variable, and X as the Y variable, and theninterpolate for a value of FX - 0.0
A DEL Intermediate calculationB DEL Intermediate calculationFX DEL Local storage of FXXFXX DEL Values of the function of XI INT Loop variableIHIGH INT Pointer to value just above rootILOW INT Pointer to value just below the rootJ INT Loop variableJHIGH INT Pointer to value just above the rootJLOW INT Pointer to value just below the rootNEWX DBL New value of x where f (x) = 0NPTS INT Number of pointsSTART INT Restricts the range of points looked atSTOP INT Restricts the range of points looked atX DBL Local storage of XXXX DBL Ordinate values
INTEGER NPTS, I, J, START, STOP, IHIGH, JHIGH, ILOW, JLOW
DOUBLE PRECISION XX(*) , FXX(*) , NEWX, A, BDOUBLE PRECISION X(30) , FX(30)
INTRINSIC DABS
START = 1STOP = NPTS
DO 10 I = START, STOPX(I) = XX(I)FX(I) - FXX(I)
10 CONTINUE
50 CONTINUENEWX =0.0DO 200 I - START, STOPA - l.ODOOB - l.ODOODO 100 J - START, STOP
IF (J .NE. I) THENA = A * (FX(I) - FX(J))B = B * (-l.ODOO) * FX(J)
END IF100 CONTINUE
NEWX = NEWX + (X(I) * B / A)200 CONTINUE
Check for a "fish hook" function. . .ie: new value of X must be
307
|GUE 0110IGUE 0120IGUE 0130JGUE 0140IGUE oisoJGUE 0160
--JGUE 0170IGUE oisoIGUE 0190JGUE 0200IGUE 0210IGUE 0220JGUE 0230JGUE 0240IGUE 0250IGUE 0260IGUE 0270JGUE 0280IGUE 0290IGUE 0300IGUE 0310|GUE 0320JGUE 0330
--IGUE 0340CUE 0350CUE 0360CUE 0370CUE 0380CUE 0390CUE 0400CUE 0410CUE 0420
" | CUE 0430CUE 0440CUE 0450CUE 0460CUE 0470CUE 0480CUE 0490CUE 0500CUE 0510CUE 0520CUE 0530CUE 0540CUE 0550CUE 0560CUE 0570CUE 0580CUE 0590CUE 0600CUE 0610CUE 0620CUE 0630CUE 0640CUE 0650CUE 0660
-- IGUE 0670 IGUE oeso
C between previous bounding values. If not, recalculate using C one less order polynomial than present try.r - _- ___ ________ _________ ___
IHIGH - STOPILOW - STARTJHIGH - STOPJLOW - START
DO 300 I - START+1, STOPIF (FX(I) .LT. 0.0) THEN
IF (DABS(X(IHIGH) - X(ILOW)) .GT. o4BS(X(IHIGH) - X(I)))ILOW - I
IF (DABS (X( JHIGH) - X(JLOW)) .LT. DABS (X( JHIGH) - X(I)))JLOW = I
ELSEIF (DABS (X( IHIGH) - X(ILOW)) .GT. DAIBS(X(I) - X(ILOW)))
IHIGH - IIF (DABS (X( JHIGH) - X(JLOW)) .LT. DABS(X(I) - X(JLOW) ) )JHIGH - I
END IF300 CONTINUE
IF ((NEWX .LT. X(ILOW) .AND. NEWX .LT. X( IHIGH)) .OR.(NEWX .GT. X(ILOW) .AND. NEWX .GT. X( IHIGH))) THEN
IF (DABS (X( JHIGH) -X(IHIGH) ) .GT. DABS (X(JLOW) -X( ILOW))) THENJ = JHIGH
ELSEJ - JLOW
END IFIF (J .LT. STOP) THEN
DO 400 I - J, (STOP-1)X(I) - X(I+1)FX(I) - FX(I+1)
400 CONTINUEEND IFSTOP - STOP - 1GO TO 50
END IF
RETURNEND
|GUE 0690IGUE 0700
--JGUE 0710CUE 0720CUE 0730CUE 0740CUE 0750CUE 0760CUE 0770CUE 0780CUE 0790CUE 0800CUE 0810CUE 0820CUE 0830CUE 0840CUE 0850CUE 0860CUE 0870CUE 0880CUE 0890CUE 0900CUE 0910CUE 0920CUE 0930CUE 0940CUE 0950CUE 0960CUE 0970CUE 0980CUE 0990CUE 1000CUE 1010CUE 1020CUE 1030CUE 1040CUE 1050CUE 1060CUE 1070CUE 1080CUE 1090CUE 1100
r>
CrCCCCCC
SUBROUTINE INPUT (UNI , TEMP, HITEMP, DNS , PHHIT, IEXCH, IC02 ,MIXFLG)
'
This routine reads in one set of data at a time. |
ACTUAL INT Calculated index value |ADEX INT Flag for surface chemistry option |ALK INT Flag for distribution of carbonate speciesAMOL DBL Molality of aqueous/mineral species added |ANALM DBL Analyzed molality of species i |ANS CHA Determines if ion exchange or adsorption |
INP 0010INP 0020
I INP 0030|INP 0040IINP 0050I INP 0060IINP 0070|INP 0080IINP 0090IINP 0100IINP 0110
308
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCC
ANSIANS2AVOGCECCOEFCONV1CONV2CPUMINCUNITSDCH4DDCH4DC02DDC02DH2SDDH2SDNH3DDNH3DENSDFRAC1DHADINGDNADNSDPDSEPEHMEHMCEMFZSCFBOILFCCSATFIXITFLAGSGEOTHGFWHIGHKTHITEMPIIBMIXI CCS ATIC02IDDPIDMIXIDNIDSATIEXCHILPILQ ILRIMC03INDEXINFORMINMIXINSPIOPTI PAGEIPGLNI PHASEIPIT
INTINTDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELCHADELDELDELDELDELDELDELDELINTINTDELDELDELINTINTINTINTINTINTINTINTINTINTINT INTINTINTINTINTINTINTINTINTINTINT
Number of complexes for added anion #1 |INP 0120Number of complexes for added anion #2 jINP 0130Avogadro's number jINP 0140Cation exchange capacity |INP 0150Stoichiometric coefficient and ID number |INP 0160Tolerance factor for convergence of anions |INP 0170Tolerance factor for hydronium mass-balance jINP 0180Smallest positive real value program uses jINP 0190Analytical input concentration jINP 0200Concentration of CH4 lost up annulas jINP 0210Concentration of CH4 lost before pH measurement jINP 0220Concentration of C02 lost up annulas |INP 0230Concentration of C02 lost before pH measurement jINP 0240Concentration of H2S lost up annulas |INP 0250Concentration of H2S lost before pH measurement jINP 0260Concentration of NH3 lost up annulas |INP 0270Concentration of NH3 lost before pH measurement jINP 0280Density IINP 0290Smallest fraction of soln 1 mixed with soln 2 jINP 0300Ion size parameter jINP 0310Increment of solution 1 to be added jINP 0320Temporary ion size parameter for added ions |INP 0330Determines if density should be calculated jINP 0340Dissolution/precipitation switch jINP 0350Density of oil at 15 degree C jINP 0360Measured Eh in volts |INP 0370Measured Eh using the Calomel electrode jINP 0380Measured Eh using the Zobell's solution jINP 0390Fraction of solution boiled-off as steam |INP 0400Tolerance factor for pH and C02 options jINP 0410Fixing value in the C02 option |INP 0420Selection flags for calculation of redox equil. |INP 0430Flag to select geothermometer jINP 0440Gram formula weight of aqueous species |INP 0450K(T) at temp 2 for added options jINP 0460In-situ temperature jINP 0470Loop counting variable jINP 0480Switch for mixing option jINP 0490Switch for pH option jINP 0500Switch for C02 option |INP 0510Id number of the mineral to be dissolved/ppt jINP 0520Id number of the aqueous species to be added jINP 0530Id numbers of the ISCOMP components adsorption jINP 0540Id number of the mineral to be equilibrated jINP 0550Switch for exchange option jj INP 0560Index list of the analytical species jINP 0570Index list of the complexing cations jINP 0580Index list of the complexing anions jINP 0590Selects C02 option jj INP 0600Reference index for added ions jINP 0610Flag to print all the log K values in data base jINP 0620Total number of mixtures of two solution mixed jINP 0630Total number of surface sites for adsorption jINP 0640Switch for co2/h option |INP 0650Current page number of output file jINP 0660Current line number of the output file jINP 0670Switch for oil/water/gas calculations jINP 0680Flag to use pitzer activity coefficients jINP 0690
309
ccccccccccccccccccccccccccccccccccccccccccccccccccccccc
-
IPRIN1IPRIN2IRXDPISCHGISCOMPmeITMIXITTJKCH40LKC020LKH2SOLKRXNLINELOWKTMBASEMINCOMININDMINLOGMXMNKMXSPNAMENDUMNMAXNOSENUFLAGNUMCOMNUMINSODUMOKOUTINPAGE1PAGE3PHPHHITPRESSRATIORXDPSAREASPNTAREATCH4MTC02MTEMPTH2SMTICTITLETOFUNIUNITSUNOWROILXDXDUMZ
INTEGER
INTINTINTINTINTINTINTINTINTDBLDBLDBLDBLINTDBLDBLDBLINTDBLINTINTCHAINTINTINTINTINTINTCHAINTCHACHACHADBLINTDBLINTDBLDBLCHADBLDBLDBLDBLDBLDBLCHACHAINTCHAINTDBLDBLDBLINT
NMAX,
Flag for printing iteration of anionsFlag for printing hydronium balanceId number of the aqueous species to be addedCharge of each surface site for adsorptionTotal number of components in dissociationHitemp distribution of carbonate speciesSwitch for the mineral saturation optionNumber of aqueous species to add/sub with waterLoop counting variableHenry's law coefficient! for CH4 in oilHenry's law coefficient for C02 in oilHenry's law coefficient for H2S in oilK for dissociation reaction of surface speciesLine count used for error locationLog K(T) at temp 1 for added optionsEquivalence Mole Fraction (initial) on surfaceStoichiometric coefficient for added mineralsIndex number of the addjed mineralLog K values for added mineralsTotal number of mineral log k valuesTotal number of aqueous speciesName of each complex formed by associationId of mineral/aqueous complex with K(T) changedGeneral array dimension to allow easy expansionNumber of species in the equation
|INP 0700|INP 0710JINP 0720JINP 0730|INP 0740|INP 0750JINP 0760JINP 0770JINP 0780|INP 0790JINP 0800JINP 0810|INP 0820|INP 0830JINP 0840JINP 0850JINP 0860|INP 0870JINP 0880|INP 0890JINP 0900IINP 0910|INP 0920|INP 0930JINP 0940
Sets the activity coefficients of neutral species | INP 0950Number of complex the ion is associated withNumber of minerals addedSwitch to indicate a mineral/aqueous complexError flag for Lagrange interpolation routineName of restart file najneNames of aqueous speciesNames of solubility constantsMeasured pH of the solutionHitemp pH switchTotal pressureFlag for printing activity ratios of elementsMolal amount of the aqueous species addedTotal surface area per kilogram of solventName of each surface species adsorptionSite density per unit area adsorptionMoles CH4 distributed between oil, water, vaporMoles C02 distributed between oil, water, vaporTemperature of the solution when pH was measuredMoles H2S distributed between oil, water, vaporConcentration of total inorganic carbonName of the samplePlaces a form feed in output fileFile unit assigned for input fileUnits of concentrationFile unit assigned for Output fileOil to water weight ratioHolds Log K's for additional anions & cationsNew log K(T) valueCharge of aqueous species
UNO
|INP 0960JINP 0970JINP 0980IINP 0990JINP 1000JINP 1010JINP 1020|INP 1030|INP 1040JINP 1050JINP 1060|INP 1070JINP 1080|INP 1090|INP 1100|INP 1110|INP 1120|INP 1130|INP 1140|INP 1150|INP 1160|INP 1170|INP 1180|INP 1190JINP 1200JINP 1210|INP 1220JINP 1230|INP 1240IINP 1250 INP 1260INP 1270
310
DOUBLE PRECISION AVOG, CPUMIN
PARAMETER (NMAX - 340, UNO - 6) PARAMETER (AVOG - 6.022D+23, CPUMIN l.OD-35)
INTEGER ACTUAL, ALK, ANSI, ANS2, FLAGS(6), GEOTHINTEGER I, IBMIX, ICCSAT, IC02, IDDP, IDMIX(SO)INTEGER IDN(IO.IO), IDSAT, IEXCH, ISCHG(IO), ILP(33)INTEGER ILQ(15), ILR(13), IMC03, IMIX, INDEX, INFORM, INMIX, INSPINTEGER IOPT, IPAGE, IPGLN, IPHASE, IPIT, IPRIN1, IPRIN2INTEGER IRXDP(IO), ISCOMP(IO), ITIC, ITMIX, ITTINTEGER J, LINE, MININD(8,5), MIXFLG, MXMNK, MXSP, NDUM(12), NOSEINTEGER NUFLAG, NUMCOM, NUMINS, OK, PHHIT, RATIO, UNI, Z(NMAX)
CHARACTER * 1 ADEX, CR, DNS, ODUM(12), TOFCHARACTER * 5 UNITSCHARACTER * 8 NAME, PAGEl(NMAX), PAGE2(NMAX), PAGE3(NMAX)CHARACTER * 10 SPN(IO)CHARACTER * 40 TITMIXCHARACTER * 80 DUMMY, MIXFLE, OUTIN, TITLE
DOUBLE PRECISION ALFA(NMAX), AMOL(50), ANALM(NMAX)DOUBLE PRECISION CEC, COEF(IO.IO), CONV1, CONV2, CUNITS(NMAX)DOUBLE PRECISION DCH4, DC02, DDCH4, DDC02, DDH2S, DDNH3, DEBYEDOUBLE PRECISION DENS, DFRAC1, DH2S, DING, DHA(NMAX), DNA, DNH3DOUBLE PRECISION DP, EHM, EHMC, EMFZSC, FBOIL, FCCSAT, FIXITDOUBLE PRECISION GFW(NMAX), HIGHKT, HITEMP, KCH40L, KC020LDOUBLE PRECISION KH2SOL, KRXN(IO), LOWKTDOUBLE PRECISION M(NMAX), MBASE(IO), MINCO(9,5)DOUBLE PRECISION MINLOG(2,5), PH, PRESS, DSEP, RXDP(IO)DOUBLE PRECISION SAREA, TAREA, TCH4M, TC02M, TEMPDOUBLE PRECISION TH2SM, TIC, WROIL, X, XD(2,45), XDUM(12)
EXTERNAL DEBYE, PAGE
INTRINSIC DABS, IABS
COMMON /AL / COMMON /AMM / COMMON /BASIC /
COMMON /CH / COMMON /DIST /
COMMON /EXCHAN/
COMMON /FLAGCM/
COMMON /FMFD /COMMON /FORM /COMMON /GAS /
COMMON /IMM / COMMON /MOLS / COMMON /NAMESI/ COMMON /NAMES2/
NDUM, XDUMIDMIX, AMOL, ITMIX, INMIX, DFRAC1, DING, FBOILDENS, PRESS, EHM, EHMC, EMFZSC, TIC, FCCSAT, XD,NUMCOM, NUMINS, MINLOG, MINCO, MININD, CONV1,CONV2ODUMTC02M, TCH4M, TH2SM, WROIL, KCH40L, KC020L,KH2SOL, IPHASE, DSEPCOEF, MBASE, KRXN, CEC, TAREA,SAREA, IDN, ISCHG, ISCOMP, INSPALK, ITIC, ICCSAT, IMC03, ITT, ANSI, ANS2,NUFLAG, IPIT, FLAGS, INFORM, RATIO, GEOTH,IPRIN1, IPRIN2TOF, CR, TITMIXIPAGE, IPGLNDC02, DDC02, DH2S, DDH2S, DNH3, DDNH3,DCH4, DDCH4, IOPT, FIXITIBMIX, IMIXPH, ANALM, M, ALFA, CUNITSPAGE1, PAGE2, PAGE3SPN
INP 1280 INP 1290 INP 1300 INP 1310 INP 1320 INP 1330 INP 1340 INP 1350 INP 1360 INP 1370 INP 1380 INP 1390 INP 1400 INP 1410 INP 1420 INP 1430 INP 1440 INP 1450 INP 1460 INP 1470 INP 1480 INP 1490 INP 1500 INP 1510 INP 1520 INP 1530 INP 1540 INP 1550 INP 1560 INP 1570 INP 1580 INP 1590 INP 1600 INP 1610 INP 1620 INP 1630 INP 1640 INP 1650 INP 1660 INP 1670 INP 1680 INP 1690 INP 1700 INP 1710 INP 1720 INP 1730 INP 1740 INP 1750 INP 1760 INP 1770 INP 1780 INP 1790 INP 1800 INP 1810 INP 1820 INP 1830 INP 1840 INP 1850
311
cr
C
-
COMMON /NAMES 3/ MIXFLE, OUTIN, TITLE, UNITS, ADEXCOMMON /SAT / IDDP, IDSAT, DP, RXDP, IRXDPCOMMON /TABCOM/ MXSP r MXMNK, GFW, Z, DHA
DATA ILP /3, 4, 22, 1, 2, 18, 14, 12, 5, 6, 33, 7, 98, 30, 29,136, 32, 31, 26, 15, 25, 27, 16, 23, 21, 13, 28, 169,210, 48, 246, 265, 285/
DATA ILQ /8, 8, 8, 14, 15, 1, 16, 18, 4, 2, 23, 3, 25, 26, 27/DATA ILR /5, 6, 7, 9, 29, 30, 48, 98, 101, 246, 265, 0, O/
Get basic input data^
LINE = 1READ (UNI, 9000, END - 160) TITLE
CALL PAGEWRITE (UNO, 9010) TITLEIPGLN - IPGLN + 1
LINE - LINE + 1READ (UNI, 9020, ERR - 150) TEMP, HITEMP, DENS, PRESS
LINE - LINE + 1READ (UNI, 9020, ERR - 150) PH, EHM, EHMC, EMFZSC, UNITS
Check to make sure the units are correct
OK = 0
DO 1 1=1,5IF (UNITS (I: I). EQ. 'm') UNITS(I: I)-'M'IF (UNITS(I:I).EQ.'g') UNITS(I: I)-'G'IF (UNITS(Irl).EQ.'l') UNITS(I: I)-'L'IF (UNITS(I:I).EQ.'p') UNITS(I: I)-'P'IF (UNITS(I:I).EQ.'o') UNITS(I: I)-'0'IF (UNITS(I:I).EQ.'e') UNITS(I: I)-'E'IF (UNITS(I:I).EQ.'q') UNITS(I : I)-'Q'IF (UNITS(I:I).EQ.'k') UNITS(I:I)-'K'
1 CONTINUE
IF (UNITS .EQ. 'MG/L ') THENOK - 1
ELSE IF (UNITS .EQ. 'PPM ') THENOK - 1
ELSE IF (UNITS .EQ. 'MOL/L') THENOK - 1
ELSE IF (UNITS .EQ. 'MOL/K') THENOK - 1
ELSE IF (UNITS .EQ. 'MEQ/L') THENOK - 1
ELSEOK - 0
INP 1860INP 1870INP 1880INP 1890INP 1900INP 1910INP 1920INP 1930INP 1940INP 1950
-|INP 1960 INP 1970
-| INP 1980 JINP 1990
-| INP 2000INP 2010INP 2020INP 2030INP 2040INP 2050INP 2060INP 2070INP 2080INP 2090INP 2100INP 2110INP 2120INP 2130INP 2140
-| INP 2150 |INP 2160
-| INP 2170INP 2180INP 2190INP 2200INP 2210INP 2220INP 2230INP 2240INP 2250INP 2260INP 2270INP 2280INP 2290INP 2300INP 2310INP 2320INP 2330INP 2340INP 2350INP 2360INP 2370INP 2380INP 2390INP 2400INP 2410INP 2420INP 2430
312
END IF
IF (OK .NE. 1) THENWRITE (UNO, 9160) TOFWRITE (UNO, '(A,A5,A)') 'Must use proper units. "',
UNITS, '" are not recognized.'STOP
END IF
WRITE (UNO, 9030) ' TEMP', ' HITEMP', ' DENS', ' PRESS 1 WRITE (UNO, 9040) TEMP, HITEMP, DENS, PRESS WRITE (UNO, 9030) ' PH', ' EHM', ' EHMC', ' EMFZSC' WRITE (UNO, 9050) PH, EHM, EHMC, EMFZSC WRITE (UNO, 9060) UNITS IPGLN = IPGLN + 5
Get concentration of species
LINE - LINE + 1READ (UNI, 9070, ERR - 150) (CUNITS(ILP(I)), 1=1, 7)WRITE (UNO, 9080) 'Na ', 'K ', 'Li ', 'Ca
'Mg ', 'Fe ', 'Al ' WRITE (UNO, 9050) (CUNITS(ILP(I)), I - 1, 7) IPGLN = IPGLN + 2
LINE - LINE + 1READ (UNI, 9070, ERR - 150) (CUNITS(ILP(I)), 1=8, 13), TICWRITE (UNO, 9080) 'Si02 ', 'Cl ', 'S04 ', 'H2S
'HC03 ', 'C03 ', 'TIC 'WRITE (UNO, 9050) (CUNITS(ILP(I)), 1=8, 13), TIC IPGLN = IPGLN + 2
LINE = LINE + 1READ (UNI, 9070, ERR = 150) (CUNITS(ILP(I)), I = 14, 20)WRITE (UNO, 9080) 'F ', 'P04 ', 'N03 ', 'NH3
'B ', 'Sr ', 'BaWRITE (UNO, 9050) (CUNITS(ILP(I)), I = 14, 20) IPGLN = IPGLN + 2
LINE = LINE + 1READ (UNI, 9070, ERR = 150) (CUNITS(ILP(I)), I = 21, 26)WRITE (UNO, 9080) 'Pb ', 'Zn ', 'Cu ', 'Mn
'Hg ', 'AgWRITE (UNO, 9050) (CUNITS(ILP(I)), I - 21, 26) IPGLN = IPGLN + 2
LINE = LINE + 1READ (UNI, 9070, ERR = 150) (CUNITS(ILP(I)), I = 27, 29)WRITE (UNO, 9080) 'As ' , 'U ' , 'VWRITE (UNO, 9050) (CUNITS(ILP(I)), 1-27, 29)IPGLN = IPGLN + 2
LINE = LINE + 1READ (UNI, 9070, ERR = 150) (CUNITS(ILP(I)), 1-30, 33) WRITE (UNO, 9080) 'Acetate ', 'Oxalate ', 'Succinate', 'CH4' WRITE (UNO, 9050) (CUNITS(ILP(I)), 1-30, 33)
INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP
- -|INP | INP
- -|INP INP INP INP
' , INP INP INP INP INP INP INP
' , INP INP INP INP INP INP INP
' , INP INP INP INP INP INP INP
' , INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP
2440245024602470248024902500251025202530254025502560257025802590260026102620263026402650266026702680269027002710272027302740275027602770278027902800281028202830284028502860287028802890290029102920293029402950296029702980299030003010
313
IPGLN - IPGLN + 2
Adjust B and As to the forms the program uses
IF (UNITS .EQ. 'PPM ' .OR. UNITS .EQ. CUNITS(31) = CUNITS(31) * 5.720 CUNITS(28) = CUNITS(28) * 1.668 CUNITS(169) = CUNITS(169) * 1.134 CUNITS(210) - CUNITS(210) * 1.942
END IF
MG/L ') THEN
Carbon, High temperature carbon option
LINE = LINE + 1READ (UNI, 9100, ERR = 150) ALK, ITICWRITE (UNO, 9130) ' ALK ', ' ITICWRITE (UNO, 9110) ALK, ITICIPGLN - IPGLN + 2
Gas addition option
DDC02 =0.0 DC02 - 0.0 DDNH3 =0.0 DNH3 =0.0 DDH2S =0.0 DH2S =0.0 DDCH4 =0.0 DCH4 =0.0
LINE = LINE + 1READ (UNI, 9070, ERR = 150) DDC02, DDH2S, DDNH3, DDCH4WRITE (UNO, 9080) ' DC02 ', ' DH2S ', ' DNH3 ', ' DCH4WRITE (UNO, 9050) DDC02, DDH2S, DDNH3, DDCH4IPGLN = IPGLN + 2
pH and co2 saturation option
LINE = LINE + 1READ (UNI, 9100, ERR = 150) ICCSAT, IMC03, FIXIT, FCCSATWRITE (UNO, 9080) ' ICCSAT ', 'IMC03 ', 'FIXIT ', ' FCCSATWRITE (UNO, 9110) ICCSAT, IMC03, FIXIT, FCCSATIPGLN = IPGLN + 2
IF (IMC03 .EQ. 0) IC02 = 0 IF (IMC03 .GT. 0) IC02 = 1
IF (FCCSAT .LT. CPUMIN) FCCSAT - 2.0D-3 IF (FCCSAT .GT. 0.1) FCCSAT =0.05
INPINP
| INP| INPj INPINPINPINPINPINPINPINPINP
| INP| INPj INPINPINPINPINPINPINPINP
| INPI INPI INPINPINPINPINPINPINPINPINPINPINPINPINPINPINPINP
| INPI INPj INPINPINPINPINPINPINPINPINPINPINPINPINPINP
I INP
3020303030403050306030703080309031003110312031303140315031603170318031903200321032203230324032503260327032803290330033103320333033403350336033703380339034003410342034303440345034603470348034903500351035203530354035503560357035803590
314
c
cr
Gas-water-oil option
LINE - LINE + 1READ (UNI, 9070, ERR - 150) TC02M, TCH4M, TH2SM, WROIL,
KC020L, KCH40L, KH2SOL, DSEPWRITE (UNO, 9080) 'TC02M ', 'TCH4M ', 'TH2SM ', 'WROIL
'KC020L ', 'KCH40L ', 'KH2SOL ', 'DSEP 'WRITE (UNO, 9050) TC02M, TCH4M, TH2SM, WROIL, KC020L,
KCH40L, KH2SOL, DSEPIPGLN = IPGLN + 2IF (DABS(KC020L) .LT. CPUMIN) KC020L -1.0IF (DABS(KCH40L) .LT. CPUMIN) KCH40L -1.0IF (DABS(KH2SOL) .LT. CPUMIN) KH2SOL =1.0
Read and write data for ion exchange or adsorption
LINE = LINE + 1READ (UNI, 9160, ERR = 150) ADEXWRITE (UNO, '(A, Al)') ' Adsorption/Exchange option (N=no) = ',
ADEXIF (ADEX .EQ. 'a' .OR. ADEX .EQ. 'A') THENADEX - 'A'
ELSE IF (ADEX .EQ. 'e' .OR. ADEX .EQ. '£') THENADEX - 'E'
ELSEADEX - 'N'
END IFX - 0.0IF (ADEX .EQ. 'A') THEN
IEXCH = 1WRITE (UNO, 9220) ' Adsorption (Double layer model)'WRITE (UNO, 9080) ' CEC ', ' TAREA ', ' SAREA ', ' INSP
LINE - LINE + 1READ (UNI, 9150) CEC, TAREA, SAREA, INSPWRITE (UNO, 9240) CEC, TAREA, SAREA, INSP
WRITE (UNO, 9090) ' NAME ', ' CHARGE ',Tract. Surf. Sites '
IPGLN = IPGLN + 4DO 10 I - 1, INSP
LINE - LINE + 1READ (UNI, 9200, ERR - 150) ISCHG(I) , MBASE(I) , SPN(I)LINE - LINE + 1
WRITE (UNO, 9250) SPN(I) , ISCHG(I) , MBASE(I)
LINE - LINE + 1READ (UNI, 9210, ERR = 150) KRXN(I) , ISCOMP(I),
(COEF(I,J), IDN(I.J), J=1,ISCOMP(I))
X - X + MBASE(I)IPGLN - IPGLN + 1IF (IPGLN .GT. 58) CALL PAGE
|INP 3600-JINP 3610
INP 3620INP 3630INP 3640INP 3650
, INP 3660INP 3670INP 3680INP 3690INP 3700INP 3710INP 3720INP 3730INP 3740
-|INP 3750 |INP 3760
-|INP 3770 INP 3780INP 3790INP 3800INP 3810INP 3820INP 3830INP 3840INP 3850INP 3860INP 3870INP 3880INP 3890INP 3900INP 3910INP 3920INP 3930'INP 3940INP 3950INP 3960INP 3970INP 3980INP 3990INP 4000INP 4010INP 4020INP 4030INP 4040INP 4050INP 4060INP 4070INP 4080INP 4090INP 4100INP 4110INP 4120INP 4130INP 4140INP 4150INP 4160INP 4170
315
10 CONTINUE
IF (DABS(1.0DOO - X) .GT. 0.001) THEN WRITE (UNO, '(A, A, A)')
' ERROR in absorption/ion exchange', ' data. The sum of fraction of, ' surface sites is not 1.0'
STOP END IF
WRITE (UNO, '(11X, A, A)') 'K = 1. ** Coef * ID + .... '
DO 20 I = 1, INSPWRITE (UNO, 9260) KRXN(I), SPN(I), (COEF(I,J), IDN(I,J),
J = 1, ISCOMP(I))IPGLN = IPGLN + 1IF (IPGLN .GT. 57) CALL PAGE
CONTINUEELSE IF (ADEX .EQ. 'E') THEN
IEXCH = 2WRITE (UNO, 9220) 'Ion Exchange: ' WRITE (UNO, 9080) ' CEC ', ' TAREA ', ' SAREA ', ' INSP
20
30
LINE = LINE + 1READ (UNI, 9150) CEC, TAREA, SAREA, INSPWRITE (UNO, 9240) CEC, TAREA, SAREA, INSP
WRITE (UNO, 9090) ' NAME ', ' CHARGE ','Fract. Surf. Sites '
IPGLN = IPGLN + 4 DO 30 I = 1, INSP
LINE = LINE + 1READ (UNI, 9200, ERR = 150) ISCHG(I) , MBASE(I) , SPN(I)LINE = LINE + 1
WRITE (UNO, 9250) SPN(I) , ISCHG(I) , MBASE(I)
X = X + MBASE(I) LINE = LINE + 1READ (UNI, 9210, ERR = 150) KRXN(I) , ISCOMP(I) ,
(COEF(I,J), IDN(I,J), J-1,ISCOMP(I))
IPGLN = IPGLN + 1 IF (IPGLN .GT. 57) CALL PAGE
CONTINUE
IF (DABS(1.0DOO - X) .GT. 0.001) THEN WRITE (UNO, '(A, A, A)')
' ERROR in absorption/ ion exchange' ' data. The sum of fraction of , ' surface sites is not 1.0'
STOP END IF
WRITE (UNO, '(11X, A, A)') 'K = 1. ** Coef * ID
INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP 'INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP
4180419042004210422042304240425042604270428042904300431043204330434043504360437043804390440044104420443044404450446044704480449045004510452045304540455045604570458045904600461046204630464046504660467046804690470047104720473047404750
316
DO 40 I - 1, INSPWRITE (UNO, 9260) KRXN(I), SPN(I), (COEF(I,J), IDN(I.J),
J - 1, ISCOMP(I)) IPGLN - IPGLN + 1 IF (IPGLN .GT. 57) CALL PAGE
40 CONTINUE
END IFIF (IEXCH .GT. 0) THEN
IF (CEC .LE. CPUMIN) CEC - TAREA * SAREA * 1000.0 / AVOG END IF
Precipitation/mixing/boiling option
IF (MIXFLG .EQ. 0) THEN set all values read equal to zero
IF (IPGLN .GT. 59) CALL PAGE IDDP - 0 IDSAT - 0
LINE - LINE + 1READ (UNI, 9100, ERR - 150) IBMIX, ITMIXIF (IPGLN .GT. 59) CALL PAGEIPGLN - IPGLN + 2WRITE (UNO, 9130) 'IBMIX', 'ITMIX'WRITE (UNO, 9110) IBMIX, ITMIXIF (MIXFLG .NE. 0) THEN
IF (IPGLN .GT. 59) CALL PAGEIPGLN - IPGLN + 2IF (IBMIX .EQ. 1) THENWRITE (UNO, 9710)
ELSE IF (IBMIX .EQ. 2) THENWRITE (UNO, 9720)
ELSE IF (IBMIX .EQ. 3) THENWRITE (UNO, 9730)
END IF END IFIF (IBMIX .EQ. 1) THEN
IF (ITMIX .GT. 0) THEN LINE = LINE + 1 IF (MIXFLG .EQ. 0) THEN WRITE (UNO, 9080) ' IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
END IFDO 50 I = 1, ITMIX
LINE - LINE + 1READ (UNI, 9290, ERR - 150) IDMIX(I), AMOL(I) IF (MIXFLG .EQ. 0) THENWRITE (UNO, 9490) PAGE1(IDMIX(I)), AMOL(I) IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
ELSEIDMIX(I) = 0 AMOL(I) = 0.0
SPECIES', 'MOLALITY'
INP 4760 INP 4770 INP 4780 INP 4790 INP 4800 INP 4810 INP 4820 INP 4830 INP 4840 INP 4850 INP 4860 INP 4870 INP 4880 |INP 4890 |INP 4900 |INP 4910 |INP 4920 IINP 4930 INP 4940 INP 4950 INP 4960 INP 4970 INP 4980 INP 4990 INP 5000 INP 5010 INP 5020 INP 5030 INP 5040 INP 5050 INP 5060 INP 5070 INP 5080 INP 5090 INP 5100 INP 5110 INP 5120 INP 5130 INP 5140 INP 5150 INP 5160 INP 5170 INP 5180 INP 5190 INP 5200 INP 5210 INP 5220 INP 5230 INP 5240 INP 5250 INP 5260 INP 5270 INP 5280 INP 5290 INP 5300 INP 5310 INP 5320 INP 5330
317
END IF 50 CONTINUE
ELSE IF (ITMIX .EQ. 0) THEN LINE = LINE + 1READ (UNI, 9270, ERR = 150) IDSAT, IDDP, DP IF (MIXFLG .EQ. 0) THENWRITE (UNO, 9420) PAGE3(IDSAT), IDSAT IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
END IFIF (IDDP .EQ. 0) THEN
LINE = LINE + 1READ (UNI, 9280, ERR - 150) ITT IF (MIXFLG .EQ. 0) THEN WRITE (UNO, 9440) IPGLN - IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
END IFDO 60 I = 1, ITT
LINE = LINE + 1READ (UNI, 9290, ERR- 150) IRXDP(I), RXDP(I) IF (MIXFLG .EQ. 0) THENWRITE (UNO, 9460) IRXDP(I), PAGE1(IRXDP(I)), RXDP(I) IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
END IF 60 CONTINUE
IF (MIXFLG .EQ. 0) THEN WRITE (UNO, 9450) DP IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
ELSEIDSAT = 0 IDDP - 0 ITT - 0 DP =0.0
END IF ELSE
IF (MIXFLG .EQ. 0) THENWRITE (UNO, 9430) PAGE3(IDDP), IDDP IPGLN = IPGLN + 1 IF (IPGLN .GT. 59) CALL PAGE
ELSEIDDP = 0
END IF END IF
ELSE IF (ITMIX .LT. 0) THEN LINE - LINE + 1 READ (UNI, 9290, ERR IF (MIXFLG .EQ. 0) THEN WRITE (UNO, 9140) 'IDDP WRITE (UNO, 9410) IDDP, AMOL(l) IPGLN - IPGLN -I- 2 IF (IPGLN .GT. 59) CALL PAGE
ELSEIDDP - 0 AMOL(l) =0.0
END IF
150) IDDP, AMOL(l)
'AMOL(l) '
INP 5340 INP 5350 INP 5360 INP 5370 INP 5380 INP 5390 INP 5400 INP 5410 INP 5420 INP 5430 INP 5440 INP 5450 INP 5460 INP 5470 INP 5480 INP 5490 INP 5500 INP 5510 INP 5520 INP 5530 INP 5540 INP 5550 INP 5560 INP 5570 INP 5580 INP 5590 INP 5600 INP 5610 INP 5620 INP 5630 INP 5640 INP 5650 INP 5660 INP 5670 INP 5680 INP 5690 INP 5700 INP 5710 INP 5720 INP 5730 INP 5740 INP 5750 INP 5760 INP 5770 INP 5780 INP 5790 INP 5800 INP 5810 INP 5820 INP 5830 INP 5840 INP 5850 INP 5860 INP 5870 INP 5880 INP 5890 INP 5900 INP 5910
318
END IFIF (MIXFLG .EQ. 1) MIXFLG - 0
ELSE IF (IBMIX .EQ. 3) THEN IF (MIXFLG .EQ. 0) THEN
LINE - LINE + 1READ (UNI, 9070, ERR = 150) FBOILWRITE (UNO, 9470) FBOILIPGLN - IPGLN + 1IF (IPGLN .GT. 59) CALL PAGE
ELSEREAD (UNI, '(A80)') DUMMYMIXFLG - 0
END IF
ELSE IF (IBMIX .EQ. 2) THEN IF (MIXFLG .EQ. 0) THEN LINE - LINE + 1READ (UNI, 9290, ERR - 150) INMIX, DFRAC1, DING, MIXFLE IPGLN - IPGLN + 2 IF (IPGLN .GT. 59) CALL PAGE WRITE (UNO, 9480) INMIX, DFRAC1, DING IF (MIXFLE .NE. ' ') THEN
WRITE (UNO, 9481) MIXFLE(1:40) ELSE
WRITE (UNO, 9482) END IF MIXFLG - 1
ELSEREAD (UNI, '(A80)') DUMMY MIXFLG - 0
END IF END IF
Optional user Read in miscellaneous options
LINE - LINE + 1READ (UNI, 9180, ERR - 150) (ODUM(I), NDUM(I), XDUM(I), 1=1,WRITE (UNO, 9340) TEMPWRITE (UNO, 9190) (ODUM(I), NDUM(I), XDUM(I), 1=1, 6)IPGLN - IPGLN + 2IF (IPGLN .GT. 59) CALL PAGE
LINE = LINE + 1READ (UNI, 9180, ERR = 150) (ODUM(I), NDUM(I), XDUM(I), 1=7,WRITE (UNO, 9340) HITEMPWRITE (UNO, 9190) (ODUM(I), NDUM(I), XDUM(I), 1-7, 12)IPGLN = IPGLN + 2IF (IPGLN .GT. 59) CALL PAGE
Read user defined anions
LINE = LINE + 1READ (UNI, 9300, ERR = 150) ANSI, ANS2WRITE (UNO, 9130) 'ANSI', 'ANS2'
INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP
- - - |INP | INP
- - IINP INP INP
6) INP INP INP INP INP INP INP
12)INP INP INP INP INP INP
- -|INP | INP
- - IINP INP INP INP INP
5920593059405950596059705980599060006010602060306040605060606070608060906100611061206130614061506160617061806190620062106220623062406250626062706280629063006310632063306340635063606370638063906400641064206430644064506460647064806490
319
WRITE (UNO, 9110) ANSI, ANS2IPGLN - IPGLN + 2IF (IPGLN .GT. 59) CALL PAGE
DO 70 I - 1, 45 XD(1,I) = O.ODO XD(2,I) = O.ODO
70 CONTINUE
IF (ANSI .EQ. 0 .AND. ANS2 .NE. 0) THENANSI - ANS2ANS2 - 0
END IF
80
GFW', 'CHARGE', 'DBA'IF (ANSI .GT. 0) THENWRITE (UNO, 9500) 'NAME', 'CONC',LINE - LINE + 1READ (UNI, 9360, ERR - 150) CUNITS(MXSP-H), GFW(MXSP+1),
Z(MXSP+1), DHA(MXSP+1), PAGE1(MXSP+1) WRITE (UNO, 9380) PAGE1(MXSP+1) , CUNITS(MXSP-t-l) , GFW(MXSP+1) ,
Z(MXSP+1), DHA(MXSP+1) IPGLN - IPGLN + 2 IF (IPGLN .GT. 59) CALL PAGE WRITE (UNO, 9400) IPGLN - IPGLN + 1
DO 80 I - 1, ANSI LINE - LINE + 1 READ (UNI, 9370, ERR 150) INDEX, DNA, LOWKT, HIGHKT, NAMEWRITE (UNO, 9390) NAME, INDEX, LOWKT, HIGHKT, DNAIPGLN - IPGLN + 1IF (IPGLN .GT. 59) CALL PAGE
ACTUAL = MXSP + INDEX PAGE1(ACTUAL) - NAME
XD(1,INDEX) - LOWKT XD(2,INDEX) - HIGHKT
END IF
IF (ANS2 .NE. 0) THENWRITE (UNO, 9500) 'NAME', 'CONC', 'GFW' LINE - LINE + 1READ (UNI, 9360, ERR - 150) CUNITS(MXSP+16), GFW(MXSP+16),
Z(MXSP+16), DHA(MXSP+16), PAGE1(MXSP+16)
CHARGE', 'DHA'
INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INP INPINP
GFW(ACTUAL) = GFW(MXSP+1) + GFW(ILQ(INDEX)) INP IF (INDEX .EQ. 3) GFW(ACTUAL) - GFW(ACTUAL) + GFW(ILQ(INDEX)) INP
INPZ(ACTUAL) = Z(MXSP+1) + Z(ILQ(INDEX)) INP IF (INDEX .EQ. 3) Z(ACTUAL) = Z(ACTUAL) + Z(ILQ(INDEX)) INP
INP DHA(ACTUAL) = DEBYE (Z(ACTUAL), DNA) INP
INP CONTINUE INP
INP INP INP INP INP INP INP
WRITE (UNO, 9380) PAGE1(MXSP+16), CUNIfS(MXSP+16), GFW(MXSP+16),INPZ(MXSP+16), DHA(MXSP+16) INP
IPGLN - IPGLN + 2 INP
6500651065206530654065506560657065806590660066106620663066406650666066706680669067006710672067306740675067606770678067906800681068206830684068506860687068806890690069106920693069406950696069706980699070007010702070307040705070607070
320
IF (IPGLN .GT. 59) CALL PAGEWRITE (UNO, 9400)IPGLN - IPGLN + 1DO 90 I = 1, ANS2
LINE - LINE + 1READ (UNI, 9370, ERR - 150) INDEX, DNA, LOWKT, HIGHKT, NAMEWRITE (UNO, 9390) NAME, INDEX, LOWKT, HIGHKT, DNAIPGLN = IPGLN + 1IF (IPGLN .GT. 59) CALL PAGE
ACTUAL - MXSP + INDEX + 15PAGE1 (ACTUAL) - NAME
XD(1,INDEX+15) - LOWKTXD(2,INDEX+15) - HIGHKT
GFW(ACTUAL) - GFW(MXSP+16) + GFW( ILQ( INDEX) )IF (INDEX .EQ. 3) GFW(ACTUAL) - GFW(ACTUAL) + GFW (ILQ( INDEX) )
Z(ACTUAL) - Z(MXSP+16) + Z(ILQ(INDEX) )IF (INDEX .EQ. 3) Z( ACTUAL) - Z( ACTUAL) + Z(ILQ( INDEX) )
DHA(ACTUAL) - DEBYE (Z (ACTUAL) , DNA)
90 CONTINUEEND IF
r>
C Read user defined cationsr -
LINE - LINE + 1READ (UNI, 9510) NUMCOM, Z(MXSP+31) , DHA(MXSP+31) , GFW(MXSP+31) ,
CUNITS(MXSP+31), PAGE1(MXSP+31)IF (NUMCOM .GT. 0) THENWRITE (UNO, 9520) 'NAME', 'CHARGE', 'DHA' , 'GFW', 'CONC'WRITE (UNO, 9530) PAGE1(MXSP+31) , Z(MXSP+31) , DHA(MXSP+31) ,
GFW(MXSP+31) , CUNITS(MXSP+31)IPGLN = IPGLN + 2IF (IPGLN .GT. 59) CALL PAGEILR(12) = MXSP + 1ILR(13) - MXSP + 16
DO 100 I = 1, NUMCOMWRITE (UNO, 9540) ' NAME', 'DHA', 'LOWKT', 'HIGHKT'READ (UNI, 9550) INDEX, DNA, LOWKT, HIGHKT, NAMEWRITE (UNO, 9560) INDEX, NAME, DNA, LOWKT, HIGHKTIPGLN = IPGLN + 2IF (IPGLN .GT. 59) CALL PAGE
ACTUAL - MXSP + INDEX + 30
PAGE1 (ACTUAL) - NAMEZ(ACTUAL) - Z(MXSP+31) + Z (ILR( INDEX- 1) )
DHA(ACTUAL) - DEBYE (Z (ACTUAL) , DNA)
GFW(ACTUAL) - GFW(MXSP+31) + GFW( ILR( INDEX- 1) )
INP 7080INP 7090INP 7100INP 7110INP 7120INP 7130INP 7140INP 7150INP 7160INP 7170INP 7180INP 7190INP 7200INP 7210INP 7220INP 7230INP 7240INP 7250INP 7260INP 7270INP 7280INP 7290INP 7300INP 7310INP 7320INP 7330INP 7340|INP 7350 |INP 7360JINP 7370INP 7380INP 7390INP 7400INP 7410INP 7420INP 7430INP 7440INP 7450INP 7460INP 7470INP 7480INP 7490INP 7500INP 7510INP 7520INP 7530INP 7540INP 7550INP 7560INP 7570INP 7580INP 7590INP 7600INP 7610INP 7620INP 7630INP 7640INP 7650
321
ACTUAL = 30 + INDEX
XD(1, ACTUAL) = LOWKTXD( 2, ACTUAL) = HIGHKT
100 CONTINUEEND IF
,-1
C Read user defined minerals,-1
LINE = LINE + 1READ (UNI, 9270, ERR - 150) NUMINSIPGLN - IPGLN + 1IF (IPGLN .GT. 59) CALL PAGEWRITE (UNO, *) ' Number of Additional M
DO 120 I - 1, 5MINLOG(1,I) = 999.9MINLOG(2,I) - 999.9DO 110 J = 1, 9
MINCO(J,I) =0.0IF (J .LE. 8) MININD(J,I) = 0
110 CONTINUE120 CONTINUE
DO 140 I - 1, NUMINSLINE - LINE + 1
INP 7660INP 7670INP 7680INP 7690INP 7700INP 7710INP 7720INP 7730
.................----..-. | INP 7740 |INP 7750
......................... | INP 7760 INP 7770INP 7780INP 7790INP 7800
1 INP 7810Lnerals = ' , NUMINS INP 7820
INP 7830INP 7840INP 7850INP 7860INP 7870INP 7880INP 7890INP 7900INP 7910INP 7920INP 7930INP 7940
READ (UNI, 9570, ERR = 150) MINLOG(1,I), MINLOG(2,I), INP 7950MINCO(9,I),
LINE - LINE + 1PAGE3 (MXMNK+I) INP 7960
INP 7970READ (UNI, 9210, ERR = 150) (MINCO(J,I), MININD(J,I), J = 1, 8) INP 7980
IPGLN = IPGLN + 3IF (IPGLN .GT. 59) CALL PAGE
NOSE = 0DO 130 J = 1, 8
IF (MINCO(J,I) .GT. 0) NOSE - NOSE +130 CONTINUE
WRITE (UNO, 9580) PAGE 3 ( MXMNK+I ), 'LogMINLOG(1,I), 'Log K at T2 -
INP 7990INP 8000INP 8010INP 8020INP 8030INP 8040
1 INP 8050INP 8060INP 8070
K at Tl = ' , INP 8080* ' , MINLOG(2,I) INP 8090
WRITE (UNO, 9590) (MINCO(J,I), '*' , PAGEl(MININD(J , I) ) , ' + ', INP 8100J = 1, NOSE), MINCO(9,I) INP 8110
140 CONTINUE
C _________________________
C Assign flags and convergence factorsr. ---___--_____________.____
LINE = LINE + 1READ (UNI, 9300, ERR = 150) NUFLAG, IPITWRITE (UNO, 9310) NUFLAG, IPITWRITE (UNO, 9320) 'Fe', 'Cu', 'Hg' , 'Mn'
(FLAGS(I), I - 1, 6)IPGLN - IPGLN + 2
INP 8120INP 8130
......................... | INp 8140 |INP 8150
......................... | IN? 8160 INP 8170INP 8180
, (FLAGS(I), I = 1, 6) INP 8190INP 8200
, ' U' , ' V , INP 8210INP 8220INP 8230
322
IF (IPGLN .GT. 59) CALL PAGE
LINE = LINE + 1READ (UNI, 9600, ERR = 150) INFORM, RATIO, GEOTH, IPRINl, IPRIN2,
OUTIN
LINE - LINE + 1READ (UNI, 9070, ERR - 150) CONVl, CONV2
IF (CONV2 .LT. l.OD-08 .OR. CONV2 .GT. l.OD-2) CONV2 - 0.5D-04 IF (CONVl .LT. l.OD-08 .OR. CONVl .GT. l.OD-2) CONVl - 0.5D-04
WRITE (UNO, 9350)WRITE (UNO, 9080) ' INFORM ', ' RATIO ', ' GEOTH ',
' IPRINl ', ' IPRIN2 'WRITE (UNO, 9120) INFORM, RATIO, GEOTH, IPRINl, IPRIN2 IF (OUTIN .NE. ' ') THEN
WRITE( UNO, 9610) OUTINIPGLN - IPGLN + 1
END IFWRITE (UNO, 9330) CONVl, CONV2 IPGLN = IPGLN + 4
Set defaults
IF (DENS .LT. CPUMIN) THENDNS - 'U'DENS - l.ODO
ELSEDNS - 'Y'
END IF
IF (DABS(HITEMP-TEMP) .LE. CPUMIN) HITEMP - O.ODOO IF (HITEMP .GT. CPUMIN) PHHIT - 1
If the gas or co2 option is to be used, initialize this option so that it is performed after the hi-temperature option, if requested, is performed.
IOPT 0
IF (DABS(DDC02) .GT. CPUMIN .OR. DABS(DDNH3) .GT. CPUMIN .OR, DABS(DDH2S) .GT. CPUMIN .OR. DABS(DDCH4) .GT. CPUMIN) IOPT = 2
IF (IC02 .GT. 0 .AND. IMC03 .GT. 0) THENIOPT - 1
ELSEIC02 - 0
END IF
IF (TC02M .GT. CPUMIN .OR. TCH4M .GT. CPUMIN.OR. TH2SM .GT. CPUMIN) IPHASE - 2
INP 8240 INP 8250 INP 8260 INP 8270 INP 8280 INP 8290 INP 8300 INP 8310 INP 8320 INP 8330 INP 8340 INP 8350 INP 8360 INP 8370 INP 8380 INP 8390 INP 8400 INP 8410 INP 8420 INP 8430 INP 8440 INP 8450 INP 8460 |INP 8470 jINP 8480 jINP 8490 INP 8500 INP 8510 INP 8520 INP 8530 INP 8540 INP 8550 INP 8560 INP 8570 INP 8580 INP 8590 INP 8600 |INP 8610 jINP 8620 |INP 8630 |INP 8640 |INP 8650 INP 8660 INP 8670 INP 8680 INP 8690 INP 8700 INP 8710 INP 8720 INP 8730 INP 8740 INP 8750 INP 8760 INP 8770 INP 8780 INP 8790 INP 8800 INP 8810
323
IPGLN = 60
RETURN
Error Messages
150 CONTINUEWRITE (UNO, 9160) TOF WRITE (UNO, 9170) LINE STOP
Out of dataIf there are no more data sets in file assigned to unit 5, stop
160 CLOSE (UNI) CLOSE (UNO) STOP
C Format r -----------
9000 FORMAT9010 FORMAT9020 FORMAT9030 FORMAT9040 FORMAT9050 FORMAT9060 FORMAT9070 FORMAT9080 FORMAT9090 FORMAT9100 FORMAT9110 FORMAT9120 FORMAT9130 FORMAT9140 FORMAT9150 FORMAT9160 FORMAT9170 FORMAT
.9180 FORMAT9190 FORMAT9200 FORMAT9210 FORMAT9220 FORMAT9230 FORMAT9240 FORMAT9250 FORMAT9260 FORMAT9270 FORMAT9280 FORMAT9290 FORMAT
statements
(A80)(' ****** INPUT DATA ECHO ****** ',//,' TITLE : ' ,A80)(4E10.4, A5)(2X, 6(A10, 2X))(2X, 5(E10.4, 2X), A5)(2X,10(E10.4, 2X))(' CONCENTRATION UNITS :', 2X, A5)(8E10.4)(2X, 10(2X, A, 2X))(2X, 10(2X, A))(212, 2E10.4)(2X,2(3X,I3,4X),E12.5,2X,F12.4)(2X, 6(5X, 12, 5X))(5X, A8, 2X, A8)(A8, 2X, A8)(3E10.4, 13)(Al)(5X,' ERROR IN READING REQUIRED INPUT LINE NO. ', 12,
/, ' Program Stop' )(6(A1, 14, E10.4))(6(1X, Al, IX, 14, IX, E10.4.3X))(14, E10.4, A10)(11(E10.4, 13))(' Surface Chemistry input for ' ,A)(2X, 3(E12.4, 2X), 3X, 13)(2X, 3(E10.4, 2X), 3X, 13)(2X, A10, 6X, 13, 4X, E10.4)(4X, F10.4, 3X, A, 4(5(5X, E12.5, 2X, 13), /))(2I4.E10.4)(I4.F12.0)(14, 2E10.4, A80)
INP 8820 INP 8830 INP 8840 INP 8850 |INP 8860 |INP 8870 |INP 8880 INP 8890 INP 8900 INP 8910 INP 8920 INP 8930 INP 8940 INP 8950 |INP 8960 |INP 8970 |INP 8980 IINP 8990 INP 9000 INP 9010 INP 9020 INP 9030 INP 9040 |INP 9050 |INP 9060 |INP 9070 INP 9080 INP 9090 INP 9100 INP 9110 INP 9120 INP 9130 INP 9140 INP 9150 INP 9160 INP 9170 INP 9180 INP 9190 INP 9200 INP 9210 INP 9220 INP 9230 INP 9240 INP 9250 INP 9260 INP 9270 INP 9280 INP 9290 INP 9300 INP 9310 INP 9320 INP 9330 INP 9340 INP 9350 INP 9360 INP 9370 INP 9380 INP 9390
324
9300 FORMAT (812, A80) 9310 FORMAT (' FLAG FOR ACTIVITY COEFF OF NEUTRAL SPECIES: ',I2,/,
' FLAG FOR ACTIVITY COEFF BY PITZERS EQUATIONS: ',12) 9320 FORMAT (' FLAGS FOR CALCULATING REDOX SPECIES: ' ,/,
6(2X, A2),/, 6(2X, 12))
9330 FORMAT (' TOLERANCE FACTORS:', 2X, 'CONV1 = ', E12.4, 2X, 'CONV2 = ' , E12.4)
9340 FORMAT (' LOG KT TO BE CHANGED AT TEMP = ', F6.2) 9350 FORMAT (' PRINTING OPTIONS:') 9360 FORMAT (2E10.4, 12, E10.4, A8) 9370 FORMAT (12, 3E10.4, A8) 9380 FORMAT (IX, A8 , 4X, E10.4, 2X, E10.4, 6X, 14, 4X, E10.4) 9390 FORMAT (IX, A8 , 4X, 14, 4X, E10.4, 2X, E10.4, 2X, E10.4)9400 FORMAT (4X, 'NAME', 4X, 'INDEX', 5X, 'LOWKT' , 7X, 'HIGHKT' ,
6X, 'DHA ') 9410 FORMAT (2X, 14, 2X, E10.4) 9420 FORMAT (' MINERAL TO BE DISSOLVED/PRECIPITATED TO SATURATION:',
' ', A8, 5X, ' Index number: ',13) 9430 FORMAT (' MINERAL TO BE DISSOLVED/PRECIPITATED: ' ,15X,
A8, 5X, ' Index number: ',13) 9440 FORMAT (' REACTION FOR SATURATION: ', 3X, 'ID#', 3X,
'Species ', 5X, 'STOICH COEFF' ) 9450 FORMAT (' Step direction/scaling factor - ', E12.5) 9460 FORMAT (' ', 29X, 13, 3X, A8 , 5X, E12.5)9470 FORMAT (' FRACTION OF BOILING: '.F12.4) 9480 FORMAT (IX,' Number of mixtures - ', 13, ' starting at',
' fraction of solution one = ', F12.4, ' using a step increment of: ', F12.4 )
9481 FORMAT (IX, ' and reading the second water composition from' , ' the file ' ,A)
9482 FORMAT (IX, ' and reading the second water composition from' , /,' the data set following this one. ')
9490 FORMAT (3X, A8 , 5X, E12.5) 9500 FORMAT (3X, A4, 8X, A4, 8X, A3, 8X, A6 , 8X, A3)9510 FORMAT (212, 3E10.4, A8) 9520 FORMAT (3X, A4, 7X, A6 , 5X, A3, 5X, A3, 5X, A4) 9530 FORMAT (IX, A8 , 5X, 12, 5X, F4.1, 5X, F8 . 3 , 5X, IP, E10.4) 9540 FORMAT (3X, A6 , 7X, A3, 5X, A5 , 5X, A5) 9550 FORMAT (12, 3E10.4, A8) 9560 FORMAT (IX, 12, 2X, A8 , 3(5X, E10.4)) 9570 FORMAT (3E10.4, A8) 9580 FORMAT (IX, A8 , 5X, A14, F7 . 2 , 5X, A14, F7.2) 9590 FORMAT (IX, 9(F5.2, Al, A8 , A3)) 9600 FORMAT (512, A80) 9610 FORMAT (' Restart information will be written to the file ',
A) 9710 FORMAT (' Because the Mixing option was chosen in the previous'
' data set, ' ,/, ' the DISSOLUTION/PRECIPITATION option will not be', ' performed on this data set.')
9720 FORMAT (' Because the Mixing option was chosen in the previous' ' data set, ' ,/, ' the MIXING information will not be read from this' ' data set. ' )
9730 FORMAT (' Because the Mixing option was chosen in the previous' ' data set, ' ,/, ' the BOILING option will not be performed on this data' ,
INP 9400 INP 9410 INP 9420 INP 9430 INP 9440 INP 9450 INP 9460 INP 9470 INP 9480 INP 9490 INP 9500 INP 9510 INP 9520 INP 9530INP 9540 INP 9550 INP 9560 INP 9570 INP 9580 INP 9590 INP 9600 INP 9610 INP 9620 INP 9630 INP 9640INP 9650 INP 9660 INP 9670 INP 9680 INP 9690 INP 9700 INP 9710 INP 9720 INP 9730 INP 9740INP 9750 INP 9760 INP 9770 INP 9780 INP 9790 INP 9800 INP 9810 INP 9820 INP 9830 INP 9840 INP 9850 INP 9860 INP 9870 INP 9880 INP 9890 INP 9900 INP 9910 INP 9920 INP 9930 INP 9940 INP 9950 INP 9960 INP 9970
325
set.')END
INP 9980 INP 9990
c c
cccccccccccccccccccccccccccccccccccccccccccc
SUBROUTINE INTIAL (OK, ALK, INFORM, RATIO, GAMMA, TEMP, HITEMP, PRESS, HTOTI, OHTOTI, 1C02, IMC03 , IBMIX, FCCSAT, IEXCH, ISAT, IFHNUM, JCCST)
This routine initializes certain values wtien each new data set is read into solmneqf.
._.__.__.__ --_ _ J _- _ -_-ALFAALKCECCOEFCUNITSDCH4DDCH4DC02DDC02DH2SDDH2SDNH3DDNH3DSEPFCCSATGAMMAHITEMPHTOTIIIBMIXIC02IEXCHIMC03INFORMIOPTI PHASEIPHNUMIRXDPISATJCCSTJC03KT1MMBASENDUMNMAXODUMOHTOTIOKPHHITPPHHITPRESSRATIORXDP
DELINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLINTINTINTINTINTINTINTINTINTINTINTINTINTDBLDBLDBLINTINTCHADBLINTINTINTDBLINTDBL
1Activity of aqueous species iFlag for distribution of carbonate speciesCation exchange capacityStoichiometric coefficient: and Id numberAnalytical input concentrationConcentration of CH4 lost up annulusConcentration of CH4 lost before pH measurementConcentration of C02 lost up annulusConcentration of C02 lost before pH measurementConcentration of H2S lost up annulusConcentration of H2S lost before pH measurementConcentration of NH3 lost up annulusConcentration of NH3 lost before pH measurementDensity of oil at 15 degree CTolerance factor for pH and C02 optionsActivity coefficientIn- situ temperatureSum of H in systemLoop counting variableSwitch for mixing optionSwitch for co2 optionSwitch for exchange/adsorption optionSelects C02 optionFlag to print all the log K values in data baseSwitch for C02 optionGas/Oil/Water gas redistibutionCounter used in PHCALCId number of the aqueous species to be addedCounter used in C020PTSwitch indicating if PHOPT called Is5 timeSwitch to control printing of some headingsEquilibrium constant of the aqueous reactionsCalculated molality of aqueous speciesEquivalence Mole Fraction (initial) on surfaceId of mineral/aqueous complex with K(T) changedGeneral array dimension to allow easy expansionSwitch to indicate a mineral/aqueous complexSum of hydroxide in systemError flag for Lagrange interpolation routineSwitch for ph iterationSwitch for ph iterationsTotal pressureFlag for printing activity ratios of elementsMolal amount of the aqueous species added
INT 0010 INT 0020 INT 0030
=|INT 0040IINT 0050 IINT ooeo
- | INT 0070IINT oosoIINT 0090IINT 0100IINT 0110IINT 0120IINT 0130IINT ouoIINT oisoIINT 0160IINT 0170|INT 0180IINT 0190IINT 0200IINT 0210IINT 0220IINT 0230IINT 0240IINT 0250IINT 0260IINT 0270IINT 0280IINT 0290IINT 0300IINT 0310IINT 0320IINT 0330IINT 0340IINT 0350IINT 0360IINT 0370IINT 0380IINT 0390IINT 0400IINT 04ioIINT 0420IINT 0430IINT 0440IINT 0450IINT 0460IINT 0470IINT 0480IINT 0490IINT osooIINT osio
326
ccccccc
c
SC02 DBL Sum of C02 speciesTAREA DBL Site density per unit areaTCH4M DBL Moles CH4 distributed between oil, water, vaporTC02M DBL Moles C02 distributed between oil, water, vaporTEMP DBL Temperature of the solution when pH was measuredTH2SM DBL Moles H2S distributed between oil, water, vaporXDUM DBL New log K(T) value
INTEGER NMAXPARAMETER (NMAX - 340)
INTEGER ALK, I, IBMIX, IC02 , IDDP, IDN(10,10), IDSAT, IEXCHINTEGER IMC03, INFORM, INSP, IPHASE, IPHNUM, IOPT, IRXDP(IO)INTEGER ISAT, ISCHG(IO) , ISCOMP(IO) , JC03, NDUM(12) , OKINTEGER PHHIT, PPHHIT, RATIO
CHARACTER * 1 ODUM(12)
DOUBLE PRECISION ALFA ( NMAX ), ANALM(NMAX) , CEC , COEF(10,10)DOUBLE PRECISION CUNITS(NMAX) , DCH4, DDCH4, DC02 , DDC02DOUBLE PRECISION DH2S, DDH2S, DNH3, DDNH3, DP, FCCSAT, FIXITDOUBLE PRECISION GAMMA(NMAX) , HITEMP, HTOT, HTOTI , JCCSTDOUBLE PRECISION KCH40L, KC020L, KH2SOL, KRXN(IO)DOUBLE PRECISION KTl(NMAX) , M(NMAX) , MBASE(IO)DOUBLE PRECISION OHTOT, OHTOTI , PH, PRESS, DSEP, RXDP(IO)DOUBLE PRECISION SAREA, SC02 , TAREA, TCH4M, TC02M, TH2SMDOUBLE PRECISION TEMP, WROIL, XDUM(12)
COMMON /AL / NDUM, XDUMCOMMON /CH / ODUMCOMMON /DIST / TC02M, TCH4M, TH2SM, WROIL, KCH40L, KC020L,
KH2SOL, IPHASE, DSEPCOMMON /EXCHAN/ COEF, MBASE, KRXN, CEC, TAREA, SAREA, IDN,
ISCHG, ISCOMP, INSPCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /SAT / IDDP, IDSAT, DP, RXDP, IRXDPCOMMON /TTK / KT1COMMON /ZPH / PHHIT, PPHHIT, JC03 , SC02 , HTOT, OHTOT
HI III III 1 1
IF (IBMIX .LE. 0) THENDO 10 I - 1, 12
ODUM(I) - ' 'NDUM(I) - 0XDUM(I) - O.ODO
10 CONTINUE
DO 20 I - 1, NMAXKT1(I) - O.ODO
20 CONTINUE
JCCST - 0PHHIT - 0
|INT 0520IINT 0530IINT 0540IINT ossoIINT oseoIINT 0570IINT ossoIINT 0590INT 0600INT 0610INT 0620INT 0630INT 0640INT 0650INT 0660INT 0670INT 0680INT 0690INT 0700INT 0710INT 0720INT 0730INT 0740INT 0750INT 0760INT 0770INT 0780INT 0790INT 0800INT 0810INT 0820INT 0830INT 0840INT 0850INT 0860INT 0870INT 0880INT 0890INT 0900INT 0910INT 0920INT 0930|INT 0940INT 0950INT 0960INT 0970INT 0980INT 0990INT 1000INT 1010INT 1020INT 1030INT 1040INT 1050INT 1060INT 1070INT 1080INT 1090
327
INFORMHITEMPOHTOTIALKTEMPHTOTIRATIOPRESS
END IF
IPHNUM =OKDDC02 =DDH2S =DDNH3 -DDCH4 -DC02DH2SDNH3DCH4IOPTIC02IMC03 =FCCSAT =TC02M =TCH4M =TH2SM =IPHASE =DSEPPPHHIT =JC03I SATIEXCH =CECTAREA =
========
000.0.0.0.0.0.0.0.0000.0.0.0.00.00000.0.
0O.ODOO.ODO0O.ODOO.ODO0O.ODO
ODOODOODOODOODOODOODOODO
05DOODOODOODO
ODO
ODOODO
DO 40 I = 1 CUNITS(I)
ALFA(I) GAMMA(I)
40 CONTINUE
, NMAX = O.ODO = O.ODO = O.ODO - l.ODO
DO 50 I = 1, 10 RXDP(I) = 0.0 IRXDP(I) = 0
50 CONTINUE
RETURN END
INT 1100 INT 1110 INT 1120 INT 1130 INT 1140 INT 1150 INT 1160 INT 1170 INT 1180 INT 1190 INT 1200 INT 1210 INT 1220 INT 1230 INT 1240 INT 1250 INT 1260 INT 1270 INT 1280 INT 1290 INT 1300 INT 1310 INT 1320 INT 1330 INT 1340 INT 1350 INT 1360 INT 1370 INT 1380 INT 1390 INT 1400 INT 1410 INT 1420 INT 1430 INT 1440 INT 1450 INT 1460 INT 1470 INT 1480 INT 1490 INT 1500 INT 1510 INT 1520 INT 1530 INT 1540 INT 1550 INT 1560 INT 1570 INT 1580 INT 1590
C == C
DOUBLE PRECISION FUNCTION KHCH4 (TK, MNACLD, P)
Calculates the henry's law coefficient for methane
328
KH4 0010 |KH4 0020 |KH4 0030
MNACLD DBL Sum of Molality * charge / 2 P DBL Partial pressure of methane TK DBL Temperature in kelvin
DOUBLE PRECISION MNACLD, TK, INTRINSIC DEXP
KHCH4 - 26.187DO- (26.991D-3 * TK)- (3380. 7DO / TK)- (27.79D-2 / P)- (14.28D-2 * P / TK)
KHCH4 - DEXP(KHCH4)
RETURNEND
P
+ (0.13647D-2 * P)+ (11.69D-2- (24.09D-2+ (19.19D-5+ (27.78D-5
* MNACLD)/ MNACLD)
* P / MNACLD)* TK * MNACLD)
|KH4 0050 |KH4 0060 |KH4 0070
---- |KH4 0080KH4 0090 KH4 0100 KH4 0110
|KH4 0120KH4 0130KH4 0140KH4 0150KH4 0160KH4 0170KH4 0180KH4 0190KH4 0200KH4 0210KH4 0220KH4 0230
DOUBLE PRECISION FUNCTION KHC02 (T, MU)
Calculates the henry's law coefficient for C02
MU T
DBL Ionic strength DBL Temperature in
of solution kelvin
DOUBLE PRECISION MU, T INTRINSIC DEXP, DLOG
KHC02 =
+ +
KHC02 -
RETURN END
20.244DO (1.0312DO * MU) (0.4445DO / MU) + (255.90DO * MU / T) -
DEXP(KHC02)
(0.016323DO * T) (3629.7 / T) (0.12806D-2 * T * MU) (0.16060D-2 * T / MU)
KHC 00101 VV\C flftOfl
IKHC 0030---------- | KHC 0040
|KHC 0050|KHC 0060 i wiir r\r\~jr\KHC 0080 KHC 0090KHC 0100
i wiir m i r\KHC 0120 KHC 0130 KHC 0140 KHC 0150 KHC 0160 KHC 0170 KHC 0180 KHC 0190 KHC 0200 KHC 0210
DOUBLE PRECISION FUNCTION KHH2S (TK, Ml)
Calculates the henry's law coefficient for H2S
Ml DBL Sum of Molality * charge / 2 TK DBL Temperature in kelvin
KHH 0010 = |KHH 0020 |KHH 0030 |KHH 0040 |KHH 0050 |KHH 0060 |KHH 0070
329
DOUBLE PRECISION TK, Ml INTRINSIC DEXP
KHH2S - 11.416DO + (0.2905DO * Ml) + (.5705DO / Ml) - (46.20DO * Ml / TK)
- (0.007013DO * TK) - (2067. 7DO / TK) - (.0001574DO * TK * Ml) - (.001777DO * TK / Ml)
KHH2S - DEXP(KHH2S)
RETURN END
KHH KHH KHH KHH
| KHH KHH KHH KHH KHH KHH KHH KHH KHH KHH KHH
008000900100011001200130014001500160017001800190020002100220
c
c
f
C _
c
c
c c c c c c c c
DOUBLE PRECISION FUNCTION KHNH3 (TK)
Calculates the henry's law coefficient for ammonia
TK DBL Temperature in kelvin
DOUBLE PRECISION TKINTRINSIC DLOG
KHNH3 - -1816.602DO/TK + 2.27770DO * DLOG(TK) - 73.0179D-4 - 6.4609
KHNH3 - 10 . ODO**KHNH3
RETURNEND
SUBROUTINE LAGINT (XT, YT, X, Y, MAXK, NDIM, OK)
Lagrange interpolation routine.
Variables
C DBL Calculates the interpolation constants CPUMAX DBL Largest positive real value program uses CPUMIN DBL Smallest positive real value program uses DIF INT Difference between upper and lower bound I INT Loop counting variable K INT Fixes the interpolation r^nge LO INT Finds lower bound of interpolation range MAXK INT Total number of values to be found
KHN 0010====== IKHN 0020
IKHN 0030------ | KHN 0040
JKHN 0050
KHN 0070KHN 0080KHN 0090KHN 0100
=====|KHN 0110 KHN 0120
* TK KHN 0130 KHN 0140KHN 0150KHN 0160KHN 0170KHN 0180KHN 0190
LAG 00101 T An 0090 1 j_invj \j\j £f\j
ILAG 0030------ | LAG 0040
(LAG 0050ILAG 0060 JLAG 0070|LAG 0080ILAG 0090 ILAG 0100 ILAG 0110 ILAG 0120 ILAG 0130 ILAG 0140
330
ccccccccccc
/-I
c
MID INT Finds midpoint of interpolation rangeN INT Number of temperature pointsNDIM INT Identifies array dimensionOK INT Error flag for Lagrange interpolation routineUNO INT File unit assigned for output fileUP INT Finds upper bound of interpolation rangeW DBL Holds temperature values around point of interestX DBL The temperature point of interestXT DBL Array of temperature valuesY DBL Final interpolated values at given temperatureYT DBL Data array holding values for temperature point
INTEGER UNODOUBLE PRECISION CPUMINPARAMETER (UNO = 6, CPUMIN = l.OD-35)
INTEGER DIF, I, K, LO, MAXK, MID, N, NDIM, OK, UP
DOUBLE PRECISION C(4) , W(10) , X, XT(ll) , Y(NDIM) , YT (NDIM ,11)
INTRINSIC DABS
N =11LO - 1UP = NMID - 1
DO 10 I = 1, MAXKY(I) = 0.0
10 CONTINUE
IF (X.GT.XT(N) .OR. X.LT.XT(l)) GO TO 90OK = 1
20 CONTINUEDIF - UP - LOIF (DIF .LE .2) GO TO 30MID - (UP + LO + 1) / 2GO TO 40
30 CONTINUEIF (DIF .EQ. 0) GO TO 70MID - LO + 1
40 CONTINUEIF ((DABS (X-XT (MID))) .LT. CPUMIN) GO TO 70IF ((X-XT (MID)) .LT. O.ODO) GO TO 50
X > XT (MID)
LO = MIDGO TO 20
ILAG oisoILAG 0160ILAG 0170JLAG oisoJLAG 0190|LAG 0200ILAG 0210ILAG 0220ILAG 0230ILAG 0240[LAG 0250JLAG 0260LAG 0270LAG 0280LAG 0290LAG 0300LAG 0310LAG 0320LAG 0330LAG 0340LAG 0350LAG 0360LAG 0370ILAG 0380LAG 0390LAG 0400LAG 0410LAG 0420LAG 0430LAG 0440LAG 0450LAG 0460LAG 0470LAG 0480LAG 0490LAG 0500LAG 0510LAG 0520LAG 0530LAG 0540LAG 0550LAG 0560LAG 0570LAG 0580LAG 0590LAG 0600LAG 0610LAG 0620LAG 0630LAG 0640LAG 0650ILAG 0660 ILAG 0670JLAG 0680LAG 0690LAG 0700LAG 0710LAG 0720
331
50 CONTINUEIF ((DABS(X-XT(MID-1))) .GT. CPUMIN) GO TO 60
X - XT(MID-l)
MID = MID - 1 GO TO 70
60 CONTINUEIF ((XT(MID-l)-X) .LT. CPUMIN) GO TO 70
X < XT(MID-l)
UP = MID GO TO 20
70 CONTINUE K - MID - 2 IF (K .LT. 1) K - 1 IF ((K+3) .GT. N) K - N - 3
W(2) =W(3) =W(4) -W(5) =W(6) -W(7) =W(8) -W(9) =W(10) -
DO 80 I
XXXXXT(K)XT(K)XT(K)XT(K+1)XT(K+1)XT(K+2)
- XT(K)- XT(K+1)- XT(K+2)- XT(K+3)- XT(K+1)- XT(K+2)- XT(K+3)- XT(K+2)- XT(K+3)- XT(K+3)
1, MAXK YT(I,K)
C(2) C(3) C(4)
YT(I,K+2) -YT(I,K+3)
(W(5) (W(5) (W(6) (W(7)
* W(6)* W(8)* W(8)* W(9)
* W(7»* W(9»* W(10))* W(10))
80 CONTINUE
RETURN
C(l) * W(2) * W(3) * W(4) C(3) * W(l) * W(2) * W(4)
C(2) * W(l) C(4) * W(l)
LAGLAGLAG
.................|LAG| LAG| LAGLAGLAGLAGLAGLAGLAGLAG
.................|LAG| LAG | LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG LAG
* W(3) * W(4) + LAG* W(2) * W(3) LAG
LAG LAG LAG LAG
Error messages
90 CONTINUE OK - 0
IF (X .GT. XT(N)) WRITE (UNO, 100) X, XT(N)
100 FORMAT (//, ' ', 'X-OUT IN LAGINT X=', El3.6, 2X,
| LAG | LAG LAG LAG LAG LAG LAG
'XT(N)-' , E13.6)LAG LAG
0730074007500760077007800790080008100820083008400850086008700880089009000910092009300940095009600970098009901000101010201030104010501060107010801090110011101120113011401150116011701180119012001210122012301240125012601270128012901300
332
IF (X .LT. XT(1)) WRITE (UNO, 110) X, XT(1) 110 FORMAT (//, ' ', 'X-OUT IN LAGINT X-', E13.6, 2X,
RETURN END
LAG 1310'XT(l)-', E13.6)LAG 1320
LAG 1330 LAG 1340 LAG 1350
r\jcccccc
r\J
INTEGER FUNCTION LENGTH (STRING)
Returns the length of the non-blank portion of avariable
L INT Length pointerSTRING CHA Variable for which the length is
INTEGER LCHARACTER * 80 STRING
L - 80
10 CONTINUEIF (L .GT. 1 .AND. STRING(L:L) .EQ. ' ') THENL - L - 1GO TO 10
END IF
IF ( STRING (L:L) .NE. ' ') THENLENGTH = L
ELSELENGTH - 1
END IF
RETURN
END
LEN 0010= 1 LEN 0020
character |LEN 0030JLEN 0040
................. | LEN 0050JLEN 0060
to be determined JLEN 0070................. j LEN 0080
LEN 0090LEN 0100LEN 0110
__________ | LEN 0120 LEN 0130LEN 0140LEN 0150LEN 0160LEN 0170LEN 0180LEN 0190LEN 0200LEN 0210LEN 0220LEN 0230LEN 0240LEN 0250LEN 0260LEN 0270LEN 0280LEN 0290LEN 0300
SUBROUTINE MIXER (TEMP, Ml, PRESS, DENS, ICALL, ISALT, IRUN, MXSP, FCCSAT, PH20, IPRIN2, MXMNK)
Precipitation/dissolution, Mixing, and Boiling options
MIX 0010 MIX 0020
=-|MIX 0030|MIX 0040
.__..__.___.___..__...__.._......_................_._....___...._.j MIX 0050A1MIX DBL HTOT, OHTOT, TIC of first solution/original water(MIX 0060ADD DBL The amount of material being added/subtracted JMIX 0070ADDMIN DBL Record of the amount of mineral added (MIX 0080ADENS DBL Density of first water in mixing JMIX 0090ALFA DBL Activity of aqueous species i JMIX 0100AMOL DBL Amount in moles to be added |MIX 0110ANALM DBL Analyzed molality of species i (MIX 0120ANMMIX DBL Stored values for first water (MIX 0130
333
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
ATEMPB2MIXBDENSBNMMIXBTEMPBUFFERCOFFACCPUMINCROSSDELTADENSDFRAC1DIFDINGDONEDPDUM2EQCEQHERROREXELTFBOILFCCSATFFBFMIXHEQIIADDIBOILIBTOTI CALLICDICSIDDPIDMINIDMIXIDSATIHIDINDXINMIXIPGLNIPRIN2IRUNIRXDPI SALTISTFITMIXJJJKKCH4KC02KH2SKNH3LOGKT2MMlMINDIM
DELDELDELDELDELCHADELDELLOGDELDELDELDELDELLOGDELCHADELDELLOGDELDELDELDELDELDELINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTDELDELDELDELDELDELDELINT
Temperature of solution A |MIX 0140HTOT, OHTOT, TIC of second water |MIX 0150Density of second water in mixing |MIX 0160Stored values for second water JMIX 0170Temperature of solution £ |MIX 0180Buffer for Character manipulation JMIX 0190Component Coef. for dissolving phase JMIX 0200Smallest positive real value program uses JMIX 0210Have we crossed the root yet? |MIX 0220Temperary storage to find min. component JMIX 0230Density |MIX 0240Smallest fraction of soln 1 mixed with soln 2 JMIX 0250Difference used in testing |MIX 0260Increment of solution 1 to be added JMIX 0270Are we done? JMIX 0280Dissolution/precipitation switch JMIX 0290Character array with names of gases |MIX 0300Equivalent amount of carbon in 1 mole of comp. JMIX 0310 Equivalent amount of hydrogen in 1 mole of comp. |MIX 0320Is everything ok? JMIX 0330Total mass of components JMIX 0340Fraction of solution boiled-off as steam JMIX 0350Tolerance factor for pH and C02 options JMIX 0360Fraction of boiling (1 / (1-fboil)) |MIX 0370Mixtures to be examined JMIX 0380Coef. for H containing components JMIX 0390Loop variable JMIX 0400Index for positioning in adding mineral arrays JMIX 0410Index of number of boiling points stored JMIX 0420Count for number of boiling iterations JMIX 0430Switch for calling this routine JMIX 0440Index for mineral being dissolved JMIX 0450Index for mineral to saturate with JMIX 0460Id number of the mineral to be dissolved/ppt JMIX 0470Id number of the mineral to be dissolved/ppt JMIX 0480Id number of the aqueous species to be added JMIX 0490Id number of the mineral to be equilibrated JMIX 0500Index of H containing components JMIX 0510Index used for checking components JMIX 0520Total number of mixtures of two solution mixed JMIX 0530Current line number of the output file JMIX 0540Print switch JMIX 0550Keeps track if this is first or second mixture JMIX 0560Id number of the aqueous species to be added [MIX 0570Switch used in mixer to indicate option |MIX 0580Temp, storage used in reading MIX 0590Switch for the mineral saturation option |MIX 0600Loop variable JMIX 0610Loop variable and counter JMIX 0620Loop variable and counter JMIX 0630Henrys law coef for CH4 |MIX 0640Henrys law coef for C02 |MIX 0650Henrys law coef for H2S JMIX 0660Henrys law coef for NH3 JMIX 0670Log K for minerals at specified temperature JMIX 0680Calculated molality of aqueous species JMIX 0690Sum of Molality * charge / 2 |MIX 0700Parameter ... dimension of various arrays JMIX 0710
334
cccccccccccccccccccccccccccccccccccc
ccc
MINDP LOG Switch . . . dissolving a mineral?MINSAT LOG Switch . . . saturating with a mineral?MXMNK INT Total number of mineral log k valuesMXSP INT Total number of aqueous speciesNGAST DEL Values guessed for rootNL DEL Number of moles in liquidNMAX INT General array dimension to allow easy expansionNV DEL Number of moles in vapourPAGE1 CHA Names of aqueous speciesPAGES CHA Names of solubility constantsPH20 DEL Pressure of waterPRESS DEL Total pressureR DEL Gas constantREVERS LOG OK to reverse direction in root finding?RXDP DEL Molal amount of the aqueous species addedSIMIN DEL SI of mineral being saturated with. Tested.STEP DEL Amount of volatile to add/remove from liquidSTEPSZ DEL Scaling factor (parameter) in diss/ppt mineralsSTF DEL Temp, storage used in readingSTOFAC DEL Stoich. Coef . for material being added/removedTEMP DEL Current temperatureTITMIX CHA Title for mixturesTITR DEL Iteration array in DISTRB, used for guessesTK DEL Temperature in KTOP CHA Places a form feed in output fileTOTEL DEL Contains HTOT, OHTOT and Sum C02TRY DEL Next amount of volitiles in h2o (used in boiling)UNO INT File unit assigned for output fileUNR INT Unit to read data fileVDEN DEL Vapour densityVRCH4 DEL Volatility ratio for CH4VRC02 DEL Volatility ratio for C02VRH2S DEL Volatility ratio for H2SVRNH3 DEL Volatility ratio for NH3VRT DEL Used in calculated volatility ratioX DEL Temporary storage
INTEGER MINDIM, NMAX, UNO, UNRDOUBLE PRECISION CPUMIN, R, STEPSZPARAMETER (MINDIM - 20, NMAX - 340, UNO - 6, UNR = 12)PARAMETER (CPUMIN - l.OD-35, R - 83.14241D-3, STEPSZ = l.OD-02)
R is 83.15 (bar cm**3 / deg mole) times divided by 1000(1 kg water). The density of the gas is in cm**3/gram, hense55.51 is implied.
INTEGER I, IADD, IBOIL, IBTOT, ICALL, ICD, ICSINTEGER IDDP, IDMIX(50) , IDMIN(IO) , IDSAT, IDSP(IO)INTEGER IHID(IO), INDX, INMIX, IPAGE, IPGLN, IPRIN2INTEGER IRUN, IRXDP(IO) , I SALT, I STF (10) , ITMIXINTEGER J, JJ, K, MXMNK, MXSP
LOGICAL DONE, MINSAT, MINDP, ERROR, CROSS, REVERS
CHARACTER * 1 TOF, CR
JMIX 0720JMIX 0730JMIX 0740|MIX 0750|MIX 0760|MIX 0770|MIX 0780|MIX 0790JMIX 0800JMIX 0810JMIX 0820JMIX 0830JMIX 0840|MIX 0850JMIX 0860JMIX 0870|MIX 0880|MIX 0890JMIX 0900JMIX 0910JMIX 0920JMIX 0930|MIX 0940JMIX 0950|MIX 0960JMIX 0970|MIX 0980|MIX 0990JMIX 1000IMIX 1010JMIX 1020JMIX 1030IMIX 1040IMIX 1050JMIX 1060IMIX 1070JMIX losoMIX 1090MIX 1100MIX 1110MIX 1120MIX 1130MIX 1140|MIX 1150IMIX 1160IMIX 1170JMIX 1180JMIX 1190MIX 1200MIX 1210MIX 1220MIX 1230MIX 1240MIX 1250MIX 1260MIX 1270MIX 1280MIX 1290
335
CHARACTER * 5 DUM2(4) MIX 1300CHARACTER * 8 PAGEl(NMAX) , PAGE2(NMAX), PAGE3(NMAX) MIX 1310CHARACTER * 40 TITMIX, BUFFER MIX 1320
MIX 1330DOUBLE PRECISION ATCPRD, ADD, ADDMIN(MINDIM) , ADENS, ALFA(NMAX) MIX 1340DOUBLE PRECISION AMOL(50), ANALM(NMAX) , ANMMIX(NMAX) , ATEMP MIX 1350DOUBLE PRECISION AlMIX(5) , BDENS, BNMMIX(^MAX) , BTEMP, B2MIX(5) MIX 1360DOUBLE PRECISION COFFAC(IO) , CUNITS(NMAX) MIX 1370DOUBLE PRECISION DELTA, DENS, DFRAC1 , DIF(4,9), DING, DP MIX 1380DOUBLE PRECISION EQC, EQH, EXELT(35) MIX 1390DOUBLE PRECISION FBOIL, FCCSAT, FFB, FMIX(IO) MIX 1400DOUBLE PRECISION HEQ(IO) , LOGKTl(NMAX) , L(DOUBLE PRECISION KCH4, KHCH4, KC02 , KHC02DOUBLE PRECISION KNH3 , KHNH3 , M(NMAX) , MlDOUBLE PRECISION PH, PH20, PRESS, RXDP ( 10 ]DOUBLE PRECISION SIMIN(MINDIM) , STEP(4) , !
)GKT2(NMAX) MIX 1410KH2S, KHH2S MIX 1420NGAST(9), NL(4), NV(4) MIX 1430
MIX 14405TF(10), STOFAC(IO) MIX 1450
DOUBLE PRECISION TEMP, TITR(ll) , TK, TOTEL(5) , TRY(4,9) MIX 1460DOUBLE PRECISION VDEN, VRT, VRCH4, VRC02 , VRH2S, VRNH3, X MIX 1470
MIX 1480EXTERNAL ATCPRD, DPVT, GUESS, KHCH4, KHC02 , KHH2S , KHNH3 , SORTA MIX 1490EXTERNAL PAGE
INTRINSIC DABS, INDEX, LEN, MIN
COMMON /ALOGK / LOGKTl, LOGKT2COMMON /AMM / IDMIX, AMOL, ITMIX, INMIXCOMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / I PAGE, IPGLNCOMMON /MM / ANMMIX, A1MIX, B2MIX, FMD
ATEMP, BTEMP
MIX 1500MIX 1510MIX 1520MIX 1530MIX 1540
DFRAC1, DING, FBOIL MIX 1550MIX 1560MIX 1570MIX 1580
:, BNMMIX, ADENS, BDENS, MIX 1590MIX 1600
COMMON /MOLS / PH, ANALM, M, ALFA, CUNITS MIX 1610COMMON /NAMES I/ PAGE1, PAGE2 , PAGE3 MIX 1620COMMON /SAT / IDDP, IDSAT, DP, RXDP, IRXDP MIX 1630
SAVE ADDMIN, COFFAC, CROSS, DIF, DONESAVE IADD, IBOIL, IBTOT, ICS , ICD, IDMIN,SAVE MINDP, MINSAT, NGAST, NL, NV, REVERSSAVE TRY, VRCH4, VRC02 , VRH2S, VRNH3
DATA HEQ /l.O, 1.0, -1.0, 4.0, 2.0, -3.0
MIX 1640MIX 1650
IDSP MIX 1660SIMIN, STEP, STOFAC MIX 1670
MIX 1680MIX 1690
-1.0, 2.0, 1.0, O.O/ MIX 1700DATA IHID / 7, 8, 9, 12, 28, 31, 32, 33, 49, O/ MIX 1710
C
CCC
DATA DUM2 /' C02 ' , ' NH3', ' H2S', '
Store solution parameters if first call
CH4'/ MIX 1720MIX 1730
a = 1 MTY 1 7 h.0| H-L.A. J. / *+VJ
MIX 1750........................ | MIX 1760
JMIX 1770totel: (1) = htot; (2) = ohtot; (3) = tic (MIX 1780
IF (ICALL .EQ. 1) THENDO 10 I - 1, 5AIMIX(I) - TOTEL(I)
10 CONTINUE
DO 20 I - 1, MXSP + 44ANMMIX(I) - ANALM(I)
.................. ......\ MIX 1790MIX 1800MIX 1810MIX 1820MIX 1830MIX 1840MIX 1850MIX 1860MIX 1870
336
cccccc
20 CONTINUE
ADENS - DENSATEMP = TEMP
END IF
icall = 1; isalt = 0 -- first call for mixing two solutionsicall = 1; isalt = 1 -- first call for mixing speciesicall = 1; isalt - 2 -- first call for boiling a solutionicall = 1; isalt = 3 -- first call for diss/precip. of a mineral
IF (ICALL .EQ. 1 .AND. ISALT .EQ. 0) THENIF (IPGLN .GT. 55) CALL PAGEIPGLN = IPGLN + 4WRITE (UNO, 1250)IRUN = 1RETURN
ELSE IF (ICALL .EQ. 1 .AND. ISALT .EQ. 1 .AND. ITMIX .GT. 0) THENIF (IPGLN .GT. (59-8-ITMIX)) CALL PAGEIPGLN - IPGLN + 5WRITE (UNO, 1070)DO 40 I - 1, ITMIX
INDX - IDMIX(I)IF (INDX .EQ. 11) INDX - 12EQH - O.ODOODO 30 J - 1,9
IF (INDX .EQ. IHID(J)) EQH - HEQ(J)30 CONTINUE
IF (DABS(EQH) .GT. CPUMIN) TOTEL(l) = TOTEL(l) +(EQH * AMOL(I))
EQC =0.0IF (INDX .EQ. 7) EQC - 1.0IF (INDX .EQ. 98) EQC - 1.0IF (INDX .EQ. 207) EQC = 1.0IF (INDX .EQ. 208) EQC - 2.0IF (INDX .EQ. 209) EQC - 3.0IF (DABS (EQC) .GT. CPUMIN) TOTEL(3) - TOTEL(3) +
(EQC * AMOL(I))
ANALM(INDX) = ANALM(INDX) + AMOL(I)IPGLN - IPGLN + 1WRITE (UNO, 1080) INDX, PAGEl(INDX) , AMOL(I) , EQH, EQC
IF (ANALM(INDX) .LT. 0.0 .AND. ANMMIX(INDX) .GT. 0.0) THENWRITE (UNO, 1100) PAGEl(INDX), AMOL(I) , ANMMIX(INDX)STOP
END IF
40 CONTINUEIPGLN - IPGLN + 3WRITE (UNO, 1090)ICALL = 3J = 0
DO 50 I - 1, 28
MIX 1880MIX 1890MIX 1900MIX 1910MIX 1920MIX 1930|MIX 1940JMIX 1950JMIX 1960|MIX 1970|MIX 1980JMIX 1990MIX 2000MIX 2010MIX 2020MIX 2030MIX 2040MIX 2050MIX 2060MIX 2070MIX 2080MIX 2090MIX 2100MIX 2110MIX 2120MIX 2130MIX 2140MIX 2150MIX 2160MIX 2170MIX 2180MIX 2190MIX 2200MIX 2210MIX 2220MIX 2230MIX 2240MIX 2250MIX 2260MIX 2270MIX 2280MIX 2290MIX 2300MIX 2310MIX 2320MIX 2330MIX 2340MIX 2350MIX 2360MIX 2370MIX 2380MIX 2390MIX 2400MIX 2410MIX 2420MIX 2430MIX 2440MIX 2450
337
ccc
ccccc
cccccc
J - J + 1IF (J .EQ. 8) J - 12IF (J .EQ. 17) J - 18IF (J .EQ. 19) J - 21IF (J .EQ. 24) J - 25IF (J .EQ. 34) J - 48IF (J .EQ. 49) J - 169IF (J .EQ. 170) J - 210EXELT(I) - ANALM(J)
50 CONTINUE
EXELT(29) - ANALM(7)EXELT(30) - ANALM(246)EXELT(31) - ANALM(265)EXELT(32) - ANALM(136)EXELT(33) - ANALM(MXSP+1)EXELT(34) - ANALM(MXSP+16)EXELT(35) - ANALM(MXSP+31)
TITR( 1) - EXELT(29)TITR( 2) - EXELT( 6)TITR( 3) - EXELT(22)TITR( 4) - EXELT(21)TITR( 5) - EXELT( 5)TITR( 6) - EXELT(26)TITR( 7) - EXELT(25)TITR( 8) - EXELT(30)TITR( 9) - EXELT(31)TITR(IO) - EXELT(33)TITR(ll) - EXELT(34)
RETURNEND IF
Precipitation / dissolution of a mineral
MIX 2460MIX 2470MIX 2480MIX 2490MIX 2500MIX 2510MIX 2520MIX 2530MIX 2540MIX 2550MIX 2560MIX 2570MIX 2580MIX 2590MIX 2600MIX 2610MIX 2620MIX 2630MIX 2640MIX 2650MIX 2660MIX 2670MIX 2680MIX 2690MIX 2700MIX 2710MIX 2720MIX 2730MIX 2740MIX 2750MIX 2760MIX 2770MIX 2780MIX 2790
1 MTV 1 Of\f\________________________| Ml A zoUU
(MIX 2810i MTV i o on____________________.___| Ml A ZoZU
MIX 2830L _______________________ | MIX 2840
On first call, read the dissolution reactions of the minerals, |MIX 2850one at a time, and store the one required. If we are dissolving JMIX 2860/ppt a fixed amount of mineral, this will be the only call. (MIX 2870
1 MTV OQQft____________-___________| Ml A ZooU
MIX 2890i MTV oonn________________________| Ml A z.y(J(J
The following open statement have been changed out by |MIX 2910Ernie Perkins (ORSD, ARC) in order to allow an command JMIX 2920proceedure under VMS 4.5 on DEC VAX's toexternal to the program.
assign the files |MIX 2930JMIX 29401 MTV OQ^ft________________________| Ml A z.yD(J
MIX 2960IF ((ISALT .EQ. 3 .OR. (ISALT .EQ. 1 .AND. ITMIX ,LT. 0)) .AND. MIX 2970
C
ICALL .EQ. 1) THENANMMIX(7) - TOTEL(3)OPEN (UNR, FILE - 'RXN.TBL' , STATUS -
MIX 2980MIX 2990
'OLD', IOSTAT - K) MIX 3000OPEN (UNR, STATUS - 'OLD', shared, readonly, IOSTAT - K) MIX 3010
IF (K .NE. 0) THENIF (IPGLN .GE. 55) CALL PAGE
MIX 3020MIX 3030
338
IPGLN - IPGLN + 4WRITE (UNO, 1030)STOP
END IF
MINSAT - .FALSE.MINDP = .FALSE.IF (IDDP .EQ. 0) MINDP - .TRUE.IF (IDSAT .EQ. 0) MINSAT - .TRUE.
ERROR - .FALSE.DO 80 J - 1, MXMNK
READ (UNR, 1000, IOSTAT=K) I, (STF(JJ) , ISTF(JJ) , JJ-1,10)IF (K .NE. 0) THEN
IF (IPGLN .GT. 55) CALL PAGEIPGLN - IPGLN + 5WRITE (UNO, 1040) JSTOP
END IFIF (.NOT. MINSAT) THEN
IF (IDSAT .EQ. I) THENMINSAT = .TRUE.ICS = 0DO 60 K = 1, 10
IDSP(K) = ISTF(K)COFFAC(K) = STF(K)IF (DABS(COFFAC(K)) .GT. CPUMIN) ICS = K
60 CONTINUEIF (STF(l) .GT. 900.) THENERROR = .TRUE.IF (IPGLN .GT. 56) CALL PAGEIPGLN = IPGLN + 3WRITE (UNO, 1050) PAGE3(I)
END IFEND IF
END IFIF (.NOT. MINDP) THEN
IF (IDDP .EQ. I) THENMINDP = .TRUE.ICD = 0DO 70 K - 1, 10
IDMIN(K) - ISTF(K)STOFAC(K) = STF(K)IF (DABS(STOFAC(K)) .GT. CPUMIN) ICD=K
70 CONTINUEIF (STF(l) .GT. 900.) THENERROR = .TRUE.IF (IPGLN .GT. 56) CALL PAGEIPGLN - IPGLN + 3WRITE (UNO, 1050) PAGE3(I)
END IFEND IF
END IF
C -----------------------.-.-._.............C In the absence of an ANSI standard WHILE statement
MIX 3040MIX 3050MIX 3060MIX 3070MIX 3080MIX 3090MIX 3100MIX 3110MIX 3120MIX 3130MIX 3140MIX 3150MIX 3160MIX 3170MIX 3180MIX 3190MIX 3200MIX 3210MIX 3220MIX 3230MIX 3240MIX 3250MIX 3260MIX 3270MIX 3280MIX 3290MIX 3300MIX 3310MIX 3320MIX 3330MIX 3340MIX 3350MIX 3360MIX 3370MIX 3380MIX 3390MIX 3400MIX 3410MIX 3420MIX 3430MIX 3440MIX 3450MIX 3460MIX 3470MIX 3480MIX 3490MIX 3500MIX 3510MIX 3520MIX 3530MIX 3540MIX 3550MIX 3560MIX 3570
-|MIX 3580 |MIX 3590
- |MIX 3600MIX 3610
339
cccccccccccc
ccccc
IF (MINSAT .AND. MINDP) GO TO 9080 CONTINUE
IF (.NOT. MINSAT) THENIF (IPGLN .GT. 54) CALL PAGEIPGLN = IPGLN + 5WRITE (UNO, 1010) IDSAT
END IF
IF (.NOT. MINDP) THENIF (IPGLN .GT. 54) CALL PAGEIPGLN = IPGLN + 5WRITE (UNO, 1020) IDDP
END IF
IF ((.NOT. MINDP .OR. .NOT. MINSAT) .OR. ERROR) STOP
90 CONTINUEIF (IDSAT .EQ. 0) MINSAT = .FALSE.IF (IDDP .EQ. 0) MINDP = .FALSE.
CLOSE (UNR)
END IF
The appropriate reactions have been found. Make titles.Prepare the first step/take the first step
IDDP > 0 IDSAT > 0 ITMIX = 0 Dissolve/ppt IDDP til saturationwith IDSAT
IDDP = 0 IDSAT > 0 ITMIX = 0 dissolve/remove aqueous componentstil saturation with IDSAT
IDDP > 0 IDSAT = 0 ITMIX < 0 dissolve a specified amount ofIDSAT (note that this is specifiedby I CALL-1, I SALT-1, and ITMIX<0)
IF (ISALT .EQ. 3 .AND. ITMIX .EQ. 0 .AND. MINSAT.AND. ICALL .EQ. 1 .AND. MINDP ) THEN
IF (DP .LT. (CPUMIN * (-1.0))) THENTITMIX = PAGE3(IDDP)//' PRECIPITATED
ELSE IF (DP .GT. CPUMIN) THENTITMIX = PAGE3(IDDP)//' DISSOLVED
ELSETITMIX = PAGE3(IDDP)//' PPT/DISS
END IFELSE IF (ISALT .EQ. 3 .AND. ITMIX .EQ. 0 .AND. MINSAT
.AND. ICALL .EQ. 1 .AND. .NOT. MINDP) THEN
If we are adding components, make up name, use * fornon- trivial blanks, remove all other blaflks , thenchange * to blank
K =1ICD = 0
MIX 3620MIX 3630MIX 3640MIX 3650MIX 3660MIX 3670MIX 3680MIX 3690MIX 3700MIX 3710MIX 3720MIX 3730MIX 3740MIX 3750MIX 3760MIX 3770MIX 3780MIX 3790MIX 3800MIX 3810MIX 3820MIX 3830MIX 3840MIX 3850MIX 3860|MIX 3870|MIX 3880JMIX 3890|MIX 3900(MIX 3910(MIX 3920JMIX 3930(MIX 3940|MIX 3950|MIX 3960(MIX 3970|MIX 3980MIX 3990MIX 4000MIX 4010MIX 4020MIX 4030MIX 4040MIX 4050MIX 4060MIX 4070MIX 4080MIX 4090MIX 4100MIX 4110|MIX 4120JMIX 4130(MIX 4140(MIX 4150|MIX 4160MIX 4170MIX 4180MIX 4190
340
DO 130 I - 1, 10IF (IRXDP(I) .NE. 0) THEN
IDMIN(I) - IRXDP(I) ICD = ICD + 1 STOFAC(I) = RXDP(I)
END IFIF (IRXDP(I) .NE. 0 .AND. K .LE. LEN(TITMIX)) THEN
IF (K .NE. 1) THENBUFFER(1:1) - '*'
ELSEBUFFER(1:1) = ' '
END IFWRITE (BUFFER(2:11), '(F10.3)') RXDP(I) BUFFER(12:22) - ' ( '
100
110
PAGE1(IRXDP(I) )
CONTINUEJJ = INDEX(BUFFER,'0IF (JJ .NE. 0) THENBUFFER(JJ:JJ) - 'GO TO 100
END IF CONTINUEJJ = INDEX(BUFFER,'. IF (JJ .NE. 0) THENBUFFER(JJ:JJ) - 'GO TO 110
END IF DO 120 JJ = 1, 22
IF (BUFFER(JJ:JJ) K
.NE. ' ' .AND.LE. LEN(TITMIX)) THEN
120
130
140
TITMIX(K:K) - BUFFER(JJ:JJ) K = K + 1
ELSE IF (K .GT. LEN(TITMIX)) THEN K = LEN(TITMIX) TITMIX(K-2:K) = K = K + 10 GO TO 110
END IF CONTINUE
END IF CONTINUE
DO 140 I = 1, KIF (TITMIX(I:I) .EQ. '*') TITMIX(I:I)
CONTINUE
ELSE IF (ITMIX .LT. 0 .AND. ICALL .EQ. 1IF (IPGLN .GT. (59-8-ITMIX)) CALL PAGEIPGLN = IPGLN + 5WRITE (UNO,1110) PAGE3(IDDP)DO 160 I = 1, 10
INDX = IDMIN(I) IF (INDX .LE. 0) GO TO 160 IF (INDX .EQ. 11) INDX = 12
.AND. ISALT .EQ,
EQH = O.ODOO DO 150 J = 1, 9
IF (INDX .EQ. IHID(J)) EQH HEQ(J)
MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX
1 ) THENMIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX
4200421042204230424042504260427042804290430043104320433043404350436043704380439044004410442044304440445044604470448044904500451045204530454045504560457045804590460046104620463046404650466046704680469047004710472047304740475047604770
341
150 CONTINUEIF (DABS(EQH) .GT. CPUMIN) TOTEL(l)
160
170
TOTEL(l) + (AMOL(l) * STOFAC(I) *EQC)
EQC - 0.0 IF (INDX .EQ. IF (INDX .EQ. IF (INDX .EQ. IF (INDX .EQ. IF (INDX .EQ
7) EQC98) EQC
207) EQC208) EQC209) EQC
1.0 2.0 3.0
IF (DABS(EQC) .GT. CPUMIN) TOTEL(3) = TOTEL(3) + (AMOL(l) *STOFAC(I) * EQC)
ANALM(INDX) = ANALM(INDX) + (AMOL(l) * STOFAC(I)) IPGLN - IPGLN + 1WRITE (UNO,1080) INDX, PAGEl(INDX), (AMOL(1)*STOFAC(I)),
EQH, EQC
IF (ANALM(INDX) .LT. 0.0 .AND. ANMMIX(INDX) .GT. 0.0) THEN WRITE (UNO, 1100) PAGEl(INDX), (AtyOL(I) * STOFAC(I)),
ANMMIX(INDX) STOP
END IF
CONTINUEIPGLN = IPGLN + 3 WRITE (UNO,1090) ICALL = 3
J = 0DO 170 I -
J = J + 1IF (J IF (J IF (J IF (J IF (J IF (J
EQ. EQ. EQ. EQ. EQ. EQ. EQ.
EXELT(I) CONTINUE
28
8) J17) J19) J24) J34) J49) J
IF (J 170) J ANALM(J)
1218212548169210
EXELT(29) EXELT(30) EXELT(31) EXELT(32) EXELT(33) EXELT(34) EXELT(35)
TITR( 1) TITR( 2) TITR( 3) TITR( 4) -TITR( 5) TITR( 6) -TITR( 7) -TITR( 8) -
= ANALM(7)- ANALM(246)- ANALM(265) = ANALM(136) = ANALM(MXSP+1) = ANALM(MXSP+16)- ANALM(MXSP+31)
EXELT(29) EXELT( 6) EXELT(22) EXELT(21) EXELT( 5) EXELT(26) EXELT(25) EXELT(30)
MIX 4780 MIX 4790 MIX 4800 MIX 4810 MIX 4820 MIX 4830 MIX 4840 MIX 4850 MIX 4860 MIX 4870 MIX 4880 MIX 4890 MIX 4900 MIX 4910 MIX 4920 MIX 4930 MIX 4940 MIX 4950 MIX 4960 MIX 4970 MIX 4980 MIX 4990 MIX 5000 MIX 5010 MIX 5020 MIX 5030 MIX 5040 MIX 5050 MIX 5060 MIX 5070 MIX 5080 MIX 5090 MIX 5100 MIX 5110 MIX 5120 MIX 5130 MIX 5140 MIX 5150 MIX 5160 MIX 5170 MIX 5180 MIX 5190 MIX 5200 MIX 5210 MIX 5220 MIX 5230 MIX 5240 MIX 5250 MIX 5260 MIX 5270 MIX 5280 MIX 5290 MIX 5300 MIX 5310 MIX 5320 MIX 5330 MIX 5340 MIX 5350
342
TITR( 9) - EXELT(31)TITR(IO) - EXELT(33)TITR(ll) - EXELT(34)RETURN
ELSE IF (ICALL .EQ. 1 .AND. ISALT .EQ. 3) THENIF (IPGLN .GT. 55) CALL PAGE
IPGLN - IPGLN + 4WRITE (UNO, 1060) ITMIX, IDSAT, IDDPSTOP
END IF
IF (IDDP .NE. 0 .AND. IPRIN2 .NE. 0) THENIF (IPGLN .GT. 56) CALL PAGEIPGLN - IPGLN + 2WRITE (UNO, 1120) PAGE3(IDDP), TITMIX(9:25)
END IF
C Prepare first steps ....
IF (ISALT .EQ. 3 .AND. ITMIX .EQ. 0 .AND. ICALL .EQ. 1) THENIADD - 1JJ - 1SIMIN(IADD) - ATCPRD (ICS, IDSP, COFFAC, ALFA)SIMIN(IADD) - SIMIN(IADD) - LOGKT2 (IDSAT)ADDMIN(IADD) - 0.0IF (DABS (SIMIN( IADD)) .LT. FCCSAT) THEN
ICALL - 1IF (IPGLN .GT. 55) CALL PAGEIPGLN - IPGLN + 3WRITE (UNO, 1150) TITMIX, ADDMIN(IADD)RETURN
END IFJ - 0DELTA - 1000.0DO 190 I - 1, 10
IF (IDSP(I) .NE. 0) THENIF (M(IDSP(I)) .LT. DELTA .AND.
M(IDSP(I)) .GT. CPUMIN) THENDO 180 K - 1, 10
IF (IDMIN(K) .EQ. IDSP(I)) THENIF (STOFAC(K) .GT. 0) THEN
J - 1ELSE
J - -1END IFDELTA - M(IDSP(I))
END IF180 CONTINUE
END IFEND IF
190 CONTINUE
IF (DABS (DP) .GT. CPUMIN) THENADD - STEPSZ * DPREVERS - .FALSE.
ELSE IF ((SIMIN(IADD) .LT. 0.0 .AND. J .GE. 0) .OR.
MIX 5360MIX 5370MIX 5380MIX 5390MIX 5400MIX 5410MIX 5420MIX 5430MIX 5440MIX 5450MIX 5460MIX 5470MIX 5480MIX 5490MIX 5500MIX 5510MIX 5520
i MTV > <>^n- - | nlA jj j(J |MIX 5540
--|MIX 5550MIX 5560MIX 5570MIX 5580MIX 5590MIX 5600MIX 5610MIX 5620MIX 5630MIX 5640MIX 5650MIX 5660MIX 5670MIX 5680MIX 5690MIX 5700MIX 5710MIX 5720MIX 5730MIX 5740MIX 5750MIX 5760MIX 5770MIX 5780MIX 5790MIX 5800MIX 5810MIX 5820MIX 5830MIX 5840MIX 5850MIX 5860MIX 5870MIX 5880MIX 5890MIX 5900MIX 5910MIX 5920MIX 5930
343
.GT. 0.0ADDREVERS
ELSEADDREVERS
END IFIF (DABS(DP) .LT. CPUMIN) DP ADDMIN(IADD+1) = ADD CROSS = .FALSE.
(SIMIN(IADD) = STEPSZ = .TRUE.
STEPSZ * (-1.0) .TRUE.
.AND. J .LT. 0)) THEN
1.ODOO
ELSE IF (ISALT .EQ. 3 .AND. ICALL .GT. 1) THEN IADD = IADD + 1SIMIN(IADD) = ATCPRD (ICS, IDSP, COFFAC, ALFA) SIMIN(IADD) = SIMIN(IADD) - LOGKT2(IDSAT) IF (DABS(SIMIN(IADD)) .LT. FCCSAT) THE1*
ICALL = 1IF (IPGLN .GT. 55) CALL PAGEIPGLN = IPGLN + 3WRITE (UNO,1150) TITMIX, ADDMIN(IADD)RETURN
END IF
IF (.NOT. CROSS) THENIF ((SIMIN(IADD) * SIMIN(IADD-l)) .LT. 0.0) THEN
CROSS = .TRUE.ELSE IF (DABS(SIMIN(IADD)) .LT. DABS(SIMIN(IADD-1))) THEN ADD = ADDMIN(IADD) * 10.0 REVERS = .FALSE.
ELSE IF (REVERS) THEN ADD = ADD * (-0.5) IF ((DABS(ADD - ADDMIN(IADD))) .LT. l.OE-12) THENWRITE (UNO, 1140) PAGE3(IDSAT), StlMIN(IADD), ADDMIN(IADD) STOP
END IF ELSEADD = (ADDMIN(IADD) - ADDMIN(IADD-l)) / 2.0IF ((DABS (ADD) - DABS(ADDMIN( IADD) ):) .LT. l.OE-12) THENWRITE (UNO, 1140) PAGE3(IDSAT), SIMIN(IADD), ADDMIN(IADD) STOP
END IF END IF
END IF JJ = IADD IF (CROSS) THENCALL SORTA(ADDMIN, SIMIN, IADD, JJ)
DO 200 I - 2, IADD J - I - 1IF ((SIMIN(I) * SIMIN(J))
200 CONTINUE
ELSEJ - 6
END IF210 IF (IADD .GT. 6) THEN
IF (J .GT. 3) THEN DO 220 I - 1, IADD-1
.LT. 0.0) GO TO 210
MIX 5940 MIX 5950 MIX 5960 MIX 5970 MIX 5980 MIX 5990 MIX 6000 MIX 6010 MIX 6020 MIX 6030 MIX 6040 MIX 6050 MIX 6060 MIX 6070 MIX 6080 MIX 6090 MIX 6100 MIX 6110 MIX 6120 MIX 6130 MIX 6140 MIX 6150 MIX 6160 MIX 6170 MIX 6180 MIX 6190 MIX 6200 MIX 6210 MIX 6220 MIX 6230 MIX 6240 MIX 6250 MIX 6260 MIX 6270 MIX 6280 MIX 6290 MIX 6300 MIX 6310 MIX 6320 MIX 6330 MIX 6340 MIX 6350 MIX 6360 MIX 6370 MIX 6380 MIX 6390 MIX 6400 MIX 6410 MIX 6420 MIX 6430 MIX 6440 MIX 6450 MIX 6460 MIX 6470 MIX 6480 MIX 6490 MIX 6500 MIX 6510
344
SIMIN(I) - SIMIN(I+1)ADDMIN(I) - ADDMIN(I+1)
220 CONTINUEJJ = JJ - 1J - J - 1
END IFIADD = IADD - 1
END IFIF (CROSS) THEN
CALL GUESS(ADDMIN, SIMIN, ADD, IADD)X - DABS(ADDMIN(J) - ADDMIN(J+1)) / 10000. ODOOIF (DABS (ADDMIN(J) - ADD) .LT. X .OR.
DABS (ADDMIN(J+1) - ADD) .LT. X ) THENADD = (ADDMIN(J) + ADDMIN(J+1)) / 2.0
END IFEND IFADDMIN(IADD+1) = ADD
END IF
C Change the original solution parameters for the new step andC go back to calculate species distribution
IF (ISALT .EQ. 3) THEN230 CONTINUE
EQC =0.0EQH =0.0ANALM(7) - TOTEL(3)ANALM(98) =0.0IF (DABS (DP) .LT. CPUMIN) DP - l.ODOODO 240 I = 1, ICD
J - IDMIN(I)IF (J .EQ. 0) GO TO 240IF (J .EQ. 11) J = 12IF ( J .EQ. 7 .OR. J .EQ. 8 .OR. J .EQ. 49) THEN
EQH = EQH + (STOFAC(I) * ADD)ELSE IF (J .EQ. 28 .OR. J .EQ. 33 .OR. J .EQ. 97) THEN
EQH - EQH + (STOFAC(I) * ADD * 2. ODOO)ELSE IF (J .EQ. 12) THEN
EQH - EQH + (STOFAC(I) * ADD * 4. ODOO)ELSE IF (J .EQ. 32 .OR. J .EQ. 9) THEN
EQH = EQH - (STOFAC(I) * ADD)ELSE IF (J .EQ. 31) THEN
EQH = EQH - (STOFAC(I) * ADD * 3. ODOO)END IF
IF (J .EQ. 7) EQC = (ADD * STOFAC(I) ) + EQCIF (J .EQ. 97) EQC - (ADD * STOFAC(I) ) + EQCIF (J .EQ. 98) EQC = (ADD * STOFAC(I) ) + EQCIF (J .EQ. 207) EQC = (ADD * STOFAC(I) ) + EQCIF (J .EQ. 208) EQC = (ADD * STOFAC(I) * 2.0) + EQCIF (J .EQ. 209) EQC - (ADD * STOFAC(I) * 3.0) + EQCIF (J .EQ. 97 .OR. J .EQ. 98 .OR. J .EQ. 207 .OR.
J .EQ. 208 .OR. J .EQ. 209) J - 7
ANALM(J) - ANMMIX(J) + (ADD * STOFAC(I))
MIX 6520MIX 6530MIX 6540MIX 6550MIX 6560MIX 6570MIX 6580MIX 6590MIX 6600MIX 6610MIX 6620MIX 6630MIX 6640MIX 6650MIX 6660MIX 6670MIX 6680MIX 6690MIX 6700
--|MIX 6710 |MIX 6720|MIX 6730
--[MIX 6740MIX 6750MIX 6760MIX 6770MIX 6780MIX 6790MIX 6800MIX 6810MIX 6820MIX 6830MIX 6840MIX 6850MIX 6860MIX 6870MIX 6880MIX 6890MIX 6900MIX 6910MIX 6920MIX 6930MIX 6940MIX 6950MIX 6960MIX 6970MIX 6980MIX 6990MIX 7000MIX 7010MIX 7020MIX 7030MIX 7040MIX 7050MIX 7060MIX 7070MIX 7080MIX 7090
345
240
250
IF (J .NE. 8 .AND. J .NE. 9 .AND. J .NE. 10 .AND. (ADD * STOFAC(I)) .LT. 0.0 .AND.
ANMMIX(J) .LE. CPUMIN) THEN WRITE (UNO, 1160) STOP
END IF IF (J .NE. 8 .AND. J .NE. 9 .AND. J .NE. 10
.AND. ANALM(J) .LE. 0.6) THEN ADD = (ANMMIX(J) / STOFAC(I)) * (^1.0) ADD = ADD - (ADD / (DABS(DP) * 10^0**(IADD+3))) ADDMIN(IADD+1) = ADD GO TO 230
END IF
CONTINUETOTEL(l) = AlMIX(l) + EQHTOTEL(3) = A1MIX(3) + EQCIF (TOTEL(3) .GT. CPUMIN) THENANALM(7) = TOTEL(3)ANALM(98) =0.0
ELSE IF (A1MIX(3) .GT. CPUMIN) THENADD - ADD / 0.9ADDMIN(IADD+1) - ADDGO TO 230
END IF ICALL - 3
IF (IPRIN2 .NE. 0) THENIF (IPGLN .GT. 55) CALL PAGEIPGLN = IPGLN + 3IF (IDDP .NE. 0) THENWRITE (UNO,1130) PAGE3(IDSAT)
ELSEWRITE (UNO,1130) PAGE3(IDSAT)
END IF END IF
SIMIN(JJ), TITMIX(1:40),
SIMIN(JJ), TITMIX(1:40),
J = 0DO 250 I - :
J - J + 128
IF (JIF (JIF (JIF (JIF (JIF (JIF (J
.EQ.
.EQ. EQ, ,EQ, ,EQ, .EQ. .EQ.
8) 17) J 19) J 24) J 34) J
J -
49) 170)
1218212548169210
EXELT(I) CONTINUE
EXELT(29) EXELT(30) EXELT(31) EXELT(32) EXELT(33) EXELT(34) EXELT(35)
ANALM(J)
ANALM(7)ANALM(246)ANALM(265)ANALM(136)ANALM(MXSP+1)ANALM(MXSP+16)ANALM(MXSP+31)
MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX
ADD MIX MIX
ADD MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX MIX
7100711071207130714071507160717071807190720072107220723072407250726072707280729073007310732073307340735073607370738073907400741074207430744074507460747074807490750075107520753075407550756075707580759076007610762076307640765076607670
346
ccc
ccc
TITR( 1) - EXELT(29)TITR( 2) - EXELT( 6)TITR( 3) - EXELT(22)TITR( 4) - EXELT(21)TITR( 5) = EXELT( 5)TITR( 6) = EXELT(26)TITR( 7) = EXELT(25)TITR( 8) = EXELT(30)TITR( 9) = EXELT(31)TITR(IO) = EXELT(33)TITR(ll) = EXELT(34)RETURN
END IF
Boiling routine -- Icall = 1 on the first call only
IF (ISALT .EQ. 2) THENFFB = 1.0 - FBOILIF (ICALL .EQ. 1) THENWRITE (BUFFER, 1230) FBOILREAD (BUFFER, '(A)') TITMIXIF (IPGLN .GT. 53) CALL PAGEIPGLN = IPGLN 4- 4WRITE (UNO, 1170) FBOIL
Calculate the concentration of non-volatile species after boiling
DO 260 I = 1, MXSP+30ANALM(I) = ANMMIX(I) / FFB
260 CONTINUE
J = 0DO 270 I = 1, 28
J = J + 1IF (J .EQ. 8) J = 12IF (J .EQ. 17) J = 18IF (J .EQ. 19) J = 21IF (J .EQ. 24) J = 25IF (J .EQ. 34) J = 48IF (J .EQ. 49) J - 169IF (J .EQ. 170) J = 210EXELT(I) = ANALM(J)
270 CONTINUE
EXELT(29) = ANALM(7)EXELT(30) = ANALM(246)EXELT(31) = ANALM(265)EXELT(32) = ANALM(136)EXELT(33) = ANALM(MXSP+1)EXELT(34) = ANALM(MXSP+16)EXELT(35) = ANALM(MXSP+31)
TITR( 1) - EXELT(29)TITR( 2) - EXELT( 6)
MIX 7680MIX 7690MIX 7700MIX 7710MIX 7720MIX 7730MIX 7740MIX 7750MIX 7760MIX 7770MIX 7780MIX 7790MIX 7800MIX 7810|MIX 7820JMIX 7830JMIX 7840MIX 7850MIX 7860MIX 7870MIX 7880MIX 7890MIX 7900MIX 7910MIX 7920MIX 7930MIX 7940|MIX 7950|MIX 7960[MIX 7970MIX 7980MIX 7990MIX 8000MIX 8010MIX 8020MIX 8030MIX 8040MIX 8050MIX 8060MIX 8070MIX 8080MIX 8090MIX 8100MIX 8110MIX 8120MIX 8130MIX 8140MIX 8150MIX 8160MIX 8170MIX 8180MIX 8190MIX 8200MIX 8210MIX 8220MIX 8230MIX 8240MIX 8250
347
r1
cr1
r1
Cr1\j -
Ccr1
TITR( 3) = EXELT(22)TITR( 4) - EXELT(21)TITR( 5) - EXELT( 5)TITR( 6) = EXELT(26)TITR( 7) = EXELT(25)TITR( 8) - EXELT(30)TITR( 9) = EXELT(31)TITR(IO) = EXELT(33)TITR(ll) = EXELT(34)
If steam is being added, change appropri
IF (FBOIL .LT. O.DO) THENTOTEL(l) = TOTEL(l) / FFBTOTEL(2) = TOTEL(2) / FFBTOTEL(3) = TOTEL(3) / FFBANALM(7) = TOTEL(3)ANALM(98) =0.0EXELT(29) = ANALM(7)TITR( 1) = EXELT(29)I CALL - 3RETURN
END IF
MIXMIXMIXMIXMIXMIXMIXMIXMIXMIX
.....-----..----------.-- | MIXate parameters, quit JMIX------------------------- | MIX
MIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIX
------------------------- j MIXCalculate the partitioning of volatile species (co2 ,nh3 ,h2s ,ch4) |MIX
TK = TEMP + 273.15KH2S = KHH2S(TK, Ml)KNH3 = KHNH3(TK)KC02 = KHC02(TK, Ml)IF (PRESS .LT. PH20) PRESS = PH20
X - l.ODOOKCH4 = KHCH4(TK, Ml, X)
----------.----.--------- j MIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIX
.-...--------.--------.-. | MIXCalculate vapor density (routine taken from drummond's program) |MIXCalculate volatility ratios
Ml - Ml - l.ODOOCALL DPVT (TEMP, Ml, PRESS, VDEN)Ml - Ml + l.ODOO
VRT = VDEN * R * (TEMP + 273.15)VRC02 = KC02 / VRTVRNH3 = KNH3 / VRTVRH2S = KH2S / VRTVRCH4 - KCH4 / VRTIF (IPGLN .GT. 51) CALL PAGEIPGLN = IPGLN + 6WRITE (UNO, 1190) ' KH2S - ', KH2S ,
' KC02 = ' , KC02 ,' VRC02 = ' , VRC02 ,
|MIX..-.----------.--------.. j MIX
MIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIXMIX
' KNH3 = ' , KNH3 , MIX' KCH4 = ' , KCH4 , MIX' VRNH3 = ' , VRNH3 , MIX
8260827082808290830083108320833083408350836083708380839084008410842084308440845084608470848084908500851085208530854085508560857085808590860086108620863086408650866086708680869087008710872087308740875087608770878087908800881088208830
348
VRH2S - ', VRH2S, ' VRCH4 - ', VRCH4, VRT - ', VRT, ' VDEN - ', VDEN
280
IBTOT - 1 IBOIL - 1
DO 280 I - 1, 4NV(I) = 0.0NL(I) = 0.0STEP(I) - 0.0
CONTINUE
IF (A1MIX(3) .GT. CPUMIN) THENTRY(1,IBOIL)NL(1)NV(1)DIF(1,IBOIL)STEP(l)NL(1)
TOTEL(3)TOTEL(3)VRC02 * (M(97) / FFB) * FBOILA1MIX(3) - (TOTEL(3) * FFB + NV(1))A1MIX(3) / ((TOTEL(3) * FFB)(STEP(l) - l.ODOO) * NL(1)
IF (NL(1) .LT. CPUMIN) THENNL(1) =0.1 * TRY(1,IBOIL) STEP(l) - NL(1) - TRY(1,IBOIL)
END IF
IF (NL(1) .GT. A1MIX(3) * FFB) THEN NL(1) =0.9 * A1MIX(3) * FFB STEP(l) - NL(1) - TRY(1,IBOIL)
END IF END IF
IF (ANMMIX(32) TRY(2,IBOIL) NL(2) NV(2)DIF(2,IBOIL) STEP(2) NL(2)
.GT. CPUMIN) THEN ANALM(32) ANALM(32) VRNH3 * (M(147) / FFB) * FBOIL ANMMIX(32) - (ANALM(32) * FFB + ANMMIX(32) / ((ANALM(32) * FFB) (STEP(2) - l.ODOO) * NL(2)
NV(2)) + NV(2))
IF (NL(2) NL(2) STEP(2)
END IF
.LT. CPUMIN) THEN =0.1 * TRY(2,IBOIL) - NL(2) - TRY(2,IBOIL)
IF (NL(2) .GT. (ANMMIX(32) * FFB)) THEN NL(2) =0.9 * ANMMIX(32) * FFB STEP(2) = NL(2) - TRY(2,IBOIL)
END IF END IF
IF (ANMMIX(33) TRY(3,IBOIL) NL(3) NV(3)DIF(3,IBOIL) STEP(3) NL(3)
.GT. CPUMIN) THEN ANALM(33) ANALM(33)VRH2S * (M(33) / FFB) * FBOIL ANMMIX(33) - (ANALM(33) * FFB + NV(3)) ANMMIX(33) / ((ANALM(33) * FFB) + NV(3)) (STEP(3) - l.ODOO) * NL(3)
MIX 8840 MIX 8850 MIX 8860 MIX 8870 MIX 8880 MIX 8890 MIX 8900 MIX 8910 MIX 8920 MIX 8930 MIX 8940 MIX 8950 MIX 8960 MIX 8970 MIX 8980 MIX 8990 MIX 9000 MIX 9010 MIX 9020 MIX 9030 MIX 9040 MIX 9050 MIX 9060 MIX 9070 MIX 9080 MIX 9090 MIX 9100 MIX 9110 MIX 9120 MIX 9130 MIX 9140 MIX 9150 MIX 9160 MIX 9170 MIX 9180 MIX 9190 MIX 9200 MIX 9210 MIX 9220 MIX 9230 MIX 9240 MIX 9250 MIX 9260 MIX 9270 MIX 9280 MIX 9290 MIX 9300 MIX 9310 MIX 9320 MIX 9330 MIX 9340 MIX 9350 MIX 9360 MIX 9370 MIX 9380 MIX 9390 MIX 9400 MIX 9410
349
290300
IF (NL(3) NL(3) STEP(3)
END IF
.LT. CPUMIN) THEN =0.1 * TRY(3,IBOIL) = NL(3) - TRY(3,IBOIL)
IF (NL(2) .GT. (ANMMIX(33) * FFB)) THEN NL(3) =0.9 * ANMMIX(33) * FFB STEP(3) = NL(3) - TRY(3,IBOIL)
END IF END IF
IF (ANMMIX(285) .GT. CPUMIN) THENTRY(4,IBOIL)NL(4)NV(4)DIF(4,IBOIL)STEP(4)NL(4)
ANALM(285)ANALM(285)VRCH4 * (M(285) / FFB) * FBOILANMMIX(285) - (ANALM(285)*FFB + NV(4))ANALM(285) / ((ANMM]JX(285) * FFB) + NV(4))(STEP(4) - l.ODOO) * NL(4)
IF (NL(4) .LT. CPUMIN) THENNL(4) =0.1 * TRY(4,IBOIL)STEP(4) = NL(4) - TRY(4,IBOIL)
END IF
IF (NL(4) .GT. (ANMMIX(285) * FFB)) THEN NL(4) =0.9 * ANMMIX(285) * FFB STEP(4) = NL(4) - TRY(4,IBOIL)
END IF END IF
END IF
IF (ICALL .EQ. 3) THEN IBOIL = IBOIL + 1 IBTOT = IBTOT + 1 IF (IBTOT .GT. 3) THEN
IBOIL = 3 DO 300 J = 1, 4
DO 290 I = 2, IBOIL TRY(J,I-1) = TRY(J.I) DIF(J,I-1) = DIF(J.I)
CONTINUE CONTINUE
END IF
TRY(1,IBOIL) = TOTEL(3)NV(1) = VRC02 * M(97) * FBOILDIF(1,IBOIL) = A1MIX(3) - ((TOTEL(3) * FFB) + NV(1))
TRY(2,IBOIL) NV(2) DIF(2,IBOIL)
ANALM(32)VRNH3 * M(147) * FBOILANMMIX(32) - ((ANALM(32) FFB) + NV(2))
TRY(3,IBOIL) = ANALM(33)NV(3) = VRH2S * M(33) * FBOILDIF(3,IBOIL) = ANMMIX(33) - ((ANALM(33) * FFB) + NV(3))
TRY(4,IBOIL) NV(4)
ANALM(285)VRCH4 * M(285) * FBOIL
MIX 9420MIX 9430MIX 9440MIX 9450MIX 9460MIX 9470MIX 9480MIX 9490MIX 9500MIX 9510MIX 9520MIX 9530MIX 9540MIX 9550MIX 9560MIX 9570MIX 9580MIX 9590MIX 9600MIX 9610MIX 9620MIX 9630MIX 9640MIX 9650MIX 9660MIX 9670MIX 9680MIX 9690MIX 9700MIX 9710MIX 9720MIX 9730MIX 9740MIX 9750MIX 9760MIX 9770MIX 9780MIX 9790MIX 9800MIX 9810MIX 9820MIX 9830MIX 9840MIX 9850MIX 9860MIX 9870MIX 9880MIX 9890MIX 9900MIX 9910MIX 9920MIX 9930MIX 9940MIX 9950MIX 9960MIX 9970MIX 9980MIX 9990
350
310
DIF(4,IBOIL) - ANMMIX(285) - ((ANALM(285) * FFB) + NV(4))
DONE - .TRUE.
DO 310 I - 1, 4 IF (I .EQ. 1) THENX - A1MIX(3)
ELSE IF (I .EQ. 2) THENX - ANMMIX(32)
ELSE IF (I .EQ. 3) THENX - ANMMIX(33)
ELSE IF (I .EQ. 4) THENX - ANMMIX(285)
END IF
IF (X .GT. CPUMIN) THENIF (DABS(DIF(I,IBOIL) / X ) .GT. 0.01 .AND.
DABS(STEP(I)) .GT. (X * 0.01) .AND. IBTOT .LT. 20) DONE - .FALSE.
IF ((DIF(I.IBOIL) * DIF(I,(IBOIL-1))) .LT. 0.0) THENSTEP(I) - STEP(I) * (-0.5)
ELSE IF (DABS(DIF(I,IBOIL)) .GT. DABS(DIF(I,(IBOIL-1))))THENSTEP(I) - STEP(I) * (-0.8)
END IF
IF ((NL(I) + STEP(I)) .LE. 0.0) THENSTEP(I) - NL(I) * (-0.90)
ELSE IF ((NL(I) + STEP(I)) .GE. (X/FFB)) THENSTEP(I) - ((X/FFB) - NL(I)) * 0.90
END IF
NL(I) NV(I)
END IF CONTINUE
NL(I) + STEP(I) X - (NL(I) * FFB)
IF (DONE) THENNGAST(l) - A1MIX(3) NGAST(2) - ANMMIX(32) NGAST(3) - ANMMIX(33) NGAST(4) - ANMMIX(285)
NL(1) NL(2) NL(3) NL(4)
ANALM(7) ANALM(32) ANALM(33) ANALM(285)
IF (IPGLN .GT. 48) CALL PAGE IPGLN - IPGLN + 10 WRITE (UNO,1180) FBOIL WRITE (UNO,1210)
DO 320 I - 1, 4IF (NGAST(I) .GT. CPUMIN) THEN NV(I) - NGAST(I) - (NL(I) * FFB) X - NV(I) * 100.00 / NGAST(I)
MIX10000 MIX10010 MIX10020 MIX10030 MIX10040 MIX10050 MIX10060 MIX10070 MIX10080 MIX10090 MIX10100 MIX10110 MIX10120 MIX10130 MIX10140 MIX10150 MIX10160 MIX10170 MIX10180 MIX10190 MIX10200 MIX10210 MIX10220 MIX10230 MIX10240 MIX10250 MIX10260 MIX10270 MIX10280 MIX10290 MIX10300 MIX10310 MIX10320 MIX10330 MIX10340 MIX10350 MIX10360 MIX10370 MIX10380 MIX10390 MIX10400 MIX10410 MIX10420 MIX10430 MIX10440 MIX10450 MIX10460 MIX10470 MIX10480 MIX10490 MIX10500 MIX10510 MIX10520 MIX10530 MIX10540 MIX10550 MIX10560 MIX10570
351
ELSEX = 0.0NL(I) = 0.0NV(I) - 0.0
END IFWRITE (UNO, 1220) DUM2(I), NGAST(I), (NL(I) * FFB),
NL(I), NV(I), X320 CONTINUE
I CALL - 1RETURN
END IFEND IF
IF (IPRIN2 .NE. 0) THENIF (IPGLN .GT. 50) CALL PAGEIPGLN - IPGLN + 10WRITE (UNO, 1200)
NV(1), (NL(1)*FFB), NL(1), PAGE1(97) , M(97) ,NV(2), (NL(2)*FFB), NL(2) , PAGE1(147) , M(147),NV(3), (NL(3)*FFB), NL(3) , PAGE1(33) , M(33),NV(4), (NL(4)*FFB), NL(4) , PAGE1(285), M(285)
END IF
TOTEL(l) = (AlMIX(l) - (NV(1) * 2.0)- (NV(3) * 2.0)) / FFB
TOTEL(2) = (A1MIX(2) - NV(2)) / FFBTOTE1X3) - NL(1)ANALM(32) = NL(2)ANALM(33) = NL(3)ANALM(285) = NL(4)ANALM(7) = TOTEL(3)ANALM(98) =0.0
EXELT(24) = ANALM(32)EXELT(25) = ANALM(33)EXELT(29) = ANALM(7)
TITR( 1) = EXELT(29)TITR( 7) = EXELT(25)
I CALL = 3RETURN
END IF
C The following routine is for mixing two solutionsC Store the parameters of the second solution
~
IF (ICALL .EQ. 2) THENDO 330 I = 1, 10
FMIX(I) = O.ODOIF (I .LE. 5) B2MIX(I) - TOTEL(I)
330 CONTINUE
DO 340 I = 1, MXSP+30BNMMIX(I) = ANALM(I)
340 CONTINUE
MIX10580MIX10590MIX10600MIX10610MIX10620MIX10630MIX10640MIX10650MIX10660MIX10670MIX10680MIX10690MIX10700MIX10710MIX10720MIX10730MIX10740MIX10750MIX10760MIX10770MIX10780MIX10790MIX10800MIX10810MIX10820MIX10830MIX10840MIX10850MIX10860MIX10870MIX10880MIX10890MIX10900MIX10910MIX10920MIX10930MIX10940MIX10950MIX10960MIX10970MIX10980MIX10990MIX11000MIX11010
- - |MIX110zO IMIX11030|MIX11040
--|MIX11050MIX11060MIX11070MIX11080MIX11090MIX11100MIX11110MIX11120MIX11130MIX11140MIX11150
352
BDENS - DENSBTEMP - TEMP
---------------------------------------------------------------------C Calculate the no. of mixtures to be processed and theC proportions of the two solutions in each of the mixtures
IF (INMIX .LE. 0) INMIX - 1IF (DABS (DING) .LT. CPUMIN) DING - DFRAC1
INMIX - MIN( INMIX, 10)DO 350 I - 1, INMIX
IF (I .EQ. 1) THENFMIX(I) - DFRAC1
ELSEFMIX(I) - FMIX(I-l) + DING
END IFIF (FMIX(I) .LT. 0.0 .OR. FMIX(I) .GT. l.OODOO) THEN
INMIX - I - 1GO TO 360
END IF350 CONTINUE
360 CONTINUEIRUN - 0CALL PAGEIPGLN - IPGLN + 7WRITE (UNO, 1240) DFRAC1 , INMIX, DING
END IF
I CALL - 3
RETURN
1000 FORMAT(I3,/,10(F10.4,I4))1010 FORMAT(//,' ***** Mineral with i.d. number - ',I4,/,
' which will be dissolved/precipitated,',/,' could not be found in the reaction file.')
1020 FORMAT(//,' ***** Mineral with i.d. number - ',I4,/,' which the solution will be brought to' ,
' equilibrium with' ,/,' could not be found in the reaction file.')
1030 FORMAT(//,' ***** OPEN failed for phase reactions file',' (often called RXN.TBL or something similar)',
/,' in routine MIXER. Check that the file ',' exists ... ')
1040 FORMAT(//,' ***** ERROR reading the reaction data file in ','routine MIXER. The error occurred while',
/,' trying to read the ',I5,'th line. Either the file',' is corrupted or the end of file was reached' ,
/,' without having found the minerals to dissolve', ' or precipitate. ')
1050 FORMAT (//,' ***** No reaction data for ',A8, '******',' Correct and rerun')
1060 FORMAT(//,' ***** Illegal values of ITMIX, IDSAT, IDDP passed',/ , ' to MIXER when IBMIX - 0 . Values are ' ,
MIX11160MIX11170MIX11180MIX11190
-|MIX11200|MIX11210|MIX11220
- JMIX11230MIX11240MIX11250MIX11260MIX11270MIX11280MIX11290MIX11300MIX11310MIX11320MIX11330MIX11340MIX11350MIX11360MIX11370MIX11380MIX11390MIX11400MIX11410MIX11420MIX11430MIX11440MIX11450MIX11460MIX11470MIX11480MIX11490MIX11500MIX11510MIX11520MIX11530MIX11540MIX11550MIX11560MIX11570MIX11580MIX11590MIX11600MIX11610MIX11620MIX11630MIX11640MIX11650MIX11660MIX11670MIX11680MIX11690MIX11700MIX11710MIX11720MIX11730
353
1070
108010901100
11201130
1140 FORMAT(//,
3(12,IX), 'respectively.') MIX11740FORMAT(//, '*** Net amount of salt/(aqueous component) to be', MIX11750
' added the solution *****', //, MIX11760' SP # MOLALITY EQH EQC') MIX11770
FORMAT(I4,2X,A,2X,D16.8,2X,F5.2,2X,F5.2) MIX11780FORMAT(' **********************************************,//) MIX11790FORMAT(//,' *********ERROR*********ERROR**********', MIX11800
/,4X, A, ' was removed from the solution (',E12.5, MIX11810') but this drove the moles negative.', MIX11820
/,' In this solution, no more than ', E12.5, MIX11830' moles can be removed. ') MIX11840
1110 FORMAT(//, '*** Net amount of mineral ',A,' to be', MIX11850' added the solution ... modeled using *****', //, MIX11860' SP # MOLALITY EQH EQC') MIX11870
FORMAT(/,2X,A8,' will be ',A13,' to saturation ') MIX11880FORMAT(/,' Saturation Index (SI) - (',A,') - ',E10.4, MIX11890
/.' Reaction Step (moles of ',A,') = ',E10.4) MIX11900*** Saturation with ',A,' not possible. ', MIX11910
/,' SI minimum found at SI - ',£12.5, MIX11920/,' At last try, there was ',E12.5, MIX11930
' moles of material added.', MIX11940/,' This may also be caused by specifying DP', MIX11950/,' to be negative when only a positive value', MIX11960 /,' works (or vice versa) or DP was too small of, MIX11970/,' a value.') MIX11980
1150 FORMAT(/,' Total moles of ',A25,' to achieve saturation: ',£10.4, MIX11990/) MIX12000
1160 FORMAT(/,' Attempt to have a negative amount of a component', MIX12010 /,' Check what is being added/removed from the water .') MIX12020
1170 FORMAT(//,' **** This solution is to be boiled off ****', MIX12030/,' Fraction of boiling = ',F7.2) MIX12040
******* BOILING CALCULATIONS ******* ',//, MIX120505X, 'Fraction of solution lost by boiling: ',F5.2) MIX12060' Parameters used in Boiling ..... ' , MIX12070
/,4(5X,A,E12.5), /,4(5X,A,E12.5), /,2(5X,A,E12.5)) MIX120801200 FORMAT(/,' For the next step, projected amount in the', MIX12090
17X,'using the current values in the', MIX12100/,10X,'vapour',11X,'liquid',11X,'liquid', MIX12110
10X,'aqueous solution of the spfecies' MIX12120/,10X,'(moles)',10X,'(moles)',9X/(molality)', MIX12130
23X,'(molality)', MIX12140/,' C02 = ',3(E12.5,5X),2X,A8,7X,E12.5, MIX12150/,' NH3 = ',3(E12.5,5X),2X,A8,7X,E12.5, MIX12160/,' H2S = ',3(E12.5,5X),2X,A8,7X,E12.5, MIX12170/,' CH4 = ',3(E12.5,5X),2X,A8,7X,E12.5, MIX12180/) MIX12190
1210 FORMAT(/, 14X,' Gas species', 5X,'Total Moles ', MIX122005X,'Moles in Liquid', 3X,'Molality in Liquid', MIX122104X,'Moles in Vapour', MIX122204X,'% Lost in Vapour', /) MIX12230
1220 FORMAT(20X, A5, 5(5X,E12.5,3X),5X,F12.5) MIX122401230 FORMAT( '(fraction of boiling :- ',2X,F4.2,')') MIX122501240 FORMAT(//, ' **** Mixing of the two previous solutions in', MIX12260
' the following proportions: ', /, MIX122705X,' Initial fraction of solution 1 = ',F7.4,/, MIX12280
17X,' Number of mixtures - ',I3,/^ MIX12290' and the increment between solutions = ',F7.4,/) MIX12300
1250 FORMAT(//, ' *****This solution is to be mixed with the', MIX12310
1180 FORMAT( '
1190 FORMAT(//,
354
' nevt: solution. ....'. /^
c ==cc
ccccccccccccccccccccccccccccccccccccccccccccc
END
SUBROUTINE NACALC (TC, CM, PE, RLG, P, GLO)
Program chaos 2 .f4-a routine for calculating thermo. propertiesof nacl(aq) using pitzer's new model. 0.0-osmotic;
ACALPHAANAPAVNBOBlBETALBKCCCCICMCNDCDCDTDWEF1IF2IF3IF4IGLOIPPOPEPHIPIPXRLGSCITTCVF1VF2VF3XPOXP1XP2XP3XP4XP5XP6XP7
DELDELDELDELDELDELDELDBLDELDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBL
Charge of the anionsCoefficient of thermal expansionNumber of anionsDebye-huckel osmotic parameterAvogadro's numberBeta zero parameterBeta one parameterCoefficient of compressibilityBoltzmann's constant in erg/degC sub fee parameterCharge of the cationsIonic StrengthSum of Molality * charge / 2Number of cationsDielectric constant of waterDerivative of dielectic constant water TDensity of waterElectron charge in esuIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableGibbs free energy per moleLoop variableFit constantsVapor pressurePressure in barsOsmotic coefficientThe constant PiCalculated pressure of waterNatural log of the activity coefficientSquare root of the ionic strengthTemperature in kelvinTemperature in celciusIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variableIntermediate storage variable
MIX12320 MIX12330 MIX12340
NAG 0010 -|NAC 0020|NAC 0030|NAC 0040
-| NAG 0050INAC 0060INAC 0070|NAC 0080INAC 0090INAC 0100|NAC 0110|NAC 0120|NAC 0130INAC 0140INAC oiso|NAC 0160INAC 0170|NAC 0180|NAC 0190INAC 0200|NAC 0210|NAC 0220INAC 0230INAC 0240|NAC 0250|NAC 0260JNAC 0270|NAC 0280|NAC 0290INAC 0300|NAC 0310|NAC 0320|NAC 0330|NAC 0340INAC 0350|NAC 0360INAC 0370INAC 0380|NAC 0390INAC 0400|NAC 0410|NAC 0420JNAC 0430|NAC 0440|NAC 0450|NAC 0460|NAC 0470|NAC 0480|NAC 0490INAC 0500
355
ccc
=====
c
c
c
c
c
XP8 DEL Intermediate storage vaiXP9 DBL Intermediate storage vaiXS DBL Intermediate storage vai
INTEGER I
DOUBLE PRECISION AC, ALPHA, AN, AP, AVNDOUBLE PRECISION BO, Bl, BETAL, BKDOUBLE PRECISION C, CC, CI, CM, CNDOUBLE PRECISION DC, DCDT, DW, EDOUBLE PRECISION F1I , F2I, F3I, F4I , GLCDOUBLE PRECISION P(60) , PO, PE, PI, PHIDOUBLE PRECISION RLG, SCI, T, TCDOUBLE PRECISION VF1, VF2 , VF3 , XSDOUBLE PRECISION XPO, XP1 , XP2 , XP3 , XP^
EXTERNAL PS AT, WAPVT, WDBP
INTRINSIC DABS, DEXP, DLOG, DSQRT
DATA AVN, BK, E, PI /6 .022510+23 , 1.380!4.80298D-10, 3.141!
CC & AC = Cation and anion charge
CC - P(54)AC - P(55)
CN & AN - Number of cations and anions
CN = P(56)AN = P(57)
TC = Temp(C); CM = Molality; CI - Ionic
T - TC + 273.15D+0CI = (CC**2 * CN + AC**2 * AN) * CM / 2
Calculate saturation vapor pressure, PO
CALL PSAT (TC, PO)
If desired, set PE = PO
IF (PE .LT. 1.0) PE = PO
riable |NACriable |NACriable |NAC.......................... \ NAG
NAGNAGNAGNAGNAGNAGNAG
) NAGPX NAG
NAGNAG
., XP5, XP6, XP7, XP8, XP9 NAGNAGNAGNAGNAGNAG
>4D-16, NAG>926D+0/ NAG
NAG1 NAT1 lNr\L<
NAG - _______________ | NAG
INAC......................... | NAG
NAGNAGNAGNAG
......................... |NACINAC
, - ---._______________- | NAGNAGNAGNAGNAG
k ......................... | NAGStrength JNAC._.___________________.___j NAG
NAGNAG
0 NAGNAG
._________________________! MAG| iirVw
INAC. - _ _________________ | NAG
NAGNAGNAG
k ......................... | NAGINAC
---- ____________ ____ 1 NACNAGNAC
05100520053005400550056005700580059006000610062006300640065006600670068006900700071007200730074007500760077007800790080008100820083008400850086008700880089009000910092009300940095009600970noonuyou0990100010101020103010401050106010701080
356
c
ccc
ccc
ccc
cc
cc
Set PE = One bar. if temp, less than 100C
IF (TC .LT. 100.1) PE = 1.0
XPO - P(18) + (P(19) * PE) + (P(20) * PE**2) + (P(21) * PE**3)XP1 - P(23) + (P(24) * PE) + (P(25) * PE**2) + (P(26) * PE**3)XP2 = P(27) + (P(28) * PE) + (P(29) * PE**2)XP3 = P(30) + (P(31) * PE) + (P(32) * PE**2) + (P(33) * PE**3)XP4 = P(34) + (P(35) * PE) + (P(36) * PE**2) + (P(37) * PE**3)XP5 = P(43) + (P(44) * PE)XP6 = P(46) + (P(47) * PE)XP7 - P(48) + (P(49) * PE)XP8 - P(50) + (P(51) * PE)XP9 = P(52) + (P(53) * PE)
Initialize loop to calculate density, DW
DW = 1.0PX = 1.0DO 10 I = 1, 100
CALL WAPVT (TC, DW, PX, BETAL, GLO, ALPHA)XS = DWDW = DW / DEXP(BETAL * (PX - PE))IF (DABS((DW-XS)/XS) .LT. l.OD-10) GO TO 20
10 CONTINUE
Calculate dielectric properties of water^
20 CONTINUECALL WDBP (TC, PE, DC, DCDT)
AP = Debye-huckel osmotic parameter
AP - (1.0 / 3.0) * DSQRT(2.0 * PI * AVN * DW / 1000.0) *(E**2 / (DC * BK * T))**1.5
Calculate functions of ionic strength
SCI - DSQRT(CI)F1I = DEXP(-2.0 * SCI)
Is RLG a heat quantity ?
F2I = SCI / (1.0 + 1.2 * SCI)F3I = (2.0 / 1.2) * DLOGU.O + 1.2 * SCI)
NAG 1090--(NAG 1100
INAC 1110--INAC 1120
NAG 1130NAG 1140NAG 1150NAG 1160NAG 1170NAG 1180NAG 1190NAG 1200NAG 1210NAG 1220NAG 1230NAG 1240NAG 1250NAG 1260
--(NAG 1270INAC 1280
--INAC 1290NAG 1300NAG 1310NAG 1320NAG 1330NAG 1340NAG 1350NAG 1360NAG 1370NAG 1380NAG 1390
--(NAG 1400INAC I4io
- - | NAG 1420NAG 1430NAG 1440NAG 1450NAG 1460
- (NAG 1470INAC 1480
-INAC 1490NAG 1500NAG 1510NAG 1520NAG 1530
- | NAG 1540(NAG 1550
- INAC 1560NAG 1570NAG 1580NAG 1590NAG 1600
-INAC 1610INAC 1620
-INAC 1630NAG 1640NAG 1650NAG 1660
357
c
C _
c c cC _
C _
c
C _
c
F4I - (1.0 - (1.0 + 2.0 * SCI - 4.0 * CI / 2.0) * F1I) / (4.0 * CI)
Calculate valence factors
VF1 - CC * AC VF2 =2.0*CN*AN/ (CN + AN) VF3 - 2.0 * (CN * AN)**1.5 / (CN + AN)
BO, Bl, & C are parameters BETAO, BETA1, & C( superscript phi) in pitzer's equations. BO, Bl, & C are calculated as functions of temp. In terms of the adjustable parameters, P(I)
BO - P(17) / T + XPO + P(22) * DLOG(T) + XP1 * T + XP2 * T**2 + XP3 / (T - 227.0) + XP4 / (680.0 - T)
Bl - P(38) / T + P(39) + P(40) * T + P(4l) / (T - 227.0) C - P(42) / T + XP5 + P(45) * DLOG(T) + XP6 * T + XP7 * T**2 +
XP8 / (T - 227.0) + XP9 / (680.0 - T)
PHI - Osmotic Coefficient
PHI - 1.0 - VF1 * AP * F2I + CM * VF2 * (BO + Bl * F1I) + CM**2 * VF3 * C
RLG = Ln Gamma
RLG - -VF1 * AP * (F2I + F3I) + CM * 2.0 * VF2 * (BO + Bl * F4I) + 1.5 * CM**2 * VF3 * C
RETURN END
NAG 1670 NAG 1680 NAG 1690 |NAC 1700INAC 1710 INAC 1720NAG 1730 NAG 1740 NAG 1750 NAG 1760 NAG 1770 (NAG 1780INAC 1790 INAC isoo INAC isio INAC 1820NAG 1830 NAG 1840 NAG 1850 NAG 1860 NAC 1870 NAG 1880 NAC 1890
|NAC 1900INAC 1910
INAC 1920NAC 1930 NAC 1940 NAC 1950 NAC 1960 (NAG 1970INAC i960 INAC 1990NAC 2000 NAC 2010 NAC 2020 NAC 2030 NAC 2040 NAC 2050
C === C C
C C C C
SUBROUTINE PAGE
Writes a form feed into output file, increments page number, resets line count
IPAGE INT Current page number of output file IPGLN INT Current line number of the output file TOF CHA Places a form feed in output file UNO INT File unit assigned for output file
INTEGER UNO PARAMETER (UNO - 6)
PAG 0010 =====|PAG 0020 and |PAG 0030
IPAG 0040. .... j PAG 0050
IPAG ooeo|PAG 0070IPAG ooso IPAG 0090
- - - - - 1 PAG 0100 PAG 0110 PAG 0120 PAG 0130 PAG 0140
358
INTEGER IPAGE, IPGLN
CHARACTER * 1 TOF, CR CHARACTER * 40 TITMIX
COMMON /FMFD/ TOF, CR, TITMIX COMMON /FORM/ IPAGE, IPGLN
IPAGE - IPAGE + 1WRITE (UNO, 100) TOF, IPAGEIPGLN - 4
RETURN
100 FORMAT (A1,60X,' PAGE - ',14,' - ',///)
END
PAG 0150 PAG 0160 PAG 0170 PAG 0180 PAG 0190 PAG 0200 PAG 0210 PAG 0220 |PAG 0230 PAG 0240 PAG 0250 PAG 0260 PAG 0270 PAG 0280 PAG 0290 PAG 0300 PAG 0310 PAG 0320 PAG 0330
SUBROUTINE PCLOGK (TCENT, PS, PRES, MXAQK, MXPC) PCL 0010
Cc
ccccccccccccccccccccccccccccc
Determines the pressure correction on log K values if pressure is greater than vapor pressure of water
AAHIALALOWBBOBlB2B4BBBBOBEETO
BETBETAO
BHIBLOWCCHICLOWCPUMINDDELKDELKHIDELKLODELVRDELWDLRRO
DBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBL
DBLDBL
DBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBLDBL
Fit constantsPressure correction fit parameterFit constantPressure correction fit parameterIntermediate storage variableFit constantFit constantFit constantFit constantIntermediate storage variableFit constantCoefficient of isothermal compressibility ofwater at temperature T
Fit constantCompressibility of water at 5 degree increments
starting a 5 deg. along the saturation curvePressure correction fit parameterPressure correction fit parameterFit constantPressure correction fit parameterPressure correction fit parameterSmallest positive real value program usesFit constantCorrection factor to log K of aqueous speciesAdjusted log k at 1000 barsAdjusted log k at 500 barsChange in volume at 25 degreesLog K adjustment to water reactionIntermediate storage variable
= | r\;Li \j\j£\jIPCL 0030 IPCL 0040
- | PCL 0050|PCL 0060JPCL 0070JPCL 0080IPCL 0090IPCL 0100IPCL 0110IPCL 0120IPCL 0130IPCL 0140JPCL oisoIPCL 0160IPCL 0170IPCL oisoIPCL 0190IPCL 0200IPCL 0210JPCL 0220JPCL 0230JPCL 0240JPCL 0250IPCL 0260|PCL 0270IPCL 0280|PCL 0290IPCL 0300JPCL 0310|PCL 0320JPCL 0330|PCL 0340
359
cccccccccccccccccccccccccccccccccccccc
DPR DEL Intermediate storage variableE DBL Fit constantER DBL Intermediate storage variableGAM DBL Fit constantI INT Loop variableICOUNT INT Keeps track of number of times density is calc.IDBO INT Temperature pointer to compressibility constantJ INT Loop variableLOGKP DBL Correction factor to log K for the mineralsLOGKT1 DBL Log K for aqueous species at specified temp.LOGKT2 DBL Log K for minerals at specified temperatureMXAQK INT Total number of aqueous Icfg k valuesMXPC INT Total number of mineral pressure constantsN INT Loop variableNH20 DBL Number of water ionization reactionsNMAX INT General array dimension to allow easy expansionP DBL Intermediate storage variablePADJ DBL Adjusted pressure (Total press. - Sat. press.)PPP DBL Intermediate storage variablePR DBL Intermediate storage variablePRES DBL Total pressurePS DBL Saturation pressureR DBL Gas constant in cm**3 * bar / gram * deg. KRO DBL Density of water at T along the saturation curveRCAL DBL Gas constant in therm cal / mole * deg. KRH DBL Intermediate storage variableRHN DBL Intermediate storage variableRHO DBL Density of water at P, TS DBL Intermediate storage variableT DBL Temperature in degrees KTAU DBL T / T criticalTCENT DBL Temperature in degrees CTEST1 DBL Test to check for proper densityTEST2 DBL Test to check for proper pressureUNO INT File unit assigned for output file
|PCL 0350|PCL 0360|PCL 0370|PCL 0380|PCL 0390IPCL 0400|PCL 0410|PCL 0420|PCL 0430|PCL 0440|PCL 0450|PCL 0460|PCL 0470|PCL 0480|PCL 0490|PCL 0500IPCL 0510|PCL 0520|PCL 0530|PCL 0540|PCL 0550|PCL 0560|PCL 0570|PCL 0580|PCL 0590|PCL 0600IPCL 0610|PCL 0620|PCL 0630|PCL 0640|PCL 0650|PCL 0660|PCL 0670JPCL 0680|PCL 0690
VH20 DBL Change change of water at the saturation pressure | PCL 0700VRIC DBL Isocoulombic volume change for the reactionY DBL Intermediate storage variable
INTEGER NMAX, UNODOUBLE PRECISION CPUMINPARAMETER (NMAX = 340, UNO = 6, CPUMIN = l.OD-35)
INTEGER I, ICOUNT, IDBO, J, MXAQK, MXPC, N
DOUBLE PRECISION A(9,7), AHI(200), AL, ALOW(200)DOUBLE PRECISION B, BO, Bl, B2 , B4, BB, BBO, BEETO, BETDOUBLE PRECISION BETAO(70) , BHI(200), BLOW(200)DOUBLE PRECISION C, CHI(200), CLOW(200)DOUBLE PRECISION D, DELK, DELKHI(200), DELKLO(200) , DELVR(NMAX)DOUBLE PRECISION DELW, DLRRO, DPR, E, ER, GAMDOUBLE PRECISION LOGKP, LOGKTl(NMAX) , LOGKT2(NMAX)DOUBLE PRECISION NH20(NMAX)DOUBLE PRECISION P, PADJ, PPP, PR, PRES, PSDOUBLE PRECISION R, RO, RCAL, RH, RHN, RHODOUBLE PRECISION S, T, TAU, TCENT, TEST1, TEST2DOUBLE PRECISION VH20, VRIC, Y
IPCL 0710|PCL 0720 IPCL 0730 PCL 0740PCL 0750PCL 0760PCL 0770PCL 0780PCL 0790PCL 0800PCL 0810PCL 0820PCL 0830PCL 0840PCL 0850PCL 0860PCL 0870PCL 0880PCL 0890PCL 0900PCL 0910PCL 0920
360
INTRINSIC DABS, DEXP, DLOG, DLOG10
COMMON /ALOGK/ LOGKT1, LOGKT2COMMON /PTK / DELVR, NH20, ALOW, BLOW, CLOW, AMI, BHI, CHI
DATA AL, BET, GAM /ll.O, 44.3333333, 3.5/DATA BO, C, D /.747862916, -.354078223, .007159876/DATA E / -.003528426/DATA BBO, Bl, B2 /I.127833441, -.594400123, -5.010995915/DATA B4 / 0.636842555/DATA R, RCAL, VH20 /4.61518, 1.9872, 21.I/
DATA A /O.O, 0.0, 68833.257944332, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -5306.2968529023, 178638.32875422,-2563743.6613260 46561826.115608 22744.901424408-21734810.110373
PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL
-31377774.947767, PCL 0.0, 6962522.0862664, PCL 4821257.5981415, PCL-72752773.275387, PCL
11797433.655832,-31555231.392127,-395147.31563338, 52911910.757704,
47929666.384584, 0.0, -10834900.096447, -26627.944829770, PCL 0.0, 217572.45522644, 0.0, -707304.18082074, 0.0, 0.0, PCL 0.0, 0.0, 7877.9333020687, 338038.84280753, PCL-3418301.6969660, 10829952.168620, -13802577.177877, PCL 4177424.6148294, 4091266.4781209 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0-698.30527374994, -138550.50202703-2544199.8064049, -2510991.4369001-13626369.388386, 0.0,
DATA BETAO /49.4S, 48.26, 47.19, 46.3344.46, 44.35, 44.36, 44.4845.89, 46.46, 47.10, 47.8251.50, 52.62, 53.83, 55.1261.28, 63.09, 65.03, 67.1076.96, 79.89, 83.04, 86.43
104.12, 108.80, 113.48, 120.78149.96, 162.28, 174.59, 186.91258.55, 282.05, 305.55551.93, 607.65
0.0, -2272282.7401688, PCL 0.0, 0.0, PCL 1222315.6417448, PCL 14016358.244614, PCL 3836548.6000660/ PCL
PCL45.60, 45.06, 44.69,PCL44.69, 45.01, 45.41,PCL48.62, 49.50, 50.46,PCL56.51, 57.99, 59.58,PCL69.32, 71.69, 74.24,PCL90.09, 94.77, 99.45,PCL
128.07, 135.37, 142.46,PCL199.22, 211.54, 235.04,PCL
IDBO - TCENT / 5BEETO - BETAO(IDBO) / 10.0**6.0T - TCENT + 273.15TAU = T / 647.073ICOUNT - 1P - PS
10 CONTINUEB - BO + C * DLOG(TAU) + D / TAU**3 + E / TAU**5BB = BBO + Bl / TAU + B2 / TAU**2 + B4 / TAU**4RH = 1.0IF (P .LT. PS) RH = 0.001PPP - P - l.ODOIF(DABS(PPP) .LT. l.OD-10
DO 40 I - 1, 100
329.06, 384.78, 440.50, 496.21,PCL 825.89,1044.13,1262.37,1480.61,1698.85/PCL
PCL
PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL PCL
.AND. T .GT. 647.25) RH = 0.001 PCLPCL PCL
0930094009500960097009800990100010101020103010401050106010701080109011001110112011301140115011601170118011901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440145014601470148014901500
361
20
30
Y - RH * B / 4.0ER - DEXP(-RH)PR =0.0DPR =0.0DO 30 N = 1, 9
S = A(N,1)DO 20 J = 2, 7
S = S + A(N,J) / TAU**(J-1)CONTINUEPR - PR + S * (1DPR - DPR + S * (1
(1 - ER)) CONTINUE PR -
ER)**(N-1) ER)**(N-1) * (2 + RH * (N * ER - 1) /
* Y + * Y * (BB / B - GAM))
LT. l.OD-5) GO TO 50
RH**2 *ER*PR +RH*R*T*((1+ AL*Y+BET * Y**2) / (1-Y)**3 + 4 * Y * (BB / B - GAM))
DPR - RH * ER * DPR + R * T * ((1 + 2 * AL * Y + 3 * BET * Y**2) / (1-Y)**3 + 3 * Y * (1 + AL
BET * Y**2) / (1-Y)**4 + 8 RHN - RH + (P - PR) / DPR TEST1 - DABS((RHN - RH) / RHN) TEST2 - DABS((P - PR) / P) IF (TEST1 .LT. l.OD-6 .AND. TEST2 RH = RHN
40 CONTINUE
WRITE (UNO, 100) T, P, RHN RETURN
50 CONTINUEIF (ICOUNT .EQ. 1) THENRO = RHNP - PRESICOUNT = ICOUNT + 1GO TO 10
END IF
RHO - RHN
Calculate the effect of pressure on logk of water
DLRRO = DLOG10(RHO / RO) DELW - -19.0DO * DLRRO LOGKT1(2) - LOGKT1(2) - DELW
Adjust the logk of other species for the effect of pressure
DLRRO - DLRRO / (RCAL * T * BEETO)
DO 60 I - 1, MXAQKIF (DABS(DELVR(I) - O.DO) .LT. l.OD-10) GO TO 60 VRIC - DELVR(I) + NH20(I) * VH20DELK - (VRIC /(-41.84DO) * DLRRO) - NH20(I) * DELW LOGKTl(I) - LOGKTl(I) + DELK
60 CONTINUE
PCL 1510 PCL 1520 PCL 1530 PCL 1540 PCL 1550 PCL 1560 PCL 1570 PCL 1580 PCL 1590 PCL 1600 PCL 1610 PCL 1620 PCL 1630 PCL 1640 PCL 1650 PCL 1660 PCL 1670 PCL 1680 PCL 1690 PCL 1700 PCL 1710 PCL 1720 PCL 1730 PCL 1740 PCL 1750 PCL 1760 PCL 1770 PCL 1780 PCL 1790 PCL 1800 PCL 1810 PCL 1820 PCL 1830 PCL 1840 PCL 1850 PCL 1860 PCL 1870 PCL 1880 |PCL 1890 |PCL 1900 |PCL 1910 PCL 1920 PCL 1930 PCL 1940 PCL 1950 PCL 1960 |PCL 1970 |PCL 1980 |PCL 1990 PCL 2000 PCL 2010 PCL 2020 PCL 2030 PCL 2040 PCL 2050 PCL 2060 PCL 2070 PCL 2080
362
r ...............C Adjust the r _.__. .........
PADJ = PRESDO 90 I - 1
DELKLO(I)DELKHI(I)
IF ((500.LOGKP -
.ELSELOGKP -
END IF
LOGKT2(I)90 CONTINUE
RETURN
100 FORMAT (/,.
END
logk of minerals using helgeson's data
- PS, MXPC= ALOW(I) + BLOW(I) * TCENT + CLOW(I) * TCENT**6- AHI(I) + BHI(I) * TCENT + CHI(I) * TCENT**6
ODO-PADJ) .LT. CPUMIN) THENDELKLO(I) + ((DELKHI(I) - DELKLO(I)) *(PADJ - 500. ODO)) / 500. ODO
DELKLO(I) * PADJ / 500. ODO
- LOGKT2(I) + LOGKP
' ** CONVERGENCE ON DENSITY NOT ACHIEVED ***' , /,PRESSURE CORRECTION FOR AQUEOUS AND SOLID',
' EQUILIBRIA WILL NOT BE IMPLEMENTED ' )
PCL 2090 i PPT oi nri|PCL 2110I TJPT 01 9ft rLiLi ZIZU
PCL 2130PCL 2140PCL 2150PCL 2160PCL 2170PCL 2180PCL 2190PCL 2200PCL 2210PCL 2220PCL 2230PCL 2240PCL 2250PCL 2260PCL 2270PCL 2280PCL 2290PCL 2300PCL 2310PCL 2320PCL 2330PCL 2340PCL 2350
C == C
CCCCCCCCCCCCCCCCCCCCC
SUBROUTINE PHCALC (TEMP, HITEMP, CONV2 , ITIC , ITWR, ISALT, IPHNUM, IPRIN2, *, *, *, *)
Calculates pH when ever conditions change
ALFAC02FCONV2CROSSCUNITSDC02DH2SDIFTRYDNH3DONEHITEMPHTOTHTOTIIIIIOPTIPGLNIPHNUMIPRIN2ISALTITIC
DBLDBLDBLLOGDBLDBLDBLDBLDBLLOGDBLDBLDBLINTINTINTINTINTINTINTINT
Activity of aqueous species iSum of C02 plus C02 lost from solutionConvergence testHave we crossed root yet?Analytical input concentrationConcentration of C02 lost before pH measurementConcentration of H2S lost before pH measurementDifference from rootConcentration of NH3 lost before pH measurementAre we done yet?In- situ temperatureTotal hydroniumInitial total hydroniumLoop counterCounter and pointerSwitch for C02 optionCurrent line number of the output fileCounter used in PHCALCFlag for printing hydronium balanceSwitch for what optionHitemp distribution of carbonate species
PHC 0010 PHC 0020
=|PHC 0030 |PHC 0040 i PUT nn^fi- | i.n\j \J\Jj\J|PHC 0060IPHC 0070|PHC 0080|PHC 0090|PHC 0100|PHC 0110IPHC 0120IPHC 0130IPHC 0140|PHC 0150IPHC 0160|PHC 0170|PHC 0180|PHC 0190JPHC 0200|PHC 0210|PHC 0220|PHC 0230JPHC 0240|PHC 0250IPHC 0260
363
cccccccccccccccccccQ
-
ITWR INT Switch to control printing of some headingsJC03 INT Switch to control printing of some headingsJJ INT Pointer to last point(s) calculatedM DBL Calculated molality of aqueous speciesNDIM INT Identifies array dimensionNMAX INT General array dimension to allow easy expansionOHTOT DBL Current sum of all OH- in solutionOHTOTI DBL Target sum of all OH- in solutionPH DBL Measured pH of the solutionPHHIT INT HITEMP switch, used to control PHCALCPHINC DBL Parameter. Used to scale size of stepPHTRY DBL Values of pH triedPPHHIT INT Switch to control calling! PHCALCSC02 DBL Sum of C02 speciesTEMP DBL Temperature of the solution when pH was measuredTESTl DBL Current Hydronium-hydroxide balanceTEST2 DBL H - OH balance to shoot forTEST3 DBL Test of how far are we from rootTOTEL DBL Contains HTOT, OHTOT and Sum C02UNO INT File unit assigned for output file
INTEGER NDIM, NMAX, UNODOUBLE PRECISION PHINCPARAMETER (NDIM = 5, NMAX = 340, UNO = 6, PHINC -1.0)
INTEGER I, II, IOPT, IPAGE, IPGLN, IPHNUM, IPRIN2, ISALTINTEGER ITIC, ITWR, JC03 , J J , PHHIT, PPHHIT
LOGICAL CROSS, DONE
CHARACTER * 1 TOF, CRCHARACTER * 40 TITMIX
DOUBLE PRECISION ALFA ( NMAX ), ANALM(NMAX) , C02F, CONV2DOUBLE PRECISION CUNITS(NMAX) , DCH4, DDCH4, DC02 , DDC02DOUBLE PRECISION DH2S , DDH2S , DNH3 , DDNH3 , DIFTRY(NDIM)DOUBLE PRECISION EXELT(35), FIXIT, HITEMP, HTOT, HTOTIDOUBLE PRECISION M(NMAX) , OHTOT, OHTOTI, PH, PHTRY(NDIM)DOUBLE PRECISION SC02 , TEMP, TESTl, TEST2 , TEST3DOUBLE PRECISION TITR(ll) , TOTEL(5)
EXTERNAL GUESS, PAGE, SORTA
INTRINSIC DABS, DLOG10, DSIGN
COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /GAS / DC02 , DDC02 , DH2S, DDH2S, DNH3 , DDNH3 ,
DCH4, DDCH4, IOPT, FIXITCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /TOTALS/ C02F, HTOTI, OHTOTICOMMON /ZPH / PHHIT, PPHHIT, JC03 , SC02, HTOT, OHTOT
SAVE CROSS, DIFTRY, J J , PHTRY
|PHC 0270JPHC 0280IPHC 0290IPHC 0300JPHC 0310|PHC 0320|PHC 0330|PHC 0340|PHC 0350JPHC 0360|PHC 0370JPHC 0380|PHC 0390IPHC 0400IPHC 0410|PHC 0420JPHC 0430|PHC 0440|PHC 0450|PHC 0460JPHC 0470PHC 0480PHC 0490PHC 0500PHC 0510PHC 0520PHC 0530PHC 0540PHC 0550PHC 0560PHC 0570PHC 0580PHC 0590PHC 0600PHC 0610PHC 0620PHC 0630PHC 0640PHC 0650PHC 0660PHC 0670PHC 0680PHC 0690PHC 0700PHC 0710PHC 0720PHC 0730PHC 0740PHC 0750PHC 0760PHC 0770PHC 0780PHC 0790PHC 0800PHC 0810PHC 0820PHC 0830
c =====
364
ccc
ccc
cc -
DONE - .FALSE.IF (PPHHIT .NE. 1 .AND. PHHIT .EQ. 1) THEN
IF (IPHNUM .LE. 0) THENCROSS - .FALSE.
END IF
If this is the first round of Hi-T, initialize, and exit tore -calculate the log K values and to setup the mass -balancecriteria.
IF (DABS (TEMP - HITEMP) .GT. l.OD-10) THENTEMP - HITEMPHTOTI - HTOTOHTOTI - OHTOTTOTEL(l) = HTOTITOTEL(2) = OHTOTITOTEL(3) - C02FIF (ITIC .EQ. 1) ITIC = 2RETURN 1
END IF
ITWR - 1
Get and test for convergence.Use a difference if solution is neutral to avoida divide by zero .
TEST1 - HTOT - OHTOTTEST2 - HTOTI - OHTOTI + (2. DO * DC02) + (2.0DO * DH2S) - DNH3TEST3 - TEST1 - TEST2IF (DABS(TEST2) .GT. l.OD-10 .AND. DABS(TESTl) .GT. l.OD-10)THENTEST3 - TESTS / TEST2
ELSEIF (DABS(TESTl) .GT. l.OD-10) THEN
TEST3 - TEST3 / TEST1ELSE IF (DABS(TEST2) .GT. l.OD-35) THEN
TEST3 - TEST3 / DSIGN(l.OD-H) , TEST2)ELSE
TESTS - TEST3 / l.OD-10END IF
END IF
IPHNUM - IPHNUM + 1JJ = IPHNUMIF (IPHNUM .EQ. 0) THENALFA(8) = 10.0DOO**(-PH)RETURN 2
END IF
Store Values and Check if root has been found or crossed.
PHC 0850PHC 0860PHC 0870PHC 0880PHC 0890PHC 0900PHC 0910
|PHC 0930JPHC 0940|PHC 0950( "DUf1 C\Q£.C\JrlTL* Uj/OU
PHC 0970PHC 0980PHC 0990PHC 1000PHC 1010PHC 1020PHC 1030PHC 1040PHC 1050PHC 1060PHC 1070PHC 1080PHC 1090PHC 1100
I pur* 1 1 1 fi | ftl\j 1J.J.U
JPHC 1120JPHC 1130JPHC 1140i pur i 1 «;n 1 rnLi IIDU PHC 1160PHC 1170PHC 1180PHC 1190PHC 1200PHC 1210PHC 1220PHC 1230PHC 1240PHC 1250PHC 1260PHC 1270PHC 1280PHC 1290PHC 1300PHC 1310PHC 1320PHC 1330PHC 1340PHC 1350PHC 1360PKC 1370PHC 1380PHC 1390
-| PHC 1400|PHC 1410
. i PHr lAon
365
PHTRY( IPHNUM) - - DLOG10(ALFA(8))DIFTRYC IPHNUM) - TESTS
PHCPHCPHCPHC
IF (DABS(TEST2) .GT. l.OD-08 .AND. DABS(TESTl) .GT. l.OD-08) PHC
r>{j
ccV_i
THENIF (DABS (DIFTRY( IPHNUM)) .LT. CONV2)
ELSEIF ((DABS(DIFTRY(IPHNUM))*1.0D-08) .
END IF
IF (IPHNUM .GT. 1 .AND. .NOT. CROSS) TIIF ((DIFTRY( IPHNUM) * D I FTRY( IPHNUM -
CROSS = .TRUE.END IF
If root has been found, sort into order
IF (CROSS) THEN
PHCDONE - .TRUE. PHC
PHC_T. l.OD-09) DONE - .TRUE. PHC
PHCPHC
IEN PHC.)) -LT. 0.0) PHC
PHCPHCPHC
1 PHf1 JL 11U
IPHC_____ _ 1 PHf
PHCPHC
CALL SORTA (PHTRY, DIFTRY, IPHNUM, JJ) PHCIF (.NOT. DONE .AND. JJ .GT. 1) THEN PHC
IF ((DIFTRY(JJ) * DIFTRY(JJ-l)) .LT. 0.0) THEN PHCIF (DABS(PHTRY(JJ) - PHTRY(JJ-l)) .LT. 5.0E-4) PHCDONE = .TRUE.
END IFEND IF
IF (.NOT. DONE .AND. JJ .LT. IPHNUM)
PHCPHCPHCPHC
THEN PHCIF ((DIFTRY(JJ) * DIFTRY(JJ+1)) .LT. 0.0) THEN PHC
CCC
IF (DABS(PHTRY(JJ) - PHTRY(JJ+1)DONE = .TRUE.
END IFEND IF
END IF
) .LT. 5.0E-4) PHCPHCPHCPHCPHCPHC
1 Pur*1 JL 11 oDue to small size only keep last NDIM-1 points |PHC
IF (IPHNUM .EQ. NDIM .AND. .NOT. DONE)IF (.NOT. CROSS) THEN
IPHNUM = (NDIM-1)DO 100 I - 1, (NDIM-1)
PHTRY(I) - PHTRY (1+1)DIFTRY(I) - DIFTRY(I+1)
100 CONTINUEJJ - JJ - 1
END IF
IF (CROSS) THENDO 110 I - 1, (IPHNUM - 1)
I pur1I Jt 14 O
PHCTHEN PHC
PHCPHCPHCPHCPHCPHCPHCPHCPHCPHCPHC
IF ((DIFTRY(I) * DIFTRY(I+1)) .LT. 0.0) II - I PHC110 CONTINUE
IF (II .GT. (IPHNUM / 2) .AND. JJDO 120 I - 1, (NDIM-1)
PHCPHC
.NE. 1) THEN PHCPHC
1430144014501460147014801490150015101520153015401550156015701580159016001610162016301640165016601670168016901700171017201730174017501760177017801790180018101820183018401850186018701880189019001910192019301940195019601970198019902000
366
PHTRY(I) - PHTRY(I+1) PHC 2010DIFTRY(I) - DIFTRY(I+1) PHC 2020
120 CONTINUE PHC 2030JJ - JJ - 1 PHC 2040IPHNUM - NDIM - 1 PHC 2050
ELSE PHC 2060IPHNUM - NDIM - 1 PHC 2070
END IF PHC 2080END IF PHC 2090
END IF PHC 2100PHC 2110
C --.----..--...--.-....-.............-....-...-..--.....--.---.--.--.-|PHC 2120C If root not yet crossed, keep trucking JPHC 2130C ---------------------------------------------------------------------j PHC 2140
PHC 2150IF ( .NOT. DONE .AND. .NOT. CROSS) THEN PHC 2160
PH - PHTRY(IPHNUM) PHC 2170IF (IPHNUM .EQ. 1) THEN PHC 2180
PH - PH - (DSIGN(1.0DOO, (TEST2 - TEST1)) * PHINC) PHC 2190ELSE PHC 2200
IF (DABS(DIFTRY(IPHNUM)) .GT. DABS(DIFTRY(IPHNUM-1))) THEN PHC 2210PH - DIFTRY(IPHNUM) PHC 2220DIFTRY(IPHNUM) - DIFTRY(IPHNUM-1) PHC 2230DIFTRY(IPHNUM-1) - PH PHC 2240PH - PHTRY(IPHNUM) PHC 2250PHTRY(IPHNUM) - PHTRY(IPHNUM-1) PHC 2260PHTRY(IPHNUM-1) - PH PHC 2270PH - (2.0 * PHTRY(IPHNUM)) - PHTRY(IPHNUM-1) PHC 2280JJ - IPHNUM -1 PHC 2290
ELSE PHC 2300PH - (2.0 * PHTRY(IPHNUM)) - PHTRY(IPHNUM-l) PHC 2310
END IF PHC 2320END IF PHC 2330ALFA(8) - 10.0DOO**(-PH) PHC 2340
END IF PHC 2350PHC 2360
C -------------------------------------------------_--.----_-----.-----|PHC 2370C If root has been crossed, get new value of pH JPHC 2380C .....................................................................j PHC 2390
PHC 2400IF ( .NOT. DONE .AND. CROSS) THEN PHC 2410CALL GUESS (PHTRY, DIFTRY, PH, IPHNUM) PHC 2420ALFA(8) - 10.0DOO**(-PH) PHC 2430
END IF PHC 2440PHC 2450
C ---------------..--...-..........................................._..|PHC 2460C Go and try again. Print if necessary JPHC 2470C .....................................................................|PHC 2480
PHC 2490IF ( .NOT. DONE) THEN PHC 2500
IF (IPRIN2 .NE. 0) THEN PHC 2510IF (IPGLN .GT. 56) CALL PAGE PHC 2520WRITE (UN0.1000) TEST2, TESTl, (TEST1 - TEST2), DIFTRY(JJ), PHC 2530
PHTRY(JJ), PH, (PH - PHTRY(JJ)) PHC 2540IPGLN - IPGLN + 3 PHC 2550
END IF PHC 2560RETURN 2 PHC 2570
END IF PHC 2580
367
PHC 2590
c- - -
- - -
c
1000
1010
Root has been found. Update appropriate variables and exit
PH = PHTRY(JJ)IPHNUM = 0IF (JC03 .EQ. 1 .AND. IOPT .NE. 0) RETURNIF (ISALT .GE. 2) RETURN 4PPHHIT - 1
END IF
IF (PPHHIT .EQ. 1) THENIF (IOPT .EQ. 1) RETURNTEST1 - HTOT - OHTOTTEST2 - HTOTI - OHTOTI + (2. DO * DC02) + (2.0DO * DH2S) - DNH3IF (IPRIN2 .NE. 0) THEN
IF (IPGLN .GT. 53) CALL PAGEWRITE (UNO, 1010) PH, TEST2 , TEST1 , (TEST2 - TEST1)IPGLN = IPGLN + 5
END IFIF (JC03 .EQ. 1) THENTOTEL(l) - TOTEL(l) + 2.0*DC02TOTEL(3) = TOTEL(3) + DC02
END IFRETURN 3
END IF
Store some parameters for use in mixing / printing
IF (HTOTI .LT. l.D-35) THENTOTEL(l) - HTOTTOTEL(2) = OHTOT
ELSETOTEL(l) = HTOTITOTEL(2) - OHTOTI
END IF
TOTEL(3) = SC02TOTEL(4) = PH
IF (JC03 .EQ. 1) THENTOTEL(l) = TOTEL(l) + 2 . 0*DC02TOTEL(3) - TOTEL(3) + DC02RETURN 2
END IF
RETURN
FORMAT (/, ' (HTOTI-OHTOTI) -',D16.8,' (HTOT-OHTOT) -',016.8,' Difference - ',D16.8,' Test - ',D16.8,
/, ' pH was: ', F8.4, ' New pH is : ', F8.4,Change - ' , E12.5)
FORMAT (//,' **** Convergence Achieved at pH-' , F8.4,/,' (HTOTI-OHTOTI) - ',D16.8,
' (HTOT-OHTOT) - ' , D16.8,
| rno t.\j\j\j
|PHC 26101 PHC 2620PHC 2630PHC 2640PHC 2650PHC 2660PHC 2670PHC 2680PHC 2690PHC 2700PHC 2710PHC 2720PHC 2730PHC 2740PHC 2750PHC 2760PHC 2770PHC 2780PHC 2790PHC 2800PHC 2810PHC 2820PHC 2830PHC 2840PHC 2850PHC 2860
I TDU /" O Q "7 r\rnL. Zo/U |PHC 2880
I DU/"1 O Q OHrno ZobJUPHC 2900PHC 2910PHC 2920PHC 2930PHC 2940PHC 2950PHC 2960PHC 2970PHC 2980PHC 2990PHC 3000PHC 3010PHC 3020PHC 3030PHC 3040PHC 3050PHC 3060PHC 3070PHC 3080PHC 3090PHC 3100PHC 3110PHC 3120PHC 3130PHC 3140PHC 3150PHC 3160
368
Difference D16.8, //)
END
PHC 3170 PHC 3180 PHC 3190
SUBROUTINE PHOPT (ICCSAT, FCCSAT, ITWR, JCCST, *) PHO 0010u == CCc
ccccccccccccccccccccccccccccccccr\J
The following routine achieves CALCITE, DOLOMITE or SIDERITEsaturation by adjusting pH. "ICCSAT" is equivalent to "IPHSAT"in the manual .
ALFA DBL Activity of aqueous species iCROSS LOG Have we crossed root yet?FCCSAT DBL Zero testHFAC DBL Number of hydrogen ions in reaction from mineral
to dominate speciesI INT Loop Variable and pointerICCSAT INT Switch for pH optionIDK INT Index for log K of mineral (Cal, Dol, Sid)IID INT Index of dominate carbonate speciesIPGLN INT Current line number of the output fileITWR INT Switch to control printing of some headingsJCCST INT Switch indicating if PHOPT called 1st timeJJ INT Pointer to last value calculatedKTF DBL Number of Carbonate groups in reactionLOGKT1 DBL Log K for aqueous species at specified temp.LOGKT2 DBL Log K for minerals at specified temperatureLTTIAP DBL Log of activity productM DBL Calculated molality of aqueous speciesMAXC02 DBL Temp storage to determinate domin. Garb, speciesNMAX INT General array dimension to allow easy expansionNUM INT Number of SI/ pH points in arraysPH DBL Measured pH of the solutionPHTRY DBL Values of pH triedREVERS LOG Do we need to reverse to find root?SATNAM CHA Name of mineral to be saturated withSI DBL Current SI valueSITRY DBL Values of Sis obtainedSTEP DBL Value used to change pH byTO FAR LOG Have we gone too far?TTIAP DBL Activity productTTKT DBL Log K for reactionUNO INT File unit assigned for output file
INTEGER NMAX, UNOPARAMETER (NMAX - 340, UNO = 6)
INTEGER I, IAQ, ICCSAT, IDK, IID, IPAGE, IPGLN, ITWRINTEGER JJ, JCCST, NUM
LOGICAL CROSS, TOFAR, REVERS
CHARACTER * 8 SATNAM(3)
- 1 rn\j w£.v
PHO 0030PHO 0040PHO 0050JPHO 0060IPHO 0070JPHO oosoJPHO 0090JPHO 0100IPHO 0110IPHO 0120PHO 0130JPHO ouoIPHO oisoJPHO 0160|PHO 0170JPHO oisoIPHO 0190JPHO 0200IPHO 0210|PHO 0220JPHO 0230|PHO 0240JPHO 0250|PHO 0260PHO 0270JPHO 0280JPHO 0290JPHO 0300PHO 0310PHO 0320|PHO 0330JPHO 0340IPHO 0350JPHO 0360|PHO 0370JPHO 0380I pun n"5onrriu ujyu PHO 0400PHO 0410PHO 0420PHO 0430PHO 0440PHO 0450PHO 0460PHO 0470PHO 0480PHO 0490PHO 0500
369
DOUBLE PRECISION ALFA(NMAX), ANALM(NMAX), CUNITS(NMAX), FCCSAT DOUBLE PRECISION HFAC, RTF, LOGKTl(NMAX), LOGKT2(NMAX), LTTIAP DOUBLE PRECISION M(NMAX), MAXC02, PH, PHTRY(5), SI, SITRY(5) DOUBLE PRECISION STEP, TTIAP, TTKT
EXTERNAL GUESS, PAGE, SORTA
INTRINSIC DABS, DLOG10, DSIGN
COMMON /ALOGK/ LOGKT1, LOGKT2COMMON /FORM / IPAGE, IPGLNCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITS
SAVE CROSS, NUM, PHTRY, REVERS, SITRY, STEP, TOFAR
DATA SATNAM / 'CALCITE ', 'DOLOMITE', 'SIDERITE'/
Scan for the most abundant C02 species
MAXC02 - M(7) HFAC - ALFA(8) IID - 7
DO 10 IAQ - 97, 98IF (M(IAQ) .GT. MAXC02) THEN
IF (IAQ .EQ. 97) HFAC = ALFA(8) ** 2.0 IF (IAQ .EQ. 98) HFAC -1.0 MAXC02 = M(IAQ) IID = IAQ
END IF 10 CONTINUE
ICCSAT = 1 for Calcite; = 2 for Dolomite; 3 for Siderite
Assign the appropriate SI based on ICCSAT AND the most abundant C02 species
IF (ICCSAT .EQ. 1) THENTTIAP - ALFA(l) * ALFA(IID) / HFACLTTIAP = DLOG10(TTIAP)IDK - 24RTF -1.0
ELSE IF (ICCSAT .EQ. 2) THENTTIAP - ALFA(l) * ALFA(2) * ALFA(IID)**2 / HFAC**2LTTIAP - DLOG10(TTIAP)IDK - 41RTF - 2.0
ELSETTIAP - ALFA(18) * ALFA(IID) / HFACLTTIAP - DLOG10(TTIAP)IDK - 146RTF -1.0
PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO
= | PHO PHO
| PHO | PHO | PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO
| PHO | PHO I PHO | PHO | PHO | PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO PHO
0510052005300540055005600570058005900600061006200630064006500660067006800690070007100720073007400750076007700780079008000810082008300840085008600870088008900900091009200930094009500960097009800990100010101020103010401050106010701080
370
cc
ccp
END IF
IF (IID .EQ. 98) TTKT - LOGKT2(IDK)IF (IID .EQ. 7) TTKT - LOGKT2(IDK) - KTF * LOGKTl(l)IF (IID .EQ. 97) TTKT - LOGKT2(IDK) - KTF * LOGKTl(l)
- KTF * LOGKT1(72)
First time here, initialize various switches, and get firststep.
IF (JCCST .LT. 1) THENWRITE (UNO, 1001) SATNAM(ICCSAT)IPGLN = IPGLN + 3IF (IPGLN .GT. 57) CALL PAGENUM - 0STEP = -0.5CROSS = .FALSE.TOFAR = .FALSE.REVERS = .FALSE.JCCST = 1IF (IID .EQ. 98) THEN
STEP =0.5IF ((LTTIAP - TTKT) .GE. 0.0) STEP = -1.0
ELSEKTF =1.0IF (IID .EQ. 97) KTF = 2.0
IF (IDK .EQ. 24) THENSTEP = TTKT - DLOG10(ALFA(1)) - DLOG10(ALFA(IID) )STEP = STEP - (KTF * PH)STEP - STEP * 1.01 / KTF
ELSE IF (IDK .EQ. 41) THENSTEP - TTKT - DLOG10(ALFA(1)) - DLOG10(ALFA(2) )
- (2.0 * DLOG10(ALFA(IID)))STEP = STEP - (2.0 * KTF * PH)STEP - STEP * 1.01 / (KTF * 2.0)
ELSE IF (IDK .EQ. 146) THENSTEP = TTKT - DLOG10(ALFA(18)) - DLOGlO(ALFA(IID) )STEP = STEP - (KTF * PH)STEP = STEP * 1.01 / KTF
END IFEND IF
END IF
Check for saturation using the SIIf saturation not achieved, adjust pH
SI - LTTIAP - TTKTIF (DABS (SI) .GT. FCCSAT) THENNUM = NUM + 1PHTRY(NUM) = PHSITRY(NUM) = SIJJ = NUM
PHO 1090PHO 1100PHO 1110PHO 1120PHO 1130PHO 1140PHO 1150
i pun 1 1 artIPHO 1170IPHO 1180i pun 1 1 onPHO 1200PHO 1210PHO 1220PHO 1230PHO 1240PHO 1250PHO 1260PHO 1270PHO 1280PHO 1290PHO 1300PHO 1310PHO 1320PHO 1330PHO 1340PHO 1350PHO 1360PHO 1370PHO 1380PHO 1390PHO 1400PHO 1410PHO 1420PHO 1430PHO 1440PHO 1450PHO 1460PHO 1470PHO 1480PHO 1490PHO 1500PHO 1510PHO 1520PHO 1530PHO 1540
---|PHO 1550 JPHO 1560|PHO 1570i pun 1 "^on- - - | JrnU J.DOU PHO 1590PHO 1600PHO 1610PHO 1620PHO 1630PHO 1640PHO 1650PHO 1660
371
IF (NUM .GT. 1 .AND. .NOT. CROSS) THENIF ((SI * SITRY(NUM-l)) .LT. 0.0) CROSS
END IF, TRUE.
IF ( .NOT. CROSS) THEN IF (NUM .GT. 1) THEN
IF (DABS(SI) - DABS(SITRY(NUM-1)) .LE. 0.0) THENSTEP = STEP * 1.5REVERS = .FALSE.
ELSEPH = PHTRY(NUM-l)SI = SITRY(NUM-l)PHTRY(NUM-l) = PHTRY(NUM)SITRY(NUM-l) - SITRY(NUM)PHTRY(NUM) = PHSITRY(NUM) = SIJJ = NUM - 1
IF ( REVERS ) THENSTEP = STEP * (-0.3)
ELSEIF (NUM .EQ. 2) THEN
STEP = STEP * (-1.0) ELSE
STEP = STEP * (0.5) END IF
END IF
REVERS END IF
END IF
.TRUE.
IF (DABS(STEP) .GT. 1.5) STEP - DSIGN(1.5DOO, STEP) PH = PHTRY(NUM) + STEP
IF (TOFAR) THENWRITE (UNO,1002) SATNAM(ICCSAT), PHIPGLN - IPGLN + 3IF (IPGLN .GT. 57) CALL PAGERETURN
END IF
IF (DABS(STEP) .LT. 0.01) THENWRITE (UNO,1003) SATNAM(ICCSAT), PHIPGLN = IPGLN + 3IF (IPGLN .GT. 57) CALL PAGERETURN
END IF
IF (PH .LT. 0.1) THENPH = 0.1TOFAR = .TRUE.
END IF
IF (PH .GT. 13.9) THENPH = 13.9TOFAR = .TRUE.
END IF
PHO 1670 PHO 1680 PHO 1690 PHO 1700 PHO 1710 PHO 1720 PHO 1730 PHO 1740 PHO 1750 PHO 1760 PHO 1770 PHO 1780 PHO 1790 PHO 1800 PHO 1810 PHO 1820 PHO 1830 PHO 1840 PHO 1850 PHO 1860 PHO 1870 PHO 1880 PHO 1890 PHO 1900 PHO 1910 PHO 1920 PHO 1930 PHO 1940 PHO 1950 PHO 1960 PHO 1970 PHO 1980 PHO 1990 PHO 2000 PHO 2010 PHO 2020 PHO 2030 PHO 2040 PHO 2050 PHO 2060 PHO 2070 PHO 2080 PHO 2090 PHO 2100 PHO 2110 PHO 2120 PHO 2130 PHO 2140 PHO 2150 PHO 2160 PHO 2170 PHO 2180 PHO 2190 PHO 2200 PHO 2210 PHO 2220 PHO 2230 PHO 2240
372
20
30
40
.LT. 0.0) THEN
IF (NUM .EQ. 4) THEN DO 20 I - 2, 5
PHTRY(I-l) - PHTRY(I) SITRY(I-l) - SITRY(I)
CONTINUE NUM - NUM - 1 JJ - JJ - 1
END IF END IF
IF ( CROSS ) THENCALL SORTA (PHTRY, SITRY, NUM, JJ) IF (NUM .GT. 3) THEN
IF ((SITRY(3) * SITRY(4)) DO 30 I - 2, 4
SITRY(I-l) - SITRY(I) PHTRY(I-l) - PHTRY(I)
CONTINUE NUM - NUM - 1 JJ - JJ - 1
ELSE IF ((SITRY(l) * SITRY(2)) .LT. 0.0) THENNUM - NUM -1
ELSE IF (DABS(SITRY(1)) .GT. DABS(SITRY(4))) THEN DO 40 I - 2, 4
SITRY(I-l) = SITRY(I) PHTRY(I-l) - PHTRY(I)
CONTINUE NUM - NUM - 1 JJ - JJ - 1
ELSENUM - NUM - 1
END IF END IF
CALL GUESS (PHTRY, SITRY, PH, NUM)
END IF
ALFA(8) - 10.0**(-PH)WRITE (UNO,1004) SATNAM(ICCSAT), SITRY(JJ), PHTRY(JJ), PH IPGLN - IPGLN + 3 IF (IPGLN .GT. 57) CALL PAGE ITWR - 1 RETURN 1
END IF
RETURN
1001 FORMAT (/ ,1002 FORMAT (//,
1003 FORMAT (//,
1004 FORMAT (/
END
Begining ',A8,' saturation by adjusting pH ',/)***** ',A8,' saturation NOT POSSIBLE for PH', between 0.1 and 13.9; Last pH tried - ',F6.3)***** ',A8,' saturation NOT POSSIBLE for pH', of ',F6.3,' as a staddle point seems to have', been reached here.')Log SI (',A8,') - ',E13.4,' at a pH of ',F6.3, Trying a new pH of ',F6.3,/)
PHO 2250 PHO 2260 PHO 2270 PHO 2280 PHO 2290 PHO 2300 PHO 2310 PHO 2320 PHO 2330 PHO 2340 PHO 2350 PHO 2360 PHO 2370 PHO 2380 PHO 2390 PHO 2400 PHO 2410 PHO 2420 PHO 2430 PHO 2440 PHO 2450 PHO 2460 PHO 2470 PHO 2480 PHO 2490 PHO 2500 PHO 2510 PHO 2520 PHO 2530 PHO 2540 PHO 2550 PHO 2560 PHO 2570 PHO 2580 PHO 2590 PHO 2600 PHO 2610 PHO 2620 PHO 2630 PHO 2640 PHO 2650 PHO 2660 PHO 2670 PHO 2680 PHO 2690 PHO 2700 PHO 2710 PHO 2720 PHO 2730 PHO 2740 PHO 2750 PHO 2760 PHO 2770 PHO 2780 PHO 2790 PHO 2800 PHO 2810 PHO 2820
373
r>Li
C
c
cccccc
c
c
cccccccccccccccccccccccccccccccccc
SUBROUTINE PITZER (A, MU, MXSP, TEMPI, PGDCA, PGDNA, PG, TEMP,PALFA, C02TIT, Z, FLAG1)
This routine calculates the pitzer activity coefficients.
Local constants
CPUMIN DBL Smallest value machine can representNANI INT Number of AnionsNCAT INT Number of CatibnsNMAX INT Number of aqueous species declaritonNTEM INT Number of TemperaturesUNP INT File unit of Pitzer Data
Declare constants
INTEGER NANI, NCAT, NMAX, NTEM, UNPDOUBLE PRECISION CPUMINPARAMETER (NCAT = 10, NANI - 5, NMAX = 340, NTEM = 11, UNP - 7)PARAMETER (CPUMIN = l.OD-35)
Local variables
A DBL Molal debeye-huckel coefficientALFA DBL Activity of aqueous species iANALM DBL Analyzed molality of species iANI INT Selects anions with pitzer dataB DBL B coefficientBO DBL Beta zero parameter for current tempBOO DBL Array of BO's for all tempsBl DBL Beta one parameter of current tempBll DBL Array of Bl's for all tempsBFEE DBL B sub fee coefficientBP DBL B prime coefficientBZ DBL Charge coefficientC DBL C coefficientCAT INT Selects cations with pitzer dataC02TIT DBL Analyzed molality of C03 + HC03CP DBL C sub fee parameter for current tempCPP DBL Array of CP's for all tempsDIFF DBL Difference value for activitiesDONE INT Switch to determine when DIFF is OKETHTA DBL E theta function for anionsETHTAP DBL E theta prime function for anionsETHTC DBL E theta function for cationsETHTCP DBL E theta prime function for cationsF DBL Debye-huckel interaction termFEE DBL Osmotic coefficientFLAG1 INT Water calculation flagG DBL Function to calculate coefficient valuesGP DBL Primed function to calculate coefficient valuesI INT Cation 1 loop variableII INT Cation loop variableITER INT Iteration counterJ INT Cation 2 loop variableK INT Anion 1 loop variableKK INT Anion loop variable
PIT 0010PIT 0020
-IPTT 0030I i i X V/V/Jw
[PIT 0040-IPIT 0050[PIT 0060[PIT 0070[PIT 0080|PIT 0090IPIT 0100IPIT 0110IPIT 0120JPIT 0130
-1 PIT 0140 |PIT 0150I T3TT m df\ rll UloU
PIT 0170PIT 0180PIT 0190PIT 0200PIT 0210
- |PIT 0220(PIT 0230JPIT 0240JPIT 0250|PIT 0260|PIT 0270JPIT 0280JPIT 0290IPIT 0300[PIT 0310|PIT 0320[PIT 0330JPIT 0340|PIT 0350|PIT 0360[PIT 0370|PIT 0380[PIT 0390IPIT 0400IPIT 0410[PIT 0420|PIT 0430|PIT 0440JPIT 0450JPIT 0460[PIT 0470|PIT 0480|PIT 0490JPIT 0500IPIT 0510|PIT 0520|PIT 0530|PIT 0540|PIT 0550[PIT 0560|PIT 0570|PIT 0580
374
cccccccccccccccccccccccccccccccccccccccccccccccccc
cc
KT1LLINELNGALNGCLNGDCALNGDNALOOPMMAMCMUMXSPOHAPALFAPGPGAMAPGAMCPGDCAPGDNAPHIAPHIAPPHICPHICPPSIAPSIAAPSICPSICCSUM1SUM2SUM2ASUM3SUM4SUMSSUM6SUM6ASUM?SUM7ASUMSTEMPTEMPITHTATHTAATHTCTHTCCTPXZZAZC
Declare
INTEGERINTEGERINTEGER
DELINTCHADELDELDELDELINTDELDELDELDELINTDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELINTDELINTINTINT
Equilibrium constants for specified tempAnion 2 loop variableRead in lines which contain no informationLn an ion gammaLn cation gammaLn gamma for divalent ions with no pitzer dataLn gamma for monovalent ions with no pitzer dataLoop VariableCalculated molality of aqueous species iMoles of AnionMoles of CationIonic strength of aqueous solutionTotal number of aqueous speciesHydroxide ActivityPitzer activitiesPitzer gammasPitzer Gammas for AnionsPitzer Gammas for CationsGamma for divalent ions with no pitzer dataGamma for monovalent ions with no pitzer dataPhi anion coefficientPhi prime anion coefficientPhi cation coefficientPhi prime cation coefficientPsi Anion-Anion- Cation parameterArray of PSIA for all TempsPsi Cation- Cation-Anion parameterArray of PSIC for all TempsInternal sum for In gamma calculationsInternal sum for In gamma calculationsInternal sum for In gamma calculationsInternal sum for In gamma calculationsInternal sum for In gamma calculationsInternal sum for osmotic calculationsInternal sum for osmotic calculationsInternal sum for osmotic calculationsInternal sum for osmotic calculationsInternal sum for osmotic calculationsInternal sum for osmotic calculationsArray of 11 TemperaturesTemperature of InterestPitzer theta anion parameterArray of THTA for all tempsPitzer theta cation parameterArray of THTC for all tempsInteger equivalient to temp(i)Independent variable in the G functionsCharge of Aqueous Species iCharge of the anionsCharge of the cations
variables
ANI(NANI), CAT(NCAT), DONE, FLAG1I, II,MXSP,
CHARACTER * 1
ITER, J, K, KK, L, LOOPTP, Z(NMAX), ZA(NANI), ZC(NCAT)
LINE
|PIT|PIT(PITIPITIPITIPITJPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPIT|PITIPITIPITIPITIPITIPITIPITIPITIPITIPIT(PITIPITIPITIPITJPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPITIPIT|PITIPITIPITIPITI T3TTrll
IPITIPITPITPITPITPITPIT
059006000610062006300640065006600670068006900700071007200730074007500760077007800790080008100820083008400850086008700880089009000910092009300940095009600970098009901000101010201030104010501060107010801090 1100111011201130114011501160
375
DOUBLE PRECISION A, ALFA(NMAX) , ANALM(NMAX) , B(NCAT,NANI)PIT 1170PIT 1180
DOUBLE PRECISION BO (NCAT , NANI ), BOO (NCAT, NANI , NTEM) , Bl (NCAT, NANI) PIT 1190
CC
C
CC
DOUBLE PRECISION Bl 1 (NCAT, NANI , NTEM) , BFEE( NCAT, NANI)DOUBLE PRECISION BP (NCAT, NANI ), BZDOUBLE PRECISION C(NCAT,NANI) , C02TIT, CP(NCAT,NANI)DOUBLE PRECISION C PP( NCAT, NANI , NTEM) , CUNITS(NMAX) , DIFFDOUBLE PRECISION ETHTA ( NANI , NANI) , ETHTAP( NANI, NANI)DOUBLE PRECISION ETHTC( NCAT, NCAT) , ETHTOP (NCAT, NCAT ), F, FEEDOUBLE PRECISION G, GP, KTl(NMAX) , LNGA(NANI)DOUBLE PRECISION LNGC(NCAT), LNGDCA, LNC1DNA, M(NMAX) , MA(NANI)DOUBLE PRECISION MC(NCAT), MU, OHA, PALFA(NMAX)DOUBLE PRECISION PG(NMAX) , PGAMA(NANI) , PGAMC(NCAT), PGDCA, PGDNADOUBLE PRECISION PH, PHI A ( NANI , NANI) , PtflAP (NANI , NANI)DOUBLE PRECISION PHI C( NCAT, NCAT ), PHICP^NCAT,NCAT)DOUBLE PRECISION PS I A (NANI , NANI, NCAT) , FSIAA(NANI , NANI , NCAT, NTEM)DOUBLE PRECISION PS 1C (NCAT, NCAT, NANI ), £SICC (NCAT, NCAT, NANI , NTEM)DOUBLE PRECISION SUM1, SUM2, SUM2A, SUM^B, SUM2C, SUM3 , SUM4DOUBLE PRECISION SUM4B, SUM4C, SUMS, SUM6 , SUM6A, SUM7, SUM7ADOUBLE PRECISION SUMS, TEMP (NTEM) , TEMPIDOUBLE PRECISION THTA ( NANI , NANI) , THTAA(NANI , NANI , NTEM)DOUBLE PRECISION THTC( NCAT, NCAT) , THTCC (NCAT, NCAT, NTEM ), X
EXTERNAL PTZINT
INTRINSIC DABS, DEXP, DLOG, DSQRT, IABS
COMMON /MOLS / PH, ANALM, M, ALFA, CUNlfTSCOMMON /TTK / KT1
DATA ANI /5, 6, 7, 98, 9/DATA CAT /3, 4, 1, 2, 26, 15, 8, 14, 23, 27/
Open data table of pitzer coefficients
OPEN (UNP, FILE = 'PIT.TBL', STATUS - 'OLD')OPEN (UNP, STATUS = 'OLD', shared, readonly)
Initialize arrays of parameters and coefficients
DO 10 I = 1, NMAXPG(I) - O.ODO
10 CONTINUE
DO 40 I - 1, NCATDO 30 K - 1, NANI
BO(I,K) - O.ODOB1(I,K) - O.ODOCP(I,K) - O.ODO
DO 20 TP - 1, NTEMBOO(I,K,TP) - O.ODO
PIT 1200PIT 1210PIT 1220PIT 1230PIT 1240PIT 1250PIT 1260PIT 1270PIT 1280PIT 1290PIT 1300PIT 1310PIT 1320PIT 1330PIT 1340PIT 1350PIT 1360PIT 1370PIT 1380PIT 1390PIT 1400PIT 1410PIT 1420PIT 1430PIT 1440PIT 1450PIT 1460PIT 1470PIT 1480PIT 1490(PIT 1500 PIT 1510|PIT 1520 JPIT 1530(PIT 1540PIT 1550PIT 1560PIT 1570PIT 1580(PIT 1590 |PIT 1600|PIT 1610PIT 1620PIT 1630PIT 1640PIT 1650PIT 1660PIT 1670PIT 1680PIT 1690PIT 1700PIT 1710PIT 1720PIT 1730PIT 1740
376
20
B11(I,K,TP) - O.ODO CPP(I,K,TP) - O.ODO
CONTINUE
30 CONTINUE 40 CONTINUE
DO 70 I = 1, NCAT DO 60 J - 1, NCAT
THTC(I,J) - O.ODO
50
DO 50 TP = 1, NTEMTHTCC(I,J,TP) - O.ODO
CONTINUE
60 CONTINUE 70 CONTINUE
DO 100 K - 1, NANI DO 90 L - 1, NANI
THTA(K,L) - O.ODO
80
DO 80 TP - 1, NTEMTHTAA(K,L,TP) - O.ODO
CONTINUE
90 CONTINUE 100 CONTINUE
DO 140 1=1, NCAT DO 130 J - 1, NCAT
DO 120 K = 1, NANI PSIC(I,J,K) - O.ODO
110
120130
DO 110 TP = 1, NTEMPSICC(I,J,K,TP) = O.ODO
CONTINUE
CONTINUE CONTINUE
140 CONTINUE
DO 180 K - 1, NANI DO 170 L = 1, NANI
DO 160 I - 1, NCAT PSIA(K,L,I) = O.ODO
150
160170
DO 150 TP - 1, NTEMPSIAA(K,L,I,TP) - O.ODO
CONTINUE
CONTINUE CONTINUE
180 CONTINUE
DO 190 I - 1, NCAT LNGC (I) - O.ODO IF (I .LE. NANI) LNGA (I) - O.ODO
PIT 1750 PIT 1760 PIT 1770 PIT 1780 PIT 1790 PIT 1800 PIT 1810 PIT 1820 PIT 1830 PIT 1840 PIT 1850 PIT 1860 PIT 1870 PIT 1880 PIT 1890 PIT 1900 PIT 1910 PIT 1920 PIT 1930 PIT 1940 PIT 1950 PIT 1960 PIT 1970 PIT 1980 PIT 1990 PIT 2000 PIT 2010 PIT 2020 PIT 2030 PIT 2040 PIT 2050 PIT 2060 PIT 2070 PIT 2080 PIT 2090 PIT 2100 PIT 2110 PIT 2120 PIT 2130 PIT 2140 PIT 2150 PIT 2160 PIT 2170 PIT 2180 PIT 2190 PIT 2200 PIT 2210 PIT 2220 PIT 2230 PIT 2240 PIT 2250 PIT 2260 PIT 2270 PIT 2280 PIT 2290 PIT 2300 PIT 2310 PIT 2320
377
190 CONTINUE
C «
C Read in data
DO 195 I - 1, 3READ (UNP, '(Al)') LINE
195 CONTINUE
DO 220 I - 1, 6DO 210 TP - 1, NTEMREAD (UNP, 200) (BOO(I ,K,TP) , B11(I
K - 1, 4)200 FORMAT (12(F10.5))210 CONTINUE
DO 215 J - 1, 4READ (UNP, '(Al)') LINE
215 CONTINUE220 CONTINUE
DO 240 I = 7, 10DO 230 TP = 1, 2READ (UNP, 200) (BOO(I ,K,TP) , Bll(I
K = 1, 4)230 CONTINUE
DO 235 J = 1, 4READ (UNP, '(Al)') LINE
235 CONTINUE240 CONTINUE
DO 260 LOOP - 1, 9READ (UNP, 250) I, J, (THTCC(I , J ,TP) ,
250 FORMAT (2(12), IX, 11(F10.5))260 CONTINUE
DO 265 I - 1, 3READ (UNP, '(Al)') LINE
265 CONTINUE
DO 270 LOOP =1,9READ (UNP, 250) K, L, (THTAA(K,L,TP) ,
270 CONTINUE
DO 275 I - 1, 3READ (UNP, '(Al)') LINE
275 CONTINUE
DO 290 LOOP - 1, 19READ (UNP, 280) I, J, K, (PSICC(I,J,K
280 FORMAT (3(12), IX, 11(F10.5))290 CONTINUE
DO 295 I - 1, 3READ (UNP, '(Al)') LINE
295 CONTINUE
DO 300 LOOP - 1, 20
PIT 2330 PIT 2340
.......................... | PIT 2350 (PIT 2360
.......................... j PIT 2370PIT 2380PIT 2390PIT 2400PIT 2410PIT 2420PIT 2430PIT 2440
,K,TP), CPP(I,K,TP), PIT 2450PIT 2460PIT 2470PIT 2480PIT 2490PIT 2500PIT 2510PIT 2520PIT 2530PIT 2540PIT 2550
,K,TP), CPP(I,K,TP), PIT 2560PIT 2570PIT 2580PIT 2590PIT 2600PIT 2610PIT 2620PIT 2630PIT 2640
TP - 1, 11) PIT 2650PIT 2660PIT 2670PIT 2680PIT 2690PIT 2700PIT 2710PIT 2720PIT 2730
TP - 1, 11) PIT 2740PIT 2750PIT 2760PIT 2770PIT 2780PIT 2790PIT 2800PIT 2810
,TP), TP - 1, 11) PIT 2820PIT 2830PIT 2840PIT 2850PIT 2860PIT 2870PIT 2880PIT 2890PIT 2900
378
c
c
c
c LICc
READ (UNP, 280) K, L, I, (PSIAA(K,L, I ,TP) , TP - 1, 11)300 CONTINUE
CLOSE (UNP)
Interpolate values from table to proper temperature
CALL PTZINT (TEMP, TEMPI, BO, BOO, Bl, fill, CP, CPP, THTC,THTA, THTAA, PSIC, PSICC, PSIA, PSIAA)
Initialize E sub theta functions
DO 320 I - 1, NCATDO 310 J - 1, NCAT
ETHTC(I.J) - O.ODOETHTCP(I,J) - O.ODO
310 CONTINUE320 CONTINUE
DO 340 K - 1, NANIDO 330 L - 1, NANI
ETHTA(K,L) - O.ODOETHTAP(K,L) - O.ODO
330 CONTINUE340 CONTINUE
Initialize moles and charge for anions and cations
DO 350 I - 1, NCATMC(I) - O.ODOZC(I) - 0IF (I .LE. NANI) THENMA(I) - O.ODOZA(I) - 0
END IF350 CONTINUE
To avoid zerodivide the molality of unknown components inpitzer is set - 0.001 mole
DO 360 I - 1, NCATZC(I) - Z(CAT(I))MC(I) - ANALM(CAT(I))IF (FLAGl .NE. 1 .AND. I .EQ. 7) MC(I) - ALFA(8)IF (MC(I) .LT. CPUMIN) MC(I) = l.OD-3
360 CONTINUE
DO 370 K - 1, NANIZA(K) - Z(ANI(K))MA(K) - ANALM(ANI(K))
PIT 2910PIT 2920PIT 2930PIT 2940PIT 2950
1 DTT 0 Q£ A
|PIT 29701 DTT OQftH
PIT 2990THTCC, PIT 3000
PIT 3010PIT 3020
------- |PIT 3030 |PIT 3040
------ -| PIT 3050 PIT 3060PIT 3070PIT 3080PIT 3090PIT 3100PIT 3110PIT 3120PIT 3130PIT 3140PIT 3150PIT 3160PIT 3170PIT 3180PIT 3190PIT 3200
------ -| PIT 3210|PIT 3220
------- JPIT 3230PIT 3240PIT 3250PIT 3260PIT 3270PIT 3280PIT 3290PIT 3300PIT 3310PIT 3320PIT 3330
....... [PIT 3340 |PIT 3350|PIT 3360
....... [PIT 3370PIT 3380PIT 3390PIT 3400PIT 3410PIT 3420PIT 3430PIT 3440PIT 3450PIT 3460PIT 3470PIT 3480
379
370
C
380
C
IF (FLAG1 .NE. 1 .AND. K .EQ. 5)MA(K) = KT1(2) * ALFA(IO) / ALFA(8)
IF (MA(K) .LT. CPUMIN) MA(K) - l.OD-3CONTINUE
Determine ionic strength
MU = O.ODOBZ = O.ODO
DO 380 I = 1, MXSP + 44MU = MU + ANALM(I) * Z(I)**2IF (Z(I) .NE. 0) BZ = BZ + ANALM(I) *
CONTINUE
MU - 0.5 * MU
PIT 3490PIT 3500PIT 3510PIT 3520PIT 3530
.......................... | PIT 3540 |PIT 35501 PTT "\G.£>r\
PIT 3570PIT 3580PIT 3590PIT 3600PIT 3610PIT 3620
IABS(Z(I)) PIT 3630PIT 3640PIT 3650PIT 3660PIT 3670
.___ ___ __ 1 DTT QCQfi
Calculate g functions assuming alpha = 2.0 | PIT 3690
X = 2 * DSQRT(MU)
,--.__---_---_-----------. | PIT 3700 PIT 3710PIT 3720
G = 2 * (1 - (1 + X) * DEXP(-X)) / (X**2) PIT 3730
CC - - -
GP - -2 * (1 - (1 + X + (0.5 * X**2)) * DEXP(-X)) / X**2 PIT 3740PIT 3750
1 DTT 1~7C.r\...._..__...-..._..._..._..._. ....................................Ij-j^ _>/uw
Determine B, B' , and C coefficients assuming beta(2)MX = 0.0 (PIT 3770
DO 400 1=1, NCATDO 390 K - 1, NANI
C(I,K) = O.ODOB(I,K) = O.ODOBP(I,K) = O.ODO
IF (MC(I) .LT. CPUMIN) GO TO 400IF (MA(K) .LT. CPUMIN) GO TO 390B(I,K) - BO(I,K) + B1(I,K) * GBP(I,K) - B1(I,K) * GP / MU
IF (ZC(I) .EQ. 0) GO TO 400IF (ZA(K) .EQ. 0) GO TO 390
1 DTT "l~7ttf\..___.___._--_-__-_--_-_-_ | Jfll J/OU
PIT 3790PIT 3800PIT 3810PIT 3820PIT 3830PIT 3840PIT 3850PIT 3860PIT 3870PIT 3880PIT 3890PIT 3900PIT 3910PIT 3920
C(I,K) = CP(I,K) / (2 * ((IABS(ZC(I) * ZA(K) ) )**0 . 5) ) PIT 3930390400
p
C
CONTINUECONTINUE
PIT 3940PIT 3950PIT 3960
1 DTT O C\~lf\.-___-____-______________________..________________________________| jrjLi jy / \j Determine Phi and Phi' cation coefficients j PIT 3980
DO 420 1=1, NCATDO 410 J = 1, NCAT
PHIC(I.J) = O.ODOPHICP(I.J) = O.ODO
IF (MC(I) .LT. CPUMIN) GO TO 420
.......................... j PIT 3990PIT 4000PIT 4010PIT 4020PIT 4030PIT 4040PIT 4050PIT 4060
380
410420
IF (MC(J) .LT. CPUMIN) GO TO 410
PHIC(I,J) - THTC(I.J) + ETHTC(I.J) PHICP(I.J) - ETHTCP(I.J)
CONTINUE CONTINUE
Determine Phi and Phi' anion coefficients
DO 440 K - 1, NANI DO 430 L - 1, NANI
PHIA(K,L) - O.ODO PHIAP(K.L) - O.ODO
IF (MA(K) .LT. CPUMIN) GO TO 440 IF (MA(L) .LT. CPUMIN) GO TO 430
430440
PHIA(K.L) PHIAP(K.L)
CONTINUE CONTINUE
THTA(K.L) + ETHTA(K.L) ETHTAP(K.L)
Determine first summation term to solve equation for F
SUM1 - O.ODO
DO 460 I - 1, NCAT DO 450 K = 1, NANI
SUM1 - SUM1 + MC(I) * MA(K) * BP(I,K) 450 CONTINUE 460 CONTINUE
Determine second summation term to solve equation for F
SUM2 - O.ODO
DO 480 1=1, (NCAT-1) DO 470 J - (1+1), NCAT
SUM2 = SUM2 + MC(I) * MC(J) * PHICP(I.J) 470 CONTINUE 480 CONTINUE
Determine third summation term to solve equation for F
SUM3 = O.ODO
DO 500 K - 1, (NANI-1) DO 490 L = (K+l), NANI
SUM3 - SUM3 + MA(K) * MA(L) * PHIAP(K,L) 490 CONTINUE
PIT 4070 PIT 4080 PIT 4090 PIT 4100 PIT 4110 PIT 4120 PIT 4130 |PIT 4140 I PIT 4150 |PIT 4160 PIT 4170 PIT 4180 PIT 4190 PIT 4200 PIT 4210 PIT 4220 PIT 4230 PIT 4240 PIT 4250 PIT 4260 PIT 4270 PIT 4280 PIT 4290 PIT 4300 PIT 4310 PIT 4320 PIT 4330 PIT 4340 PIT 4350 PIT 4360 PIT 4370 PIT 4380 PIT 4390 PIT 4400 PIT 4410 PIT 4420 PIT 4430 PIT 4440 PIT 4450 PIT 4460 PIT 4470 PIT 4480 PIT 4490 PIT 4500 PIT 4510 PIT 4520 PIT 4530 PIT 4540 PIT 4550 PIT 4560 PIT 4570 PIT 4580 PIT 4590 PIT 4600 PIT 4610 PIT 4620 PIT 4630 PIT 4640
381
500 CONTINUE
Solve for F
F = -0.768 * A * ((DSQRT(MU) / (1 + 1.2 * DSQRT(MU))) +(2 / 1.2) * DLOG(1 + 1.2 * DSQRT(MU))) + SUM1 + SUM2 + SUMS
Start to solve for In activity coefficient of the cations
ITER - 1
DO 620 II - 1, NCAT 520 CONTINUE
IF (FLAG1 .EQ. 1 .AND. II .EQ. 7 .AND. ITER .EQ. 1)M(8) - ALFA(8)
IF (MC(II) .LT. CPUMIN) GO TO 610
First summation term for cation activity coefficients
SUM1 = O.ODO
DO 530 K - 1, NANISUM1 = SUM1 + MA(K) * (2 * B(II,K) + BZ * C(II,K))
530 CONTINUE
Second summantion term for cation activity coefficients
SUM2 - O.ODO SUM2B - O.ODO SUM2C = O.ODO
DO 550 J = 1, NCATIF (II .EQ. J) GO TO 550 SUM2A = O.ODO
DO 540 K - 1, NANIIF (MC(J) .LT. CPUMIN) GO TO 540 SUM2A - SUM2A + MA(K) * PSIC(II,J,K)
540 CONTINUE
SUM2 - SUM2 + MC(J) * (2 * PHIC(II,J) + SUM2A)
IF (J .EQ. 1 .OR. J .EQ. 3) THENSUM2B - SUM2 + l.OD-3 * (2 * PHIC(II,J) + SUM2A) SUM2C - SUM2 + l.OD-3 * (2 * PHIC(II,J) + SUM2A)
ELSESUM2B - SUM2 + MC(J) * (2 * PHIC(II,J) + SUM2A) SUM2C = SUM2 + MC(J) * (2 * PHIC(i;i,J) + SUM2A)
END IF
PITPIT
| PIT(PIT| PITPITPITPITPIT
| PIT| PIT| PITPITPITPITPITPITPITPITPITPIT(PIT| PIT| PITPITPITPITPITPITPITPIT
| PIT| PIT| PITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPIT
4650466046704680469047004710472047304740475047604770478047904800481048204830484048504860487048804890490049104920493049404950496049704980499050005010502050305040505050605070508050905100511051205130514051505160517051805190520052105220
382
550 CONTINUE PIT 5230PIT 5240
C ------.--------..---..--.....---....---------------------------------(PIT 5250C Third summantion term for cation activity coefficients (PIT 5260 C ------.-------.......-..............-.-------------------------------j PIT 5270
PIT 5280SUMS - O.ODO PIT 5290
PIT s^oo DO 570 K - 1, (NANI-1)
DO 560 L - (K+l), NANI r-.x .,-..-SUMS - SUMS + MA(K) * MA(L) * PSIA(K,L,II) PIT 5330
560 CONTINUE PIT 5340570 CONTINUE PIT 5350
PIT 5360 C ...._.................................-------------------------------|PIT 5370C Fourth summantion term for cation activity coefficients JPIT 5380 C --------------------------------------------------------------------- I PIT 5390
PIT 5400SUM4 - O.ODO PIT 5410 SUM4B - O.ODO PIT 5420 SUM4C - O.ODO PIT 5430
PIT 5440DO 590 I - 1, NCAT PIT 5450
DO 580 K - 1, NANI PIT 5460SUM4 - SUM4 + MC(I) * MA(K) * C(I,K) PIT 5470IF (I .EQ. 1 .OR. I .EQ. 3) THEN PIT 5480
SUM4B - SUM4 + l.OD-3 * MA(K) * C(I,K) PIT 5490SUM4C - SUM4 + l.OD-3 * MA(K) * C(I,K) PIT 5500
C ELSE PIT 5510C SUM4B = SUM4 + MC(I) * MA(K) * C(I,K) PIT 5520C SUM4C = SUM4 + MC(I) * MA(K) * C(I,K) PIT 5530
END IF PIT 5540580 CONTINUE PIT 5550590 CONTINUE PIT 5560
PIT 5570IF (II .EQ. 1) THEN PIT 5580LNGDNA - F + SUM1 + SUM2C + SUM3 + SUM4C PIT 5590PGDNA - DEXP(LNGDNA) PIT 5600
ELSE IF (II .EQ. 3) THEN PIT 5610LNGDCA - 4 * F + SUM1 + SUM2B + SUM3 + 2*SUM4B PIT 5620PGDCA - DEXP(LNGDCA) PIT 5630
END IF PIT 5640PIT 5650
C ----------------------------------_--------------.._....._..._..._...| PIT 5660C Add up components to solve for activity coefficient for the cation |PIT 5670 C ----------------------------------.___-----.__......_......_._..._...I PIT 5680
PIT 5690LNGC(II) - ZC(II)**2 * F + SUM1 + SUM2 + SUM3 + PIT 5700
IABS(ZC(II)) * SUM4 PIT 5710PGAMC(II) - DEXP(LNGC(II)) PIT 5720PALFA(CAT(II)) = MC(II) * PGAMC(II) PIT 5730
PIT 5740 IF (FLAG1 .NE. 1) GO TO 610 PIT 5750
PIT 5760DONE - 1 PIT 5770 M(8) - ALFA(8) / PGAMC(7) PIT 5780 DIFF - PALFA(CAT(7)) - ALFA(8) PIT 5790
PIT 5800
383
IF ((DABS(DIFF)-(5.0D-3*ALFA(8))) .LT. CPUMIN) GO TO 600
DONE - 0ITER = ITER + 1
600 CONTINUEIF (DONE .NE. 1) GO TO 520OHA = KT1(2) * ALFA(IO) / ALFA(8)M(9) = OHA
610 CONTINUEPG(CAT(II)) - PGAMC(II)
620 CONTINUE
Start to solve for In activity coefficient of the anions
KK = 1 630 CONTINUE
IF (MA(KK) .LT. CPUMIN) GO TO 720
First summation term for anion activity coefficients
SUM1 - O.ODO
DO 640 I = 1, NCATSUM1 = SUM1 + MC(I) * (2 * B(I,KK) + BZ * C(I,KK))
640 CONTINUE
Second summation term for anion activity coefficients
650
660
SUM2 = O.ODO
DO 660 L - 1, NANIIF (L .EQ. KK) GO TO 660
SUM2A - O.ODO
DO 650 I = 1, NCATIF (MA(L) .LT. CPUMIN) GO TO 650 SUM2A - SUM2A + MC(I) * PSIA(KK,L,I)
CONTINUE
SUM2 = SUM2 + MA(L) * (2 * PHIA(KK,L) + SUM2A) CONTINUE
Third summation term for anion activity coefficients __«______ ________________.
SUM3 - O.ODO
DO 680 I - 1, (NCAT-1)
PITPITPITPITPITPITPITPITPITPITPITPITPITPIT
| PIT| PIT(PITPITPITPITPITPIT
| PIT| PITI PITPITPITPITPITPITPITPIT
| PIT| PIT| PITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPITPIT
| PITI PIT| PITPITPITPITPIT
5810582058305840585058605870588058905900591059205930594059505960597059805990600060106020603060406050606060706080609061006110612061306140615061606170618061906200621062206230624062506260627062806290630063106320633063406350636063706380
384
c
r>Vj
C
DO 670 J - (1+1), NCATSUM3 - SUM3 + MC(I) * MC(J) * PSIC(I,J,KK)
670 CONTINUE680 CONTINUE
Fourth summation term for anion activity coefficients
SUM4 - O.ODO
DO 700 I - 1, NCATDO 690 K - 1, NANI
SUM4 - SUM4 + MC(I) * MA(K) * C(I,K)690 CONTINUE700 CONTINUE
Add up components to solve for activity coefficient for the anion
LNGA(KK) - ZA(KK)**2 * F + SUM1 + SUM2 + SUM3 +IABS(ZA(KK)) * SUM4
PGAMA(KK) - DEXP(LNGA(KK))PALFA(ANI(KK)) - MA(KK) * PGAMA(KK)
IF (FLAG1 .NE. 1) GO TO 720
DONE - 1M(9) - OHA / PGAMA(5)DIFF - PALFA(ANI(5)) - OHA
IF ((DABS(DIFF)-(5.0D-3*OHA)) .LT. CPUMIN) GO TO 710
DONE - 0
710 CONTINUE
IF (DONE .NE. 1) GO TO 630
720 CONTINUE
IF (KK .EQ. 4 .AND. C02TIT .GT. CPUMIN) THENMA(3) - C02TIT / (1 + 2 * (KT1(1) * PGAMA(3)) /
(PGAMA(4)*ALFA(8)))MA(4) - 5.0D-1 * (C02TIT - MA(3))
IF (DABS(PALFA(ANI(3))-MA(3)*PGAMA(3)) .GT.5.0D-3*PALFA(ANI(3))) KK - 3
IF (KK .EQ. 3) GO TO 630IF (DABS(PALFA(ANI(4))-MA(4)*PGAMA(4)) .GT.
5.0D-3*PALFA(ANI(4))) GO TO 630END IF
PG(ANI(KK)) - PGAMA(KK)KK - KK + 1IF (KK .LE. 5) GO TO 630
PIT 6390PIT 6400PIT 6410PIT 6420PIT 6430
-| PIT 6440 (PIT 6450
-| PIT 6460 PIT 6470PIT 6480PIT 6490PIT 6500PIT 6510PIT 6520PIT 6530PIT 6540PIT 6550
1 T3TT £ <^£O 1 rll ODOU
(PIT 6570I TJTT £^QOrll ODoU
PIT 6590PIT 6600PIT 6610PIT 6620PIT 6630PIT 6640PIT 6650PIT 6660PIT 6670PIT 6680PIT 6690PIT 6700PIT 6710PIT 6720PIT 6730PIT 6740PIT 6750PIT 6760PIT 6770PIT 6780PIT 6790PIT 6800PIT 6810PIT 6820PIT 6830PIT 6840PIT 6850PIT 6860PIT 6870PIT 6880PIT 6890PIT 6900PIT 6910PIT 6920PIT 6930PIT 6940PIT 6950PIT 6960
385
o ---------------------------------------------
C Calculate the osmostic coefficient
DO 750 I = 1, NCATDO 740 K = 1, NANI
BFEE(I,K) = BO(I,K) + B1(I,K) * DEXP(740 CONTINUE750 CONTINUE
SUMS - O.ODO
DO 770 I = 1, NCATDO 760 K = 1, NANI
|PIT 6980..........------.---..-- j PIT 6990
PIT 7000PIT 7010PIT 7020
-2.0 * DSQRT(MU)) PIT 7030PIT 7040PIT 7050PIT 7060PIT 7070PIT 7080PIT 7090PIT 7100
SUMS = SUMS + (MC(I) * MA(K)) * (BFEE^I,K) + BZ * C(I,K)) PIT 7110760 CONTINUE770 CONTINUE
SUM6 - O.ODO
DO 800 I - 1, (NCAT-1)DO 790 J = (1+1) , NCAT
SUM6A - O.ODODO 780 K = 1, NANI
SUM6A - SUM6A + MA(K) * PSIC(I,J,K)780 CONTINUE
PIT 7120PIT 7130PIT 7140PIT 7150PIT 7160PIT 7170PIT 7180PIT 7190PIT 7200PIT 7210PIT 7220
SUM6 = SUM6 + (MC(I) * MC(J)) * (PHIC(I,J) + SUM6A) PIT 7230790 CONTINUE800 CONTINUE
SUM7 = O.ODO
DO 830 K - 1, (NANI-1)DO 820 L = (K+l) , NANI
SUM7A - O.ODODO 810 1=1, NCAT
SUM7A = SUM7A + MC(I) * PSIA(K,L,I)810 CONTINUE
PIT 7240PIT 7250PIT 7260PIT 7270PIT 7280PIT 7290PIT 7300PIT 7310PIT 7320PIT 7330PIT 7340
SUM7 = SUM7 + (MA(K) * MA(L)) * (PHIA(K,L) + SUM7A) PIT 7350820 CONTINUE830 CONTINUE
SUMS = O.ODO
DO 840 I = 1, NCATSUMS = SUM8 + MC(I)
840 CONTINUE
DO 845 I = 1, NANISUMS = SUMS + MA(I)
845 CONTINUE
PIT 7360PIT 7370PIT 7380PIT 7390PIT 7400PIT 7410PIT 7420PIT 7430PIT 7440PIT 7450PIT 7460PIT 7470PIT 7480
FEE = (-0.768 * A * MU) / (1 + 1.2 * DSQRT(MU)) PIT 7490FEE = FEE + SUMS + SUM6 + SUM7FEE - 1.0 + (2.0 * FEE) / SUMS
C Calculate the activity of water
PIT 7500PIT 7510PIT 7520
........................ | PIT 7530|PIT 7540
386
C ------...............-.........-------.------------------------------1 PIT 7550PIT 7560
ALFA(IO) = 10**(-0.007823 * SUMS * FEE) PIT 7570PIT 7580
C ------........---.....---.-....-------.------------------------------|PIT 7590C At this time pitzer data calculated for only (na,k,ca,mg,cl,so4) JPIT 7600C ---------------------------------------------------------------------j PIT 7610
PIT 7620DO 850 I = 7, NMAX PIT 7630
PALFA(I) = O.ODO PIT 7640PG(I) - O.ODO PIT 7650
850 CONTINUE PIT 7660PIT 7670
RETURN PIT 7680END PIT 7690
C =CCCC
rLl
SUBROUTINE POLY (A, B, C, E, D, G, J, ROOT) == - ,.,
This routine solves the cubic equation which describes thepartitioning between gas, oil, and water.Values defined in calling routine
INTEGER UNODOUBLE PRECISION CPUMINPARAMETER (UNO =6)PARAMETER (CPUMIN = l.OD-35)
DOUBLE PRECISION A, B, C, D, E, Fl, F2 , F3 , G, J, PDOUBLE PRECISION Q, R, S, ROOT, T, X, Z, Zl , Z2 , Z3
INTRINSIC DABS, DAGOS, DCOS , DMAX1, DSIN, DSQRT
X = (l.ODOO / 3.0DOO)
Z1=D+G+J-A-B-CZl = Zl / E
Z2 = (D * G) + (D * J) + (G * J) - (A * G) - (A * J) - (B * D)- (B * J) - (C * D) - (C * G)
Z2 = Z2 / (E**2)
Z3 - (D * G * J) - (A * G * J) - (B * D * J) - (C * D * G)Z3 - Z3 / (E**3)
Q = ((3.0 * Z2) - (Zl**2)) / 9.00DOO
R = (9.0DOO * Zl * Z2) - (27.00DOO * Z3) - (2.0DOO * Zl**3)R = R / 54.0DOO
p = Q**3 + R**2
POL 0010«| POL 0020
|POL 0030IPOL 0040IPOL 0050
---JPOL 0060POL 0070POL 0080POL 0090POL 0100POL 0110POL 0120POL 0130POL 0140POL 0150POL 0160POL 0170
===|POL 0180POL 0190POL 0200POL 0210POL 0220POL 0230POL 0240POL 0250POL 0260POL 0270POL 0280POL 0290POL 0300POL 0310POL 0320POL 0330POL 0340POL 0350POL 0360POL 0370POL 0380
387
IF (DABS(P) .LT. CPUMIN) THENFl = (2.0DOO * (R**X))Fl - Fl - ( X * Zl)F2 = (-1.0DOO) * (R**X) - (X * Zl)F3 = F2
ELSE IF (P .GT. O.ODOO) THENS - (R + DSQRT(Q**3 + R**2))**XT - (R - DSQRT(Q**3 + R**2))**XFl - S + T - (X * Zl)F2 - FlF3 = Fl
ELSE IF (P .LT. O.ODOO) THENZ - DACOS(R / (DSQRT(-1.0 * Q**3)))Z - Z / 3.0DOOFl - (2.0DOO * DSQRT(-1.0 * Q) * DCOS(F2 - ((-1.0) * DSQRT(-1.0 * Q) * DCOS(
+ (DSQRT(-3.0 * Q) * DSIN(
POLPOLPOLPOLPOLPOLPOLPOLPOLPOLPOLPOLPOLPOL
Z)) - (X * Zl) POLZ)) - (X * Zl) POLZ)) POL
F3 = ((-1.0) * DSQRT(-1.0 * Q) * DCOS(Z)) - (X * Zl) POL- (DSQRT(-3.0 * Q) * DSIN(Z)) POL
END IF
ROOT = DMAX1(F1, F2 , F3)
IF (ROOT .LE. 0.0) THENWRITE (UNO, 1001)STOP
END IF
RETURN
FORMAT( //, 57('*'),/» ' *',56X,'*' ,/,'E.H. Perkins , with complete
POLPOLPOLPOLPOLPOLPOLPOLPOLPOLPOL
' * ERROR .... Call ' , POLproblem *',/, POL
' *' ,13X, 'details. Error occurred during volatile *' ,/ POL' *' ,13X, 'fractionation between water, oil and gas *' ,/, POL' *' ,13X, 'phases. ',34X, '*',/, '
END
*',56X, '*',/, 57('*'),//) POLPOLPOL
0390040004100420043004400450046004700480049005000510052005300540055005600570058005900600061006200630064006500660067006800690070007100720073007400750
SUBROUTINE PRATIO (TITLE, PRESS, TEMP, DENS, UNITS, PC02, GEOTH,RATIO)
This routine prints mole ratios, log of active ratios, etc.
AlA2A3A4ALFAANALMCOCPUMINCRCUNITSDENS
DELDELDELDELDELDELDELDELCHADELDEL
Temperary storage for intermediate valuesTemperary storage for intermediate valuesTemperary storage for intermediate valuesTemperary storage for intermediate valuesActivity of aqueous species iAnalyzed molality of species iHold intermediate calculationsSmallest positive real value program usesInserts carriage returns in outputAnalytical input concentrationDensity
PRA 0010 PRA 0020 |PRA 0030 |PRA 0040 |PRA 0050 |PRA 0060 |PRA 0070 |PRA 0080 |PRA 0090 IPRA 0100 |PRA 0110 IPRA 0120 |PRA 0130 |PRA 0140 |PRA 0150 IPRA 0160
388
C DUM DEL Array to hold results for printingC EXELT DEL Moles of componentsC FD5 DEL Number of Hydrogens in various activity ratiosC GEOTH INT Flag to print geothermometersC I INT Loop variable/pointerC ID1 INT Index of species to make ratiosC ID2 INT Index of species to make ratiosC IDS INT Index of species to make ratiosC ID4 INT Index of species to make ratiosC IPGLN INT Current line number of the output fileC NMAX INT General array dimension to allow easy expansionC PC02 DEL Partial Pressure of Carbon DioxideC PF DEL Holds intermediate calculationsC PH DEL Measured pH of the solutionC PRESS DEL Total pressureC RATIO INT Flag for printing activity ratios of elementsC RMG DEL Holds intermediate calculationsC RMGD DEL Holds intermediate calculationsC SUET DEL Array to hold calculated geothermometersC TEMP DEL Temperature of the solution when pH was measuredC TITLE CHA Name of the sampleC TITMIX CHA TITLE for mixturesC TITR DEL Iteration array in DISTRB, used for guessesC TOTEL DEL Contains HTOT, OHTOT and Sum C02C UNITS CHA Units of concentrationC UNO INT File unit assigned for output fileC .....................................................................
DOUBLE PRECISION CPUMININTEGER NMAX, UNOPARAMETER (CPUMIN «= l.OD-35, UNO -= 6)PARAMETER (NMAX = 340)
INTEGER I, IDl(lO), ID2(10), ID3(10), ID4(6), IPAGE, IPGLN INTEGER GEOTH, RATIO
CHARACTER * 1 TOF, CR CHARACTER * 5 UNITS CHARACTER * 40 TITMIX CHARACTER * 80 TITLE
DOUBLE PRECISION Al, A2, A3, A4, ALFA(NMAX), ANALM(NMAX)DOUBLE PRECISION CO, C02F, CUNITS(NMAX)DOUBLE PRECISION DENS, DUM(IO)DOUBLE PRECISION HTOTI, EXELT(35), FD5(6), M(NMAX), OHTOTIDOUBLE PRECISION PC02, PF, PH, PRESS, RMG, RMGD, SUBT(21)DOUBLE PRECISION TEMP, TITR(ll), TOTEL(5)
INTRINSIC DABS, DLOG10, DSQRT EXTERNAL PAGE
COMMON /EXTOT / EXELT, TOTEL, TITRCOMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /TOTALS/ C02F, HTOTI, OHTOTI
DATA ID1 / 1, 2, 3, 4, 14, 18, 6, 7, 1, I/
|PRAIPRA|PRAIPRA IPRA JPRAJPRA |PRAIPRAI PRAIPRA IPRA|PRAJPRA JPRA IPRA|PRA |PRA I PRAIPRA IPRA|PRAIPRA|PRAIPRA|PRA |PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA PRA
0170018001900200021002200230024002500260027002800290030003100320033003400350036003700380039004000410042004300440045004600470048004900500051005200530054005500560057005800590060006100620063006400650066006700680069007000710072007300740
389
DATA ID2 / 32, 22, 4, 2, 26, 15, 6, 7,DATA ID3 / 3, 3, 3, 1, 1, 1, 20, 20, 2DATA ID4 / 1, 2,3,4, 14, 18/ DATA FD5 / 2.0, 2.0, 1.0, 1.0, 3.0, 2.0/
DO 10 I = 1, 10DUM(I) =0.0
10 CONTINUE
IF (RATIO .EQ. 1) THENCALL PAGEWRITE (UNO, 1000) TITLE, TEMP, TITMIXWRITE (UNO, 1010) CRWRITE (UNO, 1020) CR
IF (EXELT(5) .GT. CPUMIN) THENDO 20 I = 1, 8
8 16/ PRA 07500, 20/ PRA 0760
PRA 0770 PRA 0780 PRA 0790
====== = 1 PRA OROO
PRA 0810PRA 0820PRA 0830PRA 0840PRA 0850PRA 0860PRA 0870PRA 0880PRA 0890PRA 0900PRA 0910PRA 0920PRA 0930
IF (ANALM(ID1(I)) .GT. CPUMIN) DUM(I) - EXELT(5) / PRA 0940
20 CONTINUEEND IF
IF (ANALM(2) .GT. CPUMIN) THENDUM(9) = ANALM(l) / ANALM(2)
ANALM(ID1(I» PRA 0950PRA 0960PRA 0970PRA 0980PRA 0990PRA 1000
IF (ANALM(3) .GT. CPUMIN) DUM(IO) - DS^RT(ANALM(1) ) / ANALM(3)PRA 1010END IF
WRITE (UNO, 1030) (DUM(I) , 1=1, 10)WRITE (UNO, 1040)WRITE (UNO, 1050) CRIPGLN = IPGLN + 3
DO 25 I - 1, 10DUM(I) = O.ODOO
25 CONTINUE
DO 30 I - 1, 6IF (ANALM(ID2(I)) .GT. CPUMIN .AND.
ANALM(ID3(I)) .GT. CPUMIN)
PRA 1020PRA 1030PRA 1040PRA 1050PRA 1060PRA 1070PRA 1080PRA 1090PRA 1100PRA 1110PRA 1120PRA 1130PRA 1140PRA 1150
DUM(I) - ANALM(ID2(I)) / ANALM(ID3(I) ) PRA 116030 CONTINUE
IF (EXELT(5) .GT. CPUMIN) THEN
PRA 1170PRA 1180PRA 1190PRA 1200
IF (ANALM(6) .GT. CPUMIN) DUM(7) - ANALM(6) / EXELT(5) PRA 1210IF (ANALM(7) .GT. CPUMIN) DUM(8) - ANALM(7) / EXELT(5) PRA 1220IF (EXELT(22).GT. CPUMIN) DUM(9) - EXELT(22) / EXELT(5) PRA 1230IF (EXELT(23).GT. CPUMIN) DUM(IO) - EXELT(23) / EXELT(5) PRA 1240
END IF
WRITE (UNO, 1060) (DUM(I), I-l, 10)WRITE (UNO, 1070) CRWRITE (UNO, 1080)WRITE (UNO, 1090) CRIPGLN - IPGLN + 7
PRA 1250PRA 1260PRA 1270PRA 1280PRA 1290PRA 1300PRA 1310PRA 1320
390
DO 40 I - 1, 6DUM(I) - O.DOIF (ALFA(ID4(I)) .GT. CPUMIN) DUM(I) - DLOGIO ( ALFA (ID4(I) ))
+ (FD5(I) * PH)40 CONTINUE
DUM(7) - O.DODUM(8) - O.DO
IF (ALFA(l) .GT. CPUMIN .AND. ALFA(2) .GT. CPUMIN)DUM(7) - DLOGIO (ALFA(l) / ALFA(2))
IF (ALFA(3) .GT. CPUMIN .AND. ALFA(4) .GT. CPUMIN)DUM(8) - DLOGIO (ALFA( 3) / ALFA(4))
WRITE (UNO, 1100) (DUM(I), I - 1, 8)IPGLN - IPGLN + 1
END IF
IF (GEOTH .EQ. 1 .OR. RATIO .EQ. 1) THENRMG - O.ODORMGD - O.ODOCO - O.ODOAl - O.ODOA2 - O.ODOA3 - O.ODOA4 - O.ODO
IF (ANALM(2) .GT. CPUMIN) RMG - ANALM(2) * 2 * 100 /(ANALM(2) * 2 + ANALM(l) * 2 + ANALM(4))
IF (ANALM(l) .GT. CPUMIN) Al - DLOGIO (ANALM( 1) )IF (ANALM(3) .GT. CPUMIN) A3 - DLOGIO (ANALM( 3))IF (ANALM(4) .GT. CPUMIN) A4 - DLOGIO (ANALM(4))
Al - 0.5 * AlA2 - Al
IF (DABS(Al) .GT. CPUMIN .OR. DABS (A3) .GT. CPUMIN.OR. DABS(A4) .GT. CPUMIN) THEN
Al - A3 - A4 + (l.DO / 3. DO) * (Al - A3)A2 - A3 - A4 + (4. DO / 3. DO) * (A2 - A3)
IF (RATIO .EQ. 1) THENWRITE (UNO, 1110) Al, A2IPGLN - IPGLN + 5
END IFEND IF
END IF
A3 - O.ODOA4 - O.ODO
IF (GEOTH .EQ. 1) THENIF (UNITS .EQ. 'MOL/L' .OR. UNITS .EQ. 'MOL/K') THENWRITE (UNO, 1120)RETURN
END IF
PRA 1330PRA 1340PRA 1350PRA 1360PRA 1370PRA 1380PRA 1390PRA 1400PRA 1410PRA 1420PRA 1430PRA 1440PRA 1450PRA 1460PRA 1470PRA 1480PRA 1490PRA 1500PRA 1510PRA 1520PRA 1530PRA 1540PRA 1550PRA 1560PRA 1570PRA 1580PRA 1590PRA 1600PRA 1610PRA 1620PRA 1630PRA 1640PRA 1650PRA 1660PRA 1670PRA 1680PRA 1690PRA 1700PRA 1710PRA 1720PRA 1730PRA 1740PRA 1750PRA 1760PRA 1770PRA 1780PRA 1790PRA 1800PRA 1810PRA 1820PRA 1830PRA 1840PRA 1850PRA 1860PRA 1870PRA 1880PRA 1890
. IPP^ i onn
391
cc
cr\j
Calculation of the subsurface temperature "subt" of the samplefrom the chemical data.
IF (RATIO .NE. 1) CALL PAGE
DO 50 I - 1, 21SUBT(I) - O.DO
50 CONTINUE
IF (CUNITS(12) .LT. CPUMIN) GO TO 60
IF (UNITS .EQ. 'MG/L ') THENCO - DLOG10(CUNITS(12) / DENS)
ELSE IF (UNITS .EQ. 'PPM ') THENCO - DLOG10(CUNITS(12))
END IF
SUBT( 1) = 1.309D3 / (5.19DO - CO) - 273.16DOSUBT( 2) = 1.522D3 / (5.75DO - CO) - 273.16DOSUBT( 3) = 0.731D3 / (4.52DO - CO) - 273.16DOSUBT( 8) = 1.032D3 / (4.69DO - CO) - 273.16DOSUBT(IO) = 1.000D3 / (4.78DO - CO) - 273.16DO
PF - 1.00 - 7.862D-5 * 2.718**(3.61D-3 * TEMP) * PRESSCO - DLOG10(PF * ALFA(ll) / ALFA(10)**:>)
SUBT(16) - 1309. ODOO /( 0.41 - CO) - 273.16DOSUBT(17) - 1522. ODOO /( 0.97 - CO) - 273.16DOSUBT(18) - 1032. ODOO / (-0.09 - CO) - 273.16DOSUBT(19) - -1000. ODOO / CO - 273.16DO
CO - PF * ALFA(ll)SUBT(21) - 731. ODOO / (-0.26 - DLOGIO(CO)) - 273.16DO
60 CONTINUEIF (CUNITS(3) .GT. O.ODO .AND. CUNITS(^) .GT. O.ODO)
SUBT(4) - 1.217D3 / (1.483DO + DLOG10((CUNITS(3) /CUNITS(4)))) - 273.16DO
Calculation of paces geothermometer.
IF (PC02 .GT. l.OD-6) THENA4 - A2 - (-1.36 - 0.253 * DLOG10(ltC02) )SUBT(12) - 1.647D3 / (2.24DO -I- A4) - 273.16
END IF
IF (Al .GT. CPUMIN .AND. A2 .GT. CPUMIN) THENSUBT(5) = 1.647D3 / (2.240DO -I- Al) - 273.16SUBT(6) = 1.647D3 / (2.240DO -I- A2) - 273.16
END IF
IF (RMG .LT. 0.5) THENSUBT(14) - SUBT(5)GO TO 70
END IF
|PRAIPRA
- 1 PRAI A rvf\
PRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRA
- 1 PRA
IPRA- 1 PRA
PRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRA
19101920193019401950196019701980199020002010202020302040205020602070208020902100211021202130214021502160217021802190220022102220223022402250226022702280229023002310 23202330t~ ~j *j\j
234023502360237023802390240024102420243024402450246024702480
392
70
80
IF (RMG .GT. 50.0 .OR. SUBT(6) .LT. 70.0) GO TO 70
IF (SUBT(6) .LT. 100) THENRMGD = SUBT(6)
ELSERMGD = SUBT(5)
END IF
IF (RMG .LT. SUBT(14) =
ELSESUBT(14)
END IF
5.0) THENRMGD - (-1.03 + 59.971 * DLOGIO(RMG) + 145.05 * (DLOG10(RMG))**2 - 36711 * (DLOGIO(RMG))**2 / (RMGD + 273.16DO) - 1.67D7 * DLOGIO(RMG) / (RMGD + 273.16DO)**2)
RMGD - (10.66 - 4.74 * RMG + 325.87 * DLOG10(RMG)**2 - (1.032D5 * DLOG10(RMG)**2) / (RMGD + 273.16DO) - (1.968D7 * DLOG10(RMG)**2 / (RMGD + 273.16DO)**2) + ((1.605D7 * DLOG10(RMG)**3) / (RMGD + 273.16DO)**2))
CONTINUEIF (CUNITS(2) .GT. CPUMIN .AND. CUNITS(22) .GT. CPUMIN) THEN
IF (UNITS .EQ. 'MG/L ') A3 - DSQRT(CUNITS(2)) / CUNITS(22)IF (UNITS .EQ. 'PPM ')A3 = DSQRT(CUNITS(2) / DENS) / CUNITS(22)
SUBT(7) - 2.2D3 / (5.47 + DLOG10(A3)) - 273.16DO END IF
IF (CUNITS(3) .GT. CPUMIN .AND. CUNITS(22) .GT. CPUMIN)SUBT(9) = 1.59D3 / (DLOG10(CUNITS(3) / CUNITS(22)) + 0.779)
273.16DO
DO 80 I = 1, 21IF (SUBT(I) .LT. CPUMIN) SUBT(I)
CONTINUE999.0
SUBT(2), SUBT(17)SUBT(IO), SUBT(19)SUBT(4), SUBT(5)
WRITE (UNO, 1130) CR, CRWRITE (UNO, 1140) SUBT(l), SUBT(16)WRITE (UNO, 1150) SUBT(8), SUBT(18)WRITE (UNO, 1160) SUBT(3), SUBT(21)WRITE (UNO, 1170) SUBT(6), SUBT(12)WRITE (UNO, 1180) SUBT(14), SUBT(7), SUBT(9)
END IF
IF (GEOTH .EQ. 1) GEOTH - 2
RETURN
1000 FORMAT (' SAMPLE IDENT - ', A80, 4X, 'TEMPERATURE - ', F8.2, /, 20X, A40)
1010 FORMAT (//, ' MOLE RATIOS (USING ANALYTICAL MOLALITY)', /, Al, 39('_') f //, 8X, ' CL/CA', 8X, 'CL/MG', 8X, 'CL/NA', 8X, 'CL/K', 8X, 'CL/AL', 8X, 'CL/FE', 7X, 'CL/S04', 6X, 'CL/HC03', 5X, 'CA/MG', 7X, 'SQRT(CA)/NA')
1020 FORMAT (Al, 3(8X, '____'), 8X, '___', 2(8X, '____'), 7X, '____', 6X, '_____', 5X, '____',
PRA 2490 PRA 2500 PRA 2510 PRA 2520 PRA 2530 PRA 2540 PRA 2550 PRA 2560 PRA 2570 PRA 2580 PRA 2590 PRA 2600 PRA 2610 PRA 2620 PRA 2630 PRA 2640 PRA 2650 PRA 2660 PRA 2670 PRA 2680 PRA 2690 PRA 2700 PRA 2710 PRA 2720 PRA 2730 PRA 2740 PRA 2750 PRA 2760 PRA 2770 PRA 2780 PRA 2790 PRA 2800 PRA 2810 PRA 2820 PRA 2830 PRA 2840 PRA 2850 PRA 2860 PRA 2870 PRA 2880 PRA 2890 PRA 2900 PRA 2910 PRA 2920 PRA 2930 PRA 2940 PRA 2950 PRA 2960 PRA 2970 PRA 2980 PRA 2990 PRA 3000 PRA 3010 PRA 3020 PRA 3030 PRA 3040 PRA 3050 PRA 3060
393
7X, '_________') PRA 30701030 FORMAT (IX, 10E13.4) PRA 30801040 FORMAT (/, 8X, 'NH3/NA', 8X, 'LI/NA', 8X, 'K/NA', 8X, 'MG/CA', PRA 3090
8X, 'SR/CA', 8X, 'BA/CA', 8X, 'S04/CL', 8X, 'HC03/CL', PRA 31008X, 'F/CL', 8X, 'B/CL') PRA 3110
1050 FORMAT (Al, 8X, '____', 8X, '____', 8X, '___', 8X, '____', PRA 31208X, '____', 8X, '____', 8X, '____', 8X, '_____',PRA 31308X, '___', 8X, '___') PRA 3140
1060 FORMAT (2X, 6E13.4, 2E14.4, 2E12.4) PRA 31501070 FORMAT (///, ' LOG OF ACTIVITY RATIOS', /, Al, 22('_')) PRA 31601080 FORMAT (8X, 'CA/H2', 8X, 'MG/H2', 9X, 'NA/H', 10X, 'K/H', PRA 3170
8X, 'AL/H3', 8X, 'FE/H2', 8X, 'CA/MG', 9X, 'NA/K', Al) PRA 31801090 FORMAT (Al, 8X, '____', 8X, '____', 9X, '___', 10X, '__', PRA 3190
8X, '____', 8X, '____', 8X, '____', 9X, '___') PRA 32001100 FORMAT (8E13.4) PRA 32101110 FORMAT (/, ' LOG(NA/K)+1/3(LOG(SQRT(CA)/NA)) -', E10.3, /, PRA 3220
' LOG(NA/K)+4/3(LOG(SQRT(CA)/NA)) -', E10.3, //) PRA 32301120 FORMAT (//, ' NO TEMP. DATA IN MOL/L') PRA 32401130 FORMAT (//, ' CHEMICAL GEOTHERMOMETER TEMPERATURES (IN DEGREES', PRA 3250
' CENTIGRADE)', /, Al, 60('_'), /, 2X, PRA 3260'("999.0" INDICATES THAT A VALUE GREATER THAN 0.0 ', PRA 3270'WAS NOT CALCULATED)', //, 45X, PRA 3280'TEMP. WITH PRESSURE', /, ' TEMPERATURE', 29X, PRA 3290'AND/OR ACTIVITY CORRECTION', /, Al, 62('_'), /) PRA 3300
1140 FORMAT (IX, F10.1, ' : QUARTZ (CONDUCTIVE) : ', PRA 3310A. IF THE WATER IS BOILING OR STEAM', PRA 3320IS LOST DURING', /, PRA 3330: QUARTZ (ADIAB^TIC) : ', PRA 3340
THE SAMPLING OF GROUNDWATERS', PRA 3350' THEN USE THE QUARTZ', /, PRA 3360
T70, ' ADIABATIC TEMPERATURE.') PRA 3370' : CHALCEDONY WITH SI02 : ', PRA 3380
IX, F10.1, T70, ' B. IF THERE IS NO STEAM LOSS THEN', PRA 3390' USE THE QUARTZ', /, PRA 3400
T70, ' CONDUCTIVE TEMPERATURE.', /, PRA 3410' : ALFA CRISTOBALITE WITH SI02 : ', PRA 3420' C. The Amorphous Silica Temperature', PRA 3430' Should Be Considered', /, PRA 3440' When The Sample Is Saturated With', PRA 3450' Amorphous Silica^') PRA 3460' : Amorphous Silica With Si02 : ', PRA 3470
(THE DELTA G OF MINERAL NO. 275 IS', PRA 3480' POSITIVE).', /, PRA 3490' D. IF THE IN SITU TEMPERATURE EXCEEDS', PRA 3500' 150 DEGREES', /, PRA 3510
THEN THE NA/K TEMPERATURE MAY BE', PRA 3520' USED.', /, PRA 3530' : LOG (NA/K)', PRA 3540
T70, ' E. ALTHOUGH THE 4/3 LOG TEMPERATURE IS',PRA 3550' GENERALLY USED', /, PRA 3560' : LOG (NA/K) + 1/3 LOG(SQRT(CA)/NA)', PRA 3570
T70, ' WHEN THE TEMPERATURE IS LESS THAN', PRA 3580' 100 DEGREES IT IS') PRA 3590' : LOG (NA/K) + 4/3 LOG(SQRT(CA)/NA)', PRA 3600
T70, ' CONSIDERED LESS RELIABLE THAN THE', PRA 3610' 1/3 LOG TEMPERATURE.', /, PRA 3620
IX, F10.1, ' : LOG (NA/K) + 4^3 LOG(SQRT(CA)/NA)', PRA 3630T70, ' F. THE ACTIVITIES OF H4SI04 AND', PRA 3640
IX, F10.1, T70,
IX, F10.1,IX, F10.1, T70,
1150 FORMAT (IX, F10.1,
IX, F10.1,IX, F10.1, T70,
T70,
(IX, F10.1, IX, F10.1, T70,
T70,
T70,
1160 FORMAT
IX, F10.1,
IX, F10.1,
1170 FORMAT (IX, F10.1,
394
1180
Pv_< Ccp
cccccccccccccccccccccccccccc
24X
.
FORMAT (IX
.
m
IX.
,
IX
.
END
SUBROUTINE
.
1
, F10.
, F10.
, F10.
WATER WILL BE COMPUTED' , /,+ 1.36+0.253*LOG(PC02)',
T70, AT THE SURFACE TEMPERATURE ONLY IF',THE HITEMP' ,/,
T70, OPTION IS SELECTED.')1, : MG CORRECTED 1/3 (NA-K-CA)',
T70, G. THE ORDER OF RELIABILITY OF THE' ,CATION GEOTHERMOMETERS : ' , / ,
T70, MG-LI>MG- CORRECTED NA-K-CA>NA-LI>' ,OTHERS ' , / ,
1, : LOG (SQRT(MG)/LI)' ,T70, H. DETAILS OF THE EQUATIONS AND',
PARAMETERS CAN BE', /,1, : LOG (NA/LI)' ,
T70, FOUND IN KHARAKA AND MARINER, ' ,1988). ',/)
PRINTR (TITLE, EHM, UNITS, DENS, PRESS, GFW, TEMP, Z,GAMMA, PH20, PC02 , TDS , MU, MNACLD, SC02 ,HTOT, OHTOT, MXSP)
This routine prints the results of the iterations and thedistribution of
ALFAALK1ALK2ALK3ALK7ANALMClCAR1CAR4CFLGCPUMINCRCUCUNITSDENSDUM1DUM2DUM3DUM4EHMEXELTGAMMAGFWHTOTIIPGLNMMNACLD
DELDELDELDELDELDELDELDELDELDELDELCHADELDELDELDELDELDELDELDELDELDELDELDELINTINTDELDEL
species.
Activity of aqueous species iVarious forms of Alkalinity (different units)
HiiH
Analyzed molality of species i
PRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRAPRA
PRIPRIPRI
1 PRT1 t.S\L
IPRIIPRI1 PRT1 t.l\L
IPRIIPRIIPRIIPRIIPRIJPRIPRI
Various forms of total/partial Carbon in solution | PRIHH
Smallest positive real value program usesInserts carriage returns in outputConversion factor between unitsAnalytical input concentrationDensityDummy variable for printing/storageDummy variable for printing/storageDummy variable for printing/storageDummy variable for printing/storageMeasured Eh in voltsMoles of componentsActivity coefficientsGram formula weight of aqueous speciesSum of the hydronium in solutionLoop variableCurrent line number of the output fileCalculated molality of aqueous speciesSum of Molality * charge / 2
IPRIIPRIJPRIIPRIIPRIJPRIJPRIIPRIIPRIIPRIIPRIIPRIJPRIJPRIJPRIIPRIIPRIIPRIIPRIIPRI
365036603670368036903700371037203730374037503760377037803790380038103820
00100020003000400050006000700080009001000110012001300140015001600170018001900200021002200230024002500260027002800290030003100320033003400350
395
cccccccccccccccccccccccccc
-
MU DBL Ionic strength of aqueous solutionMXSP INT Total number of aqueous speciesNMAX INT General array dimension to allow easy expansionOHTOT DBL Sum of OH in the solutionPAGE1 CHA Names of aqueous speciesPCH4 DBL (Partial) pressure of CH4 . . calculatedPC02 DBL (Partial) pressure of C02 . . calculatedPH DBL Measured pH of the solutionPH2O DBL Pressure of H20 (saturation curve)PH2S DBL (Partial) pressure of H2S .. calculatedPNH3 DBL (Partial) pressure of NH3 . . calculatedPRESS DBL Total pressurePSS DBL Total Pressure for printingSC02 DBL TICSUM2 DBL Storage for printingSUM3 DBL Storage for printingT DBL Temperature in KTDS DBL Total Dissolved Solids (UNITS = KG/L)TEMP DBL Temperature of the solution when pH was measuredTITLE CHA Name of the sampleTITMIX CHA Title for mixing runsTITR DBL Iteration array in DISTRB, used for guessesTOTEL DBL Contains HTOT, OHTOT and Sum C02UNITS CHA Units of concentrationUNO INT File unit assigned for output fileZ INT Charge of aqueous species
INTEGER NMAX, UNODOUBLE PRECISION CPUMINPARAMETER (NMAX = 340, UNO - 6, CPUMIN = l.OD-35)
INTEGER I, IPAGE, IPGLN, MXSP, Z(NMAX)
DOUBLE PRECISION GAMMA(NMAX) , GFW(NMAX) , T
CHARACTER * 1 CR, TOFCHARACTER * 5 UNITSCHARACTER* 8 PAGE 1( NMAX ), PAGE2(NMAX) , PAGE3(NMAX)CHARACTER * 40 TITMIXCHARACTER * 80 TITLE
DOUBLE PRECISION ALFA ( NMAX ), ALK1, ALK2 , ALK3DOUBLE PRECISION ALK7 , ANALM(NMAX) , ClDOUBLE PRECISION CAR1 , CAR4, CFLGDOUBLE PRECISION CU, CUNITS(NMAX) , DENSDOUBLE PRECISION DUM1 , DUM2 , DUM3DOUBLE PRECISION EHM, EXELT(35) , HTOTDOUBLE PRECISION KHCH4, KHC02, KHH2S, KHNH3 , M(NMAX) , MNACLDDOUBLE PRECISION MU, OHTOT, PC02 , PCH4, PH, PH20, PH2S, PNH3DOUBLE PRECISION PRESS, PSS, SC02, SUM2 , SUM3DOUBLE PRECISION TDS, TEMP, TITR(ll) , TOTEL(5)
EXTERNAL KHC02 , KHCH4, KHH2S , KHNH3 , PAGE
INTRINSIC DMAX1, DLOG10
COMMON /EXTOT / EXELT, TOTEL, TITR
396
|PRI|PRI|PRIJPRI|PRI|PRIIPRIJPRIIPRIIPRIIPRIIPRIIPRIIPRIJPRIJPRIIPRI|PRI|PRI|PRIIPRI|PRI|PRIJPRIJPRIIPRII OD TrKl PRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRIPRI
0360037003800390040004100420043004400450046004700480049005000510052005300540055005600570058005900600061006200630064006500660067006800690070007100720073007400750076007700780079008000810082008300840085008600870088008900900091009200930
c
cL< Ccc
cc
ccc
COMMON /FMFD / TOF, CR, TITMIXCOMMON /FORM / IPAGE, IPGLNCOMMON /MOLS / PH, ANALM, M, ALFA, CUNITSCOMMON /NAMES1/ PAGE1 , PAGE2 , PAGES
ii i n in i
T = TEMP + 273.15
TOTEL(l) - HTOTTOTEL(2) = OHTOTTOTEL(3) - SC02
CALL PAGEWRITE (UNO, 1060) TITLE, TITMIXWRITE (UNO, 1070)WRITE (UNO, 1080) CRIPGLN = IPGLN + 4
Calculation of analytical cation- anion balance.Printing of pH, Eh, temperature, and balance
DUM1 - O.ODODUM2 = O.ODODO 50 I - 1, MXSP + 44
IF (Z(I) .GT. 0) THENDUM1 - DUM1 + (Z(I) * ANALM(I))
ELSEDUM2 - DUM2 - (Z(I) * ANALM(I))
END IF50 CONTINUE
DUM1 - DUM1 * (DENS - TDS) * 1.0D03DUM2 = DUM2 * (DENS - TDS) * 1.0D03
WRITE (UNO, 1090) PH, EHM, TEMP, DUM1 , DUM2 , (DUM1 - DUM2)IPGLN - IPGLN + 1
Calculation of partial pressures
PC02 - O.ODOPNH3 - O.ODOPCH4 = O.ODOPH2S - O.ODO
IF (M(97) .GE. CPUMIN) PC02 - M(97) * KHC02(T, MNACLD)IF (M(33) .GE. CPUMIN) PH2S - M(33) * KHH2S(T, MNACLD)IF (M(285) .GE. CPUMIN) PCH4 = M(285) * KHCH4(T, MNACLD, l.ODOO)IF (M(147) .GE. CPUMIN) PNH3 = M(147) * KHNH3(T)
PSS = DMAX1( l.ODOO, PH20, PRESS)
Recalculation of cation- anion balance.
PRI 0940PRI 0950PRI 0960PRI 0970PRI 0980
=|PRI 0990PRI 1000PRI 1010PRI 1020PRI 1030PRI 1040PRI 1050PRI 1060PRI 1070PRI 1080PRI 1090PRI 1100PRI 1110PRI 1120|PRI 1130IPRI 1140IPRI 1150IPRI 1160PRI 1170PRI 1180PRI 1190PRI 1200PRI 1210PRI 1220PRI 1230PRI 1240PRI 1250PRI 1260PRI 1270PRI 1280PRI 1290PRI 1300PRI 1310PRI 1320
IPRI 1330|PRI 1340
| PRI 1350 PRI 1360PRI 1370PRI 1380PRI 1390PRI 1400PRI 1410PRI 1420PRI 1430PRI 1440PRI 1450PRI 1460PRI 1470PRI 1480
| PRI 1490|PRI 1500
. i PRT i sin
397
DUM1 - O.ODO DUM2 - O.ODO
DO 10 I - 1, MXSP + 44 IF (M(I) .LT. CPUMIN) M(I) - 0.0 IF (Z(I) .LT. 0.0) THEN
DUM2 - DUM2 - (Z(I) * M(I)) ELSE
DUM1 ~ DUM1 + (Z(I) * M(I)) END IF
10 CONTINUE
C ----------------.----.-............................................C Print total inorganic carbon as mg/1, ppm, and molality
--------------------------------------------i-______________________
DUM1 - DUM1 * (DENS - TDS) * 1.0D03DUM2 - DUM2 * (DENS - TDS) * 1.0D03WRITE (UNO, 1100) DUM1, DUM2 , (DUM1 - DUM2) ,
HTOT, OHTOT, (HTOT - OHTOT)WRITE (UNO, 1000)WRITE (UNO, 1010)WRITE (UNO, 1190) CRWRITE (UNO, 1020) DENS, (TDS * 1.0D6), MU, ALFA(IO) , PSS,
PH20, PC02, PH2S, PCH4, PNH3IPGLN - IPGLN + 5
SUM2 - M(7) + M(52) + M(56) + M(121) + M(132) + M(139)+ M(156)
SUM3 = M(98) + M(51) + M(55) + M(114) -I- M(120) + M(138)+ M(140) + M(155) + M(207) -f- 2*M(208) + 3*M(209)
DUM2 = SUM2 * 6.102D4 * (DENS - TDS)DUM3 - SUM3 * 6.001D4 * (DENS - TDS)DUM1 - DUM2 / DENSALK7 = M(9) + M(28) + 3.0*M(29) + M(38) +
2.0*M(39) + 4.0*M(40) + M(48) + 3.0*M(50) +M(53) + M(57) + M(69) + M(75) +
2.0*M(76) + M(77) + M(85) + 2.0*M(86) +3.0*M(87) + 4.0*M(88) + M(89) + 2.0*M(90) +
M(91) + 2.0*M(92) + 2.0*M(93) + M(94) +2.0*M(99)
ALK7 - ALK7 +M(100) + M(101) + 2.0*M(102) + M(103) +M(118) + M(123) + M(135) + M(147) +M(154) + M(165) + 2.0*M(166) + M(170) +
2.0*M(171) + 3.0*M(172) + 4.0*M(173) + 5.0*M(174) +2.0*M(182) + 4.0*M(183) + 6.0*M(184) + 8.0*M(185) +
15.0*M(188) + M(189) + 2.0*M(190) + 2.0*M(191) +5.0*M(192) + 7.0*M(193)
ALK7 - ALK7 +M(201) + 2.0*M(202) + 2.0*M(203) + M(204) +
2.0*M(205) + 3.0*M(206) + 4.0*M(212) + 3.0*M(213) +2.0*M(214) + M(215) + 3.0*M(217) + M(220) +
M(221) + 3.0*M(222) + M(223) + M(234) +M(239) + 2.0*M(240) + M(243) + M(245) +M(246) + ,M(250) + M(258) + 2.0*M(259)
PRI 1520 PRI 1530 PRI 1540 PRI 1550 PRI 1560 PRI 1570 PRI 1580 PRI 1590 PRI 1600 PRI 1610 PRI 1620 PRI 1630 PRI 1640
--IPRI 1650 |PRI 1660
--|PRI 1670 PRI 1680PRI 1690PRI 1700PRI 1710PRI 1720PRI 1730PRI 1740PRI 1750PRI 1760PRI 1770PRI 1780PRI 1790PRI 1800PRI 1810PRI 1820PRI 1830PRI 1840PRI 1850PRI 1860PRI 1870PRI 1880PRI 1890PRI 1900PRI 1910PRI 1920PRI 1930PRI 1940PRI 1950PRI 1960PRI 1970PRI 1980PRI 1990PRI 2000PRI 2010PRI 2020PRI 2030PRI 2040PRI 2050PRI 2060PRI 2070PRI 2080PRI 2090
398
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Or-ic
Mco<
finvo»^o
ooN
Or-ic
Mco-tfin
vo»^o
ooN
Or-ic
Mco-d
-invor^o
ooN
Or-ic
Mco-d
-invo»^o
ooN
OCM
CM
CM
CM
CM
CM
CM
gg
gg
gg
g
+x-x
ON
00
CM
+
+
a
^~^ ^"^ ^"^m
ON CMC
O
CO
<
t
P-I P-I P-I
CO CO
CO+
fxd
fxd ^<J
a a aON m
a a a
vO
ON
-X -X
CM
CM
O O
x_x x_x
. .
a a
CM CM
+
+
+x-x x-x x-x<t oo o
+
+ co co <
t"4*
"4~ "f°
x-x
x-x
P-i
P-l
P-l
VO <
t CO
CO CO
VO
ON
^<J ^<J
^<JCM CM a a aa a
a a
a0
+
+
CM
x-x x-x
+
+
+
+ co <t
x-x
x-x
P
-I P
-Im
co co co
CM
CM
S S
x_x x_x x_x x_x
a a
a a
r- o
r- o o
\y
. K
y .
.p
CM
P
CO
CM
1 1
\y
Ky
. .
. .
CM
CM
CM
CM
»»»»
coaCO CO
CO*
Q Q
0
H H
CM
i i
+
CO
CO
§5?J w
Q Q
x_x x
_x
CM
* *
ap
o o
CO
o
o
o o
o
m+
r-l
X "X
CM
r-l
0 0
r-l 0
* *
sy Ky
sy3
n
n
i i i i i i
i ii
»-^ r-l
CM
3 33
CM
CM
CM
CM
*.,
COQH'COwQ XOOo
m^c00
ooor-<31coH
CM
CM
CM
CM
CM
CM
CM
CO
CO
CO
CO
CO
CO
CO
CO
CO
C
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
MC
M
Bl"1 =
x-x
CO
Q
HiCO
CO
WQ
Q
EH s
-'
i )<
CO O
§.
oQ
0x_x Or-l
)CC
MO
*-*
CO O
Nx_x
* i?co
Of^Q *
co r*^
ON
CM
s ̂r-i a
1 1
r-l >
^
< <
u o
(04J(0 a<u4J
r-loCO4J C
H
COPJ
QO.
CMJ.
CMQ
.r^3Uco coKX
ap
p
<! Q.
.CM
CM
<Q t
M
1 t
^
o! ffS
3 §o
u
^3 u
o o
o o
o
or-l
CM
C
O
-d1
in
VO
r-l r-l
r-l i 1
i 1 i 1
r-l r-l
r-l r-l
r-l r-l
O O
O
O
O
O
P P
P
P
P
P
H H
H
H H
H
Pj4
P
j4
pj
Pj4
p
j p
j
co<t<r<t<t<t-<j-<i-o
-C
MC
MC
MC
MC
MC
MC
MC
MC
M
»5
»5
»5
(ai»
;»5
06
5»
5c
e5
copQO.
CM^r-|
Q
.r^<co co
< Q.
.CM
r-l
^ ^
<: QM M
i t -3"
3 ^^3 O
CO CO
CO CO
CO CO
w w
w w
w w
o
x^
/-^ /-^
x^
x^
/-^ |^^r-|
r-l CM
CO
r-l
-Jt CO
<3 <3 <3
U U
Q
S
111111
wr-l
CM CO
r-l S
t CO
H
Ky Ky
Ky rv* iv*
*r* u-i
3333||
g
st st mCM
CM
CM
04 o5 04P-I
P-I P-I
.CM
CO
0 §U
P
CO CO
.
.x
-x C
Mo aCM
CO
r*~ ~
KZ x-s
<3 O
N2x^
.
O
X-N
coCM a"s^ pr^ coKy
^cH
-4 C
O
N-X
CM+
.
r^ CM
as<3 cox
-x
o00r-l
1-1o"x_x
p^
in m
in in
in in
inCM
CM
CM
CM
CM
CM
CM
o5 04 o5 04 »5 »5 »5C
H
PLI PLI
P-I
PL) P
-i P
-i
04CJ
OO
x
-x x
-x x
-x ^
O O
O+
C
O O
r-l
+O
C
M
CM
g ^
^j
P-i O
O
O
P-i
1 x ' v~
x v~
' 1
3W
W
W
SS
H H
H 3
PL, p4
p4 p
i p-i
m m
vo voCM
CM
CM
CM
04 04 04 04PLI
PLI P
-i P
-i
OCMOH0x-x
ap?1E-i ^x-x
r-lx_x
a §.<t
a<
t M
+
|X
-X p
L|
P-I M
U
CO v
^X
J CO
a H HM
iJ
V "3r-l
U
O
1-5 CM
fti
fti U
M
O
VO
VO
VO
CM
CM
CM
04 04 04P-i
P-i PH
x-x
x-x
Mx_x
sI_J
x_x
o
l-lo3Qi|
r-lux-x
53MP-I.
O O
x-x
Q Q
MC
5 ^5
v*-/
C5
^5
P^
1 1 <1
1
**l
oB
S
VO
VO
vO
CM
CM
CM
# ff5
#
P-l P
^ P-l
aW
ON
H
00x
-x<*I-)
W O
g?
x-x
«
53 c_yM
W
[3P-l CO
vO r iM
C3
x_x
3fcCl> ^M
CU = CFLG / DENS ELSE IF (UNITS .EQ. 'PPM ') THEN
CU - CFLGCFLG = CFLG * DENS
ELSECU - 1.0E3 * ANALM(I) * GFW(I) * (DENS-TDS) / DENSCFLG = CU * DENS
END IF END IF
DUM2 - 1.0E3 * M(I) * GFW(I) * (DENS-TDS) DUM1 = DUM2 / DENS
IF (IPGLN .GT. 59) THENCALL PAGEWRITE (UNO, 1030)WRITE (UNO, 1200)WRITE (UNO, 1210) CRIPGLN - IPGLN + 3
END IF
IF(I .EQ. 12 .OR. I .EQ. 32) THENWRITE (UNO, 1040) I, PAGEl(I), CU, CFLG, ANALM(I)
ELSE IF(ANALM(I) .GT. CPUMIN) THENWRITE (UNO, 1040) I, PAGEl(I), CU, CFLG, ANALM(I),
DUM1, DUM2, M(I), ALFA(I), GAMMA(I), Cl ELSEWRITE (UNO, 1050) I, PAGEl(I), DUM1, D^JM2, M(I), ALFA(I),
GAMMA(I), Cl END IF
IPGLN - IPGLN + 1 20 CONTINUE
RETURN
1000 FORMAT (/, 58X, 28('-'), 'PRESSURE', 28('-'), /,2X, 'DENSITY AT',2X,'TOTAL DISSOLVED', 5X, 'IONIC', 7X, 'ACTIVITY', 4X, 'P TOTAL', 7X, 'PH20', 7X, 'PC02', 7X, 'PH2S', 7X, 'PCH4', 7X, 'PNH3')
1010 FORMAT (4X, 'INPUT T', 4X, 'SOLIDS (MG/L)', 5X, 'STRENGTH',5X, 'OF WATER', 5X, '(BARS)', 6X, '(BARS)', 5X, '(BARS)', 5X, '(BARS)', 5X, '(BARS)', 5X, '(BARS)', Al)
1020 FORMAT (2X, F9.4, 5X, F12.2, F13.5, 2X, F11.4, 3X, F10.4,3X, E10.4, 4(1X, E10.4))
1030 FORMAT (19X, '-----------------ANALYZED-----------',3X, '---------------CALCULATED-----------',
17X, 'ACTIVITY', 5X, '-LOG10')1040 FORMAT (2X, 13, 2X, A8, IX, 2F13.4, 5E13.4, F12.4, F11.4) 1050 FORMAT (2X, 13, 2X, A8, 40X, 4E13.4, F12.4, F11.4) 1060 FORMAT (' SAMPLE IDENT:- ', A80, /, 20X, A40) 1070 FORMAT (/, 4X, 'PH', 9X, 'EH', 7X, 'TEMP', 18X, 'CATIONS',
6X, 'ANIONS', 2X, 'DIFFERENCE (MEQ/L)', 12X, '--- H - OH BALANCE (MOLES) -------')
1080 FORMAT (Al, 2X, '___', 6X, '____', 5X, '____', 13X,
'___________________________________')1090 FORMAT (IX, F6.2, 2X, F10.4, 2X, F8.2, 8X, 'ANAL-', IX,
F10.4, 2X, F10.4, 2X, F10.4, 20X, 'HTOT', 8X,
PRI 2680 PRI 2690 PRI 2700 PRI 2710 PRI 2720 PRI 2730 PRI 2740 PRI 2750 PRI 2760 PRI 2770 PRI 2780 PRI 2790 PRI 2800 PRI 2810 PRI 2820 PRI 2830 PRI 2840 PRI 2850 PRI 2860 PRI 2870 PRI 2880 PRI 2890 PRI 2900 PRI 2910 PRI 2920 PRI 2930 PRI 2940 PRI 2950 PRI 2960 PRI 2970 PRI 2980 PRI 2990 PRI 3000 PRI 3010 PRI 3020 PRI 3030 PRI 3040 PRI 3050 PRI 3060 PRI 3070 PRI 3080 PRI 3090 PRI 3100 PRI 3110 PRI 3120 PRI 3130 PRI 3140 PRI 3150 PRI 3160 PRI 3170 PRI 3180 PRI 3190 PRI 3200 PRI 3210 PRI 3220 PRI 3230 PRI 3240 PRI 3250
400
'OHTOT', 5X, 'DIFFERENCE')1100 FORMAT (37X, 'CALC=', IX, F10.4, 2X, F10.4, 2X, F10.4,
18X, E10.4, 2X, E10.4, 2X, E10.4) (/, 72X, 'Dissolved Inorganic Carbon') (Al, 71X, '_____________________')
1110 FORMAT 1120 FORMAT 1130 FORMAT
1140 FORMAT 1150 FORMAT
1160 FORMAT 1170 FORMAT 1180 FORMAT 1190 FORMAT
(21X, 'Total Alkalinity as', 20X, 'as', 8X, 'HC03-',7X, 'H2C03', 5X, ' Sum of , 5X, ' Sum of)
(Al, 20X, '_______________')(17X, 'HC03-', 5X, 'C03-', 7X, 'CaC03', 17X, 'TIC',
5X, 'Alkalinity', 3X, 'species', 5X, 'HC03-', 6X, 'C03-')
(7X, '(MG/L)-', 3(E10.4,1X), 10X, 5(E10.4, IX)) (8X, '(PPM)=', 3(E10.4,1X), 10X, 5(E10.4, IX)) (3X, '(MOLALITY)=', 3(E10.4,1X), 10X, 5(E10.4, IX)) (Al, 3X,'_____', 4X,'__________', 5X,'______
___', 3X,'_____5X,' ', 2X,'
1200 FORMAT (7X, 'SPECIES', 9X, 'PPM', 9X, 'MG/L', 7X, 'MOLALITY', 8X, 'PPM', 9X, 'MG/L', 7X, 'MOLALITY', 5X, 'ACTIVITY' 7X, 'COEFF.', 3X, 'ACTIVITY')
1210 FORMAT (Al, 6X, '_____', 5X, '________', 2X, ' 3X, '________ 3X, '________ 3X, '______']
END
3X, 3X,
3X, ', 4X,
PRI 3260 PRI 3270 PRI 3280 PRI 3290 PRI 3300 PRI 3310 PRI 3320 PRI 3330 PRI 3340 PRI 3350 PRI 3360 PRI 3370 PRI 3380 PRI 3390 PRI 3400 PRI 3410 PRI 3420 PRI 3430 PRI 3440 PRI 3450 PRI 3460 PRI 3470 PRI 3480 PRI 3490 PRI 3500 PRI 3510
SUBROUTINE PRNTAB (TITLE, TEMP, MXAQK)C ==CC - CCCCCCCCCCC -
Print out of tables.
I INT Loop variableLOGKT1 DEL Log K for aqueous species at specified temp.MXAQK INT Total number of aqueous log k valuesNMAX INT General array dimension to allow easy expansionPAGE1 CHA Names of aqueous speciesPAGE2 CHA Names of equilibrium constantsTEMP DEL Temperature of the solution when pH was measuredTITLE CHA Name of the sampleTOF CHA Places a form feed in output fileUNO INT File unit assigned for output file
INTEGER NMAX, UNOPARAMETER (NMAX - 340, UNO = 6)
INTEGER I, IPAGE, IPGLN, J, MXAQK
CHARACTER * 1 TOF, CRCHARACTER* 8 PAGEl(NMAX), PAGE2(NMAX), PAGE3(NMAX)CHARACTER * 40 TITMIXCHARACTER * 80 TITLE
DOUBLE PRECISION LOGKTl(NMAX), LOGKT2(NMAX)
PRN<|PRN
j PRN| PRNj PRNj PRNI PRN| PRNI PRN| PRNj PRNj PRNj PRNI PRN| PRNPRNPRNPRNPRNPRNPRNPRNPRNPRNPRNPRNPRN
001000200030004000500060007000800090010001100120013001400150016001700180019002000210022002300240025002600270
401
DOUBLE PRECISION TEMP
EXTERNAL PAGE
COMMON /ALOGK / LOGKT1, LOGKT2 COMMON /FMFD / TOF, CR, TITMIX COMMON /NAMESI/ PAGE1, PAGE2, PAGE3 COMMON /FORM / IPAGE, IPGLN
J - ((MXAQK - 1) / 3) + 1
DO 10 I - 1, JIF (I .EQ. 1 .OR. IPGLN .GT. 57) THENCALL PAGEWRITE (UNO, 110) TITLE, TEMPWRITE (UNO, 120)WRITE (UNO, 130)IPGLN - IPGLN + 9
END IF IPGLN - IPGLN + 1
IF ((I+J+J) .LE. MXAQK) THENWRITE (UNO, 140) I, PAGE2(I), LOGKTl(I),
I+J, PAGE2(I+J), LOGKT1(I+J), I+J+J, PAGE2(I+J+J), LOGKT1(I+J+J)
ELSE IF ((I+J) .LE. (MXAQK - (J - 1))) THENWRITE (UNO, 140) I, PAGE2(I), LOGKTl(I),
I+J, PAGE2(I+J), LOGKT1(I+J) ELSEWRITE (UNO, 140) I, PAGE2(I), LOGKTl(I)
END IF
10 CONTINUE
RETURN |
110 FORMAT (' SAMPLE IDENT:- ', A80, /, ' TEMPERATURE - ',F6.2,' C') 120 FORMAT (//,5X,'**TABLE OF LOG(KT) FOR THIS AQUEOUS COMPLEXES**',/) 130 FORMAT (/, 3(3X, 'I '/SPECIES', 11X, 'LOCK ',10X),/) 140 FORMAT (IX,3(13, 2X, A8, 3X, F12.4, 12X))
END
PRN 0280 PRN 0290 PRN 0300 PRN 0310 PRN 0320 PRN 0330 PRN 0340 PRN 0350 PRN 0360 |PRN 0370 PRN 0380 PRN 0390 PRN 0400 PRN 0410 PRN 0420 PRN 0430 PRN 0440 PRN 0450 PRN 0460 PRN 0470 PRN 0480 PRN 0490 PRN 0500 PRN 0510 PRN 0520 PRN 0530 PRN 0540 PRN 0550 PRN 0560 PRN 0570 PRN 0580 PRN 0590 PRN 0600 PRN 0610 PRN 0620 PRN 0630 PRN 0640 PRN 0650 PRN 0660 PRN 0670 PRN 0680 PRN 0690 PRN 0700 PRN 0710
C __
C C
C C C C
SUBROUTINE PSAT (TC, PS)
Calculates the saturation pressure for water (Keenan and others, 1969)
F DBL Fit Coefficients I INT Loop index PCRT DBL Critical pressure (bars!) PS DBL Saturation pressure
PSA 0010 j_ j/^ \J\J c.\J
IPSA 0030 IPSA 0040
----- IPSA ooso|PSA 0060IPSA 0070 IPSA ooso IPSA 0090
402
S DEL Temperary storage TC DEL Temperature in deg. C TCRT DEL Critical Temperature (deg C) TR DEL 1.0 / Termperature in deg K
INTEGER I
DOUBLE PRECISION F(8) , PCRT, PS, S, TC, TCRT, TR
INTRINSIC DEXP
PARAMETER (TCRT=374. 136DOO , PCRT=220 . 88DOO)
DATA F /-741.9242DO, -29.721DO, -11.55286DO, -8 . 685635D-1, 1.094098D-1, 4.3999D-1, 2.520658D-1, 5.218684D-2/
TR = 1.0D03 / (TC + 273.15DOO)
S = O.ODODO 10 I = 1, 8
S = S + F(I) * (0.65 - 0.01 * TC)**(I-1) 10 CONTINUE
PS = PCRT * DEXP(1.0D-5 * TR * (TCRT - TC) * S)
RETURNEND
IPSA 0100 IPSA 0110 IPSA 0120 JPSA 0130
---IPSA ouoPSA 0150PSA 0160 PSA 0170PSA 0180 PSA 0190PSA 0200 PSA 0210PSA 0220 PSA 0230PSA 0240 PSA 0250 PSA 0260
===|PSA 0270 PSA 0280PSA 0290 PSA 0300PSA 0310PSA 0320 PSA 0330 PSA 0340PSA 0350PSA 0360 PSA 0370PSA 0380PSA 0390
C == C C C
SUBROUTINE PTZINT (TEMP, TEMPI, BO, BOO, Bl, Bll, CP, CPP, THTC,THTCC, THTA, THTAA, PSIC, PSICC, PSIA, PSIAA)
This routine calculates the interpolated values of the pitzer coeffiencients for routine pitzer. It uses the routine tluv to calculate the actual value.
Future Modifications
If and when more cation and anion data are incorporated into the data tables the values of the parameters neat and nani will need to be increased.
History
J.D. DeBraal 06/87 Initial Coding
Local Constants
NANI INTNCAT INTNT EM INT
Number of Anions Number of Cations Number of Temperatures
PTZ 0010 PTZ 0020
I PTZ 0030 |PTZ 0040 |PTZ 0050 |PTZ 0060 |PTZ 0070 |PTZ 0080 IPTZ 0090 |PTZ 0100 |PTZ 0110 jPTZ 0120 |PTZ 0130 |PTZ 0140 |PTZ 0150 |PTZ 0160 |PTZ 0170 |PTZ 0180 |PTZ 0190 |PTZ 0200 |PTZ 0210 |PTZ 0220 IPTZ 0230
403
c Declare
INTEGER
Constants
NANIPARAMETER (NANI
cC
CCcccccccccccccccccccccccccccc
c
c
c
NCAT , NTEM- 5, NCAT - 10, NTEM - 11)
Local Variables
BOBOOBlBllCPCPPIJKLOKPSIAPSIAAPSICPSICCTBOTB1TCPTEMPTEMPITHTATHTAATHTCTHTCCTMPTPTPSIATPSICTTHTATTHTC
Declare
INTEGER
DOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLEDOUBLE
(i,k)(i.k.t)(i.k)(i.k.t)(I,k)(i,k,t)
(k,l,i)(k,l,i,t)(i,j,k)(i,j,k,t)(k,t)(k,t)(k,t)(t)
(i,k)(i,k,t)(I,k)(i,k,t)(t)
(I,t)(k,t)d,t)(j,t)
Variables
I, J, K,
PRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISIONPRECISION
DBL Beta zero parameter for current tempDBL Array of BO for all tempsDBL Beta one parameter for current tempDBL Array of Bl for all tempsDBL C super phi parairDBL Array of CP for <)INT Cation 1 loop varINT Cation 2 loop vaiINT Anion 1 loop vari
leter for current temp11 tempsiableiableable
INT Anion 2 loop variableINT Error flag used in LAGINTDBL PSI anion- anion- cat ion parameterDBL Array of PSIA for all tempsDBL PSI cation- cation- anion parameterDBL Array of PSIC for all tempsDBL Temporary BO array with cation constantDBL Temporary Bl array with cation constantDBL Temporary CP array with cation constantDBL Array of 11 temperaturesDBL Temperature of interestDBL Pitzer theta anicDBL Array of THTA forDBL i Pitzer theta catiDBL Array of THTC forDBL Interpolated valuINT Temperature loopDBL Temporary PSIA wiDBL Temporary PSIC wiDBL Temporary THTA wiDBL Temporary THTC wi
n parameterall tempson parameterall temps
e from LAGINTvariableth anions constantth cations constantth anion 1 constantth cation 1 constant
L, OK, TP
BO (NCAT , NANI ) , BOO (NCAT , NANI , NTEM)Bl (NCAT, NANI), Bl 1( NCAT, NANI , NTEM)CP (NCAT, NANI), CPP (NCAT, NANI , NTEM)PSIA(NANI , NANI , NCAT) , PSIAA(NANI , NANI , NCAT , NTEM)PSIC (NCAT, NCAT, NANI), PS ICC (NCAT, NCAT, NANI , NTEM)TBO (NANI, NTEM), TB1 (NANI , NTEM) , TCP (NANI , NTEM)TEMP (NTEM), TEMPITHTA(NANI , NANI ) , THTAA(NANI , NANI , NTEM)THTC (NCAT , NCAT) , THTCC (NCAT , NCAT , NTEM)TMP (NCAT)TPSIA(NCAT,NTEM) , TPS 1C (NANI , NTEM)TTHTA (NANI , NTEM) , TTHTC (NCAT , NTEM)
Routines
LAGINT SUB Calculate a Value for Desired Temp
|PTZPT7| JT X f*f
PTZPTZ
1 PT7
IPTZJPTZJPTZIPTZIPTZIPTZIPTZIPTZJPTZJPTZJPTZJPTZJPTZJPTZJPTZJPTZIPTZIPTZ|PTZIPTZJPTZJPTZIPTZJPTZIPTZIPTZIPTZJPTZIPTZIPTZIPTZIPTZPT71 i i £4
IPTZ1 PT71 JL J. 4L*
PTZPTZPTZPTZPTZPTZPTZPTZPTZPTZPTZPTZPTZPTZ
1 PT7\ J. Hi
IPTZ1 PT7| J- J. £*»
IPTZ
0240025002600270noonUZou0290030003100320033003400350036003700380039004000410042004300440045004600470048004900500051005200530054005500560057005800590060006100620r\f\"\r\06400650066006700680069007000710072007300740075007600770f\~JO(\
0790fiorin0810
404
L.
C
cC
c
EXTERNAL LAGINT
Initialize Variables
DATA TMP /NCAT*0.0/
DO 40 I - 1, NCATDO 20 K - 1, NANI
DO 10 TP - 1, NTEMTBO(K,TP) - BOO(I,K,TP)
10 CONTINUE20 CONTINUE
CALL LAGINT (TEMP, TBO , TEMPI, TMP, NANI, NANI, OK)
DO 30 K = 1, NANIBO(I,K) - TMP(K)
30 CONTINUE40 CONTINUE
DO 80 I - 1, NCATDO 60 K = 1, NANI
DO 50 TP = 1, NTEMTBl(K.TP) - B11(I,K,TP)
50 CONTINUE60 CONTINUE
CALL LAGINT (TEMP, TB1 , TEMPI, TMP, NANI, NANI, OK)
DO 70 K = 1, NANIBl(I.K) = TMP(K)
70 CONTINUE80 CONTINUE
DO 120 I = 1, NCATDO 100 K = 1, NANI
DO 90 TP = 1, NTEMTCP(K.TP) = CPP(I,K,TP)
90 CONTINUE100 CONTINUE
CALL LAGINT (TEMP, TCP, TEMPI, TMP, NANI, NANI, OK)
DO 110 K = 1, NANICP(I,K) = TMP(K)
110 CONTINUE120 CONTINUE
DO 160 I = 1, NCATDO 140 J = 1, NCAT
DO 130 TP = 1, NTEMTTHTC(J,TP) = THTCC(I,J,TP)
130 CONTINUE140 CONTINUE
CALL LAGINT (TEMP, TTHTC, TEMPI, TMP, NCAT, NCAT, OK)
--------- | JC J.<J \JO£.\J
PTZ 08301 DT"7 fiQ/ifi--------- | r 1£ UoM-U
|PTZ 0850 |PTZ 0860 PTZ 0870
1 T>T"7 fiQQfi
PTZ 0890PTZ 0900PTZ 0910PTZ 0920PTZ 0930PTZ 0940PTZ 0950PTZ 0960PTZ 0970PTZ 0980PTZ 0990PTZ 1000PTZ 1010PTZ 1020PTZ 1030PTZ 1040PTZ 1050PTZ 1060PTZ 1070PTZ 1080PTZ 1090PTZ 1100PTZ 1110PTZ 1120PTZ 1130PTZ 1140PTZ 1150PTZ 1160PTZ 1170PTZ 1180PTZ 1190PTZ 1200PTZ 1210PTZ 1220PTZ 1230PTZ 1240PTZ 1250PTZ 1260PTZ 1270PTZ 1280PTZ 1290PTZ 1300PTZ 1310PTZ 1320PTZ 1330PTZ 1340PTZ 1350PTZ 1360PTZ 1370PTZ 1380PTZ 1390
405
DO 150 J - 1, NCATTHTC(I.J) - TMP(J)
150 CONTINUE 160 CONTINUE
DO 200 K - 1, NANI DO 180 L - 1, NANI
DO 170 TP - 1, NTEMTTHTA(L.TP) - THTAA(K,L,TP)
CONTINUE CONTINUE
170180
190
CALL LAGINT (TEMP, TTHTA, TEMPI, TMP,
DO 190 L - 1, NANITHTA(K.L) - TMP(L)
CONTINUE
NCAT, NCAT, OK)
200 CONTINUE
DO 250 I - 1, NCAT DO 240 J - 1, NCAT
DO 220 K - 1, NANI DO 210 TP - 1, NTEM
TPSIC(K,TP) - PSICC(I,J,K,TP) CONTINUE
CONTINUE210220
CALL LAGINT (TEMP, TPSIC, TEMPI, TMP, NANI, NANI, OK)
DO 230 K - 1, NANIPSIC(I,J,K) - TMP(K)
CONTINUE CONTINUE
230 240 250 CONTINUE
260270
280290
DO 300 K - 1, NANI DO 290 L - 1, NANI
DO 270 I - 1, NCAT DO 260 TP - 1, NTEM
TPSIA(I.TP) - PSIAA(K,L,I,TP) CONTINUE
CONTINUE
CALL LAGINT (TEMP, TPSIA, TEMPI, TMP, NCAT, NCAT, OK)
DO 280 I - 1, NCATPSIA(K,L,I) - TMP(K)
CONTINUE CONTINUE
300 CONTINUE
RETURN END
PTZ 1400 PTZ 1410 PTZ 1420 PTZ 1430 PTZ 1440 PTZ 1450 PTZ 1460 PTZ 1470 PTZ 1480 PTZ 1490 PTZ 1500 PTZ 1510 PTZ 1520 PTZ 1530 PTZ 1540 PTZ 1550 PTZ 1560 PTZ 1570 PTZ 1580 PTZ 1590 PTZ 1600 PTZ 1610 PTZ 1620 PTZ 1630 PTZ 1640 PTZ 1650 PTZ 1660 PTZ 1670 PTZ 1680 PTZ 1690 PTZ 1700 PTZ 1710 PTZ 1720 PTZ 1730 PTZ 1740 PTZ 1750 PTZ 1760 PTZ 1770 PTZ 1780 PTZ 1790 PTZ 1800 PTZ 1810 PTZ 1820 PTZ 1830 PTZ 1840 PTZ 1850 PTZ 1860 PTZ 1870 PTZ 1880 PTZ 1890 PTZ 1900 PTZ 1910 PTZ 1920 PTZ 1930
406
DOUBLE PRECISION FUNCTION SEXP10 (X)
If a number is too small to be raised to the power of ten, return zero, else raise it.
DOUBLE PRECISION X, CPUMIN, CPUMAXPARAMETER (CPUMIN - l.OD-35, CPUMAX - l.OD+35)INTRINSIC DLOG10
IF (X .GT. DLOG10(CPUMIN) .AND. X .LT. DLOG10(CPUMAX)) THENSEXP10 - 10.0DOO**X
ELSESEXP10 = O.ODOO
END IF
RETURN END
SEX 0010|SEX 0020jSEX 0030jSEX 0040JSEX 0050SEX 0060SEX 0070SEX 0080SEX 0090SEX 0100|SEX 0110SEX 0120SEX 0130SEX 0140SEX 0150SEX 0160SEX 0170SEX 0180SEX 0190SEX 0200
DOUBLE PRECISION FUNCTION SLOGIO(X)
If a number is too small to have it's log taken, return -999
DOUBLE PRECISION X, CPUMIN PARAMETER (CPUMIN = l.OD-35) INTRINSIC DLOG10
IF (X .GT. CPUMIN) THEN SLOG10 = DLOGIO(X)
ELSESLOG10 = -999.9DOO
END IF
RETURN END
SLO 0010|SLO 0020|SLO 0030|SLO 0040SLO 0050SLO 0060SLO 0070SLO 0080SLO 0090|SLO 0100SLO 0110SLO 0120SLO 0130SLO 0140SLO 0150SLO 0160SLO 0170SLO 0180SLO 0190
SUBROUTINE SORTA (A, B, INUM, IPOINT)
A utility routine to sort arrays before using GUESS
A DEL Array to be sorted based on matching value in BB DEL Sort this array (smallest to largest)I INT Index counterINUM INT Number of points to sortIPOINT INT Pointer to specific entry ... return
SOR 0010SOR 0020|SOR 0030|SOR 0040SOR 0050SOR 0060SOR 0070SOR 0080SOR 0090
407
ccc
.-,
new positionJ INT Index counterX DBL Temporary storage
INTEGER INUM, IPOINT, I, JDOUBLE PRECISION A(*) , B(*) , X
IF (INUM .LE. 1) RETURN
DO 200 I - 1, (INUM-1)DO 100 J - (1+1), INUM
IF (B(I) .GT. B(J)) THENX - A(J)A(J) = A(I)A(I) - XX - B(J)B(J) - B(I)B(I) = XIF (IPOINT .EQ. I) THEN
IPOINT - JELSE IF (IPOINT .EQ. J) THEN
IPOINT = IEND IF
END IF100 CONTINUE200 CONTINUE
RETURNEND
|SOR 0100JSOR 0110ISOR 0120
........................ | SOR 0130SOR 0140SOR 0150SOR 0160SOR 0170
i COD ni pn=g=======t=:==t^ mjma=.s==ca.a====s | Jj (Jft_ U 1 O U
SOR 0190SOR 0200SOR 0210SOR 0220SOR 0230SOR 0240SOR 0250SOR 0260SOR 0270SOR 0280SOR 0290SOR 0300SOR 0310SOR 0320SOR 0330SOR 0340SOR 0350SOR 0360SOR 0370SOR 0380SOR 0390SOR 0400SOR 0410
SUBROUTINE STORE (TEMP, HITEMP) STO 0010
C-
ccccccccccccccccc
Writes out current data values to create a restart file
AD EXALFAALKAMOLANALMANSIANS2CECCOEFCONV1CONV2CPUMINCUNITSDCH4DDCH4DC02DDC02
INTDBLINTDBLDBLINTINTDBLDBLDBLDBLDBLDBLDBLDBLDBLDBL
Flag for surface chemistry optionActivity of aqueous species iFlag for distribution of carbonate speciesMolality of aqueous/mineral species addedAnalyzed molality of species iNumber of complexes for added anion #1Number of complexes for added anion #2Cation exchange capacityStoichiometric coefficient and Id numberTolerance factor for convergence of anionsTolerance factor for hydronium mass -balanceSmallest positive real value program usesAnalytical input concentrationConcentration of CH4 lost up annulasConcentration of CH4 lost before pH measurementConcentration of C02 lost up annulasConcentration of C02 lost before pH measurement
= | D JLU UU/1U
|STO 0030|STO 0040ISTO 0050ISTO 0060JSTO 0070JSTO 0080|STO 0090|STO 0100ISTO 0110ISTO 0120ISTO 0130ISTO 0140JSTO 0150ISTO 0160ISTO 01701 STO 0180ISTO 0190ISTO 0200|STO 0210
408
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DH2SDDH2SDNH3DDNH3DENSDFRAC1DHADINGDPDSEPEHMEHMCEMFZSCEXELTFBOILFCCSATFIXITFLAGSGEOTHGFWHITEMPIIBMIXICC SATIDDPIDMIXIDNIDSATIMC03IMIXINFORMINMIXINSPIOPTI PAGEIPGLNI PHASEIPITIPRIN1IPRIN2IRXDPISCHGISCOMPITICITMIXITTJKCH40LKC020LKH2SOLKRXNMBASEMINCOMININDMINLOGMXMNKMXSPNDUM
DELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELDELINTINTDELDELINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTINTDELDELDELDELDELDELINTDELINTINTINT
Concentration of H2S lost up annulas |STO 0220Concentration of H2S lost before pH measurement jSTO 0230Concentration of NH3 lost up annulas |STO 0240Concentration of NH3 lost before pH measurement jSTO 0250Density ISTO 0260Smallest fraction of soln 1 mixed with soln 2 jSTO 0270Ion size parameter |STO 0280Increment of solution 1 to be added jSTO 0290Dissolution/precipitation switch jSTO 0300Density of oil at 15 degree C jSTO 0310Measured Eh in volts jSTO 0320Measured Eh using the Calomel electrode JSTO 0330Measured Eh using the Zobell's solution j| STO 0340Moles of components jSTO 0350Fraction of solution boiled-off as steam jSTO 0360Tolerance factor for pH and C02 options jSTO 0370Fixing value in the C02 option jSTO 0380Selection flags for calculation of redox equil. |STO 0390Flag to select geothermometer |STO 0400Gram formula weight of aqueous species j STO 0410In-situ temperature jSTO 0420Loop counting variable |STO 0430Switch for mixing option jSTO 0440Switch for pH option jSTO 0450Id number of the mineral to be dissolved/ppt j STO 0460Id number of the aqueous species to be added |STO 0470Id numbers of the ISCOMP components adsorption j STO 0480Id number of the mineral to be equilibrated jSTO 0490Selects C02 option jSTO 0500Switch used in MIXER routines jSTO 0510Flag to print all the log K values in data base jSTO 0520Total number of mixtures of two solution mixed jSTO 0530Total number of surface sites for adsorption j| STO 0540Switch for co2/h option jSTO 0550Current page number of output file jSTO 0560Current line number of the output file jSTO 0570Switch for oil/water/gas calculations jSTO 0580Flag to use pitzer activity coefficients jSTO 0590Flag for printing iteration of anions JSTO 0600Flag for printing hydronium balance j STO 0610Id number of the aqueous species to be added |STO 0620Charge of each surface site for adsorption JSTO 0630Total number of components in dissociation JSTO 0640Hitemp distribution of carbonate species |STO 0650Switch for the mineral saturation option j STO 0660Number of aqueous species to add/sub with water JSTO 0670Loop counting variable j STO 0680Henry's law coefficient for CH4 in oil JSTO 0690Henry's law coefficient for C02 in oil |STO 0700Henry's law coefficient for H2S in oil JSTO 0710K for dissociation reaction of surface species JSTO 0720Equivalence Mole Fraction (initial) on surface JSTO 0730Stoichiometric coefficient for added minerals JSTO 0740Index number of the added mineral JSTO 0750Log K values for added minerals JSTO 0760Total number of mineral log k values JSTO 0770Total number of aqueous species JSTO 0780Id of mineral/aqueous complex with K(T) changed j STO 0790
409
cccccccccccccccccccccccccccccc
-
NMAX INT General array dimension to allow easy expansionNUFLAG INT Sets the activity coefficients of neutral speciesNUMCOM INT Number of complex the ion is associated withNUMINS INT Number of minerals addedODUM CHA Switch to indicate a mineral/aqueous complexOUTIN CHA Name of restart file namePAGE1 CHA Names of aqueous speciesPAGES CHA Names of solubility constantsPH DBL Measured pH of the solutionPRESS DBL Total pressurePTR INT Points to index number of the analytical speciesRATIO INT Flag for printing activity ratios of elementsRXDP DBL Molal amount of the aqueous species addedSAREA DBL Total surface area per kilogram of solventSPN CHA Name of each surface species adsorptionTAREA DBL Site density per unit area adsorptionTCH4M DBL Moles CH4 distributed bejtween oil, water, vaporTC02M DBL Moles C02 distributed between oil, water, vaporTEMP DBL Temperature of the solution when pH was measuredTH2SM DBL Moles H2S distributed between oil, water, vaporTIC DBL Concentration of total inorganic carbonTITLE CHA Name of the sampleTITR DBL Iteration array in DISTRB, used for guessesTOTEL DBL Contains HTOT, OHTOT and Sum C02UN INT File unit assigned for Output fileUNITS CHA Units of concentrationWROIL DBL Oil to water weight ratioXD DBL Holds Log K's for additional anions & cationsXDUM DBL New log K(T) valueZ INT Charge of aqueous specieis
INTEGER NMAXDOUBLE PRECISION CPUMINPARAMETER (CPUMIN = l.OD-35, NMAX = 340)
INTEGER ALK, ANSI, ANS2, FLAGS(6), GEOTH, GETUNT, IINTEGER IBMIX, ICCSAT, IDDP, IDMIX(50)INTEGER IDN(IO.IO), IDSAT, IMC03 , IMIXINTEGER INFORM, INMIX, INSP, IOPT, IPHASE, IPITINTEGER IPRIN1, IPRIN2, IRXDP(IO), ISCHG(IO)INTEGER ISCOMP(IO), ITIC, ITMIX, ITT, JINTEGER MININD(8, 5), MXSP, MXMNK, NDUM(12), NUFLAGINTEGER NUMCOM, NUMINS, PTR(33), RATIO, .UN, Z(NMAX)
CHARACTER * 1 ADEX, ODUM (12)CHARACTER * 5 UNITSCHARACTER * 8 PAGEl(NMAX), PAGE2(NMAX), PAGE3(NMAX)CHARACTER * 10 SPN (10)CHARACTER * 80 MIXFLE, OUTIN, TITLE
DOUBLE PRECISION ALFA ( NMAX ), AMOL(50) , ANALM(NMAX) , CECDOUBLE PRECISION COEF(10,10), CONV1, CONV2DOUBLE PRECISION CUNITS(NMAX) , DCH4, DC02 , DH2S, DNH3DOUBLE PRECISION DDCH4, DDC02 , DDH2S, DDNH3DOUBLE PRECISION DENS, DFRAC1 , DHA(NMAX) , DINGDOUBLE PRECISION DP, DSEP, EHM, EHMC, EXELT(35)DOUBLE PRECISION EMFZSC, FBOIL, FCCSAT, flXITDOUBLE PRECISION GFW(NMAX) , HITEMP
|STO 0800ISTO 0810|STO 0820JSTO 0830JSTO 0840JSTO 0850JSTO 0860JSTO 0870JSTO 0880JSTO 0890JSTO 0900ISTO 0910JSTO 0920JSTO 0930JSTO 0940JSTO 0950JSTO 0960|STO 0970JSTO 0980ISTO 0990JSTO 1000ISTO 1010ISTO 1020JSTO 1030JSTO 1040JSTO 1050JSTO 1060ISTO 1070ISTO losoJSTO 1090i <;TO 1 1 no1 O J. \J J-JLww
STO 1110STO 1120STO 1130STO 1140STO 1150STO 1160STO 1170STO 1180STO 1190STO 1200STO 1210STO 1220STO 1230STO 1240STO 1250STO 1260STO 1270STO 1280STO 1290STO 1300STO 1310STO 1320STO 1330STO 1340STO 1350STO 1360STO 1370
410
DOUBLE PRECISION KCH40L, KC020L, KH2SOLDOUBLE PRECISION KRXN(IO), M(NMAX), MBASE(IO), MINCO(9,5)DOUBLE PRECISION MINLOG(2,5), PH, PRESSDOUBLE PRECISION RXDP(IO), SAREA, TAREA, TCH4MDOUBLE PRECISION TC02M, TEMP, TH2SM, TITR(ll), TOTEL(5), TICDOUBLE PRECISION WROIL, XD(2,45), XDUM(12)
INTRINSIC DABS
EXTERNAL GETUNT
COMMON /AL / NDUM, XDUMCOMMON /AMM / IDMIX, AMOL, ITMIX, INMIX, DFRAC1, DING, FBOILCOMMON /BASIC / DENS, PRESS, EHM, EHMC, EMFZSC, TIC, FCCSAT, XD,
NUMCOM, NUMINS, MINLOG, MINCO, MININD, CONV1,CONV2
COMMON /CH / ODUM COMMON /DIST / TC02M, TCH4M, TH2SM, WROIL, KCH40L, KC020L,
KH2SOL, IPHASE, DSEPCOEF, MBASE, KRXN, CEC, TAREA, SAREA, IDN,ISCHG, ISCOMP, INSP
COMMON /EXTOT / EXELT, TOTEL, TITR COMMON /FLAGCM/ ALK, ITIC, ICCSAT, IMC03, ITT, ANSI, ANS2,
NUFLAG, IPIT, FLAGS, INFORM, RATIO, GEOTH,IPRIN1, IPRIN2DC02, DDC02, DH2S, DDH2S, DNH3, DDNH3,DCH4, DDCH4, IOPT, FIXIT
COMMON /IMM / IBMIX, IMIX COMMON /MOLS / PH, ANALM, M, ALFA, CUNITS COMMON /NAMES1/ PAGE1, PAGE2, PAGE3 COMMON /NAMES2/ SPNCOMMON /NAMES3/ MIXFLE, OUTIN, TITLE, UNITS, ADEX COMMON /SAT / IDDP, IDSAT, DP, RXDP, IRXDP COMMON /TABCOM/ MXSP, MXMNK, GFW, Z, DHA
COMMON /EXCHAN/
COMMON /GAS /
DATA PTR /3, 4, 22, 1, 2, 18, 14, 12, 5, 6, 33, 7, 98, 30, 29, & 136, 32, 31, 26, 15, 25, 27, 16, 23, 21, 13, 28, 169, & 210, 48, 246, 265, 285/
C ======
IF (OUTIN .EQ. ' ') THENRETURN
ELSEUN = GETUNT (OUTIN)
END IF
UNITS = 'MOL/K'
TIC = TOTEL(3)IF (TIC .GT. CPUMIN) THEN ANALM(7) = O.ODOO ANALM(98) = O.ODOO
ELSETIC = O.ODOO
END IF
STO 1380 STO 1390 STO 1400 STO 1410 STO 1420 STO 1430 STO 1440 STO 1450 STO 1460 STO 1470 STO 1480 STO 1490 STO 1500 STO 1510 STO 1520 STO 1530 STO 1540 STO 1550 STO 1560 STO 1570 STO 1580 STO 1590 STO 1600 STO 1610 STO 1620 STO 1630 STO 1640 STO 1650 STO 1660 STO 1670 STO 1680 STO 1690 STO 1700 STO 1710 STO 1720 STO 1730 STO 1740 STO 1750 STO 1760 STO 1770 |STO 1780 STO 1790 STO 1800 STO 1810 STO 1820 STO 1830 STO 1840 STO 1850 STO 1860 STO 1870 STO 1880 STO 1890 STO 1900 STO 1910 STO 1920 STO 1930 STO 1940 STO 1950
411
WRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITEWRITE
6e
(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,(UN,
9010)9030)9030)9080)9080)9080)9080)9080)9080)9100)9080)9100)9080)
TITLETEMP, HITEMP, DENS, PRESSPH, EHM, EHMC, EMFZSC, UNITS(ANALM(PTR(I)), I (ANALM(PTR(I)), I (ANALM(PTR(I)), I (ANALM(PTR(I)), I (ANALM(PTR(I)), I (ANALM(PTR(I)), I ALK, ITICDC02, DH2S, DNH3, DCH4 ICCSAT, IMC03, FIXIT, FCCSAT TC02M, TCH4M, TH2SM, WROIL,
1, 7)8, 13), TIC
14, 20)21, 26)27, 29)30, 33)
KC020L, KCH40L, KH2SOL, DSEP
WRITE (UN, 9160) ADEXIF (ADEX .EQ. 'A' .OR. ADEX .EQ. 'E') THEN WRITE (UN, 9150) CEC, TAREA, SAREA, INSP DO 30 I = 1, INSPWRITE (UN, 9200) ISCHG(I), MBASE(I), SPN(I) WRITE (UN, 9210) KRXN(I), ISCOMP(I), (COEF(I,J),
& IDN(I,J), J - 1, ISCOMP(I)) 30 CONTINUE
END IF
I - 0WRITE (UN, 9100) I, I
WRITE (UN, 9180) (ODUM(I), NDUM(I), XDUM(I), 1=1, 6) WRITE (UN, 9180) (ODUM(I), NDUM(I), XDUM(I), 1-7, 12)
WRITE (UN, 9290) ANSI, ANS2 IF (ANSI .GT. 0) THENWRITE (UN, 9350) ANALM(MXSP+1), GFW(MXSP+1), Z(MXSP+1),
& DHA(MXSP+1), PAGE1(MXSP+1) DO 60 I = 2, 15
IF (DABS(XD(1,I)) .GT. CPUMIN .OR. & DABS(XD(2,I)) .GT. CPUMIN) THEN
WRITE (UN, 9360) I, DHA(MXSP+I), XD(1,I), XD(2,I), & PAGE1(MXSP+I)
END IF60 CONTINUE
END IF IF (ANS2 .GT. 0) THENWRITE (UN, 9350) ANALM(MXSP+16), GFW(MXSP+16), Z(MXSP+16),
& DHA(MXSP+16), PAGE1(MXSP+16) DO 70 I - 2, 15
IF (DABS(XD(1,1+15)) .GT. CPUMIN .OR. & DABS(XD(2,1+15)) .GT. CPUMIN) THEN
WRITE (UN, 9360) 1+15, DHA(MXSP+I+15), XD(1,I+15), fie XD(2,I+15), PAGE1(MXSP+15+I)
END IF70 CONTINUE
END IF
IF (NUMCOM .GT. 0) THENWRITE (UN, 9500) NUMCOM, Z(MXSP+31), DHA(MXSP+31),
& GFW(MXSP+31), ANALM(MXSP+31), PAGE1(MXSP+31)
STO 1960 STO 1970 STO 1980 STO 1990 STO 2000 STO 2010 STO 2020 STO 2030 STO 2040 STO 2050 STO 2060 STO 2070 STO 2080 STO 2090 STO 2100 STO 2110 STO 2120 STO 2130 STO 2140 STO 2150 STO 2160 STO 2170 STO 2180 STO 2190 STO 2200 STO 2210 STO 2220 STO 2230 STO 2240 STO 2250 STO 2260 STO 2270 STO 2280 STO 2290 STO 2300 STO 2310 STO 2320 STO 2330 STO 2340 STO 2350 STO 2360 STO 2370 STO 2380 STO 2390 STO 2400 STO 2410 STO 2420 STO 2430 STO 2440 STO 2450 STO 2460 STO 2470 STO 2480 STO 2490 STO 2500 STO 2510 STO 2520 STO 2530
412
DO 80 I = 2, 14IF (DABS (XD(1, 1+30)) .GT. CPUMIN .OR.
& DABS (XD( 2, 1+30)) .GT. CPUMIN) THENWRITE (UN, 9360) 1+30, DHA(MXSP+I+30) , XD(1,I+30),
& XD(2,I+30), PAGE1(MXSP+30+I)END IF
80 CONTINUEELSEWRITE (UN, 9500) NUMCOM
END IF
WRITE (UN, 9360) NUMINSDO 90 I - 1, NUMINS
IF (DABS(MINLOG(1,I)) .GT. CPUMIN .OR. DABS(MINLOG(2 , I) ).GT. CPUMIN) THENWRITE (UN, 9560) MINLOG(1,I), MINLOG(2,I),
MINCO(9,I), PAGE3(MXMNK+I)WRITE (UN, 9210) (MINCO(J,I), MININD(J,I), J = 1, 8)
END IF90 CONTINUE
WRITE (UN, 9290) NUFLAG, IPIT, (FLAGS(I), 1=1, 6)IF (GEOTH .GT. 0) GEOTH - 1WRITE (UN, 9300) INFORM, RATIO, GEOTH, IPRINl, IPRIN2WRITE (UN, 9080) CONV1, CONV2
RETURN
r ____________________________--------------------------------- C Format Statementsr __________-----------
9010 FORMAT (A80)9030 FORMAT (4E10.4, A5)9080 FORMAT (8E10.4)9100 FORMAT (212, 2E10.4)9150 FORMAT (3E10.4, 13)9160 FORMAT (Al)9180 FORMAT (6(Al, 14, E10.4))9200 FORMAT (14, E10.4, AlO)9210 FORMAT (11(E10.4, 13))9270 FORMAT (214, E10.4)9280 FORMAT (14, 2E10.4)9290 FORMAT (812)9300 FORMAT (512, A80)9350 FORMAT (2E10.4, 12, ElO.4, A8)9360 FORMAT (12, 3E10.4, A8)9500 FORMAT (212, 3E10.4, A8)9560 FORMAT (5E10.4, A8)
END
STO 2540STO 2550STO 2560STO 2570STO 2580STO 2590STO 2600STO 2610STO 2620STO 2630STO 2640STO 2650STO 2660STO 2670STO 2680STO 2690STO 2700STO 2710STO 2720STO 2730STO 2740STO 2750STO 2760STO 2770STO 2780STO 2790STO 2800STO 2810
----|STO 2820|STO 2830|STO 2840STO 2850STO 2860STO 2870STO 2880STO 2890STO 2900STO 2910STO 2920STO 2930STO 2940STO 2950STO 2960STO 2970STO 2980STO 2990STO 3000STO 3010STO 3020STO 3030STO 3040
C ==SUBROUTINE TABLES (MXAQK, BOAT, TK, TC02, MXPC)
413
TAB 0010 |TAB 0020
cp\J
c c c c c c cccccccccccccccccccccccc
-
This routine reads in all required tables.
AHI DBL Pressure correction fit parameter ALOW DBL Pressure correction fit parameter BOAT DBL B-dot as a function of temperature BHI DBL Pressure correction fit parameter BLOW DBL Pressure correction fit parameter CHI DBL Pressure correction fit parameter CLOW DBL Pressure correction fit parameterDELVR DBL Change in volume at 25 degDHA DBL Ion size parameterGFW DBL Gram formula weight of aqtI INT Loop variableJ INT Loop variableLKT1 DBL Log K for aqueous speciesLKT2 DBL Log K for minerals with teMXAQK INT Total number of aqueous Ic
rees
ecus species
with temperaturemperatureg k values
MXMNK INT Total number of mineral log k valuesMXPC INT Total number of mineral pressure constantsMXSP INT Total number of aqueous speciesN INT Index numberNH20 DBL Number of water ionization reactionsNMAX INT General array dimension to allow easy expansionPAGE1 CHA Names of aqueous speciesPAGE2 CHA Names of equilibrium constPAGE3 CHA Names of solubility constaTC02 DBL Activity coefficients of CTK DBL Temperature steps used byTOF CHA Places a form feed in outpUND INT File unit assigned for datUNO INT File unit assigned for outZ INT Charge of aqueous species
INTEGER NMAX, UND, UNOPARAMETER (NMAX = 340, UND = 10, UNO = 6)
INTEGER I, J, N, MXSP, MXAQK, MXMNK, MXPC,
CHARACTER * 1 TOF, CR
antsnts02 with temperatureprogramut filea tablesput file
Z(NMAX)
CHARACTER* 8 PAGEl(NMAX) , PAGE2(NMAX), PAGE3(NMAX)CHARACTER * 40 TITMIX
DOUBLE PRECISION AHI (200), ALOW ( 200 ), BDAT(IO) , BHI(200)DOUBLE PRECISION BLOW (200) , CHI(200), CLOW(200) , DELVR(NMAX)DOUBLE PRECISION DHA(NMAX) , GFW(NMAX)DOUBLE PRECISION LKT1(NMAX, 11) , LKT2(NMAX, 11) , NH20(NMAX)DOUBLE PRECISION TC02(10) , TK(ll)
COMMON /FMFD / TOF, CR, TITMIXCOMMON /KK / LKT1, LKT2COMMON /NAMES1/ PAGE1 , PAGE 2 , PAGE3COMMON /PTK / DELVR, NH20, ALOW, BLOW, CLOW, AHI, BHI, CHICOMMON /TABCOM/ MXSP, MXMNK, GFW, Z, DHA
OPEN (UND, FILE = 'DATA.TBL', STATUS = 'OLD')
|TAB 0030 - | TAB 0040 |TAB 0050JTAB 0060 JTAB 0070|TAB 0080JTAB 0090 JTAB 0100|TAB 0110JTAB 0120ITAB 0130[TAB 0140JTAB 0150JTAB 0160|TAB 0170JTAB oisoJTAB 0190ITAB 0200JTAB 0210ITAB 0220ITAB 02 30JTAB 0240JTAB 0250JTAB 0260JTAB 0270JTAB 0280JTAB 0290ITAB 0300JTAB 0310ITAB 0320ITAB 0330JTAB 0340
-| TAB 0350TAB 0360TAB 0370TAB 0380TAB 0390TAB 0400TAB 0410TAB 0420TAB 0430TAB 0440TAB 0450TAB 0460TAB 0470TAB 0480TAB 0490TAB 0500TAB 0510TAB 0520TAB 0530TAB 0540TAB 0550TAB 0560TAB 0570
i TA u r\ R o r\= 1 lAJD U JoU TAB 0590TAB 0600
414
OPEN (UNO, STATUS = 'OLD', shared, readonly)
READ (UNO, 1000) MXSP, MXAQK, MXMNK, MXPC
DO 10 I = 1, MXSPREAD (UNO, 1010, END = 70) N, PAGEl(I) , Z(I) , DHA(I) , GFW(I)
10 CONTINUE
DO 20 I = 1, MXAQKREAD (UNO, 1020, END = 80) N, PAGE2(I) , (LKT1(I,J), J = 1, 11)
20 CONTINUE
DO 30 I = 1, MXMNKREAD (UND, 1020, END = 90) N, PAGE3(I), (LKT2(I,J), J - 1, 11)
30 CONTINUE
READ (UND, 1030, END = 100) (BDAT(I) , 1=1, 10)
READ (UND, 1040, END = 110) (TK(I) , 1=1, 11)
READ (UND, 1050, END = 120) (TC02(I), 1=1, 10)
DO 40 I = 1, MXPCREAD (UND, 1060, END = 130) ALOW(I) , BLOW(I) , CLOW(I) ,
AHI(I), BHI(I), CHI(I)BLOW(I) = BLOW(I) * l.OD-4BHI(I) = BHI(I) * l.OD-4CLOW(I) = CLOW(I) * l.OD-16CHI(I) = CHI(I) * l.OD-16
40 CONTINUE
DO 50 I = 1, MXAQKDELVR(I) = O.ODONH20(I) = O.ODOREAD (UND, 1070, ERR = 140, END = 60) J, DELVR(J) , NH20(J)
50 CONTINUE
60 CONTINUECLOSE (UND)RETURN
70 CONTINUEWRITE (UNO, 1080) TOFWRITE (UNO, 1090)STOP
80 CONTINUEWRITE (UNO, 1080) TOFWRITE (UNO, 1100)STOP
90 CONTINUEWRITE (UNO, 1080) TOFWRITE (UNO, 1110)STOP
TAB 0610TAB 0620TAB 0630TAB 0640TAB 0650TAB 0660TAB 0670TAB 0680TAB 0690TAB 0700TAB 0710TAB 0720TAB 0730TAB 0740TAB 0750TAB 0760TAB 0770TAB 0780TAB 0790TAB 0800TAB 0810TAB 0820TAB 0830TAB 0840TAB 0850TAB 0860TAB 0870TAB 0880TAB 0890TAB 0900TAB 0910TAB 0920TAB 0930TAB 0940TAB 0950TAB 0960TAB 0970TAB 0980TAB 0990TAB 1000TAB 1010
1 TAR 10901 JLr\IJ l.\J Z.\J
TAB 1030TAB 1040TAB 1050TAB 1060TAB 1070TAB 1080TAB 1090TAB 1100TAB 1110TAB 1120TAB 1130TAB 1140TAB 1150TAB 1160TAB 1170TAB 1180
415
100 CONTINUEWRITE (UNO, 1080) TOP WRITE (UNO, 1120) STOP
110 CONTINUEWRITE (UNO, 1080) TOP WRITE (UNO, 1130) STOP
120 CONTINUEWRITE (UNO, 1080) TOP WRITE (UNO, 1140) STOP
130 CONTINUEWRITE (UNO, 1080) TOP WRITE (UNO, 1150) STOP
140 CONTINUEWRITE (UNO, 1160) TOP STOP
10001010102010301040105010601070108010901100111011201130114011501160
FORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMATFORMAT
(414)(13,(13,(10(F(F3.1(F3.1(5(F8(14,(Al)(5X, '(5X,'(5X,'!(5X,'(5x, ':(5X,':(5X, '(Al,
IX, A8, IX, 12, IX, F3.1, IX, F8.3)IX, A8, 7(1X, F7.2) / 13X, 4(F7.2, IX))5.3, IX)), 3(1X, F4.1), 7(1X, F5.1)), 2(1X, F4.1), 7(1X, F5.1)).3, IX), F8.3)2F8.3)
ERROR IN READING TABLE-PAGEl', /, ' ProgramERROR IN READING TABLE-PAGE2', /, ' ProgramERROR IN READING TABLE-PAGES', /, ' ProgramERROR IN READING TABLE-BOAT ', /, ' ProgramERROR IN READING TABLE-TK ', /, ' ProgramERROR IN READING TABLE-TC02 ', /, ' ProgramERROR IN READING TABLE - PRE S SJ', /, ' Program5X, 'ERROR IN READING TABLE-PRESS (IONS) ', /,
' Program Stop')
Stop' Stop' Stop' Stop' Stop' Stop'
Stop'
END
TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB
11901200121012201230124012501260127012801290130013101320133013401350136013701380139014001410142014301440145014601470148014901500151015201530154015501560157015801590160016101620
C =cCc c c c c
SUBROUTINE WAPVT (TC, X, P, BETA, G, ALPHA)
Routine to calculate the properties of pure water from the steam tables of keenan et al (1969)
A DBL Fit coefficents A(i,j) AF DBL Helmholtz free energy as a function of AFO DBL Intermediate storage variable ALPHA DBL Coefficient of thermal expansion
WAP 0010 =========== |WAP 0020
IWAP 0030|WAP 0040l wr\i \j\j j\j
IWAP 0060rho and T JWAP 0070
JWAP 0080IWAP 0090
416
ccccccccccccccccccccccccccccccccccccccc
BETA DBL Coefficient of compressibilityC DBL Fit coefficients C(i)DIDX DBL First derivative of SI with respect to densityDIDX2 DBL Second derivative of SI with respect to densityDKDX DBL First derivative of SK with respect to densityDKDX2 DBL Second derivative of SK with respect to densityDPDT DBL Derivative of pressure with respect to temp.DPDTR DBL Derivative of Q by tau with constant rhoDPDX DBL Derivative of pressure by density at constant TDQDTR DBL Intermediate storage variableDQDX DBL First derivative of Q by density at constant TDQDX2 DBL Second derivative of Q by density at constant TDTDTR DBL First derivative of TJ with respect to TauDTRDT DBL Derivative of TR with respect to temperatureE DBL Fit constantFK DBL Intermediate storage variableG DBL Gibbs Free Energy in joules per moleI INT Loop variableJ INT Loop variableMW DBL Molecular weight of waterP DBL Pressure (bar)Q DBL Intermediate storage variableRC DBL R in j/ g KRP DBL R in bar cm(3)/g KSC DBL Intermediate storage variableSI DBL Sum of A(i,j) * TI(i), 1-1,8 in QSK DBL Sum of A(i,j), i=9 , 10 in QT DBL Temperature in deg KTC DBL Temperature in deg CTCR DBL 1000 / critical temperature of water in kelvinTF DBL Intermediate storage variableTI DBL Array of XTs to the (i-l)th powerTJ DBL Intermediate storage variableTP DBL Tau(a.j)TR DBL 1000 / current temperature of water in kelvinTT DBL Intermediate storage variableX DBL Density (g/cm3)XP DBL Density (a, j)XT DBL Intermediate storage variable
DOUBLE PRECISION MWPARAMETER (MW = 18.0153DOO)
INTEGER I, J
DOUBLE PRECISION A(10, 7), AF, AFO , ALPHA, BETA, C(8)DOUBLE PRECISION DIDX, DIDX2 , DKDX, DKDX2 , DPDT, DPDTR, DPDXDOUBLE PRECISION DQDTR, DQDX, DQDX2 , DTDTR, DTRDTDOUBLE PRECISION E, FK, G, P, QDOUBLE PRECISION RC , RP, SC, SI, SKDOUBLE PRECISION T, TC , TCR, TF, TI(8) , T J , TP, TR, TTDOUBLE PRECISION X, XP, XT
INTRINSIC DEXP, DLOG
DATA TCR, E, RP/ 1.544912D+0, 4.8D+0, 4.6151D+0/DATA C /1.857065D+3, 3.22912D+3, -4.19465D+2, 3.66649D+1,
-2.05516D+1, 4.85233D+0, 4.6D+1, -1.011249D+3/
|WAP 0100IWAP 0110JWAP 0120IWAP 0130IWAP 0140IWAP oisoJWAP 0160IWAP 0170IWAP oisoIWAP 0190IWAP 0200JWAP 0210|WAP 0220|WAP 0230|WAP 0240JWAP 0250JWAP 0260JWAP 0270JWAP 0280|WAP 0290IWAP 0300JWAP 0310JWAP 0320|WAP 0330JWAP 0340|WAP 035u|WAP 0360|WAP 0370JWAP 0380IWAP 0390IWAP 0400JWAP 0410IWAP 0420JWAP 0430JWAP 0440JWAP 0450JWAP 0460JWAP 0470JWAP 0480JWAP 0490WAP 0500WAP 0510WAP 0520WAP 0530WAP 0540WAP 0550WAP 0560WAP 0570WAP 0580WAP 0590WAP 0600WAP 0610WAP 0620WAP 0630WAP 0640WAP 0650WAP 0660WAP 0670
417
c
ccc
DATA A /2. 949293 7D+13.4218431D+2-4.1030848D+2-3.3301902D-KL1.3746153D+26.8335354D+00 . OD+0 ,-1.3746618D+2-9.2734289D+00 . OD+0 ,-6.3972405D+00 . OD+0 ,1.3687317D+2-2.9142470D+10 . OD+0 ,-6.9048554D-10 . OD+0 ,1.3041253D+1
RC - RP / 10. OD+0T - TC + 273.15DOOTR = l.OD+3 / TTF - TR - TCRFK = DEXP(-E * X)SC - O.OD+0
Calculate psi sub 0
DO 10 I - 1, 6
, -1., -2., -4., -1., 1., -2.
0., -7., 4.
0., 2.
0., 6., 2.
0., 2.
0., 7.
3213917D+2,4450042D+2 ,1605860D+2,6254622D+1,5597836D+2,6149751D+1,OD+0,3396848D+2,3125840D+0,OD+0,6409282D+1,OD+0,4581880D+2,9568796D+1,OD+0,7407416D+0,OD+0,1531353D+1/
2.1.
-5.-1.3.6.0.
-1.0.6.
-4.0.
-3.0.7.
-5.0.
7464632D+2,5518535D+2,1985860D+0,7731074D+2,3731180D+2,5326396D+1,OD+0,564104D-1,OD+0,7874983D+0,7740374D+1,OD+0,9661401D+0,OD+0,9$47970D+1,l(p28070D+0,OD+0,
-3.6093828D+2,5.9728487D+0,7.7779182D+0,1.2748742D+2,-2.0988866D+2,-2.6181978D+1,0 . OD+0 ,-7.2546108D-1,0 . OD+0 ,1.0401717D+1,5.6323130D+1,0 . OD+0 ,1.5453061D+1,0 . OD+0 ,3.9917570D+2,3.9636085D+0,0 . OD+0 ,
===============
SC - SC + C(I) / TR**(I-1)
CCC
10 CONTINUE
AFO = SC + C(7) *
Calculate Q term by
Q - O.OD+0DQDX - O.OD+0DQDX2 = O.OD+0DPDTR = O.OD+0DQDTR = O.OD+0
DO 50 J - 1, 7IF (J .GT. 1) THEN
TP - 2.5D+0XP - l.OD+0
ELSETP = TCRXP - 0.634D+0
END IF
DLOG(T) + C(8) *
term
DLOC?(T / TR)
WAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAP|WAPWAPWAPWAPWAPWAPWAPWAPWAP|WAPIWAP1 WAPWAPWAPWAPWAPWAPWAPWAP|WAP|WAP|WAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAPWAP
0680069007000710072007300740075007600770078007900800081008200830084008500860087008800890090009100920093009400950096009700980099010001010102010301040105010601070108010901100111011201130114011501160117011801190120012101220123012401250
418
30 CONTINUEXT - X - XP TT - TR - TP TI(1) - l.OD+0
DO 40 I - 2, 8TI(I) - TI(I-l) * XT
40 CONTINUE
SI - A(1,J) + A(2,J) * TI(2) + A(3,J) * TI(3) + A(4,J) * TI(4) A(5,J) * TI(5) + A(6,J) * TI(6) + A(7,J) * TI(7) A(8,J) * TI(8)
DIDX - A(2,J) + 2.0*A(3,J) * TI(2) + 3.0*A(4,J) * TI(3) + 4.0*A(5,J) * TI(4) + 5.0*A(6,J) * TI(5) + 6.0*A(7,J) * TI(6) + 7.0*A(8,J) * TI(7)
DIDX2 - 2.0*A(3,J) + 6.0*A(4,J) * TI(2) + 12.0*A(5,J) * TI(3)20.0*A(6,J) * TI(4) + 30.0*A(7,J) * TI(5) 42.0*A(8,J) * TI(6)
SK = FK * (A(9,J) + A(10,J) * X)DKDX = FK * A(10,J) - E * SKDKDX2 - -E * FK * A(10,J) - E * DKDX
TJ - TT**(J-2)DTDTR - (J-2) * TT**(J-3)
Q - Q + TJ * (SI + SK) DQDX = DQDX + TJ * (DIDX + DKDX) DQDX2 - DQDX2 + TJ * (DIDX2 + DKDX2) DPDTR = DPDTR + DTDTR * (SI + SK) DQDTR = DQDTR + DTDTR * (DIDX + DKDX)
50 CONTINUE
DPDTR - Q + TF * DPDTRDQDTR - DQDX + TF * DQDTRQ = TF * QDQDX - TF * DQDXDQDX2 - TF * DQDX2DTRDT - -l.OD+3 / T**2DPDT = DTRDT * (DPDTR + DQDTR * X)
AF = AFO + RC * T * (DLOG(X) + X * Q)
P=X*RP*T* (l.OD+0 + X * Q + X**2 * DQDX)
DPDX =P/X+X*RP*T* (Q + 3.0 * X * DQDX + X**2 * DQDX2)
BETA = 1.0 / (X * DPDX)
ALPHA - BETA * (P / T + T * RP * DPDT * X**2)
G = (AF + (P / X) * (RC / RP)) * MW
RETURN END
WAP WAP WAP WAP WAP WAP WAP WAP WAP +WAP +WAP WAP WAP WAP WAP
+ WAP + WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP WAP
1260127012801290130013101320133013401350136013701380139014001410142014301440145014601470148014901500151015201530154015501560157015801590160016101620163016401650166016701680169017001710172017301740175017601770178017901800
419
cCCccc
-
ccccccccccccc
SUBROUTINE WDBP (TC, P, DC, DCDT)
Routine to calculate the dielectric constant of waterbased on eq (1) of Bradley and Pitzer (1979)This equation is only valid for temperatures of 0-350 Cand pressures up to 2000 bar at 70 C and lower and up to5000 bar greater than 70 C
B DBL Intermediate storage variableC DBL Intermediate storage variableDC DBL Dielectric constant of waterDCDT DBL Derivative of dielectic constant wrt TDCO DBL Intermediate storage variableDT1 DBL Intermediate storage variableDT2 DBL Intermediate storage variableDT3 DBL Intermediate storage variableP DBL Pressure in barsT DBL Temperature in deg kTC DBL Temperature in deg cU DBL Fit constants
DOUBLE PRECISION B, C, DC, DCDT, DCO, DT1, DT2 , DT3DOUBLE PRECISION P, T, TC, U(9)
INTRINSIC DEXP, DLOG
DATA U/ 3.4279D+2, -5.0866D-3, 9.46900*7, -2.05250+0,3.1159D+3, -1.8289D+2, -8.0325D+3, 4.2142D+6,2.1417D+0 /
T - TC + 273.15D+00DCO - U(l) * DEXP(U(2)*T + U(3)*T**2)C - U(4) + (U(5) / (U(6) + T))B - U(7) + (U(8) / T) + (U(9) * T)DC - DCO + (C * DLOG((B + P) / (B + l.OD+3)))DT1 - U(l) * (U(2) + (2''.0 * U(3) * T))
* (DEXP((U(2) * T) + (U(3) * T**2)))DT2 - (U(5) / (U(6) + T)**2) * DLOG((B+P) / (B + l.OD+3))DT3 - (C * (l.OD+3 - P) * (U(9) - (U(8)/T**2)))
/ ((B + P) * (B + l.OD+3))DCDT - DT1 - DT2 + DT3
.RETURNEND
WDB 0010 =|WDB 0020
|WDB 0030|WDB 0040|WDB 0050|WDB 0060|WDB 0070
---|WDB 0080JWDB 0090|WDB 0100|WDB 0110|WDB 0120IWDB 0130JWDB 0140IWDB oisoJWDB 0160JWDB 0170|WDB 0180JWDB 0190JWDB 0200
---|WDB 0210WDB 0220WDB 0230WDB 0240WDB 0250WDB 0260WDB 0270WDB 0280WDB 0290WDB 0300WDB 0310
=|WDB 0320WDB 0330WDB 0340WDB 0350WDB 0360WDB 0370WDB 0380WDB 0390WDB 0400WDB 0410WDB 0420WDB 0430WDB 0440WDB 0450WDB 0460WDB 0470
alJ.S. GOVERNMENT PRINTING OFFICE: 1989-686-54V 19066
420