EPA
United States
Environmental Protection
Agency
Environmental Research
Laboratory
Athens GA 30613
EPA-600 3-83-005
March 1983
Research and Development
User's Manual for the
Chemical Transport and
Fate Model (TOXIWASP),
Version 1
-------
EPA-600/3-83-005
USER'S MANUAL FOR THE CHEMICAL TRANSPORT AND FATE MODEL TOXIWASP
VERSION 1
by
Robert B. Ambrose, Jr., Sam I. Hill, and Lee A. Mulkey
Environmental Research Laboratory
U.S. Environmental Protection Agency
Athens, Georgia 30613
ENVIRONMENTAL RESEARCH LABORATORY
OFFICE OF RESEARCH AND DEVELOPMENT
U.S. ENVIRONMENTAL PROTECTION AGENCY
ATHENS, GEORGIA 30613
-------
DISCLAIMER
This document has been reviewed in accordance with the U.S. Environmental
Protection Agency's peer and administrative review policies and approved for
publication. Mention of trade names or commercial products constitute
endorsement or recommendation for use.
The TOXIWASP computer code has been tested against other computer
programs to verify its computational accuracy. Nevertheless, errors in the
code are possible. The U.S. Environmental Protection Agency assumes no
liability for either misuse of the model or for errors in the code. The user
should perform verification checks of the code before using it.
ii
-------
FOREWORD
As environmental controls become more costly to implement and the
penalties of judgment errors become more severe, environmental quality
management requires more efficient analytical tools based on greater
knowledge of the environmental phenomena to be managed. As part of this
Laboratory's research on the occurrence, movement, transformation, impact,
and control of environmental contaminants, the Technology Development and
Applications Branch develops management or engineering tools to help pollu-
tion control officials achieve water quality goals.
Concern about environmental exposure to synthetic organic compounds
has increased the need for techniques to predict the behavior of chemicals
entering natural waters as a result of the manufacture, use, and disposal
of commercial products. A number of mathematical models have been developed
to provide data on aquatic pollutant behavior from which exposure assess-
ments can be made. The modeling technique described in this manual permits
the user to examine the probability of exposure of receptor populations to
a range of chemical concentrations for a specified location in stratified
lakes and reservoirs, large rivers, estuaries, and coastal waters.
David W. Duttweiler
Director
Environmental Research Laboratory
Athens, Georgia
111
-------
ABSTRACT
This manual describes the dynamic model TOXIWASP for simulating the
transport and fate of toxic chemicals in water bodies. TOXIWASP combines the
kinetic structure adapted from the Exposure Analysis Modeling System (EXAMS)
with the transport framework provided by the Water Analysis Simulation Program
(WASP), along with simple sediment balance algorithms. TOXIWASP formulates
variable chemical degradation rates from chemical characteristics of a
compound and the environmental parameters of the aquatic system. These rates
combine calculated first order rates due to several processes, including
hydrolysis, biolysis, photolysis, oxidation, and volatilization. Sorption
onto sediments and onto biomass is calculated assuming local equilibrium,
using a chemical specific partition coefficient, and spatially varying
environmental organic carbon fractions.
TOXIWASP calculates total sediment and chemical concentrations explicitly
every time step for every segment, including surface water, subsurface water,
surface bed, and subsurface bed. Sediment concentrations are affected by
advection, dispersion, mass loading, settling, scour, and in the bed, by
burial and erosion. Chemical concentrations are affected by these same
processes, plus degradation, sediment-water dispersion, and percolation. No
lateral migration of chemical within the bed is allowed. Transport data must
be specified based on monitoring data or predictions from hydrodynamic
models.
TOXIWASP is designed to provide WASP users the capability for simple
dynamic simulations of chemicals, particularly pesticides, which enter the
aquatic environment in pulses that cannot be simulated with steady state
models. It can be used for cases requiring more dynamic transport and loading
capabilities than EXAMS, but less detailed and mechanistic sediment
predictions than SERATRA. Its toxic chemical simulation capabilities are
roughly equivalent to those in the Hydrologic Simulation Program in FORTRAN
(HSPF). Although it is less applicable to upland streams and one-dimensional
reservoirs than HSPF, TOXIWASP is more suited to stratified lakes and
reservoirs, large rivers, estuaries, and coastal waters.
This manual gives an overview of the theory pertaining to TOXIWASP, then
describes the program structure. Detailed data input instructions are given,
followed by operating instructions and a glossary.
This report covers the period March 1, 1981 to November 1, 1982, and work
was completed as of November 1, 1982.
iv
-------
CONTENTS
Disclaimer ii
Foreword iii
Abstract iv
Figures vii
Tables viii
Acknowledgments ix
1. Introduction 1
1.1 Background 1
1.2 Exposure Assessment 2
1.3 Overview of this Manual 3
2. Model Capability and Theory 5
2.1 Overview of TOXIWASP 5
2.2 Sediment Transport Processes 8
2.3 Chemical Partitioning (Sorption) Processes 10
2.4 Bed-Water Chemical Redistribution Processes 13
2.5 Bed Sedimentation and Erosion 17
2.6 Transformation Processes .... 22
2.7 Special Data Input Options 30
2.8 Special Simulation Control Options 33
2.9 Special Output Options 33
2.10 Summary of TOXIWASP Capabilities 34
3. Model Mainline and Subroutine Overview 37
3.1 Standard WASP Subroutines 37
3.2 TOXIWASP Kinetic Subroutines 43
4. Preparation of Data Input 49
4.1 Card Group A - Model Identification 52
4.2 Card Group B - Exchange Coefficients 53
4.3 Card Group C - Volumes 55
4.4 Card Group D - Flows 56
4.5 Card Group E - Boundary Conditions 59
4.6 Card Group F - Forcing Functions 62
4.7 Card Group G - Parameters 65
4.8 Card Group H - Constants 67
-------
CONTENTS (Continued)
4.9 Card Group I - Miscellaneous Time Functions 71
4.10 Card Group J - Initial Conditions , 73
4.11 Card Group K - Stability and Accuracy Criteria 73
4.12 Card Group L - Intermediate Print Control 74
4.13 Card Group M - Integration Control Information 74
4.14 Card Group N - Display Parameters 75
5, Operational Considerations 83
5.1 Acqisition Procedures 83
5.2 Installation Procedures 83
5.3 Testing Procedures 83
5.4 Machine Limitations 84
References 85
Appendix 1, Glossary 87
Appendix 2, TOXIWASP Subroutine Listings 119
Appendix 3, TOXIWASP Support Software 158
3.1 Listing of TOXICMP.CMD 158
3.2 Listing of TOXITKB.CMD 159
3.3 Listing of JCL to Compile and Link Edit 161
3.4 Listing of TOXIC.BIS 161
3.5 Listing of JCL to Run Simulations 162
3.6 Listing of DAILYCVT 164
3.7 Listing of HSPFCVT 167
3.8 Listing of SWRVCVT 169
3.9 Listing of USGSCVT 171
Appendix 4, Listing of Input Data File 175
vi
-------
FIGURES
Number Page
2-1 Examples of TOXIWASP Network Configurations 6
2-2 TOXIWASP Sediment Transport Processes 11
2-3 TOXIWASP Chemical Transport and Redistribution Processes . 15
2-4 TOXIWASP Sediment Burial 19
2-5 TOXIWASP Sediment Erosion 21
3-1 WASP Program Structure 38
3-2 Simplified WAS15-WASPB Flow Chart 42
3-3 TOXIWASPB Kinetic Subroutine Structure 44
vii
-------
TABLES
Number Page
2-1 Concentration Related Symbols Used in Mathematical
' Equations 9
2-2 Structure of Auxiliary Flow and Nonpoint Source Load
File 'DA1LY.DAT' 32
4-1 Summary of Card Groups 50
4-2 Pen Plot Example 82
viii
-------
ACKNOWLEDGMENTS
Staff at the Athens Environmental Research Laboratory provided critical
support for this project. Lawrence Burns provided useful discussions while
we were adapting EXAMS kinetics to the WASP framework, and later in testing
TOXIWASP against EXAMS (the final product, including any mistakes are, of
course, our responsibility). Bruce Bartell, with Computer Science Corpora-
tion, drafted the figures by computer. Annie Smith typed quick, accurate
drafts. Robert Ryans provided our technical editing. Sandra Ashe assisted
in the tedious typing, copying, and other preparation chores.
ix
-------
SECTION 1
INTRODUCTION
1.1 BACKGROUND
TOXIWASP is a dynamic model for simulating the transport and fate of
toxic chemicals in water bodies. Two state variables are simulated:
organic chemical and total sediment. TOXIWASP was created by adapting the
kinetic structure of the Exposure Analysis Modeling System (EXAMS) (Burns et
al., 1982) to the transport framework provided by the Water Analysis Simula-
tion Program (WASP) (DiToro et al., 1981), and adding simple sediment
balance algorithms along with special input and output software. The result
is a generalized chemical model that can be used for cases requiring more
dynamic transport and loading capabilities than EXAMS, but less detailed and
mechanistic sediment predictions than SERATRA (Onishi and Wise, 1982). The
TOXIWASP chemical simulation capabilities are roughly compatible with those
in the Hydrologic Simulation ProgramFORTRAN (HSPF) (Johanson et al.,
1980). HSPF is most applicable to upland streams and one-dimensional
reservoirs, whereas TOXIWASP is more suited to stratified lakes and reser-
voirs, large rivers, estuaries, and coastal waters.
The main component of TOXIWASP is WASP, a dynamic compartment modeling
program for aquatic systems. Time-varying transport, including forcing and
boundary processes, advection, dispersion, and mass loading, are represented
in this program. Water quality processes are represented in a special kine-
tic subroutine that is either chosen from a library or written by the user.
WASP is structured to permit easy substitution of kinetic subroutines into
the overall package to form a particular model. The model provided a sound
basis for the rapid development of the TOXIWASP methodology. Indeed, ver-
sions of WASP have been used to examine PCB problems in the Great Lakes
(Thomann, 1982; Richardson, et al., 1982).
The kinetic component of TOXIWASP was modified from EXAMS. From chemi-
cal characteristics of a compound and the environmental parameters of the
system, EXAMS formulates a total transformation rate. This rate is based on
a simple addition of the pseudo-first order rate constants due to each pro-
cess. In TOXIWASP a kinetic derivative is calculated from this rate and
passed to standard WASP subroutines, where it is integrated along with
transport and loading derivatives to yield time-varying chemical concentra-
tions for a specified spatial network. EXAMS uses a sophisticated kinetic
structure that allows the study of five different ionic forms of a chemical,
several ways to calculate photolysis, and other capabilities. It also has
the user advantage of being interactive. In these respects, EXAMS was
simplified and reduced for use in the TOXIWASP application. TOXIWASP pro-
1
-------
vides the users of WASP with an expanded library of kinetic subroutines
employing state-of-the-art chemical transformation techniques.
TOXIWASP allows the user to perform simple dynamic simulations of
potentially toxic organic chemicals, particularly pesticides, that enter
the aquatic environment in pulses that cannot be simulated with steady-
state models. Dynamic simulations allow the consideration of pulse loads,
the prediction of peak events, and an estimate of time-varying chemical
exposure. TOXIWASP was created for use in exposure assessment.
1.2 EXPOSURE ASSESSMENT
Evidence of potentially harmful effects of pesticides and other toxic
organic chemicals on aquatic organisms has led to intensive efforts toward
environmental risk assessment for existing and new chemicals. The concept
of risk reflects the likelihood or probability of causing such effects.
Obviously, if an effect is induced, the organism affected must first have
been exposed to the toxicant for a time period and intensity sufficient to
inflict the damage. The study of this exposure, or exposure assessment, is
defined as a quantitative evaluation of the concentration of chemical toxi-
cants in contact with receptor populations within the various environmental
media as the toxicant is released, transported, and transformed into,
through and between environmental compartments.
The source of toxic chemicals in a river basin is an important factor
in selection of techniques to analyze the problem. Toxic chemical releases
may arise from both nonpoint sources such as agricultural fields from which
pesticides are transported in runoff and point sources such as chemical
manufacturing plants from which chemicals are discharged in effluent. Non-
point sources are characterized by highly variable loadings with rainfall-
runoff events often dominating the timing and magnitude of chemical inputs
to the receiving waters. Point sources are usually much less varied and are
often thought to provide steady inputs to the aquatic system. Clearly,
exposure assessments for toxic chemicals in the aquatic environment must
accommodate both the nonpoint or variable loading case and the point or
steady loading case.
Chemical concentrations in aquatic environments are also determined by
the transport and transformation processes that occur in river basins. As
chemicals are transported by water or sediment, they are subject to a number
of physical, chemical, and biological processes that can lead to either
transport or transformation. The influence of transport on cheimical beha-
vior is determined by the local environmental regime (flow rates, sediment
concentrations, etc.) and such chemical properties as the partition
coefficient. Transformation processes are determined by chemical properties
and by such environmental conditions as pH and temperature.
Exposure assessment as a part of risk evaluation implies the need to
estimate probability of exposure. Exposure can be viewed as the realization
of the joint probability of an ambient concentration and the existence of
-------
receptor populations. The probability of ambient concentrations can be
approximated by calculating their frequency of occurrence over a sufficient
period of time. A convenient way to represent frequency is the cumulative
distribution function (cdf). A cdf can be expressed as a graph of the
concentrations (on the abcissa) exceeded for various fractions of a time
period (on the ordinate). A cdf can be related to average expected return
periods for different concentrations. Given the cdf for a specific chemical
in a specific environment, one can, for example, say that once every 10
years the concentration of a specific chemical will exceed a specified
level. The concentration level can then be related to biological effects
information (e.g., LC5Q values) and a return interval for damage (or risk)
results. A cdf can readily be constructed given sufficient data in the form
of time-series chemical concentrations. Rarely are any such data available,
however, and when short time periods are sampled, the statistical reliabili-
ty of the resulting data is always suspect. An alternative to field sampling
is mathematical simulation with a dynamic model such as TOXIWASP.
If the user wishes, TOXIWASP produces a time-series of chemical
concentrations at a segment that reflects daily changes in flow and loading,
and seasonal changes in water temperature, light intensity, wind speed, pH,
and POH. TOXIWASP cannot simulate stochastic variability or variability be-
low the resolution of its time step, which is usually between one and twelve
hours. Nevertheless, the cdf constructed by TOXIWASP for a specified loca-
tion reflects the probability of exposure of local receptor populations to a
range of chemical concentrations. For populations that can avoid locally
high chemical concentrations, the problem of estimating exposure is more
difficult. The spatial variability of peak concentrations must be examined
to estimate the probability of avoidance. While TOXIWASP can provide the
spatial variability during peak concentration events, users must convert
this information to their own estimates of avoidance.
1.3 OVERVIEW OF THIS MANUAL
This manual documents the computer program TOXIWASP. It is meant to
provide a convenient reference for the users of TOXIWASP. It is not meant
to provide a tutorial on chemical simulation modeling. Nevertheless, an
example input data file Is provided in Appendix 4, and on the TOXIWASP dis-
tribution tape.
Following this introduction is a chapter on model capability and
theory. This gives a summary of the equations solved in TOXIWASP, and short
discussions of the sediment transport processes, the partitioning processes,
the redistribution processes, the transformation processes, special data in-
put options, control options, and output options.
Chapter 3 is an overview of the WASP and TOXIWASP subroutines. The
descriptions of WASP subroutines are only slightly modified from the
original WASP users manual.
Chapter 4 details the preparation of data input files. Data are
organized into "card groups" A through N in the same format as the original
-------
WASP users manual. Of course, "card group" can refer to a series of data
records on a computer file.
Chapter 5 discusses such operational considerations as how to acquire
TOXIWASP, how to install it on a computer and test it, and what its machine
limitations are.
The first appendix is a glossary of all variables in TOXIWASP. This
lists the type of variable (local, parameter, constant, time function), the
subroutines where it is used, its definition, and its units. Also in the
glossary is a list of abbreviations for commonly used units.
The second appendix gives source listings of the TOXIWASP subroutines.
The third appendix gives listings of TOXIWASP support software. The fourth
appendix gives a sample input dataset. All of these listings are available
as files on the distribution tape.
A note on units may be helpful. WASP uses mixed English and SI units.
For the general process equations in this document, we label dimensions
following the M.L.T. system where M stands for mass, L stands for length,
and T stands for time. Molarity is labelled by M, and moles by n. For
specific equations used in the TOXIWASP computer program, we label terms
with specific units. CHEMW, for example, has units of mgc/lw,, or milligrams
of chemical per liter of water. These specific units are defined in the
glossary, starting on page 87.
-------
SECTION 2
MODEL CAPABILITIES AND THEORY
All users of TOXIWASP should be familiar with and have access to the
WASP user's manual. WASP theory will only be considered where necessary to
explain differences between EXAMS and WASP. This section is intended to
provide an overview of the capabilities provided by the new toxics sub-
routines in TOXIWASP. This section is not intended to supplant the detailed
documentation of kinetic process theory available in the EXAMS manual. That
documentation is too large and exhaustive to be included here. The user who
has questions is referred to this excellent source.
2.1 OVERVIEW OF TOXIWASP
TOXIWASP is a dynamic chemical and sediment model that can be applied
to water quality problems in streams, lakes, reservoirs, estuaries, and
coastal waters. It uses the compartment modeling approach whereby segments
can be arranged in a one-, two-, or three-dimensional configuration, as in
Figure 2-1. Pollutant transport is based on user-specified flow and disper-
sive mixing between segments. All parameters and forcing functions may vary
in space and time. TOXIWASP calculates time-varying water quality concen-
trations using an explicit, backward difference numerical solution to the
mass flux form of the one dimensional advective-dispersive equation:
AM-i n AC
1 = E [Q. .C. + E. .A. .()..] + W. - KV. /n
At i=1 L^ID i ID 13 L 'ID D : u'
where M = constituent mass
C = constituent concentration, ML~~3
Q = water flow, L^T"!
E = longitudinal dispersion. L2T-1
A = cross-sectional area, L^
L = characteristic mixing length, L
W = mass loading, MT~1
K = kinetic degradation or transformation rate, ML~3x~l
V = segment volume L^
j = segment number
i = adjacent segments
ij = interface between segment j and adjacent segments i
TOXIWASP was created from WASP by adding a set of subroutines that
calculate chemical degradation (the last term in equation 1) and that
-------
Figure 2-1
Examples of TOXIWASP Network Configurations
Chemical and Sediment Loads
Flow
Chemical and
Sediment Loads
Flow
Chemical and
Sediment Loads
i
Flow
Pond
Advective Flow
Dispersive liixing
Segment Type
Surface Water
Subsurface Water
Surface Bed
Subsurface Bed
Pattern Scheme
Lake
-------
calculate special bed sediment transport processes such as sediment-water
dispersive exchange, pore water percolation, and net burial-scour. The two
differential equations solved by TOXIWASP for water-borne chemical and
sediment, written in the general concentration form, are:
3C1 3C1 9 ,P9C^ Wl K + q
TT = u 3T" + a£ (^T') ~V ~ 1 (2a)
r*. C* r\ /^ f"11 J^ f* 1 Uo *
fl ^V ^ *^X ^ ^^ ^
7 ~ H + ( E ' ) + r? ~^~ b y- rt i \
o
where C^ = concentration of chemical, ML
G£ = concentration of suspended sediment, ML
u = flow velocity of water, LT~1
W, = mass loading of chemical, MT""^
W£ = mass loading of sediment, MT
S, = net exchange of chemical with bed, ML"3 T~*
S2 - net exchange of sediment with bed, ML"3 T"1
x = longitudinal distance, L
t = time, T
Ms = mass of sediment
From chemical characteristics of a compound and the environmental
parameters of the system, TOXIWASP formulates a total transformation rate.
This rate is based on a simple addition of the pseudo-first order rates for
hydrolysis, oxidation, biolysis, volatilization, photolysis, and other
processes. Sorption onto sediments and onto biomass is calculated assuming
local equilibrium, using a chemical specific partition coefficient, and
spatially varying environmental organic carbon fractions.
TOXIWASP applies equations 2a and 2b, in the form of equation 1 to
calculate sediment and chemical concentrations for every segment, including
surface water, subsurface water, surface bed, and subsurface bed. Sediment
is assumed to be a conservative constituent that is advected and dispersed
among water segments and that can settle to and scour from bed segments.
In a simulation, the chemical undergoes first-order decay, based on
summation of several process rates, some of which are second-order. The
effective first order decay rate can vary with time, then, and is recalcu-
lated as often as necessary throughout a simulation. The chemical is ad-
vected and dispersed among water segments and can be transported to the bed
by sorption onto sediment and subsequent settling, or by dispersive mixing
between the top bed layer and the bottom water layer. Within the bed, the
chemical can migrate downward or upward through percolation and pore water
diffusion. No lateral migration of the chemical within the bed is allowed.
-------
Because the kinetic transformation processes are all expressed in terms
of first-order rates, large loadings may cause problems by changing the
characteristics of the systems. An example noted in the EXAMS manual is a
chemical subject to alkaline hydrolysis that kills the biological component,
making the system less alkaline, and thus reducing the alkaline hydrolysis
degradation rate. It is the responsibility of the user to anticipate these
problems and look for cases where they might happen. The task of keeping
track of all possible ecosystem variables is too complex, and would occupy
too much computer space for TOXIWASP. Therefore, feedback phenomena are not
considered.
TOXIWASP, like EXAMS, is based on the following assumptions.
1. All segments are well mixed.
2. Sorption is an essentially instantaneous process within each
segment (thus local equilibrium).
3. Chemical properties of the compound can be coupled with the
characteristics of the environment to formulate a pseudo-first-
order rate for each of the degradation processes using primarily
mechanistic equations.
4. Pseudo-first-order rates combine linearly to form a total
degradation rate for the chemical toxicant in each segment.
It should be noted that TOXIWASP, like WASP, requires the user to
specify the flow field. Flows can be based on measurements, simple con-
tinuity calculations, or on other hydrodynataic models. WASP does not check
the flow field for inconsistencies that may lead to mass balance errors.
The user should take care to check the specified flows for errors.
In the following development it is convenient to define concentration
related symbols as in Table 2-1.
2.2 SEDIMENT TRANSPORT PROCESSES
Sediment transport is an important process in hydraulics and river
mechanics, but its role in pollutant transport is not fully known. Several
investigators (Karickhoff et al., 1979; Rao and Davidson, 1980) have shown
that for most organic toxicants, particularly non-polar compounds, the sedi-
ment organic matter determines the extent of sorption and hence the impor-
tance of sorbed-pollutant transport. The particle size of the sediments is
influential, but Rao and Davidson (1980) have shown that the organic matter
content of each size fraction is the controlling factor. Organic matter
content and surface area relationships suggest that silt and clay size sedi-
ment fractions are most relevant in sediment transport. One outcome of this
rationale is the idea that, in river systems, wash load or suspended sedi-
ment is the important pollutant transport medium rather than bed load. If
bed load transport can be ignored, the problem remains to estimate suspended
sediment. In general, the stream transport capacity for wash load is in
excess, and the problem is one of estimating sediment source loading
namely, watershed erosion. Thus, the key sediment-related term In equation
2b is the source term, ^2
-------
Table 2.1. Concentration Related Symbols
Used In Mathematical Equations
Symbol
c,q
Cw
Cw
Cs
t
Cs
CP
t
cp
Cb
1
Cb
C2
s
1
s
sw
sb
0
IT
Definition
Concentration of chemical (bed or water).
Concentration of dissolved chemical in water.
Concentration of dissolved chemical in water.
Cw = V
Concentration of sorbed chemical in water.
Concentration of sorbed chemical in water.
Cs ' Cs/Sw
Concentration of dissolved chemical in bed (pore water).
Concentration of dissolved chemical in bed (pore water).
CP - V0
Concentration of sorbed chemical in bed.
i
Concentration of sorbed chemical in bed. Cb = Cft/S^
Concentration of sediment (bed or water).
Concentration of sediment (bed or water). S = Co^O
Concentration of sediment (bed or water). S = S/0
Concentration of sediment in water.
Concentration of sediment in bed.
Porosity or volume water per volume segment.
Partition coefficient of chemical on sediment.
Units
mgc/lT
mgc/lT
mgc/lw
mgc/lT
mgc/kgs
tngc/lf
mgc/lw
mgc/lT
mgc/kgs
rngs/lf
kgs/lT
kgs/lw
kgs/lT
kgs/lj
IW/IT
lw/kgs
-------
TOXIWASP treats sediment as a single size fraction that is advected and
dispersed in the water and that settles (and deposits) at a constant,
spatially-variable velocity. Sediment is returned from the bed to the water
column through a spatially-variable scour (or erosion) velocity. Thus the
net exchange of sediment with the bed, 82 in Equation 2b, is calculated as
WsSb "dsw
S2 ~ Lb Lw (3)
where W = scour (erosion) velocity of bed sediment, LT~*
» 1
Wj = deposition velocity of suspended sediment, LT
Lb = depth of active bed sediment layer, L
Lw = depth of water layer, L
Nonzero values for 82 will lead to net sedimentation or erosion,, The
consequences of chemical burial or release are discussed in Section 2.5.
Settling and scour velocities are read in using the parameter WS(J).
Sediment transport processes are illustrated in Figure 2-2.
2.3 CHEMICAL PARTITIONING (SORPTION) PROCESSES
The interaction of dissolved organic toxicants with entrained sediment is
an important process that must be accounted for mathematically. If one
assumes sorption is kinetically a first order process, then a rate equation
similar to the other expressions can be written as:
Rs _
~s = k C ~ k. c r /. \
S s w d s (4)
where Rs = net rate of chemical transfer between dissolved and sorbed state,
ML
"3"1
!" (typically mgc/lT~hour)_
3~
_
k = rate constant for sorption, LM~ T (typically lw/kgs-hour)
kj = rate constant for desorption, T (typically per hour)
If one assumes Rs = 0 then
or _ ks r, (5)
(^ _ _ _ ^
s kd w
Note that equation 5 is the linear form of the Freundlich isotherm with the
ratio ks/k
-------
Figure 2-2
TOXIWASP Sediment Transport Processes
r
V*
±*
Process
a) Mass Loading
b) Advection
c) Dispersion
d) Settling
e) Erosion
Segment Types
1,2 to Water
1,2 Water-Water
1,2 Water-Water
1,2 Water-Water or Water-Bed
3 Surface Bed-Water
11
-------
empirical expressions relating equilibrium coefficients to laboratory
measurements leading to fairly reliable means of estimating appropriate
values.
EXAMS assumes sorption and ionization to be essentially instantaneous
and considers them to be equilibrium processes. The model allows for three
sorption possibilities (dissolved, sediment sorbed, and biota sorbed) and
for four ionic species in addition to the unionized form. To conserve com-
puter space, TOXIWASP only considers the three sorption possibilities for
the unionized form of the chemical. As EXAMS notes, not all possible forms
of a chemical will exist. The specific fractions (1,2,3) of the chemical in
each form, ALPHA, are calculated for each compartment based on 12 segment
parameters, constants, and state variables:
1
ALPHA(l) = 1 + KP * S/FRW + KB * B/FRW = «1 (6)
_ KP * S/FRW _
ALPHA(2) = 1 + KP * S/FRW + KB * B/FRW = «2 (?)
_ KB * B/FRW _
ALPHA(3) = 1 + KP * S/FRW + KB * B/FRW = ot3 (8)
where KP = partition coefficient of the chemical on the sediment
(lw/kgs) = KOC * OCS(J) - IT
KB = partition coefficient of the chemical with biota (lw/kgb)
= KOC * OCB
S = concentration of sediment, kgB/l^
B = concentration of biomass, kgb/l-p
FRW = porosity of segment (water volume/total volume) -
-------
where CHEMW = chemical dissolved in water phase of segment, mgc/lw
CHEMS = chemical sorbed onto sediment phase of segment, mgc/kgs
CHEMB = chemical sorbed onto biological phase of segment, ugc/g|,iomass
(same as mgc/kgb)
2.4 BED-WATER CHEMICAL REDISTRIBUTION PROCESSES
An important, but poorly quantified, set of processes governs chemical
exchange between the bed and the water column. A chemical may sorb onto
suspended sediments and settle to the bed, or sorb directly to the bed sur-
when water concentrations are high. When water concentrations are low, the
chemical may desorb from the bed surface. Turnover of the bed surface due
to physical or biological processes should accelerate this sorption-desorp-
tion process. Diffusion of pore water into overlying water will also ex-
change dissolved chemicals. Percolation of pore water will move dissolved
chemical up through the bed into the water column; infiltration can leach
chemical down through the bed.
So even though bed load transport per se may be relatively unimportant
in pollutant transport, interaction between the stream bed and the overlying
water should not be ignored. Concentration gradients between the bed mate-
rial and the overlying water will result in sorption and desorption and thus
the stream bed can act either as a sink or a source of contaminants. For
the stream bed one can write the dissolved and particulate chemical conser-
vation equations:
s
wscb wdcs
- R ' K (16a)
___ .
3t ~ 3y 3y ' L8 LW s (16b)
where D^ = vertical dispersion coefficient for dissolved chemical,
I)bs = vertical dispersion coefficient for sorbed chemical, L^T~1
Up = velocity of net pore water movement into or out of the bed,
LT-1
Wj , Ws = deposition and scour velocity of sediment between bed and
water column, LT~1
Lw = depth of water compartment, L
LS = depth of active bed layer, L
y = vertical distance, L
Equation 16a accounts for diffusion-dispersion and pore water transport
of pollutants between the bed and the overlying water column. Equation 16b
accounts for sediment-bound transport by including the scour and deposition
terms, Wg and Wj. Estimation usually requires a rigorous treatment of
hydrodynamic forces and characterization of sediments (e.g., cohesiveness) .
Several approaches are available for this purpose, but many chemical expo-
sure models either omit these processes entirely or lump them into an over-
all calibrated dispersion or exchange coefficient.
13
-------
Comparing equations 16a and 16b with equation 2a reveals that S^, the
net exchange of chemical from the bed to the water column, is a summation of
several processes. These include pore water diffusion and percolation, bed
sediment dispersion (due to physical mixing and bioturbation), scour and
deposition, and direct sorption-desorption.
In TOX1WASP, the subroutines TOX1SETL and TOX1SEDW handle the redistri-
bution terms in equations 2a, 2b, 16a, and 16b. The processes are illus-
trated in Figure 2-3. The settling velocity W
-------
Figure 2-3
TOXIWASP Chemical Transport and Redistribution
Processes
Process
a) Mass Loading
b) Advection
c) Dispersion
d) Settling
e) Erosion
f) Pore Water Diffusion
g) Sediment Turnover
h) Percolation
i) Sedimentation
j) Volatilization
Segment Types
1,2 to Water
1,2 Water-Water
1,2 Water-Water
1,2 Water-Water or Water-Bed
3 Surface Bed-Water
3,4 Surface Bed-Water or Bed-Bed
3 Surface Bed-Water
4 Bed-Bed or Bed-Water
4 Bed-Bed
1 Surface Water
15
-------
The volumetric dispersion varies spatially, and is calculated by:
SCALE * Db * AS * FRW
DISPV= Li U8a)
where D^ = vertical pore water dispersion coefficient,
A = surface area, L
FRW = porosity, or volumetric fraction of pore water in the bed
Lc = characteristic mixing length, L
SCALE = units conversion factor
Because TOXIWASP and EXAMS assume local equilibrium between dissolved and
sorbed phases of a chemical in each segment, equation 17b can be rewritten:
EXCH = DISPV * 1 + gg * sl * [c; - KPB * c;i (18b)
where DSPSED is set equal to 1.0.
Equation 17a is in the same form as equation 18b, and so the HSPF-SERATRA
sorption-desorption rate can be equated with the EXAMS-TOX1WASP dispersion
rate by equating RSED * KT with DISPV * 1 + KPB * S* and solving:
1 KPB
SCALB * D * As 1 + KPB * S'
KT = BVOL * Lc * KPB * Sf (19)
where BVOL = EXAMS-TOX1WASP bed volume, L3
SCALB = unit conversion factor (=2.584 x 10~4 when E = m2/hr, A =
ft2, Lc = ft, BVOL = ft3 x 106).
RSED = BVOL * S' * FRW
For chemicals with high partition coefficients, the last term in equation 22
is approximately 1.0, simplifying the expression.
Although the basic sediment-water exchange mechanisms are mathemati-
cally equivalent, each model has its own elaborations. The exchange rates
are spatially variable in EXAMS and TOXIWASP, and these models include per-
colation of pore water. TOXIWASP adds spatially variable sediment turnover
ratios, spatially variable net bed scour rates, and settling of suspended
sediment. HSPF and SERATRA simulate three sediment size fractions. Scour-
deposition and settling are calculated as dynamic processes. SERATRA adds
multiple sediment layers, which can be added through deposition or sub-
tracted through erosion. HSPF allows spatially variable sorption-desorpLion
rates. All these mathematical formulations are limited by the lack of good,
thorough data necessary to validate the models on a site-specific basis.
TOXISEDW was inserted to calculate sediment-water exchange in a manner
similar to EXAMS. Bedload-water column interaction is a complex and only
partially understood problem. TOXIWASP handles the interaction in the
16
-------
following manner. When a fraction of the bed sediment compartment (sediment
plus pore water) is mixed into the water column, the sediment immediately
comes into equilibrium with the chemical in the overlying water compartment,
then is returned to the bed. The pore water is exchanged with an equal
amount of overlying water. The rate of exchange is based on D1SPV, the
volume exchange rate. DISPV is calculated for each sediment-water interface
"I" from the dispersion rate, BR(I), which is calculated from parameters in
Card Group B:
BR(I) = E(I)*A(I)/[(IL(I)+JL(I))/2.)*(5280**2)*1.E-06] (20)
DISPV(I) = CONVERSION FACTOR * BR(I) * FRW (21)
where 'BR(I) = volumetric dispersion rate for segment interface "I",
(MCF/day for water-water interface, mixed units for
sediment-water interface)
E(I) = dispersion coefficient for segment interface "I", L^T~1
(mi^/day for water-water interface, cm^/sec for
sediment-water interface)
A(l) = surface area of segment interface "I", L^ (ft2)
IL(I),JL(I) = characteristic mixing lengths for segments with respect to
interface "I", L (ft)
DISPV(I) = volumetric pore water dispersion for sediment-water interface
"I", L3T-1 (MCFw/day)
BR(I) is calculated from equation 20 in WASP2. For sediment-water inter-
faces, BR(I) is converted to DISPV(I) by equation 21 in TOXISEDW, then set
to 0. Actual sediment-water mass exchange is then calculated each time step
by equation 17b. The parameter DSPSED allows the user to control the rela-
tionship between pore water diffusion and sediment turnover. If DSPSED is
set to 0.0 for a segment, only pore water diffusion occurs. If DSPSED is
set to 1.0, the sediment turnover volume is equal to the pore water diffu-
sion volume.
2.5 BED SEDIMENTATION AND EROSION
The chemical redistribution processes in Equations 16 and 17 and Figure
2-3 operate in reference to a fixed bed. When sediment deposition (W^SW/LW)
exceeds sediment scour (WsSb/Ls), however, net deposition can leads to a
rising bed surface and burial of sorbed chemical. When sediment scour
exceeds sediment deposition, net erosion can lead to a falling bed surface
and release of previously buried sorbed chemical. In this section, the term
"sedimentation" will refer to net sedimentation or erosion.
A simple method for treating sedimentation is to define bed segment
locations in reference to the rising or falling bed surface. If the bed
surface rises at W cm per year, then buried chemical descends through the
bed at W cm per year in reference to the rising bed segments (all other bed
dispersion processes being ignored for the moment). There are two
complications in this approach. First, if the density of the bed increases
17
-------
with depth, then compression must be occuring, decreasing W and squeezing the
pore water and dissolved chemical upward. Second, the simulation time step
is extremely short in relation to the net sedimentation velocity. This
leads to rather severe "numerical dispersion," a form of computational
inaccuracy with in the bed.
To handle the first complication, TOXIWASP assumes two types of bed
sediment: an upper uncompacted layer with bulk density 85, and lower,
compacted layers with bulk density S£. Assuming that sedimentation is in
equilibrium with net deposition, all bed properties remain constant. The
sediment mass addition is:
' Wdsw WsSb
M= V ~ TT* vs (22)
where M = sediment mass added to bed, MT~1
Vs = volume of the upper layer, L , equal to AgLg
A = sediment surface area, L
The volume of sediment added to the upper layer is M/S^, while the
volume added to the lower layer is M/S. The difference in volumes is equal
to the pore water volume squeezed out through compaction. The rise in the
bed surface equals the volume added to the lower layer divided by the surface
area:
_ M li ^* ^
W - ASS£ - Wd Lw S£ - Ws S£ (23)
The amount of chemical lost from the upper bed layer due to sedimentation is:
v |£ = _WA S c' - WA -1 - 1) C1 (24)
s a t s&b sSfc P
where the first term represents sorbed chemical buried downward and the
second term represents dissolved chemical squeezed upward.
TOXIWASP implements a version of this simple approach that amounts to a
Lagrangian scheme for treating movement of chemical through the bed due to
sedimentation. The time step for sedimentation is calculated internally,
based on the scour and deposition rates. Whereas the simulation time step is
on the order of hours, the sedimentation time step is on the order of months
to years. The sedimentation time step varies with location and time and is
tailored to minimize numerical dispersion in sedimentation calculations.
For locations where sediment deposition exceeds scour, TOXIWASP responds
as in Figure 2-4. As sediment and sorbed chemical settle from the water
column, the top bed segment increases in volume, depth, chemical mass, and
sediment mass. Its density remains constant. When the sediment mass in the
top bed segment equals the initial sediment mass in the top two bed segments,
then sediment compression is triggered. At this time the top bed segment
depth (and volume) exceeds the initial top two bed segment depths (and
18
-------
Figure 2-4 TOXIWASP Sediment Burial
to
I
to + At
Segment
1
2
3
4
Time = t0
Depth Density Cone
dt 1.0 Cj(0)
d2 pz 0.0
da f>3 0.0
da Ps C.(0)
Time = t2
Depth Density Cone
dt-d3(2) 1.0 Ct(2)
d2(0)+d3£r Pz C2(2)
da p3 0.0
da P3 C4(0)
Time = t2 + At
Depth Density Cone
dt-d3 1.0 C!(2)
d2 p2 C2(2)
d3 P3 C2(2)g
d3 p3 0.0
+ Compaction: SVOL Compacted = Vol(3) £~ - 1
I I
Pore water volume SVOL squeezed
into water column.
19
-------
volumes) as indicated in Figure 2-4. The top bed segment is now compressed
into two segments.
The new top bed segment has the same depth, volume, and sediment mass
as the initial top bed segment. The new second bed segment has the same
depth, volume, and sediment mass as the initial second bed segment. (In
fact, these properties of lower bed segments always remain constant.) The
combined volume of the top two bed segments is now slightly less than the
volume of the top bed segment just before compression. This volume repre-
sents pore water squeezed into the water column during compression. Chemical
mass in the top two bed segments equals the chemical mass in the top bed
segment just before compression minus the dissolved chemical mass in the
pore water squeezed into the water column. Whereas chemical concentration
remains constant in the top bed segment during the compression step, concen-"
tration increases in the new second bed segment where compression actually
occurs.
Although this sedimentation algorithm minimizes numerical dispersion,
it does lead to discontinuous concentration histories in lower bed segments
as their locations are redefined. For "smoother" output with slightly higher
numerical dispersion, TOXIWASP can recalculate sedimentation ten times per
sedimentation time step. The user can adjust this ratio by altering the
value of "FAG" (Constant 53) from 0.1.
The compression step does not affect any of the properties of the lower
bed segments. In fact, even chemical concentration is unaffected at the
third bed segment and below. Immediately following compression,, however,
TOXIWASP renumbers the lower bed segments, dropping the old bottom segment
from the simulation. Chemical layers, then, are transferred downward intact
and finally lost through the bottom. The accumulated mass lost through the
bottom is saved and printed as variable BMASS(J), where "J" is the number of
the bottom segment. Compression and renumbering completes the TOXIWASP
sedimentation cycle (or time step).
For locations where sediment scour exceeds deposition, TOXIWASP responds
as in Figure 2-5. As sediment and sorbed chemical erode from the bed, the
top bed segment decreases in volume, depth, chemical mass, and sediment
mass. Its density remains constant. When the sediment mass in the top bed
layer equals zero, then segment renumbering is triggered. All the properties
of the remaining bed segments, including chemical concentration, remain
unaffected by renumbering. The new top bed segment, for example, has the
same depth, volume, sediment and chemical concentration as the old second
bed segment. A new bottom bed segment is created with the same physical
properties as the other bed segments. Its chemical concentration, however,
is zero. Renumbering and creation of a new bottom segment completes the
TOXIWASP erosion cycle (or time step).
As a consequence of how TOXIWASP treats sedimentation, certain con-
straints are imposed on the bed segment properties defined in the input data
set. The density (or sediment concentration) of a top bed segment (TYPEE
= 3) must be greater than or equal to the density of the lower bed segments
(TYPEE = 4) within a vertical stack. The volumes, depths, and densities of
20
-------
Figure 2-5 TOXIWASP Sediment Erosion
to
JZ_
1
t2 + At
Segment
1
2
3
4
Time = t0
Depth Density Cone
dj 1.0 0.0
^2 PZ C2(0)
d3 Ps C3(0)
d3 Ps Cj(0)
Time = t2
Depth Density Cone
dl+d2(0) 1.0 Ci(2)
0 Pz C2(0)
d3 P3 C3(0)
d3 p3 C^(0)
Time = t2 -f At
Depth Density Cone
dl+d2(0) 1.0 Ct(2)
d3 P3 C3(2)
d- f\ /O\
Q fs^ *sA.\.&)
d3 /?3 0.0
21
-------
lower bed segments must be constant within a vertical stack. If a smooth
representation of burial is desired, the volumes and depths of lower bed
segments should be significantly smaller than the top bed layer.
If lower bed segments are not included in a TOXIWASP network, then
chemical burial will not take place. The upper bed layer will increase in
volume and depth with settling, or decrease in volume and depth with scour.
TOXIWASP prevents both complete filling of the water column and complete
erosion of the bed.
2.6 TRANSFORMATION PROCESSES
The rate equation for the transformation term K in equations 1, 2a, 16,
and 17 cannot be specified in a general form. Depending on the process under
consideration, many variables may be influencing the rate, leading to a
multi-term and often non-linear relationship. The problem becomes tractible,
however, when it is assumed that the rates are first order with respect to the
pollutant concentration for given environmental conditions, leading to
n
K = z kjC (25)
j-l
where K = total transformation rate, ML~3x~l
k-: = pseudo-first order rate constant for the jth process, which can
vary in space and time, T~l
n = number of processes operating on chemical
This first-order assumption is generally accepted to be accurate for most
chemicals at environmental concentrations. The assumption is invalid at
concentrations near the solubility limit, however. EXAMS does not allow
simulations where predicted chemical concentrations exceed one half of the
solubility limit. TOXIWASP does not automatically abort such runs. If the
user sets CMAX(l) in Card Group K to zero, however, TOXIWASP will abort the
simulation if concentrations become high enough to violate the first-order
assumption. This is accomplished by setting CMAX(l) to one half of the
solubility or 10~5 M} whichever is less. In any case, the user should
analyze results and consider whether this and other assumptions are valid.
Only rarely does the simple mathematical form of equation 25 provide a
rigorous description of the kinetics of pollutant degradation in aquatic
systems. But if the influencing variables that lead to more complex
expressions are reasonably constant for a specific situation then the
influence can be lumped into the single value, k j. The problem of
calculating kinetic transformation then becomes one of calculating the rate
constants k^ from chemical properties and environmental characteristics.
Several investigators have reported processes that influence pesticides
(Mackay and Leinonen, 1975; Paris et al., 1975; Wolf et al., 1975; Wolf et
al. , 1977; Zepp et al., 1975). Smith et al. (1977) have identified the major
pathways that lead to transformation of organic pollutants in the aquatic
22
-------
environment. The role of these processes is receiving increasing attention
and laboratory protocols for related measurements have been developed (Mill
et al., 1982). The general processes identified include hydrolysis, photo-
lysis, oxidation, microbial degradation, and volatilization. TOXIWASP calcu-
lates the individual rate constants kj for each of these processes. Theory
and assumptions are summarized below.
2.6.1 Hydrolysis
Hydrolysis, or reaction of the chemical with water, is known to be a
major pathway for degradation of many toxic organics. Because hydrolysis can
be influenced by pH, the appropriate rate constant, k^, is written as
kh = ka[H+] + kn + kb[OH~J (26)
where k^ = net hydrolysis rate constant, T
ka, kfo = specific acid and base catalyzed rate constants, respectively,
L3n-lT-l
kn = neutral rate constant, T~*
Estimates for ka, kjj, and kn can be determined from laboratory studies
completed over a range of pH values (Mill et al., 1982). The remaining
unknowns in equation 26 can be determined from pH measurements taken in the
aquatic system under investigation or from data from simulations.
In TOXIWASP, hydrolysis by specific-acid-catalyzed, neutral, or
specific-base-catalyzed pathways is considered for dissolved, sorbed, and
biosorbed chemical. Nine second-order rate constants are read-in and
modified based on pH and pOH of the compartment. Hydrolysis, like oxidation,
has paired inputs (ENHG, etc.) that allow calculating or modifying the rates
based on the temperature-based Arrhenius function. For example if KNHG =
2.38E-4 and ENHG = 0.0, then the value of KNHG would be used. Alternately,
if values of ENHG = 20 and KNHG = 11.02 were used, at a temperature of 25°C,
KNHG = 2.36E-4/hr. The value, however, would then change if the water
temperature changed.
2.6.2 Photolysis
Photolysis rate constants are dependent upon both intensity of solar
radiation and structure of the compound (Smith et al., 1977; Zepp and Cline,
1977). This relationship can be written as
kp = 0pl£ALA (27)
where k = net photolysis rate constant, T
0p = reaction quantum yield, moles per einstein
e, = absorption coefficient of the toxicant at wavelength A, per cm per
mole
L, = parameter proportional to incident solar energy flux at wavelength
A, einsteins per square cm per day
23
-------
For most natural waters, adjustments must be made for light extinction (Mill
et al., 1982) as follows.
A
(28)
where a = attenuation coefficient of radiation of wavelength X in water, L~*
£^ = depth of water, L
TOXIWASP calculates photolysis for water compartments by means of the
subroutine PHOT01 from EXAMS. PHOT01 uses an average first order rate
constant measured for near surface waters during cloudless conditions:
3
kp = kpl [Lj Z 0pi a± (29)
1=1
where kpl = average first-order photolytic rate constant for water surface
during cloudless conditions in summer, day~~l
0pi = average reaction quantum yield for compound in form "i"
(dissolved, sorbed, biosorbed) , moles per einstein
[L] = fraction of cloudless summer surface light intensity in
segment, unitless:
-K £ D^
e f
= ( 1~e ) * (1 - .056 CLOUDG) * FACTOR * LIGHTN
Ke& Df
Ke = segment light extinction coefficient, per meter
Df = ratio of optical path length to vertical depth
CLOUDG = average cloud cover, tenths
.056 = cloud type reduction factor (altostratus to altocumulus)
FACTOR = latitude correction factor
LIGHTN = normalized time function for light, representing diurnal
or seasonal changes (0-1.0)
At the heart of this photolysis methodology are two principles. First, the
intensity of light in the water column decreases exponentially as a function
of depth according to the Beer-Lambert Law. The second principle involves
"reaction quantum yields," the efficiency of the reactions in the pollutant
due to absorption of electromagnetic radiation. The "reaction quantum yield1
is actually one of several such yields. Although a molecule activated by
light can undergo several transformations, we are solely interested in the
disappearance yield, that is, the change from parent compound to daughter
compounds.
24
-------
2.6.3 Oxidation
In aquatic systems, chemical oxidation of organic toxicants can be a
consequence of interactions between free radicals and the pollutants. Free
radicals can be formed as a result of photochemical reactions. Free radicals
that have received some attention in the literature include alkylperoxy
radicals, R02»; OH radicals; and singlet oxygen. The oxidation process is
modeled as a second order process:
ROX = kox 1R°2-] c (30)
where R = net oxidation rate, ML T~*
[ROn.J = molar concentration of oxidant, nL
. k = second order oxidation rate constant, L n T
It should be noted that chemical oxidation is a result of a number of
sequential and competing reactions.
Because of the large number of alkylperoxy radicals that potentially
exist in the environment, it would be impossible to obtain estimates of kox
for each species. Mill et al. (1982) propose estimation of a rate coeffi-
cient using t-butyl hydroperoxide as a model oxidizing agent. They argue
that other alkylperoxides exhibit similar reactivities to within an order of
magnitude.
In addition to estimating a rate coefficient, an estimate of free radi-
cal concentrations must be made to completely define the expression for free
radical oxidation. Mill et al. (1982) report R02 concentrations on the
order of 10~9 M and OH concentrations on the order of 10~17 ^ for a limited
number of water bodies. Zepp et al. (1977) report an average value on the
order of 10~12 M for singlet oxygen in water bodies sampled. The source of
free radicals in natural waters is photolysis of naturally occurring organic
molecules. If a water body is turbid or very deep, free radicals are likely
to be generated only near the air-water interface, and consequently, chemical
oxidation will be relatively less important. In such cases, the concentra-
tions cited above are appropriate in only the near-surface zones of water
bodies.
Oxidation can be very important in an ecosystem. Like photolysis,
oxidation is driven by sunlight and is an important mechanism for pollutant
transformation. Through the interaction of sunlight, humic materials, and
dissolved oxygen, chemical oxidants can accelerate the transformation of
chemicals that may not be directly sensitive to sunlight. TOXIWASP handles
this by coupling second order rate constants for dissolved, sorbed, and
biosorbed chemical with a user entry of the oxidants in the ecosystem. It
corrects this on the basis of temperature. Several studies are cited in the
EXAMS manual in which the steady-state oxidant concentrations (mole/liter) in
natural waters are on the order of E-9 for peroxy radicals, E-13 for singlet
oxygen, and E-17 for hydroxyl radicals in near surface waters. Because these
25
-------
concentrations are presumably functions of solar flux, light extinction
effects may also need to be calculated. These can be calculated similarly to
the method used in TOXIPHOT.
2.6.4 Microbial Degradation or Biolysis
Rate expressions for microbial degradation in aquatic systems must
account for the concentration of microbes present, i.e., a second-order rate
expression usually written as
bac ~ bac bac (31)
where Rhac = net microbial degradation rate, ML~^T~^
= second-order bacterial rate constant, L M T
= concentration of the bacteria, ML
The use of kbac as defined in equation (31) follows from the Michaelis-Menten
equation as follows:
C (32)
Km
where v = specific bacterial growth rate,
,ro
ymax = maximum specific bacterial growth rate, T~
Kffl = half saturation constant, ML"
Bacterial growth is related to chemical substrate degradation with the yield
coefficient Y:
Rbac = I ycbac (33)
Y
where Y = yield coefficient, mass biomass produced per mass of chemical
degraded
If Km »C (usually the case at environmentally observed concentrations) then
we can define kbac as
kbac = Umax (34)
and equation 31 results. Practical utilization of equations 31-34 is
fraught with uncertainties and often one is left with the problem of
estimating kbacCbac as a single value for the system under investigation.
In TOXIWASP biolysis is a process rate based on equation 31, where six
second order rate constants are entered for dissolved, sorbed, and biosorbed
chemicals in the water and in the bed. TOXIWASP bases this calculation on
the concept that population size is an adequate measure of the microbial
community's capacity to degrade the toxicant. Temperature effects are
considered by use of the parameter BIOTMG, which is separated from
26
-------
environmental temperature to allow weighting to match observed data.
ACBACG, the proportion of cells actually degrading the toxicant, is another
means of weighting results.
The biolysis kinetics used in TOXIWASP are not as mathematically
complex as the Monod function or other well known techniques. The simpler
approach is desirable for several reasons. One is that less computer time is
needed to solve the first-order rate equations. Also, for all but very rare
cases, the toxicant is not going to be the predominant substrate for feeding
the microorganisms. In these rare cases, the treatment used here is less
acceptable. Yet another reason for simplification is the experimental error
introduced in measuring populations of microorganisms. In short, these
processes are not yet well defined. Thus, TOXIWASP allows several methods to
correct rates to reflect field data.
2.6.5 Volatilization
Another process that removes organic pollutants from the aquatic system
is volatilization. Volatilization is not a transformation process per se
because the mass of the parent compound is preserved but it can be lumped
into the transformation terms. Volatilization is usually modeled as
\ - kv (Cw - £g_) (35)
H
where Ry = net volatilization transfer rate, ML~^T~^
H = Henry's law constant
C = concentration of the chemical in the bulk gas phase, ML
kv = mass transfer coefficient divided by the average depth of the
water body, T~l
In most cases, the concentrations of organic toxicants in the atmosphere are
much lower than the partial pressures equilibrated with the organic concen-
tration in water. Consequently, equation 35 can be approximated by
Rv - kv Cw (36)
The value of kv, the mass transfer coefficient, depends on the
intensity of turbulence in a water body and in the overlying atmosphere.
Mackay and Leinonen (1975) have discussed conditions under which the value of
kv is primarily determined by the intensity of turbulence in the water. As
the Henry's law coefficient increases, the mass transfer coefficient tends to
be increasingly influenced by the intensity of turbulence in water. As the
Henry's law coefficient decreases, the value of the mass transfer coefficient
tends to be increasingly influenced by the intensity of atmospheric
turbulence.
27
-------
Because Henry's law coefficient generally increases with increasing
vapor pressure of a compound and generally decreases with increasing solubi-
lity of a compound, highly volatile low solubility compounds are most likely
to exhibit mass transfer limitations in water and relatively nonvolatile
high solubility compounds are more likely to exhibit mass transfer limita-
tions in the air. Volatilization is usually of relatively less magnitude in
lakes and reservoirs than in rivers and streams.
In cases where it is likely that the volatilization rate is regulated by
turbulence level in the water phase, estimates of volatilization can be
obtained from results of laboratory experiments. As discussed by Mill et al.
(1982), small flasks containing a solution of a pesticide dissolved in water
that have been stripped of oxygen can be shaken for specified periods of
time. The amount of pollutant lost and oxygen gained through volatilization
can be measured and the ratio of mass transfer coefficients for pollutants
and oxygen can be calculated. As shown by Tsivoglou and Wallace (1972),
this ratio should be constant irrespective of the turbulence in a water
body. Thus, if the reaeration coefficient for a receiving water body is
known or can be estimated and the ratio of the mass transfer coefficient for
the pollutant to reaeration coefficient has been measured, the pollutant
mass transfer coefficient can be estimated.
In TOXIWASP, volatilization is the first process considered when the
segment loop is entered. Only the unionized, dissolved molecular form of a
chemical in a water compartment with an air interface can be volatilized.
The volatilization calculation procedure used is based on the two-resistance
principle.
The two-resistance method assumes that two "stagnant films" are bounded
on either side by well mixed compartments. Concentration differences serve
as the driving force for the water layer diffusion. Pressure differences
drive the diffusion for the air layer. From mass balance considerations it
is obvious that the same mass must pass through both films, thus the two
resistances combine in series. There is actually yet another resistance
involved, the transport resistance between the two interfaces, but it is
assumed to be negligible. This may not be true in two cases: very turbulent
conditions and in the presence of surface active contaminants. Although this
two-resistance method, the Whitman model, is rather simplied in its assump-
tion of uniform layers, it has been shown to be as accurate as more complex
models. Laboratory studies of volatilization of organic chemicals confirm
the validity of the method as an accurate predictive tool (EXAMS, sec.
2.3.2).
The volatilization rate constant ky is calculated as follows:
1/Lw (37)
k =
v RESLIQ + RESGAS
__ 1 1 (38a)
RESLIQ - * or
28
-------
RESGAS = (38b)
H * WATA/18/MWTG
TKEL * 8.206E-5
K02L = reaeration velocity in segment, meters per hour
KVOG = measured liquid phase transport resistance, ratio
MWTG = molecular weight of compound
WAT = piston velocity of water vapor, meters per second
= .1857 + 11.36 * WIND
WIND = local, time varying wind speed, meters per second
TKEL = water temperature, degrees Kelvin
8.206E-5 = gas constant
While EXAMS requires that reaeration velocity K02G(J) be specified,
TOXIWASP calculates flow-induced reaeration in subroutine TOXIREOX based on
the Covar method (Covar, 1976). This method calculates reaeration as a
function of velocity and depth by one of three formulas, Owens, Churchill, or
O'Connor-Dobbins, respectively:
K20 = 27.6*AVVELEO-67/AVDEPE0.85 (39a)
K20 = 14.8*AVVELE0.969/AVDEPE°'673 (39b)
or K20 = 16.4*AVVELE°'5/AVDEPE°'5 (39c)
where K20 = reaeration velocity at 20°C, cm/hr
AVVELE = average segment velocity, ft/sec
AVDEPE = average segment depth, ft
The Owens formula is automatically selected for segments with depth less than
2 feet. For segments deeper than 2 feet, the O'Connor-Dobbins or Churchill
formula is selected based on a function of depth and velocity. Deeper,
slowly moving rivers select O'Connor-Dobbins, while moderately shallow,
faster moving streams select Churchill.
Whenever the volatilization rate is calculated during a simulation,
wind-induced reaeration is determined by
K20 = -0.46 * WINDSG + .136 * WINDSG2 (40)
where WINDSG = time-varying wind velocity, meters/sec
A minimum value of 2 cm/hr is imposed on K20. Windspeed affects reaeration,
then, above 6 meters/sec. The reaeration velocity used to compute
volatilization is either the flow-induced reaeration or the wind-induced
reaeration, whichever is larger. Segment temperatures are used to adjust K20
by the standard formula
K02L = 0.01 * K20 * 1.024(TCELG - 20.) (41)
where K02L = segment reaeration rate, meters/hour
TCELG = segment temperature, °C
29
-------
2.7 SPECIAL DATA INPUT OPTIONS
For some simulation problems, flows and mass loadings are quite
variable. Pesticides, in particular, typically enter streams in pulse
loadings associated with runoff events and increased stream flows. To
generate accurate frequency predictions in such situations, both flows and
loads should be specified with more precision than is convenient with the
standard WASP input options.
TOXIWASP provides a special option that causes the input of daily-
average flows and loadings from an auxiliary file. When the constant LOPT
is set to 1.0, TOXIWASP will read Unit 91 at the beginning of each new simu-
lation day. Unit 91 is an unformatted sequential file named 'DAILY.DAT1 in
the POP version. For the IBM version, Unit 91 is named in the JCL. Flows
from Unit 91 replace any flows that may have been read in Card Group D.
Mass loadings from Unit 91, however, are added to those read in Card Group
F. Loads from Card Group F are considered point source loads., while those
from Unit 91 are considered nonpoint source (NFS) loads.
Unit 91 can contain either flows, nonpoint source loads, or both. The
first four variables read are NWKS, MQOPT, MOQ, and SCALQ. NWKS is the
number of nonpoint source loads. If NWKS is 0, the NFS load input section
is bypassed. MOQ is the number of flows. If MOQ is 0, the flow input sec-
tion is bypassed. SCALQ is a scale factor to convert flows to cubic feet
per second (cfs). Daily NPS loads must already be in pounds per day. MQOPT,
a flow option, is read but not used.
If daily flows are to be read, the second set of variables on Unit 91
defines the segment flow pairs. MOQ segment flow pairs are read. Each flow
pair K consists of the upstream segment, JQ(K), and the downstream segment
IQ(K). Positive flows travel from JQ(K) to IQ(K). The Fortran Read
Statement in TOXIWASP is:
READ(91)((JQ(K),IQ(K),K = 1, MOQ)
If daily flows are not to be read, this set of variables should not appear on
Unit 91.
The rest of Unit 91 contains daily flows and/or NPS loads. At the
beginning of each new day, NPS loads of chemical and sediment are read for
each of NWKS input segments. These segments must be in the order defined by
Card Group F. The Fortran Read Statement in TOXIWASP is:
READ(91)((NPSWK(I,J),I = 1,2), J=l, NWKS)
where NPSWK (1,J) is NPS chemical load in Ib/day and NPSWK (2,,J) is NPS
sediment load in Ib/day. If NWKS is 0, this set of variables should not
appear on Unit 91.
30
-------
Next, flows are read for each of MOQS flow pairs. The flows must be in
the order defined by the second set of variables on Unit 91. The Fortran
Read Statement in TOXIWASP is:
READ(91)(BQ(K),K=1,MOQ)
where BQ(K) is the flow from JQ(K) to IQ(K) in cfs.
of variables should not appear on Unit 91.
If MOQS is 0, this set
The contents of Unit 91 are summarized on Table 2-2. Simple programs
can be written to produce this file. The following software for the PDF
computer is available to construct a proper Unit 91 file.
DAILYCVT - This program converts flows and loadings from user
specified files into an unformatted, sequential file for
input to TOXIWASP. The user is queried for the load file
name and format, and the flow file name and format. The
indicated files are read and data are written to the file
DAILY.DAT in the proper sequence.
HSPFCVT - This program converts an HSPF plot file to a formatted
WASP file with NFS loads. The user is queried for seg-
ment numbers and associated acreage for which the HSPF
unit loads apply. The user then enters the beginning
and ending date. The HSPF file is read, and data are
written to the file WASPLD.DAT. This file can be pre-
pared for input to TOXIWASP using DAILYCVT.
SWRVCVT - This program converts a SWRV plot file to a formatted
WASP file with NFS loads. It is equivalent to HSPFCVT.
The SWRV file is read, and data are written to the file
WASPLD.DAT. This file can be prepared for input to
TOXIWASP using DAILYCVT.
Some simulation problems require detailed, time-varying flows and
volumes. For these, WASP has been modified to accept hydrodynamic data
generated by the Stormwater Management Model (SWMM), receiving water block
(RECEIV), program SWFLOW (see Huber, et al., 1975). The network for SWFLOW
must be equivalent to the network for WASP (i.e., the SWFLOW junctions, or
nodes, are the same as the WASP segments). Hydrodynamic data from SWFLOW are
stored on Unit 92, and read by WASP through subroutine SWFLOW. To invoke
this option, both IVOPT and IQOPT in Card Groups C and D should be set to 4.
The water quality time step specified in the SWFLOW hydrodynamic simulation
is automatically used in the WASP simulation.
31
-------
Table 2-2. Structure of Auxiliary Flow and
Nonpoint Source Load File 'DAILY.DAT'
Condition Da)
0
MOQ > 0
Contents*+
NWKS,MQOPT,MOQ,SCALQ
JQ(1),IQ(1),JQ(2)>IQ(2),...,JQ(MOQ),IQ(MOQ)
NWKS >0
MOQ >0
NPSWK(1,1),NPSWK(2,1),NPSWK(1,2),...,NPSWK(2,NWKS)
BQ(1),BQ(2),...,BQ(MOQ)
NWKS >0
MOQ >0
NPSWK(1,1,NPSWK(2,1),NPSWK(1,2),...,NPSWK(2 ,NWKS)
BQ(1),BQ(2),...,BQ(MOQ)
NWKS > 0 TEND
MOQ > 0
NPSWK(1,1),NPSWK(2,1),NPSWK(1,2),...,NPSWK(2,NWKS)
BQ(1),BQ(2),...,BQ(MOQ)
* Data written sequentially.
+ The following variables are integers: NWKS, MQOPT,, MOQ, JQ, IQ.
All other variables are real (floating point) numbers.
32
-------
2.8 SPECIAL SIMULATION CONTROL
For seasonal or multiyear simulations, the environmental conditions
affecting chemical transformation rates change slowly relative to the
simulation time step. Consequently, it is inefficient to recalculate the
chemical transformation rates every time step, or even every day. TOXIWASP
recalculates the total transformation rate at constant intervals specified by
the user. The time interval between rate computations is given by the
constant TDINT. To investigate seasonal variability, the user may specify
TDINT of 15 or 30 days. To investigate diurnal variability, the user may
specify TDINT equal to a short time step of, say, 0.05 day. A TDINT value of
0 is automatically set to a very large number. Rates are calculated the
first time step only, and are held constant throughout the simulation.
The user can specify the total chemical transformation rates with the
spatially variable parameter TOTKG(J). If TOTKG(J) is positive for a seg-
ment, rate calculations are bypassed for that segment. Specified rates are
constant throughout the simulation. It is possible to specify rates for
some segments and have TOXIWASP calculate rates for the remaining segments.
If TOTKG(J) is 0 for a segment, TOXIWASP calculates a rate and stores it (as
a negative number) until the next recalculation TDINT days later.
WASP requires the user to specify simulation time steps, which can vary
throughout the simulation. Three problems can occur. If the time step is
too large, computational instability develops and halts the simulation. If
the time step is too small, numerical dispersion builds up and leads to
inaccuracies. A small time step is also inefficient and leads to high costs.
The optimal time step varies inversely with flow and dispersion, and directly
with segment size:
TRT = VOL (42)
TQ + TR
where TRT = optimal time step for segment, days
VOL = volume of segment, MCF
TQ = total flow through segment, MCF/day
TR = total dispersive exchange, MCF/day
For irregular networks with unsteady flow, TRT varies both spatially and with
time. If the constant DTOPT is set to 1.0, TOXIWASP calculates the optimal
time steps TRT for the network and selects the minimum to avoid instability.
TRTs are recalculated every time step for flow options 2 and 3, and every day
for the special flow input option through Unit 91.
2.9 SPECIAL OUTPUT OPTIONS
Standard output from WASP is limited to regular intervals, which must be
approximately ten days apart for a year's simulation. For problems with
variable mass loadings, this output can miss significant concentration
33
-------
events. TOXIWASP allows the user to have peak events printed out. Two
constants must be specified. The first is the reference concecitration CTRIG.
The second is the reference segment XJTR. Whenever concentrations rise above
CTRIG in segment XJTR, special event printout is triggered. Chemical
concentrations for all segments are printed out every three hours until the
event ends. If CTRIG is set to 0.0, this special event printout is skipped.
For many problems, statistical summaries are the most convenient form of
output. The use of the cumulative distribution function (cdf) to estimate
frequency for exposure assessment was discussed in Section 1.2. When a
reference segment XJTR is designated, TOXIWASP builds a file containing the
time history of chemical concentrations at that segment and the top benthic
segment below it. Total, dissolved, sediment-sorbed, and biosorbed chemical
concentrations are written to the file every three hours throughout the
simulation. Following the simulation, this file is processed by program
TOXIFREQ and subroutine TOXIORDR to obtain statistical summaries. Two tables
are printed. The first describes the frequency distribution with the mean,
standard deviation, skewness, kurtosis, and select percentiles. The second
gives the cumulative frequencies at intervals of 0.02.
2.10 SUMMARY OF TOXIWASP CAPABILITIES
The following finite difference equations summarize the capabilities of
TOXIWASP. They refer to segments 3 and 4 of the river shown in Figure 2-1.
The symbols used are defined in the appropriate sections of this chapter,
with subscripts added to indicate segment number. G£ 3> for example, revers
to sediment concentration (C2) in segment 3. Subscripts separated by a dash
refer to the interface between two segments. Qi-3 > f°r example, refers to
the flow between segments 1 and 3. Subscript "k" refers to the chemical
form: dissolved, sorbed, or biosorbed. ct^ .= , then, refers to the fraction
of chemical of form "k" in segment "j " , and «2 4 ^s tne sorbed fraction in
segment 4.
Solids in Segment 3 of River
= Qj_3 C£ i ~ 0.3-5 C2 3 Advection (2.1)
C2.1 - C2,3 C2>3- C2;>5
+ E^-3 A^_3 Ll-3 ~ E3-5 A3-5 L3-5 Dispersion
(2.1)
+ W£ 3 Mass Loading (2.1)
4 - Lw 3 Scour, Deposition
(2.2)
34
-------
Chemical in Segment 3 of River
\7 * = O C O C
V3 dt ^1-3 1,1 W3,5 1,3 Advection (2.1)
A C1>3-Clt5
1-3 1-3 Lj_3 3-5 3-5 L3_5 Dispersion (2.1)
+ Wj 3 Mass Loading (2.1)
+ Ws,4G2,4 * Ci>4 "2>4
Lb>4 C2>4 Scour (2.2, 2.4)
,3 "2,3
3 C2 3 Deposition (2.2,
2.4)
+ Db A .Cl,4 al,4 - C1.3 al,3
3-4 3-4 I L_ J Pore Water
D A
- L_ Po
Diffusion (2.4)
Db A * f * A
3-4 3-4 s,4 04 Direct Sorptive
CT A a-> A ci -3 ao i ^ A Exchange with Bed
*[_iii__lti _ J-^3 2,3 t _4j Surface (2.4)
C2,4 C2,3 ^3
,C1^ aL* or C1.3 oci.3
P,4l 0^ 03 J Percolation or
Infiltration (2.4)
3
IE (ka k[H'f]3 + kn k + kb k[OH~]3) ak)3JC1 3 Hydrolysis (2.6.1)
k=l ' ' ' '
3
kpl[LJ3 [ £ 0p,k ak,3Jcl,3 Photolysis (2.6.2)
k=l
3
I E kox,k^R02-b ak,3^cl,3 Oxidation (2.6.3)
k=l
3
[ z kbac,ktcbach ak,3lcl,3 Bacterial Degrada-
k=l tion (2.6.4)
35
-------
-kv (wind, current, depth) al 3 GI 3 Volatilization
(2.6.5)
Chemical in Segment 4 of River
v dCl»4
4 dt = Deposition-Scour-Pore Water Diffusion
-Direct Sorptive Exchange with Bed Surface
-Percolation (or + Infiltration)
-Hydrolysis-Oxidation-Bacterial Degradation
Networks with multiple benthic segments may also transport chemical
through the process of sedimentation. For example, Segment 2 of the lake in
Figures 2-1 and 2-3 can be represented by the following finite difference
equation:
Lake Segment 2
dC 1 ?
V
2 dt = Deposition-Scour
-Pore Water Diffusion
-Direct Sorptive Exchange with Surface
-Percolation (or + Infiltration
-Hydrolysis-Oxidation
-Bacterial Degradation
wd ws G! 2 a2 2
(*T C2 1 ~ h. C2 2^ ^2 ^2~~2'~ Burial (2-5)
Wd C2)i ^s C2,2 C2>3
"^L, C9 o ~ L0 C9 o^ 2 ^C9 9 -1^ Pore Water Squeezed
1 2,3 2 2,3 2,2 (2>5)
36
-------
SECTION 3
WASP MAINLINE AND SUBROUTINE OVERVIEW
WASP is a modular program. Its many subroutines can be grouped into the
standard categories of "input," "process," "output," and "utility," as in
Figure 3-1.
The WASP mainline is really just a program control module. As such it
assigns the logical units (disk) for temporary scratch files and the dump-
save files generated in the kinetic subroutine, and controls the calling
sequence of the WASP subroutines.
The following subroutine descriptions include references (within paren-
theses), to Card (or Record) Groups. These groups of WASP input data are
described in Section 4, WASP Input Structure. Also, in the following
subroutine description, occasional reference to internal WASP program
variables will be made. A complete definition of these variables is pre-
sented in the Glossary Section entitled "WASP COMMON."
WASP1
WASPl reads the model identification and system by-pass options for the
user's model (Card Group A). WASPl also performs some variable initializa-
tion. Two variables of interest set by WASPl are NBCPSY and NWKPSY. NBCPSY
and NWKPSY are used, respectively, to indicate the maximum number of boundary
conditions and forcing functions for which WASP is dimensioned.
WASP2
WASP2, depending upon the input option selected by the user, reads Card
Group B, the time variable or constant exchange coefficients (or dispersion
coefficients, cross-sectional areas, and characteristic lengths with appro-
priate conversion to exchange coefficients). WASP2 also reads the exchange
by-pass options for each system.
WASP3
WASP3 reads the segment volumes (Card Group C).
WASP4
WASP4, depending upon the input option selected by the user, reads the
time variable or constant advective flows (Card Group D). WASP4 converts the
flows from cubic feet per second to million cubic feet per day. WASP4 also
reads the flow by-pass options for each system.
37
-------
Du 0 n
O O ?1
3 a <
s ;=! o
Et. fc CO
1 1
O
^ i
CO
0) M
d ^
^ K^
.2? o
DH
OH
^
-WMESS
c
c
r
-t-
^
-+
"
f
c
«c
^
2
£
P
c/
<:
&
a
P
t
0
L)
H
J
H
H
J
J
H
H
li
H
^
-t
si
J)
H
0
U
»
a
c
e
^ P
H E-
a 6
CO 0
1
-FMTER
a
o
i
i
OT 1 lO
CD i *-i
O CO
0 I <
1
1
-4-)
n
h~H
i-H
01
1
1-H
1
T 1
CO
1
C\J
a,
CO
£
\
a
T"
C/
&
(
K
r
<
0
0
p
0
3 05
3 CO
" 1
CD
.-. CO
Q) "3
6 OT
CD
U ^3 ^
H ? CO
3 .S
-------
WASPS
WASP5, depending upon the Input options selected by the user, reads the
time variable or constant boundary conditions for each system in the user's
model (Card Group E).
WASP6
WASP6, depending upon the input options selected by the user, reads the
time variable or constant forcing functions for each system in the user's
model (Card Group F).
WASP7
WASP? reads the kinetic constants, segment parameters, and kinetic
piecewise linear functions of time (Card Group G, H, and I, respectively).
WASPS
WASPS is used to update the piecewise linear functions of time, if any,
for exchange coefficients, advective flows, and the miscellaneous kinetic
functions. This means computing new slopes and intercepts, and setting a
variable to indicate the next simulation time that the functions are to be
updated. The following convention is used for the itn update.
slope = f(t)j+i - f(t)j
intercept
next update time
WAS8A
WAS8A is used to update the piecewise linear functions of time, if any,
for boundary conditions and forcing functions. This means computing new
slopes and intercepts for any system or state variable that requires an up-
date, and setting a variable to indicate the next simulation time that the
piecewise linear functions are to be updated. The same conventions used in
WASPS are used in WAS8A for computing slopes and intercepts.
WASP9
WASP9 reads the initial conditions or initial segment concentrations for
each system or state variable (Card Group J). WASP9 also reads the stability
and accuracy criteria (Card Group K) for each system.
39
-------
WAS 10
WAS10 reads the print control options (Card Group L), consisting of the
print interval and up to eight system-segment pairs for intermediate print-
out during the simulation.
WASH
WASH reads the integration control information (Card Group M). The
integration control information includes the integration step-size or sizes
to be used, the total simulation time, the starting time for the simulation
(if not zero), and whether negative solutions will be permitted.
WAS12 - WAI 2A
WAS12 and WA12A act together to complete the evaluation of the mass
balance Equation (2.16). Upon entry to WAS12, only the kinetic portion of
the mass balance equation has been evaluated, which for discussion purposes
will be noted as K V C . WAS12 then goes through the following steps.
a. Using the IQ and JQ vectors as drivers, WAS12 computes
or (V C-m) = K-V C-m + ZQ..C.m EO. C-m
where Q may be computed as a function of time using the MQ (slopes)
and BQ (intercepts) vectors or Q may be a constant (using BQ vector)
b. Using the IR and JR vectors as drivers, WAS12 computes
or (ViCim) = K^C^ + SQjiCj111 - Z3±}!.C±m + ER^ (C^ - C/1)
where R may be computed as a function of time using the MR (slopes)
and BR (intercepts) vectors, or R may be a constant (using the BR
vector) .
c. Using the IWK vector as a driver, WAS12 computes
(ViC^) = (vicim) + v±m
or (V±C±m) = K^C^ + SQjiCi1" - ^QifcCi111 + £Ri-j(C.jm - C^) + W±m
where W may be computed as a function of time using the MWK (slopes)
and BWK (intercepts) vectors or W may be a constant (using the BWK
vector) .
40
-------
d. WAS12 completes the evaluation of the derivative, C^ by dividing
through by the volume and multiplying by the time scale factor
(SCALT)
Cj = SCALT x (V^111)/^
Note: C^ now has units M/L3/T - nominally mg/l/day.
WAS 13
WAS13 is used to print the intermediate system-segment pairs during the
simulation.
WAS14
WAS14 is used to adjust the integration stepsize as necessary, during
the simulation.
UNIT
TINIT is used to set the initial slopes and intercepts for any piecewise
linear functions of time if the user starts a simulation at any time other
than time equal to zero.
WAS15 or EULER
WAS15 or EULER is the heart of the integration procedure. It determines
the calling sequence for TINIT, WASPB (the user's kinetic subroutine), WAS12,
WA12A, WAS13, and WAS14. WAS15 performs a second order Runge-Kutta integra-
tion, while EULER performs a first-order Euler integration. A brief flow-
chart is presented in Figure 3-2.
WAS16
WAS16, dependent upon the user's input data, retrieves and prints the
state variables (or water quality concentrations) and any other variables of
interest (that the user computed in WASPB) from the auxiliary storage (disk
files) that were generated in WASPB during the simulation.
SWFLOW
SWFLOW reads hydraulic information created by SWMM (RECEIV block, program
SWFLOW). This subroutine is invoked when IQOPT in Card Group D is set to 4.
IVOPT in Card Group C must also be 4. The file is named "SWFLOW.DAT," and is
locted on unit 92.
41
-------
Figure 3-2
Simplified EULER/WAS15 Flow Chart
Call EULER^N
or WAS15 J
^
Calculate Kinetic Derivative
Calculate Transport, Load Derivative
Intermediate
Dumps
Calculate Kinetic Derivative
42
-------
WAS 17
WAS17, dependent upon the user's input data, retrieves and provides
printer plots for the state variables (or water quality concentrations) and
any other variables of interest (that the user computed in WASPB) from the
auxiliary storage (disk files) that were generated in WASPB during the simu-
lation.
WAS 18
WAS18, written especially for the DEC PDF 11/45, provides off-line
digital pen plotting capabilities. The pen plots generated are similar to
the printer plots available through WAS17, but in addition permit the user
to overplot his observed field data for model-data comparison.
WAS 19
WAS19, dependent upon the user's input data, retrieves and provides
printer plots of the spatial variation at selected times for the state vari-
ables (or water quality concentrations) and any other variables of interest
(that the user computed in WASPB) from the auxiliary storage (disk files)
that was generated in WASPB during the simulation.
Auxiliary plot subroutines called by WAS19 include SIR, PLOT, BLKPLN,
and ENCOD (for IBM version only).
Miscellaneous Subroutines
WASP also includes a number of subroutines that perform rather trivial,
but necessary, operations. These subroutines include SCALP, WMESS, WERR,
SETIA, SETRA and FMTER.
DEC PDP Subroutines
Two special subroutines were written for the DEC computer system. These
subroutines FILEOP and FILEOC were necessitated due to the way the DEC
operating system handles disk output, i.e., requiring separate core buffers
for each disk file. FILEOP and FILEOC permit the disk files to share a
common disk buffer, reducing the excessive core requirements required for
separate buffers, at little cost to execution time.
TOXIWASP Kinetic Structure
The standard WASP kinetic subroutine shown in Figure 3-1 is actually a
set of subroutines in TOXIWASP. The structure of these subroutines is
illustrated in Figure 3-3. These WASPB subroutines combine chemical and
environmental parameters to first-order rates and, from chemical
concentrations passed by WASP, calculate kinetic derivatives. These
derivatives are passed back to WASP where they are integrated along with the
transport and loading derivatives every time step.
43
-------
£
^.
o
-p
rn
^
« rn ^
rH >'« -
(
(
I
X
3
)
Q
><
0
Q
W
X
O
I-J
CO
o
Q
O
Ct,
X
o
EH
EH
O
w
o
EH
.
E~*
0
EH
X
O
w
o
EH
44
-------
TOXIWASPB
TOXIWASPB serves as the main program for the kinetic portion of
TOXIWASP, calling other subroutines when appropriate. Initialization is
performed during the first time step by calling TOXINIT. As the simulation
progresses, the proper time- and space-variable environmental and chemical
characteristics are calculated, then passed to TOXIFORD. Kinetic derivatives
are calculated based on first-order rate constants returned from TOXIFORD.
These derivatives are then adjusted for settling, erosion, and percolation
by calling TOXISETL. Further adjustments in the derivatives due to pore
water mixing and sediment-water exchange are calculated by calling TOXISEDW.
Variables are periodically dumped to a save file and intermediate parameters
and results are printed by calling TOXIDUMP. Finally, daily flows and non-
point' source loads are read from an auxilliary file.
TOXINIT
TOXINIT is called during the first time step only to initialize
parameters and functions for the chemical simulation. A sequential file is
set up for reading daily flows and nonpoint source loads, and two tables are
printed. The top sediment layer for the special print segment is identified.
Effective partition coefficients for each segment are calculated from either
the organic carbon or octonol-water partition coefficient, the spatially
variable sediment organic carbon fractions, and the target organism organic
carbon content. For benthic segments, the units of biomass are adjusted and
porosity is calculated. The active bacterial population is calculated for
all segments. Initial and reference bed volumes are saved, values are ini-
tialized to 0, and CMAX(l) is set to assure the first-order decay assumption.
Finally, TOXINIT checks for proper segment alignment, with assigned numbers
increasing sequentially from water surface to bottom benthic segments.
TOXIFORD
TOXIFORD, a modification of the EXAMS subroutine FIRORD, calculates
total first order chemical transformation rates for each segment as the
simulation progresses. The total first-order rate for each segment is the
summation of the transformation (including degradation or transfer) rates
due to five processes: hydrolysis, oxidation, bacterial degradation, volati-
lization, and photolysis. These individual rates are calculated from ambient
environmental and chemical characteristics passed from TOXIWASPB.
Whenever total rates are to be recalculated during a simulation,
TOXIWASPB calls TOXIFORD once for each segment. TOXIFORD first calculates
the volatilization transfer rate of dissolved chemical from surface water
segments by calling TOXIVOLT. Next, the photolysis rate constant is calcu-
lated for water segments by calling TOXIPHOT. Then, for each species of the
chemical (dissolved, sediment-sorbed, and biosorbed), first-order transforma-
tion rates are calculated for photolysis, hydrolysis, oxidation, and bac-
terial degradation. Finally these individual rates are summed to give a
total first-order chemical disappearance rate, which is passed back to
TOXIWASPB.
45
-------
TOXIVOLT
When called by TOXIFORD, TOXIVOLT computes the volatilization transfer
rate constant for a surface water segment using a two-film model of movement
of toxicant across the air-water interface. Liquid phase resistance is
computed from oxygen reaeration rates modified by the chemical molecular
weight. Gas phase resistance is computed from wind speed and Henry's Law
constant, which is supplied by the user or calculated from vapor pressure and
solubility data. The volatilization rate is computed from the air and water
phase resistances and the depth of the surface water segment.
TOXIPHOT
When called by TOXIFORD, TOXIPHOT computes the photolysis transformation
rate constant for a water segment. TOXIPHOT accepts a measured (clear day)
photolysis rate constant at a specified reference latitude as input data.
Next, this rate constant is corrected for the latitude, cloud cover, and
light extinction in the water column. The rate is further modified by a
time-varying input function to approximate seasonal changes in incident light
intensity.
TOXIREOX
TOXIREOX is call by TOXIFORD for surface water segments to calculate
reaeration velocities. These are used in TOXIVOLT for calculating
volatilization rates. For the first time step only, TOXIREOX calculates
average flow-induced reaeration rates by the Covar method (Covar, 1976) using
average segment velocities and depths. In subsequent time steps, TOXIREOX
calculates time-varying wind-induced reaeration rates. The reaeration rate
returned to TOXIFORD is either the flow-induced rate or the wind-induced
rate, whichever is larger. TOXIREOX is slightly modified from the HSPF
subroutine OXREA.
TOXISETL
TOXISETL is called by TOXIWASPB for each segment and each time step to
calculate settling of chemical and suspended sediment from the water column,
erosion of chemical in the bed, and percolation of dissolved chemical
vertically through the bed. Concentration derivatives are adjusted within
TOXISETL. First, settling rates are calculated from spatially variable
settling velocities, segment depths, concentrations of sorbed chemical and
suspended sediment. Erosion is calculated from spatially variable yearly
depletion rates from the bed sediment surface, along with sediment density
and sorbed chemical concentration. Bed sediment segments are assumed to
maintain their physical characteristics, such as density, porosity, and
organic content. Vertical pore water percolation is calculated from spa-
tially variable vertical flow rates, along with porosity and dissolved con-
centrations. Positive flow is upward, and negative flow is downward. It
should be noted that downward percolation will eventually transport the
chemical out of the bottom benthic segment.
46
-------
TOXISEDW
TOXISEDW is called by TOXIWASPB for surface benthic segments each time
step to calculate dispersive exchanges of chemical between the bed and the
water column. Concentration derivatives are adjusted within TOXISEDW. The
two mechanisms are pore water diffusion and local surface sediment
equilibration with the water column. Pore water diffusion is calculated from
spatially variable diffusion coefficients, surface areas, characteristic
mixing lengths, and sediment porosity. Sorption-desorption of chemical
between overlying water and the benthic surface is calculated using sediment
turnover rates and chemical partition coefficients. Because local equili-
brium is assumed, sorptlon-desorption is controlled by the fraction of under-
lying sediment brought into contact with the overlying water per unit time.
This fraction is related to the pore water diffusion rate by a spatially
variable multiplier supplied by the user. For immobile, armored stream
reaches, the multiplier may be 0, whereas for reaches vigorously mixed by
physical or biological processes, the multiplier may be 1, with high pore
water dispersion coefficients as well.
TOXIDUMP
At specified intervals, TOXIWASPB calls TOXIDUMP to prepare or print
output from the simulation. Three kinds of output are handled. The first is
the standard WASP dump of select variables to a save file at fixed intervals.
Eight variables are dumped for "System 1": total chemical concentration
(mgc/l-jO , dissolved chemical concentration (mgc/lw), sediment-sorbed chemical
concentration (mgc/kgs), biosorbed chemical concentration (ugc/gb), chemical
fraction dissolved, chemical fraction sediment-sorbed, chemical mass in seg-
ment (kg), and chemical mass lost through volatilization or burial (kg).
Eight more variables are dumped for "System 2": total sediment concentration
(rags/If), segment depth (ft), the total transformation rate (per day), the
photolysis rate, the hydrolysis rate, the biodegradation rate, the oxidation
rate, and the volatilization rate (all specific rates in units of per hour).
The second kind of output is event-triggered. When the total chemical
concentration exceeds a reference value at a selected segment, total chemical
concentrations are printed for every segment every 3 hours until the
concentration again falls below the reference.
The third kind of output is the dump of chemical and sediment
concentrations at a selected water segment (and its top benthic segment) to a
save file every 3 hours. This file is processed by TOXIFREQ after the
simulation to yield statistical information, including a cumulative frequency
table. Concentrations analyzed include total chemical, dissolved chemical,
sediment-sorbed chemical, and biosorbed chemical.
TOXIFREQ
After completion of the simulation, TOXIFREQ processes a file of chemi-
cal concentrations at a water and a benthic segment, producing statistical
tables. A save file of concentrations written every 3 hours by TOXIDUMP is
47
-------
first ordered by TOXIORDR. Next, the statistics are computed, including
minimum, maximum, and mean; various percentiles; standard deviation;
skewness; and kurtosis. This table is printed, then a cumulative frequency
table is prepared, with concentrations corresponding to ascending even
probability values (0.0, 0.02, 0.04,..., 0.98, 1.00). This table is printed,
and a plot file is prepared.
48
-------
SECTION 4
PREPARATION OF DATA INPUT
This section describes the input required to run TOXIWASP. This section
is reproduced, mostly intact, from the WASP user's manual. Although the
general input structure allows many systems (or state variables), TOXIWASP
allows only two: organic chemical and sediment. Furthermore, whereas WASP
allows arbitrary segment numbering schemes, TOXIWASP requires that vertically
layered sections be numbered sequentially from surface water to bottom
benthic.
To arrange the input data into a logical format, the data cards required
are divided into 14 card groups, A through N. The card groups are briefly
summarized in Table 4-1. For each card group, a brief description of each
card is given to define the variables that appear within the group, and any
options that may be available. Depending upon the structure of the user's
model, a certain card group, or cards within a group, may not need to be
inputted. Where it is appropriate, the manual informs the user how to avoid
inputting unnecessary information.
To help the user visualize how the data input file is organized, a
sample dataset is provided as Appendix 4. This dataset describes the
constant addition of the chemical dibenzothiophene into the pond illustrated
in Figure 2-1 (page 6).
Provisions for handling a wide range of time and space scales are con-
tained in the data input structure via scale factors. These scale factors
facilitate the conversion of the user's time and space units to those con-
sistent with the WASP program. The standard units for the WASP input data
are detailed in this manual. Departure from these units necessitates the
use of appropriate scale factors. Scale factors may also be used to scale
input data in sensitivity analysis. For example, a user may wish to test
the effect of increased dispersion upon the model. Rather than altering all
the interfacial dispersion coefficients he may simply change the dispersion
coefficient scale factor to reflect the appropriate increase in dispersion
levels.
4.1 CARD GROUP A - MODEL IDENTIFICATION AND SYSTEM BYPASS OPTIONS
The variables that appear on each card are as follows.
4.1.1 Model Identification Numbers
49
-------
TABLE 4-1. SUMMARY OF CARD GROUPS
Card Group
A. Model Identification and System Bypass Options
1. Model Identification Numbers
2. Title Card
3. Simulation Option
4. System Bypass Option
B. Exchange Coefficients
1. Number of Exchange Coefficients, Input Option Number
2. Scale Factor
3. Exchange Coefficients
4. Exchange Bypass Options
C. Segment Volumes
1. Number of Volumes, Input Option Number
2. Scale Factor
3. Volumes
D. Flow
1. Number of Flows, Input Option Number
2. Scale Factor
3. Flows
4. Flow Bypass Option
E. Boundary Conditions
1. Number of Boundary Conditions, Input Option Number
2. Scale Factor
3. Boundary Conditions
Cards 1-3 are inputted for each system of the model
F. Forcing Functions
1. Number of Forcing Functions, Input Option Number
2. Scale Factor
3. Forcing Functions
Cards 1-3 are inputted for each system of the model
G. Parameters (Environmental Characteristics)
1. Number of Parameters
2. Scale Factors
3. Parameters
H. Constants (Chemical Characteristics and Special Options)
1. Number of Constants
2. Constants
50
-------
TABLE 4-1. (CONT.)
Card Group
I. Miscellaneous Time Functions (Environmental Variability)
1. Number of Time Functions
2. Functions Name, Number of Breaks in Function
3. Time Function
Cards 2 and 3 are inputted for each time function required by
the model
J. Initial Conditions
1. Initial Conditions for each system of the model, i.e.,
chemical and sediment
K. Stability and Accuracy Criteria
1. Stability Criteria
2. Accuracy Criteria
L. Intermediate Print Control
1. Print Interval
2. Display Compartments
M. Integration Control Information
1. Integration Option
2. Time Warp Scale Factor
3. Integration Interval and Total Time
N. Display Parameters
1. Variable Names
2. Dump Parameters
3. Printer Plot Parameters (Time History) Cards 1 and 2 are
read for each system; etc.
4. Printer Plot Parameters (Spatial Profile)
5. Pen Plot Parameters
51
-------
Card Group A.
Model Identification and System Bypass Options
5 10 15 20 25 30 35
MODEL ISER IRUN NOSEG NOSYS LISTG LISTC
FORMAT (715)
MODEL = model designation.
ISER = series designation.
IRUN = run number.
NOSEG = number of model segments.
NOSYS = number of systems, here always = 2.
LISTG = 0, print input data for exchange coefficients, volumes,
flows, and boundary conditions on the principal output
device.
= 1, suppress printing of input data for exchange coeffi-
cients, volumes, flows, and boundary conditions.
LISTC = 0, print input data for forcing functions, segment para-
meters, constants, miscellaneous time functions, and initial
conditions on the principal output device.
= 1, suppress printing of input for forcing functions, segment
parameters, constants, miscellaneous time functions, and
initial conditions.
MODEL, ISER, IRUN, although not actually used by the WASP program, can
assist the user in maintaining a log of computer simulations.
4.1.2 Title
80
VERIFICATION OF AUGUST 1973 RIVER SURVEY, REACH 1
FORMAT (20A4)
Card column 1-80 contain any information the user feels would be helpful
in describing the run and identifying the output for later reference.
4.1.3 Simulation Option
Presently WASP permits only time variable simulations, therefore include
the following card.
1 24
TIME VARIABLE SIMULATION
FORMAT (6A4)
52
-------
4.1.4 Systems Bypass Options
2 4
SYSBY(l) SYSBY(2) ... SYSBY(NOSYS)
FORMAT (1912)
SYSBY(K) = 0, perform the kinetic and transport phenomena associated
with system K (numerically integrate the differential
equations).
= 1, bypass all kinetic and transport phenomena associated
with system K (concentrations read as initial conditions
for system K apply throughout simulation period).
4.2 CARD GROUP B - EXCHANGE COEFFICIENTS
Exchange coefficients in TOXIWASP may be inputted in only one of WASP's
six formatscoefficients calculated from inputted dispersion coefficients
and accompanying cross-sectional areas and characteristic lengths.
4.2.1 Data Input Option Number; Number of Exchange Coefficients
5 10
IROPT NOR
FORMAT(2I5)
Data input options:
IROPT = 4, constant exchange coefficients calculated from the
dispersion, coefficient, cross-sectional area, and
characteristic lengths specified for each interface.
NOR = number of exchange coefficients.
If no exchange coefficients are to be read, set NOR equal to zero, and
continue with Card Group C.
4.2.2 Scale Factor for Exchange Coefficients
10
SCALR
FORMAT (E10.3)
SCALR = scale factor for exchange coefficients. This can be used
for units conversion or for sensitivity analysis.
53
-------
4.2.3 Exchange Coefficients
The data input format is determined by the option selected.
Option 4
Each card in this package contains the information to calculate the
exchange coefficients for two interfaces. The number of dispersion co-
efficients is equal to NOR. The information on each card is described
below:
10
E(K)
50
T7/V'_|_T ^
I-* \ Jx> J- J
20
A(K)
60
A(K+1)
25
IL(K)
65
IL(K+1)
30
JL(K)
70
JL(K+1)
35
IR(K)
75
TD f VJ-1 ^
J- R \ R. i J- /
40
JR(K)
80
JR(K+1)
E(K)
FORMAT (2(2F10.0, 2F5.0, 215))
= dispersion coefficient for the interface between segment
IR(K) and JR(K) in square miles/day. If exchange is
between bed and water column, the units are square
centimeters/sec.
= the interfacial cross-sectional area between segments 1R(K)
and JR(K), in square feet.
= the length of segment IR(K), with respect to the IL(K)-
JL(K) interface, in feet.
the length of segment JR(K) in relation to the IR(K)-
JR(K) interface, in feet. If a segment exchanges with a
boundary, the characteristic length of the boundary should
be set equal to the length of the segment with which it is
exchanging.
IR(K),JR(K) = segments between which exchange takes place. NOTE: for
exchange only, order is not important if a segment ex-
changes with a boundary, the boundary is specified as zero.
4.2.4 Exchange Bypass Options
2 4
A(K)
IL(K)
JL(K)
RBY(l) RBY(2) RBY(NOSYS)
FORMAT (1912)
RBY(K) = 0, exchange phenomena occurs in system K.
= 1, bypass exchange phenomena for system K (effectively set
for all exchange coefficients equal to zero for system K).
54
-------
4.3 CARD GROUP C - VOLUMES
4.3.1 Data Input Option Number; Number of Volumes
5 10
IVOPT NOV
FORMAT (215)
Data input options:
IVOPT = 1, constant volumes.
= 4, volumes from RECEIV hydrodynamic model read in each time
step through unit 92 (SWFLOW.DAT). IQOPT in Card Group D must
also be 4.
NOV = number of volumes; normally NOV is equal to NOSEG, the
number of segments, but for some special input structures,
NOV need not equal NOSEG.
4.3.2 Scale Factor for Volumes
10
SCALV
FORMAT (E10.3)
SCALV = scale factor for volumes; volumes are normally expressed in
units of million cubic feet. If other units are necessi-
tated by alteration in the space scale, SCALV should contain
the appropriate conversion factor; if normal units are em-
ployed, SCALV =1.0.
4.3.3 Volumes
The data input format is determined by the option selected. If IVOPT =
4, these volumes are not entered.
Option 1
Each card in this package contains the volume information for eight seg-
ments. The number of volumes is equal to NOV. The information on each card
is described below.
10 20 30 70 80^
VOL(K) VOL(K+1) VOL(K+2) .... VOL(K+6) VOL(K+7)
FORMAT (8F10.0)
VOL(K) = volumes of segment K, in million cubic feet. The volumes
are to be input consecutively, starting with segment 1, and
ending with segment NOV.
55
-------
4.4 CARD GROUP D - FLOWS
4.4.1 Data Input Option Number; Number of Flows
5 10
IQOPT NOQ
FORMAT (215)
Data Input Options:
IQOPT = 1, constant flows.
= 2, all flows proportional to one piecewise linear approxi-
mation.
= 3, each flow is represented by its own piecewise linear
approximation.
= 4, flows from RECEIV hydrodynamic model read in each time step
through unit 92 (SWFLOW.DAT).
NOQ = number of flows.
If no flows are to be inputted, set NOQ to zero, and go to Card Group E.
4.4.2 Scale Factor for Flows
10
SCALQ
FORMAT (E10.3)
SCALQ = scale factor for flows, flows are normally read in cubic
feet per second.
4.4.3 Flows
The data input format is determined by the option selected. If IQOPT =
4, no flows are read (skip to 4.4.4).
Option 1
Each card in this package contains the flow information for four inter-
faces, the number of flow specifications is equal to NOQ. The information on
each card is described below.
10 15 20 30 35 40
BQ(K) JQ(K) IQ(K) BQ(K+1) JQ(K+1)
50 55 60 70 75 80
BQ(K+2) JQ(K+2) IQ(K+2) BQ(K+3) JQ(K+3) IQ(K+3)'
FORMAT (4(F10.0, 215)
56
-------
BQ(K) = flow between segment JQ(K) and IQ(K) in cfs. AESOP conven-
tion is: if the flow value is positive, then flow is from
segment JQ(K) to IQ(K).
JQ(K) = upstream segment.
1Q(K) = downstream segment.
If flow is from a segment to a boundary, then IQ(K) is set equal to
zero; if a flow is from a boundary to a segment, then JQ(K) is set equal to
zero.
Option 2
' The card package consists of two sub-packages. Sub-package I contains
the flow routing while sub-package II contains a detailed specification of
the piecewise linear approximation to which all the flows are proportional.
Sub-Package Flows
Sub-Package I-FlowsEach card in this sub-package contains the flow
information for four interfaces. The number of flow specifications is equal
to NOQ. The information on each card is described below:
10 15 20 30 35 40
BQ(K) JQ(K) IQ(K) BQ(K+1) JQ(K+1)
50 55 60 70 75 80
BQ(K+2) JQ(K+2) IQ(K+2) BQ(K+3) JQ(K+3) IQ(K+3)
FORMAT (4(F10.0, 215))
BQ(K) = ratio of the flow between segments JQ(K) and IQ(K) to the
piecewise linear flow approximation.
JQ(K) = upstream segment.
IQ(K) = downstream segment.
If flow is from a segment to a boundary, then JQ(K) is set equal to
zero; if a flow is from a boundary to a segment, then IQ(K) is set equal to
zero.
Sub-Package II - Piecewise Linear FlowThe number of breaks required to
describe the piecewise linear approximation is followed by a time series
describing the piecewise linear flow approximation. Each time series element
consists of two parts; a flow and a time. The input is as follows.
10
NOBRK
FORMAT (15)
57
-------
NOBRK = number of values and times used to describe the piecewise
linear approximation.
10 20 30 40 50 60 ? 80
_ _. _ _
QT(K) T(K) QT(K+1) T(K+1) QT(K+2) T(K+2) QT(KH-3) T(K+3)
FORMAT (8F10.0)
QT(K) = value of the piecewise linear approximation at time T(K) , in
cubic feet per second.
T(K) = time in days, if the length of the simulation exceeds
T(NOBRK), the broken line function will repeat itself,
starting at time T(l), i.e., the approximation is assumed to
be periodic, with period equal to T(NOBRK).
Option 3
Each flow is defined by a package of cards consisting of two sub-pack-
ages. The first sub-package identifies the two segments between which the
flow occurs, and the number of values comprising the piecewise linear flow
approximation. The second sub-package defines the piecewise linear approxi-
mation which describes the flow. The input is as follows.
Sub-Package I
5 10 15
JQ(K) IQ(K) NOBRK
FORMAT (315)
JQ(K) = upstream segment, flow from segment JQ(K) to IQ(K), assuming
positive flow.
IQ(K) = downstream segment flow from segment IQ(K) , assuming positive
flow.
NOBRK = number of values and times used to describe the broken line
approximation. All flows must have the same number of breaks,
and all breaks must occur at the same time relative to one
another.
Sub-Package II
Sub-package II is a time series describing the piecewise linear
approximation. Each time series element consists of two parts: a flow and a
time. The input is as follows.
10 20 _ 30 _ 40 _ 50 _ 60 _ 70 _ 80
QT(K) T(K) QT(K+1) T(K+1) QT(K+2) T(K+2) QT(K+3) T(K+3)
FORMAT (8F10.0)
QT(K) = value of the piecewise linear flow approximation at time T(K)
in cubic feet per second.
58
-------
T(K) = time in days, if the length of the simulation exceeds T(NOBRK)
the broken line function will repeat itself, starting at time,
T(l). All break times must agree for all flows, T(2) must be
the same for all flows, etc.
4.4.4 Flow Bypass Options
The flow bypass options permit the flow transport to be set equal to
zero in one or more systems, while maintaining the flow regime (as defined
by one of the above options) in the remaining systems.
QBY(l) QBY(2) .... QBY(ISYS)
FORMAT (1912)
QBY(K) = 0, flow transport occurs in system K.
= 1, bypass the flow transport for system K (effectively set all
flows equal to zero in system K).
4.5 CARD GROUP E - BOUNDARY CONDITION
All input is read NOSYS times; once for each system of the model.
4.5.1 Data Input Option Number; Number of Boundary Conditions
5 10
IBCOP(K) NOBC(K)
FORMAT (215)
Data Input Options:
IBCOP(K) = 1, constant boundary conditions.
= 2, all boundary conditions proportioned to one piecewise
linear approximation.
= 3, each boundary condition represented by its own piecewise
linear approximation.
NOBC(K) = number of boundary conditions used for system (K).
If no boundary conditions are to be inputted, set NOBC(K) equal to zero,
and continue with the next system, or go to the next card group.
4.5.2 Scale Factor for Boundary Conditions
10
SCALE
FORMAT (E10.3)
59
-------
SCALE = scale factor for boundary conditions. Boundary conditions are
normally expressed as milligrams per liter (mg/1), or parts
per million parts (ppm).
4.5.3 Boundary Conditions
The data input format is determined by the option selected.
Option 1
10 15 25 30 40
BBC(K) IBC(K) BBC(K+1) 1BC(K+1) BBC(K+2)
45 55 60 70 7_5
IBC(K+2) BBC(K+3) IBC(K+3) BBC(K+4) IBC(K+4)
FORMAT (5(F10.0, 15))
BBC(K) = boundary condition of segment IBC(K) in mg/1.
IBC(K) = segment number to which boundary condition BBC(K) is to be
applied.
Option 2
The card package consists of two sub-packages. Sub-package I contains
the boundary condition data, while sub-package II contains a detailed speci-
fication of the piecewise linear approximation to which all the boundary
conditions are to be proportional.
Sub-Package IEach card in this sub-package contains the boundary
condition information for five segments. The number of boundary condition
specifications is equal to NOBC. The information on each card is described
below.
10 15 25 30 40
BBC(K) IBC(K) BBC(K+1) IBC(K+1) BBC(K+2)
45 55 60 70 7_5
IBC(K+2) BBC(K+3) IBC(K+3) BBC(K+4) IBC(K+4)
FORMAT (5(F10.0, 15))
BBC(K) = ratio of the boundary condition for segment IBC(K) to the
piecewise linear approximation.
IBC(K) = segment number.
Sub-Package IIThe number of breaks required to describe the piecewise
linear boundary condition approximation is followed by a time series
describing the boundary approximation. Each time series element consists of
two parts; boundary concentration, and a time. The input is as follows.
60
-------
NOBRK
FORMAT (15)
NOBRK = number of values and times used to describe the piecewise
linear approximation.
10 20 30 40 50 60 70 80
BCT(K) T(K) BCT(K+1) T(K+1) BCT(K+2) T(K+2) BCT(K+3) T(K+3)
FORMAT (8F10.0)
BCT(K) = value of the broken line approximation at time T(K) in mg/1.
T(K) = time at breaks in broken line approximation, in days.
If the length of the simulation exceeds T(NOBRK), the piecewise linear
approximation is repeated, starting at T(l), i.e., the approximation is as-
sumed to be periodic, with period equal to T(NOBRK).
Option 3
Each boundary condition is defined by a package of cards consisting of
two sub-packages. The first sub-package identifies the segment associated
with the boundary condition and the number of values comprising the piece-
wise linear approximation. The second sub-package defines the piecewise
linear approximation which describes the boundary conditions. All boundary
conditions within a system must have the same number of breaks. The input is
as follows.
Sub-Package I
5 10
IBC(K) NOBRK(K)
FORMAT (215)
IBC(K) = boundary segment number.
NOBRK(K) = number of values and times used to describe the broken line
approximation. The number of breaks must be equal for all
boundary conditions within a system.
Sub-Package IIThe segment number and the number of breaks required to
describe the broken line approximation is followed by a time series describ-
ing the broken line approximation. Each time series element consists of two
parts: a boundary concentration, and a time (consistent with the normal time
scale of the model). The number of breaks must be the same for all boundary
approximations. The input is as follows.
61
-------
10 20 30 40 50 60 70 8J3
BCT(K) T(K) BCT(K+1) T(K+1) BCT(K+2) T(K+2) BCT(K+3) T(K+3)
FORMAT (8F10.0)
BCT(K) = value of the boundary approximation at time T(K) in milligrams
per liter,
T(K) = time in days if the length of the simulation exceeds T(NOBRK),
the broken line approximation is repeated, starting at T(l),
i.e., the approximation is assumed to be periodic, with period
equal to T(NOBRK). All break times must agree for all
segments, i.e., T(l) must be the same for all boundary
conditions, T(2) must be the same for all boundary conditions,
etc.
4.6 CARD GROUP F - FORCING FUNCTIONS
All input is read NOSYS times, once for each system of the model.
4.6.1 Data Input Option Number; Number of Forcing Functions
5 10
IWKOP(ISYS) NOWK(ISYS)
FORMAT (215)
Data Input Options:
IWKOP(ISYS) = 1, constant forcing functions.
= 2, all forcing functions are proportioned to one piecewise
linear approximation.
= 3, each forcing function represented by its own piecewise
linear approximation.
NOWK(ISYS) = number of forcing functions used for system IS?S. NOTE:
forcing functions may also be considered as sources (loads)
or sinks of a water quality constituent. If no forcing
functions are to be inputted, set NOWK(ISYS) to zero, and
continue with next system or go to next card group.
4.6.2 Scale Factor for Forcing Functions
10
SCALW
FORMAT (E10.3)
SCALW = scale factor for forcing functions. Forcing functions are
normally read as pounds per day.
62
-------
4.6.3 Forcing Functions
The data input format is determined by the option selected.
Option I
10 15 25 30 40
BWK(K) IWK(K) BWK(K+1) IWK(K+1) BWK(K+2)
45
55
60
70
75
BWK(K)
IWK(K)
Option 2
IWK(K+2) BWK(K+3) IWK(K+3) BWK(K+4) IWK(K+4)
FORMAT (5(F10.0, 15))
= forcing function of segment IWK(K), in pounds per day.
= segment number to which forcing function BWK(K) is to be
applied.
The card package consists of two sub-packages. Sub-package I contains
the forcing function data, while sub-package II contains a detailed specifi-
cation of the piecewise linear approximation to which all the forcing func-
tions are proportional.
Sub-Package IEach card in this sub-package contains the forcing
function information for five segments. The number of specifications is
equal to NOWK. The information on each card is described below:
10
15
25
30
40
BWK(K) IWK(K) BWK(K+1) IWK(K-fl) BWR(K+2)
45
55
60
70
75
BWK(K)
IWK(K)
IWK(K+2) BWK(K+3) IWK(K+3) BWK(K+4) IWK(K+4)
FORMAT (5(F10.0, 15))
= ratio of the forcing function for segment IWK(K) to the
piecewise linear approximation.
= segment number to which forcing function BWK(K) is to be
applied.
Sub-Package IIThe number of breaks required to describe the piecewise
linear forcing function approximation is followed by a time series describing
the forcing function. Each time series element consists of two parts; a
function value and a time. The input is as follows.
NOBRK
FORMAT (15)
63
-------
NOBRK = number of values and times used to describe the piecewise
linear approximation.
10 20 30 40 50 60 70_ 8£
WKT(K) T(K) WKT(K+1) T(K+1) WKT(K+2) T(K+2) WKT(K+3) T(K+3)
FORMAT (8F10.0)
WKT(K) = value of the forcing function at time T(K), in pounds per day.
T(K) = time in days, if the length of the simulation exceeds
T(NOBRK), the forcing function approximation is repeated,
starting at 1(1), i.e., the approximation is assumed to be
periodic, with period equal to T(NOBRK).
Option 3
Each forcing function is defined by a package of cards consisting of
two sub-packages. The first sub-package identifies the segment associated
with the forcing function and the number of values comprising the piecewise
linear approximation. The second sub-package defines approximation which
describes the forcing function. The input is as follows.
Sub-Package I
5 10
IWK(K) NOBRK(K)
FORMAT (215)
IWK(K) = segment number which has forcing function BWK(K).
NOBRK(K) = number of breaks used to describe the forcing function
approximation. The number of breaks must be equal for all
forcing functions within a system.
Sub-Package IIThe segment number and the number of breaks required to
describe the piecewise linear forcing function approximation is followed by
a time series, describing the forcing function. Each time series element
consists of two parts: a function value and a time. The input is as
follows:
10 20 30 40 50 60 70 80
WKT(K) T(K) WKT(K+1) T(K) WKT(K+2) T(K+2) WKT(K+3) T(K+3)
FORMAT (8F10.0)
WKT(K) = value of the forcing function at time T(K), in pounds per day.
-------
T(K) = time in days, if the length of the simulation exceeds
T(NOBRK), the approximation is repeated, starting at T(l),
i.e., the approximation is assumed to be periodic with period
equal to T(NOBRK). All break times must agree for all
segments; i.e, T(l) must be the same for all forcing
functions, T(2) must be the same for all forcing functions,
etc.
4.7 CARD GROUP G - PARAMETERS
The definition of the parameters will vary, depending upon the structure
and kinetics of the systems comprising each model. The input format however
is constant and is detailed below.
4.7.1 Number of Parameters
NOPAM
FORMAT (15)
NOPAM = number of parameters required by TOXIWASP = 18.
4.7.2 Scale Factors for Parameters
10 20 30
SCALP(l) SCALP(2) SCALP(3) ... SCALP(NOPAM)
FORMAT (8E10.3)
SCALP(K) = scale factor for parameter group K.
4.7.3 Segment Parameters
Segment parameters (Numbers on top line are column numbers for input.
*.* denotes values for parameters on left.)
5
TEMPM
BACTO
OXRAD
WS
TEMPM
15 20
* . *DEPTH
*.*ACBAC
*.*OCS
*.*CMPET
*.*DEPTH
30 35 45 50 60 65 75
*.*VELOC *.*WINDS *.*TYPEE *.*
*.*BIOMS *.*BIOTM *.* POHG *.*
*.*PCTWA *.*DSPSD *.* PHG *.*
*.*TOTKG *.*
FORMAT (5(A5,F10.0))
65
-------
Note that only 18 parameters are input here. DISPV is calculated
internally and occupies two spaces for each segment. Although contained in
the glossary section, a brief description of parameters and units follows.
Fortran
Parameter Variable
Description
Average temperature for segment.
1 TEMPM(J)
2 DEPTHG(J) Depth of segment.
3 VELOC(J) Average velocity of water in
segment.
4 WINDG(J) Average wind velocity 10 cm
above the water surface (sur-
face water segments only).
5 TYPEE(J) Flag designating segment type:
1 = surface water, 2 = subsurface
water, 3 = surface bed, 4 =
subsurface bed.
6 BACTOG(J) Bacterial population density in
segment.
ACBACG(J) Proportion of bacterial popula-
tion that actively degrades
chemical.
BIOMAS(J) Total actively sorbing biomass
in segment.
9 BIOTMG(J) Biotemperature in segment.
10 POHG(J) Hydroxide ion activity in
segment.
11 OXRADG(J) Molar concentration of
environmental oxidants in
segment.
12 OCS(J) Organic carbon content of sedi-
ments as fraction of dry weight.
Units
degrees C
feet
feet per second
meters per second
cells per milli-
liter (water)
cells per 100 grams
dry weight (bed)
dimensionless ratio
mg (dry weight) per
liter (water)
grams (dry weight)
per square meter
(bed)
degrees C
pOH units
moles per liter
dimensionless
66
-------
13
PCTWA(J)
14
15
16
DSPSED(J)
PHG(J)
WS(J)
17
18
CMPETG(J)
TOTKG(J)
Percent water in benthic sedi-
ments, expressed as fresh/dry
weight; all values must be
greater than or equal to 1.
Fraction of sediment volume
that mixes.
dimensionless
dimensionless
Hydrogen ion activity in segment. pH units
Spatially variable parameter
denoting settling rate of
suspended sediment in water
column segments (types 1 and 2),
erosion rate of surface bed
sediment in surface bed segment
(type 3), or percolation of pore
water through subsurface bed
segments (type 4).
Single-valued zenith light
extinction coefficients (for
water segments only).
Total first order decay rates
calculated externally. If
equal to zero, the program
evaluates all separate processes
and calculates a combined total
first order decay rate internally.
meters per day
(1, 2)
cm per year (3)
cubic feet per
second (4)
per meter
per day
4.8 CARD GROUP H - CONSTANTS
4.8.1 Number of Constants
NCONS
FORMAT (15)
NCONS = number of constants required by the model
66.
67
-------
4.8.2 Constants
5
15 20
30 35
45 50
60 65
75
EBHG1
ENHG3
KAHG2
KNHG1
EOXG3
KBWG2
KB SGI
QTBS3
KVOG
CLOUD
QUAN3
LOPT
*.*EBHG2
*.*EAHG1
*.*KAHG3
*.*KNHG2
*.*KOXG1
*.*KBWG3
*.*KBSG2
*.* KOC
*.* SOLG
*.* LATG
*.* XJTR
*.*
*.*EBHG3
*.*EAHG2
*.*KBHG1
*.*KNHG3
*.*KOXG2
*.*QTBWl
*.*KBSG3
*.* KOW
*.* MWTG
*.*ESOLG
FAC
*.*DFACG
*.*CTRIG
*.*ENHG1
*.*EAHG3
*.*KBHG2
*.*EOXG1
*.*KOXG3
* . *QTBW2
*.*QTBS1
*.* OCB
*.*HENRY
*.*EVPRG
*.* KDPG
*.*QUAN1
*.*DTOPT
*.*ENHG2
*.*KAHG1
*.*KBHG3
* . *EOXG2
*.*KBWG1
*.*QTBW3
*.*QTBS2
*.*
*.*VAPRG
* . *EHENG
*.*RFLAT
* . *QUAN2
*.*TDINT
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
Note that there are additional elements in the constant array but that
they are internally calculated and not read-in. Numbers 1, 2, and 3 refer to
dissolved, sediment sorbed, and biosorbed chemical, respectively. KNHG2, for
example, is the neutral hydrolysis rate for the sediment-sorbed chemical
fraction. Although contained in the glossary section, a brief description of
constants and units follows.
Fortran
Constant Variable
1,2,3
4,5,6
EBHG(I,1)
ENHG(I.l)
Description
Arrhenius activation energy of
specific-base-catalyzed hydro-
lysis of the toxicant.
Arrhenius activation energy of
neutral hydrolysis of the
toxicant.
Units
kcal/gram mole
kcal/gram mole
68
-------
7,8,9 EAHG(I,1)
10,11,12 KAHG(I.l)
13,14,15 KBHG(I.l)
16,17,18 KNHG(I.l)
19,20,21 EOXG(I,1)
22,23,24 KOXG(I,1)
25,26,27 KBACWG(I,1)
28,29,30 QTBAWG(I,1)
31,32,33 KBACSG(I,1)
34,35,36 QTBASG(I,1)
37
38
KOC
KOW
Arrhenius activation energy of
specific-acid-catalyzed hydro-
lysis of the toxicant.
Second-order rate constants for
specific-acid-catalyzed hydro-
lysis of chemical.
Second-order rate constants for
specific-base-catalyzed hydro-
lysis of chemical.
Rate constants for neutral hydro-
lysis of organic chemical.
Arrhenius activation energy of
oxidative transformation of the
chemical.
Second-order rate constants for
oxidative transformation of
toxicant.
Second-order rate constants for
water column bacterial biolysis
of the organic chemical.
Q-10 values for bacterial trans-
formation rate in the water
column. Q10 is the increase
in the second-order rate constant
resulting from a 10 degree C
temperature increase.
Second-order rate constants for
benthic sediment bacterial
biolysis of the organic.
Q-10 values for bacterial trans-
formation of organic chemical in
benthic sediments. The Q-10 is
the increase in the second-order
rate constant resulting from a 10
degree C temperature increase.
Organic carbon partition
coefficient.
Octanol water partition
coefficient
kcal/gram mole
per mole[H+]
per hour
per mole [OH-]
per hour
per hour
kcal/gram mole
liter per mole
environmental
oxidant per
hour
ml/cell-hour
dimensionless
ml/cell-hour
dimensionless
lw/kg organic
carbon
lw/loct
69
-------
39
43
44
45
46
47
48
49
50
53
54
55
56
OCB
MWTG
HENRYG
VAPRG
KVOG
SOLG
ESOLG
EVPRG
EHENG
FAC
KDPG
RFLATG
CLOUDG
dimensiionless
grams per mole
Atmosphere-
cubic meters
per mole
torr
dimensionless
Organic carbon content of the
compartment biomass as a fraction
of dry weight.
The molecular weight of the
chemical.
Henry's Law constant of the
toxicant.
Vapor pressure of compound.
Measured experimental value for
(volatilization) liquid-phase
transport resistance, expressed
as a ratio to the reaeration rate.
Aqueous solubility of toxicant
chemical species.
Exponential term for describing
solubility of the toxicant as a
function of temperature (see SOLG)
Molar heat of vaporization for
vapor pressure described as a
function of temperature (See
VAPRG).
Constant used to compute Henry's
Law constants for volatilization
as a function of environmental
temperatures (TCELG). When EHENG
is non-zero, the Henry's Law
constant is computed as follows:
log HENRY = HENRYG-((1000.*EHENG)/(4.58*(TCELG+273.15)))
Multiplication factor for sedimen- dimensionless
tation time step. Recommended
0.1.
mg/lT
kcal/gram mole
kcal/gram mole
kcal/gram mole
A near-surface photolytic rate
constant for the chemical.
Reference latitude for correspond-
ing direct photolysis rate constant
KDPG.
Average cloudiness in tenths of
full sky cover.
per hour
degrees and deci-
mal fraction (e.g.,
40.72)
dimensionless, range
of 0.0 to 10.0
70
-------
57
58
LATG
DFACG
Geographic latitude of ecosystem.
Distribution function (ratio of
optical path length to vertical
depth).
59,60,61 QUANTG(I,1) Reaction quantum yield in photo-
lytic transformation of chemical.
62
63
64
XJTR
CTRIG
DTOPT
Reference segment for triggering
event and frequency output. A
value of zero will disable it.
Trigger concentration that de-
fines a peak event.
Option to optimize time step,
if set to 1.
degrees and
tenths (e.g.
37.2)
dimensionless
dimensionless
dimensionless
mgc/lT
dimensionless
65
66
TD1NT
LOPT
Time interval between recalcula-
tion of decay rates.
Option to read in flows and/or
nonpoint source loads on a daily
basis:
days
dimensionless
0 = skip daily read option
1 = read sequential tape
containing daily flows
and/or loads
4.9 CARD GROUP I - MISCELLANEOUS TIME FUNCTIONS
The definition of the miscellaneous piecewise linear time functions will
vary depending upon the structure and the kinetics of the systems comprising
each model. The input format, however, is constant and is detailed below.
4.9.1 Number of Time Functions
5
NFUNC
FORMAT (15)
NFUNC
number of time functions required by the model = 5.
If no time functions are to be inputted, set NFUNC equal to zero, and go
to Card Group K.
71
-------
4.9.2 Time Functions
The following package of cards is required for each time function. The
first sub-package defines the function name and the number of breaks in the
time function. The second sub-package contains a detailed specification of
the piecewise linear time function.
Sub-Package _!_
5 10
ANAME(K) NOBRK(K)
FORMAT (A5, 15)
ANAME(K) = an optional one to five alpha-numeric character descriptive
name for the time function K.
NOBRK(K) = number of breaks used to describe the time function K.
Sub-Package II
10 20 30 40
VALT(K) T(K) VALT(K+1) T(K+1)
50 60 70 80
VALT(K+2) T(K+2) VALT(K+3) T(K+3)
FORMAT (8F10.0)
VALT(K) = value of the function at time T(K).
T(K) = time in days. If the length of the simulation exceeds
T(NOBRK), the time function will repeat itself, starting at
T(l), i.e., the approximation is assumed to be periodic, with
period equal to T(NOBRK). All time functions must have the
same number of breaks and all break times must agree for all
functions, i.e., T(l) must be the same for all functions, T(2)
must be the same for all functions, etc.
The five time-variable functions used in TOXIWASP are listed below.
These functions will usually describe seasonal variability for long
simulations. They can be set up, however, to describe diurnal variability
over short simulations if the time step is sufficiently short (1-3 hours).
Time Fortran
Function Variable Description Units
1 TEMPN Normalized temperature dimensionless
2 WINDN Normalized wind speed dimemsionless
3 PHN Normalized pH dimemsionless
4 POHN Normalized pOH dimensionless
5 LIGHTN Normalized light intensity dimensionless
72
-------
4.10 CARD GROUP J - INITIAL CONDITIONS
The initial conditions are the segment concentrations for the state
variables at time zero (or the start of the simulation).
4.10.1 Initial Conditions
5 15 20 3£
ANAME(K) C(ISYS,K) ANAME(K+1) C(ISYS,K+1)
35 45 50 6£
ANAME(K+2) C(lSYS,K+2) ANAME(K+3) C(lSYS,K+3)
FORMAT (4(A5, F10.0))
ANAME(K) = an optional one to five alpha-numeric character descriptive
name for the initial condition in segment K of system ISYS.
C(ISYS,K) = initial condition in segment K of system ISYS in the
appropriate units (normally mg/1 or ppm).
The user will be required to input initial conditions for each system
even if the system is bypassed or if the initial conditions are zero. The
initial conditions are read in one system at a time (from system 1 through
system NOSYS), with the concentrations being read from segment 1 through
NOSEG within a system packet.
4.11 CARD GROUP K - STABILITY AND ACCURACY CRITERIA
4.11.1 Stability Criteria
10 20 30 80
CMAX(K) CMAX(K+1) CMAX(K+2) .... CMAX(NOSYS)
FORMAT (8F10.0)
CMAX(K) = stability criteria for system K, i.e., the maximum concentra-
tion (normal units mg/1 or ppm) for system K, which if exceeded
by any segments in system K indicates that the numerical inte-
gration procedure has become unstable. If unstability occurs
an appropriate message is printed and the integration procedure
is terminated and a call is made to the display subroutines.
If the user sets CMAX (1) to zero, TOXIWASP will reset it to one half of
the solubility or 10~5 M, whichever is less. This would abort runs for which
the first-order rate assumption becomes invalid.
4.11.2 Accuracy Criteria
10 20 30 8JD
CMIN(K) CMIN(K+1) CMIN(K+2) .... CMIN(NOSYS)
FORMAT (8F10.0)
73
-------
CMIN(K) = originally WASP read the accuracy criteria for system K; i.e.,
for time variable simulations the minimum concentration (normal
units mg/1 or ppm) that governs integration step-size control,
if the user chooses option 1. As it is not recommended that
the user use this option due to numerical difficulties, just
set CMIN = 0.0 for each system.
4.12 CARD GROUP L - INTERMEDIATE PRINT CONTROL
4.12.1 Print Interval
FORMAT (F10.0)
PRINT = print interval in days for time-variable applications. NOTE:
The maximum number of print outs = total time/print interval +
1 (for time zero) must be equal to or less than 41.
4.12.2 Compartments (System - Segment) to be Displayed
ISYS(l) ISEG(l) ISYS(2) ISEG(2) ... ISYS(8) ISEG(8)
FORMAT (1613)
ISYS(K), = system, segment combinations user wishes to have displayed
ISEG(K) during simulation - user may select a maximum of 8. NOTE: All
system-segment concentrations as well as other miscellaneous
calculations may be displayed at the end of the simulation, see
Card Group N.
4.13 CARD GROUP M - INTEGRATION CONTROL INFORMATION
4.13.1 Integration Option - Negative Solution Option
2 4
INTYP NEGSLN
FORMAT (212)
INTYP = 1, user wishes the WASP program to determine the integration
step size (based upon its own accuracy criteria). It is re-
commended that the user not use this option.
= 2, the user will supply the integration step sizes to be used
by WASP. It is recommended that the user utilize this option.
NEGSLN = 0, a user wishes to restrict integration to the positive plane
only - this is the normal option selected.
74
-------
= 1, user will permit the integration procedure to go negative -
used for special applications (ex., DO deficit, pH -
alkalinity).
4.13.2 Time Warp Scale Factor - Starting Simulation Time (TZERO)
10 20
SCALT TZERO
FORMAT (2E10.4)
SCALT = time warp scale factor - allows the user to completely change
the time scale of his simulation via just one card. This scale
factor changes all times employed in piecewise linear functions
or piecewise linear approximations for volumes, exchanges,
flows, etc., as well as print out time.
TZERO = prototype time for start of simulation, usually equal to zero,
but user may start at time other than zero (used to initialize
any of the piecewise linear time functions).
4.13.3 Number of Integration Step Sizes
5
NOSTEP
FORMAT (15)
NOSTEP = number of integration step sizes to be used in the simulation.
4.13.4 Integration Step Size History
10 20 30 40
DT(K) TIME(K) DT(K+1) TIME(K+1)
FORMAT (8F10.0)
DT(K)
TIME(K)
integration step size (normal units-days).
time until which step size DT(K) will be used, then switching
to DT(K+1) until TIME(K+1).
4.14 CARD GROUP N - DISPLAY PARAMETERS
The cards presented for this group are those required by the normal WASP
display package. A special subroutine that permits off-line digital pen
plotting capability is available for the DEC POP system. The input data re-
quired are described here.
The following two sub-groups are read for each system, starting with
system 1 and running through system NOSYS. For each variable-segment com-
bination chosen a time history of the segment will be displayed (dumped).
75
-------
4.14.1 Variable Names
8 16 80
ANAME(l) ANAME(2) .... ANAME(IO)
FORMAT (10A8)
ANAME(K) = a one to eight alpha-numeric character descriptive name for
display variable K. The order of these names is determined
via the appropriate disk file WRITE in the users kinetic sub-
routine. NOTE: In TOXIWASP, the following variables are
dumped: for system 1, CHEM, CHEM1, CHEMS, CHEMB, ALPHA(l),
ALPHA(2), XMASS, and BMASS; for system 2, SED, DEPTHG, TOTKL,
PHOTKL, HYDRKL, BIOLKL, OXIDKL, VOLKL.
4.14.2 Variable Number, Segment Numbers
369 27
VARNO SEG(K) SEG(K+1) .... SEG(K+7)
FORMAT (913)
VARNO = the position of the desired display variable in the WRITE file
statement in the kinetic subroutine (see previous note).
VARNO = 1 to 8.
SEG(K) = segment number to be displayed. NOTE: Order of display
unimportant, i.e. , need not be sequential.
A blank card terminates display for system, ISYS. Then another Variable
Name card, followed by Variable Number, Segment Number card(s) Is read until
system NOSYS has been read, then the plot cards will be read.
4.14.3 Printer Plot Display Cards
The following cards are read for each system, starting with system 1,
and running through NOSYS. The printer plot display sub-group requires 3
cards per plot, and because two plots are formulated per page of printout,
the user should input an even number of plots.
3a. Number of Segments and Variable Number for This Plot
2 4
NSPLT VARNO
FORMAT (212)
NSPLT = number of segments to be plotted (maximum of five.).
VARNO = the position of the desired variable to be plotted, in the
WRITE file statement in the kinetic subroutine.
76
-------
3b. Plotting Scales
10 20
PMIN PMAX
FORMAT (2F10.0)
PMIN, = minimum and maximum values, respectively, to be used for
PMAX this plot.
3c. Segment to be Plotted
36 9
SEG(l) SEG(2) .... SEG(INSPLT)
FORMAT (513)
SEG(K) = segment numbers to be plotted (a maximum of 5 segments per plot
is allowed).
A blank card terminates the plotting for system, ISYS.
At this point, unless the user has written additional display routines
(such as the PDP graphics), WASP input is finished, and the user should end
his deck with the appropriate end of data set indicator.
4.14.4 Plot Display Cards (Spatial Profile)
Cards 4a and 4b are read-in once, and apply to all spatial plots. There
are two types of spatial plots. The first type plots predicted variables,
and is controlled by Cards 4c and 4d. The second type plots observed data,
and is controlled by Cards 4e, 4f, and 4g. Any number of plots desired can
be produced by repeating card combinations 4c-4d and/or 4e-4g.
4a. Spatial Scale
5 10
RM1 RM2
FORMAT (2F5.0)
RM1, RM2 = minimum and maximum river mile values, respectively, to be used
for all spatial plots.
4b. Segment River Miles to be Plotted
5 10 15 20 25 30 35_
SEG(K) RM(K) SEG(K+1) RM(K+1) SEG(K+2) RM(K+2) SEG(K+3)
40 45 50 55 60 65^
RM(K+3) SEG(K+4) RM(K+4) SEG(K+5) RM(K+5) SEG(K+6)
70 75 80
RM(K+6) SEG(K+7) RM(K+7)
FORMAT (8(15, F5.0))
77
-------
SEG(K) = segment number to be plotted.
RM(K) = river mile value for SEG(K).
A maximum of "NOSEG" combinations of SEG-RM pairs are allowed.
For each spatial plot, Cards 4c-4d, or 4e-4g are read.
4c. Predicted Variable Plot Control Information
30
10
15
20
25
70
MXTIM IVAR YSTR YSTP SYSOPT OVRLAY
TITL1
FORMAT (215, 2F5.0, 215, 40A1)
MXTIM = number of time selections to be included on this plot (maximum
of 5).
IVAR = the position of the desired variable to be plotted in the WRITE
file statement in the kinetic subroutine.
YSTR,YSTP = minimum and maximum values, respectively, to be used for the
Y-axis of this plot.
SYSOPT = system number of the desired variable to be plotted.
OVRLAY = flag to cause this plot to be overlaid with the following
plots.
= 0, causes this plot to be printed alone (or with preceeding
plot, if OVRLAY on the preceding plot cards is set: to 1).
= 1, causes this plot to be overlaid on the following plot.
(Note, although any number of plots can be overlaid, we suggest
a maximum of three; YSTR and YSTP values should be compatible
for overlaid plots.)
TITL1 = title for plot; when overlaying plots, the first two titles and
the last title will be printed.
4d. Time Selections and Characters for Predicted Variable Plot
5 10
TIM(l) TIM(2)
27
15 20
TIM(3) TIM(4)
28 29
SYMTAB(2) SYMTAB(3) SYMTAB(4)
25 26
TIM(5) SYMTAB(l)
30
SYMTAB(5)
FORMAT (5F5.0, 5A1)
TIM(K) = time selections for this plot (1-MXTIM).
SYMTAB(K) = plot symbol associated with time TIM(K).
78
-------
4e. Observed Data Plot Control Information
10
15
20
25
30
70
71
FLAG IUNIT YSTR YSTP NOOBS OVRLAY TITL1 OBSSYM
FORMAT (215, 2F5.0, 215, 40A1, 1A1)
FLAG = flag to indicate observed data.
= 99999, indicates observed data are to be plotted.
IUNIT = unit device number where observed data are to be found (default
=5; optional unit numbers are 82-89).
YSTR,YSTP = minimum and maximum values, respectively, to be used for the
Y-axis of this plot.
NOOBS = number of observed data points for this plot.
OVRLAY = flag to cause this plot to be overlaid with the following plot:
= 0, causes this plot to be printed alone (or with preceding
plot, if OVRLAY on the preceding plot cards is 1).
= 1, causes this plot to be overlaid on the following plot.
TITL1 = title for this plot.
OBSSYM = plot symbol associated with observed data for this plot.
If "IUNIT" on Card 4e equals zero or five, Card 4f is read and Card 4g
is skipped. If "IUNIT" equals 82-89, then Card 4f is skipped and Card 4g is
read.
4f. River Mile - Observed Data Values
10
20
30
40
RIVMIL(K) VALUE(K) RIVMIL(K-fl) VALUE(K+1)
50 60 70 80
RIVMIL(K+2) VALUE(K+2) RIVMIL(K+3) VALUE(K+3)
FORMAT (8F10.0)
RIVMIL(K) = river mile location for observed data point "K".
VALUE(K) = observed value of variable at RIVMIL(K).
If "IUNIT" on Card 4e equals zero or five, Card 4g is skipped.
79
-------
4g. Format Specification for Data on Auxiliary Input File "IUNIT"
1 8£
FMT
FMT
FORMAT (20A4)
= format specification for observed river mile - observed data
values on auxiliary input file "IUNIT" (specified on Card 4e).
Must begin and end with parentheses, and contain valid formats,
such as (2F5.0), (16F5.0), or (F5.0/F5.0)
4.14.5 Pen Plot Display Cards
The following cards permit the user to obtain plots of WASP results on a
digital pen plotter. The pen plot software has been written such that six
"variable vs. time" are generated per 11 inch x 11 inch frame. Therefore,
the user must supply the following input data cards in multiples of six.
The user should note that unlike the Dump and Printer Plot Display Cards
which are organized by system, the Pen Plot Display Cards permit the user to
mix the various system outputs on the same frame.
5a. System, Segment, Variable, and Units for This Plot
5 10 15 16 29
SYS
SEG
IVAR
UNITS
SYS
SEG
IVAR
FORMAT (315, A14)
= system number of the desired variable to be plotted.
segment number of the desired variable to be plotted.
= the position of the desired variable, to be plotted, in the
WRITE file statement in the kinetic subroutine.
UNITS = an alphanumeric descriptor, which describes the units of the
variable to be plotted.
5b. Plotting Scales
10 20
YMIN
YMAX
FORMAT (2F10.0)
YMIN, YMAX = minimum and maximum values, respectively, to be used for this
plot.
5c. Field Data
The pen plot subroutine, WAS18, h*s been written so as to permit the
user to overplot theory with observed field data. Basically the input data
to be supplied for overplotting field data consists of four pieces of
80
-------
information: a survey number, the time (relative to time zero of the WASP
simulation) at which the data was collected, the value (mean value if several
samples were collected and are to be aggregated) of the particular water
quality parameter to be plotted, and the standard deviation of the data if
applicable. The input data is read as follows.
5 10 20 30 60 70 80
SURVEY SURVYT(l) Y(l) SD(1) SURVYTQ) Y(3) SD(3T
FORMAT (15, 3(F5.0, 2F10.0))
SURVEY = survey number for which the data were collected. Must be a
number from 1 to 5. In actuality SURVEY selects the
appropriate plotting symbol for plotting the field data.
SURVYT(I) = time, relative to time zero of the WASP simulation, at which
data were collected. Nominal units are days.
Y(I) = the value for the water quality parameter to be plotted. If a
number of samples were collected and are aggregated together
than Y(l) is the aggregated sample mean.
SD(I) = the standard deviation of the aggregated sample mean (if
applicable).
The following description, used together with Table 4-2, should demon-
strate to the user how to prepare data input for the plots. The user will be
plotting phytoplankton and secchi depth results for segment 1 through 3 of
his model. The kinetic subroutine was written such that the phytoplankton
were written to the first system file as the first variable (SYS = 1, IVAR =
1) and, the secchi depths were written to the second system file as the
fourth variable (SYS = 2, IVAR =4). Cards 1, 7, 16, 19, 22, and 27 specify
that phytoplankton and secchi depth are to be plotted for segments 1, 2, and
3, respectively. Cards 2, 8, 17, 20, 23 and 28 select the plotting scales
to be used for the appropriate variables. Cards 3 through 5 contain the
field data (times, means, and standard deviations) to be overplotted with
the theory for segment 1. Card 6 indicates that no more survey data was
collected for segment 1. Cards 9 through 14 contain the field data, from
three different surveys, to be overplotted with segment 2 theory. Note that
the data for the third survey are just grab samples (no associated standard
deviations). Card 15 indicates the end of survey data for segment 2. Card
17 contains grab sample data collected on the third survey; Card 18 indicates
no more survey data for segment 3.
No secchi depth field data was collected for segments 1 and 3; there-
fore the cards following cards 20 and 28 are blank. Cards 24 and 25 contain
single point measurements of secchi depth collected during survey 2. Card 26
indicates the end of survey data. Card 30 indicates that no more plots are
required.
81
-------
w
s
w
H
Z
w
PH
.
1
a
i
M
(U
|
w
o
<} r~H
\O \^ *.O l-O "*^"
O O O O CD
in co co Kf -r-inr^-*
mrHCOO inrHCMOCMOrH
i-H rH
rH O CM O
omorH omorHooo
rHCOl-H rHcOrHrHCM««O
rH CO rH CO CM CO
i-t rHiHrH rH iHrHrHCSlCMCO
I-H CM co *d* in ^o r^ oo cjN o rH CM co -^
rH rH rH rH rH
CT> in
OO rH
o in
m m
O OO
CO CM
r- m
rH -
-------
SECTION 5
OPERATIONAL CONSIDERATIONS
This chapter describes how to obtain the computer program TOXIWASP,
how to install it on a DEC POP mini computer or an IBM mainframe, how to
test the program with sample datasets, and what machine limitations limit
the program.
5.1 ACQUISITION PROCEDURES
To obtain the program TOXIWASP along with sample datasets and support
software, write to:
Center for Water Quality Modeling
Environmental Research Laboratory
U.S. Environmental Protection Agency
College Station Road
Athens, GA 30613
Specify which version of the program you desire (POP or IBM) and the system
on which you will install the program. A nine-track magnetic tape will be
mailed to you. Please copy the contents and return the tape.
5.2. INSTALLATION PROCEDURES
Among the datasets on the magnetic tape are the standard WASP
subroutines and the special TOXIWASP subroutines. These must be compiled
and linked into a task image. This is accomplished on the PDF IAS
operating system by running the command file "TOXICMP.CMD," which is listed
in Appendix 3.2. If the compilation suceeds, then linkage is automatically
attempted with the command file "TOXITKB.CMD," which is listed in Appendix
3.2. The Job Control Language (JCL) necessary to accomplish these two
tasks on an IBM 370 OS/MVS operating system is listed in Appendix 3.3.
5.3. TESTING PROCEDURES
Once TOXIWASP is installed, the sample input datasets should be run
and compared with the sample output datasets to verify that the program is
calculating correctly. Data sets describing a sample pond, river, and
oligotrophic lake polluted with various chemicals are available on the
tape. Simulations are run in a batch mode. To perform a simulation on the
83
-------
PDF, submit the batch input sequence "TOXIC.BIS," which is listed in
Appendix 3.4. This BIS file is set up to run the test pond. To run the
test river, change the line
$COPY POND.INP WASP.INP
to
$COPY RIVER.INP WASP.INP
and resubmit "TOXIC.BIS." The test lake is titled LAKE.INP. Output
written to FOR006.DAT should be compared to POND.OUT, RIVER.OUT, and
LAKE.OUT, respectively.
JCL necessary to run simulations for the three test cases on an IBM
370 is listed in Appendix 3.5.
5.4. MACHINE LIMITATIONS
Currently, TOXIWASP is set up for the following configurations.
POP 11/70 Hardware IBM 370 Hardware
IAS operating system OS/MVS operating system
FORTRAN IV FORTRAN IV+
25 parameters 25 parameters
85 constants 85 constants
50 segments 100 segments
2 systems 2 systems
The PDP 11/70 computer utilizing an IAS operating system allocates a
32k word (64k byte) user area for execution of programs. TOXIWASP occupies
at least 31k words of memory. Any enlargement of this program may result
in an overflow of the user area.
A compromise in the size of the program arrays (regulated by the
PARAMETER statements at the beginning of the common area) will result in
more free area to add other applications. Care must be taken to assure
that any changes made to the code are completely researched and tested.
84
-------
REFERENCES
Burns, L. A., D. M. Cline, and R. R. Lassiter. 1982. Exposure Analysis
Modeling System (EXAMS): User Manual and System Documentation. U.S.
Environmental Protection Agency, Athens, GA. EPA-600/3-82-023.
Covar, A. P. 1976. "Selecting the Proper Reaeration Coefficient for Use
in Water Quality Models." Presented at the U.S. EPA Conference on
Environmental Simulation and Modeling, April 19-22, 1976.
DiToro, D. M. , J. J. Fitzpatrick, and R. V. Thomann. 1982. Water Quality
Analysis Simulation Program (WASP) and Model Verification Program
(MVP) - Documentation. Hydroscience, Inc., Westwood, NY, for U.S.
Environmental Protection Agency, Duluth, MN, Contract No. 68-01-3872.
Huber, W. C. , Heaney, J. P., Medina, M. A., Peltz, W. A., Sheikh, H. ,
and Smith, G. F., Storm Water Management Model User's Manual, Version
II, University of Florida, Gainesville, FL, for U.S. Environmental
Protection Agency, Cincinnati, OH, EPA-670/2-75-017 , March 1975.
Johanson, R. C. , J. C. Imhoff, and H. H. Davis, Jr. 1980. Users Manual
for Hydrological Simulation Program FORTRAN (HSPF). U.S.
Environmental Protection Agency, Athens, GA. EPA-600/9-80-015.
Karickhoff, S. W. , D. S. Brown, and T. A. Scott. 1979. Sorption of
hydrophohic pollutants on natural sediments. Water Research, 13:
241-248.
Mackay, D. and P. J. Leinonen. 1975. Rate of evaporation of low
solubility contaminants from water bodies to atmosphere. Environ.
Sci. Technol.,
Mill, T. , W. R. Mabey, P. C. Bomberger, T. W. Chou, D. G. Hendry, and J.
H. Smith. 1982. Laboratory Protocols for Evaluating the Fate of
Organic Chemicals in Air and Water. U.S. Environmental Protection
Agency, Athens, GA. EPA-600/3-82-0220 (In press).
Onishi, Y. , S. M. Brown, A. R. Olsen, M. A. Parkhurst, S. E. Wise, and W.
H. Walters. 1982. Methodology for Overland and Instream Migration
and Risk Assessment of Pesticides. U.S. Environmental Protection
Agency, Athens, GA. EPA-600/3-82-0240 (In press).
Onishi, Y. and S. E. Wise. 1982. User's Manual for the Instream Sediment-
Contaminant Transport Model, SERATRA. U.S. Environmental Protection
Agency, Athens, GA. EPA-600/3-82-0550 (In press).
85
-------
Paris, D. F., D. L. Lewis, J. T. Barnett, and G. L. Baughman. 1975.
Microbial Degradation and Accumulation of Pesticides in Aquatic
System. U.S. Environmental Protection Agency, Washington, DC.
EPA-660/3-75-007.
Rao, P. S. C. and J. M. Davidson. 1980. Estimation of Pesticide
Retention and Transformation Parameters Required in Nonpoint Source
Pollution Models. In: Environmental Impact of Nonpoint Source
Pollution, M. R. Overcash and J. M. Davidson, Eds. Ann Arbor Science,
Ann Arbor, MI. pp. 23-67.
Richardson, W. L., V. E. Smith, and R. Wethington. 1982. Dynamic Mass
Balance of PCB and Suspended Solids in Saginaw BayA Case Study.
U.S. Environmental Protection Agency, Grosse lie, MI, In Press.
Smith, J. H. , W. R. Mabey, N. Bohonos, B. R. Holt, S. S. Lee,, T-W. Chou,
D. C. Bomberger, and T. Mill. 1977. Environmental Pathways of
Selected Chemicals in Freshwater Systems. Part I: Background and
Experimental Procedures. U.S. Environmental Protection Agency,
Athens, GA. EPA-600/7-77-113.
Thomann, R. V. 1982. Development of a Physio-Chemical Model of Toxic
Substances in the Great Lakes. Manhattan College, NY, for U.S.
Environmental Protection Agency, Grosse He, MI, Cooperative Agreement
No. CR105916010, In Press.
Tsivoglou, E. E. and J. R. Wallace. 1972. Characterization of Stream
Reaeration Capacity. U.S. Environmental Protection Agency,
Washington, DC. EPA-R3-72-012.
Wolfe, N. L., R. G. Zepp, G. L. Baughman, and J. A. Gordon. 1975.
Kinetic Investigation of Malathion Degradation in Water. Bull.
Environ. Contain. Toxicol. , 13:707-713.
Wolfe, N. L., R. G. Zepp, G. L. Baughman, and D. M. Cline. 1977.
Kinetics of Chemical Degradation of Malathion in Water. Environ. Sci.
Technol., 11:88-93.
Zepp, R. G., N. L. Wolfe, J. A. Gordon, and G. L. Baughman. 1975.
Dynamics of 2,4-D Esters in Surface Waters: Hydrolysis, Photolysis,
and Vaporization. Environ. Sci. Technol., £:144-150.
Zepp, R. G. and D. M. Cline. 1977. Rates of Direct Photolysis in
Aquatic Environment. Environ. Sci. Technol., 11:359-366.
86
-------
APPENDIX 1:
GLOSSARY
PART 1: GLOSSARY ABBREVIATIONS
L - Local Variable
P - Parameter (i.e. depends on segment)
C - Constant
T - Time function
P* - Parameter from main program
SE
SD
PO
WA
VO
DU
IN
FI
RE
TOXISETL
TOXISEDW
TOXIPHOT
TOXIWASPB
TOXIVOLT
TOXIDUMP
TOXINIT
TOXIFORD
TOXIREOX
PART 2: UNIT ABBREVIATIONS
°C - degrees Celcius
cm - centimeters
ft - feet
g - grams
hr - hours
kcal - kilocalories
kgb - kilograms biomass (dry weight)
kgs - kilograms sediment (dry weight)
L - length
loct - liters of octonol
lw - liters of water in segment
IT - liters total volume of segment
M - mass
M - molarity, moles per liter
m - meters
MCF - million cubic feet total volume
MCFW - million cubic feet of water in segment
mi - miles
mg - milligrams
mgb - milligrams biomass (dry weight)
mgc - milligrams chemical
mgs - milligrams sediment
ml - milliliters
n - moles chemical
sec - seconds
T - time
ug - micrograms
ugc - micrograms chemical
87
-------
PART 3: VARIABLES AND CONSTANTS IN TOXIWASP SUBROUTINES
A(J) p*
Cross sectional area between exchanging sediment and water
compartments, input in subroutine WASP2.
Units: square feet
ACBACG(J) P(WA,IN,FI)
Proportion of bacterial population that actively degrades
toxicant. If the biolysis rate constants are not based on natural
mixed bacterial populations, the total bacterial populations
(BACTOG) given for each compartment can be modified via ACBACG to
give the size of the population that is actively degrading the
toxicant.
Units: dimensionless ratio, nominal range 0.0 to 1.0
ACBACL L(FI)
Active bacterial population for segment being considered. Equal to
BACTOG(J).
Units: Water column compartments: cells per milliliter
Benthic compartments: cells per milliliter pore water
ALPHA (I) L(WA,FI,DU,SE,SD)
The values of ALPHA are distribution coefficients (fraction of
total concentration of toxicant (Y) present as a particular
species/form configuration of the molecule) for each ecosystem
compartment. ALPHA vector represents the partitioning of each
species among three physical forms (dissolved, sediment-sorbed,
biosorbed). ALPHAs are calculated internally from the parameters,
constants, and state variables describing the segment, including
the predicted concentration, the sediment, the biomass, the
octonol-water partition coefficient, etc. In the output these
ALPHAs are designated by DISSF, SEDF and BIOLF.
ALPHA(1)
Fraction of toxicant present as the neutral molecule (SH2)
dissolved in the water phase of the compartment.
ALPHA(2)
Fraction present as neutral molecule sorbed with sediment phase
of compartment.
ALPHA(3)
Fraction present as neutral molecule sorbed with compartment
biomass.
88
-------
ALPH1M L(WA,SD)
Fraction of chemical dissolved in the water phase of the segment
immediately above the bed. Equal to ALPHA(l) for that segment.
Transferred to subroutine TOXISEDW for calculation of bed-water
column mixing of chemical.
ALPH2M L(WA,SD)
Fraction of chemical sorbed onto sediment phase of the segment
immediately above the bed. Equal to ALPHA(2) for that segment.
Transferred to subroutine TOXISEDW for calculation of bed-water
column mixing of chemical.
BACTOG(J) P(WA,IN,FI)
Bacterial population density in each compartment.
Units: Water column compartments: cells per milliliter
Benthic compartments: cells per 100 grams dry weight of
sediment
Internally, BACTOG(J) is multiplied by ACBACG(J) to give active
population density. For the sediment, BACTOG is converted to cells
per milliliter pore water. The conversion used is:
BACTOG(J) = BACTOG(J) * SED/FRW(lE08)
where:
_ cells cells
T00~g 100 * 1000 mgs
FRW = ^ = * 1000
SED(mg/ml) = (l/1000)SED(mg/lT)/FRW
BETA L(VO)
Same as ALPHA(l) for water compartments that intersect surface.
BIOFAC L(WA)
Intermediate variable for determining fraction of chemical sorbed
onto biological phase of a segment.
BIOMAS(J) P(WA,IN,FI)
Total actively sorbing biomass in each ecosystem compartment. This
parameter is used in computation of sorption of the toxicant with
plant/animal material in the ecosystem compartments. The parameter
is interpreted differently for the water column versus the benthic
compartments. For a water column compartment, total biomass must
be expressed as milligram (dry weight) per liter of water in the
compartment, and it includes all biomass subject to biosorptive
exchange with that water. In the case of benthic compartments,
89
-------
BIOMAS is the total biomass of the benthic infauna and other
components in grams (dry weight) per square meter of bottom.
Note that in this simplification from EXAMS, movable biomass (e.g.
plankton) is not distinguished from stationary biomass (e.g.,
roots). This is a potential source of error in systems having high
biotic content.
Units: Water column compartments: mg (dry weight) per liter
Benthic compartments: grams (dry weight) per square meter
BIOLKL L(WA,FI,DU)
Total pseudo-first-order degradation rate constant (per hour) for
bacterial biolysis.
Units: per hour
BIOTMG(J) P(WA,FI)
Biotemperature in each ecosystem compartment, i.e. tempeirature to
be used in conjunction with Q-10 expressions for biolysis rate
constants. This parameter is separated from the physical
temperature input data (TCELG) in order that the input data can
reflect Q-10 averaging of an observed temperature time-series.
Units: degrees C.
BMASS(J) L(WA,FI,SE)
Mass of chemical lost from the network during the simulation.
Chemical can be lost by volatilization through a surface water
segment or burial through a bottom bed segment.
Units: kg
BOTLIT L(PO,IN)
Light level at bottom of compartment
Units: dimensionless, fraction of incident light level
BURY L(SE)
Net burial or erosion rate of top benthic segment. Equal to the
time variable depth of sediment settling in from the overlying
water column minus the time-constant depth of sediment eroding.
Both the settling and erosion rates are entered through the
spatially-variable parameter WS (J).
Units: meters per year
BVOLO(J) L(WA,FI,SE)
Volume of the surface bed segment at time 0. The volume of the
surface bed segment is reset to BVOLO during the compaction cycle.
Units: MCF
90
-------
CBB, CBW, CSB, CSW, CTB, CTW, C1B, C1W L(WA,DU)
CBB: Concentration of chemical sorbed onto biological phase of
bed segment JSTR. Values transferred to TOXIDU every 3
hours for saving on the statistical file.
Units: ug/g
CBW: Concentration of chemical sorbed onto biological phase of
water segment JTR. Values transferred to TOXIDU every 3
hours for saving on the statistical file.
Units: ug/g
CSB: Concentration of chemical sorbed onto sediment phase of
bed segment JSTR. Values transferred to TOXIDU every 3
hours for saving on the statistical file.
Units: mgc/kgs
CSW: Concentration of chemical sorbed onto sediment phase of
water segment JTR. Values transferred to TOXIDU every 3
hours for saving on the statistical file.
Units: mgc/kgs
CTB: Total concentration of chemical in bed segment JSTR.
Values transferred to TOXIDU every 3 hours for saving on
the statistical file.
Units:
CTW: Total concentration of chemical in water segment JTR.
Values transferred to TOXIDU every 3 hours for saving on
the statistical file.
Units: ragc/l-p
ClB: Concentration of chemical dissolved in water phase of bed
segment JSTR. Values transferred to TOXIDU every 3 hours
for saving on the statistical file.
Units: mgc/1
w
Ciw: Concentration of chemical dissolved in water phase at
water segment JTR. Values transferred to TOXIDU every 3
hours for saving on the statistical file.
Units: mgc/lw
91
-------
CHEM L(WA,SE,SD)
Chemical concentration in segment, equivalent to C(J,1)
Units: mg/lf
CHEM1, CHEM2, CHEM3, CHEMB, CHEMS, CHEMW L(DU)
CHEM1: Chemical dissolved in water phase of current segment.
Units: mgc/l-p
CHEM2: Chemical sorbed onto sediment phase in current segment.
Units: rage/I^
CHEMS: Chemical sorbed onto biological phase in current segment.
Units: mgc/l^
CHEMB: Chemical sorbed onto biological phase in current segment.
Units: ugc/gbiomass
CHEMS: Chemical sorbed onto sediment phase in current segment.
Units: mgc/kgs
CHEMW: Chemical dissolved in water phase of current segment.
Units: mgc/lw
CHEM1S, CHEM2S, CHEMSS L(SD)
CHEM1S: Chemical concentration dissolved in pore water in bed
segment
Units: mgc/lw
CHEM2S: Chemical concentration sorbed on sediment in bed segment
Units: mgc/li
CHEMSS: Chemical concentration sorbed on sediment in bed segment
Units: mgc/kgs
CHEM1W, CHEM2W, CHEMSW L(SD)
CHEM1W: Chemical concentration dissolved.in water segment above
bed segment
Units:
92
-------
CHEM2W: Chemical concentration sorbed on sediment in water segment
above bed segment
Units: mgc/lj
CHEMSW: Chemical concentration on sorbed sediment in water segment
above bed segment
Units: mgc/kgs
CLOUDG C(WA,FI,PO)
Average cloudiness in tenths of full sky cover.
Units: dimensionless, range of 0.0 to 10.0
CMAX(9) L(WA,IN)
The concentration of a 10" 5 molar solution of chemical, or half
the chemical solubility, whichever is less. CMAX(9) is used to
abort the simulation whenever dissolved chemical concentration
rises above this limit. This prevents violation of the model's
first-order kinetics assumption. This check is activated only when
CMAX(l) is set to 0.
Units: mgc/lw
CMAX(IO) L(IN)
Half the chemical solubility.
Units: mgc/lw
CMPETG(J): P(WA.PO)
Single-valued zenith light extinction coefficients for water
columns, dummy variable for benthic compartments.
Units: per meter
This coefficient is based on external calculations described in
EXAMS. The user is referred to the EXAMS manual (2.3.3.2.2.) and
Fig. 2.18.
COND L(VO)
Inverse of addition of series resistances of gas and liquid
interfaces.
Units: meters per hour
CTRIG C(WA,IN,DU)
Trigger concentration that defines a peak event. When the chemical
concentration in segment JTR rises above CTRIG, a peak event is
flagged. Concentrations for all segments are printed out every 3
hours until the concentration falls below CTRIG and the event
93
-------
ends. This option is designed to catch high transient concentrations
that would be missed by the regular WASP dumps. If less frequent
peak printout is desired, statement 68 in TOXIDUMP can be changed
from PNEXT = 3.0 to, say PNEXT = 8.0. This would cause printouts
every 8 hours during peak events. A trigger concentration of 0
will disable event printouts.
Units: mgc/1^
BELT L(WA)
Intermediate value of simulation time step used for maximizing time
step to minimize numerical dispersion and simulation cost. Ranges
between 0.01 and 0.50 days.
Units: days
DENOM L(WA)
Intermediate variable for calculating fractions of chemical
dissolved, sorbed onto sediment, and sorbed onto biomass.
DEPTH L(WA,SE)
Depth of segment being considered.
Units: feet
DEPTHG(J) P(WA,IN,FI,VO,PO,SE)
Depths of segments.
Units: feet
DEPTHM L(WA,PO,SE)
Depth of segment being considered.
Units: meters
DFACG C(WA,PO)
Distribution function (ratio of optical path length to vertical
depth).
Units: dimensionless, values constrained to range of 1.0 to 2.0
Default value 1.19, explained in TOXIPHOT.
DISP L(SW)
Volumetric dispersion between a bed and an overlying water segment,
or between two vertically adjacent bed segments. DISP is brought
from WASP2 using BR(I), and is corrected internally for its
resulting mixed units.
Units: MCF per second times square cm per square mile
94
-------
DISPV(J) L(WA,SD)
Dispersive exchange volumes between sediment and water
compartments. Water-water exchanges are calculated in WASP2.
Sediment-water exchanges are calculated in TOXISEDW using
characteristic lengths, areas, and dispersion fromWASPZ, along
with porosity and other factors from TOXISEDW.
Units: million cubic feet per day
DSPSED(J) P(WA,SD)
Fraction of sediment that mixes. 1.0 is equivalent to full bed
sediment dispersion, 0.0 is equal to pore water diffusion only.
Units: dimensionless
DTOPT C(WA)
Option to optimize time step. If set to 1, program computes
maximum time step that preserves numerical stability throughout
network. Both flow volumes and dispersive exchange volumes are
kept less than or equal to segment volumes. Time step can vary
between 0.01 days and 0.5 days.
E(J) P*
Sediment-water dispersion coefficent input in WASP2. E is a
composite of direct sorption to the sediment surface, mixing of the
sediments by benthic animals, stirring by demersal fishes, etc.
Units: square centimeters per second
EAHG(I.l) C(FI)
Arrhenius activation energy of specific-acid-catalyzed hydrolysis
of the toxicant.
Units: kcal/gram mole
EBHG(I.l) C(FI)
Arrhenius activation energy of specific-base-catalyzed hydrolysis
of the toxicant.
Units: kcal/gram mole
EHENG C(VO)
Constant used to compute Henry's Law constants for volatilization
as a function of environmental temperatures (TCELG). When EHENG is
non-zero, the Henry's Law constant is computed as follows.
log HENRY = HENRYG-((1000.*EHENG)/(4.58*(TCELG+273.15)))
Units: kcal/gram mole
95
-------
ENHG(I,1) C(FI)
Arrhenius activation energy of neutral hydrolysis of the toxicant.
Units: kcal/gram mole
EOXG(I.l) C(FI)
Arrhenius activation energy of oxidative transformation of the
toxicant.
Units: kcal/gram mole
ESOLG C(VO)
Exponential term for describing solubility of the toxicant as a
function of temperature (see SOLG).
Units: kcal/gram mole
EVPRG C(VO)
Molar heat of vaporization for vapor pressure described as a
function of temperature (See VAPRG).
Units: kcal/gram mole
EXDO L(SD)
Chemical sorption rate from lower water column segment to top bed
segment.
Units: MCF per day times ragc/l-p
EXUP L(SD)
Chemical desorption rate from upper bed segment to lower water
column segment.
Units: MCF per day times mgc/lj
FAC C(IN,SE)
Multiplication factor for sedimentation time step. Set FAC to 1.0
to eliminate numerical dispersion in the bed. For smoother output
with some numerical dispersion, set FAC to 0.1.
FACTOR L(PO)
Latitude correction factor by which the photolysis rate is adjusted
from the rate at the reference latitude.
FRW(J) L(WA,IN,SE,SD)
Porosity, or water fraction in sediment on a volumetric basis.
Calculated from the parameter PCTWA(J).
Units: lw/lx
96
-------
FVOL L(SE)
The fractional volume of the surface bed segment that is to be
compacted into the volume of the second bed segment during the
compaction cycle. The difference between FVOL and the volume of
the second bed segment is SVOL, the pore water squeezed out.
Units: MCF
HENRYG C(FI,VO)
Henry's Law constant of the toxicant. If parameter EHENG is
non-zero, HENRYG is used as the pre-exponential factor in computing
the Henry's Law constant as a function of environmental temperature
(TCELG).
Units: Atmosphere-cubic meters per mole
HENRYL L(VO)
Local value of HENRYG. If HENRYG is zero, model will calculate
value.
Units: Atmosphere-cubic meters per mole
HPLUS L(FI)
Intermediate calculation in obtaining temporally averaged
concentration of hydronium ions.
HPLUS = 10**(-PHG)
HYDRKL L(FI,DU)
Total pseudo-first-order rate constant (per hr) for hydrolytic
transformations of the toxicant in each compatment.
Units: per hour
HYDRX L(FI)
Intermediate calculation in obtaining temporally averaged
concentration of hydroxide ions.
HYDRX = 10**(-POHG)
II, 12 L(SD)
Local variables representing segments involved in exchange.
(See "IR(I), JR(I)" card group B)
ICHK L(WA)
Integer flag denoting day on which last set of daily flows and
nonpoint source loads were read from auxiliary file. Saved in
COMMON as TIMCHK.
ICOUNT L(DU)
Number of entries into auxiliary file for statistical analysis.
Integer value of TCOUNT.
97
-------
ICOL L(IN)
Subscript indicating column in table of daily flows from auxiliary
file (1-10).
IL(J) P*
Characteristic length for dispersive exchange, input in WASP2.
Units: feet
INDEXS L(WA,FI)
INDEXS is an internally calculated flag designating a benthic
compartment. INDEXS is 1 for benthic compartments (TYPEE = 3 or
4), 0 for water compartments (TYPEE = 1 or 2).
1NDEXW L(WA,FI)
INDEXW is an internally calculated flag designating a water column
compartment. It takes a value of 1 for water compartments (TYPEE =
1 or 2) and a value of 0 for benthic compartments (TYPEE = 3 or 4).
IOPT L(DU)
Flag designating type of output desired in TOXIDU.
ITCHK L(WA,IN)
Integer flag denoting whether a full day has passed since the last
set of flows and nonpoint source loads were read from auxiliary
file.
ITIMEC L(WA)
Integer flag denoting the current simulation day. The integer
value of TIME.
ITYPE L(IN,SE)
Flag designating segment type. The integer value of TSfPEE(J).
IZERO L(PO)
Light intensity at top of lower level water compartment.
0.0 to 1.0.
Units: dimensionless
JROW L(IN)
Subscript indicating row in table of daily flows from auxiliary
file.
JSTR L(WA,IN,DU)
Top bed segment below water segment FTR. Concentrations in JSTR
are printed out during peak "events," and are saved every 3 hours
on an auxiliary statistical file.
98
-------
JTR L(WA,DU;
Segment used to trigger event printouts when total chemical
concentration exceeds CTRIG. Saved in COMMON as XJTR.
Concentrations in JTR are printed out during peak events, and are
saved every 3 hours on an auxiliary statistical file.
JL(J) P*
Characteristic length for dispersive exchange input in WASP2.
Units: feet
KAHG(I.l). C(FI)
Second-order rate constants for specific-acid-catalyzed hydrolysis
of toxicant. If the corresponding entry in the Arrhenius
activation energy matrix (EAHG) for this reaction is zero, the
value entered in KAHG is taken as the second-order rate constant.
If the corresponding entry in the activation energy matrix (EAHG)
is non-zero, the value entered in matrix KAHG is interpreted as the
base-10 logarithm of the frequency factor in an Arrhenius function
for the reaction, and local values (KAHL) of the second-order rate
constant are computed as a function of temperature (TCELG) in each
system compartment.
Units: per mole[H+]per hour
KAHL L(FI)
Local value of KAHG(I,1) corrected for temperature.
Units: per mole [H+J per hour
KB L(WA,FI,IN)
Effective biomass partition coefficient. Calculated internally by
multiplying OCB and KOW.
Units: lw/kgb
KBACSG(I,1) C(FI)
Second-order rate constants for benthic sediment bacterial biolysis
of the organic toxicant. If the corresponding entry in the Q10
matrix (QTBASG) for this process is zero, the number entered in
matrix KBACSG is taken as the second-order rate constant. If the
corresponding entry in the Q-10 matrix is non-zero, the value
entered in matrix KBACSG is interpreted as the numerical value of
the second-order rate constant at 20 degrees C. , and local values
(KBACSL) of the rate constant are computed as a function of
temperature (BIOTMG) in each ecosystem compartment.
Units: ml/cell-hour
99
-------
KBACSL L(WA,FI)
Local value of KBACSG(I,1), corrected for temperature.
Units: ml/cell-hour
KBACWG(I,1) C(FI)
Second-order rate constants for water column bacterial biolysis of
the organic toxicant. If the corresponding entry in the Q-10
matrix (QTBAWG) for this process is zero, the number entered in
matrix KBACWG is taken as the second-order rate constant. If the
corresponding entry in the Q-10 matrix is non-zero, the value
entered in matrix KBACWG is interpreted as the numerical value
KBACWL of the rate constant are computed as a function of
temperature (BIOTMG) in each ecosystem compartment.
Units: ml/cell-hour
KBACWL L(WA,FI)
Local value of KBACWG(J), corrected for temperature.
Units: mg/cell-hour
KBHG(I.l) C(FI)
Second-order rate constants for specific-base-catalyzed hyrolysis
of toxicant. If the corresponding entry in the Arrhenius
activation energy matrix (EBHG) for this reaction is zero, the
value entered in KBHG is taken as the second-order rate constant.
If the corresponding entry in the activation energy matrix (EBHG)
is non-zero, the value entered in matrix KBHG is interpreted as the
base-10 logarithm of the frequency factor in an Arrhenius function
for the reaction, and local values (KBHL) of the second-order rate
constant are computed as a function of temperature (TCELG) in each
system compartment.
Units: per mole[OH-] per hour
KBHL L(WA,FI)
Local value of KBHG(I,1), corrected for temperature.
Units: per mole [OH-] per hour
KDPG C(FI,PO)
A near-surface photolytic rate constant for the toxicant. The
value of KDPG represents the outcome of an experiment conducted in
natural sunlight. The constant is a temporally averaged (e.g. over
whole days, seasons, etc.) first-order photolytic transformation
rate constant pertaining to cloudless conditions at some reference
latitude RFLATG.
Units: per hour
100
-------
KDPL L(FI,PO)
Locally adjusted value of KDPG returned from TOXIPHOT.
KNHG(I.l) C(FI)
Rate constants for neutral hydrolysis of organic toxicant. If the
corresponding entry in the Arrhenius activation energy matrix
(ENHG) for this reaction is zero, the value entered in KNHG is
taken as the rate constant. If the corresponding entry in the
activation energy matrix (ENHG) is non-zero, the value entered in
matrix KNHG is interpreted as the base-10 logarithm of the
frequency factor in an Arrhenius function for the reaction, and
local values (KNHL) of the rate constant are computed as a function
of temperature (TCELG) in each system compartment.
Units: per hour
KNHL L(FI)
Local value of KNHG(I,1), corrected for temperature.
Units: per hour
K02G(J) L(WA,IN,VO)
Reaeration parameter at 20 degrees C in each ecosystem
compartment. Calculated from segment depths and velocities, and
time-varying wind.
Units: centimeter per hour
K02L L(WA,VO)
Reaeration parameters in each compartment (m/hr) after temperature
adjustment and units conversion.
KOC C(WA,IN)
Organic carbon partition coefficient. Value of KOC read in or if
equal to zero, calculated from KOW. Multiplication of KOC by the
fractional organic carbon content (OCS) of each system sediment
yields the partition coefficient for sorption of unionized (SH2)
compound to the sediment.
Units: lw/kg organic carbon
KOW C(WA,IN)
Octanol water partition coefficient Value of KOW read in, or if
equal to zero, calculated from KOC.
Units: (mgc/loct)-(mgc/lw), or lw/loct
101
-------
KOXG(I,1) C(FI)
Second-order rate constants for oxidative transformation of
toxicant. If the corresponding entry in the Arrhenius activation
energy matrix (EOXG) for this reaction is zero, the value entered in
KOXG is taken as the second-order rate constant. If the
corresponding entry in the activation energy matrix (EOXG) is
non-zero, the value entered in matrix KOXG is interpreted as the
base-10 logarithm of the frequency factor in an Arrhenius: function
for the reaction, and local values (KOXL) of the second order
constants are computed as function of temperature (TCELG) in each
system compartment.
Units: liter per mole environmental oxidant per hour
KOXL L(FI)
Local value of KOXG(I,1), corrected for temperature.
Units: liter per mole environmental oxidant per hour
KP(J) L(WA,IN,SE)
Effective sediment partition coefficient. Internally calculated as
the product of KOC and OCS(J), and saved as Parameter 12.
Units: lw/kgs
KT L(IN)
Daily counter for reading nonpoint source loads from auxiliary tape
and printing table (1-1000).
Units: days
KVOG C(VO)
Measured experimental value for (volatilization) liquid-phase
transport resistance, expressed as a ratio to the reaeration rate.
Units: dimensionless ratio
K20 L(FO,RE)
The computed reaeration rate at 20?oOC. Used to calculate the
chemical volatilization rate.
Units: per day
LATG C(PO)
Geographic latitude of ecosystem.
Units: degrees and tenths (e.g. 37.2)
LIGHTL L(PO)
The average light intensity in the current compartment, as a
fraction of the near-surface light intensity (taken as 1.0 or 100%).
102
-------
LIGHTN T(WA,PO)
Normalized light time function, transferred through COMMON as
constant 78 to TOXIPHOT. There it adjusts the average photolysis
rate for seasonal light variability.
LOPT C(WA,IN)
Option to read in flows and/or nonpoint source loads on a daily
basis:
0 = skip daily read option
1 = read sequential tape containing daily flows and/or loads
MOQ L(WA,IN)
Number of flow pairs read from auxilliary file daily. MOQ is read
from auxilliary file by TOXINIT and passed to TOXIWASPB through
COMMON as the floating point variable MOQS.
MOQS L(WA,IN)
Number of flow pairs read from auxilliary file daily. MOQS is set
equal to MOQ in TOXINIT and saved in COMMON as constant 83.
MQOPT L(IN)
Flow option read from auxilliary file. Not used.
MTYPE L(IN)
Flag designating type of segment immediately above current segment.
Integer value of TYPEE(J-l).
MWTG C(VO)
The molecular weight of the toxicant.
Units: grams per mole
NCOL L(IN)
Variable indicating the number of column entries in the last row of
daily flows from auxilliary file.
NOWKS L(WA,IN)
Number of nonpoint source loads read from auxilliary file daily.
NOWKS is read from auxilliary file by TOXINIT and passed to
TOXIWASPB through COMMON as constant 84.
NPSWK(I,J) L(WA,IN)
Nonpoint source load J for constituent I (chemical or sediment),
read from auxilliary file daily. The segment into which load J
discharges is defined in Card Group F: Forcing Functions.
Units: million pounds per day
NWKS L(WA,IN)
Number of nonpoint source loads read from auxilliary file daily.
NWKS is the integer value of NOWKS.
103
-------
OCB C(WA,IN)
Organic carbon content of the compartment biomass as a fraction of
dry weight. Coupled to KOW to generate biomass partition
coefficient.
Units: dimensionless
OCS(J) P(WA,IN)
Organic carbon content of sediments as fraction of dry weight.
Parameter is coupled to KOC to generate the sediment partition
coefficient as a function of a property of the sediment.
Units: dimensionless
OXIDKL L(FI,DU)
Pseudo-first-order rate constants for oxidative transformation of
toxicant.
Units: per hour
OXRADG(J) P(FI)
Molar concentration of environmental oxidants (e.g. peroxy radicals)
in each ecosystem compartment.
Units: moles per liter
PCTWA(J) P(WA,IN)
Percent water in bottom sediments of benthic compartments. PCTWA(J)
should be expressed as the conventional soil-science variable
(fresh/dry weight); all values must be greater than or equal to 1.
Units: dimensionless
PERC L(SE)
Pore water percolation, calculated from the spatially-variable
parameter WS(J) for type 4 (subsurface benthic) segments.
Units: MCF per day
PERCMS L(SE)
Mass transport rate of dissolved chemical in pore water.
Units: MCF per day times mgc/lw
PH L(WA,FI)
Hydrogen ion activity of segment being considered. Local value of
PHG(J).
Units: pH units
104
-------
PHG(J) P(WA)
Hydrogen ion activity. The negative value of the power to which 10
is raised in order to obtain the temporally averaged concentration
of hydronium ions [H30+] in gram-molecules per liter.
Units: pH units
PHOTKL L(FI,DU)
Pseudo-first-order rate constant for photolytic transformation of
the toxicant.
Units: per hour
PHN T(WA)
Normalized time function for PH. Adjusts PHG(J) for seasonal
variability.
POHN T(WA)
Normalized time function for POH. Adjusts POH'XJ) for seasonal
variability.
PNEXT L(WA,DU)
Triggers event printout every 3 hours during peak event period.
Local value of POHG(J).
POH L(WA,FI)
Hydroxide ion activity of segment being considered. Local value of
POHG(J).
Units: POH units
POHG(J) P(WA)
Hydroxide ion activity. The negative value of the power to which 10
is raised in order to obtain the temporally averaged concentration
of hydroxide [OH-] ions in gram-molecules per liter.
Units: pOH units
POROS L(SD)
Porosity of top bed segment, used in computing dispersive exchange
between bed and water column. For computing dispersive exchange
between two bed segments, POROS is the mean porosity.
Units: IW/IT
PTIME L(DU)
Rounded-off value of TIME for output.
Units: days
QT(I) L(IN)
Variable for temporary storage of daily flows from auxilliary file.
105
-------
QTBASG(I,1) C(FI)
Q-10 values for bacterial transformation (c.f. KBACSG) of organic
toxicant in benthic sediments. The Q-10 is the increase in the
second-order rate constant resulting from a 10 degree C temperature
increase.
Units: dimensionless
QTBAWG(I.l) C(FI)
Q-10 values for bacterial transformation (c.f. KBACWG) of chemical
in the water column of the system. Q-10 is the increase in the
second-order rate constant resulting from a 10 degree C temperature
increase.
Units: dimensionless
QUANTG(l.l) C(FI)
Reaction quantum yield in photolytic transformation of chemical.
The quantum yield is the fraction of total quanta absorbed by the
toxicant resulting in transformations. Separate values are provided
for each molecular configuration of the toxicant in order to make
assumptions concerning their relative reactivities readily available
to the user.
Units: dimensionless
RATEK L(VO,PO)
Internally calculated rate returned from TOXIVOLT or TOXIPHOT to
TOXIFORD for use as VOLKL or KDPL.
RESGAS L(VO)
Gas film resistance to volatilization.
Units: hours per meter
RESLIQ L(VO)
Liquid film resistance to volatilization.
Units: hours per meter
RFLATG C(WA)
Reference latitude for corresponding direct photolysis rate constant
(c.f. KDPG).
Units: degrees and decimal fraction (e.g. 40.72)
RVOL(J) L(IN,SE)
Reference volume at which the sediment compaction cycle is initiated
for surface bed segment "J". RVOL(J) is computed in TOXINTT for
each surface bed segment and is stored in location RVOL(J-l)
[equivalenced to VVOL(J-l)]. RVOL(J) is the surface bed volume that
will hold the mass of sediment contained in the upper two bed
106
-------
segments at time 0. RVOL(J) will be greater than the combined
volume of the upper two bed segments at time 0 if the density of the
second bed segment is greater than the top bed segment.
Units: MCF
SCALQ L(IN)
Scale factor to convert daily flows from auxiliary file to cubic
feet per second.
SED L(WA,DU,SE,SD)
Sediment concentration of segment being considered.
Units: mgs/l-p
SEDCOL L(SD)
Sediment concentration after conversion to internal units (kg/liter
of water) in sediment compartment.
Units: kg/lw
SEDFAC L(WA)
Intermediate variable for determining fraction of chemical sorbed
onto sediment phase of a segment.
SEDFL L(SD)
Rate of sediment mixture to the surface of the bed, allowing
sorption or desorption with the overlying water. Related to the
dispersive exchange of water by the spatially-varying parameter
DSPSED(J).
Units: MCF (water) per day times mgs/lw
SETINS, SETOUS L(SE)
Sediment settling into or out of compartment. These variables are
transferred to TOXIWASPD to hold the values until the next call to
TOXISETL.
Units: rags/lf-day
SETINC, SETOUC L(SE)
Chemical settling into or out of a compartment. Chemical can only
settle when adsorbed to sediment.These variables are transferred to
TOXIWASPD to hold the values until the next call to TOXISETL.
Units: mgc/lf-day
SEDW L(SD)
Sediment concentration in water compartment above bed.
Units: kg/lT
107
-------
SMASS L(SE)
Mass of dissolved chemical in the pore water squeezed from the
surface bed segment to the water column during the compaction
cycle.
Units: MCFW times mgc/lw
SOLG C(VO)
Aqueous solubility of toxicant chemical species. If the
corresponding value in ESOLG (c.f.) is zero, SOLG is interpreted as
an aqueous solubility in mg/liter. If ESOLG is non-zero, SOLG is
used in an equation describing the molar solubility of the toxicant
species as a function of environmental temperature (TCELG), i.e.
SOLL(mg/l) = 1000.*MWTG*10.**J(SOLG-(1000.*ESOLG/(2.303*R*(TCELG+
273.15)))) Solubilities are used (inter alia) to limit the
permissible external loadings of the toxicant on the system to
values that generate final residual concentrations .LE. 50% of
aqueous solubility (or 1.E-5M). This constraint is imposed in order
to help ensure that the assumption of linear sorption isotherms is
not seriously violated.
Units: mg/lj
SOLL L(VO)
Temperature-corrected aqueous solubility of chemical
SVOL L(SE)
Volume of pore water squeezed from the surface bed segment to the
water column during the compaction cycle. SVOL is the difference in
volume between the surface bed segment before compaction and the top
two bed segments after compaction.
Units: MCF
TCELG,TKEL L(Wa,FI,VO)
Product of segment temperature TEMPM(J) and temperature function
TEMPN. Immediately converted to Kelvin temperature (TKEL) from
Celsius.
TCOUNT L(IN,DU)
Number of entries into auxilliary file for statistical analysis.
Stored in COMMON as constant 73.
TDINT C(WA.DU)
Time interval between recalculation of decay rates.
Units: days
TEMPM(J) P(WA)
Average temperature for compartment.
Units: degrees C
108
-------
TEMPN T(WA)
Value of normalized time function describing temperature. Multiples
TEMPM to give TCELG,
Unitless
TIMCHK L(WA,IN)
Day on which last set of daily flows and nonpoint source loads were
read from auxiliary file. Saved in COMMON as constant 82.
Units: day
TMARK L(WA,IN)
Day on which rate constants will be recalculated. Incremented
throughout simulation by TDINT.
Units: day
TMASS L(SE)
Mass of chemical transferred to the next lower bed segment during
the compaction cycle. TMASS is first set to the mass of chemical in
the top bed layer that is compacted into the new second bed layer
(FVOL*CHEM). Once the new concentration of the second bed layer is
determined, TMASS is set to the mass of chemical in the second bed
layer that is buried into the new third bed layer. This is
continued to the bottom bed segment, where TMASS is added to
BMASS(J), the amount of chemical mass lost from the network by
burial below segment J.
Units: MCF times mgc/lT
TMPM L(SE)
Temporarily held value of TMASS, the amount of chemical transferred
to the next lower bed segment during the compaction cycle.
Units: MCF times mgc/lx
TOTKG(J) P(WA,IN)
Total first order decay rates calculated externally. If equal to
zero, the program evaluates all separate processes and calculates a
combined total first order decay rate, TOTKL.
Units: per day
TOTKL L(WA,FI,DU)
Value of total first-order decay rate for compartment, derived from
TOTKG(J).
Units: per day
TQ L(WA)
Temporary value for flow or exchange between two segments, used for maxi-
mizing time step to minimize numerical dispersion and simulation cost.
109
-------
Units: million cubic feet per day
TRT L(WA)
Test value of time step that would eliminate numerical dispersion in
a segment.
Units: days
TYPEE(J) P(WA,IN,FI,PO,SE,SC)
Numerical code designating segment types used to define ecosystem.
Available types: 1 = Epilimnion, 2 = Hypolimnion, 3 = Benthic
(active), and 4 = Benthic (buried).
Units: dimensionless
TYP1,TYP2 L(SD)
Internal variables describing type (e.g. TYP1 = TYPEE(Il)) of
interchanging compartments.
V1,V2,...,V8 L(WA,DU)
Dummy variables used in argument of calls to TOXIDU.
VAPRG C(VO)
Vapor pressure of compound. Used to compute Henry's Law constant if
the latter input datum (HENRYG) is zero, but VAPRG is non-zero.
Units: torr
VAPRL is the converted value to atmospheres. L(VO)
VELOC(J) P(WA,IN)
Average velocity of water in the compartment
Units: feet per second
VOL L(WA)
Equal to BVOL(J), the volume of the compartment.
Units: million cubic feet
VOLKL L(DU,FI)
Pseudo-first-order rate constants for volatilization losses from
surface water compartments.
Units: per hour
VVOL(J) L(WA,FI,SE)
A dummy array to hold parameters describing the varying surface bed
segment volume.
WAT L(VO)
Piston velocity term for water vapor.
110
-------
Units: meters per second
WATFL L(SD)
Dispersive exchange of water between top bed segment and water
column, or between two vertically adjacent bed segments.
Units: million cubic feet per day
WIND L(WA,VO)
Local, time-varying wind speed. Equal to the average wind velocity
over a segment WINDG(J) times the time function WINDN.
Units: meters per second
WINDG(J) P(WA)
Average wind velocity at a reference height of 10 cm above the water
surface. Parameter is used to compute a piston velocity for water
vapor (Liss 1973, Deep-Sea Research 20:221) in subroutine VOLAT.
Units: meters per second
WINDN T(WA)
Normalized wind speed as function of time.
Units: unitless
WS(J) P(SE)
Spatially variable parameter denoting settling rate of suspended
sediment in water column segments (types 1 and 2), erosion rate of
surface bed sediment in surface bed segment (type 3), or percolation
of pore water through subsurface bed segments (type 4).
Units: Segment types 1,2: meters per day
Segment type 3: cm per year
Segment type A: cubic feet per second
XJSTR L(WA,IN,DU)
Top bed segment below water segment JTR. Equal to JSTR, this
variable is saved in COMMON as constant 75.
XJTR C(WA,IN,DU)
Reference segment for triggering event and frequency output. A
value of zero will disable it. A non-zero value will cause printout
of all segment concentrations when the concentration at XJTR is
greater than CTRIG. Also, a time history of concentrations (every 3
hours) at XJTR and its associated benthic segment will be stored for
later frequency analysis.
XMASS L(DU)
Mass of chemical in segment.
Units: kg
111
-------
XXX L(PO)
Exponential light disappearance term.
XTES L(PO)
Maximum light disappearance term. After this value (87.4) no light
is present.
XTST L(IN,DU)
Test variable to determine whether to set up event-triggered
printout. If either CTR1G or JTR is zero, then event-triggered
printout is disabled.
PART 4: VARIABLES IN WASP COMMON
The following list defines the variables contained in blank COMMON.
Blank COMMON is used by WASP as the vehicle to pass information from
subroutine to subroutine within the program. The R, I, and * con-
tained within parentheses after the variable name indicate, respec-
tively, whether the variable is a REAL (floating point), or INTEGER
(fixed point), and whether the variable is read as input data.
Variable Name Definition
IN(I) Device number for reading input data.
OUT(I) Device number for printer output.
NOSYS(I*) Number of systems or water quality constituents in
the user's model.
ISYS(I) System currently having its derivatives evaluated.
ISEG(I) Segment currently having its derivatives evaluated.
ISIM(I*) Simulation type - currently only time variable is
permitted.
LISTG(I*) User selected option to print exchange coefficient,
segment volume, advective flow and boundary condi-
tion input data.
LISTC(I*) User selected option to print forcing function
(waste load), kinetic constants, segment parameters,
and miscellaneous kinetic time functions, and ini-
tial condition input data.
INITB(I) Internal program indicator which permits the user to
perform initialization or to execute special code
upon initial entry to the WASPB kinetic subroutine.
Initially equal to zero, INITB must be reset by the
user in WASPB.
112
-------
IPRNT(I)
IDUMP(I*)
IDISK(I)
IREC(I)
MXDMP(I)
IDFRC(I)
NBCPSY(I)
NWKPSY(I)
SYSBY(I*)
RBY(I*)
QBY(I*)
Not currently used.
System - segment combinations to be printed out
during the integration procedure.
When checked by the user in the kinetic subroutine,
WASPB, IDISK acts as internal program indicator which
informs the user when a print interval has been reached,
permitting the user to write the current state variables
or segment concentrations to auxiliary storage (disk).
Normally IDISK equals zero, but at a print interval it
is externally set to one; must be reset by the user
before exiting from WASPB.
Internal counter used to keep track of the number of
print intervals generated during the course of the
simulation.
Blocking factor or the maximum number of variables
saved per segment at each print interval.
Used only in the DEC-POP version as the record address
pointers for the direct access dump files. Not needed
for the IBM 370 version because sequential files are
used.
Maximum number of boundary conditions permitted per
system; set for a particular WASP configuration in
subroutine WASP1.
Maximum number of forcing functions (waste loads)
permitted per system; set for a particular WASP con-
figuration in subroutine WASP1.
User selected system by-pass indicators. If a user
wishes he may choose to by-pass computations for a
particular system (or systems), ISYS, for a simula-
tion run by setting SYSBY (ISYS) appropriately.
User selected exchange transport by-pass indicators.
If a user wishes he may by-pass exchange transport for
a particular system, ISYS, by setting RBY(ISYS)
appropriately. (Example: if a user had incorporated
rooted aquatic plants in his model he would not wish to
have them "disperse").
User selected advective transport indicators. If a
user wishes he may by-pass advective transport for a
particular system, ISYS, by setting QBY(ISYS) appro-
priately. (Example: if a user had incorporated
rooted aquatic plants in his model he would not wish
to have them transported via flow).
113
-------
NEGSLN(I*)
TIME(R)
DT(R)
TZERO(R*)
SCALT(R*)
TEND(R)
PRNT(R*)
OMEGA(R)
ITCHCK(R)
MXITER(R)
C(R)
CD(R)
CMAX(R*)
Indicates whether the user has chosen to permit WASP
to compute negative water quality concentrations
(Example: permit negative D.O. deficit, i.e.,
supersaturation). NEGSLN normally equals zero, but
will equal one, if user choses to permit negative
solutions.
Current simulation time.
Current integration time step.
User selectable time for start of simulation. If
for example a user's input data for a model was set
up such that time zero was January 1, a user may
skip computations for January and February and start
March 1 by setting TZERO (on input) to 59.
Time scale factor. The nominal unit for time in
WASP in days. A user may choose to run his simula-
tion in hours by inputting SCALT to be 0.041667 (or
1/24). WASP will then interpret any time specifica-
tions (such as the print interval, integration step
sizes and total simulation time and the time breaks
for any piecewise linear functions) to be hours
rather than days.
Ending time for use of the current integration step
size. For single integration stepsize input this
will be the total simulation time. For multiple
integration stepsize histories, when TIME equals
TEND, a new integration step size will be chosen and
TEND reset.
Print interval.
Not used in current version of WASP.
Not used in current version of WASP.
Not used in current version of WASP.
State variable or water quality concentration array.
Derivative array.
Stability criteria vector. The vector contains the
maximum allowable segment concentration for each
system. If any segment exceeds the stability
criteria for any system (usually because the inte-
gration stepsize is too large) the simulation is
terminated.
114
-------
CMIN(R*) Not used in current version of WASP (although user
must include in his input data check).
PARAM(R*) Segment parameters for use in the WASPB kinetic sub-
routine.
CONST(R*) Constants for use in the WASPB kinetic subroutine.
EVOL(R*) Segment volumes (nominal input units MCF, nominal
internal units MFC).
MVOL(R) Not used in current version of WASP.
The value for any time variable exchange coefficient, advective flow,
boundary condition, forcing function or time-variable function utilized
by the WASPB kinetic subroutine is computed using a form of the
following equation
VAL = M*TIME + B
where
VAL is the desired value at time = TIME
M is the slope of the piecewise linear function used to approximate
the exchange coefficient, flow, etc.
B is the intercept of the piecewise linear function.
BR(R) Exchange coefficient intercepts.
BQ(R) Advective flow intercepts.
BBC(R) Boundary condition intercepts.
BWK(R) Forcing function intercepts.
BFUNC(R) Intercepts for the time variable functions required
for the WASPS kinetic subroutine.
MR(R) Exchange coefficient slopes.
MQ(R) Advective flow slopes.
MBC(R) Boundary condition slopes.
MWK(R) Forcing function slopes.
MFUNC(R) Slopes for the time-variable functions required for
the WASPB kinetic subroutine.
Note; If any of the above are time invariant (i.e., constant in time), then
the "B" vector (array) will contain the time invariant value of exchange,
flow, etc., and the "M" vector (array) will contain zero slope.
115
-------
IRCI*), JR(I*)
, JQCI*)
IBC(I*)
IWK(I*)
IVOPT(I*j
NOV(I*)
IROPT(I*)
NOR(I*)
IQOPT(I*)
NOQ(I*)
IBCOP(I*)
NOBC(I*)
IWKOP(I*)
NOWK(I*)
Contain the segment numbers between which exchange
is to take place.
Contain the segment numbers between which advective
flow is to take place. If the advective flow is
positive then JQ will contain the upstream segment
number (from which flow is leaving) and IQ will con-
tain the downstream segment number (to which flow
will go). If, however, the advective flow is nega-
tive then JQ will be considered the downstream seg-
ment (flow to) and IQ will be considered the up-
stream segment (flow from).
Contains the segment numbers for which boundary con-
ditions have been specified.
Contains the segment numbers for which forcing func-
tions have been specified (i.e., receiving water
segments for waste loads).
User selected volume input option. Currently WASP
only permits time-invariant or constant volumes
(IVOPT=1).
Number of volumes (normally NOV equals NOSEG).
User selected exchange coefficient input option.
IROPT flags the exchange coefficients as constant in
time (IROPT=1) or time-variable (IROPT=2,3).
Number of exchange coefficients read.
User selected advective flow input option. IQOPT
flags the flows as constant in time (IQOPT=1) or
time-variable (IQOPT=2,3).
Number of advective flows read.
User selected boundary condition input options for
each system. IBCOP(ISYS) flags the boundary condi-
tions for system ISYS as being constant in time
(IBCOP(ISYS)=1) or time-variable (IBCOP(ISYS)=2,3).
Number of boundary conditions read for each system.
User selected forcing functions input option for
each system. IWKOP(ISYS) flags the forcing func-
tions for system ISYS as being constant in time
(IWKOP(ISYS)=1) or time-variable (IWKOP(ISYS)=2,3).
Number of forcing functions read for each system.
116
-------
NOPAM(I*)
NCONS(I*)
NFUNC(I*)
NVOLT(R)
NRT(R)
NQT(R)
NBCT(R)
NWKT(R)
NFUNT(R)
ITIMV(I)
Number of segment parameters (for use in the WASPB
kinetic subroutine) read.
Number of constants (for use in the WASPB kinetic
subroutine) read.
Number of time variable functions (for use in the
WASPB kinetic subroutine) read.
Not used in the current version of WASP.
Used if the exchange coefficients are time-variable
(approximated by a piecewise linear functions of
time). NRT will contain the time at which the next
break in the piecewise linear functions will occur,
at which point it will be necessary to obtain new
slopes (MR) and intercepts (BR).
Used if the advective flows are time-variable (ap-
proximated by a piecewise linear functions of time).
NQT will contain the time at which the next break in
the piecewise linear functions will occur, at which
point it will be necessary to obtain new slopes (MQ),
and intercepts (BQ).
Used if the boundary conditions for a system are
time-variable (approximated by a piecewise linear
functions of time). NBCT(ISYS) will contain the
time at which the next break in the piecewise linear
functions for system 1SYS, will occur, at which
point it will be necessary to obtain new slopes
(MBC) and intercepts (BBC) for system ISYS.
Used if the forcing functions for a system are time-
variable (approximated by a piecewise linear func-
tion of time). NWKT(ISYS) will contain the time at
which the next break in the piecewise linear func-
tions, for system ISYS, will occur, at which point
it will be necessary to obtain new slopes (MWK) and
intercepts (BWK) for system ISYS.
Used if time variable functions (approximated as
piecewise linear functions of time) have been read
for use in the WASPB kinetic subroutine. NFUNT will
contain the time at which the next break in the
piecewise linear functions will occur, at which
point it will be necessary to obtain new slopes
(MFUNC) and intercepts (BFUNC).
Not used in current version of WASP.
117
-------
ITIMR(I)
ITIMQ(I)
ITIMP(I)
ITIMB(I)
ITIMR(I)
ITIMQ(I)
ITIMP(I)
ITIMB(I)
ITIMW(I)
Used as a breakpoint counter for obtaining correct
slope and intercept values for the time-variable ex-
change coefficients.
Used as a breakpoint counter for obtaining correct
slope and intercept values for time-variable advec-
tive flows.
Used as a breakpoint counter for obtaining correct
slope and intercept values for the time-variable
functions required by the WASPB kinetic subroutine.
Used as a breakpoint counter for obtaining correct
slope and intercept values for time-variable bound-
ary conditions.
Used as a breakpoint counter for obtaining correct
slope and intercept values for the time-variable ex-
change coefficients.
Used as a breakpoint counter for obtaining correct
slope and intercept values for time-variable advec-
tive flows.
Used as a breakpoint counter for obtaining correct
slope and intercept values for the time-variable
functions required by the WASPB kinetic subroutine.
Used as a breakpoint counter for obtaining correct
slope and intercept values for time-variable bound-
ary conditions.
Used as a breakpoint counter for obtaining correct
slope and intercept values for time-variable forcing
functions.
118
-------
APPENDIX 2:
TOXIWASP Subroutine Listings
£*AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA*AAAAAAAAAAAAAAAAAA
c
c
C TOXIWASPD
C
C LAST REVISED 10/13/82
C*AAAA**AAAAAAAAAAA*AA*AAAAAAAAA*AAAAAAAAAAAAAAAAAAAAAAA*AAAAAAAAAAAAAAAA*A
C
SUBROUTINE WASPB
C
C THIS SUBROUTINE COMBINES CHEMICAL AND ENVIRONMENTAL PARAMETERS
C TO FIRST ORDER RATES, AND CALCULATES KINETIC DERIVATIVES.
C IT IS BASED ON THE SUBROUTINE FIRORD IN THE EXAMS MODEL BY DR. L.
C A.BURNS. INCLUDED ARE HYDROLYSIS, BIOLYSIS, OXIDATION,PHOTOLYSIS 1,
C AND VOLATILIZATION.
p__ ___________________ _ ________________________________________________
C TOXIWASPD REDUCES THE KINETICS OF THE TOXICANT TO PSEUDO-FIRST-
C ORDER FORM BY COUPLING CHARACTERISTICS OF THE TOXICANT AND THE
C ENVIRONMENT. IF THE INPUT DATA PERMITS, THE PROPERTIES OF THE
C TOXICANT ARE ADJUSTED TO REFLECT THE EFFECT OF TEMPERATURE IN EACH
C PHYSICAL ELEMENT OF THE SYSTEM. THE PSEUDO-FIRST-ORDER REACTION RATE
C CONSTANTS ARE COMPUTED FROM THE INTERACTIVE EFFECTS OF PARTITIONING,
C TEMPERATURE, AND OTHER CHARACTERISTICS OF THE ENVIRONMENT FOR EACH
C SPECIES. FOR SIMPLICITY, ONLY THE NEUTRAL ION FORM IS CONSIDERED HERE.
C TOXIWASPD CALLS THE FOLLOWING SUBROUTINES:
C INIT (TOXINIT)
C TOXIDU (TOXIDUMP)
C FIRORD (TOXIFORD)
C VOLAT (TOXIVOLT)
C PHOT01 (TOXIPHOT)
C REOX (TOXIREOX)
C SETTLE (TOXISETL)
C SEDWAT (TOXISEDW)
C
C
C SYSTEMS
C
C 1 CHEMICAL, MG/L
C 2 SEDIMENT, MG/L
C
c
119
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
CONSTANTS
HYDROLYSIS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
EBHG(l.l)-
EBHG(2,1)
EBHG(3,1)
ENHG(1,1)-
ENHG(2,1)
ENHG(3,D
EAHG(1,1)-
EAHG(2,1)
EAHG(3,1)
KAHG(l.l)-
KAHG(2,1)
KAHG(3,1)
KBHG(1,D-
KBHG(2,1)
KBHG(3,1)
KNHG(l.l)-
KNHG(2,1)
KNHG(3,1)
ARRHENIUS ACTIVATION ENERGY FOR BASE HYDRO.
N DENOTES NEUTRAL HYDROLYSIS
A DENOTES ACID HYDROLYSIS
2ND ORD. RATE CONST. FOR ACID HYD.
B DENOTES BASE HYDROLYSIS
N DENOTES NEUTRAL HYDROLYSIS
OXIDATION
19 EOXG(l.l)- ARHENIUS ACT. ENERGY OF OXI. TRANSFORMATION
20 EOXG(2,1)
21 EOXG(3,D
22 KOXG(1,1)- 2ND ORD. RATE CONST. FOR OXI. TRANS.
23 KOXG(2,1)
24 KOXG(3,1)
BIOLYSIS
25 KBACWG(1,1)- 2ND ORD. RATE FOR BACT. BIOL. IN WATER
26 KBACWG(2,1)
27 KBACWG(3,1)
28 QTBAWG(1,D- CHANGE IN KBACWG DUE TO TEMP CHANGE OF 10 C
29 QTBAWG(2,1)
30 QTBAWG(3,1)
31 KBACSGd.D- 2ND ORD. RATE FOR BACT. BIOL. IN SEDIMENT
32 KBACSG(2,1)
33 KBACSG(3,1)
34 QTBASGd.D- CHANGE IN KBACSG DUE TO TEMP CHANGE OF 10 C
35 QTBASG(2,1)
36 QTBASG(3,1)
PARTITIONING
120
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
37 KOC
38 KOW
39 OCB
40 (ALPHA(l))
41 (ALPHA(2))
42 (ALPHA(3))
VOLATILIZATION
43 MWTG
44 HENRYG
45 VAPRG
46 KVOG
47 SOLG
48 ESOLG
49 EVPRG
50 EHENG
51 (WIND)
52 (K02L)
53
PHOTOLYSIS
54 KDPG
55 RFLATG
56 CLOUDG
57 LATG
58 DFACG
59 QUANTG1
60 QUANTG2
61 QUANTG3
PART. COEFF.-ORG. CARBON
PART . COEFF . -OCTANOL-WATER
ORG. CARBON FRACTION OF BIOMASS
FRACTION OF CHEMICAL DISSOLVED (CALCULATED)
FRACTION OF CHEMICAL SORBED TO SED (CALCULATED)
FRACTION OF CHEMICAL BIO-SORBED (CALCULATED)
MOLECULAR WEIGHT OF TOXICANT
HENRY'S LAW OF THE TOXICANT
VAPOR PRESSURE OF THE TOXICANT TORR
CONST. EVAP. FOR LIQ. PHASE RESIS.
AQUEOUS SOLUBILITY
SOLUBILITY EXPONENT
MOLAR HEAT OF VAPORIZATION
CONSTANT TO COMPUTE HENRY'S LAW CONSTANT
LOCAL TIME-VARYING WIND (CALCULATED)
LOCAL TIME-VARYING REAERATION VELOC (CALCULATED)
PHOTOLYTIC RATE CONSTANT(1/HOUR)
REF. LAT. FOR KDPG
AVG CLOUD. IN TENTHS SKY COVER
GEOGRAPHIC LAT OF ECOSYSTEM
OPTICAL PATH TO VERTICAL DEPTH
REACTION QUANTUM YIELD IN PHOTO. TRANS.
SPECIAL PRINT AND CONTROL OPTIONS
62 XJTR
63 CTRIG
64 DTOPT
65 TDINT
66 LOPT
INTERNALLY SAVED
67 BURY
68 KDPL
69 KB
70 TEMPN
71 TKEL
72 PNEXT
SEG FOR TRIGGERING EVENT PRINTS AND FREQ ANALYSIS
CONCETRATIONS DEFINING EVENTS
OPTION TO OPTIMIZE TIME STEP
TIME BETWEEN NEW DECAY CALCULATIONS
OPTION TO READ IN DAILY FLOWS AND/OR LOADS
0 = SKIP DAILY READ OPTION
1 = READ DAILY FLOWS AND/OR NPS LOADS
CONSTANTS
LOCAL BURIAL / SCOUR RATE
LOCALLY CALCULATED PHOT. RATE CONSTANT
PARTITION COEFF FOR TARGET BIOMASS
TIME-VARYING NORMALIZED1 TEMPERATURE
LOCAL TEMPERATURE, DEC K
COUNTER FOR NEXT EVENT PRINT CHECK
73 TCOUNT
121
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
C 1=1,2,3
C-.
C
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
74
75
76
77
78
79
80
81
82
83
84
85
TMARK
XJSTR
PH
POH
LIGHTN
INDEXW
INDEXS
BOTLIT
TIMCHK
MOQS
NOWKS
TMASS
BENTHIC SEGMENT FOR EVENT PRINTS AND FREQ
HYDROGEN ION ACTIVITY
HYDROXYL ION ACTIVITY
NORMALIZED LIGHT INTENSITY
INDEX=1. FOR WATER, =0. FOR BED SEGMENT
INDEX=0. FOR WATER, =1. FOR BED SEGMENT
LIGHT AT BOTTOM OF SEGMENT
CHECK FOR NEW DAY
NUMBER OF DAILY FLOWS
NUMBER OF NPS LOADS
CHEMICAL MASS BURIED
ANALYSI
INDICATES DISSOLVED FORM, SEDIMENT SORBED, BIO-SORBED
PARAMETERS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
22
23
TEMPM(J)
DEPTHG(J)
VELOC(J)
WINDG(J)
TYPEE(J)
BACTOG(J)
ACBACG(J)
BIOMAS(J)
BIOTMG(J)
POHG(J)
OXRADG(J)
OCS(J)
PCTWA(J)
DSPSED(J)
PHG(J)
WS(J)
CMPETG(J)
TOTKG(J)
DISPV(J)
NPSWK(J)
VVOL(J)
BMASS(J)
MAX SEG TEMP DEC C
AVERAGE SEG DEPTH FT
AVERAGE SEG CURRENT FT/ SEC
AVG WIND VEL. AT 10 CM M/S
SEG TYPE INDICATOR
1 SURFACE WATER
2 SUBSURFACE WATER
3 TOP BENTHIC
4 SUBSURFACE BENTHIC
BACTERIAL POPULATION
FRACTION OF BACT POP THAT IS ACTIVE
TARGET BIOMASS, MG/L (WATER) , G/SQ.M (BED)
BIOMASS INTERNAL TEMPERATURE, DEC C
HYDROXYL ION ACTIVITY
MOLAR CONCENTR. OF ENV. OXI. N/L
ORGANIC CARBON FRACTION OF SEDIMENT
SEDIMENT FRESH WEIGHT TO DRY WEIGHT
SEDIMENT TURNOVER DISPERSION RATIO
HYDROGEN ION ACTIVITY
SETTLING, BURIAL, OR PERCOLATION RATES
TYPEE=1 WS=SETTLING, M/DAY
TYPEE=2 WS=SETTLING, M/DAY
TYPEE=3 WS=SCOUR, CM/YEAR
TYPEE=4 WS=PERCOLATION, CFS
SINGLE VALUE ZENITH LIGHT EXTINC. COEFF.
PRE-CALCULATED TOTAL DEC. RATE, 1/HR
INTERNALLY CALCULATED SED-WATER DISPERSION
EXTERNALLY READ NPS LOADS
INTERNALLY SAVED VARIABLE VOLUME PARAMETERS
(INCLUDES BVOLO(J),RVOL(J))
INTERNALLY SAVED PHYSICAL MASS LOSS,, KG
122
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
14
TIME
1
2
3
4
5
VOLKG(J)
FUNCTIONS
TEMPN
WINDN
PHN
POHN
LIGHTN
INTERNALLY SAVED VOLATILIZATION RATE CONST
NORMALIZED TEMPERATURE
NORMALIZED WIND SPEED
NORMALIZED PH
NORMALIZED POH
NORMALIZED LIGHT INTENSITY
C
c
c
c
c
c
INCLUDE 'TOXICMN.COM'
REAL KAHL,KNHL,KBHL,KOXL,KBACWL,KBACSL,MWTG
REAL KAHG, KNHG,KBHG,KOXG,KBACWG,KBACSG,K02G,K02L,IL
REAL 1NDEXW,INDEXS,KOC,KOW,KP,KB, KVOG,TKEL,JL
REAL LATG.KDPG.KDPL,LIGHTN,LOPT,NPSWK(SY,WK),MOQS,NOWKS
DIMENSION EBHG(3,1),ENHG(3,1),EAHG(3,1),QUANTG(3,1),
KAHG(3,1),KBHG(3,1),KNHG(3,1),EOXG(3,1),KOXG(3,1),KBACWG(3,1),
KBACSG(3,1),QTBAWG(3,1),QTBASG(3,1),TEMPM(SG),DEPTHG(SG),
VELOC(SG),ALPHA(3),BIOTMG(SG),K02G(SG),PHG(SG),WS(SG),
OXRADG(SG),WINDG(SG),TYPEE(SG),TOTKG(SG),ACBACG(SG)
DIMENSION POHG(SG),OCS(SG), BACTOG(SG),BIOMAS(SG),CMPETG(SG)
DIMENSION DISPV(SG), KP(SG),PCTWA(SG),FRW(SG),DSPSED(SG)
DIMENSION VVOL(SG),BVOLO(SG),RVOL(SG),BMASS(SG),VOLKG(SG)
CONSTANTS
HYDROLYSIS
EQUIVALENCE (CONST(1),EBHG(1,1)),(CONST(2),
EBHG(2,1)),(CONST(3),EBHG(3,1)),(CONST(4),ENHG(1,1)),
(CONST(5),ENHG(2,1)),(CONST(6),ENHG(3,1)),(CONST(7),
EAHG(1,1)),(CONST(8),EAHG(2,1)),(CONST(9),EAHG(3,1))
EQUIVALENCE
(CONST(10),KAHG(!,!)),(CONST(11),KAHG(2,1)),(CONST(12),
KAHG(3,1)),(CONST(13),KBHG(1,1)),(CONST(14),KBHG(2,1)),
(CONST(15),KBHG(3,1)),(CONST(16),KNHG(1,1)),
(CONST(17),KNHG(2,1)),CCONST(18),KNHG(3,1))
OXIDATION
EQUIVALENCE (CONST(19),EOXG(1,1)),
(CONST(20),EOXG(2,1)),(CONST(21),EOXG(3,1)),(CONST(22),
123
-------
KOXG(1,1)),(CONST(23),KOXG(2,1)),(CONST(24),KOXG(3,1))
C
C BIOLYSIS
EQUIVALENCE
(CONST(25),KBACWG(1,1)),(CONST(26),KBACWG(2,1)),(CONST(27),
KBACWGC 3,1)), (CONST(28),QTBAWG(1,1)),(CONST(29),QTBAWG(2,1)),
(CONST(30),QTBAWG(3,1)),(CONST(31),KBACSG(1,1)),(CONST(32),
KBACSG(2,1)),(CONST(33),KBACSG(3,1)),(CONST(34),QTBASG(1,1)),
(CONST(35),QTBASG(2,1)),(CONST(36),QTBASG(3,1))
C
C PARTITIONING
EQUIVALENCE (CONST(37),KOC), (CONST(38),KOW),(CONST(39),OCB),
(CONST(40),ALPHA(1)),(CONST(4l),ALPHA(2)),(CONST(42),ALPHA(3))
C
C VOLATILIZATION
EQUIVALENCE
(CONST(43),MWTG),(CONST(44).HENRYG),(CONST(45),VAPRG),
(CONST(46),KVOG),(CONST(47),SOLG),(CONST(48).ESOLG),
(CONST(49),EVPRG),(CONST(50),EHENG),(CONST(51),WIND),
(CONST(52),K02L),(CONST(53),DUMMY6)
C
C PHOTOLYSIS
EQUIVALENCE (CONST(54),KDPG),
(CONST(55),RFLATG),(CONST(56),CLOUDG),(CONST(57),LATG),
(CONST(58),DFACG),(CONST(59),QUANTG(1,1)),
(CONST(60),QUANTG(2,1)),(CONST(61),QUANTG(3,1))
C
C SPECIAL PRINT OPTIONS
EQUIVALENCE (CONST(62),XJTR),(CONST(63),CTRIG),(CONST(64).DTOPT),
(CONST(65),TDINT),(CONST(66),LOPT)
C
C INTERNALLY SAVED CONSTANTS
EQUIVALENCE (CONST(67),BURY),(CONST(68),KDPL),
(CONST(69),KB),(CONST(70),TEMPN),(CONST(71),TKEL),
(CONST(72),PNEXT),(CONST(73),TCOUNT),
(CONST(74),TMARK),(CONST(75),XJSTR)
EQUIVALENCE (CONST(76),PH),(CONST(77),POH),(CONST(78),LIGHTN) ,
(CONST(79),INDEXW),(CONST(80),INDEXS),(CONST(81).BOTLIT),
(CONST(82),TIMCHK),(CONST(83),MOQS),(CONST(84),NOWKS),,
(CONST(85),TMASS)
C
C PARAMETERS
C
EQUIVALENCE (PARAM( 1,1),TEMPM(1)),(PARAM(1,2),DEPTHG(1)),
(PARAM(1,3),VELOC(1)),(PARAM(1,4),WINDG(1)),(PARAM(1,5),
TYPEE(1)),(PARAMC1,6),BACTOG(1)),(PARAM(1,7),ACBACG(1)),
(PARAM(1,8),BIOMAS(1)),(PARAM(1,9),BIOTMG(1)),
(PARAM(1,10),POHG(1)),(PARAM(1,11),OXRADG(1))
EQUIVALENCE
(PARAM(1,12),OCS(1)),(PARAMC1,13),PCTWA(1)),
CPARAM(i,u),DSPSED(i)),(PARAM(i,15),PHG(i)),
124
-------
(PARAM(1,17),CMPETG(1)),(PARAM(1,16),WS(1)),
(PARAM( 1 , 18 ) ,TOTKG( 1 ) ) , (PARAM( 1 , 19 ) ,DISPV( 1 ) )
EQUIVALENCE (PARAM(1 ,22) ,VVOL(1)) ,(VVOL(1) ,BVOLO(1 )) ,
(VVOL(1),RVOL(1))
EQUIVALENCE (PARAM( 1,14) , VOLKG( 1 ) ) , (PARAM( 1 ,23) ,BMASS( 1 ) )
EQUIVALENCE (PARAM(1 ,12) ,KP(1)) ,(PARAM(1 ,13) ,FRW(1) )
EQUIVALENCE (PARAM( 1 , 20) ,NPSWK( 1,1)) , (PARAM( 1,3) ,K02G( 1 ) )
C
C
C
C PERFORM CALCULATIONS FIRST TIME STEP
C
IF(INITB.EQ.O) CALL INIT
JTR=XJTR
JSTR=XJSTR
C
C EVALUATE PIECEWISE LINEAR FUNCTIONS OF TIME
C
IF(NFUNT.GT.TIME) GO TO 25
CALL WASP8(MFUNC,BFUNC,NFUNC,4,ITIMF,NFUNT,73)
ITIMF = ITIMF + 1
25 CONTINUE
TEMPN = MFUNC(l) * (TIME-NFUNT) + BFUNC(l)
WINDN = MFUNC(2) * (TIME-NFUNT) + BFUNC(2)
PHN = MFUNC(3) * (TIME-NFUNT) + BFUNC(3)
POHN = MFUNC(4) * (TIME-NFUNT) + BFUNC(4)
LIGHTN = MFUNC(5) * (TIME-NFUNT) + BFUNC(5)
C
C CHECK FOR PRINT INTERVAL
C
IF(IDISK.NE.O) CALL TOXIDU( J,3,V1 ,V2 ,V3,V4 ,V5,V6,V7 ,V8)
C
IF(TIME.LT.TMARK) GO TO 30
TMARK=TMARK+TDINT
DO 27 J=1,NOSEG
IF(TOTKG(J).LT.O.) TOTKG(J)=0.0
27 CONTINUE
C
30 CONTINUE
C
C COMPUTE CURRENT SEGMENT CONDITIONS
C
DO 500 J=1,NOSEG
IF(C(l,J).LT.l.E-37) C(1,J) = 0.
CHEM=C(1,J)
SED=C(2,J)
125
-------
VOL=BVOL(J)
DEPTH=DEPTHG(J)
DEPTHM=DEPTH/3.281
TCELG=TEMPN*TEMPM(J)
TKEL=TCELG+273.15
PH=PHN*PHG(J)
POH=PHN*POHG(J)
WIND=WINDN*WINDG(J)
INDEXS=0.
INDEXW=1.
IF(TYPEE(J).LE.2.) GO TO 51
INDEXS=1.
INDEXW=0.
51 CONTINUE
SEDFAC = KP(J) * SED * 1.E-06/FRW(J)
BIOFAC= KB*BIOMAS(J)*l.E-06/FRW(J)
DENOM= 1.0 +SEDFAC +BIOFAC
ALPHA(1)= 1.0/DENOM
ALPHA(2)= SEDFAC/DENOM
ALPHA(3)= BIOFAC/DENOM
CHEM1 = CHEM*ALPHA(1)
C
C CHECK SOLUBILITY LIMIT FOR DISS CHEM
C
IF(CHEM1.LT.CMAX(9)) GO TO 60
TEND = TIME
WRITE(6,59) CHEM1,CMAX(9),J
59 FORMAT(1HO/////15X,'DISSOLVED CHEMICAL CONCENTRATION OF1,
E10.3,' EXCEEDS LIMIT OF',E10.3,' IN SEGMENT1,13//
5X,'THIS LIMIT WAS SET TO ASSURE FIRST ORDER KINETICS. TO',
' BYPASS THIS CHECK, CHANGE CMAX(l) FROM 0.0 TO A LARGE',
' NUMBER.'/////25X,'THIS SIMULATION IS ABORTED!')
60 CONTINUE
C
C CALCULATE CURRENT SEGMENT DEGRADATION RATES
C
TOTKL = TOTKG(J) * 24.
IF(TOTKL.EQ.O.) CALL FIRORD(J,TOTKL,PHOTKL,HYDRKL,BIOLKL,,
OXIDKL,VOLKL)
IF(TOTKL.LT.O.) TOTKL=-TOTKL
C
CD(1,J) = -TOTKL * CHEM * VOL
C
C ADJUST DERIVATIVES FOR SETTLING, EROSION/BURIAL, AND PERCOLATION
C
CALL SETTLE(J,SETINS,SETOUS,SETINC,SETOUC)
C
C CALCULATE PORE WATER MIXING, INCLUDING SEDIMENT WATER EXCHANGE
C
IF(TYPEE(J).GE.3.)CALL SEDWAT(J,ALPH1M,ALPH2M)
126
-------
ALPH1M= ALPHA(l)
ALPH2M= ALPHA(2)
C
C SAVE CHEMICAL MASS VOLATILIZED FROM WATER
C
IF(TYPEE(J).EQ.l.) BMASS(J)=BMASS(J)+VOLKG(J)*CHEM*VOL*DT*28.317
C
C PRINT VARIABLES AND DECAY RATES
C
IF(IDISK.NE.O) CALL TOXIDU(J,1,CHEM,SED,TOTKL,PHOTKL,HYDRKL,
BIOLKL,OXIDKL,VOLKL)
C
C SAVE CONCENTRATIONS FOR STAT FILES
C
IF (J.NE.JTR) GO TO 80
CTW= CHEM
C1W= ALPHA(1)*CHEM
CSW= l.E06*ALPHA(2)*CHEM/SED
CBW= l.E06*ALPHA(3)*CHEM/BIOMAS(J)
GO TO 85
80 CONTINUE
IF (J.NE.JSTR) GO TO 85
CTB= CHEM
C1B= ALPHA(1)*CHEM
CSB= l.E06*ALPHA(2)*CHEM/SED
CBB= l.E06*ALPHA(3)*CHEM/BIOMAS(J)
85 CONTINUE
500 CONTINUE
IDISK = 0
C
C EVENT TRIGGERED PRINTOUT
C
IF (JTR.NE.O) CALL TOXIDU(J,2,CTW,C1W,CSW,CBW,CTB,C1B,CSB,CBB)
C
C READ AND ADD DAILY FLOWS AND NPS LOADS FROM AUXILIARY FILE
C
IF(LOPT.EQ.O) GO TO 600
C CHECK FOR NEW DAY
ICHK=TIMCHK
ITIMEC=TIME
ITCHK=ITIMEC-ICHK
IF(ITCHK.LE.O) GO TO 700
TIMCHK = TIME
NWKS = NOWKS
DO 540 J=1,NWKS
DO 530 I=1,NOSYS
BWK(I,J)=BWK(I,J)-NPSWK(I,J)
530 CONTINUE
540 CONTINUE
IF(NOWKS.GT.O.) READ(91) ((NPSWK(I.J),1=1,NOSYS),J=1,NWKS)
IF(MOQS.GT.O.) READ(91) (BQ(K),K=1,NOQ)
127
-------
DO 560 J=l,NWKS
DO 550 I=1,NOSYS
BWK(I,J)=BWK(I,J)+NPSWK(I,J)
550 CONTINUE
560 CONTINUE
600 CONTINUE
C
C OPTIMIZE TIME STEP
C
IF(DTOPT.EQ.O.) GO TO 700
DELT=0.5
C CHECK FLOWS
DO 650 K=l,NOQ
I-IQ(K)
J=JQ(K)
IF(I.EQ.O) I=J
IF(J.EQ.O) J=I
TQ=BQ(K) + MQ(K)*(TIME-NQT)
IF(TQ.EQ.O.) GO TO 650
TRT=0.5*(BVOL(I)+BVOL(J))/TQ
IF(TRT.LT.DELT) DELT=TRT
650 CONTINUE
C CHECK DISPERSIVE EXCHANGES
DO 660 K=l,NOR
I=IR(K)
J=JR(K)
IF(I.EQ.O) I=J
IF(J.EQ.O) J=I
TQ=BR(K) + MR(K)*(TIME-NQT)
IF(TQ.EQ.O.) GO TO 660
TRT=0.5*(BVOL(I)+BVOL(J))/TQ
IF(TRT.LT.DELT) DELT=TRT
660 CONTINUE
IF(DELT.LT.O.Ol) DELT=0.01
DT=DELT
700 CONTINUE
C
C
INITB=3
RETURN
END
C
C**************************************************************************
128
-------
c
c
C TOXICMN
C
C
C
c***********************************************************
c
c
C PDF 11/70 VERSION OF WASP
C
C THIS VERSION OF WASP IS CONFIGURED FOR A MAXIMUM OF
C 2 SYSTEMS AND 50 SEGMENTS
C
C
C***********************************************************
C
C THE FOLLOWING PARAMETER STATEMENTS ESTABLISH PARAMETERS
C FOR SYSTEMS AND SEGMENT CHANGES. CHANGES HERE WILL
C BE EVIDENT IN ALL PARTS OF THE PROGRAM WHERE THESE PARA-
C METERS ARE USED.
C
C SY = NUMBER OF SYSTEMS.
PARAMETER SY=2
C
C SG = NUMBER OF SEGMENTS.
PARAMETER SG=50
C
C S2 IS ALWAYS SET TO 2 * SG IE. SG=50, S2=100
PARAMETER 32=100
C
C BC = MAX. NO. OF BOUNDARY CONCENTRATIONS PER SYSTEM
PARAMETER BC=30
C
C WK = MAX. NO. OF FORCING FUNCTIONS PER SYSTEM (WTH'S)
PARAMETER WK=30
C
C++++++++ PARAMETER SUBSTITUTIONS FOLLOW ++++++++
C
REAL NVOLT,NRT,NQT,NBCT(SY),NWKT(SY),NFUNT
REAL MVOL(SG),MR(S2),MQ(S2),MBC(SY,BC),MWK(SY,WK),MFUNC(10)
INTEGER OUT,SYSBY(SY),RBY(SY),QBY(SY)
COMMON IN,ICRD,OUT,NOSYS,NOSEG,ISYS,ISEG,ISIM,LISTG,LISTC
COMMON INITB,IPRNT,IDUMP(8,2),IDISK,IREC,MXDMP,IDFRC(SY)
COMMON NBCPSY,NWKPSY,SYSBY,RBY,QBY,NEGSLN
COMMON TIME,DT,TZERO,SCALT,TEND,PRNT
COMMON OMEGA,ITCHCK.MXITER
COMMON C(SY,SG),CD(SY,SG),CMAX(10),CMIN(SY)
COMMON PARAM(SG,23),CONST(85)
COMMON BVOL(SG),BR(S2),BQ(S2),BBC(SY,BC),BWK(SY,WK),BFUNC(10)
129
-------
COMMON MVOL,MR,MQ,MBC,MWK,MFUNC
COMMON IR(S2) , JR(S2) ,IQ(S2) ,JQ(S2) ,IBC(SY,BC) ,IWK(SY,,WK)
COMMON IVOPT,NOV,IROPT,NOR,IQOPT,NOQ,IBCOP(SY),NOBC(SY)
COMMON IWKOP(SY) ,NOWK(SY) ,NOPAM,NCONS,NFUNC
COMMON NVOLT,NRT,NQT,NBCT,NWKT,NFUNT
COMMON ITIMV,ITIMR,ITIMQ,ITIMF,ITIMB(SY),ITIMW(SY)
COMMON /PDP/ MXSYS.MXSEG
c***************************************************************************
C
C TOXINIT
C
C LAST REVISED 03/10/83
C***************************************************************************
C
SUBROUTINE INIT
C
INCLUDE 'TOXICMN.COM'
C
DIMENSION OCS(SG) ,KP(SG) ,TYPEE(SG) ,PCTWA(SG) ,FRW(SG) ,
BIOMAS(SG) ,DEPTHG(SG) ,TOTKG(SG) .BACTOG(SG) ,
ACBACG(SG),QT(10),VELOC(SG)
DIMENSION VVOL(SG),BVOLO(SG),RVOL(SG)
C
REAL KP,KOC,KOW,KB,LOPT,NPSWK(SY,WK),MOQS,NOWKS,MWTG
C
EQUIVALENCE (CONST(37) ,KOC) , (CONST(38) ,KOW) , (CONST(39) ,OCB) ,
(CONST(62) ,XJTR) ,(CONST(63) ,CTRIG) , (CONST(69) ,KB) ,
(CONST(73) .TCOUNT) ,(CONST(74) .TMARK) ,(CONST(75) ,XJSTR) ,
(CONST(66) ,LOPT) , (CONST(81 ) ,BOTLIT) , (CONST(82) ,TIMCHK) ,
(CONST(83) ,MOQS) , (CONST(84) ,NOWKS) , (CONST(65) ,TDINT) ,
(CONST(43),MWTG),(CONST(47),SOLG)
EQUIVALENCE (CONST(53) .DUMMY6)
C
EQUIVALENCE (PARAM( 1,2) ,DEPTHG( 1 ) ) , (PARAM( 1,5) ,TYPEE( 1 ) .) ,
( PARAM ( 1 , 8 ) , B I OMAS ( 1 ) ) , ( PARAM ( 1 , 1 2 ) , 0 C S ( 1 ) ) ,
(PARAM( 1,13) ,PCTWA( 1 ) ) , (PARAM( 1 , 18) ,TOTKG( 1 ) ) ,
(PARAM( 1 ,6) ,BACTOG( 1 ) ) , (PARAM( 1 ,7) ,ACBACG( 1 ) ) ,
(PARAM(1 ,3) ,VELOC( 1 ) )
C
EQUIVALENCE (PARAM( 1 ,22) ,VVOL( 1 ) ) , (VVOL( 1 ) ,BVOLO( 1 ) ) ,
(VVOL(1),RVOL(1))
C
EQUIVALENCE (PARAM(1 ,12) ,KP(1) ) ,(PARAM(1 ,13) ,FRW(1))
EQUIVALENCE (PARAM( 1 ,20) ,NPSWK( 1,1))
C
INITB=1
130
-------
MXDMP=8
REWIND 2
TCOUNT=0.
TMARK=0.
IF(TDINT.EQ.O.O) TDINT=1.E06
C
C
C SET UP FOR READING OF NEW FLOWS AND LOADINGS
C
TIMCHK = -30000.
IP(LOPT.EQ.O.) GO TO 100
OPEN(UNIT=91,NAME='DAILY.DAT',TYPE='OLD',
FORM='UNFORMATTED',ACCESS='SEQUENTIAL')
TIMCHK = TIME
C
C READ UNIT 91 FOR CONTENT
READ(91) NWKS,MQOPT,MOQ,SCALQ
NOWKS=FLOAT(NWKS)
MOQS=FLOAT(MOQ)
IF(MOQ.EQ.O) GO TO 20
C
C READ UNIT 91 FOR FLOWS
IQOPT=1
WRITE(6,2001) SCALQ
2001 FORMAT(1H1/38X,'DAILY FLOWS READ FROM AUXILIARY FILE',
' "DAILY.DAT" '/35X,'FLOWS WILL BE MULTIPLIED BY ',E10.4,
' TO CONVERT TO CFS'/5IX,'UPSTREAM FLOWS FOLLOW :'//
IX,IOC DAY FLOW ')/lX,10(' ')/)
READ(91) «JQ(K),IQ(K)),K=1,MOQ)
JROW=0
5 CONTINUE
JROW=JROW+1
DO 10 ICOL=1,10
IF(NOWKS.GT.O.) READ(91,END=15)
((NPSWK(I,J),1=1,NOSYS),J=1,NWKS)
READ(91) (BQ(K),K=1,MOQ)
QT(ICOL)=BQ(1)/(SCALQ*0.0846)
DO 8 K=1,MOQ
MQ(K)=0.0
8 CONTINUE
10 CONTINUE
WRITE(6,2003) (((JROW-1)*10+ICOL),QT(ICOL),ICOL=1,10)
2003 FORMAKIH ,10(14,F8.1,IX))
GO TO 5
15 CONTINUE
NCOL=ICOL-1
IF(NCOL.LE.O) GO TO 18
WRITE(6,2003) (((JROW-1)*10+ICOL),QT(ICOL),ICOL=1,NCOL)
18 CONTINUE
REWIND 91
READ(91) NWKS.MQOPT.MOQ,SCALQ
131
-------
READ(91) ((JQ(K),IQ(K)),K=1,MOQ)
WRITE(6,2004) ((K,JQ(K),IQ(K)),K=1,MOQ)
2004 FORMAT(1HO//55X,'FLOW PAIRS FOLLOW :'//10X,10(10(313,3X)/))
20 CONTINUE
IF(NWKS.EQ.O) GO TO 30
C
C READ UNIT 91 FOR NFS LOADS
WRITE(6,1001) (IWK(1,I),I=1,5)
1001 FORMAT(1H1/35X,'DAILY LOADS (LB/DAY) READ FROM AUXILIARY',
' FILE "DAILY.DAT"'/40X,'NONZERO LOADS FOR THE',
1 FIRST FIVE SEGMENTS FOLLOW:1//
6X,5(3X,5(1H*),' SEGMENT',13,IX,5(1H*))/
IX,'DAY',2X,5(4X,'CHEMICAL SEDIMENT ')/
IX,' ',2X,5(3X,10(1H_),2X,10(1H_))/)
DO 25 KT=1,1000
READ(91,END=30) ((NPSWK(I,J),1=1,NOSYS),J=1,NWKS)
IF(MOQS.GT.O.) READ(91) (BQ(K),K=1,MOQ)
X=NPSWK(1,1)+NPSWK(1,2)
IF(X.EQ.O.) GO TO 25
WRITE(6,1002) KT,((NPSWK(I,J),I=1,2),J=1,5)
1002 FORMAT(1X,I3,2X,5(3X,E10.4,2X,E10.4))
25 CONTINUE
30 CONTINUE
C
C REPOSITION UNIT 91
REWIND 91
READ(91) NWKS,MQOPT,MOQ,SCALQ
IF(MOQ.EQ.O) GO TO 35
READ(91) ((JQ(K),IQ(K)),K=1,MOQ)
35 CONTINUE
DO 50 J=1,NWKS
DO 40 I=1,NOSYS
NPSWK(I,J)=0.0
40
50
100
C
C
C
CONTINUE
CONTINUE
CONTINUE
DETERMINE SED
PRINT SEGMENT
DO 205 1=1,10
JSTR=XJTR+I
IF(TYPEE(JSTR).EQ.3.)GO TO 206
205 CONTINUE
206 CONTINUE
XJSTR=JSTR
IF(XJTR.EQ.O)XJSTR=0.
C
C CALCULATE EFFECTIVE PARTITION COEFF.(LOG KOC+.09+.91*LOG KOW)
C
IF(KOC.EQ.O.O)KOC=KOW* 0.41
IF(KOW.EQ.O.O)KOW=KOC/0.41
132
-------
DO 207 J=1,NOSEG
KP(J) = KOC*OCS(J)
207 CONTINUE
KB=OCB*KOW
XTST=XJTR*CTRIG
IF(XTST.NE.O.)WRITE(6,3073)CTRIG,XJTR
3073 FORMAT(1HI,20X,'EVENT TRIGGERED PRINTOUT...CHEM EXCEEDS',
F7.3,2X,'IN SEGMENT',F4.0//13X,'TIME',7(4X,'SEG CONC'))
C
C IF THE SEGMENT IS BENTHIC, THE UNITS OF BIOMASS MUST BE
C CONVERTED FROM G/SQ.M TO MG/L, AND FRW MUST BE CALCULATED.
C FRW IS THE FRACTION WATER VOLUME TO TOTAL SEGMENT VOLUME.
C
DO 309 J=l,NOSEG
IF(BIOMAS(J).EQ.O.) BIOMAS(J)=1.E-06
IF(TYPEE(J).LE.2.) GO TO 308
FRW(J)=1.E-06*(PCTWA(J)-1.)*C(2,J)
BIOMAS(J)=BIOMAS(J)/(DEPTHG(J)*3.281)
GO TO 309
308 CONTINUE
FRW(J) =1.0
309 CONTINUE
C
C COMPUTE ACTIVE BACTERIAL POPULATION FOR BIOLYSIS. IF THE
C SEGMENT IS BENTHIC, CONVERT INPUT UNITS FROM 'CELLS/100 GRAMS
C DRY WEIGHT SEDIMENT' TO 'ACTIVE CELLS/ML PORE WATER' :
C SED(MG/ML) = (1/1000)*SED(MG/L)/FRW(J).
C
DO 320 J=1,NOSEG
BACTOG(J) = BACTOG(J)*ACBACG(J)
IF(TYPEE(J).GE.3.) BACTOG(J)=BACTOG(J)*C(2,J)/
(FRW(J)*100.*1000.*1000.)
320 CONTINUE
C
C SET INITIAL AND REFERENCE VOLUMES FOR TOP BED SEGMENTS
C
DO 330 J=1,NOSEG
IF(TYPEE(J).NE.3.) GO TO 330
M = J-l
N = J+l
BVOLO(J) = BVOL(J)
FAC = DUMMY6
RVOL(M) = BVOL(J) + FAC*BVOL(N)*C(2,N)/C(2,J)
C (RVOL FOR SEG "J" IS STORED IN LOG "M")
IF(TYPEE(N).NE.4.) RVOL(M)=1.E+10
330 CONTINUE
C
C ZERO SLOPES FOR FLOWS AND EXCHANGES
C
DO 350 K=1,NOQ
MQ(K)=0.0
133
-------
350 CONTINUE
DO 360 K=1,NOR
MR(K)=0.0
360 CONTINUE
C
C SET CMAX TO ASSURE FIRST ORDER
C
CMAX(9) = l.E+10
IF(CMAX(1).GT.O.) GO TO 400
CMAX(9) = l.E-05 * MWTG * 1000.
CMAX(10)= 0.5 * SOLG
IF(CMAX(10).LT.CMAX(9)) CMAX(9)=CMAX(10)
CMAX(l) = CMAX(9) * 1000.
WRITE(6,399) CMAX(9)
399 FORMAT(1H1/////10X,'WARNING : CMAX FOR DISSOLVED CHEMICAL',
1 HAS BEEN SET TO',E10.3,' TO ASSURE FIRST ORDER DECAY',
' ASSUMPTION'//)
400 CONTINUE
C
C CHECK FOR PROPER SEGMENT ALLIGNMENT.
C
M=0
J=l
NBED=0
ITYPE=TYPEE(J)
MTYPE=0
IF(ITYPE.NE.l) GO TO 500
DO 450 J=2,NOSEG
M=J-1
ITYPE=TYPEE(J)
MTYPE=TYPEE(M)
GO TO (410,420,430,440),ITYPE
410 CONTINUE
IF(MTYPE.LT.3) NBED=NBED+1
GO TO 450
420 CONTINUE
IF(MTYPE.GT.2) GO TO 500
GO TO 450
430 CONTINUE
IF(MTYPE.GE.3) GO TO 500
GO TO 450
440 CONTINUE
IF(MTYPE.LE.2) GO TO 500
450 CONTINUE
IF(NBED.GT.O)WRITE(6,459)NBED
459 FORMAT(1H,5X,'WARNING:',13,'WATER',
'SEGMENTS LACK BENTHIC SEGMENTS')
RETURN
500 CONTINUE
WRITE(6,2005) M.MTYPE,J.ITYPE
2005 FORMAT(1HO////40X,'SEGMENT ALLIGNMENT PROBLEM:'/40X,'SEGMENT' ,
134
-------
13,' IS TYPE',13,' WHILE SEGMENT',13,' IS TYPE',13/
40X,'EXECUTION DISCONTINUED')
STOP
END
£**************************************************************************
c**************************************************************************
C
C TOXIDUMP
C
C LAST REVISED 03/02/83
C**************************************************************************
C
SUBROUTINE TOXIDU(J,IOPT,VI,V2,V3,V4,V5,V6,V7,V8)
C
INCLUDE 'WSPCMN.F4P'
C
DIMENSION ALPHA(3), BIOMAS(SG),FRW(SG),DEPTHG(SG)
DIMENSION BMASS(SG)
C
EQUIVALENCE(CONST(72),PNEXT),(CONST(73),TCOUNT),
(CONST(62),XJTR),(CONST(75),XJSTR),(CONST(63),CTRIG),
(CONST(64),TPO),(CONST(65),TDINT),(CONST(40),ALPHA(1))
C
EQUIVALENCE (PARAM(1,8),BIOMAS(1)),(PARAM(1,13),FRW(1)),
(PARAM(1,2),DEPTHG(1))
C
EQUIVALENCE (PARAM(1,23),BMASS(1))
C
C
GO TO (100,200,50),IOPT
C
50 CONTINUE
C
C SET UP DUMPS
C
PTIME = TIME + .0001*TIME
C
C COMPUTE RECORD ADDRESS COUNTERS
IDFRC(l) = MXSEG * (IREC - 1) + 1
IDFRC(2) = IDFRC(l)
C
C CALL DISK BUFFER OPEN / CLOSE SUBROUTINE
CALL FILEOC(IO)
WRITE(IO'IREC) PTIME
RETURN
C
100 CONTINUE
C
C DUMP VARIABLES TO FILE
135
-------
VOL =BVOL(J)
CHEM=V1
SED=V2
TOTKL=V3
PHOTKL=V4
HYDRKL=V5
BIOLKL=V6
OXIDKL=V7
VOLKL=V8
CHEM1= ALPHA(1)*CHEM
CHEM2= ALPHA(2)*CHEM
CHEM3= ALPHA(3)*CHEM
CHEMW= CHEM1/FRW(J)
CHEMS= l.E+06 * CHEM2/SED
CHEMB= l.E+06 * CHEM3/BIOMAS(J)
XMASS= CHEM*VOL*28.317
CALL FILEOC(ll)
WRITE(11'IDFRC(1))CHEM,CHEMW,CHEMS,CHEMB,
ALPHA(1),ALPHA(2),XMASS,BMASS(J)
CALL FILEOC(12)
WRITE(12'IDFRC(2))SED,DEPTHG(J),TOTKL,PHOTKL,
HYDRKL,BIOLKL,OXIDKL,VOLKL
DO 77 J = 1, NOSEG
IF(TOTKG(J).LT.O.)TOTKG(J) = 0.0
77 CONTINUE
RETURN
C
200 CONTINUE
C
C EVENT-TRIGGERED PRINTOUT
C
CTW=V1
C1W=V2
CSW=V3
CBW=V4
CTB=V5
C1B=V6
CSB=V7
CBB=V8
PNEXT = PNEXT - DT*24.
IF (PNEXT.GT.O.) RETURN
PNEXT=3.
C
C DUMP VARIABLES TO STAT FILES
C
TCOUNT = TCOUNT +1.0
ICOUNT = TCOUNT
JTR=XJTR
JSTR=XJSTR
WRITE(2)TZERO,TIME,ICOUNT,JTR,JSTR
136
-------
WRITE(2)ICOUNT,TIME,CTW,C1W,CSW,CBW
WRITE(2)ICOUNT,TIME,CTB,C1B,CSB,CBB
XTST=XJTR*CTRIG
IF(XTST.EQ.O.) RETURN
IF(INITB.EQ.l) WRITE(6,473) CTRIG.XJTR
473 FORMAT(1H1,20X,'EVENT TRIGGERED PRINTOUT...CHEM EXCEEDS',
F7.3,2X,'IN SEGMENT',F4.0//13X,'TIME',7(4X,'SEG CONC'))
IF(C(1,JTR).GE.CTRIG) WRITE(6,470)TIME,(I,C(1,1),1=1,NOSEG)
470 FORMAT(1HO,9X,F10.3,7(I5,E10.3),15(/20X,7(I5,E10.3)))
RETURN
END
C
C********A*************************************A***************************
c**************************************************************************
C
c
C TOXIFORD
C
C LAST REVISED 09/24/82
C
C
SUBROUTINE FIRORD( J , TOTKL , PHOTKL , HYDRKL , BIOLKL , OXIDKL , VOLKL)
C
C
C
REAL KAHL,KNHL,KBHL,KOXL,KBACWL,KBACSL,MWTG
REAL KAHG, KNHG,KBHG,KOXG,KBACWG,KBACSG,K02G,K02L,K20
REAL INDEXW,INDEXS,KOC,KOW,KP,KB, KVOG.TKEL, JL,IL
REAL LATG,KDPG,KDPL,LIGHTN,LOPT
C
INCLUDE 'WSPCMN.F4P'
C
DIMENSION EBHG(3 , 1 ) ,ENHG(3 , 1 ) ,EAHG(3 , 1 ) ,QUANTG(3 , 1 ) ,
KAHG(3 , 1 ) ,KBHG(3 , 1 ) ,KNHG( 3,1) ,EOXG(3 , 1 ) ,KOXG( 3,1) ,KBACWG( 3 , 1 ) ,
KBACSG(3 ,1 ) ,QTBAWG(3 ,1) ,QTBASG(3,1) ,TEMPM(SG) ,DEPTHG(SG) ,
VELOC(SG),ALPHA(3),BIOTMG(SG),K02G(SG),PHG(SG),WS(SG),
OXRADG(SG) ,WINDG(SG) ,TYPEE(SG) ,TOTKG(SG) ,ACBACG(SG)
DIMENSION OCS(SG), BACTOG(SG) ,BIOMAS(SG) ,POHG(SG) ,CMPETG(SG)
DIMENSION DISPV(SG), KP(SG) ,PCTWA(SG) ,FRW(SG) »DSPSED(SG)
DIMENSION VOLKG(SG)
C
C CONSTANTS
C
C HYDROLYSIS
EQUIVALENCE (CONST(1 ) ,EBHG(1 ,1)) ,(CONST(2) ,
137
-------
EBHG(2,1)),(CONST(3),EBHG(3,1)),(CONST(4),ENHG(1,1)),
(CONST(5),ENHG(2,1)),(CONST(6),ENHG(3,1)),(CONST(7),
EAHG(1,1)),(CONST(8),EAHG(2,1)),(CONST(9),EAHG(3,1))
EQUIVALENCE
(CONST(10),KAHG(1,1)),(CONST(11),KAHG(2,1)),(CONST(12),
KAHG(3,1)),(CONST(L3),KBHG(1,1)),(CONST(14),KBHG(2,1)),
(CONST(15),KBHG(3,1)),(CONST(16),KNHG(1,1)),
(CONST(17),KNHG(2,1)),(CONST(18),KNHG(3,1))
C
C OXIDATION
EQUIVALENCE (CONST(19),EOXG(1,1)),
(CONST(20),EOXG(2,1)),(CONST(21),EOXG(3,1)),(CONST(22),
KOXG(1,1)),(CONST(23),KOXG(2,1)),(CONST(24),KOXG(3,1))
C
C BIOLYSIS
EQUIVALENCE
(CONST(25),KBACWG(1,1)),(CONST(26),KBACWG(2,1)),(CONST(27),
KBACWG(3,1)),(CONST(28),QTBAWG(1,1)),(CONST(29),QTBAWG(2,1)),
(CONST(30),QTBAWG(3,1)),(CONST(31),KBACSG(1,1)),(CONST(32),
KBACSG(2,1)),(CONST(33),KBACSG(3,1)),(CONST(34),QTBASG(1,1)),
(CONST(35),QTBASG(2,1)),(CONST(36),QTBASG(3,1))
C
C PARTITIONING
EQUIVALENCE (CONST(37),KOC), (CONST(38),KOW),(CONST(39),OCB),
(CONST(40),ALPHA(1)),(CONST(41),ALPHA(2)),(CONST(42),ALPHA(3))
C
C VOLATILIZATION
EQUIVALENCE
(CONST(43) ,MWTG) , (CONST(44) .HENRYG) ,(CONST(45) .VAPRG.),
(CONST(46),KVOG),(CONST(47),SOLG),(CONST(48),ESOLG),
(CONST(49),EVPRG),(CONST(SO).EHENG),(CONST(51),WIND),
(CONST(52),K02L),(CONST(53),DUMMY6)
C
C PHOTOLYSIS
EQUIVALENCE (CONST(54),KDPG),
(CONST(55),RFLATG),(CONST(56),CLOUDG),(CONST(57),LATG),
(CONST(58),DFACG),(CONST(59),QUANTG(1,1)),
(CONST(60),QUANTG(2,1)),(CONST(61),QUANTG(3,1))
C
C SPECIAL PRINT OPTIONS
EQUIVALENCE (CONST(62),XJTR),(CONST(63),CTRIG),(CONST(64),DTOPT),
(CONST(65),TDINT)
C
C INTERNALLY SAVED CONSTANTS
EQUIVALENCE (CONST(66),LOPT),(CONST(67),BURY),(CONST(68),KDPL),
(CONST(69),KB),(CONST(70),TEMPN),(CONST(71),TKEL),
(CONST(72),PNEXT),(CONST(73),TCOUNT),
(CONST(74),TMARK),(CONST(75),XJSTR)
EQUIVALENCE (CONST(76),PH),(CONST(77),POH),(CONST(78).LIGHTN),
(CONST(79),INDEXW),(CONST(80).INDEXS),(CONST(81),BOTLIT),
(CONST(82),TIMCHK)
138
-------
c
C PARAMETERS
C
EQUIVALENCE (PARAM(1,1),TEMPM(1)),(PARAM(1,2),DEPTHG(1)),
(PARAM(1,3),VELOC(1)),(PARAM(1,4),WINDG(1)),(PARAM(1,5),
TYPEE(l)),(PARAMO,6),BACTOG(l)),(PARAM(1,7),ACBACG(l)),
(PARAM(1,8),BIOMAS(1)),(PARAM(1,9),BIOTMG(1)),
(PARAM(1,10),POHG(1)),(PARAM(1,11),OXRADG(1))
EQUIVALENCE
(PARAM(1,12),OCS(1)),(PARAM(1,13),PCTWA(1)),
(PARAM(1,14),DSPSED(1)),(PARAM(1,15),PHG(1)),
(PARAM(1,17),CMPETG(1)),(PARAM(1,16),WS(1)),
(PARAM(1,18),TOTKG(1)),(PARAM(1,19),DISPV(1))
C
EQUIVALENCE (PARAM(1,12),KP(1)),(PARAM(1,13),FRW(1))
,(PARAM(1,3),K02G(1))
C
EQUIVALENCE (PARAM(1,14),VOLKG(1))
C
C
C*-...__ _ _ _ ___ _ _ __ __»_ » _-__ « .___ __ _____
c
C ZERO OUT PROCESS RATE CONSTANTS:
C
HYDRKL=0.
OXIDKL=0.
BIOLKL=0.
VOLKL=0.
PHOTKL=0.
C*****************
C VOLATILIZATION:
C*****************
C ONLY THE DISSOLVED SH2 MOLECULE IN SURFACE WATERS CAN VOLATILIZE:
IF(TYPEE(J).GE.2.) GO TO 170
C CALCULATE CONST REAERATION FROM DEPTH AND VELOC FIRST TIME STEP
IF(INITB.GT.2) GO TO 150
CALL REOX(J,0.,K20)
K02G(J) = K20
150 CONTINUE
C CHECK FOR INFINITE RESISTANCE TO TRANSPORT (E.G. ICE COVER):
IF (WIND.EQ.O.) GO TO 170
C CHECK ON DATA AVAILABILITY:
IF(MWTG.EQ.O. .OR. (HENRYG.EQ.O. .AND. VAPRG.EQ.O.)) GO TO 170
C CALCULATE LOCAL REAERATION
K02L = K02G(J)
CALL REOX(J,WIND,K20)
IF(K20.GT.K02L) K02L=K20
C CALL 2-FILM VOLATILIZATION SUBROUTINE, RETURN 1ST-ORDER RATE CONST.:
CALL VOLAT(J,VOLKL)
VOLKG(J) = VOLKL*24.
170 CONTINUE
139
-------
c
C COMPUTE ACTIVE BACTERIAL POPULATIONS FOR ****-BIOLYSIS-***:
ACBACL = BACTOG(J)
C COMPUTE ACID/BASE CONCENTRATIONS FOR ***-HYDROLYSIS-***:
HPLUS=10.**(-PH)
HYDRX=10.**(-POH)
C INITIALIZE COUNTER FOR COMPUTING INDEX FOR ALPHA VECTOR:
II=-1
C NEUTRAL FORM OF COMPOUND ONLY
K=l
C
C PHOTOLYSIS :
C*************
C COMPUTE RATE CONSTANT, ADJUST BY QUANTUM YIELD AND DISTRIBUTION
C COEFF(ALPHA)
C CASE 1. SEDIMENT COMPARTMENT WHERE NO LIGHT PRESENT
IF(TYPEE(J).GE.3.) GO TO 180
C CASE 2. DIRECT LOAD BY USER OF RATE CONSTANT @40N LATITUDE
C THIS SUBROUTINE WILL ADJUST IT FOR LAT, TIME OF DAY, AND LAT
C BASED ON THE ZENITH LIGHT EXTINCTION COEFF.
IF(KDPG.GT.O) CALL PHOT01(KDPL,J)
180 CONTINUE
c -----------------------------------------------------------------------
c -----------------------------------------------------------------------
c
C 3 FORMS OF EACH SPECIES (DISSOLVED, SORBED WITH SEDIMENT, BIOSORBED)
C
DO 190 1=1,3
C
C************
C PHOTOLYSIS:
C************
IF (TYPEE(J).GE.3.) KDPL = 0.
C ADD CURRENT CONTRIBUTION TO RATE CONSTANT
PHOTKL = PHOTKL + ALPHA(I) * KDPL * (QUANTG(I ,K) )
C
(]** A* ********
C HYDROLYSIS:
C* ***********
C LOAD THE GLOBAL (INPUT) VALUE OF THE RATE CONSTANTS AND ADJUST
C FOR ENVIRONMENTAL TEMPERATURE, ETC.:
C ACID HYDROLYSIS:
KAHL=KAHG(I,K)
IF(EAHG(I,K).NE.O.) KAHL=10.**(KAHG(I,K)-( (1000.*
EAHG(I,K))/(4.58*TKEL)))
C NEUTRAL HYDROLYSIS:
KNHL=KNHG(I,K)
IF(ENHG(I,K).NE.O.) KNHL=10.**(KNHG(I,K)-( (1000.*
ENHG(I,K))/(4.58*TKEL)))
140
-------
C ALKALINE HYDROLYSIS:
KBHL=KBHG(I,K)
IF(EBHG(I,K).NE.O.) KBHL=10.**(KBHG(I,K)-( (1000.*
EBHG(I,K))/(4.58*TKEL)))
C
C ADD CURRENT CONTRIBUTION TO TOTAL RATE CONSTANT:
HYDRKL=HYDRKL+ALPHA( I ) * ( KAHL*HPLUS+KNHL+KBHL*HYDRX )
C
C***********
C OXIDATION:
C***********
KOXL=KOXG(I,K)
IF(EOXG(I,K).NE.O.) KOXL=10.**(KOXG(I,K)-( (1000.*
EOXG(I,K))/(4.58*TKEL)))
C ADD CURRENT CONTRIBUTION TO TOTAL RATE CONSTANT:
OXIDKL=OXIDKL+ALPHA(I)*KOXL*OXRADG(J)
C
C BIOLYSIS:
C**********
C LOAD GLOBAL (INPUT) VALUE OF RATE CONSTANTS:
KBACWL=KBACWG( I ,K)
KBACSL=KBACSG( I ,K)
IF(QTBAWG(I,K).NE.O.) KBACWL=KBACWG(I,K)*
QTBAWG(I,K)**((TEMPN*BIOTMG(J)-20.)/10.)
IF(QTBASG(I ,K) .NE .0 . ) KBACSL=KBACSG( I ,K)*
QTBASG(I,K)**((TEMPN*BIOTMG(J)-20.)/10.)
C ADD CURRENT CONTRIBUTION TO TOTAL RATE CONSTANTS:
BIOLKL=BIOLKL+ALPHA( I ) *ACBACL
*(KBACWL*INDEXW + KBACSL*INDEXS)
C
190 CONTINUE
C END OF FORMS (DISSOLVED, SORBED, BIOSORBED) LOOP
f^t _ __-__ ^_ _,,. _.- -g--^ -_-^ _-,_-_. __ -^-rr. T TT -_ r __ .»_ . ._ --_-.. -^f-g-.-. .- , -~ T--._
C
C INCREMENT ALPHA INDEX COUNTER:
200 CONTINUE
11=11+1
210 CONTINUE
C
C COMPUTE TOTAL FIRST-ORDER RATE COEFFICIENT:
C
TOTKL=( VOLKL+BIOLKL+OXIDKL+HYDRKL+PHOTKL) *24 .
TOTKG(J)=-TOTKL/24.
C
RETURN
END
C
Q**************************************************************************
141
-------
C***************************************************A****A*A***************
C
C
C TOXIVOLT
C
C LAST REVISED 08/05/82
C**********************A*****************A*********************************
C
SUBROUTINE VOLAT(K,RATEK)
("'__________________ __ __________ _ ___ __
C VOLAT. VOLAT COMPUTES VOLATILIZATION RATE CONSTANTS USING A TWO-FILM
C MODEL OF MOVEMENT OF TOXICANT ACROSS THE AIR-WATER INTERFACE.
C
C BETA IS THE FRACTION OF THE TOXICANT PRESENT AS THE NEUTRAL DISSOLVED
C MOLECULE, RATEK IS THE FIRST-ORDER RATE COEFFICIENT TO BE COMPUTED.
C K IS THE NUMBER OF THE CURRENT COMPARTMENT.
C
C LOCAL VARIABLES FOR THIS SUBROUTINE:
C K02L, BETA,COND,HENRYL,RATEK,RESGAS,RESLIQ,SOLL,TKEL,VAPRL,WAT
C
REAL MWTG, K02L,KVOG
C
INCLUDE 'WSPCMN.F4P'
C
DIMENSION WINDG(SG), DEPTHG(SG)
EQUIVALENCE (CONST(40),BETA),(CONST(43),MWTG),(CONST(44) .HENRYG),
(CONST(45),VAPRG), (CONST(46), KVOG),
(CONST(47),SOLG), (CONST(48),ESOLG),
(CONST(49), EVPRG), (CONST(50),EHENG),
(CONST(51),WIND),(CONST(52),K02L),(CONST(71),,TKEL)
EQUIVALENCE (PARAM(1,2), DEPTHG(l)), (PARAM(1,4),WINDG(1))
O_ _____ _ __________ _ _____ ________________ _ _____..________________..__--___-
C EVALUATE OXYGEN TRANSFER RATE FROM INPUT DATA:
C REAERATION IN CM/HR @ 20 DEG. C. IN INPUT DATA, HERE CONVERTED TO
C UNITS OF METERS/HOUR AND ADJUSTED FOR LOCAL TEMPERATURE
K02L=(K02L/100.)*(1.024**((TKEL-273.15)-20.))
C
C LIQUID PHASE RESISTANCE: USE EXPERIMENTAL VALUE IF AVAILABLE,
C OTHERWISE ESTIMATE FROM MOLECULAR WEIGHT:
IF(KVOG.GT.O.) GO TO 100
C COMPUTE LIQUID PHASE RESISTANCE:
RESLIQ=1./(K02L*SQRT(32./MWTG))
GO TO 150
100 CONTINUE
RESLIQ=1./(K02L*KVOG)
C
150 CONTINUE
C COMPUTE GAS PHASE RESISTANCE:
142
-------
*-l _______ -._____ _______._.__.____
IF(HENRYG.GT.O.) GO TO 500
C
C COMPUTE HENRY'S LAW CONSTANT FROM VAPOR PRESSURE AND SOLUBILITY:
C CONVERT VAPOR PRESSURE TO ATMOSPHERES:
VAPRL=VAPRG/760.
C
C TEMPERATURE CORRECTION:
IF(EVPRG.NE.O.) VAPRL=(10.**(VAPRG-((1000.*EVPRG)/(4.58*TKEL)
2 )))/760.
C
C COMPUTE SOLUBILITY AS MOLES PER CUBIC METER:
C
SOLL=SOLG
C TEMPERATURE CORRECTION:
IF(ESOLG.NE.O.) SOLL=(10.**(SOLG-((1000.*ESOLG)/
2 (4.58*TKEL))))*MWTG*1000.
C
C CONVERT MG/L TO MOLES/CU. M.
SOLL=SOLL/MWTG
C
HENRYL=VAPRL/SOLL
C
GO TO 600
500 CONTINUE
HENRYL=HENRYG
IF(EHENG.NE.O.) HENRYL=10.**(HENRYG-((1000.*EHENG)/(4.58*TKEL)
D)
600 CONTINUE
C
C COMPUTE WATER VAPOR TRANSPORT TERM A FUNCTION OF WINDSPEED
C (LISS 1973. DEEP-SEA RESEARCH 20:221)
WAT=.1857 + 11.36 * WIND
C
C GAS PHASE RESISTANCE:
RESGAS = I./ ((WAT*HENRYL*SQRT(18./MWTG))/(TKEL*8.206E-5))
C (GAS CONSTANT IS 8.206E-5, MOL WT OF WATER IS 18.)
P -. ___ _ _ __ ______«_
C COMPUTE OVERALL FIRST ORDER VOLATILIZATION COEFFICIENT:
COND=1./(RESLIO>RESGAS)
RATEK=(COND*BETA/(DEPTHG(K)/3.2 8))
C THE ADDITION TO THE ABOVE EXPRESSION ACCOUNTS FOR A FT TO METER
C CONVERSION.
Q _______ .«. _______
RETURN
END
143
-------
C*****************************************************************A**********
c
c
C TOXIREOX
C
C LAST REVISED 08/05/82
C****************************************************************************
C
SUBROUTINE REOX(J,WINDSG,K20)
C
INCLUDE 'WSPCMN.F4P'
C
REAL K20
C
DIMENSION DEPTHG(SG),VELOC(SG)
C
EQUIVALENCE (PARAM(1,3),VELOC(1)),(PARAM(1,2),DEPTHG(1))
C calculate oxygen reaeration
C
C
C
C DATA CFOREA/1.0/
CFOREA=1.0
C
C
C
AVDEPE = DEPTHG(J)
AVVELE = VELOC(J)
TEMPSG = 20.
C
IF(WINDSG.EQ.O.) GO TO 30
C this reach/res is a lake or reservoir
C
C calculate reaeration coefficient based on windspeed, surface
C area, and volume; WINDSG is windspeed in m/sec;
C WINDF IS IN CM/HR
C
IF (WINDSG.LE.6.0) GO TO 10
C determine windspeed factor empirically
WINDF= WINDSG *(-.46 + .136*WINDSG)
GO TO 20
10 CONTINUE
C assign value of 2.0 as windspeed factor
WINDF= 2.0
20 CONTINUE
C
C calculate reaeration coefficient
K20= ( .032808*WINDF*CFOREA/AVDEPE)
C CONVERT 1/HR TO CM/HR
K20 = K20*DEPTHG(J)/0.03281
C
144
-------
RETURN
C
30 CONTINUE
IF(AVVELE.GT.O.) GO TO 40
K20 = 0.0
RETURN
40 CONTINUE
C calculate reaeration coefficient for free-flowing reach
C
C calculate reaeration coefficient as a power function of
C average hydraulic depth and velocity; determine exponents
C to depth and velocity terms and assign value to REAR
C
IF (AVDEPE.GT.2.0) GO TO 50
C use Owen's formulation for reaeration
REAK= .906
EXPREV= 0.67
EXPRED= -1.85
GO TO 100
C
50 CONTINUE
C calculate transition depth; transition depth determines
C which method of calculation is used given the current
C velocity
C
IF (AVVELE.GE.1.7) GO TO 60
TRANDP= 0.0
GO TO 70
60 CONTINUE
TRANDP= .4263*(AVVELE**2.9135)
70 CONTINUE
C
DIF= AVDEPE- TRANDP
IF (DIP.GT.0.0) GO TO 80
C use Churchill's formulation for reaeration
REAK= .484
EXPREV= .969
EXPRED= -1.673
GO TO 90
C
80 CONTINUE
C use O'Connor-Dobbins formulation for reaeration
REAK= .538
EXPREV= 0.5
EXPRED= -1.5
C
90 CONTINUE
C
100 CONTINUE
C
C calculate reaeration coefficient
145
-------
K20 = REAK*(AVVELE**EXPREV)*(AVDEPE**EXPRED)
C CONVERT 1/HR TO CM/HR
K20 = K20*DEPTHG(J)/.03281
C
130 CONTINUE
C
C
RETURN
END
C****A**A*******AA******A*A*********AA**AA**************A*******A*A******A*
C
C
C TOXIPHOT
C
C
C*AA*****AA*********AAA*********************AAAA*A**AAAAAAAAA**************
C
SUBROUTINE PHOT01(RATEK.J)
c
C PHOT01 ACCEPTS A MEASURED (CLEAR DAY) PHOTOLYSIS RATE CONSTANT
C AT A SPECIFIED REFERENCE LATITUDE AS INPUT DATA. PHOT01 CORRECTS THIS
C RATE CONSTANT FOR DEVIATION OF THE LATITUDE OF THE ECOSYSTEM FROM THE
C REFERENCE LATITUDE, EFFECTS OF CLOUD COVER, AND LIGHT EXTINCTION IN
C THE WATER COLUMN BASED ON A SINGLE-VALUED ZENITH LIGHT EXTINCTION
C COEFFICIENT ENTERED AS PART OF THE CANONICAL ENVIRONMENTAL DATA.
C THE RATE IS FURTHER MODIFIED BY THE TIME-VARYING FACTOR 'LIGHTN1
C TO APPROXIMATE SEASONAL CHANGES IN INCIDENT LIGHT INTENSITY.
REAL LATG, KDPG, KDPL, IZERO, LIGHTL, LIGHTN, LOPT
C
C INTERNAL VARIABLES:LIGHTL,IZERO,BOTLIT,XXX,XTES
C
C
INCLUDE 'WSPCMN.F4P'
C
C
DIMENSION TYPEE(SG), DEPTHG(SG), CMPETG(SG)
EQUIVALENCE (CONST(54),KDPG), (CONST(55),RFLATG),
(CONST(56),CLOUDG), (CONST(57),LATG),
(CONST(58),DFACG),(CONST(66),LOPT),
(CONST(78),LIGHTN),(CONST(81),BOTLIT),
(CONST(82),TIMCHK)
EQUIVALENCE (PARAM(1,2), DEPTHG(l)), (PARAM(1,5),TYPEE(1)),
(PARAM(1,17), CMPETG(l))
DEPTHM = DEPTHG(J) / 3.281
146
-------
c
C EXPONENTIAL LIGHT DISAPPEARANCE PRODUCES UNDERFLOWS IF THE EXPONENT
C IS GREATER THAN 87.4 (ON MACHINES WITH RANGE E-38).
XTES=87.4
C
C THE DISTRIBUTION FACTOR (DFACG) IS THE OPTICAL PATH IN THE COMPARTMENT
C AS A RATIO TO THE DEPTH. IT IS DIFFICULT TO COMPUTE, BUT A PROBABLE
C BEST VALUE IS 1.19 (HUTCHINSON, TREATISE LIMNOLOGY). HOWEVER, IN
C THE PRESENCE OF A LARGE CONCENTRATION OF SCATTERING PARTICLES, IT
C MAY APPROACH OR REACH 2.0. IN ORDER TO ENSURE THAT AN IMPROPER VALUE
C IS NOT LOADED AND USED IN COMPUTATIONS, THE INPUT DFACG IS CHECKED
C AND SET TO 1.19 IF THE INPUT IS INVALID.
IF (DFACG.LT.l. .OR. DFACG.GT.2.) DFACG=1.19
C COMPUTE AVERAGE LIGHT LEVEL (AS FRACTION OF INCIDENT LIGHT) FROM
C THE COMPOSITE ZENITH LIGHT EXTINCTION COEFFICIENT ENTERED BY USER:
C
C INITIAL SEGMENT IS NECESSARILY A WATER COLUMN WITHOUT AN OVERLYING
C WATER MASS:
IF (TYPEE(J).GT.l.) GO TO 160
C
C COMPUTE LIGHT LEVEL AT BOTTOM OF COMPARTMENT:
C
XXX = CMPETG(J)*DEPTHM*DFACG
IF(XXX.GT.XTES) BOTLIT=0.
IF(XXX.LE.XTES) BOTLIT=EXP(-XXX)
LIGHTL=(1.-BOTLIT)/(CMPETG(J)*DEPTHM*DFACG)
GO TO 200
160 CONTINUE
C
C WATER COLUMN WITH AN OVERLYING WATER MASS: BOTLIT CONTAINS THE
C (RELATIVE) LIGHT INTENSITY AT THE TOP OF THE CURRENT COMPARTMENT:
IZERO=BOTLIT
XXX=CMPETG(J)*DEPTHM*DFACG
IF(XXX.GT.XTES) BOTLIT=0.
IF(XXX.LE.XTES) BOTLIT=IZERO*EXP(-XXX)
LIGHTL=(IZERO-BOTLIT)/(CMPETG(J)*DEPTHM*DFACG)
C
200 CONTINUE
C
C COMPUTE LATITUDE CORRECTION FACTOR:
C
FACTOR=(191696.65+87054.63*COS(0.0349*LATG))/(191696.65+
. 87054.63*COS(0.0349*RFLATG))
C
C ADJUST RATE FOR CLOUDINESS, LATITUDE, LIGHT EXTINCTION, AND VARIABILITY
C
RATEK=KDPG*LIGHTL*(1.-0.056*CLOUDG)*FACTOR*LIGHTN
C
C
RETURN
END
147
-------
c**************************************************************************
c
C TOXISEDW
C
C LAST REVISED 03/09/83
C**************************************************************************
C
SUBROUTINE SEDWAT (J,ALPH1M,ALPH2M)
C
INCLUDE 'WSPCMN.F4P'
REAL KP
DIMENSION DISPV(SG),ALPHA(3),TYPEE(SG),FRW(SG),DSPSED(SG),KP(SG)
EQUIVALENCE (CONST(40),ALPHA(1))
EQUIVALENCE (PARAM(1,13),FRW(1)),(PARAM(1,14),DSPSED(1)),
(PARAM(1,5),TYPEE(1)),(PARAM(1,19),DISPV(1)),
(PARAM(1,12),KP(1))
C
p_____ _______ ___«________,___________ ______________.»._ __________ _________________
C
IF (INITB.GT.l) GO TO 300
INITB=2
C
C FIND PORE WATER EXCHANGES AND CALCULATE DISPV
C
DO 200 1=1,NOR
II=NOR-I+1
I2=JR(II)
IF(I1.EQ.O.OR.I2.EQ.O)GO TO 200
TYP1=TYPEE(I1)
TYP2=TYPEE(I2)
DISP=BR(II)
IF(TYP1.LE.2.) GO TO 105
POROS=FRW(I1)
IF(TYP1.EQ.4.) POROS=(FRW(ll)+FRW(I2))/2.
DISPV(I1)=3.336E-06*DISP*POROS
BR(II)=0.0
IF(TYP1.NE.3.) DSPSED(I1)=0.0
105 CONTINUE
IF(TYP2.LE.2.) GO TO 200
POROS=FRW(I2)
IF(TYP2.EQ.4.) POROS=(FRW(ll)+FRW(I2))/2.
DISPV(I2)=3.336E-06*DISP*POROS
BR(II) = 0.0
IF(TYP2.NE.3.) DSPSED(I2)=0.0
200 CONTINUE
C BR COMES FROM WASP2 IN UNITS OF (MCF/SEC)*(CM/MI)**2. THE 3.336E-06
C PERFORMS THE CONVERSION TO THE DESIRED UNITS OF MCF/DAY.
300 CONTINUE
VOLPW=BVOL(J)*FRW(J)
148
-------
M=J-1
CHEM=C(1,J)
SED=C(2,J)
CHEMW=C(1,M)
SEDW=C(2,M)/1.E06
SEDCOL=SED*1.E-06/FRW(J)
CHEM1W=C(1,M)*ALPH1M/FRW(M)
CHEM2W=C(1,M)*ALPH2M
CHEMSW=CHEM2W/SEDW
CHEM1S=C(1,J)*ALPHA(1)/FRW(J)
CHEM2 S=C(1,J)*ALPHA( 2)
CHEMSS=1.E06*CHEM2S/SED
C
WATFL=DISPV(J)*DT
IF(WATFL.GT.VOLPW) WATFL=VOLPW
WATFL=WATFL/DT
SEDFL=WATFL*SEDCOL*DSPSED(J)
C
EXUP = WATFL * CHEM1S + SEDFL * CHEMSS
EXDO = WATFL * CHEM1W + SEDFL * CHEMSW*KP(J)/KP(M)
C
CD(1,M) = CD(1,M) + EXUP - EXDO
CD(1,J) = CD(1,J) - EXUP + EXDO
C
RETURN
END
C
£**************************************************************************
149
-------
C*****************A********************************************************
c
C TOXISETL
C
C LAST REVISED 01/12/82
C**************************************************************************
C
SUBROUTINE SETTLE(J,SETINS,SETOUS,SETINC,SETOUC)
C
Q
INCLUDE 'WSPCMN.F4P1
REAL KP
DIMENSION DEPTHG(SG),TYPEE(SG),WS(SG),FRW(SG),ALPHA(3),KP(SG)
DIMENSION VVOL(SG),BVOLO(SG),RVOL(SG),BMASS(SG)
EQUIVALENCE (CONST(67),BURY),(CONST(40),ALPHA(1)),
(CONST(41),ALPHA(2)),(CONST(85),TMASS)
(CONST(53),DUMMY6)
(PARAM(1,5),TYPEE(1)),(PARAM(1,16),WS(1)),
(PARAM(1,13),FRW(1)), (PARAM(1,2), DEPTHG(l)),
(PARAM(1,12),KP(1))
EQUIVALENCE (PARAM( 1,22) ,VVOL( 1) ) ,(VVOL( 1) ,BVOLO( 1).),
EQUIVALENCE
EQUIVALENCE
(VVOL(1),RVOL(1)),(PARAM(1,23),BMASS(1))
C
C
CHEM=C(1,J)
SED =C(2,J)
VOL =BVOL(J)
DEPTH=DEPTHG(J)
DEPTHM=DEPTHG(J)/3.281
SA=VOL/DEPTH
ITYPE=TYPEE(J)
M=J-1
N=J+1
NN=J+2
FAC=DUMMY6
GO TO (100,200,300,400), ITYPE
C**************************************************************************
C SURFACE WATER SEGMENT
C**************************************************************************
100 CONTINUE
SETINSO.
SETINC=0.
GO TO 250
C**************************************************************************
C SUBSURFACE WATER SEGMENT
C**************************************************************************
200 CONTINUE
SETINS=SETOUS
SETINC=SETOUC
150
-------
c
C ALL WATER SEGMENTS
C
250 CONTINUE
S ETOUS=SED*WS(J)*VOL/DEPTHM
SETOUC=CHEM*ALPHA(2)*WS(J)*VOL/DEPTHM
C (MASS RATE UNITS ARE MCF*MG/L PER DAY)
CD(1,J)=CD(1,J)+SETINC-SETOUC
CD(2,J)=SETINS-SETOUS
C CHECK FOR INFILTRATION
IF(TYPEE(NN).NE.4) RETURN
PERC=WS(NN)*1.£-06*86400.
IF(PERC.GE.O.) RETURN
PERCMS=PERC*ALPHA(1)*CHEM/FRW(J)
CD(1,J)=CD(1,J) + PERCMS
CD(1,N)=CD(1,N) - PERCMS
RETURN
£**************************************************************************
C TOP BENTHIC SEGMENT
£**************************************************************************
300 CONTINUE
VOLW=BVOL(M)
SETINS=SETOUS
SETINC=SETOUC
SETOUS=SED*WS(J)/(365.*100.)*VOL/DEPTHM
C (MASS RATE OF SEDIMENT SCOUR)
SETOUC=CHEM*ALPHA(2)*SETOUS/SED
C (MASS RATE OF SORBED CHEMICAL SCOUR)
CD(1,J)=CD(1,J)+SETINC-SETOUC
CD(2,M)=CD(2,M)+SETOUS
CD(1,M)=CD(1,M)+SETOUC
BURY*(SETINS-SETOUS)*DEPTHM/(VOL* SED)
C (NET BURIAL IN M/DAY)
EDEPTH=3.208*BURY*DT
EVOL=VOL*EDEPTH/DEPTH
IF(BURY.LT.O.) GO TO 350
C
C SEGMENT IS ACCRETING
C
IF(EVOL.GT.VOLW) GO TO 375
DEPTHG(J)=DEPTHG(J)+EDEPTH
DEPTHG(M)=DEPTHG(M)-EDEPTH
BVOL(J)=BVOL(J)+EVOL
BVOL(M)=BVOL(M)-EVOL
C
C CHECK FOR LAYER BURIAL
C
TMASS=0.
IF(BVOL(J).LT.RVOL(M)) GO TO 375
C (RVOL FOR SEG "J" IS STORED AT LOG "M")
FVOL = BVOL(J) - BVOLO(J)
C (FVOL = FAC*BVOL(N)*SED(N)/SED(J))
151
-------
SVOL = FVOL - FAC*BVOL(N)
C (VOL PORE WATER SQUEEZED OUT TO WATER COLUMN)
C (SVOL = FAC * BVOL(N) * (SED(N)/SED(J) - 1)
DEPTHG(M) = DEPTHG(M) + SVOL/SA
DEPTHG(J) = DEPTHG(J) - FVOL/SA
BVOL(M) = BVOL(M) + SVOL
BVOL(J) = BVOL(J) - FVOL
TMASS = FVOL * CHEM
SMASS = SVOL * ALPHA(l) * CHEM/FRW(J)
C(1,M) = C(1,M) + SMASS/BVOL(M)
TMASS = TMASS - SMASS
C (MASS CHEM BURIED TO LOWER LAYER, IN MCF*MG/L)
IF(TMASS.EQ.O.) TMASS=1.E-12
GO TO 375
C
C SEGMENT IS ERODING
C
350 CONTINUE
EDEPTH=-EDEPTH
EVOL=-EVOL
IF(EVOL.GT.VOL) GO TO 370
DEPTHG(J)=DEPTHG(J)-EDEPTH
DEPTHG(M)=DEPTHG(M)+EDEPTH
BVOL(J)=BVOL(J)-EVOL
BVOL(M)=BVOL( M)+EVOL
GO TO 375
C
C LAYER ERODED
C
370 CONTINUE
IF(TYPEE(N).NE.4.) GO TO 375
DEPTHG(J) = DEPTHG(N)
DEPTHG(M) = DEPTHG(M) + EDEPTH
BVOL(J) = BVOL(N)
BVOL(M) = BVOL(M) + EVOL
C(1,J) = C(1,N)
C(2,J) = C(2,N)
FRW(J) = FRW(N)
KP(J) = KP(N)
TMASS = -1.
375 CONTINUE
C
C CHECK FOR PERCOLATION/INFILTRATION
C
IF(TYPEE(N).NE.A.) RETURN
PERC=WS(N)*1.£-06*86400.
PERCMS=PERC*ALPHA(1)*CHEM/FRW(J)
IF(PERCMS.LT.O.) GO TO 380
CD(1,J)=CD(1,J) - PERCMS
CD(1,M)=CD(1,M) + PERCMS
RETURN
380 CONTINUE
152
-------
CD(1,J)=CD(1,J) + PERCMS
CD(1,N)=CD(1,N) - PERCMS
RETURN
C************************************************************************
C LOWER BENTHIC SEGMENT
c************************************************************************
400 CONTINUE
SETINCO.
SETINS=0.
SETOUS=0.
C
C CHECK FOR PERCOLATION/INFILTRATION
C
PERC=WS(J)*1. £-06*86400.
PERCMS=PERC*ALPHA( 1 ) *CHEM/FRW( J )
IF ( PERCMS. LT.O.) GO TO 480
CD(1 , J)=CD( 1 , J)-PERCMS
CD(1 ,M)=CD(1 ,M)+PERCMS
GO TO 500
480 CONTINUE
CD( 1 , J)=CD( 1 , JHPERCMS
IF(TYPEE(N) .EQ.4.) CD(1 ,N)=CD(1 ,N)-PERCMS
500 CONTINUE
C
C CHECK FOR BURIAL OR EROSION OF A LAYER
C
IF(TMASS.EQ.O.) RETURN
IF(TMASS.LT.O.) GO TO 525
C
C BURIAL OF LAYER
C
TMPM = FAC * C(1,J) * BVOL(J)
C(1,J) = C(1,J) + (TMASS-TMPM)/BVOL(J)
TMASS = TMPM
IF(TYPEE(N).NE.4.) BMASS(J)=BMASS(J)+TMASS*28.317
C (28.317 KG PER MCF*MG/L)
IF(TMASS.EQ.O.) TMASS=1.E-12
RETURN
525 CONTINUE
C
C EROSION OF LAYER
C
IF(TYPEE(N).EQ.4.) RETURN
C(1,J) - 0.0
TMASS = 0.0
RETURN
C
C
END
C
C**************************************************************************
153
-------
C***********************************************A************** * ***********
c
c
C TOXIFEIEQ
C
C LAST REVISED 07/30/82
C**************************************************************************
C
PROGRAM FREQ
C
C
P__
COMMON/STAORD/Z(10000)
C
DIMENSION CC(4),CUM(8,50),DIST(10),CUMZ(8)
REAL NAME(4)
C
DATA NAME/4HCTOT,4HCDIS,4HCSED,4HCBIO/
DATA DIST/.01,.05,.10,.30,.50,.70,.90,.95,.99,1.007
C
REWIND 2
C
C
10 CONTINUE
READ(2,END=25) TZERO,TIME,ICOUNT,JTR.JSTR
READ(2,END=25) ICOUNT,TIME,(CC(K),K=1,4)
READ(2,END=25) ICOUNT,TIME,(CC(K),K=1,4)
GO TO 10
25 CONTINUE
REWIND 2
C
C
IP = 1
LP = ICOUNT
NUMC = 4
NJSTAT = 2
NU = 2
IPL = 0
C
WRITE(6,600) ICOUNT,TZERO,TIME,(DIST(K),K=1,10)
C
DO 116 I1=1,NUMC
DO 114 JJ=1,NJSTAT
IPL = IPL+1
J = JTR
IF(JJ.EQ.2) J=JSTR
REWIND NU
III = JJ
KK = 0
DO 106 I=IP,LP
154
-------
READ(NU) TZERO,TIME,ICOUNT,JTR,JSTR
KK = KK + 1
DO 102 L=1,II1
READ (NU) ICYC.TIME, (CC(K), K=l,NUMC)
102 CONTINUE
Z(KK) = CC(II)
L2 = NJSTAT - JJ
IF (L2.EQ.O) GO TO 106
DO 104 M=1,L2
READ (NU) ICYC.TIME, (CC(K), K=l,NUMC)
104 CONTINUE
106 CONTINUE
CALL ORDER (IP, LP)
C
C COMPUTE STATISTICS USING ORDERED DATA
C
C MIN MAX AVG
ND = LP - IP + 1
ZAVG = 0.
DO 108 N=1,ND
ZAVG = ZAVG + Z(N)
108 CONTINUE
ZAVG = ZAVG / FLOAT(ND)
ZMIN = Z(l)
CUMZ(IPL) = Z(l)
C PERCENTILES
C PROB = FLOAT(ND) / 10.
DO 110 K=l,10
C IDIST = FLOAT(K) * PROB
IDIST = DIST(K) * FLOAT(ND)
IF(IDIST.EQ.O) IDIST=1
CUM(IPL,K) = Z(IDIST)
110 CONTINUE
C SKEWNESS + KURTOSIS
SDIFF2 = 0.
SDIFF3 = 0.
SDIFF4 = 0.
DO 112 N=1,ND
DIFF = Z(N) - ZAVG
SDIFF2 = SDIFF2 + DIFF**2
SDIFF3 = SDIFF3 + DIFF**3
SDIFF4 = SDIFF4 + DIFF**4
112 CONTINUE
XND = 1. / FLOAT(ND)
XNU = FLOAT(ND) - 1.0
SDEV = SQRT(SDIFF2/XNU)
SKEW = (XND * SDIFF3) / ((XND * SDIFF2)**!.5)
CURT = ((XND * SDIFF4) / (((XND * SDIFF2)**2)) -3)
155
-------
C OUTPUT STATISTIC TABLES
C
WRITE (6,602) NAME(II),J,ZAVG,SDEV,SKEW,ZMIN,
(CUM(IPL,K),K=1,10)
C
C PREPARE PROBABILITY TABLES
C
DO 150 K=l,50
PDIST=FLOAT(K)/50.
IDIST=PDIST*FLOAT(ND)
CUM(IPL,K)=Z(IDIST)
150 CONTINUE
114 CONTINUE
116 CONTINUE
REWIND NU
C
C OUTPUT CUM PROBABILITY TABLES
C
WRITE(6,611)((NAME(I),JTR,NAME(1),JSTR),I=1,4)
WRITE(6,612)(CUMZ(I),I=1,8)
DO 220 K=l,50
CUMPR=0.02*FLOAT(K)
WRITE(6,613)((CUM(I,K),CUMPR),I=1,8)
220 CONTINUE
C
C SET UP PLOTS
C
IFIL=3
WRITE(IFIL,612) (CUMZ(I),1=1,8)
DO 250 K=l,50
CUMPR=0.02*FLOAT(K)
WRITE(IFIL,613) ((CUM(l,K).CUMPR),1=1,8)
250 CONTINUE
C
C FORMAT STATEMENTS
C
600 FORMAT (1H //20X,83(1H*),/,1X,19(1H*),' STATISTICAL ANALYSIS OF',
*I5,IX,'CHEMICAL CONCENTRATIONS FROM DAY',F5.1,' TO DAY',F6.1,2X,
*22(1H*),/,20X,83(1H*),//,34X,34(1H*),' CUMULATIVE PROBABILITIES
*',34(1H*),/,1X,'VAR SG MEAN ST DEV SKEWNESS 0.00',
*10F9.2,/,1X,128(1H-),/ )
602 FORMAT (A4,12,3E9.2.11E9.2/)
604 FORMAT (1H1)
611 FORMAT(1H1/53X,'CUMULATIVE PROBABILITY'///
2X,8(1X,A4,I4,2X,'PROB',1X)/
3X,8(14(1H-),2X))
612 FORMATUH ,1X,8(E10.3,' 0.00',IX))
613 FORMAT(1H ,1X,8(E10.3,F5.2,1X))
STOP
END
C
c**************************************************************************
156
-------
c**************************************************************************
c
c
C TOXIORDR
C
C
C**************************************************************************
C
SUBROUTINE ORDER (IP, LP)
COMMON/STAORD/ Z(10000)
C
C ORDER THE X/ARRAY
C
NM = LP - IP
C FORWARD PASS
DO 104 11=1,NM
NCHNG = 0
DO 100 K=1,NM
IF (Z(K).LE.Z(K+1)) GO TO 100
TEMP = Z(K)
Z(K) = Z(K+1)
Z(K+1) = TEMP
NCHNG = NCHNG + 1
100 CONTINUE
IF (NCHNG.EQ.O) RETURN
C BACKWARD PASS
NCHNG = 0
DO 102 N = 1,NM
K = NM - N + 1
IF (Z(K).LE.Z(K+1)) GO TO 102
TEMP = Z(K)
Z(K) = Z(K+1)
Z(K+1) = TEMP
NCHNG = NCHNG + 1
102 CONTINUE
IF (NCHNG.EQ.O) RETURN
104 CONTINUE
RETURN
END
C
Q**************************************************************************
157
-------
APPENDIX 3:
TOXIWASP Support Software
Appendix 3.1 Listing of TOXICMP.CMD
SON WARNING CONT
SSET DEF DBO:
SDEL W/SPCMN.F4P;*
SDEL OUTCMN.F4P;*
SCOPY DBl:[55,116]
SCOP* DBl:[55,116]
SDEL *.OBJ;»
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
$FO/F4P DBl:[55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
$FO/F4P DBl:[55,11
$FO/F4P DBl: [55,11
$FO/F4P DBl: [55,11
SFO/F4P DBl: [55,11
$FO/F4P DBl:[55,11
$FO/F4P DBl:[55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,ll
SFO/F4P DBl:[55,11
$FO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
SFO/F4P DBl:[55,11
SFO/F4P DBl: [55,11
$FO/F4P DBl:[55,11
2X50.CDM WSPCMN.F4P
OUTCMM.F4P OUTCMN.F4P
6]WASPMAI
6]*'ASP8
6]WAS8A
6]WERR
6JWMESS
6JSCALP
6]SETRA
61SETIA
6JFILEDC
61FMTER
61WAS12
61EULER
6]WAS13
6DWAS14
6]WASP1
6]WASP2
6]WASP3
6]WASP4
6]WASPS
61WASP6
6]WASP7
6]WASP9
6]WAS10
6JWAS11
63WAS16
6JWAS17
63WAS19
6JOUTPUT
6JTINIT
6]WA12A
61SWFLOW
N
$FO/F4P/OBJ:WASPB DBl
SFO/F4P DB1:TOXIVOLT
DBl:TOXISETL
DBI:TOXISEDW
DBl:TOXIPHOT
DB1:TOXINIT
DBl:TOXIDUMP
DBI:TOXIFDRD
DBl:TOXIREOX
DBl:TOXIFREQ
DB1:TOXIORDR
TOXIWASPD
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
SFO/F4P
$9DBl:TOXITKB
!$DEL *.OBJ;»
158
-------
Appendix 3.2 Listing of TOXITKB.CMD, FREQTKB.CMD and TOXIODL.ODL
SON EARNING CONT
SSET DEF DBO:
SDEL TOXIFREQ.TSK;*
SLINK/OPT/READ TDXIFREQ TDXIORDR
ACTF1L=6
SON WARNING CONT
SSET DEF DBO:
SDEL TQXIWASP.TSK;*
SLINK/READ/OPT/OVER:DBI:TOXIODL/rASK:TOXIWASP
MAXBUF=1520
ACTFIL=5
UNITS=92
/
SSET DEF DBl:
SMESSAGE/TERMINALtTTl4
159
-------
CD
Jt
I
Q
CX
O
X
o
I
a.
X
o
f-l
I (O
h-t M S>
CL «t F~< ^
J I X » 3
J I
I X
X O
O hJ
tO (X
CO fl
M X
X O
O f-
H >
I I
*-> _/ cQ O
x o i a. »
I O OL CO
I
I CM
ixu[ri
«
3
ex
CX H
CX (X CX H O
H H H CJ U.
U O U bu
CL, Cb U.
cO
tNj CO
X >* C>J SJ 3
^
I
H
_3
O
>
l-l CE
X J
o v.
f-> in
- CJ
I-H tr.
_3 CL
I ^f
H It
O ^i
X «
a "
l-l «-4
X ^
a
H o
v-> CO
* Q
CX CX
H H
O O
[j[, [^
.. o
6-1 z;
CO l-l il
160
-------
Appendix 3.3 Listing of JCL to Compile and Link Edit
//EPAXXXCL JOB (ACCTWASPM(JSR,MUSR), 'TOXIWASP CMPLNK ' , PRTY
// EXEC FTG1CL
//FORT.SYSIN UD DSN=CN.EPAXXX.ACCT.TOXIWASP.FTN,DlSP=SHR
//LKED.SYSLMOD DD UNIT=,SPACE=,DCB=,
// DSN=CN.EPAXXX.ACCT.LOAD(TOXIWASP),DISP=SHR
Appendix 3.4 Listing of TOXIC.BIS
SJOB ROBERT TOXICS 9999
SON WARNING CONT
$SET DEF DBO:
$DEL WASP.INP;*
SDEL *.XYZ;*
$DEL DBOtFQROOb.DAT;*
SDEL FOR002.DAT;*
SCOPY DBltPOND.lNP WASP.INP
SASS DBO; 6
SASS DBl: 91
$ASS DBO: 5
SRUN TOXIWASP
SCOPY DBO:FOR006.DAT POND.OUT
SPRINT/DELETE DBOrFOR006.DAT
SDELETE *.XYZ;*
SRUN TOXIFREQ
SPRINT DBO:FOR006.DAT
SEOJ
161
-------
ME=2
ON=400K
w
a
o
H
-P
a
.9
CO
u
o
CP
c
H
-p
U]
H
in
n
X
H
0)
a
13
Cx3
CC
Z
r>
cc
CL
co
<:
X
>-i
X
O
cc
X
CO
II
CL
to
O
CC .J
CO
3 H
O
u
«f
o ^
ON UJ
f-i
ro U
II _3
uj u
t-l IS] O
Q M *
» tO 2
O ^ U
3 Z
O
«*
cc
UJ
co
3
II
cc
O
^Ji
a.
U
co
O
*
cc
U
to
fi
u
J
UJ
Q
1.9 U 13
»-t E-II-I
f-iOUJ6-«
z^r>_3Z
OO-liJO
M
UJ
l!)
M ui
» CO
u
o
cc
to
ra
3T 0.
CL to
CO o
U
< X
2 U)
X
X 4
X CL
< U
a u
u to
X X
X. X.
X
X
X
«t »
CL «t
u u
H
z n
CJ O
II CO
Z X
to co
o
a
o a
o
*-t
CO O
Ht O
JU.
CL vo
hi O
H H
to u.
X X.
co *-* i
II
m a, i
m co
»-i t-t
II O
J «.,
CJ fi
[£) CO
CC I-H
j ac i
~u
rf >-
CO t-i
(b ft
II l«
f II
u, z
CJ CO
u o
cc
s-*Q
II O
CO
u -«
o o
o
u,
o
J «-* UJ
a u J
> U] U
-tsl Q
<* CL
II to
II CC -i
Ld .J -<
CJ CL
UJ J II U3
u o u a
[»3 > N «.
a »M 3e
CttiiJCt
- co uj -
oOJX
WZTHZ'^Jf-f
JOCCUOiXUZ
UCJLiJOOlAlCiO
Q » CO Ul »5/1 »O
^ [»j rD Q bu ;r> w .
U CO II > CO II E-i LL)
f-.JJCttJ.JJXfcJCO
UJ CC UJ h- (X I jj J J
j «.couj «.cociia.
U ^ II J ^ II O «,
OOhJUO,J - ^->
LOOQlOOSO
3: »> «-«.>CUfM
Ldl
F-i
U
O _3
>* tx]
CC O
U -
CO Ui
=> f-t
II UJ
CC J
u w
CO Q
II -
^-> O
o *
M CC
H U
z co
O 3
O II
». CC
U3 Li)
CO CO
*3 II
O U3 «-O
> Z ^ >
II W
II O O II H* O
J CN Ul O CN
O O II LO O
O Z CM O II CM
CN ^-- »^ 01 a, >-*
^11 »!*> IO >
II CL o II t-t o
EJ CO J t-l "O ISJ «. OO
M a:
u cn
u co
u cn
H to
u co «. u no
H
U
CJ
>-> II
o CL
(N CO
ro h-(
II C
UJ -
M M
M CO
CO t-(
IS
CL *
- II uB >. II
L0 -
u « bl O >« U ' ' - - - -
cc in cc co cc co cc
to cc
II ^ Q
H II Q
H4 CO
to
II
II
CO
to
O II
o e-i
cc
«^ Q
II O
CO
CO CC CO
II ^ O II
M II O E-i
l-l CO hH
CJ
u
cc
H
CO
to
O II
Q e-<
CL
k. U- CO IJL. CO CO
II Ul > H UI -
5" it *t 5. M rt
b. Z O b Z O
CJ CO CO O CO tO
t£> O >i tO O ><
CC CO CC CO
^ Q II ' Q II
II 0 E-i II O El
CO t-l OD 1-4
CO
U. t-i
II ufl
7 II
u, z
CJ CO
bJ O
cc
^ Q
H O
CO
O ^
Q O
O
U.
CO
i O
«_> Tj<
>. *
O II
* U3
vD tsi
<' tI
II CO
U bC
CJ J
< cc
CL »
co b,
- u
«* 3F
O U.
CO CJ
>i U
to cc
II v^
H II
l-l CD
Z U
X, X
X. X
162
-------
u:
a.
s-
II
u;
CX
IO
UJ O O
»O *< ^3*
LU Z oJ
l-i O tO
J > II
f.> r.i fy
O CO U
«._] tO
X Ct II
z ^ o
^ ID i>
II « *
CLt CN '""*
tO «-> O
l-l -' OO
Q * II
bJ 00 N3
<£ II tO
Z til bC
a t; ij
S «* CD
O
in
«. r-i o U3
X.
o
H Ct
X U3
>« O J ^
Lxl O
o in
o
ct.
w
ii
ct
to
II
< 3T
. Ci tO
H H
u u
o o
O II
^* Cxi
."* w-t
ua m
2- CN
V ' \M*
II -
a o
to »
o n
Ci S*"*
II
X
u.
u
o o o
o o o
u, u. u.
' CN 00
&* & CT*
f-i E-i H
II O
CD
CJ ^
D O
O
u.
1/1
o
ft
163
-------
Appendix 3.6 Listing of DAILYCVT
c ---------------------------------------------------------------------
c
C PROGRAM DAILYCVT
C
C LAST REVISED 08/27/82
f1 . _-_.-.«_______-___ __.__ _. -.__ -.__.-._-.____________ ___ _______»___-__,__________
C THIS PROGRAM CONVERTS FLOWS AND LOADINGS FROM USER SPECIFIED
C FILES INTO UNFORMATED FORM FOR READING BY TOXIWASP. THE
C USER IS QUERIED FOR THE LOAD FILE NAME FORMAT AND NUMBER OF
C SYSTEMS. THE INDICATED FILES ARE THEN READ AND DATA WRITTEN
C TO THE FILE DAILY.DAT ON THE DEFAULT DISK.
BYTE FILNM(30),FILNM2(30),FORMAT(80)
REAL LOADS(10,30)
VIRTUAL QT(10,1850)
DIMENSION IQ(10),JQ(10)
SCALQ=0.0
NQOPT=0.0
NOSYS=1
C
c
c
GET OPTIONS
WRITE(5,*) ' ENTER LOAD OPTION AND FLOW OPTION'
WR1TE(5,*) ' 1 = DO LOADS (OR FLOWS)'
WRITE(5,*) ' 0 = SKIP LOADS (OR FLOWS)'
READ(5,*) NOWK,NOQ
IF(NOWK.EQ.O) GO TO 190
C GET FILE NAME FOR LOADS
f _________________________ _ _ ___«.______.«___
C
1 CONTINUE
WRITE(5,*) 'ENTER NAME OF INPUT LOADINGS FILE'
READ(5,10) NC.FILNM
10 FORMAT (Q, 3 OA1)
NC = NC + 1
IF(NC.GT.30) GO TO 90
. FILNM(NC) = 0
OPEN(UNIT=1 ,NAME=FILNM,TYPE='OLD' ,ERR=90)
NC=0
GO TO 100
C
C FILE NAME ERROR
C
90 CONTINUE
WRITE(5,*) 'FILE NAME SPECIFICATION ERROR, OR FILE NOT FOUND'
164
-------
GO TO 1
C
c ------------------------------------
C GET FORMAT OF FILE
c ------------------------------------
C
100 CONTINUE
WRITE(5,*) 'ENTER FORMAT OF LOADS FILE IN PARENTHESIS. (23X,3E14.5) '
READ(5,110) FORMAT
110 FORMAT(SOAl)
C
c ------------------------------------
C GET NUMBER OF SYSTEMS
c ------------------------------------
C
115 CONTINUE
WRITE(5,*) 'ENTER NUMBER OF SYSTEMS AND LOAD SEGMENTS'
READ(5,*) NOSYS.NOWK
IF(NOSYS.LE.IO) GO TO 190
WRITE(5,*) 'SYSTEM LIMIT CURRENTLY SET AT 10 ... REENTER'
GO TO 115
C
C
C
c ------------------------------------
C GET FILE NAME FOR FLOWS
C
190 CONTINUE
IF(NOQ.EQ.O) GO TO 400
WRITE(5,*) 'ENTER NAME OF INPUT FLOW FILE'
READ(5,10) NC.FILNM2
NC = NC + 1
IF(NC.GT.30) GO TO 90
FILNM2(NC) = 0
OPEN(UNIT=3,NAME=FILNM2,TYPE='OLD' ,ERR=290)
GO TO 300
C
C FILE NAME ERROR
C
290 CONTINUE
WRITE(5,*) 'FILE NAME SPECIFICATION ERROR, OR FILE NOT FOUND'
GO TO 190
C
C READ FLOW FILES
c -------------------------------------
C
300 CONTINUE
READ(3,3001,ERR=850) NQOPT.NOQ.SCALQ
3001 FORMAT(2I5/E10.4)
IF(NOQ.LE.O) GO TO 400
165
-------
DO 380 K=1,NOQ
READ(3,3003) JQ(K) ,IQ(K) , NDAYS
3003 FORMAT(3I5)
READ(3 ,3005) ( (QT(K,N) ,XN) ,N=1 , NDAYS)
3005 FORMAT(100(4(E10.3,F10.2)/))
DO 375 N=l , NDAYS
QT(K,N)=QT(K,N)*SCALQ*0.0846
375 CONTINUE
380 CONTINUE
400 CONTINUE
C
P ________
C READ FILES AND CONVERT
OPEN(UNIT=2,NAME='DAILY.DAT' ,TYPE='NEW , FORM= ' UNFORMATTED ' ,
ACCESS= ' SEQUENTIAL ')
C
C
WRITE(2) NOWK,NQOPT,NOQ,SCALQ
IF(NOQ.GT.O) WRITE(2) ((JQ(K) ,IQ(K) ) ,K=1 ,NOQ)
N=0
700 CONTINUE
N=N+1
IF(NOWK.EQ.O) GO TO 710
READ (1, FORMAT, ERR=800,END=900) ((LOADS(I, J) ,1=1 ,NOSYS) , J=l ,NOWK)
WRITE(2) ((LOADS(I.J) ,1=1 ,NOSYS) ,J=1 ,NOWK)
710 CONTINUE
IF(NOQ.GT.O) WRITE(2) (QT(K,N) ,K=1 ,NOQ)
IF (N.GE. NDAYS) N=0
NEND=N+NOWK
IF(NEND.EQ.O) GO TO 900
GO TO 700
C
C READ ERROR
C
800 CONTINUE
WRITE(5,*) 'ERROR IN LOAD INPUT FILE FORMAT - RUN ABORTED1
GO TO 900
850 CONTINUE
WRITE(5,*) 'ERROR IN FLOW INPUT FILE FORMAT - RUN ABORTED'
GO TO 900
C
C END OF INPUT
C
900 CONTINUE
CLOSE (UNIT=1)
CLOSE (UNIT=2)
CLOSE (UNIT=3)
STOP
END
166
-------
Appendix 3.7 Listing of HSPFCVT
CA*AAAAAAA*AAAAAAAAAAA*AAAAAAAA*AA*AAAAAAAAAA**A*AAAAAAA**AAA*AAAAAAAA*AAAA*A
c
C PROGRAM HSPFCVT
C
C LAST REVISED 08/27/82
CAAAAAAAAAAAAAAAAAA**AA*AAA*A*AAAA*AAAAAAAAAAAAAAAAAAAAAA*AAAAAAA**AAAA*AA**A
C
C CONVERTS AN HSPF PLOT FILE TO A WASP LOAD FILE
C
C**AA*********A*******************A********************A*********************
DIMENSION IWK(30),ACRES(30),FACTOR(10),LOAD(10),INLOAD(10)
INTEGER YEAR,MONTH,DAY,DUR,BEGYR,BEGMO,BEGDA,ENDYR,ENDMO,ENDDA
REAL INLOAD.LOAD
C
WRITE(5,1005)
1005 FORMAT(1H1//////////////5X,'PLEASE ENTER ',
.'NUMBER OF SYSTEMS AND NUMBER OF LOADING SEGMENTS'//////////)
READ(5,*) NOSYS.NOWK
DO 25 I=1,NOSYS
WRITE(5,1021) I
1021 FORMAT(1HO/5X,'SYSTEM',13,' MULTIPLICATION FACTOR = ')
READ(5,*) FACTOR(I)
25 CONTINUE
FACTOR(2)=FACTOR(2)*2000.
WRITE(5,1026)
1026 FORMAT(1HO///5X,'FACTOR(2) HAS BEEN MULTIPLIED BY 2000',
' TO CONVERT TONS/ACRE TO LBS/ACRE'////)
DO 50 K=1,NOWK
WRITE(5,1031)
1031 FORMAT(1HO/5X,'SEGMENT NUMBER AND ACREAGE = ')
READ(5,*) IWK(K),ACRES(K)
50 CONTINUE
DO 75 1=1,28
READ(4,1074) DUMMY
1074 FORMAT(80A1)
7 5 CONTINUE
WRITE(5,1081)
1081 FORMAT(1HO///5X,'PLEASE ENTER BEGINNING YEAR, MONTH, AND DAY'/)
READ(5,*) BEGYR,BEGMO,BEGDA
WRITE(5,1083)
1083 FORMAT(1HO/5X,'NOW ENTER ENDING YEAR, MONTH AND DAY'/)
RE AD (5,*) ENDYR,ENDMO,ENDDA
C
C
NRECR=0
NRECW=0
ISTARTO
IENDO
100 CONTINUE
READ(4,1100,END=300) ALPHA,YEAR,MONTH,DAY,DUR,IDUM,
167
-------
(LOAD(I),I=1,NOSYS)
1100 FORMAT(A4,I6,4I3,3E14.5/5E14.5)
NRECR=NRECR+1
IF(ISTART.EQ.I) GO TO 105
IF(YEAR.GE.BEGYR.AND.MONTH.GE.BEGMO.AND.DAY.GE.BEGDA) ISTART=1
IF(ISTART.NE.l) GO TO 100
105 CONTINUE
IF(YEAR.LT.ENDYR) GO TO 110
IF(MONTH.LT.ENDMO) GO TO 110
IF(DAY.GE.ENDDA) IEND=1
110 CONTINUE
DO 120 K=1,NOWK
DO 115 I=1,NOSYS
INLOAD(I)=LOAD(I)*FACTOR(I)*ACRE S(K)
IF(INLOAD(I).LT.O.) INLOAD(I)=0.0
115 CONTINUE
WRITE(6,1200) ALPHA,YEAR,MONTH,DAY,DUR,IWK(K),
(INLOAD(I),I=1,NOSYS)
1200 FORMAT(1X,A4,I6,4I3,3E14.5/5E14.5/5E14.5)
120 CONTINUE
NRECW=NRECW+1
IF(IEND.EQ.l) GO TO 300
GO TO 100
300 CONTINUE
WRITE(5,1110) NRECR,NRECW,NOWK
WRITE(5,1120)
1110 FORMAT(1H1///////////////20X,'PROCESSING COMPLETE'/////
15X,I5,' UNIT LOADS READ'/
15X,I5,' SETS OF LOADS WRITTEN FOR EACH OF',13,' SEGMENTS'/
/////20X,'FORMAT IS 23X,3E14.5/5E14.5/5E14.5'/)
1120 FORMAT(1HO//20X,'TO CONVERT THESE LOADS TO WASP INPUT FORMAT,'/
20X,'RUN "DAILYCVT" USING INTERMEDIATE FILE "WASPLD.DAT"'/)
STOP
END
168
-------
Appendix 3.8 Listing of SWRVCVT
C*AAAAA**AA***********A***AA*AA***AA**AA*AAA***A***A**AA********AAAA**AAA**AA
C
C PROGRAM SWRVCVT
C
C LAST REVISED 03/15/82
CA**AAAAA***AAAAAAA****AAA**AA******AA***A****A*********A*AAAA*******AA*AA*A*
C
C CONVERTS AN SWRV PLOT FILE TO A WASP LOAD FILE
C
QA************A*************A**********A**A***************A***AA*************
DIMENSION IWK(30),ACRES(30),FACTOR(10),LOAD(10),INLOAD(10)
INTEGER YEAR,MONTH,DAY,DUR,BEGYR,BEGMO,BEGDA,ENDYR,ENDMO,ENDDA
REAL INLOAD.LOAD
C
WRITE(5,1005)
1005 FORMAT(1H1//////////////5X,'PLEASE ENTER ',
.'NUMBER OF SYSTEMS AND NUMBER OF LOADING SEGMENTS'//////////)
READ(5,*) NOSYS,NOWK
DO 25 I=1,NOSYS
WRITE(5,1021) I
1021 FORMAT(1HO/5X,'SYSTEM',13,' MULTIPLICATION FACTOR = ')
READ(5,*) FACTOR(I)
25 CONTINUE
FACTOR(2)=FACTOR(2)*2000.
WRITE(5,1026)
1026 FORMAT(1HO///5X,'FACTOR(2) HAS BEEN MULTIPLIED BY 2000',
1 TO CONVERT TONS/ACRE TO LBS/ACRE'////)
DO 50 K=l,NOWK
WRITE(5,1031)
1031 FORMAT(1HO/5X,'SEGMENT NUMBER AND ACREAGE = ')
READ(5,*) IWK(K),ACRES(K)
50 CONTINUE
DO 75 1=1,3
READ(4,1074) DUMMY
1074 FORMAT(80A1)
75 CONTINUE
WRITE(5,1081)
1081 FORMAT(1HO///5X,'PLEASE ENTER BEGINNING YEAR AND JULIAN DAY1/)
READ(5,*) BEGYR.BEGDA *
WRITE(5,1083)
1083 FORMAT(1HO/5X,'NOW ENTER ENDING YEAR AND JULIAN DAY'/)
READ(5,*) ENDYR.ENDDA
C
C
NRECR=0
NRECW=0
ISTART=0
IEND=0
169
-------
100 CONTINUE
READ(4,1100,END=300) ALPHA,YEAR,MONTH,DAY,DUR.IDUM,
(LOAD(I),I=1,NOSYS)
1100 FORMAT(A4,I6,4I3,2E14.5)
NRECR=NRECR+1
IF(ISTART.EQ.l) GO TO 105
IF(YEAR.GE.BEGYR.AND.DAY.GE.BEGDA) ISTART=1
IF(ISTART.NE.l) GO TO 100
105 CONTINUE
IF(YEAR.LT.ENDYR) GO TO 110
IF(DAY.GE.ENDDA) IEND=1
110 CONTINUE
DO 120 K=1,NOWK
DO 115 I=1,NOSYS
INLOAD(I)=LOAD(I)*FACTOR(I)*ACRES(K)
IF(LOAD(I).LE.0.00005) INLOAD(I)=0.0
115 CONTINUE
WRITE(6,1200) ALPHA,YEAR,MONTH,DAY,DUR,IWK(K),
(INLOAD(I),I=1,NOSYS)
1200 FORMAT(1X,A4,I6,4I3,3E14.5/5E14.5/5E14.5)
120 CONTINUE
NRECW=NRECW+1
IF(IEND.EQ.l) GO TO 300
GO TO 100
300 CONTINUE
WRITE(5,1110) NRECR,NRECW,NOWK
WRITE(5,1120)
1110 FORMAT(1H1///////////////20X,'PROCESSING COMPLETE'/////
15X.I5,' UNIT LOADS READ'/
15X.I5,' SETS OF LOADS WRITTEN FOR EACH OF',13,' SEGMENTS'/
/////20X,1FORMAT IS 23X.3E14.5/5E14.5/5E14.5'/)
1120 FORMAT(1HO//20X,'TO CONVERT THESE LOADS TO WASP INPUT FORMAT,'/
20X,'RUN "DAILYCVT" USING INTERMEDIATE FILE "WASPLD.DAT"'/)
STOP
END
170
-------
Appendix 3.9 Listing of USGSCVT
C*******************A********************************************************
C
C PROGRAM USGSCVT
C
C LAST REVISED 03/18/82
C****************************************************************************
C
C CONVERTS A USGS FLOW FILE TO WASP "DAILY" FORMAT
C
C****************************************************************************
C
VIRTUAL IQ(10),JQ(10),QT(10,1850),A(20)
C
OPEN(UNIT=1,NAME='CSU.DATI,TYPE='OLD')
OPEN(UNIT=2,NAME='WASPFL.DAT',TYPE='NEW')
C
WRITE(5,7001)
7001 FORMAT(1H1////////////////////////10X,'THIS PROGRAM WILL READ A',
. ' USGS FLOW FILE,'/10X,'THEN COPY AND INTERPOLATE DAILY FLOWS',
. ' FOR A WASP REACH'/)
WRITE(5,7003)
7003 FORMAT(1HO/10X,'PLEASE ENTER THE NUMBER OF SEGMENTS IN THE ',
. 'REACH'/)
READ(5,*) NSEG
WRITE(5,7005)
7005 FORMAT(1H /lOX.'NOW ENTEK A SCALE FACTOR TO MULTIPLY USGS FLOWS'/)
READ(5,*) SCALQ
C
C CALCULATE REACH PARAMETERS
C
ICHK=0
NOQ=NSEG+1
NQI=NSEG-1
XNQI=FLOAT(NQI)
XNSEG=FLOAT(NSEG)
IQOPT=1
WRITE(5,7007)
7007 FORMAT(1HO/10X,'PLEASE ENTER ADJOINING SEGMENT PAIRS,FROM UP-',
. ' TO DOWNSTREAM'/10X,'(BOUNDARIES ARE REPRESENTED BY A "O")'/)
DO 5 1=1,NOQ
WRITE(5,7009) I
7009 FORMAT(1H ,14X,'SEGMENTS IN PAIR',13,' ARE :')
READ(5,*) JQ(I),IQ(I)
5 CONTINUE
C
C READ USGS FILE FOR POSITION
C
WRITE(5,7011)
171
-------
7011 FORMAT(1HO/IOX,'WHAT YEAR AND MONTH DOES THE WASP FLOW RECORD',
. ' START?')
READ(5,*) IYF.IMF
WRITE(5,7013)
7013 FORMAT(1H ,9X,'WHAT YEAR AND MONTH DOES THE WASP FLOW RECORD',
. 'END?')
READ(5,*) IYL.IML
WRITE(5,7015)
7015 FORMATC1H /lOX.'WE WILL NOW SEARCH FOR THE FIRST STATION.')
C
10 CONTINUE
READ(1,8001,END=99) A
8001 FORMAT(20A4)
READ(1,8001,END=99) A
WRITE(5,7022) A
7022 FORMAT(1H ,20X,'STATION DESCRIPTION :'/1X,20A4/10X,
. 'IS THIS THE CORRECT STATION?'/15X,'1=YES, 2=NO, 3=QUITV)
READ(5,*) NSTA
GO TO (200,100,99) NSTA
C
99 CONTINUE
WRITE(5,7023)
7023 FORMAT(1HO//10X,'END OF RECORD ENCOUNTERED... PROGRAM ENDS.1)
STOP
C
C SEARCH FOR NEXT STATION IN FILE
100 CONTINUE
READ(1,8007,END=99) TEST,YEAR
IF(TEST.NE.O.OR.YEAR.NE.1826.) GO TO 100
READ(1,8001,END=99) A
GO TO 10
C
C FOUND CORRECT STATION
200 CONTINUE
WRITE(5,7025)
7025 FORMAT(1H /lOX.'IS THIS THE UP- OR DOWNSTREAM STATION?'/
10X,'1=UPSTREAM, 2=DOWNSTREAM'/)
READ(5,*) NQ
IF(NQ.GE.2) NQ=NOQ
C
C LOCATE FIRST YEAR
210 CONTINUE
READ(1,8007) TEST,YEAR
8007 FORMAT(F6.0,F4.0)
IF(TEST.NE.O.) GO TO 210
NYR=YEAR
IF(NYR.EQ.1826) GO TO 10
IF(NYR.LT.IYF) GO TO 210
WRITE(5,7027) NYR
7027 FORMAT(1H ,19X,'YEAR1,15,' LOCATED')
172
-------
c
C LOCATE FIRST MONTH
IF(IMF.EQ.l) GO TO 300
MM1=IMF-1
220 CONTINUE
READ(1,8009) MO.NDA
8009 FORMAT(I2,8X,I2)
READ(1,8011) (Q,N=1,NDA)
8011 FORMAT(4(8F10.0/))
IF(MO.LT.MMl) GO TO 220
WRITE(5,7029) IMF
7029 FORMAT(1H ,9X,'FILE POSITIONED AT MONTH',13)
C
C READ AND STORE FLOW FILE
C
300 CONTINUE
NDAYS=0
IM1=IMF
IM2=12
IYR=IYF
310 CONTINUE
IF(IYR.EQ.IYL) IM2=IML
DO 325 IMO=IM1,IM2
READ(1,8013) MO,NDA
8013 FORMAT(12,8X,12)
MDAY=NDAYS+1
NDAYS=NDAYS+NDA
READ(1,8015) ((QT(NQ,N)),N=MDAY,NDAYS)
8015 FORMAT(4(8F10.0/))
325 CONTINUE
IM1=1
IYR=IYR+1
IF(IYR.GT.IYL) GO TO 330
READ(1,8001,END=99) A
GO TO 310
330 CONTINUE
IYR=IYR-1
WRITE(5,7031) NQ,IMF,IYF,IM2,IYR
7031 FORMAT(1HO//10X,'FLOWS STORED FOR SEGMENT PAIR1,13,', FROM1,
. I3,'/',I4,' THROUGH1,13,V',14/)
ICHK=ICHK+1
IF(ICHK.GE.2) GO TO 400
WRITE(5,7033)
7033 FORMAT(1HO/10X,'WE WILL NOW SEARCH FOR THE SECOND STATION.')
GO TO 100
C
C INTERPOLATE FLOWS FOR NETWORK
C
400 CONTINUE
DO 450 N=1,NDAYS
173
-------
DELTQ=(QT(NOQ,N)-QT(1,N))/XNSEG
DO 425 K=2,NSEG
XK=FLOAT(K-1)
QT(K,N)=QT(1,N) + XK*DELTQ
425 CONTINUE
450 CONTINUE
C
C WRITE FLOWS IN WASP FORMAT
C
WRITE(2,3001) IQOPT,NOQ,SCALQ
3001 FORMAT(1H ,I4,I5/E10.4)
DO 500 K=1,NOQ
WRITE(2,3003) JQ(K),IQ(K),NDAYS
3003 FORMAT(1H ,14,215)
WRITE(2,3005) ((QT(K,N).FLOAT(N-l)),N=1,NDAYS)
3005 FORMAT(100(4(1X,E9.4,F9.2,1X)/))
500 CONTINUE
WRITE(5,7035)
7035 FORMAT(1HO//10X,'FLOWS SUCCESSFULLY WRITTEN TO WASP FLOW FILE.1)
STOP
END
PDS>
174
-------
APENDIX 4:
Listing of Input Data File
1
1
0
0
A: MODEL OPTIONS
TEST POND DIBENZOTHIOPHENE RUN
TIME VARIABLE SIMULATION
0 0
4 3
B: EXCHANGE COEFF
2.78
2.847E-05 107638. .164 .164 1
O.OOOE-05 107638. .082 .082 3
0 0
1 4
l.E-6
714285. 17857. 8928.5 8928.5
2 O.OOOE-05 107638. .164 .082
4
C: VOLUMES
2
2
0 0
2
2
2
2
1
0
1
18
2
1.0
0.10 0 1 0.10 1 0
1.0 0 1.0 1200
1
1.0
0.00 1
1.0 0 1.0 1200
1
1.0
2000. 1
1.0 0 1.0 1200
1
0.1
.0804 1
1
1.0
0. 1
1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0
D: FLOWS
E: BOUNDARIES
F: FORCING FUNCTIONS
G: SEGMENT PARAMETERS
1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0
175
-------
TEMPM
BACTO
OXRAD
WS
TEMPM
BACTO
OXRAD
SCOUR
TEMPM
BACTO
OXRAD
PERC
TEMPM
BACTO
OXRAD
PERC
66
EBHG1
ENHG3
KAHG2
KNHG1
EOXG3
KBWG2
KB SGI
QTBS3
DUMMY
KVOG
DUMMY
CLOUD
QUAN3
LOPT
5
TEMPN
WINDN
PHN
POHN
LIGHT
CHEM
SED
1 1
2 0
1.0 1.0
15.0DEPTH
1 .E05ACBAC
l.E-9 OCS
2.00 CMPET
15.0DEPTH
2.E07ACBAC
1.0 OCS
0.5CMPET
15.0DEPTH
2.E06ACBAC
0.0 OCS
O.OOCMPET
15.0DEPTH
2.E05ACBAC
0.0 OCS
O.OOCMPET
OO.OEBHG2
O.OEAHG1
O.OKAHG3
OO.OOKNHG2
O.OKOXG1
O.OKBWG3
5.3E-5KBSG2
0.000 KOC
O.ODUMMY
0.0 SOLG
DUMMY
4.00 LATG
0.0 XJTR
0.0
2
1.00 .000
2
1.00 .000
2
1.00 .000
2
1.00 .000
2
1.00 .000
0.002217 2:
200. 2:
00. 3000000.
0. 0.
20.
12131
6 . 5 6VE LOG 0 . OOWI NDS
l.OBIOMS 12.9BIOTM
0.01PCTWA 1.37DSPSD
2.0TOTKG .000000
0.164VELOC O.OWINDS
l.OBIOMS 50.0BIOTM
0.01PCTWA 1.37DSPSD
2.0TOTKG .000000
0.082VELOC O.OWINDS
l.OBIOMS l.OBIOTM
0.01PCTWA 1.10DSPSD
2.0TOTKG .000000
0.082VELOC O.OWINDS
l.OBIOMS 0.1BIOTM
0.01PCTWA 1.10DSPSD
2.0TOTKG .000000
O.OEBHG3 O.OOENHG1
O.OEAHG2 O.OEAHG3
O.OKBHG1 OO.OOKBHG2
O.OKNHG3 O.OEOXG1
O.OOOKOXG2 O.OOKOXG3
O.OQTBW1 2.0QTBW2
O.OKBSG3 O.OQTBS1
1.38E+05 KOW 0.0 OCB
MWTG 184.3HENRY
1.1 IE SOLG O.OEVPRG
FAC 0.1KDPG
40.0DFACG 1.19QUAN1
O.OCTRIG O.OODTOPT
1.00 5000.
1.00 5000.
1.00 5000.
1.00 5000.
1.00 5000.
0.000 3: 0.0000 4:
1350400.0 3: 2000000.0 4:
0. 0.
0.7TYPEE
15.0 POHG
0.0 PHG
O.OTYPEE
15.0 POHG
1 . 0 PHG
O.OTYPEE
15.0 POHG
PHG
O.OTYPEE
15.0 POHG
PHG
H:
O.OOENHG2
O.OKAHG1
O.OKBHG3
O.OEOXG2
O.OOKBWG1
2.0QTBW3
2.0QTBS2
0.003715DUMMY
O.OOVAPRG
OO.OOEHENG
0.732RFLAT
5.E-04QUAN2
O.OTDINT
I: TIME
1.0
6.0
8.0
3.0
8.0
6.0
4.0
8.0
6.0
4.0
8.0
6.0
CONSTANTS
0.0
0.0
0.0
0.0
5.3E-7
2.0
0.0
0.002
0.0
40.0
0.0
20.
FUNCTIONS
0.00500 J: INITIAL CONG.
2000000.0
K:
STABILITY
L: INT. PRINT CONTROL
421222324
M: INTEGRATION CONTROL
1.0 000.0
176
-------
CHEM
1
2
3
4
5
6
7
8
1
1
1
1
1
1
1
1
0.25
1. 0.25 800.0 0.5 6400.
CHEM1 CHEMS CHEMB DISSF SEDF MASS BMASS
2
2
2
2
2
2
2
2
3 4
3 4
3 4
3 4
3 4
3 4
3 4
3 4
JED DEPTH TOTKL PHOTKL HYDRKL BIOLKL OXIDKL VOLKL
4
4
4
4
4
4
4
4
4
4
1
1
2
3
4
6
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
4
7
7
8
8
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
0.
3
0.
3
0.
3
0.
3
0.
3
0.
3
0.
3
0.
3
0.
3
0.
3
3 4
3 4
3 4
3 4
3 4
3 4
N: DISPLA'
0.01
4
0.1
4
0.5
4
10.0
4
10.0
4
10.0
4
100.
4
10.
4
100.
4
10.
4
N:DISPLAY TABL
0. 1500000.0
177
-------
1
3 1
0. 4000000.0
234
1 2
0. 10.0
1
3 2
0. 1.0
234
4 3
0. 1.0
1234
4 3
0. 0.1
1234
4 3
0. .01
1234
4 3
0. .001
1234
4 6
0. .05
1234
1 8
0.0 0.01
1
END OF N CARD GROUP
*US GOVERNMENT PRINTING OFFICE 19B3 - 659-095/1908 178
------- |