-------
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

-------