mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-13 07:08:23 +01:00
431 lines
16 KiB
Plaintext
431 lines
16 KiB
Plaintext
README
|
|
|
|
IPhreeqc--Modules Based on the Geochemical Model PHREEQC for Use
|
|
in Scripting and Programming Languages
|
|
|
|
This file describes how to compile the IPhreeqc library and use
|
|
it in C++, C, and Fortran programs. The library may be compiled
|
|
after generating either a Visual Studio solution for Windows with
|
|
CMake or a Makefile for Linux with configure. All source and
|
|
compilation-related files are available at the following web site:
|
|
|
|
http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/index.html.
|
|
|
|
-----------------------------------------------------------------------------------
|
|
TABLE OF CONTENTS
|
|
-----------------------------------------------------------------------------------
|
|
|
|
A. Distribution file
|
|
B. Documentation
|
|
C. Installing Windows COM versions
|
|
D. Downloading and unzipping the distribution file
|
|
E. Linux compiling, testing, and installing the IPhreeqc library
|
|
F. Windows compiling, testing, and installing the IPhreeqc library
|
|
G. Using the library
|
|
H. Contacts
|
|
|
|
-----------------------------------------------------------------------------------
|
|
A. Distribution file
|
|
-----------------------------------------------------------------------------------
|
|
|
|
The following distribution packages (containing the software,
|
|
compilation-related files, and an advection example in
|
|
C++, C, and Fortran) are available for Linux and Windows:
|
|
|
|
IPhreeqcCOM-@VERSION@-@REVISION@-win32.msi Windows
|
|
IPhreeqcCOM-@VERSION@-@REVISION@-x64.msi Windows
|
|
iphreeqc-@VERSION@-@REVISION@.zip Windows
|
|
iphreeqc-@VERSION@-@REVISION@.tar.gz Linux
|
|
|
|
-----------------------------------------------------------------------------------
|
|
B. Documentation
|
|
-----------------------------------------------------------------------------------
|
|
|
|
Descriptions and examples of IPhreeqc methods for C++, C, and Fortran
|
|
are available in HTML format in the doc directory of the distribution.
|
|
|
|
Charlton, S.R., and Parkhurst, D.L., 2011, Modules based on the geochemical model
|
|
PHREEQC for use in scripting and programming languages: Computers & Geosciences,
|
|
vol. 37, no. 10, p. 1653-1663.
|
|
|
|
*The following two user's guides are available in electronic format. Portable
|
|
Document Format (PDF) files are included in the doc subdirectory of all
|
|
PHREEQC program distributions.
|
|
|
|
Parkhurst, D.L., and Appelo, C.A.J., 2013, Description of input and examples
|
|
for PHREEQC version 3--A computer program for speciation, batch-reaction,
|
|
one- dimensional transport, and inverse geochemical calculations: U.S.
|
|
Geological Survey Techniques and Methods, book 6, chap. A43, 497 p.
|
|
http://pubs.usgs.gov/tm/06/a43/.
|
|
|
|
Parkhurst, D.L., and Appelo, C.A.J., 1999, User's guide to PHREEQC (Version
|
|
2)-- A computer program for speciation, batch-reaction, one-dimensional
|
|
transport, and inverse geochemical calculations: U.S. Geological Survey
|
|
Water-Resources Investigations Report 99-4259, 312 p.
|
|
http://pubs.er.usgs.gov/publication/wri994259.
|
|
|
|
*The following two reports document the theory and implementation of
|
|
isotopes in PHREEQC. Portable Document Format (PDF) of Thorstenson and
|
|
Parkhurst (2002) is included in the doc subdirectory of the PHREEQC program
|
|
distribution.
|
|
|
|
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.
|
|
http://pubs.er.usgs.gov/publication/wri024172.
|
|
|
|
Thorstenson, D.C., and Parkhurst, D.L., 2004, Calculation of individual isotope
|
|
equilibrium constants for geochemical reactions: Geochimica et Cosmochimica
|
|
Acta, v. 68, no. 11, p. 2449-2465.
|
|
|
|
*Brief description of the program PhreeqcI.
|
|
|
|
Charlton, S.R., and Parkhurst, D.L., 2002, PhreeqcI--A graphical user interface
|
|
to the geochemical model PHREEQC: U.S. Geological Survey Fact Sheet
|
|
FS-031-02, 2 p.
|
|
|
|
-----------------------------------------------------------------------------------
|
|
C. Installing Windows COM versions
|
|
-----------------------------------------------------------------------------------
|
|
|
|
For 64-bit computers, download both 32- and 64-bit versions:
|
|
|
|
IPhreeqcCOM-@VERSION@-@REVISION@-win32.msi
|
|
IPhreeqcCOM-@VERSION@-@REVISION@-x64.msi
|
|
|
|
Double click on each .msi file and follow the instructions.
|
|
|
|
IPhreeqcCOM is installed and ready to use for 32- and 64-bit applications.
|
|
|
|
To test the COM, you can open the Excel file and run the "runphreeqc" macro
|
|
(view->macros):
|
|
C:\Program Files\USGS\IPhreeqcCOM 3.2.0-9755\examples\com\excel\runphreeqc.xls
|
|
|
|
-----------------------------------------------------------------------------------
|
|
D. Downloading and unzipping the distribution file
|
|
-----------------------------------------------------------------------------------
|
|
|
|
Follow the steps using gunzip, 7zip, or other compression program that can unzip a tar.gz/zip file:
|
|
|
|
Steps in extracting files Explanation
|
|
---------------------------------------- -----------------------------------
|
|
gunzip iphreeqc-@VERSION@-@REVISION@.tar.gz Uncompress the tar.gz file.
|
|
tar -xvpof iphreeqc-@VERSION@-@REVISION@.tar Extract files from the tar file.
|
|
|
|
The directory iphreeqc-@VERSION@-@REVISION@ is created when the files are
|
|
extracted; if this directory already exists, you may want to delete or rename
|
|
it before extracting the files. The following directory structure is created
|
|
(the contents of each directory are shown to the right):
|
|
|
|
iphreeqc-@VERSION@-@REVISION@ Source code and configure/CMake files
|
|
./config More configure files
|
|
./database Database files for PHREEQC
|
|
./doc Documentation files
|
|
./examples Advection example for Fortran, C++, and C
|
|
./src Source code for IPhreeqc
|
|
./tests Tests that check that C++, C, and Fortran(optional)
|
|
are able to compile, link and run.
|
|
|
|
Note: A compiled executable is not included in the distribution.
|
|
|
|
-----------------------------------------------------------------------------------
|
|
E. Linux compiling, testing, and installing the IPhreeqc library
|
|
-----------------------------------------------------------------------------------
|
|
|
|
In general, to compile the software, you will need:
|
|
|
|
(a) a C++ compiler, and
|
|
(b) knowledge of configure, Make,
|
|
the compiler, and the Linux operating system.
|
|
|
|
A Makefile is generated by configure, and the Makefile is used to
|
|
compile, test, and install the software.
|
|
|
|
E.1. Change directory to the directory that was extracted from the tar file.
|
|
|
|
cd iphreeqc-@VERSION@-@REVISION@
|
|
|
|
E.2. Make a directory, for example, build.
|
|
|
|
mkdir build
|
|
|
|
E.3. Change directory to build.
|
|
|
|
cd build
|
|
|
|
E.4. Run configure
|
|
|
|
Many of the options for configure can be seen by typing:
|
|
|
|
../configure --help
|
|
|
|
Most common options:
|
|
--prefix=dir specifies the directory for installation of the
|
|
library. Default is /usr/local, $HOME would install
|
|
to your home directory.
|
|
--enable-fortran-test=yes specifies that you do want to include the Fortran test
|
|
files during "make check", which compiles, links, and runs programs
|
|
that use IPhreeqc.
|
|
|
|
Run configure as follows:
|
|
|
|
../configure [options]
|
|
|
|
E.5. Compile the IPhreeqc library
|
|
|
|
make [-j 4]
|
|
|
|
Optionally, use -j n--where n is the number of compilations make runs in parallel.
|
|
|
|
E.6. Compile and run the test cases. The files in the directory tests are compiled
|
|
and linked to the IPhreeqc library. The Fortran files are optionally included
|
|
(--enable-fortran-test configure option).
|
|
|
|
make check
|
|
|
|
E.7. Install the IPhreeqc library. By default the program is installed in /usr/local/bin
|
|
and /usr/local/share/doc/iphreeqc. Alternatively, the directory defined by --prefix
|
|
in the configure command is used.
|
|
|
|
make install
|
|
|
|
The locations of various files are given for default installation (no
|
|
--prefix definition).
|
|
|
|
Libraries:
|
|
/usr/local/lib/libiphreeqc.a (Static library)
|
|
/usr/local/lib/libiphreeqc.so (Shared object library)
|
|
/usr/local/lib/libiphreeqc.la (libtool library file)
|
|
|
|
Include files:
|
|
C++ and C headers for user's code:
|
|
/usr/local/include/IPhreeqc.h (C header)
|
|
/usr/local/include/IPhreeqc.hpp (C++ header)
|
|
|
|
Optionally, user's code may need one or more of the following:
|
|
/usr/local/include/Var.h
|
|
/usr/local/include/IPhreeqcCallbacks.h
|
|
/usr/local/include/Keywords.h
|
|
/usr/local/include/PHRQ_io.h
|
|
|
|
Documentation:
|
|
/usr/local/share/doc/iphreeqc/IPhreeqc.pdf
|
|
/usr/local/share/doc/iphreeqc/html/index.html (IPhreeqc API)
|
|
/usr/local/share/doc/iphreeqc/RELEASE (Release notes)
|
|
/usr/local/share/doc/iphreeqc/README (this readme file)
|
|
/usr/local/share/doc/iphreeqc/NOTICE (User rights notice)
|
|
|
|
Databases:
|
|
/usr/local/share/doc/iphreeqc/database
|
|
Amm.dat
|
|
ColdChem.dat
|
|
core10.dat
|
|
frezchem.dat
|
|
iso.dat
|
|
llnl.dat
|
|
minteq.dat
|
|
minteq.v4.dat
|
|
phreeqc.dat
|
|
pitzer.dat
|
|
sit.dat
|
|
stimela.dat
|
|
Tipping_Hurley.dat
|
|
wateq4f.dat
|
|
|
|
Advection example for Fortran, C++, and C:
|
|
/usr/local/share/doc/iphreeqc/examples
|
|
|
|
Fortran interface
|
|
/usr/local/share/doc/iphreeqc/src/IPhreeqc_interface.F90
|
|
|
|
|
|
-----------------------------------------------------------------------------------
|
|
F. Windows compiling, testing, and installing the IPhreeqc library
|
|
-----------------------------------------------------------------------------------
|
|
|
|
In general, to compile the IPhreeqc library, you will need:
|
|
|
|
(a) CMake (build process manager)
|
|
(b) a C++ compiler,
|
|
(c) familiarity with the compiler and the Windows operating system.
|
|
|
|
F.1. Download and install CMake
|
|
|
|
CMake can be downloaded from http://www.cmake.org/. If you download
|
|
the executable, CMake is installed when you execute it.
|
|
|
|
F.2 Generate a Visual Studio solution
|
|
|
|
CMake has many options other than Visual Studio, but here we assume
|
|
that you are using some version of Visual Studio. On the first use
|
|
of CMake, it may be necessary to close all Visual Studio instances.
|
|
|
|
Open CMake. Fill in the top two lines.
|
|
Where is the source code:
|
|
The top level directory (ie c:/iphreeqc-@VERSION@-@REVISION@).
|
|
Where to build the binaries:
|
|
A new directory. It is suggested that the name
|
|
of the directory include the characteristics of
|
|
the library that is built, including the VS
|
|
version, 32/64 bit, dll/lib.
|
|
for example, vs2012_64_dll.
|
|
|
|
Click Configure. From the pulldown menu select the 64-bit version
|
|
for your Visual Studio. Normally, the default radio button should
|
|
be sufficient. Click Finish.
|
|
|
|
Options in the top panel:
|
|
(1) BUILD_SHARED_LIBS--If checked, .dll files will be
|
|
created. If not checked, a .lib file will be created.
|
|
Note that .dll files have a .lib file associated with them,
|
|
but it is not the same .lib generated when
|
|
BUILD_SHARED_LIBS is not checked.
|
|
(2) CMAKE_INSTALL_PREFIX--Sets the the install directory where the
|
|
library and header files will be saved. It is suggested that
|
|
an INSTALL directory be defined inside the directory chosen
|
|
for the binaries.
|
|
(3) BUILD_CLR_LIBS--If checked, will compile the CLR version of the
|
|
library. This will enable the charting capabilities of
|
|
phreeqc through the use of Zedgraph. This option is only
|
|
available if BUILD_SHARED_LIBS is checked.
|
|
(4) IPHREEQC_ENABLE_MODULE--Uncheck if you want to
|
|
use the deprecated (old-style) include file (IPhreeqc.f90.inc
|
|
or IPhreeqc.f.inc) to define IPhreeqc in Fortran files.
|
|
Leave checked to use IPhreeqc as a Fortran module (USE IPhreeqc),
|
|
which is recommended. Leave checked if not using Fortran.
|
|
(5) IPHREEQC_FORTRAN_TESTING--Sets whether the test calculations
|
|
(tests directory) will include Fortran test files. A Fortran
|
|
compiler is required.
|
|
|
|
Click Configure until the screen is not red. If the screen remains
|
|
red, you will have to deal with the CMake error messages.
|
|
|
|
Click Generate.
|
|
|
|
You should now have a Visual Studio solution file (.sln) in the
|
|
directory chosen for the binaries (second line of CMake screen).
|
|
At any point, you can delete the contents of the directory and
|
|
start over. You can make solutions for different Visual Studios,
|
|
or different options in other directories.
|
|
|
|
F.3. Compile and install IPhreeqc
|
|
|
|
Open the Visual Studio solution in the build directory defined in CMake.
|
|
|
|
The default configuration is "Debug". If you want a release libraries
|
|
(or dlls) and examples, change the configuration to "Release".
|
|
|
|
Build ALL_BUILD. IPhreeqc is compiled.
|
|
|
|
Build RUN_TESTS. Programs that test IPhreeqc are compiled and run,
|
|
and optionally (CMake IPHREEQC_FORTRAN_TESTING option) the Fortran test
|
|
project.
|
|
|
|
|
|
Build INSTALL. The libraries, header files, Fortran module source
|
|
files, phreeqc database files, and documentation are installed in the
|
|
install directory selected in CMake.
|
|
|
|
Install\library directory (lib or dll) may include:
|
|
IPhreeqc.lib (Release)
|
|
IPhreeqcd.lib (Debug)
|
|
IPhreeqcmsr.lib (MinSizeRel)
|
|
IPhreeqcrwdi.lib (RelWithDebInfo)
|
|
IPhreeqc.dll (Release Shared)
|
|
IPhreeqcd.dll (Debug Shared)
|
|
IPhreeqcmsr.dll (MinSizeRel Shared)
|
|
IPhreeqcrwdi.dll (RelWithDebInfo Shared)
|
|
ZedGraph.dll (CLR/Charting)
|
|
|
|
Install\include files:
|
|
C++ and C headers for user's code:
|
|
IPhreeqc.hpp (C++ header)
|
|
IPhreeqc.h (C header)
|
|
|
|
Optionally, you may need one or more of the following:
|
|
Var.h
|
|
IPhreeqcCallbacks.h
|
|
Keywords.h
|
|
PHRQ_io.h
|
|
|
|
Install\src files:
|
|
To use IPhreeqc in Fortran:
|
|
IPhreeqc_interface.F90
|
|
|
|
Install\Database files:
|
|
Amm.dat
|
|
frezchem.dat
|
|
iso.dat
|
|
llnl.dat
|
|
minteq.dat
|
|
minteq.v4.dat
|
|
phreeqc.dat
|
|
pitzer.dat
|
|
sit.dat
|
|
stimela.dat
|
|
wateq4f.dat
|
|
|
|
Install\doc files:
|
|
IPhreeqc.pdf IPhreeqc journal article
|
|
html\index.html IPhreeqc API documentation
|
|
NOTICE User rights notice
|
|
README This readme file
|
|
RELEASE Release notes
|
|
|
|
Install\examples files:
|
|
c, cpp, fortran Advection example
|
|
|
|
|
|
Note: In order to use the CLR version (Charting) the Zedgraph.dll file
|
|
must be registered either by installing the Phreeqc or the PhreeqcI MSI,
|
|
or through the use of the Visual Studio Tool gacutil.
|
|
|
|
-----------------------------------------------------------------------------------
|
|
G. Using the library
|
|
-----------------------------------------------------------------------------------
|
|
|
|
G.1. C++
|
|
|
|
In C++, you will include the IPhreeqc.hpp header file and
|
|
create an IPhreeqc instance:
|
|
|
|
#include "IPhreeqc.hpp"
|
|
IPhreeqc iphreeqc;
|
|
|
|
or
|
|
|
|
IPhreeqc *iphreeqc = new IPhreeqc();
|
|
|
|
You will need to link to the IPhreeqc.lib that you installed.
|
|
|
|
G.2. C
|
|
|
|
In C, you will include the C interface header, IPhreeqc.h, and
|
|
create an IPhreeqc instance.
|
|
|
|
#include "IPhreeqc.h"
|
|
int id;
|
|
id = CreateIPhreeqc();
|
|
|
|
You will need to link to the IPhreeqc.lib that you installed.
|
|
|
|
G.3. Fortran
|
|
|
|
In Fortran, you will need to include the source file IPhreeqc_interface.F90
|
|
in your project files. This file defines the IPhreeqc Fortran module.
|
|
|
|
USE IPhreeqc
|
|
INTEGER(KIND=4) id
|
|
id = CreateIPhreeqc()
|
|
|
|
You will need to link to the IPhreeqc.lib that you installed.
|
|
|
|
-----------------------------------------------------------------------------------
|
|
H. CONTACTS
|
|
-----------------------------------------------------------------------------------
|
|
|
|
Inquiries about this software distribution should be directed to:
|
|
|
|
e-mail: h2osoft@usgs.gov or dlpark@usgs.gov
|
|
|