-------
TECHNICAL REPORT DATA
_ (Please rrad Imitruerioni on the rerene before completing
4.
7.
9.
HtPORT NO. 2
EPA/600/3-86/057
TITLE AND SUBTITLE
GETS, A SIMULATION MODEL FOR DYNAMIC BIOAC
OF NONPOLAR ORGANICS BY GILL EXCHANGE: A U
AUTHOR(S)
Luis A. Suarez, M. Craig Barber, and Ray R
PERFORMING ORGANIZATION NAME AND ADDRESS
Environmental Research Laboratory
U.S. Environmental Protection Agency
Athens GA 30613
12. SPONSORING AGENCY NAME AND ADDRESS
Environmental Research Laboratory - Athens
Office of Research and Development
U.S. Environmental Protection Agency
Athens, GA 30613
3. RECIPIENT'S ACCESS.ON- NO.
PB37 1327 9 I/AS
5. REPORT DATE
December 1986
_UMULATIO1J 6 PERFORMING ORGANIZATION CODE
ser's Guide
8. PERFORMING ORGANIZATION REPORT
. Lassiter
10. PROGRAM ELEMENT NO.
ACUL1A
11. CONTRACT/GRANT NO.
NO.
•
13. TYPE OF RE PORT AND PERIOD COVERED
, GA
14. SPONSORING AGENCY CODE
EPA/600/01
15. SUPPLEMENTARY NOTES
16. ABSTRACT
A Fortran program that estimates the absorption and depuration of a chemical
across fish gills is described. The program is based on a set- of diffusion and
forced convection differential equations. Gill morphometric parameters are computed
by the program via its own internal database. This database spans approximately
20 species. The program requires that the user input 12 relatively easily obtain-
able parameters.
17
a.
KEY WORDS AND DOCUMENT ANALYSIS
DESCRIPTORS
13
DISTRIBUTION STATEMENT
RELEASE TO PUBLIC
b. IDENTIFIERS/OPEN ENDED TERMS C. COSATI Field/Group
19. SECURITY CLASS (This Report 1 21. NO. OF PAGES
UNCLASSIFIED 54
20. SECURITY CLASS (This page) 22. PRICE
UNCLASSIFIED
EPA Form 2220-1 (9-73)
-------
DISCLAIMER
The information in this document has been funded wholly or in part by the
United States Environmental Protection Agency. It has been subject to the
Agency's peer and administrative review, and it has been approved for publica-
tion as an EPA document. Mention of trade names or commercial products does
not constitute endorsement or recommendation for use by the U.S. Environmental
Protection Agency.
11
-------
FOREWORD
As environmental controls become more expensive and penalties for judgment
errors become more severe, environmental management requires more precise
assessment tools based on greater knowledge of relevant phenomena. As part of
this Laboratory's research on the occurrence, movement, transformation, impact,
and control of environmental contaminants, the Biology Branch conducts research
to predict the rate, extent, and products of biological processes that control
pollutant fate in soil and water and develops methods for forecasting ecosystem
level effects suitable for exposure and risk assessment.
The Athens Environmental Research Laboratory, along with Office of Research
and Development laboratories in Corvallis, OR, Duluth, MN, and Gulf Breeze, FL,
is developing a system to assess ecological risks from exposure to environmental
toxicants. This system will provide the capability to assess risk associated
with different uses of chemicals resulting from various options for regulating
pesticides and toxic chemicals to protect organisms in their natural environment.
This report describes a component of that system, the Gill Exchange: of Toxic
Substances model.
Rosemarie C. Russo
Director
Environmental Research Laboratory
Athens, GA
ill
-------
ABSl^ACT
A FORTRAN program that estimates the absorption and depuration of a
chemical across fish gills is described. The program is based on the set of
diffusion and forced convection differential equations. Gill morphometric
parameters are computed by the program via its own internal database. This
database spans approximately 20 species. The program requires that the user
input 12 relatively easily obtainable parameters.
This report covers a period from October 1985 to September 1986, and work
was completed as of September 1986.
IV
-------
INTRODUCTION
When fish are exposed to dissolved organic chemicals, such substances are
accumulated within the fish by diffusive transport across the fish's gills.
During acute exposures, chenical exchange across the gill is the fish's prevail-
ing route of exposure. During chronic exposure in the environment, exposure
via contaminated food can become increasingly important or even greatly exceed
direct gill uptake. Nevertheless gill exchange still reciprocally controls the
fish's body concentrations by determining the fish's excretory rates of the
chemical.
Ultimate levels of organic toxicants in aquatic organisms can be explained,
in large measure, as thermodynamic partitioning between toxicant in the aqueous
environment and hydrophobic components of the organisms (primarily lipid).
Reports of exceptions to this simple rule are numerous, however, particularly
for chemicals having high partition coefficients. The frequency with which
these exceptions have been noted has often led to questions of the reliability
and utility of the relationship between bioconcentration factors (BCF) and
thermodynamic partitioning. Based on our review of reported results for both
laboratory and field investigations of BCF, uptake, and depuration, we have
concluded that such results are both expected and explainable on an essentially
thermodynamic (but not equilibrium) basis. Furthermore, we have developed a
thermodynamically-based kinetic model called GETS, which predicts whole-body
burdens and concentrations of organic chemicals in fish.
-------
GETS (Gill Exchange of Toxic Substances) is a FORTRAN simulation model
that predicts a fish's whole body concentration (i.e., ppm = jjg chemical (g
live weight fish)"1) of a nonmetabolized, organic chemical which is exchanged
across a fish's gill by thermodynamic concentration gradients. lese concen-
tration dynamics are calculated algebraically after simulating a fish's total
body burden of the chemical, Bf = pg chemical fish~1, and its live weight,
W = g live weight fish"1. The temporal dynamics of these two quantities are
generated by the system of coupled differential equations
dBf
= S*kw* (Cw - (PL*KL)"1Cf) (1)
dt
dW
— = gamma * W (2)
dt
where S is the fish's total gill area (i.e., cm2), kw is the chemical mass
conductance through the interlamellar gill water (i.e., cm/day), Cw is the
chemical's environmental concentration (i.e., ppm = mg 1~1), PL is the fish's
lipid content as a fraction of its total live weight, K.L is a lipid to water
partition coefficient (i.e., (mole chemical/g lipid)/(mole chemical/g water)),
Cf = Bf/W is the fish's whole body concentration of the chemical, and gamma is
the fish's specific growth rate (i.e., g/g/day). A full description of the
theoretical basis and development of these equations is presented by Barber et
al. (1986).
GETS was developed and intended for use on a VAX 11/785 computer and is
coded in VAX FORTRAN V4 3-145. A complete documented listing of GETS is
presented in Appendix A.
-------
USER INPUT
To use GETS, a user must specify twelve relatively straight-forward
input parameters. These are:
1. the scientific name of the fish to be analyzed (e.g., Salmo gairdneri)
2. the fish's family (e. g. Salmonidae)
3. the fish life form (i.e., freshwater or marine)
4. the chemical's molecular weight
5. the chemical's log Kow (e.g. logP)
6. the fish's initial live weight (g)
7. the fish's lipid content as a proportion of its total body weight
(g lipld/g live weight)
8. the fish's specific growth rate (i.e., g/g/day)
9. the fish's initial whole body concentration of the chemical
(i.e., pg (g live weight fish)~^)
10. the chemical's environmental concentration as ppm = mg 1~^
11. a kinetic adjustment factor that is discussed below (unitless)
12. the length of the desired simulation in days
All of these values must be specified by the user and supplied to GETS
via a user-defined data file, e.g., GKTS.DAT. The name of this data file is
specified to GETS interactively. Within this user-defined data file, each of
the above input values is defined on a separate card image or record with a
specific leading character code which is used to check that the user input
sequence was correct. The user's input must be specified in the order listed
above and is read by GETS in FORTRAN-free format. See Table 1 for an example
input file that could be used to analyze the bioaccumulation of a tetrachloro-
biphenyl by rainbow trout.
-------
Table 1. Example of user input to GETS.
(Note: Quotation marks (i.e., single quotes or apostrophes) are significant.)
Record Number
1
2
3
4
5
6
7
8
9
10
11
12
Required Code
•spplab"
'famlab'
•liflab*
•molwt'
•log?1
•wt1
•PL'
'gamma'
'Cfish'
'Cwater'
•adjust1
1 TEND'
Data Value
'Salmo gairdneri '
"Salmonidae'
'freshwater'
292
5.8
200
0.08
0.0015
0.0
0.
0.1
1880
-------
The fish's species name, family, and life form are used to assign the gill
morphometric parameters that GETS's subroutine, GILRAT, uses to estimate the
fish's net exchange rate (S*kw). To make these assignments, the data file
MORPHO.DAT is read by the subroutine RDMORPH. This data file (Appendix B),
which is supplied with GETS, contains the coefficients and exponents of the
allometric functions arranged by species,
S = total gill area, cm2 = s1 W s2 and
RHO = # lamellae (mm gill filament)'1 = p1 Wp2
where W is the fish's live weight (g). As MORPHO.DAT is read, five geometric
means are calculated by GETS using subroutine LOGSUM for each of the values,
s1, s2, p1, and 2. For example, GETS calculates a geometric mean for s1,
first using all the data reported in MORPHO.DAT. Concurrently, GETS also
calculates geometric means for s1, using only data records which have the same
life form, family, genus, and species of the fish designated by the user.
GETS then attempts to assign s1, s2, -1, and p2 using first the species
geometric means. If, however, the species is not represented in MORPHO.DAT,
GETS then tries to assign the geometric means that might have been calculated
for the same genus as the desired species. In like fashion, if the genus is
not found in MORPHO.DAT, geometric means for the fish's family are assigned.
If these assignments are not possible, the geometric means for the same life
form (i.e., freshwater vs. marine) as the desired fish are used.
GETS is parameterized for a particular chemical of concern by specifying
the chemical's molecular weight and log Kow. The chemical's molecular weight
is used to estimate its aqueous diffusivity which is needed to estimate the
conductance, kw. The chemical's log Kow is used in the calculation of the
fish's excretion rate, k2 = S*kw*(PL*KL)~1.
-------
The physical characteristics of the fish that are required as input are
the fish's live weight (ti), its lipid fraction (PL) and its specific growth
rate (gaouaal. The specific growth rate, gamma, specified as input should be
nonnegative. Although negative growth is exhibited by organisms under stress
in natural ecosystems, it is not known whether fish that are losing weight
significantly alter their gill norphcwetry. Therefore, although negative
growth rates, per se, can be input to GETS, the resulting simulations, which
depend on gill morphoroetry, may not be meaningful.
Because the user can specify any initial whole body concentration, Cf, of
the chemical in the fish as well as any environmental concentration, Cw, the
user can analyze either absolute uptake (i.e., Cf = O and Cw jt o), pure depura-
tion (i.e., Cf j4 O and Cw = O) or any scenario between these two extremes.
The user-supplied adjustment factor, adjust, is used to calibrate the mass
conductance of the chemical that is estimated by GILRAT. In general, the value
specified for this parameter should be in the range of 0.1 > adjust > 0.05
since the estimated conductance, kw, is generally between ten and twenty times
higher than laboratory studies would indicate (see Barber et al. 1986).
GETS OUTPUT
Three files or logical units receive output from GETS. These are
userfile.OUT, userfile.PLX, and the logical unit for the terminal itself. The
terminal output is identical to the output written to userfile.OUT. This output
includes a summary of all the user's input variables as well as the fish's live
weight (W), total body burden (Bf), and total body concentration (Cf). If the
user specifies TEND < 500.0, W, Cf, and Bf are output daily, otherwise these
model results are output only every (TEND/500) day.
-------
Appendix C presents a sample user session of GETS which includes both input
file construction via the text editor EOT and model execution and output.
The file, userfile.PLX, is an output generated by subroutine PLX010 and
is a CALCOMP" plot file. Figure 1 shows this file for the simulation presented
in Appendix C.
SUMMARY OF GETS SUBROUTINES
Program MAIN:
Besides directing model input, output, and subroutine calls, MAIN also
performs an Euler integration of equations (1) and (2). During the development
of GETS, fifth order Runge-Kutta integration of these equations were also
performed. However, since there were no significant differences between Euler
and Runge-Kutta integrations, the simple Euler method was coded herein.
Subroutine DBDT:
This subroutine defines equation (1) for the Euler quadrature.
Subroutine DWDT:
This subroutine defines equation (2) for the Euler quadrature. The user
should note that DWDT actually can define the fish's growth dynamics either by
equation (2) or by a more mechanistic formulation that is outlined by Barber
et al. (1986). The later formulation, however, can be accessed only when
analyzing the bioaccumulation of salmonids (i.e., 'famlab' = 'Salmonidae') with
the added input designation, 'gamiia = -999.0. This simulation option will be
expanded later to other fish families.
-------
Figure i. pcb2233.dat: Gill Exchange of Toxic Substances
0.24-1
0.20-
g 0.1GH
ex
a
S-,
0.12-
0.08-
0 04 -i
0.00-
20 40 CO 80 100 120 140
Days
-------
Subroutine RDMORH:
This subroutine reads the gill morphometric coefficients and exponents
from the data file MORPHO.DAT.
Subroutine LOGSUM:
This subroutine accumulates the logarithmic sums of the morphometric
parameters that are read from MORPHO.DAT. These sums are then used to calculate
geometric means of those parameters.
Subroutine GILRAT:
This subroutine calculates the mass conductance, kw, of the chemical
through the interlamellar water as described in Barber et al. (1986).
Subroutine PHYSIO:
This subroutine calculates feeding and metabolic rates for simulating fish
growth when gamma = -999.0. See the discussion of DWDT above.
Subroutine DOFILE:
This subroutine standardizes user supplied input. For example, all
character data are transliterated to lower case by subroutine UP2LO.
Subroutine USRERR: *
This subroutine identifies errors which GETS encountered regarding the
user's input file.
Subroutine INIVAR:
This subroutine initializes the character codes which must accompany the
user's input values.
Subroutine PLX010:
This subroutine generates CALCOMP"1 plot files.
-------
Subroutine UP2LO:
See DOFILE above.
Function LENSTR:
This function determines the length of the nonblank segment of character
variables. This function is used by GETS prior to certain character comparisons
and output sequences.
Subroutine C2byte:
This subroutine translates character data to bytes. This subroutine is
system dependent and is used for CALCOMP1" plot generated on the Athens ERL
VAX 11/785.
Subroutine NAMES:
This subroutine extracts the name of the user's input file to define a
model output file and a CALCOMP™ plot file.
Subroutine SCALE:
This subroutine determines aesthetically pleasing axis scaling
parameters, e.g., adjusted minimum and increment per tic mark.
Subroutine KDEC:
This subroutine determines the minimum number of decimal places required
to uniquely identify the axis' tic marks.
Function LASTNZ:
This integer function determines the position of the first nonzero character
of a record (record scanned from right to left). This function is used by KDEC.
10
-------
REFERENCE
Barber, M. Craig, L.A. Suarez, and Ray R. Lassiter. 1986. Kinetic exchange of
nonpolar organic pollutants by fish. Environ. Toxicol. Chem. (submitted)
11
-------
Appendix A. Documented source listing of GETS
c program GETS
c
c\be gin
c program: GETS.
c
c
c
c
c
c
c
c
c
version: 24-SE
P
r
urpos
equir
-
—
—
e : simul
ed files
par amet
morpho.
output
.f
f
P-l
ate
•
•
er
dat
fil
936 1
toxi
file
2:54:46
cant accumulation
Cinput) - default
via gill exchange
: GETS. dat
Cinput)
a (name depends on the
input file name)
references:
B
ar ber
. C. , L.
Suarez ,
and R. Lassiter.
1986.
c\end
c
c
c
c
general
declarat
ion
s .
integer stdlen, maxcol
parameter (stdlen*80» maxcol»132)
integer Jin, Joutt jplx
logical done
c
c file io declarations
c
character $(stdlen) scrfil
c
c data io declarations
c
character#(stdlen) infil, outfil, plxfil
c
integer kstr» kvar» ktotal
parameter (kstr=03» kvar*09f ktotal=kstr+kvar)
characterft(stdlon) usrstrCkstr), idpara(ktotal)
character*(stdlen) spplab» famlab» liflab
real usrvar(kvar)
real moluit* logp» umt» uplfishi c a m m a f cfish
real ciuater, adjust* tend
c
common / g3i!0s / usrstr* idpara
common / g3i!0v / usrvar
c
equivalence (usrstr(l)» spplab)* (usrstr(2)i famlab)
equivalence (usrstr(3)» liflab)
equivalence (usrvar(Ol), moluit). (usrvar(02)» logp)
equivalence (usrvar(03)t uu/t)t (usrvar(04), uplfish)
equivalence (usrvar(OS)t gamma)» (usrvar(06)i cfish)
equivalence (usrvar(07)» ouster), (usrvar(08), adjust)
equivalence (usrvar(09)i tend)
c
integer stdin» stdout, stderr
common / g3illv / stdint stdoutt stderr
c
c model declarations
c
charact«r*(stdlen) family» speciesi s»nus» form
charact9r*(stdlen) genlab
Al
-------
real
real
real
data
real
data
real
real
common/ coeff/
cvar(3) , evarC3)
cs» es t crho« erho
slC5), s2(5), rholC5)f rho2C5)
sit s 2 f rhol, r h o 2 / 20 # O.O/
nslCS), ns2C5), nrholCS), nrho2C5)
nsl, ns2f nrholt n r h o 2 / 20 * O.O/
real
common/
real
common/
integer
masses/
fluxes/
nit n2
d t It koui t cf
phi, betalt beta2,
plfisht kit
phit betalt
plfish, kit
iutt g^axt 9t
«Jtt gmaxt gt
ingest ,
inges11
evac t
evac t
beta3 t rouf
cut
beta3 t mu,
cui
ifood
ifood
assim t egest t respi
assim, egest, respi
s, ktu t
beta2t
s, kuit
imaxt
imaxt
parameter Cnl=04, n2=01)
real yl(nl), ylprime(nl)
real klf k2t gemmaO
integer division
real del
integer iprint
y2Cn2)t y2primeCn2)
c
c
c
plotting declarations
character *Cstdlen)
character *(stdlan)
character*Cstdlen)
ylabel
toxlabt uilabelt hlabelt clabelt tlabel
labOlt Iab02t Iab03t Iab04
9
9
9
9
9
9
9
9
9
9
9
9
1
1
1
1
1
1
1
1
1
2
2
2
1
2
0
0
30
40
50
6
7
3
9
0
1
2
0
0
0
0
0
0
0
integer
p ar ame t
real
real
integer
format
format
form
form
*
form
form
form
at
at
are
at
at
at
format
*
«
)|:
t'f
*
.*.
*
•f
**.
form
at
format
form
at
format
,;,
*
maxpoints
er Cm axpoints=503)
tt line Cmaxpoints) , lutline
cflineCmaxpoints)
ny , nu
('$', 'parameter file name:
Ca)
C/' ',
C/' 't
miss i
C' 't
C' ',
(' 't
C' 't
9 9
f
9 9
9 9
1
9 9
9 9
9 9
9 9
f
9 9
9 9
c* '!
C'
C* *t
C/' 't
• r
9 9
"111 order of input
'??? unexpected end
ng')
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
'USER:
at Ipgl
d ay
f6.0, 5
'MODEL
'MODEL
•MODEL
input file:
output f ile :
plot file:
molwt :
logp:
fishid:
iut :
plfish:
gamm a :
adjust:
cfish:
cuiater :
tend :
1.3)
Ult
Clx, Ipgll. 3)
: kl
: k2
: gamma
A2
Cmaxpoints)
parameters incorrect')
0
9
9
9
t
* t
9
*f
9
f
* »
9
9
9
f
9
S
bf
)
:
:
*
f file
a)
a)
a)
Ipgll.
Ipgll.
a/
Ipgll.
Ipgll.
Ipgll.
Ipgll.
logll.
Ipgll.
Ipgll.
•tlpgl
'.logl
Mpgl
t some parameters 't
3/
3/
3, Ix, a/
3/
3/
3/
3t Ix, a/
3t Ix, a/
3t Ix, a)
cf ')
1.3/
1.3/
1.3)
-------
call inivar (done)
c
c set default input and output files and other options
outfil = 'gets.out'
plxfil = 'gets.plx'
spplab = 'fish'
toxlab = 'toxicant'
tlabel = 'days'
clabel = 'ppm'
wlabel = 'live u/eight, 5'
hlabel = 'gill exchange model'
infil = 'gets.dat'
c
c get input file name
c
write (stderr, 9110)
read (stdin, 9120) scrfil
if ClenstrCscrfil,stdlen) .gt. 0) infil = scrfil
c
c generate output file names
c
call names Cinfil, outfil, plxfil, hlabel)
c
Jin = 01
open Cunit=Jin,file=infil,status5'old',readonly)
c
c read and echo all info from file? close file when done
c
call dofile Cjin, ierror)
uit - unit
close Cunit=jin)
if (ierror .ne. 0) then
if Cierror .eq. 100) write C stderr, 9130)
if Cierror .eq. 101) write (stderr,9140)
stop
endif
c
c open output file
c
Jout = 02
open (unit»Jout,file*outfil,status*'nem',carriagecontrol»'list')
c
nn * lenstrCinfil ,stdlen)
turite (stderr,9150) infil(l:nn)
nn * lenstr(outfil»stdlen)
write (stderr,9160) outfil(l:nn)
nn * lenstrCplxfilistdlen)
write (stderr, 9170) plxfilCltnn)
nn * lenstr (spplab, stdlen)
nw « lenstr (wlabel, stdlen)
nc * lenstr (clabal, stdlen)
nt = lenstr (tlabel, stdlen)
write (stderr,9180) molwt, logp, spplab ( 1 : nn) , uit, uilabel (1 :nui) ,
if plfish, gamma, adjust, cfish, clabeld : nc),
if cuater, clabeld: nc), tend, tlabel(l:nt)
c
c put header info in output file "Jout'1}
c
nn « lanstrCinfil,stdlen)
A3
-------
uirite Cjout,9150) infilCltnn)
nn = lenstrCoutfil,stdlen)
write Cjout,9160) outfilCltnn)
nn = lenstrCplxfil,stdlen)
uirite CJout,9170) clxfilCltnn)
nn « lenstr Cspplab, stdlen)
nw « lanstr Cuilabel, stdlen)
nc = lenstr Cclabel, stdlen)
nt = lenstr (tlabel, stdlen)
uirite CJout,9180) molut, logp, spplab (1: nn) , u/t, uilabelC 1: nui) ,
v Plfish, gamma, adjust, cfish, clabelC1: nc)»
$ cwater, clabelCl:nc), tend, tlabelCi:nt)
c
c read gill morphometric regressions and accumulate sums to
c calculate geometric means of the pouier function coefficients
c and exponents
c
input = 10
open Cunit=input,file=*morpho.dat'»status='old',readonly)
rewind input
110 cont inue
call rdmorp (input,species,genus,family,form,cvar,evar,done)
if (.not. done) then
cs = cvarCl)
es » evar CD
crho = cv arC 2)
erho * evar(2)
c
c calculate sums for species, genus, family, life form, and
c all fish
c
i * 1
nn * 40
if CspeciesCltnn) .eq. spplabCUnn)) call logsum C
* nslCi), slCi), cs,
* ns2Ci), s2Ci), es,
* nrholCi), rholCi), crho,
# nrho2Ci), rho2Ci), erho)
c
i = 2
nn = indsxCspecies, ' ')
genlab = speciesC1:nn)
if (genusCi:nn) .eq. genlabC1:nn)) call logsum C
^ nslCi), sl;: nrho2Ci)» rho2Ci), erho)
c
i » 3
nn » 20
if Cfamily(l!nn) .eq. famlabCl:nn)) call logsum C
s;< nslCi), sl(i), cs,
tf ns2U), s2Ci), es,
* nrholCi)* rholCi), crho,
% nrho2Ci)t rho2Ci)» erho)
c
i - A
nn « 20
if CformCltnn) .tq. liflab<1:nn)) call logsum C
,;, nslCi), slCi), cs,
A4
-------
go
ondif
close
ns2Ci), s2Ci)t es,
nrho!Ci)» rhol(i), crhot
nrho2Ci)» rho2(i)» erho)
i = 5
call logsum C
nslCi), slCi), cst
ns2Ci), s2Ci), es,
nrholCi)» rholCi), crho»
nrho2(i)i rho2Ci)» erho)
to 110
c calculate
c
do 130
if
if
if
if
Cunit=input)
geometric means end set gill morphometric parameters
ii = 5,
CnslCii)
Cns2Cii)
1, -1
.gt. 0.0)
.gt. 0.0)
130 cont inue
nn = lenstr
CnrholCii) .St
Cnrho2Cii) .gt
cs = 10.0 ft* CslCii) / nslCii))
es * io.O ft* Cs2Cii) / ns2Cii))
0.0) crho = 10.0 ft* CrholCii) / nrholCii))
0.0) erho » -10.0 ft* Crho2Cii) / nrho2Cii))
C spplab,
labOl »
Iab02 =
Iab03 =
Ci:
Ci:
(1!
Cl!
Ci:
(1!
Cl!
Cl!
inn) »
inn),
inn) ,
Inn) t
inn),
inn) ,
inn) ,
i nn) t
cs
cs
es
es
crho
crho
erho
• rho
c
c
c
c
c
c
c
c
c
c
•MODEL: • // sppiabci:nn) // • si:
•MODEL: ' // spplabCi:nn) // ' s2:
'MODEL: ' // spplabCi:nn) // ' rhol:
Iab04 = 'MODEL: ' // spplabCltnn) // ' rho2:
nn * lenstrClabOl»stdlen)
uiriteCstderr, 9190) labOlCl
uiriteCjout, 9190) labOlCl
nn » lenstrClab02,stdlen)
uiriteCstderr, 9190) lab02Cl
uiriteCjout, 9190) lab02Cl
nn = Ienstrdab03,stdlen)
uiriteCstderr, 9190) lab03Cl
uiriteCjout, 9190) lab03Cl
nn = 1 enstrC1abO4,stdlen)
uiriteCstderr, 9190) lab04Cl
turiteCjout, 9190) lab04Cl
set state variables
x = time Cin days)
ylCl) » body weight of fish;
ylC2) = mass of food in stomach;
ylC3) s mass of food in intestine?
y 1 C 4 ) * integrated specific grou/th rate;
y2Cl) * mass of toxicant in fish due to gill exchange;
xmin « 0.0
ifCtend .le. floatCmaxpoints-3)) then
iprint = 1
else
iprint » 1 + intCtend / f loatC-naxpoints-3))
•-.dif
, * xmin
ylCl) « ""t
if Cgamffa .It. -990.0) then
call physio
:;< Cfamlab, uit, gmax, imax, phi, betal, beta2, beta3, mu>
A5
-------
VlC2) = 0.01 * c.max
ylC3) = 0.01 * imax
yi(4) = o.oo
endif
cui = cuiater
cf = cfish
y2(l) = Cf * -jit
c
c set plotting variables
c
nxy = 1
ttline(nxy) = xmin
uitline(nxy) = yl(l)
cfline(nxy) = y2(l) / yl(l)
c
c set constant model parameters and simulation limits
c common/ coaff/ phi, betal, beta2, beta3, mu,
c * plfish, Kl, s, km, cm
c
if (uplfish .gt. 0.0) then
plfish = uplfisr
else
plfish = 0.05
endif
k o ui * 10.0 # # 1 o g p
kl = 1.528 % koui #* 0.973
kl = 0.0
k2 = 0.0
jend = ifix(tend)
c
uirite (stderr,9200)
uirite (jout, 9200)
uirite (stdarr,9210) x, yl(l), y2(l), cf
uirite (Jout, 9210) x, yl(l). y2(l), cf
c
do 150 jj = 1, Jend
xj = float(jj)
uitO » yl(l)
c
c calculate feeding and metabolic rates.
c
if (gamma .It. -990.0) then
call physio
* (famlab, uitO, gmax, imax, phi, betal, beta2, beta3, mu)
endif
c
c calculate gill morpheme tries
c
S * CS * UitO ** 8S
rho = crho >:« uitO *« erho
d = 0.1030 * rho ** (-1.1416)
1 * 0.0187 * uitO ** 0.208
c calculate exchange rates, first convert mass conductance, kui « cm/ sec,
c to kui « cm/ day. calculate first order uptake and elimination rates, kl
c and k2, respectively, utith any desired adjustment (see Barber et al. 1976)
call gilrat(moluit, s, d, 1, kui)
kui • adjust 4 36400*0 # km
kl « kl + s * km / uitO
A6
-------
c
c
c
del * ylprimeCl)
del * ylprimeC2)
del * ylprlmeC3)
del * ylprimeC4)
y2, y2prime)
yZprimeC 1)
+ del
k2 * k2 + s * k« / CuitO * plfish * kl)
integrate toxicokinetic model
division * 100
del = 1.0 / floatCdivision)
do 140 idelta « 1, division
call dtudtCnl, x, yl , ylprime)
ylCl) = ylCl)
ylC2) = ylC2)
ylC3) = ylC3)
ylC4) = ylC4)
call dbdtCn2,
y2Cl) = y2Cl)
140 continue
if CmodCJJ,iprint)
cf > y2Cl) / ylCl)
write Cstderr,9210)
write CJout, 9210)
nxy = nxy + 1
nn ' min (nxy, maxooints-3)
ttlineCnn) a XJ
uitlineCnn) » ylCl)
cflinsCnn) * cf
endif
150 continue
kl = kl/ floatCJend)
k2 « k2/ floatCJend)
gammaO = y1(4)
gammaO = gammaO/ floatCJend)
•eq. 0) then
xj,
xj,
yici),
ylCl),
y2Cl),
y2Cl),
Ult
s
i
integral
bf
cf
cf
gammaO
c
c
c
c
c
c
output summary parameters to file "jout";
(arite Cstderri 9220) kl, k2, gammaO
uirite CJout, 9220) kl, k2, gammaO
close Cunit=jout)
plot
Jolx = 03
open Cunit*Jplx»filesplxfil,status*'ne«')
call plots CO.O,0.0,Jplx)
call style C012)
call darkns CO.012,2)
call script CO.80)
plot growth dynamics
call plxOlO Ctlabal, urlabel, hlabel,
* ttline, a/tline, nxy)
plot Cfish dynamics predicted by gill txchangt
labOl * 'c
-------
c * ttline, cfline, nxy)
999 continue
call plot CO.0,0.0,999)
stop
c
end
A8
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
r
C
c
c
c
c
c
subroutine du»dt(n, x, y, yprime)
This subroutine formulates the differential equations required to
modal fish's grouith, i.e.,
dWt = INGEST - EGEST - RESPI = gamma * uit
dt
dG » INGEST - EVAC
dt
dl = EVAC - ASSIM - EGEST
dt
dGammaO = (dW/dt) / Wt
dt
Input arguments:
-n = number of differential equations;
-x = time (days);
-y(l) = body u/eight of fish(g live);
-y(2) s mass of food in stom3ch(g)J
-y(3) = mass of food in intestine(g);
-y(A) = integrated specific grou/th rate;
Output arguments!
-yprime(l) = dWT/dt (see above)
-yprima(2) * dG /dt
-yprime(3) = dl /dt
-yprime(A) = dGammaO / dt
integer stdlen, maxcol
parameter (stdlen=90, maxcol=132)
integer n
real yCn),
real
common/ coeff/
real
common/
real
masses/
yprimeCn)» x
phi» betal, beta2, beta3,
olfish, kl, s? ku», cui
phi, betal, beta2,
plfish, kl, s, km,
uit, gmax , g , imax ,
ID 11 gmax, g, imax,
beta3,
cui
i
i
mu,
mu,
ingest, evac, assim, egest, reapi
•»«* -.,;,--,, -. , , _.,__.. ,
common/ fluxes/ ingest, evac, assim, egest, respi
integer kstr, kvar, ktotal
parameter Ckstr»03, kvar*C9, ktotalskstr+kvar)
character *(stdlen) usrstr(kstr), idpara(ktotal)
character::i(stdlen) spplab, famlzb, liflab
real usrvar(kvar)
real molut, logo, uuit, uplfish, gamma,
real ciuater, adjust, tend
cfish
common
common
g3i!0s
g3i!0v
usrstr,
usrvar
idpara
equivalence (usrstr(l), spplab),
equivalence Cusrstr(3), liflab)
equivalence (usrvar(Ol), molu/t),
equivalence Cusrvar(03), uu/t)t
A9
(usrstr(2), famlab)
(usrvar(02)» logp)
(usrvarC04)» uplfiah)
-------
equivalence CusrvarCOS), gstrma), (usrvarC06), cfish)
equivalence Cusrvar(07)f crater), CusrvarC09)f adjust)
equivalence CusrvarC09), tend)
integer stdin, stdcut, stderr
common / g3illv / stdin, stdoutt stderr
»t = yCl)
g = maxCO.OOOl, y(2))
i = maxCO.OOOl, yC3))
if (gamma .It. -990.0) then
ingest = phi * C g m a x - g )
evac = min Cbetal * sqrtCg)t imax - i)
assim = betaZ * sqrt(i)
egest = beta3 « sqrt(i)
r Q s p i = m u * w t
yprimeCl) = ingest - egest - raspi
yprimeC2) » ingest - evac
yprimeC3) = evac - assim - egest
yprimeCO = yprimeCl) / at ! gammaO
else
yppimeCl) = gamma * uit
yprimeC2) * 0.00
yprimeC3) = 0.00
yprimeCl) = 0.00
endif
return
end
AID
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
subroutine dbdtCn, x, y, yprime)
This subroutine formulates the differential -snuation that describes
the whole body burden of a chemical in fish due to gill exchange which
is modeled by diffusive transport, i.e.,
dSf =
dt
dBf =
dt
s $ k ui
CCw - Ca),
s*kw # CCw - Cf/CPl*KD),
Input arguments:
-n = number of differential equations?
-x * time (days);
-yCl) = mass of toxicant in fish Cmicro g ) J
Output arguments:
-yprimeCD = d3f/dt
integer
real y <
real
c
c
*
«
common/
real
common/
real
real ca, cf
n),
c oe
f
ypr
f/
imeCn) ,
phi , be
plfish,
phi , be
plfish,
x
tal
kl
tal
kl
uit , gmax ,
mas
s
flux
es/
es/
ui t , gma
ingest,
ingest,
x ,
ev
ev
,
,
,
,
g»
g»
ac
ac
b
s
b
s
,
,
etaZ ,
» km,
eta2,
» kui,
iirax ,
imax ,
ass im
as sim
b
c
eta3 , mu
w
be
c
i
i
,
»
UI
ta3 , mu
eges t ,
egest,
,
,
raspi
respi
cf = yCD
ca = cf /
yprime CD
return
end
/ uit
Cplfish *
kD
- ca)
All
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
^subroutine rdmorp Cjin, species, genus, family, lifeform,
cv?r , avar, done)
^i"! '"Routine reads the coefficients and exponents for the
allometric functions,
s =
r ho =
1
gill area (cm**2) = cvarCl) * uit #* evarCl),
« lamellae / mm gill filament = cvarC2) * u/t ** evar(2)»
lamellar length (c*) = cvar(3) * mt ** evar(3),
from the GETS data base.
Input arguments!
-Jin = the logical unit number to uihich the GETS data base is attached.
Output arguments!
•species
•genus
•family
•lifeform
•c v ar
•evar
•done
species
genus
family
li fe form
above
above
name
name
name
type
of
of
of
of
the
the
the
the
rec ord
record
record
record
see
see
just
Just
Just
Just
read
read
read
read
(character,
Ccharacter »
(character,
(character,
lowercase)
loiuercase)
lowercase)
lowercase)
= truth of "end of file marker read"
integer
character *(*)
real
logical
9110 format (6a)
9120 format C6el0.3)
species = ' '
genus = ' *
family = ' '
lifeform = ' '
done = .false.
Jin, Jj
species, genus, family, lifeform
cvar(1), evar(l)
done
read (Jin, 9110, end»110)
:
jj * index (species, * ')
genus = species (1:JJ)
call up21o (species, 40)
call up2lo (family, 20)
call up21o (lifeform, 20)
call up21o (genus, jj)
read (jin,*,end*110)
read (Jin, 9120, end«110)
done = .false.
go to 999
species(l:40) ,
lifeform(i:20)
family(l:20),
! ignore next record (ref)
( (cvar(Jj),«varCjj)), jj « 1,
3)
110 continue
done s .true.
999 continue
return
and
A12
-------
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
subroutine logsum (
* nsl, si, cs,
* ns2, s2, e s ,
* nrhol, rhol, crho,
* nrho2, rho2, erho)
This subroutine accumulates the logarithmic sums needed to calculate
geometric means of the coefficients and exponents of the allometric
functions,
the
s
rho
Input
-nsl
-si
-ns2
-s2
-nrhol
-rhol
-nrho2
-rho2
gill area (cm**2) *
* lamellae / mm gill
arguments (modified by ]
= cummulative number
sum of
number
sum of
numb er
sum of
number
sum of
cummulative
cummulativa
cummulat ive
cummulative
cummulative
cummulative
c ummulative
Input arguments (NOT modified
-cs * coefficient read f
-es s exponent read f
-crho = coefficient read f
-erho = exponent read f
cs * uit *# es,
filament •» crho * u/t •'.
ogsum) :
of records having data
loglOCcs)
of records having data
loglOCes)
of records having data
loglO(crho)
of records having data
logl 0 (erho)
by logsum):
•oir the GETS data base
•om the GETS data base
•om the GETS data base
-om the GETS data base
s* erho,
for cs
for es
for crho
for erho
Note:
Missing
values in GETS data base signified by -999.000.
nsl, si, cs
ns2, s2, es
nrhol, rhol,
i rho2,
-999.)
+ 1.0
aloclO(cs)
crho
erho
then
then
real
real
real
real nrho2!
if (cs .gt.
nsl - nsl
si = si +
endif
if (es .gt.
ns2 * ns2
s2 - s2 +
endif
if (crho .gt. -999.) then
nrhol 3 nrhol + 1.0
rhol = rhol + aloglO(crho)
endif
if (erho .gt. -999.0 .and. erho
nrho2 = nrho2 + 1.0
rho2 * rho2 + alcglO(-erho)
endif
return
end
-999.)
+ 1.0
aloglO(es)
.lt.0) then
A13
-------
subroutine gilrat Cmoluit, s, d, 1, ku;)
c
c This subroutine calculates gill morphometric and mass transport
c parameters for the gill exchange model,
c dBf = s*kui # CCta - Ca),
c dt
c
c dBf = s*kuj * CCuj - Cf/CPl*Kl)),
c dt
c
c inhere Bf is the body burden of toxicant.
c
c Input arguments:
c -moluit = molecular weight of the chemical;
c -s = total gill surface area (cm**2)5
c -d = average inter1amellar distance Ccm);
c -1 = average lamellar length Ccm);
c
c Output argument;
c -kw = mass conductance (cm/ sec);
c
c Internal variables;
c -v = mean velocity of inter lame 1 lar floui Ccm/ sec);
c -NRe « Cv * d) / nu = Reynolds number;
c -difusi = diffusion coefficient Ccm'X'2/ sec);
c -nu » kinematic viscosity of water;
c -NSc * nu / difusi * Schmidt number;
c -x = axial distance douin the lamellar channel and in particular
c the channels entry length Ccm);
c -NGz = x / Cd * NRe * NSc) = x « D / Cd**2 « v) = Graetz number;
c -NShf = Ckui •:- d) / difusi = fluid side Sheruiood number?
c
c
c references;
c Barber, C*, L. Suarez, and R. Lassiter. 1986*
c Colton, C., K. Smith, P.Stroeve, and E. Merrill. 1971.
c AIChE Journ. 17:773-790.
c Ingham, D. 1984. Int.J.heat Mass Transfer 27:2421-2422.
c
real moluit, s, d, 1
real v, difusi, nu, nro, nsc, ngz
real x, inshl, insh2, nshui, nshf
real km
c
c calculate lamellar Reynolds and Schmidt numbars.
c
v * 8.333e3 * d^Z / 1
nu « 1.004e-2
nre=d«v/nu
difusi « 2.41«-5 * sqrtC32.0/moluit)
nsc « nu/ difusi
c calculate length, x, of a lamellar channel's entrance region,
c i.e-» NGz*0.1 u/hera NGz*Graetz number of th« lamellar channel.
c
ngz « 0.1
x * ngz # d * nre * nsc
calculate integrated Sherwood numbers, INShl and INSh2» for the
A14
-------
c For1"9"*6 rasion and P°st entrance region, respeclively.
c Inch rrance region fluid side Sheruiood number, NShft see
c con C1984)* Since in the enterance region the NShui apparently
».« »* *° tha constant flux curve (see Colton et al. 1971.),
c assume NShm=
c
nshui = o.O
if C x .It. 1) then
inshl = 1.1829 * ngz **C--333333) * 1.5
-CO. 1167 # n s h u + 0 . 1767 ) # x
inshZ « Cl - x.) * 3.77035
else
ngz « 1 / (d * nre * nsc)
inshl = 1.1829 « ngz **(-.333333) * 1.5
;: ~ CO. 1167 * nshuj + 0.1767 ) * 1
insh2 = 0.0
• endif
nshf = ( inshl + insh2 ) / 1
ku» = Cnshf * difusi) / d
return
end
A15
-------
^subroutine physio
c •- (famlab, u/t, gmax, imax, phi, betal, beta2, beta3, mu)
c theSmodbl°Utin9 calculates daily feeding and metabolic rates for
c
c dWt = INGEST - EGEST - RESPI
c dt
c
c dG a INGEST - EVAC
c dt
c
c dl » EVAC - ASSIM - EGEST
c dt
c
c INGEST * phi * (Gmax - G)
c
c EVAC = batal S G ** 1/2
c
c ASSIM * beta2 * I «# 1/2
c
c EGEST = beta3 * I *« 1/2
c
c Input arguments:
c -famlab = family name of fish (character, lowercase);
c -wt * gram live weight of fish;
c
c Output variables:
c -Gmax = maximum capacity of stomach (gram);
c -Imax = maximum intestinal capacity (gram);
c -phi = maximum feeding rate (I/day);
c -betal = stomach evacuation rate (gram##0.5/day)i
c -beta2 * assimilation rate (gram**0.5/day);
c -beta3 = egestion rate (gramSttO.5/day);
c -mu = specific metabolic rate (gram/gram/day);
c
c Internal variables:
c -T = environmental temperature (C)»
c -Tsat * time to satiatiation when feeding with an initially
c empty stomach (min);
c -Fsat = size of satiatiatior meal consumed during (0, Tsat), gram;
c
c references'
c Grova, D., L. Loizides, and J. Nott. 1978. J.Fish 3iol. 12:507-516.
c Jobling, f. 1981. J.^ish Siol. 19:245-257.
c Staples, D. and K. Momura. 1976. J.Fish Biol. 9:29-43.
c Windell, J., D. Norris, J. Kitchell, and J. Norris. 1969. J.Fish.Bd.
c Canada 26:1801-1812.
c
character *(« ) famlab
real u/t, gmax, imax, phi, betal, beta2, beta3» mu
real t» tsat, fsat
c
if (f amlabd :10) .eq. 'salmonida*') then
t « 10.0
c feeding coefficients calculated for Salmo gsirdneri
c (Grove et al. 1978).
tsat « (0.031 * wt * 0.868 * t 4 29.145) /
A16
-------
": C60.0 ft 24.0)
fsat = 0.95 ft 0.029 ft uit ftft 1.02
S*ax = 0.075 ft uit
Phi * - alog Cl.O - fsat / gmax) / tsat
betal = 1.1413 ft exp (0.05246 ft t)
l*ax = 0.020 ft ut ftft 0.303
c Assume assimilation efficiency equals 0.8C and calculate
c °"«- and beta3 accordingly, also assume intestinal evacuation
c rates approximately equal stomach evacuation rates (see for
c example Grove et al. 1978, Table IV).
b e t a 2 = 0.80 ft betal
beta3 = 0.20 ft betal
c
c RESPI calculated for feeding Salmo gairdneri(Staples and Nomura 1976)
c assuming R.Q.=0.8 and QlO=2.
c
mu = 0.00376 ft uit ftft (-0.187) ft exp(0.0693 ft (t - 11.4))
endif
return
end
A17
-------
c
c
c
c
c
c
c
c
c
c
c
c
subroutine dofila CJin, terror)
This subroutine reads the user parameter file.
Input arguments:
-Jin = the logical unit number to which the user parameter file is attached.
Output arguments:
-ierror = error flag
» 000 ==> no error
* 100 »=> incorrect data item found
s 101 ==> unexpected End Of File (some data may be missing)
integer stdlen, maxcol
parameter (stdleneSO, maxcol=132)
integer kstr, kvar, ktotal
parameter (kstr=03, kvar»09, ktotal =ks tr+k var )
character*(stdlen) usr str (kstr ) , idpara(ktotal)
spplab, famlab, liflab
character*(stdlen)
real
real
real
common /
common /
' g3i
' S
3i
1
1
Os
Ov
/
/
usrvar
mo liut »
cmater
usr str ,
usrvar
(kvar)
logp,
» ad jus
idpar
a
UUlt
t,
, uplfish
tend
,
gamma* cfish
equivalence Cusrstr(l), spplab), CusrstrC2)» famlab)
equivalence (usrstr(3), liflab)
equivalence
equivalence
equivalence
equivalence
equivalence
(usrvar(01) ,
(usrvar(03)»
(usrvar(OS),
(usrvar(07),
(usrvar(09),
moluit) »
u«t)»
gamma),
cuiater ),
tend)
(usrvar(02)»
(usrvar(04) ,
(usrvar(06),
(usrvar(OB) ,
logp)
uplfish)
cfish)
adjust)
integer stdin, stdout, stderr
common / g3illv / stdin, stdout, stderr
integer Jin, ierror
character#(maxcol) idline
integer lenstr
logical ok, okdoky
ok * .true.
ierror » 00
read (Jin, *» end«9S9) idline, spplab
call up2lo (spplab, stdlen)
call usrerr (01, idline, okdoky)
ok * (ok .and. okdoky)
read (Jin, *» end*999) idline» famlsb
call upZlo (famlab, stdlen)
call usrerr (02, idline, okdoky)
ok » Cok .and. okdoky)
read
call
call
ok •
(Jin, *» end»999) idline, liflab
up2lo (liflab, stdlen)
usrerr (03, idline, okdoky)
(ok .and. okdoky)
A18
-------
do HO jj = i, kvar
rsad Cjin, *, end=999) idline, vtemp
nvar = kstr + Jj
call usrarr Cnvar, idline, okdoky)
iT (okdoky) usrvarCjj) = vtemo
ok * (ok .and. okdoky)
110 con-tinua
if (.not. ok) ierror = 100
re-turn
999 continuo
ierror a 101
return
end
A19
-------
subroutine usrerr Cidnum, idline, okdoky)
c
c
integer stdlen, maxcol
Parameter (stdlen=80, maxcol=132)
integer kstr, kvar, ktotal
parameter (kstr=03, kvar«09, ktotal*kstr+kvar)
character*(stdlen) usrstr(kstr), idpara(ktotal)
characterS(stdlen) '
real
real
real
comm on
c ommon
famlab, liflab
usrvar(kvar)
moluit, logp, uuit, uplfish, gamma, cfish
ciuater, adjust, tend
g3ilOs
g3i!0v
usrstr,
usrvar
idpara
equivalence
equivalence
equivalence
equivalence
equivalence
equivalence
equivalence
(usrstrCl)t spplab)f
Cusrstr(3), liflab)
Cusrvar(Ol), molut),
Cusrvar(03), uiut)»
CusrvarC05)t gamma),
CusrvarCOT), cuiater),
Cusrvar(09), tend)
CusrstrC2), famlab)
CusrvarC02)»
(usrvar(04)«
Cusrvar(06),
(usrvar(08) t
logp)
uplfish)
cfish)
adjust)
integer stdin, stdout, stderr
common / g3illv / stdin, stdout, stderr
c h a r a c t e r * (
integer
logical
external
idline
idnum, len, lenstr, nl, n2
okdoky
lenstr, up21o
nl = lenstrCidline, len(idline))
call up2lo (idline, nl)
if CidlineCl :nl) .eq. idpara(idnum)(1:nl)) then
okdoky = .true.
else
n2 * lenstr(idpara(idnum), len(idpara(idnum)))
write (stderr, 9110) idline(1:nl), idpara(idnum)(1:n2)
okdoky s .false.
endif
return
9110 format (' ','??? error: user input
* •••; expecting "', a, '"')
a,
end
A20
-------
subroutine inivar (done)
This subroutine initializes the variables used by GETS.f
Input arguments:
: NONE
: Output arguments:
: -done = truth of "initialization completed successfully"
»
integer stdlen, maxcol
parameter Cstdlen=80, maxcol=132)
integer kstr, kvar, ktotal
parameter (kstr=03, kvar=09, ktotal=kstr+kvar )
character*Cstdlen) usrstr Ckstr) , idparaCktotal)
spplab, famlab, liflab
usrvarCkvar)
molu/t, locp, uuit» uplfish, gamma,
cuiater, adjustt tend
characterSCstdlen)
110
real
real
cfish
common
common
g3i!0s
g3i!0v
usrstr*
usrvar
idpara
equivalence
equivalence
equivalence
equivalence
equivalence
equivalence
equivalence
(usrstr(l), spplab), (usrstrCZ), famlab)
(usrstr(3), liflab)
(usrvar(Ol),
(usrvar(03),
(usrvar(05),
(usrvar(07),
(usrvar(09),
molwt)«
uut) ,
gamma) ,
cua ter)f
tend)
CusrvarCOZ)»
CusrvarC 04),
CusrvarC06)»
(usrvarC08)t
logp)
uplfish)
cfish)
adjust)
integer stdin, stdout, stderr
common / g3illv / stdin, stdout, stderr
logical done
stdin » -3
stdout * "2
stderr » stdout
idpara(Ol)
idparaCOZ)
id-ara(03)
idparaCOO
idparaCOS)
idpara(C6)
idparaCOT)
idpara(OS)
idpara(09)
idpara(lO)
idpara(ll)
idparaC!2)
do 110, JJ *
call up21o
continue
done « .true.
return
end
'spplab '
'famlab'
'liflab'
'mol«t'
'logp'
'•t'
'plfish'
'gamma '
'cfish'
"cuiater '
'adjust'
'tend'
1, ktotal
CidparaCJJ),
stdlen)
A21
-------
subroutine plxOlO (xlabel, ylabel, zlabel,
xxline, yyline, nxylin)
c This subroutine generates CALCCMP(tm) plot files.
c warning: this subroutine is executable at the A-ERL; it may or may not
c be compatible elsewhere.
c
c Input arguments:
c -xlabel = x-axis label (chapter);
c -ylabel = y-axis label (character):
c -zlabel = plot title (character):
c -xxline = array u/ith abscisae to be plotted;
c -yyline = array with ordinates to be plotted!
c -nxylin = number of coordinates;
c
integer stdlen, maxcol
parameter (stdlen=80, maxcol=BO)
c
character*(stdlen) xlabel, ylabel, zlabel
integer nxylin, ii
real xxline(l), yyline(l)
c
byte qtemp(stdlen)
real xxpar(5) ,yypar(5)
real zmax, zmin, xorign, yorign, sizel, sizeZ
real xlen, xmin, xdx, xdl, dxpoui, xs, xe, xt, xn
real ylen, ymin, ydx, ydl, dypoui, ys, yo» yt, yn
integer Jj, ip, kobs
integer nxdec, nydec, nx, ny, nz, lenstr, Jxpoui, jypoui, nxypar
external lenstr
c
data nxypar / 2 /» xorign / 1.0 /, yorign / 1.0 /
data xlen / 7.0 /, ylen / 6.0 /, sizel / 0.12 /» size2 / 0.18 /
c
if (nxylin .le. 1) return
nxdec = 5
nydec * 5
c
call scale (xxline, xlen, nxylin, 1)
xmin = xxline(nxylin+1)
xdx = xxline(nxylin+2)
call scale (yyline, ylen, nxylin, 1)
ymin = yyline(nxylin+1)
ydx * yyline(nxylin+2)
c
call plot (xorign, yorign, -3)
c
c put axes
c
nx * lenstr (xlabel, stdlen)
xs * xmin
xe a (xmin + xlen « xdx)
xn * xdx
xt * xn
call kdec (xs,xe,xt,xs,xs,xe,xn,nxdec)
call linaxs (0.0, 0.0, xlen, 00.0, siz»l» xst xe, xt, xs
,,, , xs»xe»xn, nxdec, 1)
call c2byte (xlabal, nx, qtemp)
call positn Cxltn#0.5i -C«lz«l*2.25*sizt2*2.50)i siz«2
A22
-------
:>: »qtemp, 00.0»nx»l)
"y » lenstr (ylabel, stdlen)
ys = ymin
ye - Cymin + ylen * ydx)
yn = ydx
yt = yn
call kdec Cy s t y<3 « yt i ys ,ys f ye , yn ,nydec )
call linaxs (0.0, 0.0, ylen, 90.0, sizel, ys, yet yt, ys
!'! ,ys,ye,yn,nydac,4)
call cZbyte (ylabal, ny, qtemp)
call positn (-(sizel#5.0+siz92*2.0), ylen«0.5» sizeZ
* ,qtemp,90.0,ny,l)
c
c put id stuff
c
nz = lenstr Czlabel, stdlen)
call cZbyte (zlsbel, nz, qtemp)
xpc » xlen * 0.5
ypc = 3.00 + ylan + size 2*2.50
call positn (xpc, ypc, size2, qtamp, 00.0, nz, 1)
ypc = ypc - 2.0 « size2
call line (0.0,0.0,xxline,yyline,nxylin,1,00,23,sizel,0.0)
c
call plot (-xorign, -yorign, -3)
call plot (xlen+xorign+2.00» 00.0, -3)
c
999 continue
return
end
A23
-------
subroutine upZlo Cletter,nleter)
c
c Warning: this is a system-dependent routine
c This subroutine transliterates upper case to loiuer case.
c
c Input arguments:
c -letter = character array with characters to be transliterated:
c uiill be modified on output;
c -nleter = number of characters to transliterate?
c
c uoper-case-3 = 065; uppar-csse-z = 090
c louier-case-a = 097! lou/or-c ase-z = 122
c
integer nleter, offset, jj, hold
character*! letter(l)
c
offset = 097 - 065
do 110 jj = 1, nleter
hold = icharClettsrCJj))
if CC06S.le.hold).and.(hold.le.090)) then
letterCjj) = charC hold + offset)
endif
110 continue
c
return
end
A24
-------
integer function lenstr (string* nchar)
This function determines the length of a character string;
trailing blanks mill not be counted.
Input arguments:
-string = character array
-nchar = maximum number of characters in array string
Output value:
-lenstr = number of characters in string
integer nchar, nn
charactered) string(l)
if (nchar .gt. 0) then
nn = nchar + 1
110 continue
nn = nn - 1
if (nn .gt. 0) then
if (string(nn) .ecu * ') go to 110
endif
lenstr = nn
else
lenstr - 00
endif
return
end
A25
-------
subroutine cZbyte Czzchar, nchar» zzbyte)
c
c This subroutine translates characters to bytes. This
c subroutine is used only for plotting purposes.
c
c Input arguments:
c -zzchar = character array
c -nchar = nurnbar of characters to be translated
c
c Output argument:
c -zzbyte = byte equivalent of the array zzchar
c
integer nchar, jj
charactered) zzcharCl)
byte zzbyteCl)
c
do llOt jj = 1, nchar
zzbyteCjj) = icharCzzcharCjj))
110 continue
c
return
end
A26
-------
c su^routine names Cinfil, outfil, plxfil, rlabel)
r ni«! ^routine generates the names for the output file, the
c Plot fiie and the title for the plot.
c Input arguments:
-in il r character array containing the name of the user input file;
c Output arguments:
C ~°Tl*f^i = charact«r array containing tre name of the user output file?
c -plxfil = character array containing the name of the user plot file}
c -zlabel = character array containing the plot title;
c Note :
c name of the form "filename.ext" ; NO Csub ) directory info.
c
character^*) infil, outfil, plxfil, zlabel
integer nn, lenstr, len, ni
external lenstr
c
ni * lenstrCinfil, lenCinfil))
nn * index Cinfil, '. ')
if Cnn .gt. 0) then
nn = nn - 1
else
nn = ni
endif
c
outfil = infilCi:nn) // '.out'
plxfil = infilCi:nn) // '.plx'
zlabel = infilCi:ni) //': '// 'gill exchange of toxic substances'
c
return
end
-------
subroutine scale (array,axlen,npts,inc>
pn 725012/925012 for ibm system/360 July 6,1970
1970 California computer products inc.
c update: 19-sep-1936 11:05:38.94? A-ERL (EPA)
c This subroutine determines "aesthetically pleasing" axis scaling
c parameters.
c
c Input parameters:
c -array s name of array containing values to be scaled?
c -axlen s I9ngth in inches over which array is to be scaled?
c -npts » number of points to be scaled?
c -inc = increment of location of successive points?
c
c Output parameters:
c -array(npts4inc) = adjusted axis minimum?
c -arrayCnpts+2*inc) = axis increment psr inch Ctic mark)?
c
integer nsave
parameter Cnsave=ll)
dimension arrayC1)»saveCnsave)
data save / 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, B.O, 9.0,
$ 10.0, 20.0 /
c
fad = 0.010
k = iabsCinc)
n * n p t s * k
yO = array(1)
yn « yO
c
do 140 i = 1, n, k
ys s arrayCi)
if CyO-ys) 120, 120, 110
110 yO = ys
go to 140
120 if Cys-yn) 14C, 140, 130
130 yn * ys
140 continue
c
firstv » yO
if CyO) 150, 160, 160
c
150 fad = fad-1.0
160 dcltav = (yn-firstv)/axlen
if Cdeltav) 270, 270, 170
c
170 i * aloglOCdeltav)+1000.0
deltav * deltav/p - 0.01
do 180 i « 1, nsave-1
is - i
if CsaveCD-deltav) 180, 190, 190
180 continue
190 d»ltav « saveCis)*p
firstv » deltav«aintCyO/deltav+fad)
t m firstv+(axlen+0.01)*deltav
if Ct-yn) 200, 220, 220
A28
-------
200 firstv s p*aint(yO/p+fad)
* = f irstv-Kaxlen + 0.01)*deltav
if Ct-yn) 210, 220, 220
c
210 is = is4i
go to 190
220 firstv = firstv-aintCCaxlen4Cfirstv-yn)/deltav)/2.0)*deltav
if CyOftfirstv) 230, 230, 240
230 firstv = 0.0
240 if Cine) 250, 250, 260
250 firstv = f irstv4aintCaxlan4.5)=:
deltav " -daltav
260 n * n4k
arrayCn) = firstv
n s n + k
arrayCn) = daltav
return
c
270 deltav = 2.0*firstv
deltav = absCdeltav/axlen)+l.C
go to 170
c
end
A29
-------
subroutine kdec (sticteticiticinc,sval,bval,eval,valinc,numdec)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
This
requ
Inpu
-st
-et
subr ou t
ired
W F ^ *
F «• •
w^T**
ine determines the minimum number
»• " F
of
dec
imal places
to make each tic mark unique.
t ar gume
ic
ic =
-tic
-sv
-bv
-ev
-va
a
inc
1
=
nts:
value of starting tick mark
value of ending tick mark
positive distance between
on
ti
on a
axi
X
s
is
C
ck marks
= starting value at Cxty) on axis
al =
a
1
-num
Out
1
inc
dec
put a
-num
dec
real
s
~
s
rgum
=
#4
integer
c
real
inte
ger
integer
paramete
value of first number at
ending value on axis C in
positive distance between
on input :
number of digits to right
axis (note: if numdec = -
number is plotted).
ents :
on output:
minimum number of digits
required for uniqueness.
stic,etictticincts
numdec
tranget value
nticst nnum» ntbnt
ncht lenstrt ndect
r (rnaxlen* 030 )
a tic m
C
in
ark
C in
units )5
in units ):
( in units )
units )
on a
xis C in units
units )
numbers
of
It
to
val
nc
on
decimal
inte
the
t bva
ount
ndot t
ger
axi
for
port
right of
1
»
1
t e va 1 f v
s C in units )
numbering
ion of
decimal
aline
maxlen
ast
t lastnzt ndig
character#(maxlen) kformi cnum
external lenstr
c
c Calculate the range of tics in units
c Calculate the number of tics to be drawn on the axis-
c Calculate range of tics with numbers
c Calculate number of tics with numbers
c NTBN is number of tics between numbers
c
trange = absCetic - stic)
ntics = Ctrange / ticinc) + 1.0001
nnum = CabsCetic - bval) / valinc) + 1.0001
ntbn » Cvalinc / ticinc) + .0001
c
write Cunit»kform, fmt=9110) numdec ! acc»pt user guess
9110 format C'Cf30.', i5, ')')
ndec - -1
c
do 120 ncount * It ntics» ntbn
value s bval + floatCncount-1) * valinc
writ* Cunit»cnumt fmt'kform) value
nch * lenstr Ccnumt maxlen)
ndot * index Ccnum» *.')
if Cndot .le. 0) then
ndec * numdec
go to 999
endif
last * lastnz Ccnu^i nch)
ndig * last - ndot
ndec * max (ndac» ndig)
Ain
-------
120 continue
If (ndec .eq. 0) than
ndec = -1
endif
c
999 continue
numdec - ndec
return
c
end
A31
-------
integer function lastnz (cnum, nch)
c
c This subroutine determines the first non-zero character in array cnum
c (from right to left).
c
c Input arguments:
c -cnum « character array
c -nch = number of characters in cnum
c
c Output value i
c -lastz = position of the first non-zero character (from right to left)
c
integer nch, jj, nn
charactered) cnumCl)
c
do 110 jj = nch, 1, -1
nn = j j
if CcnumCnn) .ne. '0') go to 120
110 continue
c
120 continue
lastnz = nn
c
return
end
A3 2
-------
Appendix B. Listing of the GETS's data file MORPHO.DAT which contains
coefficients and exponents for the allomatric functions
S = gill area cm**2 = si * W ** s2,
rho = * lamellae/ mm filament * rhol * W %*t rho2»
1 = lamellar length cm e 11 * W «« 12»
uihere W is the fish's g live weight. The i-th record reports
the species name, family, and life form. The Ci+1) reports
the reference for the data. The Ci+2) record reports in order
si, s2» rhol, rho2, 11, and 12. Missing data are denoted by
-999. The listing below is formatted as read by subroutine
RDMDRP Csee Appendix A).
angbas testudinsus \family freshwater
hughes, g.m. 1972. respir.physiol. 14:1-25.
5.560E+00 6.150E-01 3.650E + 01-1. 520E-01-9.99OE+02-9.990E+02
blennius pholis \family marine
da Jager, s. and w.j. dekkers 1976. nether.j.zool. 25:276-308.
1.156E+01 8.500E-01-9.990E+02-1.600E-01-9.99CE+02-9.990E+02
channa punctata chanidae freshwater
hakim et al. C1978). j.zool. 184:519-543.
4.700E+00 5.920E-01-9.990E+02-9.990E»02-9.990E+02-9.990E+02
catostomus commersonii catostomidae freshwater
de Jager, s. and w.j. dekkers 1976. nether.j.zool. 25:276-308.
7.980E+00 6.390E-01-9.990E+02-9.990E+02-9.990E+02-9.990E+02
catostomus commersonii catostomidae freshwater
saunders, r.l. 1962. can.j.zool. 40:817-862.
1.117E+01 5.870E-01 2.500E + 01-1. 070E-01-9.990E + 02-9.990E+02
coryphaena hippurus coryphaenidae marine
hughes, g.m. 1972. respir.physiol. 14:1-25.
5.203E + 01 7.130E-01 3.380E +01-3 . 60OE-02-9.990E + 02-9.990E + 02
cyorinus carpio cyprinidas freshwater
oikawa, s. and y. itazawa 1985. j.exp.biol 117:1-14.
8.460E+00 7.940E-01 3.220E+01-7.900E-02-9.990E+02-9.990E+02
gambusia affinis poeciliidae freshwater
murphy, p.g. and j.v. murphy 1971. bu 11. environ.contam. toxicol. 6:581-58
2.330E+00 8.730E-01-9.990E+02-9.990E402-9.990E+02-9.990E+02
ictalurus nebulosa ictaluriade freshwater
da Jager, s. and w.j. dekkers 1976. nether.j.zool. 25:276-308.
2.650E+00 8.450E-01-9.990E+02-9.990E+02-9.990E+02-9.990E+02
ictalurus nebulosa ictaluriade freshwater
saunders, r.l. 1962. can.j.zool. 40:917-362.
4.980E+00 7.230E-01 1.530E+01-9.100E-02-9.990E+02-9.990E+02
katsuwonus pelamis acombridae marine
rnuir, b.s. and g.m. hughes 1969. j.exp.biol. 51:271-285.
5.675E+01 9.410E-01 5.900E+01-7.600E-02-9.99OE+02-9.990E+02
lepidocephalichthys sp. \family freshwater
singh, b.p.t a.n. yadav, J.ojha, and j.s.d. munshi 1981. coepia 1981:224-
4.940E + 00 7.450E-01 4 . 500E + 01-2.21OE-01-9.990E + 02-9.990E + 02
lepisosteus sp. lepisosteidae freshwater
landolt, j.c. and l.g. hill 1975. coapia 1975:470-475.
3.940E+00 7.380E-01 3.880E+01-6.0005-02-9.990E+02-9.990E+02
micropterus dolomieu ctntrarchidae freshwater
de jager, s. and w.j. dekkers 1976. nsther.J.zool. 25:276-308.
7.310E + 00 8.200E-01 3 . 000E + 01-6 . 200E-02-9.990E + 02-9.990E + 02
opsanus tau batrachoididaa marine
hughes, g.m. and i.e. gray 1972. biol.bull. 143:150-161.
5.600E + 00 7.900E-01 1.600E + 01-7.500E-02-9 . 990E + 02-9,990E + 02
raja clavata rajidaa marine
hughes, g.m., perry, s.f., piip&p, j. 1986. J.exp.biol. 121:27-42
-9.990E+02 9.700E-01-9.990E+02-1.540E-01-9.990E*02-9.990E+02
Bl
-------
frashma tar
press.
.990E+02
marine
saccobranchus fossilis \family marine
hughes, et al (1974); missing raf s'.s***^::^^^^*****^*****!^*** ]|i
1.860E+00 7.460E-01 3.160E+01-9.500E-02-9.990E+02-9.990E +02
salmo gairdneri salmonidae freshwater
de Jager, s. and a.j. dakkars 1976. nether.J.zool. 25:276-303.
3.900E+00 9.000E-01-9.990E+02-9.990E+02-9.990E+02-9.990E+02
salmo gairdneri salmonidae freshwater
niimi, a.j. and morgan, s.l. 1980. j.fish.biol. 16:685-692.
1.840E+00 1.125E+00-9.990E+02-9.990E+02-9.S90E+02-9.990E+02
salmo gairdneri salmonidae
hughes, g.m. 1984. fish physiology, vol xa. academic
3.140E+00 9.320E-01 2.750E+01-6.400E-02-9.990E+02-9.
scomber scomber scombridae
hughes, g.m. 1972. respir.physiol. 14:1-25.
4.420E+00 9.970E-01 2.710E+01 2.300E-02-9.990E+02-9.990E+02
scyliorhinus canicula scyliorhinidae marine
hughas, g.m. 1972. respir.ohysiol. 14:1-25.
2.620E+00 9.610E-01 1.72CE+01-7.100E-02-9.990E+02-9.990E+02
scyliorhinus stallaris sryliorhinidae marine
hughes, g.m., perry, s.f., piiper, j. 1986. J.exp.biol. 121:27-42
-9.990E+02 7.790E-01-9.990E+02-1.670E-01-9.990E+02-9.990E+02
stizostedion vitreum percidae freshwater
niimi, a.j. and morgan, s.l. 1980. J.fish.biol. 16:685-692.
8.000E-01 1.129E+00-9.990E+02-9.S90E+02-9.990E+02-9.990E+02
thunnus thynnus scombridae marine
muir, b.s. and g.m. hughes 1969. J.exp.biol. 51:271-285.
2.443E+01 9.010E-01 6.090E+01-8.9OOE-02-9.990E+02-9.990E+02
cyprinidae freshwater
and ui.J. dekkers 1976. nather. J. zool. 25:276-308.
570E-01-9.990E+02-9.990E+02-9.990E+02-9.990E+02
cyprinidae
1972. respir.physiol. 14:1-25.
.980E-01 2.550E+01-3.000E-02-9.990E+02-9.990E+02
torpedo marmorata torpedinidaa
hughes, g.m. 1978. J.exp.biol. 73:35-105.
1.180E + 00 9.370E-01 3.420E + 01-1.670E-01-9.990E + 02-9.990E + 02
tinea tinea
da jag.er, s.
1.220E+01 6,
tinea tinea
hughes, g.m.
8.670E+00 6,
f reshujater
marine
R?
-------
Ippendix C. Sample session of GETS. Dollar signsCi) denote VAX system prompt!
and asterisksC*) denote ECT prompts. The following example analy:
laboratory bioaccumulation of 2 , 2 ', 3 , 3 '-te trachlorobipheny 1
by rainboui trout. See Oliver, B.C. and Niimi, A.J. 1985.
tnviron.Sci.Technol. 19:8*2-849.
! 9dit/erj-t
Incut file
[EOB3
Sinsert
pcb2233.
does not
dat
exist
'spplab '
'f am 1ab '
•liflab'
'moluj t *
•logP'
'«lt'
'plfish'
'gamma '
'cf ish'
'ciua t er '
'adjust'
'tend'
'Salmo gairdneri'
'salmonidaa'
'f reshuiater '
292.0
5.8
200.0
0.07
-999.000
0.0
13a-6
0.09
96
USERSDISK:CUSER_ACCQUNTDPCB2233.DAT;l
12 lines
! run
gets
Parameter file name!
USER
USER
USER
USER
USER
USER
USER
USER
USER
USER
USER
USER
USER
•
•
input file
: output file
•
•
t
«
•
•
•
•
•
•
*
•
•
»
*
•
•
t
•
•
•
*
MODEL:
MODEL:
MODEL:
MODEL:
day
0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
plot file
ifl 0 1 Ul t
logp
f ishid
Ult
plf ish
g amma
adjust
cf ish
cuiater
tend
pcb2233.
pcb
pcb
pcb
2233. d
d
at
at
2233. out
2233. p
292.
5.80
Ix
salmo gair
salmo gairdn
salmo gair
salmo gair
0
-
9
0
1
eri
dneri
dneri
salmo gairdneri
Wt
200.
216.
217.
218.
219.
220.
220.
221.
222.
222.
223.
224.
225.
200.
.OOOE+0
999.
.OOOE-
0
dneri
0
2
.OOOE+00
.300E-
96.0
si:
s2:
rhoi:
rho2:
Bf
0
O.OOOE+0
c
0
-6
0
0.739
1.52
2.31
3.09
3.87
4.65
5.43
6.20
6.97
7.74
8.51
f\
-------
13.
u.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
39.
39.
40.
41.
42.
43.
44.
45.
46.
47.
43.
49.
50.
51.
52 .
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
225.
226.
227.
227.
fc. Cm I •
228.
229.
230.
230.
231.
232.
232.
233.
234.
233.
235.
236.
237.
238.
238.
239.
240.
241.
241.
242.
243.
244.
244.
245.
246.
247.
247.
248.
249.
250.
250.
251.
252.
253.
253.
254.
255.
256.
256.
257.
258.
259.
260.
260.
261.
262.
263.
263.
264.
265.
266.
267.
267.
268.
269.
270.
10.0
10.8
11.5
12.3
13.1
13.8
14.6
15.3
16.0
16.9
17.5
18.3
19.0
19.7
20.5
21.2
21.9
22.7
23.4
24.1
24.3
25.5
26.3
27.0
27.7
28.4
29.1
29.8
30.5
31.2
31.9
32.6
33.3
34.0
34.7
35.4
36.1
36.8
37.5
38.2
38.9
39.5
40.2
40.9
41.6
42.3
43.0
43.6
44.3
45.0
45.6
46.3
47.0
47-7
48.3
49.0
49.6
50.3
51.0
51.6
4.454E-02
4.776E-02
5.095E-02
5.411E-02
5.724E-02
6.034E-02
6.341E-02
6.645E-02
6.947E-02
7.245E-02
7.541E-02
7.834E-02
3.124E-02
8.412E-02
3.696E-02
8.979E-02
9.258E-02
9.535E-02
9.810E-02
0.101
0.104
0.106
0,109
0.111
0.114
0.117
0.119
0.122
0.124
0.127
0.129
0.132
0.134
0.136
0.139
0.141
0.143
0.146
0.148
0.150
0.152
0.155
0.157
0.159
0.161
0.163
0.165
0.168
0.170
0.172
0.174
0.176
0.178
0.180
0.182
0.184
0.186
0.188
0.190
0.191
C2
-------
73.
74.
75.
76.
77.
78.
79.
80.
31.
82.
83.
84.
85.
86.
87.
88.
89-
90.
91.
92.
93.
94.
95.
96.
271.
271.
272.
273.
274.
275.
275.
276.
277.
278.
279.
279.
280.
281.
232.
283.
283.
284.
285.
236.
287.
288.
203.
239.
52.3
52.9
53.6
54.3
54.9
55.6
56.2
56.9
57.5
58.2
58.8
59.5
60.1
60.7
61.4
62.0
62.7
63.3
63.9
64.6
65.2
65.8
66.5
67.1
0.193
0.195
0.197
0.199
0.201
0.202
0.2C4
0.206
0.208
0.209
0.211
0.213
0.215
0.216
0.218
0.219
0.221
0.223
0.224
0.226
0.227
0.229
0.231
0.232
MODEL:
MODEL:
MODEL:
FORTRAN STOP
$
kl
k2
g amm a
277.
5.879E-03
3.842E-03
C3
------- |