In this paper, we introduce a software environment, MINEQL+, which is designed to address human interaction and data management issues in CE modeling.
Conput., Entim. Printed
in the
and Man
Systems, Vol. 16. pp. 65-76,1992
USA. All rights reserved.
0198-9716/92$6.00 + .OO CopyrQht 0 1992 Pergamon Press pk
MCNEIL+: A SOFTWARE ENVIRONMENT FOR CHEMICAL EQUILIBRIUM MODELfNG
Environmental Research Software, Edgewater, MD Drew C. McAvoy The Procter & Gamble Co., Ciffciffnati, OH
ABSTRACT. Water q~li~ issues are essential to environing pohcy at all Zevels of government. Zn order to better understand the chemistry of aquatic systems, ~omputat~o~l models have been developed that calculate the chemical equilibrium (CE) behavior of chemical constituents in solution. These models have considerable potential as tools in studying grouna’water geochemistry, aquatic toxicology, or water and waste water engineering. Although numerically advanced, these models are typically poor with respect to human interaction and data management issues. In this paper, the process of CE modeling is examined within the context of devefoping data management and modeling environment sofnoare. We explore the issues of so~are exten~bili~ and ~Iari~adon, user interface, dynamic editing, and data ~nagement as a means of developing sofiare that allows better use and learning of CE ~deling. MZNEQL+ is a CE modeling environment that employs these sofnvare qualities. As an integrated environment, MINE&L+ represents a new direction in CE- research by building on a solid numerical structure while emphasizing ease of model use.
INTRODUCTION
In the past two decades, sizable resources have been allocated for the assessment of water quality as a means of addressing concerns of environmental protection and human health. For instance, in 1980, Congress mandated the National Acid Precipitation Assessment Program (NAPAP) as a means of characterizing the chemistry of surface waters in the United States (Kaufmann et al., 1988). The program was administered under the U.S. Environmental Protection Agency and sampled over 1,700 lakes (Linthurst et al., 1986) and over 400 streams (Sale et al., 1988) and represented the largest single survey of surface water chemistry in U.S. This work has been developed through the funding of the Procter & Gamble Co., Cincinnati, OH. We would like to thank John Westall and Charles Driscoli for their assistance in testing MINEQL+. This paper contains some of the material presented by the. author in “Computational Aspects of Data Envelopment Analysis” at the Conference on New Uses of DEA in Management in Austin, TX, September 2%29,1989. Requests for reprints should bc sent to William D. Schecher, Environmental Research Software, 110 Virginia Avenue, Edgewater, MD 21037. 65
66
W. D. Schecher and D. C. McAvoy
history. The magnitude of this program serves to illustrate the importance and priority of water quality issues from a legislative position. As the penalties of environmental laws become more severe and the cost of control technologies becomes more expensive, the need for data management and modeling tools has become more apparent. The field of chemical equilibrium (CE) research is directed toward the development of models that aid in characterizing and understanding the chemistry of aquatic systems. These models predict how chemicals interact in solution and stress thermodynamic properties (i.e., equilibrium constants, Gibbs Free Energy, enthalpy) as a means of calculating these interactions. Chemicals in an aquatic system can interact to form new dissolved complexes (or species) or precipitate to form solids. This information is important in a wide range of environmental fields such as the study of geological interactions with groundwater (e.g., Swallow, Hume, & Morel, 1980; Theis & Richter, 1980), the examination of the toxicological effects on aquatic biota (e.g., Schecher & Driscoll, 1985; Driscoll, Baker, Bisogni, & Schofield, 1980), or the calculation of various water quality parameters in water and waste water engineering (e.g., Driscoll & Letterman, 1988). In the past 20 years, most of the emphasis in CE modeling has centered on the development and improvement of numerical programs. Two classes of models are available: (a) those that solve problems using equilibrium constants (REDEQL, Morel & Morgan, 1972; MINEQL, Westall, Zachary, & Morel, 1976; MINTEQ-Al, Brown & Allison, 1987) and (b) those that solve problems through minimization of Gibbs Free Energy (WATEQ, Truesdell & Jones, 1974; WATEQ2, Ball, Jenne, & Norstrom, 1979; WATEQ3, Ball, Jenne, & Cantrel, 1981). Both methods are functionally equivalent (Van Zeggeren & Storey, 1970) and the selection of one approach over the other is usually arbitrary. Despite the benefits that CE models offer to environmental research, their potential as a research tool has not been fully met. This is due, in part, to the fact that little importance has been placed on how researchers interact with these programs. Most of the computer models rely on obsolete methods for input and output and have not kept pace with advances in computer hardware. As a result, learning CE concepts and processing large environmental data sets has been made more difficult than it needs to be. In this paper, we introduce a software environment, MINEQL+, which is designed to address human interaction and data management issues in CE modeling. Currently, one difficulty in coordinating environmental modeling efforts is that models are often redeveloped from scratch. This is due to the fact that the conceptual principles in various models are not usually apparent and that data format requirements vary between different models. In MINEQL+, we address these issues by providing a uniform platform for CE modeling. MINEQL+ is an integrated modeling environment that uses the numerical program MINEQL (Westall et al., 1976) to drive all underlying calculations. A new direction in CE research is established with MINEQL+ since it places emphasis on both modeling within a software environment, as well as fundamental numerical procedures. The result is that MINEQL+ is significantly better than existing methods with respect to data entry, problem visualization, and output management. For the remainder of this paper, we will provide an overview of analytical issues in CE research and discuss the properties that comprise a good software environment within the context of CE modeling. In addition, we will illustrate the implementation of these principles with MINEQL+ and make suggestions for future research.
AN OVERVIEW OF CHEMICAL EQUILIBRIUM MODELING All CE programs require that three questions be answered at the input phase of modeling: (a) What chemicals (or components) are present in the system, (b) What is the total concentration of each chemical (or component), and (c) How do they interact qualitatively (form species)? It is the goal of the CE program to calculate the quantitative distribution of chemical species in
MINEQL+: A Software Environment for Chemical Equilibrium Modeling
67
the system. Questions 1 and 2 must be answered by the user, while question 3 is often resolved through a search of the database of thermodynamic values that accompanies most programs. Although these questions are fundamental to the successful use of any CE program, the process of modeling actually exists on three different levels: (a) modeling of first principles, (b) secondary and conceptual modeling, and (c) systems modeling. We will discuss each level in turn.
Level 1: Modeling of First Principles At this level, numerical programs are developed to calculate mass action/mass balance and possibly electroneutrality (sum of cations = sum of anions) conditions. Variability among models at this level is generally small. MINEQL is typical of the schemes used in solving mass action/mass balance problems and is summarized as: 1. All thermodynamic data (stoichiometric coefficients, equilibrium constants, enthalpy values) are organized into table form (Figure 1). Each row in the table corresponds to the information needed (mass action equations) to make a particular chemical species (complexes, solids, etc.). Each column refers to the mass balance expression for every component. 2. All mass balance expressions are essentially a series of nonlinear polynomials. Since the total concentration of each component is known at input, the problem can be solved iteratively (e.g., using a multi-dimensional Newton-Raphson technique).
Level 2: Secondary and Conceptual Modeling This level considers the addition of new model features such as: surface complexation models, corrections for temperature and ionic strength, methods for calculation of pH and conduc-
LOG K
CHEMICAL SPECIES
I
I
TOTAL
FIGURE
1. Conceptual
Layout
Chemkal Equlllbrlum Problem.
I
I
I
I
I
of Data within the Numerical Program, MINEQL, for a Generic
W. D. Schechef and D. C. McAvoy
tivity. Often there is more than one single method that can be used at this level. For instance, surface complexation models vary greatly in their conceptual reasoning and may be appropriate for some chemical systems and not others. In both Level 1 and 2 modeling, the use of a programming language is required. Level 3: Systems Modeling This level of modeling defines a chemical system through database modeling. This process involves the alteration of thermodynamic data and the insertion or deletion of chemical species in a database or problem set. It is at this level that most GE model conceptualization and verification occurs. Within this hierarchy, CE -modeling is a process where models are built on the principles established in lower level models: All CE models rest on Level 1 assumptions, and Level 3 activities are contingent upon the work created in Levels 1 and 2. Most of the Level 1 modeling is replicated from one CE model to another and has not been the focus of recent research. In contrast, Level 2 modeling has been explored to a great extent in the past 20 years. Undoubtedly, this needs to continue if improvements in model concepts are to be made. For every surface complexation (Level 2) model designed in the past two decades, the greatest limitations have resided not in its conceptual structure, but in its lack of equilibrium constants. Innovations in CE research and the task of bringing CE models to solve complex environmental problems must therefore focus on Level 3 modeling. Partly this requires continued research in identifying chemical entities and determining their thermodynamic properties. However, it is clear that software tools must also be available to manage such data. Currently, the methods through which a researcher interacts with a CE model fall into three categories: {a) batch (e.g., MINEQL; Westall et al.,1976, REDEQL, Morel & Morgan, 1972) (b) teletype preprocessor (e.g., MINTEQAI, Brown & Allison, 1987), and (c) limited character-based user interface (CUI) (e.g., MICROQL, Westall, 1986). Each approach has encountered certain limitations. Batch mode consists of creating ASCII input files with a word processor and submitting jobs individually. This technique requires a good familiarity with the model and is not well suited for easy learning. In a response to batch methods, the teletype preprocessor method uses a linear question and answer technique to compile input data for runs. In this case, the term “linear” refers to the direct prompting of questions on a screen without the use of menus or screen forms. This method is usually easier than batch methods for beginners because no knowledge of FORTRAN formatted input is required, and each CE issue is addressed prior to c~culation. However, these systems tend to be ~orgiv~g and can be tedious to use when mistakes are made. Finally, a CUI consists of using spatial menus and screen fonns to facilitate data entry. MINEQL+ incorporates various CUI techniques as part of its integrated environment. However, previous attempts at utilizing CUI methods have had limited success since they have never been incorporated into a true modeling environment (i.e., one which includes a full thermodynamic database and software features as discussed in the next section). The CUI method has been used primarily in classroom settings. SOFTWARE
ENVIRONMENT ISSUES IN CHEMICAL EQUILIBRIUM MODELING
For our purposes, a modeling enviro~ent refers to a set of software facilities designed to help users perform CE calculations. It is implicit that these facilities exist within an integrated environment. For a user, this suggests that certain uniform rules of user interaction hold. For a model builder (Level 1 or 2), integration implies that there are uniform rules for model invoca-
MlNEQL+: A Software Environment for Chemical Equilibrium Modeling tion, inter-task communication, data sharing, critical error handling, and constraint when adding or modifying new models. A modeling environment for CE research should satisfy four distinct requirements:
69 checking
Extendible and Modular. Modular design implies the use of object oriented programming (OOP) and the generation of separate executable programs for numerical calculations. The design must be open-ended with respect to numerical design and source code should be available. Extendibility also suggests that the environment should aid in the reuse of data resources, control the flow of execution of child modules, and provide conventions for intermodule communications. User Interface. The interaction between the user and the modeling environment should be simple and intuitive. It has been shown that for two systems that are functionally equivalent, the system with the simpler mode of interaction will produce fewer errors and be easier to learn (Reisner, 1981). Runtime Alteration of Data. Once a database or problem set resides in memory, the user should be able to edit fields, add records, and/or move records from one data area to another. Data Management. The management and sharing of data objects should be efficient. This means allowing storage and manipulation of persistent objects, incremental saves and loads of partial problem sets, data of reasonable size and scope, and the ability to load selected records of user-defined databases. In designing MINEQL+, we have drawn from CE modeling, relational database techniques, knowledge representation technology and object oriented programming (OOP). The goal was to design an efficient modeling environment while minimizing software complexity.
THE MINEQL+ CHEMICAL EQUILIBRIUM ENVIRONMENT Extendibility and Modularization For any research level CE model, there will generally be a core numerical segment, a database of thermodynamic values, and a segment to handle input/output (I/O). Many CE models were written in FORTRAN, which was well suited to the development of numerical code. Unfortunately, FORTRAN placed restrictions on I/O protocol and the use of time-consuming serial database searches was standard. Modularization of software tools helps circumvent these problems by: l l
l
Allowing several programming languages to be combined under one software package. Allowing code for the numerical engine to be distributed independently from the interface code, thus letting users adapt numerical algorithms without dealing with I/O problems. Creating code that is “sealed” so that bugs from one module do not effect other modules.
In MINEQL+, the integrated environment is responsible for all data searches, error checking, user interaction, editing, data and system management tools, and preprocessing. The environment was written in C, C++, and assembly, while the numerical program remained in the original FORTRAN. In effect, the numerical program, MINEQL, was stripped of all high level I/O and user interaction functions (Figure 2). This form of modularization has reduced software complexity in a number of ways. First, searches of the thermodynamic data occur at the system level rather than at the numerical level. This allows the data to be screened prior to being submitted for calculation and avoids having to perform a “pre-calculation” in order to view the tbetmodynamic data. Second, valid runs are
70
W. D. Schecher and D. C. McAvoy
ENWRONMENT
FiGUFfE 2. Flow Diagram of Data and Code Modules withln iWNEQl_+.
more likely because errors are caught prior to invoking the numerical program. Finally, redundancy in data searches is eliminated by coordination of multiple-run calculations under the environment. other examples of extendibility will be discussed further in the following sections.
User Interface The user interface of MINEQL+ is displayed in a spatial manner in order to better help the user understand the environment’s organization and convention (Figure 3). The spatial interface also aids in allowing reversible interaction so that commands can be undone. This feature, along with a limited expert system for error checking, can be used to create a forgiving imerface. The interface must be able to address the three basic questions of CE model input (What chemicals? How much? Which interactions?), but in addition, it must also have provisions for finding and interacting with tools and managing output. The interface has four major interaction classes: (a) the main menu (Figure 3), (b) a component selection menu (Figure 4), (c) a relational spreadsheet editor (Figure 5), and (d) an output database manager (Figure 6). An overview of a problem run consists of defining a problem within the component selection menu, scanning the thermodynamic database, editing the thermodynamic data (optional), running the calculation, and viewing the output. Each of these steps will be discussed throughout the following sections.
Runtime Alteration of Data There are 132 predefined components which correspond to MINEQL+‘s thermodynamic database. In addition, 68 “NULL” components are available if the user wants to define new components. In effect, this feature, along with the ability to store personally acquired thermo-
MlNEQL+: A Software Environment for Chemical Equilibrium Modeling
FIGURE 3. Example User Screen in MINEQL+. Interface InClUdeSa Spatial Menu Design and ContextSensltlve Help Screens to Facilitate User Interaction.
dynamic data, allows the system to be completely customized. Defining a chemical system is straightforward. The chemical components that are needed as building blocks for any system are displayed in a scrollable menu (Figure 4). The process of defining a system consists of moving a cursor to the desired components and selecting them from the menu. Up to 25 components can be selected for a single run.
klect
Componentstn be tbd
in Chatcal
Equtltbrfua
boblea
it% DrGf cet3+1 talc->
crmtz-1 cuc2+1 I(-) rnE+l nlli2*1 m3c-I mt3-3 SbCMI3
Pee[Z*l LiC*) Ibolcz-I ftfCZ+) ?3OlWC~ sscC3+)
FIGURE 4. The Component Menu In MINEQL+. There Are 132 Predeflned Components In thls Menu and 68 “NULL“ Components that Can Be Added by the User. Deflnlng 8 Problem Set ConSlstS of Clkklng Off the Desired Components from thls Llst Prlor to Runnlng a Calculation.
72
W. D. Schecher and D. C. McAvoy
The fundamental data object in MINEQL+ is the species, which is similar to a record in a standard database management system. Once the thermodynamic data have been scanned and a set of mass action equations have been determined, the problem can be altered using the editor (Figure 5). MINEQL+ uses a relational spreadsheet design that parallels the chemical tables used to develop the numerical engine (Figure 1). The editor is referred to as “relational” because it is actually three separate spreadsheets (one each for stoichiometric coefficients, total chemical concentrations, and equilibrium constants) that are linked to each other. The position of data within each spreadsheet is dependent upon the position of the cursor in any other spreadsheet. The purpose of the editor is to allow the user to dynamically change the values of any fields, insert or delete chemical species (rows), or move species from one chemical type to another (e.g., from a fixed solid to a dissolved solid). The editor is an example of a reusable object that responds according to the context in which it is placed. Chemical species can fall into four input categories (dissolved complexes, fixed solids, dissolved solids, and species not considered), and the editor must address one category at a time. The object code for the editor is designed to extract the data for any of the input categories from RAM. As a result, the editor can be opened to address each species type separately, and species can be moved from one type to another. Data Management Data transference between the software environment and numerical program is accomplished by storing the problem set in a temporary file on disk. The file is subsequently read by the numerical program. In order to avoid data redundancy (i.e., replication of the data segments in both the software environment and numerical program), data is allocated dynamically and subsequently de-allocated prior to running a calculation. After the calculation is completed, the
-14.88 -l2.60 -17.u -7.71
13.345 14.535 ::iZ
+J
* -23:al 11.33 16.68 10.33 13.26 3.15
26:!iW -::z -3.617 B.BW 4.030
FIGURE 5. Relational Spreadsheet Editor. All Alteratlons to a Problem Set Occurs through this Interface; Species Can Be Added or Deleted, Thermodynamic Data Can Be Edited, and Total Chemical Concentrations Can Be Input. The Layout of the Edltor Was Deslgned to Parallel the Underlylng Concepts Present In the Numerkal Module (Figure 1).
MINEQL+: A Software Environment for Chemical Equilibrium Modeling
73
temporary file is read back into the software environment and memory is reallocated. This scenario can accommodate large problem sets (25 components x 400 species) and does not significantly hinder processing speed. The ~e~~~~ic data supplied with ~~QL+ was translated from the MI~EQ-Al database and is considered by the EPA to be the best available. In addition to this data set, missing species were supplemented with mass action data from the original MINEQL thermodynamic database. This brought the total number of species in the database to approximately 2,300. Every species is the result of several chemical components, and every component has an I.D. number for internal referencing. In MINEQL+, the user no longer needs to access the reference I.D. numbers of components and species. The database is in a Paradox (Borland International, 1991) database format and is indexed by component I.D. number. This creates a quality of self-similarity within the data (e.g., all calcium species are grouped; within that group is a subgroup of calcium-proton species; in that group another subgroup, and so on). The self-similar attributes of the data allow for a uniform search rule so that database searches can be accomplished by combining the Paradox Engine (Borland International, 1991) within a recursive search algorithm. In order to promote database extendibility, we have included a tool for creating and managing a personalized thermodynamic database. The tool functions as a repository of thermodynamic data that is created during any given session. The user has the option of updating the current session with data from the repository or selecting specific species in the current session to be added to the personal database. The benefit of this tool is that state-of-the-art thermodynamic data does not have to be entered by hand for every calculation, but can simply be added from the amended data set. In addition, it insulates the main thermodynamic database, which is in the public domain, from alterations. Another software tool that was developed for MINEQL+ manages multiple-run calculations. These calculations can be of three types: (a) synthetic titration data, (b) sensitivity analysis, and (c) field mo~to~ng data. The first two categories require that the software env~o~ent generate the input data. This is particularly useful when performing theoretical calculations and generating hypotheses about a particular system. The last category requires that the user supply an external ASCII data set in row-column format. Each row must contain a single observation and each column a separate input parameter. The interface is designed so that the user can relate information about what column is associated with what. input parameter. The multiple-run feature also provides considerable potential for coupling with additional model formulations. Because multiple-runs can be in time, space, or abstract parameters such as pH, the ability to add other models (e.g., hydrologic programs that address temporal and spatial variations in surface water) or tools (e.g., chemical analysis software to help in potentiometric determination of equilibrium constants) becomes more feasible. The output from a MINEQL+ run may require a large mount of storage space. An individual run can have as many as 400 species, and the number of runs is limited solely by hardware. A researcher may not be interested in the entire output and may wish to view the data from a particular perspective. As a result, MINEQL+ uses an object-oriented database design to address a 3-dimensional data space (species x variables x runs) that can be viewed in several ways. The data members that compose an output data object consist of up to 25 files, each with information about an individual chemical component. In addition, the row-type (an indicator of whether to display rows of species or runs) that are supported by a particular data member and its display criteria (which species, run, or variable to use) is contained in the.data object. The user interface exploits these object-oriented features of the data by allowing a user to set viewing criteria on screen (Figure 6a). Once a view is set, a temporary data structure is created for viewing, and the resulting data extract is open to further column extraction. The extracted data is in table format and can be accessed through scrolling or paging with the cursor keys (Figure
74
W. D. Schecher and D. C. McAvoy
*i” 2 3 4 5 s B 9 10 11 12 13 14 15
4OllC i
.3ZE-4
t.34E-5 3.45?z-6 5.763-7 1.32E-4 2.34E-5 3.45E-6 5.76E-7 1.3ZE-4 2.34E-5 3.45E-6 5.7bE-7 1.3ZE-4 2.34E-5 3.45E-6
2-i%“4:631 -!i.%Z -6.240 -3.079 4.631 -5.962 6.240 -3.879 4.631 -5.462 -6.240 -3.879 -4.631 5.462
-Log
w-
-11.80 -11.80 -11.79 -11.81 -11.77 -11.80 -11.78 -11.79 -11.75 -11.e0 -11.60 -11.81 -11.79 -ll.E0 -11.88
-x Total 100.13 8Q.3 95.2 n.7 12.5 mQ.0 30.2 50.6 76.0 71.2 87.4 23.9 15.0 98.7 34.2
FlGURE 6, The Output Data Manager. A Hlerarchlcal Interface Allows the User to Specify Crlterla for Vlewlng Data Objects (A). The Object Is then Extracted and DIsplayed on Screen. Further Data Reduction Is Possible by Checking Off lndlvldual Columns of Interest (8). The Extracted Data Can Be Saved In Paradox, Lotus l-2-3, or ASCII Format for Further Analysis.
6b). The view tables are stored in Paradox database format, but cm also be written as ASCII text or Lotus l-2-3 files. CONCLUSloNS
Chemical ~uilibrium modeling is a form of enviro~en~ analysis that has not reached its full potential. It is our contention that human interaction factors play the largest role in restrict-
MlMQL+:
A Software Environment for Chemical Equilibrium Modeiing
75
ing wider use and understanding of chemical equilibrium models. Clearly, research into improved numerical methods and Level 2 concepts (e.g., surface complexation models, methods for calculating pH, etc.) remain important, but there must also be a parallel research course to allow the development of software environments such as MINEQL+. Software environment research such as MINEQL+ helps build a uniform platform for chemical equilibrium modeling. The primary benefit of this course is that it results in increased ease of use and research expediency. Given that aqueous systems can be extremely complicated, improvement of human interaction factors contribute to more accurate results and better understanding of the model and its chemical system. Future developments in MINEQL+ will lead to the ability to exploit the current data extraction techniques to facilitate output data visualization and graphics. Further work is also needed to improve expert system features so that complicated chemical systems can be addressed more easily. In the long run, various “black box” modules will be developed to help connect the chemical equilibrium calculations to hydrologic programs, data acquisition software, or statistical analysis software. AVAILABILITY
MINEQL+ will run on any IBM-compatible computer with 512K of memory aud a hard disk. The software and a user’s manual can be obtained through the authors for the cost of duplication and shipping. MINEQL-t is not copy protected and the executable code can be distributed freely. REFERENCES Ball, J. W., Jenne, E. A., & Norstrom, D. K. (1979). WATEQZ- A computerizd chemical mode1 for trace and major element speciation and mineral equilibrium of natural waters. In E. A. Jenne (Ed.) Chemicut modeling in aqueous systems, symposium series 93 @p 815-836). Washington, DC American Chemical Society. Ball, J. W., Jenne, E. A., & Cantrel, M. W. (1981). WATEQJ-A geochemical model with uranium added (Open-File Report 81-1183). Menlo Park, CA: U.S. Geological Survey. Borland International (1991). Paradox engine user’s guide. Scott’s Valley, CA: Borland Intematioual, Inc. Brown, D. S., & Allison, J. S. (1987). Mr~EQA~, an eouitibri~ metat speciation model: UserS manual @‘A/600/3_ 87P12). Athens, GA: U.S. Env~~rnen~ ~~tion_Agen~y. Driscoll, C. T., & Letterman, R. D. (1988). The chemistry and fate of aluminum in treated water. fournat of the EnvironmentalEngineering Division, AXE, II4,21-31. Driscoll, C. T., Baker, J. P., Bisogni, J. J., & Schofield, C. L. (1980). Effect of aluminum speciation on fish in dilute acidified waters. Nature, 284,161-164. Kaufmann, P. R., Herlihy, A. T., Elwood, J. W., Mitch, M. E., Overton, W. S., Sale, M. J., Messer, J. J., Cougan, K. A., Peck, D. V., Reckhow, K. H., Kinney, A. J., Christie, S. J., Brown, D. D., Hagley, C. A., & Jager, H. I. (1988). Chemical ch~a~terist~~s of streams in the mid-attantie and southeastern United States. Volume I: Poputation description and physico-chemicat retatio~hips (~P~~/3-88~2la). W~hington, DC: U.S. Env~~rnen~ Protection Agency. Linthurst, R. A., Landers, D. H., Eilers, J. M., Brakke, D. F., Overton, W. S., Meier, E. I?, & Crowe, R. (1986). Characteristics of takes in the eastern United States. VolumeI: Population descriptions and physico-chemical retationships (EPA/660/4-86/007a). Washington, DC: U.S. Environmental Protection Agency. Morel, F. M. M., & Morgan, J. J. (1972). A numerical method for computing equilibria in aqueous chemical systems, Environmental Science & Technology,6,58-67. Reisner, P (1981). Formal urns and human factors design of and interactive graphics system. IEEE Tr~sactions on SoMare Engineering, 7,229-240. Sale, M. J., Kaufmann, P R., Jager, H. I., Coe, J. M., Cougan, K. A., Kinney, A. J., Mitch, M. E., & Overton, W. S. (1988). Chemical characteristics of streams in the mid-attantic and southeastern United States. VotumeII: Streams samples, descriptive statistics, and compendium of physical and chemical data (EPA/600/3-88/021b). Washington, DC: U.S. Environmental Protection Agency. Schecher, W. D., & Driscoll, C. T. (1985). Interactions of copper and lead with nostoc muscorum. Water,Air, and Soil Potlution, 24.85-101. Swallow, K. C., Hume, D. C., 6t Morel, F. M. M. (1980). Sorption of copper and lead by hydrous ferric oxide. Envi~n~ntat Science & Technology, 14.1326-1331. Theis, T. L., & Richter, R. 0. (1980). Adsortion reactions of nickel species at oxide surfaces. In M. C. Kavanaugh & J. 0. Leckie (Eds.), Advances in chemistry series, no. 189, particutates in water (pp. 73-96). Washington, DC American Chemical Society.
76
W. D. Schecher and D. C. McAvoy
Truesdell, A. H., & Jones, B. F. (1974). WATEQ, A computer program for calculating chemical equilibria in natural waters. U.S. Geological Survey Journal of Research, 2,233-248.
Van Zeggeren, F., & Storey, S. H. (1970). The computation of chemical equilibria. London: Cambridge University Press. Westall, J. C. (1986). MICROQL. A chemical equilibrium program in BASIC (86-02). Co~allis, OR: Oregon State Universitv. Westall, J. CI, Zachary, J. L., & F. M. M. Morel (1976). MINEQL, A computer program for the calculation of chemical equilibrium composition of aqueous systems (Civil Engineering Technical Note 18). Cambridge, MA: MassachusettsInstitute of Technology.