mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-15 16:18:22 +01:00
Will remove cpp and header files and make phreeqc an external directory. git-svn-id: svn://136.177.114.72/svn_GW/phreeqcpp/trunk@785 1feff8c3-07ed-0310-ac33-dd36852eb9cd
1402 lines
61 KiB
Plaintext
1402 lines
61 KiB
Plaintext
------------------------------------------------------------
|
|
Features not documented in WRIR 99-4259.
|
|
------------------------------------------------------------
|
|
|
|
svn 675:
|
|
Added PRINT option to print the species that contribute
|
|
to alkalinity. Alkalinity distribution is printed in
|
|
the output file following the distribution of species.
|
|
Default at program startup is false.
|
|
|
|
PRINT
|
|
-alkalinity true
|
|
|
|
------------------------------------------------------------
|
|
Version 2.12:
|
|
------------------------------------------------------------
|
|
|
|
* Made aqueous activity coefficients the default activity
|
|
coefficients for exchange species when using the
|
|
Pitzer formulation. New option in EXCHANGE is
|
|
-pitzer_exchange_gammas T/F, default is true;
|
|
defining "false" sets exchange activity coefficients
|
|
to 1.0. Option has no effect for ion-association
|
|
model (non-Pitzer).
|
|
|
|
|
|
* Added multiplier format to REACTION steps and KINETICS steps,
|
|
which simplifies definition of multiple equal reaction increments.
|
|
|
|
This definition:
|
|
|
|
INCREMENTAL_REACTIONS true
|
|
REACTION
|
|
H2O 1
|
|
-36 3*-4 2*-.25 -0.19 4*-0.1 3*-0.05 moles
|
|
|
|
is equivalent to this definition:
|
|
|
|
INCREMENTAL_REACTIONS true
|
|
REACTION
|
|
H2O 1
|
|
-36 -4 -4 -4 -.25 -.25 -0.19 -0.1 -0.1 -0.1
|
|
-0.1 -0.05 -0.05 -0.05 moles
|
|
|
|
|
|
|
|
* Added Pitzer activity formulation. Use pitzer.dat database
|
|
to invoke the Pitzer model. Should have same capabilities
|
|
as ion-association model except explicit diffuse layer
|
|
calculation is not implemented with the Pitzer model.
|
|
New keyword is PITZER with following options:
|
|
|
|
PITZER
|
|
-MacInnes T/F # uses MacInnes assumption or unscaled for
|
|
# individual activities and activity coefficients
|
|
-B0
|
|
Na+ Cl- 0.0765 -777.03 -4.4706 0.008946 -3.3158E-6
|
|
-B1
|
|
Na+ Cl- 0.2664 0 0 6.1608E-5 1.0715E-6
|
|
-B2
|
|
Mg+2 SO4-2 -37.23 0 0 -0.253
|
|
-C0
|
|
Na+ Cl- 0.00127 33.317 0.09421 -4.655E-5
|
|
-THETA
|
|
K+ Na+ -0.012
|
|
-LAMDA
|
|
Na+ CO2 0.1
|
|
-ZETA
|
|
H+ Cl- B(OH)3 -0.0102
|
|
-PSI
|
|
Na+ K+ Cl- -0.0018
|
|
|
|
A five-term expression for temperature dependence is available
|
|
for all Pitzer parameter values:
|
|
P = A0 + A1*(1/TK - 1/TR) + A2log(TK/TR) + A3/(TK-TR) +
|
|
A4*(TK*TK - TR*TR),
|
|
where TK is Kelvin and TR is 298.15.
|
|
|
|
* Cl1mp is a new multiple precision version of routine cl1,
|
|
a simplex-based optimization routine. Cl1mp was develeped
|
|
by using the Gnu Multiple Precision package (gmp).
|
|
Calculations are carried out to about 30 significant
|
|
digits. Cl1mp may help in some situations where roundoff
|
|
errors are a problem, but it is still possible that roundoff
|
|
errors will cause cl1mp to fail to find a solution to an
|
|
optimization problem. The mp version has the following
|
|
options in INVERSE_MODELING:
|
|
|
|
-multiple_precision T/F--causes the mp version
|
|
to be used in inverse modeling calculations.
|
|
-mp_tolerance 1e-12--tolerance for mp version of
|
|
cl1. As in cl1, numbers less than the
|
|
tolerance are considered to be zero.
|
|
1e-12 is the default.
|
|
-censor_mp 1e-20--as calculations occur in the
|
|
linear equation array, elements less
|
|
than this value are set to zero. Default
|
|
is 1e-20. A value of 0.0 causes no
|
|
censoring to occur.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.11:
|
|
------------------------------------------------------------
|
|
|
|
* A new database, minteq.v4.dat, has been translated from
|
|
version 4.02 of MINTEQA2 and is included in all
|
|
distributions. The database minteq.dat from earlier
|
|
version of MINTEQA2 has been slightly revised and is
|
|
also included.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.10:
|
|
------------------------------------------------------------
|
|
|
|
No new features.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.9:
|
|
------------------------------------------------------------
|
|
* Added new keyword COPY that allows a data entity
|
|
to be copied from one index to a new index
|
|
or to a range of indicies. Format is
|
|
|
|
COPY keyword index index_start[-index_end]
|
|
|
|
where keyword may be SOLUTION
|
|
EQUILIBRIUM_PHASES
|
|
EXCHANGE
|
|
GAS_PHASE
|
|
KINETICS
|
|
MIX
|
|
REACTION
|
|
REACTION_TEMPERATURE
|
|
SOLID_SOLUTION
|
|
SURFACE
|
|
|
|
* Added new Basic functions
|
|
b$ = PAD(a$, 20) pads a$ to a total of 20 characters
|
|
with spaces and stores result in b$. PAD returns
|
|
a copy of a$ if a$ is more than 20 characters.
|
|
i = INSTR(a$, b$) sets i to the character position of
|
|
string b$ in a$, 0 in not found.
|
|
b$ = LTRIM(a$) trims white space from beginning of
|
|
string a$ and stores result in b$.
|
|
b$ = RTRIM(a$) trims white space from end of string
|
|
a$ and stores result in b$.
|
|
b$ = TRIM(a$) trims white space from beginning and
|
|
end of string a$ and stores result in b$.
|
|
|
|
|
|
* Added new Basic function SYS that calculates the to
|
|
total amount of an element in all phases (solution,
|
|
equilibrium_phases, surfaces, exchangers, solid solutions,
|
|
and gas phase). KINETIC reactions are not included.
|
|
The function has two forms: (1) one element name as an
|
|
argument (variable names are user specified)
|
|
|
|
10 t = SYS("As")
|
|
|
|
the function will return the total arsenic in the system.
|
|
(2) 5 argumens
|
|
|
|
10 t = SYS("As", count_species, names$, types$, moles)
|
|
|
|
will return the total arsenic in the system to tot; count_species--
|
|
the number of species that contain arsenic, including
|
|
solution, equilibrium_phases, surfaces, exchangers, solid solutions,
|
|
and gas phase species; names$--a character array that has the
|
|
name of each species; type$--a character array that specifies the
|
|
type of phase for the species, aq, equi, surf, ex, s_s, gas, diff.
|
|
Diff refers to the amount of the element in the diffuse layer of
|
|
a surface when the explicit diffuse layer calculation is used;
|
|
moles--an array containing the number of moles of the element in
|
|
the species. The sum of moles(i) is equal to tot.
|
|
|
|
SYS has several special arguments for the form
|
|
SYS("arg", count, names$, types$, values)
|
|
arg is one of the options listed below.
|
|
count is a single numeric value and is the number of elements
|
|
in the following arrays.
|
|
name$ is an array of string values.
|
|
type$ is an array of string values.
|
|
values is an array of numeric values.
|
|
|
|
Values of arg:
|
|
|
|
elt_name returns total number of moles of element in system.
|
|
count is the number of species for the element in
|
|
the system, including aqueous, exchange, surface,
|
|
equilibrium_phase, solid solution component, and
|
|
gas phase "species".
|
|
Arrays are filled for each "species"; values are moles.
|
|
"elements" returns total number of moles of dissolved elements other
|
|
than H and O.
|
|
count is number of elements, valence states,
|
|
exchangers, and surfaces.
|
|
Arrays are filled for each element and valence state,
|
|
type is "dis"; exchanger, type is "ex",
|
|
and surface, type is "surf". Values are moles.
|
|
"phases" returns maximum saturation index of all phases.
|
|
count is number of phases in system.
|
|
Arrays are filled for each phase; values are
|
|
saturation indexes.
|
|
"aq" returns sum of moles of all aqueous species.
|
|
count is number of aqueous species in system.
|
|
Arrays are filled with each aqueous species;
|
|
values are moles.
|
|
"ex" returns sum of moles of all exchange species.
|
|
count is number of exchange species in system.
|
|
Arrays are filled with each exchange species;
|
|
values are moles.
|
|
"surf" returns sum of moles of all surface species.
|
|
count is number of surface species in system.
|
|
Arrays are filled with each surface species;
|
|
values are moles.
|
|
"s_s" returns sum of moles of all solid solution components.
|
|
count is number of solid solution components in system.
|
|
Arrays are filled with each solid solution component;
|
|
values are moles.
|
|
"gas" returns sum of moles of all gas components.
|
|
count is number of gas components in system.
|
|
Arrays are filled with each gas component;
|
|
values are moles.
|
|
|
|
* Added new Basic function, DESCRIPTION, that has the value
|
|
defined for the description field of the SOLUTION keyword line.
|
|
|
|
* Added alternative ordinary differential equation solver
|
|
called CVODE, a set of C routines from the Lawrence
|
|
Livermore National Labs. CVODE is part of the SUNDIALS
|
|
package. CVODE is used in place of the Runge Kutta method
|
|
when "-cvode true" is used within a KINETICS data block.
|
|
|
|
KINETICS
|
|
-cvode true
|
|
|
|
------------------------------------------------------------
|
|
Version 2.8:
|
|
------------------------------------------------------------
|
|
|
|
No new features.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.7:
|
|
------------------------------------------------------------
|
|
Changed format of selected output file:
|
|
Removed quotations surrounding strings in headings.
|
|
Removed quotations surrounding strings in state variable.
|
|
All fields are 12 or 20 places depending on
|
|
-high_precision.
|
|
Headings are not truncated even if longer than
|
|
specified precision.
|
|
For isotopes, missing value is -9999.9
|
|
Selected output is updated each simulation.
|
|
If a species or phase is defined
|
|
subsequent to the simulation where SELECTED_OUTPUT
|
|
was defined it will appear in the selected output
|
|
file in the simulation in which it is defined and
|
|
in subsequent simulations.
|
|
|
|
Added strings for each file, which can be extracted from the
|
|
executable file with the "ident" command.
|
|
|
|
Fixed null pointer for isotope_ratios if Basic routine
|
|
was undefined.
|
|
|
|
Fixed problem in C++ if structure name is same as member name.
|
|
logk member of logk structure was renamed to log_k.
|
|
|
|
Added identifier -add_constant to PHASES, EXCHANGE_SPECIES,
|
|
SOLUTION_SPECIES, and SURFACE_SPECIES.
|
|
|
|
-add_constant -0.301
|
|
|
|
log K is augmented by the specified constant.
|
|
|
|
|
|
Theory and implementation of isotopes in PHREEQC is documented in:
|
|
|
|
Thorstenson, D.C., and Parkhurst, D.L., 2002, Calculation of
|
|
individual isotope equilibrium constants for implementation in
|
|
geochemical models: U.S. Geological Survey Water-Resources
|
|
Investigations Report 02-4172, 129 p.
|
|
|
|
Added KEYWORDS:
|
|
|
|
ISOTOPES
|
|
Element
|
|
-isotope isotope_name units standard_ratio
|
|
-total_is_major T/F (OPTION IS DISABLED!!)
|
|
|
|
CALCULATE_VALUES
|
|
Name
|
|
-start
|
|
Basic statements, must have SAVE
|
|
-end
|
|
|
|
ISOTOPE_RATIOS (for printing)
|
|
Name=Calculate_values_name Isotope_name
|
|
|
|
ISOTOPE_ALPHAS (for printing)
|
|
Name=Calculate_values_name Named_logk=named_expression_name
|
|
|
|
Basic functions:
|
|
calc_value("calc_value_name") evaluates a definition of CALCULATE_VALUES
|
|
lk_named("name") log10(K) of definition in NAMED_EXPRESSIONS
|
|
lk_phase("name") log10(K) of definition in PHASES
|
|
lk_species("name") log10(K) of definition in (SOLUTION, EXCHANGE, SURFACE)_SPECIES
|
|
sum_gas("template","element") Sum of element in gases with specified template
|
|
template="{C,[13C],[14C]}{O,[18O]}2" includes all CO2 gases
|
|
sum_species("template","element") Sum of element in aqueous, exchange, and surface species with
|
|
specified template
|
|
sum_s_s("s_s_name","element") Sum of element in a specified solid solution
|
|
|
|
PRINT keyword:
|
|
-initial_isotopes T/F
|
|
-isotope_ratios T/F
|
|
-isotope_alphas T/F
|
|
-censor_species 1e-8 # omit species from Distribution of Species if less than
|
|
# relative minimum of an element or element redox state
|
|
# total concentration
|
|
|
|
SELECTED_OUTPUT keyword:
|
|
-calculate_values name1 name2 ...
|
|
-isotopes minor_isotope1 minor_isotope2 ....
|
|
|
|
Added functions LK_SPECIES, LK_NAMED, LK_PHASE for Basic
|
|
interpreter. LK_SPECIES("CaHCO3+") returns the
|
|
log k for the association reaction for the ion pair
|
|
CaHCO3+ at the current temperature. The log K is
|
|
for the reaction as defined in the database or
|
|
input file. Similarly,
|
|
LK_NAMED("Log_alpha_18O_CO2(aq)/CO2(g)") returns the
|
|
value for the log K at the current temperature using
|
|
expressions defined in NAMED_LOG_K data block;
|
|
LK_PHASE("Calcite") returns the value of log K
|
|
for calcite at the current temperature for the
|
|
dissociation reaction defined in the database or
|
|
input file. Values are "log10" values.
|
|
Example for Basic program:
|
|
10 PRINT "Log10 KCalcite: ", LK_PHASE("Calcite")
|
|
20 PRINT "Log10 KCaHCO3+: ", LK_SPECIES("CaHCO3+")
|
|
30 PRINT " 1000ln(alpha): ", LK_NAMED("Log_alpha_18O_CO2(aq)/CO2(g)")*LOG(10)*1000
|
|
|
|
NAMED_EXPRESSION--New keyword data block.
|
|
|
|
This data block was implemented to facilitate isotopic
|
|
calculations. It allows analytical expressions that
|
|
are functions of temperature to be defined. The purpose
|
|
is to separate the fractionation factors from the log
|
|
K, so that the fractionation factor or its temperature
|
|
dependence can be easily modified. The named expression
|
|
can be added to a log K for a species or phase by the
|
|
-add_logk identifier in SOLUTION_SPECIES
|
|
EXCHANGE_SPECIES, SURFACE_SPECIES, or PHASES data
|
|
block. Log K, Delta H, and analytical expressions for a
|
|
log K can be defined with identifiers -log_k, -delta_h,
|
|
and -analytical_expression as described in SOLUTION_SPECIES
|
|
in WRIR 99-4259. Fractionation factors are often defined
|
|
as 1000*ln(alpha). The identifier -ln_alpha1000 can be used
|
|
to enter data in this form. The analytical expression is the
|
|
same as defined in SOLUTION_SPECIES, but the result of the
|
|
expression is converted to log10(alpha) by dividing by
|
|
1000*ln(10) before it is summed into log K values.
|
|
|
|
NAMED_EXPRESSIONS
|
|
Log_K_calcite # CaCO3 + 2H3O+ = Ca+2 + 3H2O + CO2
|
|
log_k 8.201
|
|
delta_h -8.035 kcal
|
|
-analytic 292.29 0.015455 -24146.841 -94.16451 2248628.9
|
|
|
|
Log_alpha_18O_CO2(aq)/Calcite
|
|
-ln_alpha1000 3.8498 0.0 10.611e3 0.0 -1.8034e6
|
|
|
|
Log_alpha_13C_CO2(aq)/Calcite
|
|
-ln_alpha1000 2.72 0.0 0.0 0.0 -1.1877e6
|
|
|
|
------------------------------------------------------------
|
|
Added identifier -add_logk to SOLUTION_SPECIES
|
|
EXCHANGE_SPECIES, SURFACE_SPECIES, and PHASES data
|
|
block.
|
|
|
|
Allows a named expression to be added to the definition
|
|
of the log K for a species or phase. In the following
|
|
example, the log K for the phase Ca[14C][18O]3 is summed from
|
|
four parts, one defined with the log_k identifier and the
|
|
other three parts from expressions defined in NAMED_EXPRESSIONS.
|
|
The named expression is multiplied by the coefficient at the
|
|
end of the line before it is summed into the log K. A missing
|
|
coefficient is 1.0 by default.
|
|
|
|
PHASES
|
|
Ca[13C][18O]3
|
|
Ca[13C][18O]3 + 3CO2 + 2H3O+ = Ca+2 + 3H2O + 3CO[18O] + [13C]O2
|
|
log_k 0.903089986991 # 3*log10(2)
|
|
-add_logk Log_K_calcite 1.0
|
|
-add_logk Log_alpha_13C_CO2(aq)/Calcite 1.0
|
|
-add_logk Log_alpha_18O_CO2(aq)/Calcite 3.0
|
|
|
|
|
|
SOLUTION keyword:
|
|
At present, can only define isotopes in the units defined in ISOTOPES.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.6:
|
|
------------------------------------------------------------
|
|
|
|
No new features.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.5:
|
|
------------------------------------------------------------
|
|
Added the capability to use square brackets to define an
|
|
"element" name. The brackets act like quotation marks
|
|
in that any character string can be used within the
|
|
brackets as an element name. For example, [Fe3], [13C],
|
|
and [N5] are now legal "element" names. All element
|
|
names without brackets must begin with a capital letter,
|
|
followed by zero or more lower case letters and underscores.
|
|
|
|
Added identifier -activity_water for a species in SOLUTION_SPECIES
|
|
data block. This identifier has been added for future updates
|
|
that will allow isotopic calculations. It is intended to be
|
|
used only for isotopic variations of H2O, like D2O or
|
|
H2[O18]. It forces the activity coefficient for the
|
|
species to be activity(water)/55.5. This effectively sets
|
|
the activity of the species to the mole fraction in
|
|
solution.
|
|
|
|
Added identifier -bad_step_max to KINETICS data block.
|
|
An integer following -bad_step_max gives the maximum number
|
|
of times a rate integration may fail before execution of the
|
|
program is terminated. Default is 500.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.4:
|
|
------------------------------------------------------------
|
|
|
|
------------------------------------------------------------
|
|
Added identifier -warnings to PRINT keyword.
|
|
|
|
An integer following -warnings gives the maximum number
|
|
of warnings to print into the output file. A negative
|
|
number allows all warnings to be printed.
|
|
|
|
Example: -warnings 20
|
|
|
|
------------------------------------------------------------
|
|
Changed the results of the function CELL_NO in Basic programs.
|
|
|
|
Function cell_no in Basic now prints a number equivalent
|
|
to -solution in SELECTED_OUTPUT data block. It gives the
|
|
solution number for initial solution calculations and the
|
|
solution being used in batch reaction calculations.
|
|
Result is the same as previous versions for ADVECTION or
|
|
TRANSPORT calculations.
|
|
|
|
------------------------------------------------------------
|
|
Version 2.3:
|
|
------------------------------------------------------------
|
|
DATABASE--New keyword data block
|
|
|
|
It must be the first keyword in the input file.
|
|
The character string following the keyword is
|
|
the pathname for the database file to be used
|
|
in the calculation. The file that is specified
|
|
takes precedence over any default database
|
|
name, including environmental variable
|
|
PHREEQC_DATABASE and command line arguments.
|
|
|
|
LLNL_AQUEOUS_MODEL_PARAMETERS--New keyword data block
|
|
|
|
Added new keyword to make aqueous model similar to
|
|
EQ3/6 and Geochemists Workbench when using
|
|
llnl.dat as the database file. Values
|
|
of Debye-Huckel a and b and bdot (ionic strength
|
|
coefficient) are read at fixed temperatures.
|
|
Linear interpolation occurs between temperatures.
|
|
|
|
New options for SOLUTION_SPECIES are
|
|
-llnl_gamma a , where a is the ion-size parameter.
|
|
-co2_llnl_gamma , indicates the temperature dependent
|
|
function for the bdot term given in
|
|
-co2_coefs of LLNL_AQUEOUS_MODEL_PARAMETERS
|
|
will be used. Applies to uncharged
|
|
species only.
|
|
|
|
LLNL_AQUEOUS_MODEL_PARAMETERS
|
|
-temperatures
|
|
0.0100 25.0000 60.0000 100.0000
|
|
150.0000 200.0000 250.0000 300.0000
|
|
#debye huckel a (adh)
|
|
-dh_a
|
|
0.4939 0.5114 0.5465 0.5995
|
|
0.6855 0.7994 0.9593 1.2180
|
|
#debye huckel b (bdh)
|
|
-dh_b
|
|
0.3253 0.3288 0.3346 0.3421
|
|
0.3525 0.3639 0.3766 0.3925
|
|
-bdot
|
|
0.0394 0.0410 0.0438 0.0460
|
|
0.0470 0.0470 0.0340 0.0000
|
|
#cco2 (coefficients for the Drummond (1981) polynomial)
|
|
-co2_coefs
|
|
-1.0312 0.0012806
|
|
255.9 0.4445
|
|
-0.001606
|
|
|
|
------------------------------------------------------------
|
|
Added function SURF to Basic.
|
|
|
|
SURF("element", "surface") gives the amount of element
|
|
sorbed on "surface". "surface" should be the surface
|
|
name, not the surface-site name (that is, no underscore).
|
|
|
|
------------------------------------------------------------
|
|
Allow decimals in definition of secondary master species.
|
|
|
|
Some redox states do not average to integers,
|
|
for convenience in identifying them, decimal numbers
|
|
may be used within the parentheses that define the
|
|
redox state, example S(0.3) could be used in the
|
|
MASTER_SPECIES data block for the valence state of
|
|
aqueous species S6-2.
|
|
|
|
------------------------------------------------------------
|
|
Eliminate echo of input file in PRINT data block.
|
|
|
|
-echo_input T/F turns echoing on and off.
|
|
Default is true, initial value is true.
|
|
|
|
------------------------------------------------------------
|
|
Added option for an equilibrium-phase to dissolve only.
|
|
"dis" is added at the end of a line defining an equilibrium-
|
|
phase. No data fields may be omitted. Should not
|
|
be used when adding an alternative reaction.
|
|
Example:
|
|
EQUILIBRIUM_PHASES
|
|
Dolomite 0.0 0.001 dis
|
|
|
|
------------------------------------------------------------
|
|
Version 2.2:
|
|
------------------------------------------------------------
|
|
Added function EDL to Basic.
|
|
EDL("element", "surface") gives the amount of
|
|
element in the diffuse layer for "surface", not
|
|
including sorbed species. "surface" should be
|
|
the surface name, not the surface-site name
|
|
(that is, no underscore).
|
|
|
|
Special values for "element" include:
|
|
"charge" - gives surface charge, equivalents.
|
|
"sigma" - surface charge density, C/m**2.
|
|
"psi" - potential at the surface, Volts.
|
|
"water" - mass of water in the diffuse layer, kg.
|
|
|
|
------------------------------------------------------------
|
|
End of Features not documented in WRIR 99-4259.
|
|
------------------------------------------------------------
|
|
|
|
------------------------------------------------------------
|
|
Revisions and bug fixes
|
|
------------------------------------------------------------
|
|
svn 675:
|
|
Added PRINT option to print the species that contribute
|
|
to alkalinity. Alkalinity distribution is printed in
|
|
the output file following the distribution of species.
|
|
Default at program startup is false.
|
|
|
|
PRINT
|
|
-alkalinity true
|
|
|
|
svn 655:
|
|
IAP and log K printed in Phase assemblage data
|
|
block were calculated from reactions rewritten to
|
|
new master species. Now the original data base
|
|
reaction is used to calculate IAP and log K.
|
|
Also fixed check that ensured all elements of
|
|
phase in are in solution before SI is calculated.
|
|
|
|
svn 631:
|
|
Fixed bug with alternate formula for equilibrium phase,
|
|
nothing happened if all other equations were satisfied
|
|
at beginning of reaction calculation.
|
|
|
|
svn 603:
|
|
Link gmp library statically.
|
|
|
|
svn 601:
|
|
Fixed statement on multiprecision.
|
|
|
|
svn 581:
|
|
Fixed bug in PhreeqcI that did not reinitialize
|
|
Chebyschev parameters leading to incorrect results
|
|
with Pitzer activity coefficients. Results were
|
|
correct on first run, but erroneous on subsequent
|
|
runs.
|
|
|
|
Added statement to identify multiprecision or
|
|
standard solver for inverse modeling.
|
|
|
|
svn 578:
|
|
|
|
Distribution changes. Fixed names in README file.
|
|
Modified Makefile to use specified version. Split
|
|
Linux and source distribution procedure.
|
|
|
|
Version 2.12 Date: Wed September 28, 2005
|
|
|
|
Executables and output files for Sun operating systems
|
|
are no longer provided.
|
|
|
|
Limited log activities of master species to be greater
|
|
than the smallest machine precision exponential number.
|
|
Avoids a matherr exception and allows trial of additional
|
|
parameter sets to attempt to solve the system of
|
|
equations.
|
|
|
|
Made aqueous activity coefficients the default activity
|
|
coefficients for exchange species when using the
|
|
Pitzer formulation. New option in EXCHANGE is
|
|
-pitzer_exchange_gammas T/F, default is true;
|
|
defining "false" sets exchange activity coefficients
|
|
to 1.0. Option has no effect for ion-association
|
|
model (non-Pitzer).
|
|
|
|
Edited phreeqc.dat to add -gamma expression for
|
|
CdX2 and PbX2.
|
|
|
|
Replaced O2(g) log K in phreeqc.dat and wateq4f.dat
|
|
with data from llnl.dat, which appears to be better.
|
|
|
|
Added multiplier format to REACTION increments, which
|
|
simplifies definition of multiple equal reaction increments.
|
|
|
|
REACTION
|
|
H2O 1
|
|
-36 3*-4 2*-.25 -0.19 4*-0.1 3*-0.05 moles
|
|
|
|
Added Pitzer activity formulation. Use pizer.dat database
|
|
to invoke the Pitzer model. Should have same capabilities
|
|
as ion-association model except explicit diffuse layer
|
|
calculation is not implemented with the Pitzer model.
|
|
|
|
|
|
Fixed bug in surface sites related to mineral and exchange
|
|
sites related to mineral. Did not have complete logic to
|
|
handle redox valence states in formula for species.
|
|
|
|
Modified to remove non standard usage of va_list.
|
|
|
|
Removed exchange master species from SYS("ex",..)
|
|
list of species. This species is fictive and should
|
|
not be included in the list.
|
|
|
|
Changed -redox in SOLUTION so that if one of the
|
|
redox states of a couple is not defined, then
|
|
redox defaults to pe.
|
|
|
|
Fixed buffer overrun in PhreeqcI with SOLUTION_SPREAD,
|
|
caused segmenatation fault with lines greater than
|
|
500 characters.
|
|
|
|
Added bigger string for some error messages to avoid
|
|
access violation in cvode.
|
|
|
|
Changed output_msg to warning_msg for combinations
|
|
of convergence parameters so that message would
|
|
be controlled by -warnings identifier.
|
|
|
|
Carriage returns are now stripped from Basic program
|
|
statements. Switching files from Windows to Unix sometimes
|
|
leaves extra carriage returns at the ends of lines, which
|
|
caused a syntax error for some Basic commands.
|
|
|
|
Two bugs were fixed in inverse modeling. (1) Potential
|
|
models are now checked for all equality and inequality
|
|
constraints. Previously some constraints were not checked.
|
|
(2) One loop of cl1 did not include the last row when
|
|
checking for the pivot element. Also printing of headers
|
|
was slightly modified for inverse modeling.
|
|
|
|
A new multiple precision version of cl1 was develeped by
|
|
using the Gnu Multiple Precision package (gmp). Calculations
|
|
are carried out to about 30 significant digits. The mp
|
|
version may help in some situations where roundoff errors are
|
|
a problem, but it is still possible that roundoff errors will
|
|
cause cl1mp to fail to find a solution to the optimization
|
|
problem. The mp version has the following options in
|
|
INVERSE_MODELING:
|
|
-multiple_precision T/F--causes the mp version
|
|
to be used in inverse modeling calculations.
|
|
-mp_tolerance 1e-12--tolerance for mp version of
|
|
cl1. As in cl1, numbers less than the
|
|
tolerance are considered to be zero.
|
|
1e-12 is the default.
|
|
-censor_mp 1e-20--as calculations occur in the
|
|
linear equation array, elements less
|
|
than this value are set to zero. Default
|
|
is 1e-20. A value of 0.0 causes no
|
|
censoring to occur.
|
|
|
|
Version 2.11 Date: Mon February 7, 2005
|
|
|
|
Fixed error in selected output file with mixing reaction.
|
|
MIX number was written to two columns, should be one.
|
|
|
|
Fixed memory leak with PAD function.
|
|
|
|
New database minteq.v4.dat has been translated from version
|
|
4.02 of MINTEQA2. An older version of the MINTEQA2 database is
|
|
retained in file minteq.dat.
|
|
|
|
Switched version control to subversion. Simplified,
|
|
reorganized makefiles.
|
|
|
|
Fixed bug with PRINT; -warnings n. Use of this option
|
|
generally eliminated all warning messages instead of
|
|
all messages after the nth. Default number of warning
|
|
messages printed in now 100 per simulation.
|
|
|
|
Fixed memory leaks in cvode that caused phreeqci to crash.
|
|
Now uses PHRQ_malloc in case of other memory leaks. Also
|
|
fixed potential memory error with PAD Basic function.
|
|
|
|
Saturation index phases that included water had wrong
|
|
value if distribution of species, exchange, or surface
|
|
not written also.
|
|
|
|
Fixed error message in cvode, if max iterations exceeded
|
|
the error caused a segmentation fault.
|
|
|
|
Made printing of parameter combination message a warning
|
|
message so that it could be turned off.
|
|
|
|
Version 2.10 Date: Tue November 2, 2004
|
|
|
|
Rearranged i/o for PHREEQC and reorganized driver
|
|
subroutine. The object of these changes is to make
|
|
the program more functional as a module for other
|
|
programs (PHAST) and eventually to produce a callable
|
|
C and Fortran module.
|
|
|
|
Fixed a problem with surface related to a phase, when
|
|
phase was not part of system (for example, Fe(OH)3a when
|
|
there is no iron in system.
|
|
|
|
Added convergence parameter set that requires mineral
|
|
transfers to produce positive concentrations in the
|
|
event that negative concentrations have been produced in
|
|
the prior Newton-Raphson iteration. (Fluorite example).
|
|
|
|
Fixed bug with kinetics formulas; did not account for
|
|
stoichiometric coefficient correctly when using
|
|
phase names. Generalized to allow multiple phase
|
|
names in the -formula definition.
|
|
|
|
Version 2.9 Date: Wed September 15, 2004
|
|
|
|
In inverse modeling, program terminates if sum of initial
|
|
solutions and phases is > 32.
|
|
|
|
Fixed bug with isotopes. Log activity estimate after initial
|
|
solution calculation was inf under some conditions. An initial
|
|
surface calculation failed when using D.
|
|
|
|
Changed saturation index print out to use reaction and log K
|
|
defined in PHASES definition. Previously, reaction could be
|
|
rewritten to predominant redox species.
|
|
|
|
Fixed incorrect print of elapsed time for kinetics in advection.
|
|
|
|
Added phrqproto.h prototype file and phrqtype.h for
|
|
switching compilation to long double.
|
|
|
|
Fixed incorrect printout of kinetics delta moles with
|
|
advection.
|
|
|
|
Added convergence parameter set that skips mineral
|
|
equations for first 5 iterations.
|
|
|
|
Added entity_exists for module.
|
|
|
|
Tried to fix bug with mix index incorrect (-2) for
|
|
mixing with kinetics.
|
|
|
|
Added new keyword COPY that allows a data entity
|
|
to be copied from one index to a new index
|
|
or to a range of indicies. Format is
|
|
|
|
COPY keyword index index_start[-index_end]
|
|
|
|
where keyword is one of the following:
|
|
SOLUTION
|
|
EQUILIBRIUM_PHASES
|
|
EXCHANGE
|
|
GAS_PHASE
|
|
KINETICS
|
|
MIX
|
|
REACTION
|
|
REACTION_TEMPERATURE
|
|
SOLID_SOLUTION
|
|
SURFACE
|
|
|
|
Numerical method had a bug with ionic strength, if
|
|
mass of water was not approximately 1. Routine
|
|
revise_guesses did not divide by the mass of
|
|
water. Also changed check in routine molalities
|
|
to check by molality, not moles.
|
|
|
|
Fixed a null pointer when surface was related to a
|
|
mineral and mineral was not in database.
|
|
|
|
Added new Basic functions
|
|
i = INSTR(a$, b$) sets i to the character position of
|
|
string b$ in a$, 0 in not found.
|
|
b$ = LTRIM(a$) trims white space from beginning of
|
|
string a$ and stores result in b$.
|
|
b$ = RTRIM(a$) trims white space from end of string
|
|
a$ and stores result in b$.
|
|
b$ = LTRIM(a$) trims white space from beginning and
|
|
end of string a$ and stores result in b$.
|
|
|
|
Added new Basic function SYS that calculates the to
|
|
total amount of an element in all phases (solution,
|
|
equilibrium_phases, surfaces, exchangers, solid solutions,
|
|
and gas phase). KINETIC reactions are not included.
|
|
The function has two forms: (1) one element name as an
|
|
argument (variable names are user specified)
|
|
|
|
10 t = SYS("As")
|
|
|
|
the function will return the total arsenic in the system.
|
|
(2) 5 argumens
|
|
|
|
10 t = SYS("As", count_species, names$, types$, moles)
|
|
|
|
will return the total arsenic in the system to tot; count_species--
|
|
the number of species that contain arsenic, including
|
|
solution, equilibrium_phases, surfaces, exchangers, solid solutions,
|
|
and gas phase species; names$--a character array that has the
|
|
name of each species; type$--a character array that specifies the
|
|
type of phase for the species, aq, equi, surf, ex, s_s, gas, diff.
|
|
Diff refers to the amount of the element in the diffuse layer of
|
|
a surface when the explicit diffuse layer calculation is used;
|
|
moles--an array containing the number of moles of the element in
|
|
the species. The sum of moles(i) is equal to tot.
|
|
|
|
SYS has several special arguments for the form
|
|
SYS("arg", count, names$, types$, values)
|
|
arg is one of the options listed below.
|
|
count is a single numeric value and is the number of elements
|
|
in the following arrays.
|
|
name$ is an array of string values.
|
|
type$ is an array of string values.
|
|
values is an array of numeric values.
|
|
|
|
Values of arg:
|
|
|
|
elt_name returns total number of moles of element in system.
|
|
count is the number of species for the element in
|
|
the system, including aqueous, exchange, surface,
|
|
equilibrium_phase, solid solution component, and
|
|
gas phase "species".
|
|
Arrays are filled for each "species"; values are moles.
|
|
"elements" returns total number of moles of all elements,
|
|
valence states, exchangers, and surfaces.
|
|
count is number of elements, valence states,
|
|
exchangers, and surfaces.
|
|
Arrays are filled for each element, valence state,
|
|
exchanger, and surface; values are moles.
|
|
"phases" returns maximum saturation index of all phases.
|
|
count is number of phases in system.
|
|
Arrays are filled for each phase; values are
|
|
saturation indexes.
|
|
"aq" returns sum of moles of all aqueous species.
|
|
count is number of aqueous species in system.
|
|
Arrays are filled with each aqueous species;
|
|
values are moles.
|
|
"ex" returns sum of moles of all exchange species.
|
|
count is number of exchange species in system.
|
|
Arrays are filled with each exchange species;
|
|
values are moles.
|
|
"surf" returns sum of moles of all surface species.
|
|
count is number of surface species in system.
|
|
Arrays are filled with each surface species;
|
|
values are moles.
|
|
"surf" returns sum of moles of all solid solution components.
|
|
count is number of solid solution components in system.
|
|
Arrays are filled with each solid solution component;
|
|
values are moles.
|
|
"gas" returns sum of moles of all gas components.
|
|
count is number of gas components in system.
|
|
Arrays are filled with each gas component;
|
|
values are moles.
|
|
|
|
Added new Basic function, DESCRIPTION, that has the value
|
|
defined for the description field of the SOLUTION keyword line.
|
|
|
|
Added alternative ordinary differential equation solver
|
|
called CVODE, a set of C routines from the Lawrence
|
|
Livermore National Labs. CVODE is part of the SUNDIALS
|
|
package. CVODE is used in place of the Runge Kutta method
|
|
when "-cvode true" is used within a KINETICS data block.
|
|
|
|
KINETICS
|
|
-cvode true
|
|
|
|
Fixed error in SOLUTION_SPREAD, defining -redox
|
|
did not set the default redox for the solutions
|
|
that were defined; pe was always used as default.
|
|
|
|
Modified code to allocate space differently for
|
|
pp_assemblage, exchange, surface, gas_phase,
|
|
kinetics, and s_s_assemblage. Enough space is allocated
|
|
at beginning of distribute_initial_conditions.
|
|
May speed up phast initialization and make better
|
|
use of available memory.
|
|
|
|
Changed gfw of water to 18 if isotopes of water are
|
|
included. Solvent is [1H]2[16O].
|
|
|
|
Fixed a bug in surface integration where order of ions
|
|
in the list of g's was incorrect.
|
|
|
|
Pyrite rate was not 0 if supersaturated in phreeqc.dat
|
|
and wateq4f.dat
|
|
|
|
Segmentation error if a surface species was not
|
|
defined with an equation that contained another surface
|
|
species. In this case, the surface master species
|
|
had been redefined to be an aqueous species (SOLUTION_SPECIES).
|
|
|
|
Version 2.8 Date: Tue April 15, 2003
|
|
|
|
Updated arsenic data in wateq4f.dat to be consistent with
|
|
Archer and Nordstrom (2002).
|
|
|
|
Revised Basic interpreter to allow lines of any length
|
|
and character strings of any length.
|
|
|
|
Renumbering basic statement that included the function
|
|
SURF in PhreeqcI caused SURF to be omitted and generated
|
|
a syntax error. SURF and other functions had not been
|
|
implemented in PhreeqcI.
|
|
|
|
Fixed a bug in the Basic Interpreter. If elements of
|
|
a dimensioned variable (character or number) were used on
|
|
both sides of an equation, the result was erroneously
|
|
stored in the last element of the variable used on the
|
|
right-hand side instead of the element specified on the
|
|
left-hand side.
|
|
|
|
Using comma in some fields caused an infinite loop.
|
|
|
|
Fixed bug with SOLUTION_SPREAD, Phreeqc was not
|
|
calculating solution numbers for solution_spread
|
|
solutions without solution numbers.
|
|
|
|
Fixed bug with stagnant zone calculations. If solutions
|
|
not defined for stagnant cells, PhreeqcI crashed.
|
|
|
|
Added new state for calculations, PHAST. Previously
|
|
phast used the state TRANSPORT, which caused some
|
|
erroneous results with temperature when TRANSPORT was
|
|
used in the PHREEQC part of the calculation.
|
|
|
|
Trying to define dump file in TRANSPORT caused a file
|
|
opening error. Fixed logic so now can open a file
|
|
and the name can include blanks.
|
|
|
|
Version 2.7 Date: Fri February 14, 2003
|
|
|
|
Initialized gfw in elements structure.
|
|
|
|
Fixed bug where "time" would be wrong for initial
|
|
solution calculation. Needed to initialize
|
|
rate variables for PhreeqcI.
|
|
|
|
Added print of simulation number to error file for
|
|
phreeqci
|
|
|
|
Limited printing of cell numbers to output file in advection
|
|
calculations. Cell numbers only printed if results
|
|
for cell are going to be printed.
|
|
|
|
PhreeqcI captured status messages for kinetics, which
|
|
made a very large error file in some cases and
|
|
a long wait to view the output file in PhreeqcI.
|
|
Now PhreeqcI does not capture these intermediate
|
|
status messages.
|
|
|
|
Removed old code related to redirecting error file
|
|
|
|
|
|
Corrected error in transport where wrong time step was used
|
|
for integration.
|
|
|
|
Changes to speed up transport algorithm.
|
|
|
|
Allow file names with spaces in selected_output file name and
|
|
dump_file name.
|
|
|
|
Modifications to work with RC1 phast log file.
|
|
|
|
Allow any characters in square brackets for element name.
|
|
- and + and perhaps others caused problems before.
|
|
|
|
Fixed log molality of water in species printout, was
|
|
equal to log activity of water. Also fixed
|
|
basic function for LM.
|
|
|
|
Changed solid solution prints to print 0 if solid solution
|
|
is not present.
|
|
|
|
Fixed bug if no rate name was defined before options
|
|
in RATES.
|
|
|
|
Fixed warning on Mac compilation in fpunchf.
|
|
|
|
Fixed bug if isotopes were used but H and O isotopes
|
|
were not defined.
|
|
|
|
Fixed bug where special initial solution calculations
|
|
were done at later calculation stages.
|
|
Needed to set initial_solution_isotopes = FALSE;
|
|
|
|
Fixed problem in C++ if structure name is same as member name.
|
|
logk member of logk structure was renamed to log_k.
|
|
|
|
Added identifier -add_constant to PHASES, EXCHANGE_SPECIES,
|
|
SOLUTION_SPECIES, and SURFACE_SPECIES.
|
|
|
|
-add_constant -0.301
|
|
|
|
log K is augmented by the specified constant.
|
|
|
|
|
|
Added punch_isotopes and punch_calculate_values to allow
|
|
printing isotope ratios and any CALCULATE_VALUES result.
|
|
|
|
Added KEYWORDS:
|
|
|
|
ISOTOPES
|
|
Element
|
|
-isotope isotope_name units standard_ratio
|
|
-total_is_major T/F (OPTION IS DISABLED!!)
|
|
|
|
CALCULATE_VALUES
|
|
Name
|
|
-start
|
|
Basic statements, must have SAVE
|
|
-end
|
|
|
|
ISOTOPE_RATIOS (for printing)
|
|
Name=Calculate_values_name Isotope_name
|
|
|
|
ISOTOPE_ALPHAS (for printing)
|
|
Name=Calculate_values_name Named_logk=named_expression_name
|
|
|
|
Basic functions:
|
|
calc_value("calc_value_name") evaluates a definition of CALCULATE_VALUES
|
|
lk_named("name") log10(K) of definition in NAMED_EXPRESSIONS
|
|
lk_phase("name") log10(K) of definition in PHASES
|
|
lk_species("name") log10(K) of definition in (SOLUTION, EXCHANGE, SURFACE)_SPECIES
|
|
sum_gas("template","element") Sum of element in gases with specified template
|
|
template="{C,[13C],[14C]}{O,[18O]}2" includes all CO2 gases
|
|
sum_species("template","element") Sum of element in aqueous, exchange, and surface species with
|
|
specified template
|
|
sum_s_s("s_s_name","element") Sum of element in a specified solid solution
|
|
|
|
PRINT keyword:
|
|
-initial_isotopes T/F
|
|
-isotope_ratios T/F
|
|
-isotope_alphas T/F
|
|
-censor_species 1e-8 # Omits print of species if less than relative criterion
|
|
|
|
SELECTED_OUTPUT keyword:
|
|
-calculate_values name1 name2 ...
|
|
-isotopes minor_isotope1 minor_isotope2 ....
|
|
|
|
Added functions LK_SPECIES, LK_NAMED, LK_PHASE for Basic
|
|
interpreter. LK_SPECIES("CaHCO3+") returns the
|
|
log k for the association reaction for the ion pair
|
|
CaHCO3+ at the current temperature. The log K is
|
|
for the reaction as defined in the database or
|
|
input file. Similarly,
|
|
LK_NAMED("Log_alpha_18O_CO2(aq)/CO2(g)") returns the
|
|
value for the log K at the current temperature using
|
|
expressions defined in NAMED_LOG_K data block;
|
|
LK_PHASE("Calcite") returns the value of log K
|
|
for calcite at the current temperature for the
|
|
dissociation reaction defined in the database or
|
|
input file. Values are "log10" values.
|
|
Example for Basic program:
|
|
|
|
10 PRINT "Log10 KCalcite: ", LK_PHASE("Calcite")
|
|
20 PRINT "Log10 KCaHCO3+: ", LK_SPECIES("CaHCO3+")
|
|
30 PRINT " 1000ln(alpha): ", LK_NAMED("Log_alpha_18O_CO2(aq)/CO2(g)")*LOG(10)*1000
|
|
|
|
Added NAMED_EXPRESSIONS data block. This data block was
|
|
implemented to facilitate isotopic calculations.
|
|
It allows analytical expressions that are functions
|
|
of temperature to be defined. The purpose is to
|
|
separate the fractionation factors from the log K,
|
|
so that the fractionation factor or its temperature
|
|
dependence can be easily modified. The named
|
|
expression can be added to a log K for a species
|
|
or phase by the -add_logk identifier in SOLUTION_SPECIES
|
|
EXCHANGE_SPECIES, SURFACE_SPECIES, or PHASES data
|
|
block.
|
|
|
|
Version 2.6 Date: Mon April 22, 2002
|
|
|
|
PhreeqcI released.
|
|
|
|
All selected_output is routed through a single routine.
|
|
|
|
Allow "_" inside square brackets, [A_bcd].
|
|
|
|
Fixed bug match_elts_in_species, check for "e-" was wrong.
|
|
|
|
Modified minteq.dat to put CuS4S5-3, Cu(S4)2-3 in
|
|
in Cu(1) mole balance equations instead of
|
|
Cu(2). Before the change, the program would
|
|
not converge if Cu(2) were defined in an
|
|
initial solution.
|
|
|
|
Made revisions hopefully to improve SOLID_SOLUTIONS
|
|
convergence with small numbers of moles of
|
|
solids.
|
|
|
|
Made changes related to dump file and PhreeqcI.
|
|
|
|
Iterations now sums iterations in all kinetics calculations
|
|
|
|
Fixed bug with LA("H2O"), which was returning natural log
|
|
of activity of water.
|
|
|
|
|
|
Version 2.5 Date: Mon October 1, 2001
|
|
In llnl.dat, fixed sign errors in RRE (rare earth elements)
|
|
for some redox reactions and removed some redundant
|
|
species, generally ReeO2- was retained and Ree(OH)4-
|
|
was removed.
|
|
|
|
Added the capability to use square brackets to define an
|
|
"element" name. The brackets act like quotation marks
|
|
in that any character string can be used within the
|
|
brackets as an element name. This was introduced to
|
|
simplify expansion of the model to isotopic species.
|
|
[13C], [14C], and [18O] are legal element names.
|
|
|
|
Added identifier -activity_water for a species in
|
|
SOLUTION_SPECIES data block. This identifier has been
|
|
added for future updates that will allow isotopic
|
|
calculations. It is intended to be used only for
|
|
isotopic variations of H2O, like D2O or H2[O18]. It
|
|
forces the activity coefficient for the species to be
|
|
activity(water)/55.5. This effectively sets the activity
|
|
of the species to the mole fraction in solution.
|
|
|
|
Fixed bug in checking solid solutions for presence or
|
|
absence of elements in the system. Programming
|
|
error caused segmentation fault if an error
|
|
was detected under certain conditions.
|
|
|
|
Changed return value of MOL to be molality of water
|
|
if argument is "H2O". Also changed return value
|
|
of LA to be activity of water if argument is
|
|
"H2O".
|
|
|
|
Diffuse layer calculation was incorrect if aqueous phase did not
|
|
have 1 kilogram of water. Eq. 74 of manual has molality,
|
|
but code used moles. The code was corrected by adding
|
|
the mass of water to the formulation.
|
|
|
|
Stagnant zones with first-order exchange approximation (1 stagnant
|
|
cell, exchange factor, and porosities defined) did not work
|
|
correctly if mobile and immobile cells did not have equal
|
|
volumes of water. The mixing factors were revised to account
|
|
for the masses of water in the stagnant and mobile zones.
|
|
|
|
A fatal error was erroneously detected if the database file
|
|
had a DATABASE data block. DATABASE data block is
|
|
now ignored while reading the database file.
|
|
|
|
Added identifier -bad_step_max to KINETICS data block.
|
|
An integer following -bad_step_max gives the maximum number
|
|
of times a rate integration may fail before execution of the
|
|
program is terminated. Default is 500.
|
|
|
|
Version 2.4.2: Date: Fri June 15, 2001
|
|
Fixed spreadsheet bug. Program was not ignoring columns
|
|
that could not be identified as either element
|
|
names or allowed data (ph, pe, number, description,
|
|
etc). Also, the program failed if a spreadsheet solution
|
|
number was negative.
|
|
|
|
Version 2.4.1: Date: Mon June 4, 2001
|
|
Fixed spreadsheet bugs with isotopes.
|
|
|
|
Version 2.4: Date: Fri June 1, 2001
|
|
|
|
Added structure for spreadsheet for use by PhreeqcI.
|
|
|
|
Isotope value initialized incorrectly if only an -uncertainty was
|
|
defined in SOLUTION_SPREAD.
|
|
|
|
Fixed segmentation violation when primary and secondary master
|
|
species were defined improperly.
|
|
|
|
Corrected enthalpies of reaction in llnl.dat. Previous release had
|
|
erroneously had enthalpies of formation in -delta_H
|
|
parameter; the values should be enthalpies of reaction.
|
|
Enthalpies of reaction were calculated from the
|
|
enthalpies of formation and these values are now included
|
|
in the -delta_H parameter. This change will have very
|
|
little impact on calculations because the analytical
|
|
expression has precedence over -delta_H in calculating
|
|
temperature dependence of log K, and nearly all species
|
|
and minerals have an analytical expression or lack both
|
|
an analytical expression and an enthalpy of reaction.
|
|
|
|
Corrected bugs in punch of solid solution components that caused
|
|
both selected output and output file errors: moles
|
|
were incorrect in selected output, and total moles and
|
|
mole fraction were incorrect in output file.
|
|
|
|
Added surface complexation constants for Fe+2; two complexes for
|
|
weak sites and one complex for strong sites. phreeqc.dat
|
|
and wateq4f.dat modified.
|
|
|
|
Comment for units of parameters for calcite rate equation was
|
|
wrong. Rate equation now uses cm^2/L for area parameter.
|
|
Previously the correct units would have been 1/decimeter.
|
|
phreeqc.dat and wateq4f.dat modified.
|
|
|
|
Fixed a bug when rates were equal within tolerance, but negative
|
|
concentrations occurred because of small initial
|
|
concentrations.
|
|
|
|
Added -warnings to PRINT keyword for specification of maximum
|
|
number of warnings to print. Negative number allows
|
|
all warnings to be printed.
|
|
|
|
Function CELL_NO in Basic now prints a number equivalent to
|
|
-solution in SELECTED_OUTPUT data block. This does not
|
|
change printing for ADVECTION or TRANSPORT calculations.
|
|
|
|
Kinetics time is halved for advective part of reaction in
|
|
transport; time incorrectly accounted for before.
|
|
|
|
-punch_ identifiers printed -1 instead of the correct solution
|
|
number for batch-reaction calculations.
|
|
|
|
-high_precision is no longer reset to false with every
|
|
SELECTED_OUTPUT data block.
|
|
|
|
SELECTED_OUTPUT file name stored for use by PhreeqcI.
|
|
|
|
Alkalinity for NH3 corrected to 1.0 in llnl.dat.
|
|
|
|
Fixed bug with USER_PRINT of kinetics. Did not find correct
|
|
kinetics information in some cases.
|
|
|
|
Fixed bug in default values for SOLUTION_SPREAD. Cannot use phase
|
|
name and SI for pH or pe, and bug did not allow PHREEQC
|
|
to run. Now PHREEQC runs, but warns that this is not
|
|
allowed.
|
|
|
|
Version 2.3: Date: Tue January 2, 2001
|
|
|
|
Added new keyword DATABASE. It must be the first keyword in
|
|
the input file. The character string following the
|
|
keyword is the pathname for the database file to
|
|
be used in the calculation. The file that is
|
|
specified takes precedence over any default
|
|
database name, including environmental variable
|
|
PHREEQC_DATABASE and command line arguments.
|
|
|
|
Fixed bug in SOLUTION_SPREAD. If first heading in
|
|
the spread-sheet input was an identifier--pH,
|
|
pe, units, etc--then the headings were interpreted
|
|
as an identifier and bad things happened.
|
|
|
|
Added new keyword to make aqueous model similar to
|
|
LLNL and Geochemists Workbench when using
|
|
llnl.dat as the database file. Values
|
|
of Debye-Huckel a and b and bdot (ionic strength
|
|
coefficient) are read at fixed temperatures.
|
|
Linear interpolation occurs between temperatures.
|
|
|
|
New options for SOLUTION_SPECIES are
|
|
-llnl_gamma a , where a is the ion-size parameter.
|
|
-co2_llnl_gamma , indicates the temperature dependent
|
|
function for the bdot term given in
|
|
-co2_coefs of LLNL_AQUEOUS_MODEL_PARAMETERS
|
|
will be used. Applies to uncharged
|
|
species only.
|
|
|
|
LLNL_AQUEOUS_MODEL_PARAMETERS
|
|
-temperatures
|
|
0.0100 25.0000 60.0000 100.0000
|
|
150.0000 200.0000 250.0000 300.0000
|
|
#debye huckel a (adh)
|
|
-dh_a
|
|
0.4939 0.5114 0.5465 0.5995
|
|
0.6855 0.7994 0.9593 1.2180
|
|
#debye huckel b (bdh)
|
|
-dh_b
|
|
0.3253 0.3288 0.3346 0.3421
|
|
0.3525 0.3639 0.3766 0.3925
|
|
-bdot
|
|
0.0394 0.0410 0.0438 0.0460
|
|
0.0470 0.0470 0.0340 0.0000
|
|
#cco2 (coefficients for the Drummond (1981) polynomial)
|
|
-co2_coefs
|
|
-1.0312 0.0012806
|
|
255.9 0.4445
|
|
-0.001606
|
|
|
|
|
|
Fixed bug in basic interpreter. A number like "..524" would
|
|
cause an infinite loop.
|
|
|
|
Added function SURF to Basic.
|
|
SURF("element", "surface") gives the amount of
|
|
element sorbed on "surface". "surface"
|
|
should be the surface name, not the
|
|
surface-site name (that is, no underscore).
|
|
|
|
Fixed option to "runge_kutta" from "runge-kutta" to match
|
|
documentation for KINETICS.
|
|
|
|
Fixed UO2+2 and Mn+2 reaction stoichiometry for Hfo surface complexation
|
|
in wateq4f.dat.
|
|
|
|
Added option for an equilibrium-phase to dissolve only.
|
|
"dis" is added at the end of a line defining an equilibrium-
|
|
phase. No data fields may be omitted. Should not
|
|
be used when adding an alternative reaction.
|
|
Example:
|
|
EQUILIBRIUM_PHASES
|
|
Dolomite 0.0 0.001 dis
|
|
R-K integration failed when only the final rate generated
|
|
negative concentrations.
|
|
Allow decimals in definition of secondary master species, for
|
|
example S(0.3).
|
|
Fixed bug if description was more than about 85 characters;
|
|
now allows about 400 characters.
|
|
Fixed bug for surface/exchange sites related to phases. Was
|
|
checking internal copies of surfaces/exchange with negative
|
|
numbers.
|
|
Fixed bug in quick prep that did not set the correct pointer
|
|
for gas phases.
|
|
Fixed segmentation fault that occurred if all elements for
|
|
phase-boundary mineral were not in the solution.
|
|
Only applied to a phase used to define concentration
|
|
in an initial solution calculation.
|
|
Added option to eliminate echo of input file in PRINT
|
|
data block. -echo_input T/F turns echoing on
|
|
and off. Default is on.
|
|
|
|
|
|
Release 2.2: Date: Wed March 1, 2000
|
|
|
|
Fixed bug in MIX if no solutions are defined.
|
|
Changed printout for surface.
|
|
Only gives net surface charge for diffuse layer
|
|
calculation.
|
|
Prints correct value for the surface charge and
|
|
surface charge density for diffuse-layer
|
|
calculation.
|
|
|
|
Added function EDL to Basic.
|
|
EDL("element", "surface") gives the amount of
|
|
element in the diffuse layer for "surface".
|
|
not including sorbed species. "surface" should
|
|
be the surface name, not the surface-site name
|
|
(that is, no underscore).
|
|
|
|
Special values for "element" include:
|
|
"charge" - gives surface charge, equivalents.
|
|
"sigma" - surface charge density, C/m**2.
|
|
"psi" - potential at the surface, Volts.
|
|
"water" - mass of water in the diffuse layer, kg.
|
|
Changed distribution to be more consistent with other USGS
|
|
water-resources applications.
|
|
|
|
Release 2.1: Date: Wed January 19, 2000
|
|
|
|
Added additional #ifdef's for PhreeqcI.
|
|
Fixed problem with formats for USER_PUNCH and
|
|
others with Microsoft C++ 3 digit
|
|
exponents.
|
|
|
|
Initial Release 2.0: Date: Wed December 15, 1999
|
|
|
|
Version: C_54 = Version 2.0
|
|
|