-------
8.2 Distributional Data for Terrestrial Wildlife
Domain:TerrestriaI Insectivore
Species: Black-capped Chickadee (Parus atricapillus)
Parameter: Body weight (BW)
Value or Algorithm: BW,+,= 0.0108 ±0.00138
(mean ± SD; N=1880; range: 0.0082 - 0.0136)
Units: kg
Notes: Values are summaries from multiole locations throughout Pennsylvania
Reference: Dunning 1993
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.74
Units: kg food/ kg BW/d
Notes: Smith (1993) reports that while no data on nutrition and food ingestion by black-capped chickadees
are available, parids of comparable size require 10 kcal /d (41.84 kJ/d). Assuming that the chickadee diet
consists 100% of insects, the body weight is 0.0108 kg (Dunning 1993), and energy and water content of
insects are 22.09 kJ/g dry weight and 76.3%, respectively (Bell 1990), daily food ingestion by chickadees
would be 0.74 kg food (wet weight) /kg BW/d.
Reference: NA
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0
Units: kg soil/ kg BW/d
Notes: Blackcapped chickadees are reported to be arboreal foragers for insects and are rarely observed on
the ground (Smith 1993). Consequently, soil ingestion is assumed to be negligible
Reference: Smith 1993
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = (0.059*(BW)067)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Dunning 1993.
Reference: Calder and Braun 1983
Parameter: Inhalation (IJ
Value or Algorithm: I, = (0.40896*(B W)° 8)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Lasiewski and Calder (1971) estimates inhalation in mL/individual/min.
Units converted to m3/ individual/d. Inhalation normalized to body weight using body weights reported in
Dunning 1993.
Reference: Lasiewski and Calder 1971
Parameter: Diet Composition (p;)
Value or Algorithm: ?,„«„,*«„ = 70
Pplam = ' ' Pinveiwbrates)
Units: N/A
Notes: Averaged over a full year, the diet of black-capped chickadees consists 70% of invertebrates
(insects, spiders) and 30% plant (seeds and berries) (Bent 1946). In summer, the diet is 80-100%
invertebrates (primarily Lepidoptera larvae) and 0-20% plant (Sample et al. 1993, Smith 1993). In winter,
the diet is approximately 50% invertebrate and 50% plant (Martin et al. 1951).
Domain: Aquatic Herbivore
Species: Mallard (Anas platyrhynchos)
B-25
-------
Parameter: Body weight (BW)
Value or Algorithm: BW,,= 1.225 (mean; N=3963; max=1.81)
BW,= 1.043 (mean;N=3169;max=1.63)
Units: kg
Notes: Values are summaries from multiple locations throughout North America
Reference: Neslon and Martin 1963
Parameter: Food ingestion rate (lf)
Value or Algorithm: I, = 0.1
Units: kg food/ kg BW/d
Notes: Heinz et al. (1987) report that mallards maintained in the laboratory consumed 0.1 kg dry mash
diet/kg BW/d. The water content of this diet ranged from 7-10%. Because the plant material consumed by
mallards consists largely of seeds, and the mean water content of seeds is 9.3% (EPA 1993), the food
ingestion rate reported by Heinz et al. (1987) may be used without adjusting for water content.
Reference: Heinz et al. 1987
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0.033*Ir
Units: kg soil/ kg BW/d
Notes: Beyer et al. (1994) report the mean estimated soil ingestion rate from 88 mallard ducks from
Minnesota to be 3.3% of their food consumption rate.
Reference: Beyer et al. 1994
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw= (0.059*(BW)067)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Dunning 1993.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: I, = (0.40896*(BW)° 8)/BW
Units: m' air/ kg BW/d
Notes: Allometric equation from Lasiewski and Calder (1971) estimates inhalation in mL/individual/min.
Units converted to mV individual/d. Inhalation normalized to body weight using body weights reported in
Dunning 1993.
Reference: Lasiewski and Calder 1971
Parameter: Diet Composition (pf)
Value or Algorithm: pftM = 0.665
PinvcnctxMM = ( ' ~ Pplanl)
Units: N/A
Notes: Martin et al. (1951) report that plant material (primarily marsh and aquatic plants) constitute 91%,
827c, and 93% of the diet in winter, spring and fall, respectively. Aquatic invertebrates (primarily insects)
constitute the remainder of the diet (9%. 18%, and 7% in winter, spring and fall, and approximately 100%
in summer). Averaged over the whole year, plants comprise 66.5% of the diet with aquatic invertebrates
accounting for the remainder.
Domain: Terrestrial Predator/Scavenger
Species: Red-tailed Hawk (Buteo jamaicensis)
Parameter: Body weight (BW)
Value or Algorithm: BW,,= 1.028 (mean;N=108)
BWS= 1.224 (mean; N= 100)
Units: kg
B-26
-------
Notes: Values are summaries from multiple locations throughout North America. Preston and Beane
(1993) report that body weight of males ranges from 0.69-1.3 kg and that for females ranges from 0.9-1.46
kg.
Reference: Means: Dunning (1993)
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.12*BW
Units: kg food/ kg BW/d
Notes: Estimates of food ingestion rates for red-tailed hawks range from a low of 7% of body weight/d in
summer to as much as 17% of body mass/d in winter. The median of these estimates (12% of body weight)
is recommended to represent typical foraging across all seasons.
Reference: Preston and Beane (1993)
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0
Units: kg soil/ kg BW/d
Notes: While soil may be attached to prey that may be ingested, the amount consumed is assumed to be
negligible.
Reference: NA
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = (0.059*(BW)067)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units convened to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Dunning 1993.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia = (0.40896*(BW)° 8)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Lasiewski and Calder (1971) estimates inhalation in mL/individual/mtn.
Units converted to m3/ individual/d. Inhalation normalized to body weight using body weights reported in
Dunning 1993.
Reference: Lasiewski and Calder 1971
Parameter: Diet Composition (p,)
Value or Algorithm: pmimroil =0.7013
Phlrt =0.1843
Preplllc = 0.0724
French™ = 0-0387
Units: N/A
Notes: The diet of red-tailed hawks is highly variable, differing across seasons, regions, and among
individuals (Preston and Beane 1993). In general, small to medium sized mammals, birds, and reptiles are
consumed. Sherrod (1978) summarized the results of 10 red-tailed hawk diet studies. In general, the diet
consisted of 70.13%, 18.43%, 7.24%, and 3.87% of small mammals, birds, reptiles and amphibians, and
invertebrates, respectively.
Domain: Aquatic Insectivore
Species: Tree Swallow (Tachycineta bicolor)
Parameter: Body weight (BW)
Value or Algorithm: BWrf,e= 0.0201+0.00158 (mean±STD; N=88)
Units: kg
Notes: Values are summaries from Pennsylvania. Body weights ranged from 0.0156-0.0254 kg.
Reference: Dunning (1993)
B-27
-------
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.198+0.048
Units: kg food/ kg BW/d
Notes: Female tree swallows in New Brunswick, Canada, were observed to require 5.73+1.40 kJ/g/d
(mean+STD; n=10; Williams 1988). Using body wights reported in Williams (1988; 22.6 g), assuming that
the diet consists exclusively of insects (Quinney and Ankney 1985) and that the energy and water content
of insects is 22.09 kJ/g dry weight and 76.3%, respectively (Bell 1990), daily food consumption by tree
swallows is 0.198+0.048 kg/kg/d.
Reference: NA
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is= 0.01*If
Units: kg soil/ kg BW/d
Notes: Grit was found in 35 and 20% of the stomachs of nestling and adult tree swallows, respectively
(Mayoh and Zach 1986). The number of particles and the mass of grit was greater in nestings than adults:
the number of particles was 10.2+2.2 (mean+SE) in nestlings vs 0.8±0.8 in adults and mass (mg) was
17.2±2.6 in nestlings vs 6.1+6.1 in adults. Data relating grit ingestion to food ingestion rate was not found
in the literature, however. Consequently estimation of a soil ingestion rate from these data is problematic; a
soil ingestion rate of 1% of food ingestion was therefore assumed.
Reference: NA
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = (0.059*(BW)067)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Dunning 1993.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: I, = (0.40896*(B W)° 8)/B W
Units: m3 air/ kg BW/d
Notes: Allometric equation from Lasiewski and Calder (1971) estimates inhalation in mL/individual/min.
Units converted to m3/ individual/d. Inhalation normalized to body weight using body weights reported in
Dunning 1993.
Reference: Lasiewski and Calder 1971
Parameter: Diet Composition (pj)
Value or Algorithm: p,nvem!h«e = 1
Units: N/A
Notes: The diet of swallows consists primarily of insects; however, some plant matter may be
consumed (Beal 1918). Flies (Diptera) are generally very important food items for swallows, comprising as
much as 40% of the diet of some species (Quinney and Ankney 1985; Blancher and McNicol 1991).
Chironomid midges are an important food item of tree swallows, accounting for 33% of the diet of nestlings
(Blancher and McNicol 1991). Blancher and McNicol (1991) found prey of aquatic origins to account for
64.9, 71, and 54.9% of the diet of nestling, egg-laying female, and other adult tree swallows, respectively.
Swallows generally consume small insects. Quinney and Ankney (1985) report that 99% of the insects
consumed by tree swallows are <. 10 mm in length. Blancher and McNicol (1991) observed that-90% of
prey were s25 mm in length.
Domain:Terrestrial Vertebrate Herbivore
Species: Mule Deer/Black-tailed Deer (Odocoileus hemionus columbianus)
Parameter: Body weight (BW)
B-28
-------
Value or Algorithm: B Wrf = 72.9±3.0 (mean ± SE)
BW, = 59.4± 1.2 (mean ±SE)
Units: kg
Notes: Values are summaries from Colorado
Reference: Alldredge et al. 1974
Parameter: Food ingestion rate (I,)
Value or Algorithm: If = 0.0219 ± 0.0011 (mean ± SE)
Units: kg food/ kg BW/d
Notes: Data represent estimated food ingestion rate for 87 mule deer. Value derived based on known Cs-
137 concentrations in deer and forage. Value represents ingestion of air-dried food. Ingestion rate should
be adjusted for water content if fresh forage is consumed.
Reference: Alldredge et al. 1974
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0.02(If)
Units: kg soil/ kg BW/d
Notes: Soil ingestion rates were calculated for mule deer in north central Colorado feeding in a grassland-
shrub community (Arthur and Alldredge 1979). The intake varied by season, with a year-round average of
16.1 g/individual/d. The soil ingested ranged from 0.6 to 2.1% of the deers' diets (dry matter intake).
Beyer et al. (1994) report soil ingestion by mule deer to be <2% of their diet.
Reference: Beyer et al. 1994
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = 0.024-0.035 (range; winter)
Iw = 0.047-0.070 (range; summer)
Units: L water/ kg BW/d
Notes: Mule deer obtain much of their water through succulent forage or as dew on forage plants. This is
sufficient to meet their metabolic needs during the spring, summer, and fall; in the winter snow is ingested
(Mackie et al. 1982). Observations of mean water intake by penned mule deer range from 0.024-0.035
L/kg/d in winter and 0.047-0.070 L/kg/d in the summer (Anderson and Wallmo 1984). Water consumption
by black-tailed deer ranges from 0.053 L/kg/d in winter to 0.104 L/kg/d in summer (Anderson and Wallmo
1984).
Reference: NA
Parameter: Inhalation (IJ
Value or Algorithm: Ia= (0.54576*(BW)08)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d. Inhalation normalized to body weight using body weights reported in Alldredge et al.
1974.
Reference: Stahl 1967
Parameter: Diet Composition (p,)
Value or Algorithm: pplim = 1.0
Units: N/A
Notes: It is difficult to generalize the typical forage of mule deer; foods eaten vary dramatically in kind,
quantity, and nutritional quality as well as in digestibility from one season to another, from one year to the
next, and from place to place (Mackie et al. 1982). Mule deer may use many different plants at different
times, some may be eaten only in certain seasons, and some parts of plants may be selected over others. In
general, diets of mule deer consist mostly of browse, whereas the diets of elk, cattle, and wild horses consist
mainly of sedges and grasses (Hansen and Clark 1977). Both rumen and fecal analysis have been used to
describe deer diets, and both methods give similar results (Anthony and Smith 1974).
B-29
-------
Domain:Terrestrial Vertebrate Herbivore
Species: Long-tailed Vole (Microtus longicaudus)
Parameter: Body weight (BW)
Value or Algorithm: BWrf = 0.0465 (0.0369-0.0569; mean, range)
BW, = 0.0469 (0.042-0.0512; mean, range)
Units: kg
Notes:
Reference: Smolen and Keller 1987
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.097 (mean of values reported for other Microtus species)
Units: kg food/ kg BW/d
Notes: While no data concerning feeding rates in long-tailed voles were found, data are available for
related species. Among meadow voles, food intake when exposed to 14-h days was 0.095±0.002
(mean±SE) g/g/d; intake by individuals exposed to 10-h days was 0.085±0.005 g/g/d (Dark et al. 1983).
Mean food consumption by prairie voles (assumed to weigh 35 g; Burt and Grossenheider 1976) was 0.088
g/g/d and 0.12 g/g/d when ambient temperatures were 21 ° and 28°C, respectively (Dice 1922). Laboratory
study of shrews fed a diet of beef brains and Purina cat chow.
Reference: NA
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0.024(1,)
Units: kg soil/ kg BW/d
Notes: Data on soil ingestion by long-tailed voles was unavailable. Ingestion was assume to be comparable
to that reported for meadow voles (2.4% of diet; Beyer et al. 1994 ).
Reference: Beyer et al. 1994
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Smolen and Keller 1987.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia = (0.54576*(BW)° 8)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d. Inhalation normalized to body weight using body weights reported in Smolen and Keller
1987.
Reference: Stahl 1967
Parameter: Diet Composition (Pj)
Value or Algorithm: pplams = 1.0
Units: N/A
Notes: Diet consists exclusively of plant material (green foliage, bark, seeds; Smolen and Keller 1987).
Domain: Terrestrial Predator/Scavenger
Species: Long-tailed Weasel (Mustela frenata)
Parameter: Body weight (BW)
Value or Algorithm: BW, = 0.200 ± 0.054 (mean ± SD)
BW 9 = 0.094 ± 0.010 (mean ± SD)
Units: kg
B-30
-------
Notes: Values for individuals from Indiana
Reference: Mumford and Whitaker 1982
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.067 (males)
If = 0.080 (females)
Units: kg food/ kg BW/d
Notes: Brown and Lasiewski (1972) report the mean (±SD) metabolism of male and female long-tailed
weasels to be 1.36 ±0.2 and 0.84 ±0.12 kcal/hr, respectively. Assuming that male and female weasels
weigh 0.297 kg and 0.153 kg (Brown and Lasiewski 1972), respectively, the diet consists exclusively of
small mammals with an energy content of 5163 kcal/kg dry weight (Golley 1961), and the water content of
small mammals is 68% (EPA 1993), male and female weasels consume 0.067 and 0.080 kg food/kg BW/d.
Reference: NA
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0
Units: kg soil/ kg BW/d
Notes: Data on soil ingestion by long-tailed weasels was unavailable and therefore was assumed to be
negligible.
Reference: NA
Parameter: Water ingestion rate (Iw)
Value or Algorithm: I, = (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units convened to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Mumford and Whitaker 1982.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia= (0.54576*(BW)08)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
mV individual/d. Inhalation normalized to body weight using body weights reported in Mumford and
Whitaker 1982.
Reference: Stahl 1967
Parameter: Diet Composition (pt)
Value or Algorithm: psma,imammai =1-0
Units: N/A
Notes: While the diet of long-tailed weasels consists predominantly of small rodents (Peromyscus and
Microtus) and rabbits, birds may occasionally be taken (Poeldboer et al. 1941, Quick 1944, Fitzgerald
1977, Svendsen 1982). Fitzgerald (1977) reports that voles made up 99.1% of the diet of weasels in
California.
Domain: Piacivore
Species: Mink (Mustela vison)
Parameter: Body weight (BW)
Value or Algorithm: BWJ= 1.111 ±0.137 (mean ± SD)
BW, = 0.552 ± 0.094 (mean ± SD)
Units: kg
Notes: Values for individuals from Indiana
Reference: Mumford and Whitaker 1982
B-31
-------
Parameter: Food ingestion rate (I,)
Value or Algorithm: 1, = 0.12±0.012 (mean ± SD; males)
If = 0.16 ± 0.018 (mean ± SD; females)
Units: kg food/ kg BW/d
Notes: Food ingestion rates observed for male and female mink in captivity
Reference: Bleavins and Aulerich 1983
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0
Units: kg soil/ kg BW/d
Notes: Hamilton (1940) observed sand in 1.3% of mink scats. This amount did not account for any
measurable scat volume. Soil ingestion is therefore assumed to be negligible.
Reference: NA
Parameter: Water ingestion rate (Iw)
Value or Algorithm: I, = (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Mumford and Whitaker 1982.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Id = (0.54576*(BW)° 8)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d. Inhalation normalized to body weight using body weights reported in Mumford and
Whitaker 1982.
Reference: Stahl 1967
Parameter: Diet Composition (p,)
Value or Algorithm: Pwull mammll = 0.46
Pn* =0.16
Pamphihu* = 0. 1 3
Ph.nl = 0.08
Units: N/A
Notes: Diets are diverse, varying among individuals, by locations, and by time of year. The values reported
represent the mean proportions of different prey types from 4 studies (Hamilton 1940, Sealander 1943,
Korsgen 1958, Burgess and Bider 1980).
Domain: Aquatic Omnivore
Species: Raccoon (Procyon lotor)
Parameter: Body weight (BW)
Value or Algorithm: BW^ = 6.76 (mean; n=5371)
BW8 = 5.94 (mean; n=2809)
Units: kg
Notes: Values for individuals from Missouri
Reference: Lotze and Anderson 1979
Parameter: Food ingestion rate (If)
Value or Algorithm: I, = 0.52 ±0.018 (mean ± SD)
Units: kg food/ kg BW/d
Notes: Teubner and Barrett (1983) report that captive yearling raccoons consumed 457 ± 10 (mean ± SD)
kcal/kg/d. Assuming a diet composed of molluscs (44%), Crustacea (25%), fish (9 %) and marine worms
B-32
-------
(21%) as reported by Tyson (1950) and fresh weight energy content of 0.8, 1, 1.2, and 0.83 kcal/g for
molluscs, crustacea, fish, and worms, respectively (EPA 1993), raccoons are estimated to consume 0.52 ±
0.018 (mean ± SD) kg/kg/d.
Reference: NA
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0.094*If
Units: kg soil/ kg BW/d
Notes:
Reference: Beyer et al. 1994
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw= (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Lotze and Anderson 1979.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia= (0.54576*(BW)08)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d. Inhalation normalized to body weight using body weights reported in Lotze and Anderson
1979.
Reference: Stahl 1967
Parameter: Diet Composition (PJ)
Value or Algorithm: pmonuxi = 0.44
Pcnmacca = 0.25
Pr,sh = 0.09
Pw«n» =0.21
Units: N/A
Notes: Raccoons are omnivorous, consuming a wide variety of plant and animal foods (Lotze and Anderson
1979). They may be highly selective when food is abundant and consume whatever is available when food
is scarce. Values reported above represent the diet composition observed among raccoons of the coastal
mudflats of SW Washington (Tyson, 1950).
Domain: Terrestrial Ground Invertebrate Feeder
Species: Trowbridge Shrew (Sorex trowbridgeii)
Parameter: Body weight (BW)
Value or Algorithm: BWrf= 0.00449 (mean; Oregon)
Units: kg
Notes: Weight range of 0.004-0.0055 kg is reported for CA (Silva and Downing 1995). Rust (1978)
reports mean (± SE) BW of breeding and non-breeding adults to be 7.24 ± 0.48 g and 6.13 ± 0.23 kg,
respectively.
Reference: Silva and Downing 1995
Parameter: Food ingestion rate (If)
Value or Algorithm: Ir = 0.91 ± 0.03 (mean ± SE; breeding)
I, = 1.43 ± 0.10 (mean ± SE; non-breeding)
Units: kg food/ kg BW/d
B-33
-------
Notes: Laboratory study of shrews fed a diet of beef brains and Purina cat chow.
Reference: Rust 1978
Parameter: Soil ingestion rate (Is)
Value or Algorithm: Is = 0.13(If)
Units: kg soil/kg B W/d
Notes: Data on soil ingestion by Trowbridge shrews was unavailable. Ingestion was assume to be
comparable to that reported for short-tailed shrews (13% of diet; Talmage and Walton 1993).
Reference: Talmage and Walton 1993
Parameter: Water ingestion rate (Iw)
Value or Algorithm: Iw = (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d. Water ingestion normalized to body weight
using body weights reported in Silva and Downing 1995.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia = (0.54576*(BW)° 8)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d. Inhalation normalized to body weight using body weights reported in Silva and Downing
1995.
Reference: Stahl 1967
Parameter: Diet Composition (p,)
Value or Algorithm: p,nvcncbralcs = 1.0
Units: N/A
Notes: Data from the Sierra Nevada of California indicate that the diet consists almost exclusively of
arthropods (George 1989).
Domian: Terrestial Omnivore
Representative Species: White-footed Mouse (Peromyscus leucopus)
Parameter: Body weight (BW)
Value or Algorithm: BWrf = 0.0216 ± 0.0009 (mean ± SE)
BW9= 0.0208 ±0.0011 (mean ±SE)
BW_,S= 0.0212 ±0.0006 (mean ± SE)
Units: kg
Notes: Values are summaries from multiple locations throughout North America.
Reference: Silva and Downing 1995
Parameter: Food ingestion rate (If)
Value or Algorithm: 1, = 0.1513 ± 0.0054 (mean ± SE)
Units: kg food/ kg BW/d
Notes: Laboratory study of mice fed Purina rat chow. Body weights and gut dimensions of male and
female mice did not differ, so data were combined. Data reported as g food consumed /individual/d. Food
ingestion normalized to body weight using body weights reported in study.
Reference: Green and Millar 1987
Parameter: Soil ingestion rate (Is)
Value or Algorithm: I,. = 0.02*(If)
Units: kg soil/ kg BW/d
Notes: Based upon data from field collected mice, soil consumption is estimated to be <2% of diet.
B-34
-------
Reference: Beyer et al. 1994
Parameter: Water ingestion rate (I J
Value or Algorithm: Iw= [(99*(BW)09)*1/1000]/BW
Iw= (0.099*(BW)09)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d by multiplying by the following conversion
factor: IL/lOOOmL. Water ingestion normalized to body weight using body weights reported in Silva and
Downing 1995.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia= [(379*(BW)08)*60*24*1/1000*1/1000 ]/BW
I, = [(379*(BW)08)*0.00144 ]/BW
Ia = (0.54576*(BW)08)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Stahl (1967) estimates inhalation in mL/individual/min. Units converted to
m3/ individual/d by multiplying by'the following conversion factors: 60 minutes/hr, 24 hr/d, IL/lOOOmL,
ImVlOOOL. Inhalation normalized to body weight using body weights reported in Silva and Downing 1995.
Reference: Stahl 1967
Parameter: Diet Composition (p,)
Value or Algorithm: p,,,ven(;brales = 0.5
Pplam = 0.5
Units: N/A
Notes: White-footed mice forage opportunistically, consuming a wide variety of foods. In Virginia, on
average throughout the year, 57.1 % of the diet consisted of arthropods and 38.6% was plant material (fruits,
seeds, and green vegetation; Wolff et al. 1985. Study contains data on seasonal variability of diet). In
Indiana, diets were approximately 30% invertebrates and 67% plant material (Whitaker 1966; Study
contains data on variability of diet over seasons and among three habitat types). The diet of mice in Illinois
was found to be 50% invertebrates and 48% seeds, fruit and other plant material (Batzli 1977; Study
contains data on variability of diet over seasons and among two habitat types). The results of these studies
indicate that while diet composition varies among habitats and over seasons, on average approximately 50%
consists of invertebrates and 50% consists of plant material (fruits-, seeds, and green vegetation).
Domian: Semi-aquatic Piscivore
Representative Species: Belted Kingfisher (Ceryle atcyon)
Parameter: Body weight (BW)
Value or Algorithm: BW^,= 0.148 ±0.039 (mean ± SE)
Units: kg
Notes: Weights for males and females overlap. In spring in MN, male weights ranged from 0.138-0.150 kg
while female weights ranged from 138-169 kg (Hamas 1994). Values are summaries from multiple locations
throughout North America.
Reference: Dunning 1993
Parameter: Food ingestion rate (If)
Value or Algorithm: If = 0.5(BW)
Units: kg food/ kg BW/d
Notes: Food consumption in MI estimated to be approximately 50% of body weight/d.
Reference: Alexander 1977
Parameter: Soil ingestion rate (I,)
B-35
-------
Value or Algorithm: 0
Units: kg soil/ kg BW/d
Notes: Because kingfishers forage from perches near water or by hovering over water (Hamas 1994)
incidental ingestion of soil is assumed to be negligible
Reference:
Parameter: Water ingestion rate (!„)
Value or Algorithm: Iw= [(59*(BW)067)*1/1000]/BW
Iw= (0.059*(BW)067)/BW
Units: L water/ kg BW/d
Notes: Allometric equation from Calder and Braun (1983) estimates water consumption in
mL/individual/day. Units converted to L water/ individual/d by multiplying by the following conversion
factor: IL/lOOOmL. Water ingestion normalized to body weight using body weights reported in Dunning
1993.
Reference: Calder and Braun 1983
Parameter: Inhalation (Ia)
Value or Algorithm: Ia= [(284*(BW)077)*60*24*1/1000*1/1000 ]/BW
Ia = [(284*(BW)077)*0.00144 ]/BW
Ia= (0.40896*(BW)08)/BW
Units: m3 air/ kg BW/d
Notes: Allometric equation from Lasiewski and Calder (1971) estimates inhalation in mL/individual/min.
Units converted to m3/ individual/d by multiplying by the following conversion factors: 60 minutes/hr, 24
hr/d, IL/lOOOmL, ImVlOOOL. Inhalation normalized to body weight using body weights reported in
Dunning 1993.
Reference: Lasiewski and Calder 1971
Parameter: Diet Composition (pj)
Value or Algorithm: pfish =0.866
Pcrayfish =0.133
Units: N/A
Notes: The diet of belted kingfishers consists primarily of small fish, but may also include molluscs,
crustaceans, insects, amphibians, reptiles, young birds and small mammals (Hamas 1994). Davis (1982)
reports the diet of kingfishers in Ohio to consist of crayfish (13.3%) and small fish (86.6%; minnows
(12.7%), non-minnow fish (10.2%), stonerollers (37.6%), and unidentified cyprinids (26.1%)) In Michigan,
fish accounted for 46-86% of the diet, with crustaceans, insects, and amphibians accounting for the
remainder (Alexander 1977). All fish were <12.7 cm in length. In Ohio, the size distribution offish
consumed ranged from 4 to 14 cm, with 87% falling between 6 and 12 cm (Davis 1982). For the purposes
of this study, the diet of kingfishers is assumed to be best represented by the results of Davis (1982)
B-36
-------
References
Alldredge, A.W., J.F. Lipscomb and F.W. Whicker. 1974. Forage intake rates of mule deer estimated with fallout
cesium-137. J. Wildl. Manage. 38(3):508-516.
Anderson, A.E., and O.C. Wallmo. 1984. Odocoileus hemionus. Mammalian Species. No. 219. American Soc.
Mammal. 9 pp.
Anthony, R.G. and N.S. Smith. 1974. Comparison of rumen and fecal analysis to describe deer diets. J. Wildl.
Manage. 38(3):535-540.
Arthur, W.J., III and A.W. Alldredge. 1979. Soil ingestion by Mule deer in north central Colorado. J. Range
Manage. 32: 67-70.
Beal, F.E.L. 1918. Food habits of swallows, a family of valuable native birds. USDABull. 619. 28pp.
Bell, G.P. 1990. Birds and mammals on an insect diet: a primer on diet composition analysis in relation to
ecological energetics. Stud. Avian Biol. 13:416-422.
Bent, A.C. 1946. Life histories of North American jays, crows, and titmice. U.S. Natl. Mus. Bull. 191.
Beyer, W.N., E. Conner, and S. Gerould. 1994. Estimates of soil ingestion by wildlife. J. Wildl. Mgmt. 58: 375-
382.
Blancher, P.J., and O.K. McNicol. 1991. Tree swallow diet in relation to wetland acidity. Can. J. Zool. 69:2629-
2637.
Bleavins, M.R. and R.J. Aulerich. 1981. Feed consumption and food passage time in mink (Mustela vison) and
European ferrets (Mustela putorius furo). Lab. Anim. Sci. 31: 268-269.
Brown, J.H., and R.C. Lasiewski. 1972. Metabolism of weasels: the cost of being long and thin. Ecology 53: 939-
943.
Burgess, S.A. and J.R. Bider. 1980. Effects of stream habitat improvements on invertebrates, trout populations, and
mink activity. J. Wildl. Manage. 44: 871-880.
Burt, W.H. and R.P. Grossenheider. 1976. A field guide to the mammals of America north of Mexico. Third
Edition. Houghton Mifflin Co., Boston
Calder, W.A. and E.J. Braun. 1983. Scaling of osmotic regulation in mammals and birds. Am. J. Physiol. 224:
R601-R606.
Dark, J., I. Zucker, and G.N. Wade. 1983. Photoperiodic regulation of body mass, food intake, and reproduction in
meadow voles. Am. J. Physiol. 245: R334-R338.
Dice, L.R. 1922. Some factors affecting the distribution of the prairie vole, forest deer mouse, and prairie deer
mouse. Ecology 3: 29-47.
Dunning, J.B.. 1993. "CRC handbook of avian body masses" CRC Press, Boca Raton, FL. 371pp.
EPA (U. S. Environmental Protection Agency). 1993. "Wildlife exposure factors handbook." Volume I. Office of
Research and Development, Washington, DC.EPA/600/R-93/187a.
Fitzgerald. B.M. 1977. Weasel predation on a cyclic population of the montane vole (Microtus montanus) in
California. J. Anim. Ecol. 46: 367-397.
George, S.B. 1989. Sorex trobridgii. Mammalian Species No. 337. pp 1-5.
Golley, F.B. 1961. Energy values of ecological materials. Ecology. 42:581-584.
Hamilton, W.J.Jr. 1940. The summer food of minks and raccoons on the Montezuma marsh, New York. J. Wildl.
Manage. 4: 80-84.
Hansen, R.M. and R.C. Clark. 1977. Foods of elk and other ungulates at low elevations in Northwestern Colorado. J.
Wildl. Manage. 41(1 ):76-80.
Heinz, G.H., D.J. Hoffman, A.J. Krynitsky, and D.M.G. Weller. 1987. "Reproduction in mallards fed selenium."
Environ. Toxicol. Chem. 6: 423-433.
Jackson, R. B., J. Canadell, J. R. Ehleringer, H. A. Mooney, O. E. Sala, and E. D. Schulze. 1996. A global analysis
of root distributions for terrestrial biomes. Oecologia 108:389-411.
Korschgen, L.J. 1958. December food habits of mink in Missouri. J. Mamm. 39: 521-527.
Lasiewski, R.C., and W.A. Calder, Jr. 1971. A preliminary allometric analysis of respiratory variables in resting
birds. Resp. Physiol. 11: 152-166.
Lee, K. E. 1985. Earthworms: their ecology and relationships with soils and land use. Academic Press, Sydney,
Australia.
Lotze, J.H., and S. Anderson. 1979. Procyon lotor. Mammalian Species. No. 119. pp. 1-8.
B-37
-------
Mackie, R.J., K.L. Hamlin, and D.F. Pac. 1982. Mule deer. Pp. 862-877. In Chapman, J.A. and G.A. Feldhamer,
eds. Wild Mammals of North America. Biology, Management, and Ecomomics. The Johns Hopkins
University Press, Baltimore. 1147 pp.
Martin, A.C., H.S. Zim, and A.L. Nelson. 1951. American wildlife and plants: A guide to wildlife food habits.
Dover Publ. Co., New York. 500 pp.
Mayoh, K.R., and R. Zach. 1986. Grit ingestion by nestling tree swallows and house wrens. Can. J. Zool. 64:
2090-2093.
Muller, H., and G. Prohl. ECOSYS-87. A dynamic model for assessing radiological consequences of nuclear
accidents. Health Physics 64:232-252.
Mumford, R. E., and J. O. Whitaker, Jr. 1982. Mammals of Indiana. Indiana University Press, Bloomington, Indiana.
Nagy, K.A. 1987. Field metabolic rate and food requirement scaling in mammals and birds. Ecol. Monogr. 57:
111-128.
Nelson, A.L., and A.C. Martin. 1953. Gamebird weights. J. Wildl. Manage. 17: 36-42.
Polderboer, E.B., L.W. Kuhn, and G.O. Hendrickson. 1941. Winter and spring habits of weasels in central Iowa. J.
Wildl. Manage. 5: 115-119.
Preston, C.R., and R.D. Beane. 1993. Red-tailed Hawk. (Buteo jamaicensis). In The Birds of North America, No.
52 (A. Poole and F. Gill, eds.). The Academy of Natural Sciences, Philadelphia, and the American
Ornithologists' Union, Washington, D.C.
Quick, H.F. 1944. Habits and economics of the New York Weasel in Michigan. J. Wildl. Manage. 8:71-78.
Quinney, T.E., and C.D. Ankney. Prey size selection by tree swallows. Auk 102: 245-250.
Rust, A.K. 1978. Activity rythms in the shrews, Sorex sinuosus Grinnell and Sorex trowbridgii Baird. Am. Midi.
Nat. 99: 369-382.
Sample, B.E., R.J. Cooper, and R.C. Whitmore. 1993. Dietary shifts among songbirds from a diflubenzuron-treated
forest. Condor 95: 616-624.
Sealander, J.A. 1943. Winter food habits of mink in southern Michigan. J. Wildl. Manage. 7: 411-417.
Sherrod, S.K. 1978. Diets of North American Falconiformes. Raptor Res. 12:49-121.
Silva, M., and J.A. Downing. 1995. "CRC handbook of mammalian body masses" CRC Press, Boca Raton, FL.
359pp.
Smith, S.M. 1993. Black-capped Chickadee (Parus atricapillus). In The Birds of North America, No. 39 (A. Poole
and F. Gill, eds.). The Academy of Natural Sciences, Philadelphia, and the American Ornithologists' Union,
Washington, D.C.
Smolen, M.J., and B.L. Keller. 1987. Microtus longicaudus. Mammalian Species No. 271. pp 1-7.
Stahl.W.R. 1967. Scaling of respiratory variables in mammals. J. Appl. Physiol. 22(3): 453-460.
Stehly, G. R., P. F. Landrum, M. G. Henry, and C. Klemm, 1990, Toxicokinetics ofPAHs in
Hexagenia, Environmental Toxicology and Chemistry, 9: 167-174.
Svendsen, G.E. 1982. Weasels, in Chapman, J.A., and G.A. Feldhamer, eds. Wild Mammals of North America:
Biology, Management, and Economics. Johns Hopkins Press, Baltimore.
Talmage, S.S., and B.T. Walton. 1993. Food chain transfer and potential renal toxicity of mercury to small
mammals at a contaminated terrestrial field site. Ecotoxicology 2: 243-256.
Teuber, V.A., and G.W. Barrett. 1983. Bioenergetics of captive raccoons. J. Wildl. Manage. 47:272-274.
Tyson, E.L. 1950. Summer food habits of the raccoons in southwest Washington. J. Mammal. 31:448-449.
Williams, J.B. 1988. Field metabolism of tree swallows during the breeding season. Auk 105: 706-714.
B-38
-------
APPENDIX C
RESULTS FROM TRIM.FaTE
PROTOTYPE 2 AND 3 SIMULATIONS
-------
Table of Contents.
Page
C.l.O TRIM.FaTE Prototype 2 C-l
C. 1.1 Run 1: Pristine Cells at Initial time (t0) with a Constant Air Source Term . C-l
C. 1.2 Run 2: Decrease in Organic Carbon partition Coefficient (K^.) C-2
C. 1.3 Run 3: Nonpristine Surface Water Cell at Initial Time (t0) with a
Constant Air Source Term C-3
C.I.4 Run 4: Pristine Initial Conditions with a Varied Air Source Term C-4
C. 1.5 Run 5: Nonpristine Surface Water Cell at Initial Time (t0) with a Varied
Air Source Term C-5
C. 1.6 Comparison of Prototype 2 and CalTOX Transfer Factors C-5
C. 1.7 Comparison of Prototype 2 Results with CalTOX C-6
C.2.0 TRIM.FaTE Prototype 3 C-8
C.2.1 Steady-State Scenario C-8
C.2.2 Annual Steady-State Emissions Scenario C-10
C.2.3 One-Hour Puff Emission Single Day Scenario C-10
C.2.4 Comparison of Prototype 3 and CalTOX Transfer Factors C-11
C.2.5 Comparison of Prototype 3 Results with CalTOX C-12
-------
Appendix C
Results from Trim.FaTE Prototype 2 and 3 Simulations
C. 1.0 TRIM.FaTE Prototype 2.
This section presents the outputs of TRIM.FaTE Prototype 2 (P2) simulations and comparisons
of these outputs with CalTOX. Features of P2 are described in Chapter 3.0. The simulations
described in the following subsections used constant input parameters unless otherwise indicated
and used a time period of 500 days with a 50-day increment. Run 1 was used as the "control
run," which was used for comparison to other runs that varied inputs such as the organic carbon-
water partition coefficient (K^), initial concentration in surface water, and/or the air source term
concentration.
C. 1.1 Run 1: Pristine Cells at Initial Time (tg) with a Constant Air Source Term
A constant air source term of 4.32 grams per hour for 500 days was used. All cells were given an
initial pristine concentration of 1 x 10'8.
Results
Plant Domain. The leaf concentration increased 6.5 orders of magnitude within
the first time increment and then remained constant with time. Although the air
source term continued to release contaminant throughout the 500 days, the leaf
reached a point of equilibrium within the first time increment. The leaf weathering
sink also showed an immediate increase in concentration within the first time
increment and continued to increase throughout the entire 500 days to a level of
approximately 8 orders of magnitude higher than the initial pristine condition.
The stem decreased almost 5 orders of magnitude in the first time increment,
decreased again slightly in the second time increment, and then increased with time
to a level 4 orders of magnitude less than the initial pristine level of 1 x 10"8. The
xylem decreased about 8 orders of magnitude in the first, second, and third time
increments, and then slightly increased with time to a level 7 orders of magnitude
less than the initial pristine level of 1 x 10"8. The plant root decreased in the first
time increment and then increased with time to a level almost 1 order of magnitude
less than the initial pristine level of 1 x 10"8.
The results of the plant domain indicate that the leaf is very susceptible to
benzo(a)pyrene (B[a]P) and that it takes more than 500 days for concentration to
accumulate in the stem, xylem, and root.
C-l
-------
• So/7 Domains. Surface soil concentration increased within the first time
increment more than 8.5 orders of magnitude. The concentration continued to
increase slightly over the remaining 500 days to just over 9 orders of magnitude.
The soil root zone concentration increased approximately 4.5 orders of magnitude
within the first time increment and continued to increase over the remaining 500
days to a level more than 6 orders of magnitude higher than the initial pristine
condition. Soil zone 1 concentration remained at the pristine condition until the
fourth time increment and continued to increase less than an order of magnitude.
Soil zone 2 and groundwater reacted identically and remained at pristine conditions
until the fourth increment, when their concentrations decreased over the remaining
time to a concentration level slightly less than the pristine level.
• Water, Sediment, and Fish Domains. The surface water, sediment, fish, and
associated sinks associated with these domains showed concentrations increasing
mainly within the first time increment and then slightly for the remaining time
increments. The sediment and surface water reaction sink concentrations increased
the most significant to a level approximately 9.5 orders of magnitude higher than
the initial pristine level. The sediment reaction sink increased over the 500 days
approximately 8.5 orders of magnitude and the sediment burial sink remained
unchanged from the initial concentration. The surface water concentration leveled
out at 7 orders of magnitude higher than initial concentration. The fish concentra-
tion increased 3.5 orders of magnitude.
• Air Domains. Air 1, air 2, upper air 1, and upper air 2 domains each had concen-
tration increases during the first time increment and then remained constant for the
remaining increments. The concentrations increased between 6.5 and 7.5 orders of
magnitude higher than initial conditions.
The corresponding air domain sinks showed concentrations increasing mainly
during the first increment and then slightly for the remaining 450 days. The final
concentration increased 9 to 11 orders of magnitude higher than the initial
concentrations.
C. 1.2 Run 2: Decrease in Organic Carbon Partition Coefficient (Koc)
The Kx value was decreased from 2.5 x 10"6 to 2.5 x 103. The air source term was constant at
4.32 grams per day for 0 to 500 days. All cells had an initial pristine concentration of 1 x 10"8.
Run 2 was compared to Run 1 to identify the affects of decreasing the K^. value.
Results
Plant Domain. The leaf and leaf weathering sink have no noticeable affect from
the decrease in the K^. value. The root, stem, and xylem concentrations increased
approximately 5 orders of magnitude.
C-2
-------
• So/7 Domains. The surface soil and groundwater have no noticeable change with
respect to K^.. The soil root zone concentration increased linearly with the decrease
in KO,. value (3 orders of magnitude). Soil zone 1 concentration increased 5 orders
of magnitude. Soil zone 2 nearly increased 2 orders of magnitude.
With respect to time, the surface soil, root zone and soil zone 1 were affected immediately and
soil zone 2 showed an increase at approximately 100 days. Without the decrease in K^ value
(Run 2), soil zone 2 showed a decrease in concentration from the 1 x 10"8 initial value, indicating
partitioning to soil zone 1.
The soil reaction sinks reacted identical to that previously described.
• Water, Sediment, and Fish Domains. The surface water concentration
decreased approximately a half an order of magnitude, while the surface water
reaction sink decreased almost a half an order of magnitude. The sediment and
sediment reaction sink concentrations increased 2 orders of magnitude and the
sediment burial sink remained unchanged. The fish concentration increased slightly
(less than half an order of magnitude).
• Air Domains. Air domains remained unaffected by the change in K^, value.
C.1.3 Run 3: Nonpristine Surface Water Cell at Initial Time (tg) with a Constant
Air Source Term
A constant air source term of 4.32 grams per hour for 500 days. The surface water cell had an
initial concentration of 1 x 103 grams. All other cells have an initial pristine concentration of 1 x
10'8 grams.
Results. As expected, the plant, soil, and air domains remained unaffected by the initial
concentration increase in surface water. The surface water concentration decreased within the
first time increment over 2 orders of magnitude. The concentration from the surface water
transferred directly to the sediment. At time equal to 50 days, the sediment concentration is
approximately 1 x 103 grams (the surface water initial concentration). The sediment
concentration decreased over the remaining time increments almost an order of magnitude.
The fish, surface water, and sediment reaction sink concentrations increased identical to the
patterns observed in Run 1, but had final concentrations 1.5 orders of magnitude higher than
those observed in Run 1. The sediment burial sink remained at initial pristine conditions.
C-3
-------
C.I A Run 4: Pristine Initial Conditions with a Varied Air Source Term
A varied air source term was used:
• Time 0-10 days: concentration was 0 grams per day
• Time 10-100 days: concentration was 4.32 grams per day
• Time 100-500 days: concentration was 0 grams per day.
All cells have an initial pristine concentration of 1 x 10"8.
Results
• Plant Domain. During the first time increment, the leaf, root, xylem, and stem
decrease from the initial concentration. The leaf weathering sink increases less than
a 0.5 order of magnitude. By the second time increment, the leaf obtains its
apparent equilibrium concentration identical to Run 1. After the second time incre-
ment (100 to 500 days), the leaf concentration decreases to just above the initial
pristine condition.
The root, stem, and xylem react identical to Run 1, but have final concentrations
approximately 0.5 order of magnitude less than Run 1.
• Soil Domains: The second increment shows the surface soil concentration
identical to the concentration in Run 1 after the first increment. The remaining time
(100 to 500 days) shows concentrations reflecting no air source term (a decrease in
concentration). The soil root zone shows a concentration increase within the first
increment of 0.5 order of magnitude. From 50 to 100 days, the concentration
increases 4 more order of magnitudes. After 100 days, the concentration increases
slightly and levels off approximately 5 orders of magnitude higher than the initial
pristine concentration. As expected, the soil zones and groundwater show rela-
tively no change from the initial pristine condition.
• Water, Sediment, and Fish Domains. The varied air source appears to have
little affect on the final concentrations in the water, sediment, and fish domains.
Although surface soil concentrations drop almost 2 orders of magnitude within the
first time increment, by the second time increment, the concentration is identical to
Run 1 and then continues to slowly drop to a level approximately 1 order of magni-
tude less than results of a continuous air source. Sediment, fish, and surface water
reaction sink concentrations increase minimal within the first time increment and
then maintain the same concentration as in Run 1 by the second time increment.
The final concentrations are approximately 0.5 order of magnitude less than the
final concentration of Run 1. The sediment burial sink is unaffected.
• Air Domains. The air domains appear to be responsive to the air source term
more than other domains. The air concentrations drop approximately 7 orders of
C-4
-------
magnitude by the first time increment and increase by 13 orders of magnitude by
the second time increment. After 100 days (when the source term is 0 grams/day),
the concentrations drop to nearly pristine conditions. This is noticeable more with
the upper air domains. Air 2 domain final concentration is approximately 0.5
orders of magnitude higher than the air 1 domain. The sinks maintain the concen-
trations found in Run 1 after the first time increment.
C. 1.5 Run 5: Nonpristine Surface Water Cell at Initial Time (tj with a Varied Air
Source Term
A varied air source term was used:
• Time 0-10 days: concentration was 0 grams per day
• Time 10-100 days: concentration was 4.32 grams per day
• Time 100-500 days: concentration was 0 grams per day.
The surface water cell had an initial concentration of 1 x 103. The remaining cells have an initial
pristine concentration of 1 x 10~8. This run was compared to Run 4, which had an identical air
source term.
Results. As expected, the plant, soil, and some air domains remained unaffected by the initial
concentration increase in surface water. The surface water concentration decreased within the
first time increment over 2 orders of magnitude. The concentration from the surface water
transferred directly to the sediment. At time equal to 50 days, the sediment concentration is
approximately 1 x 103 grams (the surface water initial concentration). The sediment
concentration decreased over the remaining time increments almost an order of magnitude. The
air 2 and upper air 2 domains did not drop in concentrations as with Run 4, but increased
continually until the air source term was 0 grams/day (greater than 100 days). Because these two
air domains are above the surface water, their final concentrations are approximately 2 orders of
magnitude higher than in Run 4.
The fish, surface water, and sediment reaction sink concentrations increased identically to the
patterns observed in Run 4, but had final concentrations 1.5 orders of magnitude higher than
those observed in Run 4. The sediment burial sink remained at initial pristine conditions.
C. 1.6 Comparison of Prototype 2 and CalTOX Transfer Factors
CalTOX and P2 were compared to find similarities and differences between the models (Table
C-l). Many of the transfer processes in P2 were modeled after CalTOX; thus, the two models
should yield similar results for the transfer factors. Differences should be expected in the masses
C-5
-------
Table C-1
Comparison Between Prototype 2 and CalTOX Transfer Factors
Diffusion
CalTOX TRIM
7.15 x10'1 1.43x10°
5.07 X1Q-4 5.27 x 10"4
5.40 x10'2 1.01X10'1
2.29 X1Q-6 2.15 X1Q-6
2.57 X10"6 3.79 x10'6
6.90 x10'8 1.01X10'7
0.00x10° 1.50x10'1°
0.00x10° 0.00X10-0
2.49 X1Q-" 2.49x10-4
2.04 x10'6 2.15x10-6
Advection
CalTOX TRIM
1.02x10° 2.04x10°
0.00x10° 0.00x10°
1.02x10° 2.04x10°
1.40 x10'7 1.52 x10'7
1.55x1Q-7 1.40x10-7
0.00x10° 0.00x10°
4.17 x10'9 4.10 x10'9
7.73 x10'10 1.50x10'9
1.2 x101 1.24 X101
1.01x10'1 1.01X10'1
Total
CalTOX TRIM
1.73x10° 3.47x10°
5.07x10-" 5.27 x 10"4
1.07x10° 2.14x10°
2.43 X10"6 2.30 X10"6
2.72 xW6 3.93x10-*
6.90x10-* 1.01x10'7
4.17x10'9 4.25 x10'9
7.73x10'10 1.50x10'9
1.24 x101 1.24 x101
1.01x10'1 1.01x10'1
2.50 x10'5 0.00x10°
6.92 x101 6.92 x101
1.62X1Q-5 1.62x105
1.65X1Q-4 1.74x10'"
1.10x101 1.10x101
3.03 X10'3 3.03 x10-3
3.03 x10'3 3.03 x10'3
7.88 X10"4 7.88 X1Q-4
7.88 X1Q-4 7.88 x 10""
2.97x10'1 2.97 x10'1
5.91 x10'4 5.91 x10'4
Cell Interlace
air-water, T_aw
water-air, T_wa
air-ground, T_ag
ground-air, T_ga
ground-soil, T_gs
soil-ground, T_sg
soil-vadose, T_sv
vadose-aquifer, T_vq
water-setftment, T_wd
sediment-water, T_dw
sediment-out, T_do
air-out, T_ao
ground-water, T_gw
water-out, T_wo
Ra
Rg
Rs
Rv
Rq
Rw
Rd
in each cell because CalTOX models the root zone and vadose zone dynamically with other cells in
steady state while all cells are dynamic in P2. However, cells that come to steady state in less time
than the length of the model should yield similar results. The mass of B(a)P in each cell was
compared after a 5- and a 25-year simulation (Table C-2).
Most of the transfer factors are similar. The transfer from the vadose zone P2 to the aquifer is twice
as large in CalTOX, a result of using one vadose zone in CalTOX and two in TRIM. The air to
water and air to soil in P2 are twice as large as in CalTOX, a result of using one air cell in CalTOX
and two in P2.
The transfer factors for plants were not compared at this time because both CalTOX and the plant
cell is being updated. A comparison should be made for P3.
C-6
-------
Table C-2
Mass Distribution of B(a)P (grams) in CalTOX
and Prototype 2 At 5 and 25 Years*
Values Based on 5 Years Values Based on
CalTOX TRIM CalTOX/ TRIM CalTOX TRIM
air
plants
ground-soil
root-soil
vadose-zone
surface water
sediment
aquifer
2.9x10°
1.2 x103
3.1 x103
2.3x10°
5.2 x10'6
1.4 xlO1
1.7x103
2.0x10"*
4.9x10°
1.7x10°
1.7x103
1.7x 10°
3.7X1Q-6
2.4x10'
4.3x10°
5.9 x10"9
6.0x10'1
7.0 x102
1.9x10°
1.3x10°
1.4x10°
5.6x10"'
3.9 x102
3.4 x102
2.9x10°
1.2 x103
3.1 x103
2.7x10°
1.2x10"5
1.4x10'
1.7 x103
4.7 x10"6
4.9x10°
1.7x10°
1.9 x103
2.5x10°
1.1 x10'5
2.4x10'
8.8x10°
9.5 x10-10
25 Years
CalTOX/ TRIM
6.0 x10"'
7.0 X102
1.6x10°
1.1 x10°
1.1 x10°
5.6x10''
1.9 x102
4.9 x102
'Based on an air emission of 1 mole per day.
The sediment out term in CalTOX refers to the sediment burial rate. TRIM calculates sediment
burial rates based on the sediment deposition and sediment resuspension rates, which at this time
are set equal to each other. Changes to the sediment model are planned for Prototype 3 (P3) and a
comparison will be made at that time.
C.1.7 Comparison of Prototype 2 Results With CalTOX
The mass in each cell was calculated using each model. The masses were comparable except for
three notable differences: plants, sediment, and aquifer.
The sediment cell in CalTOX is in steady state with the surrounding cells. This cell acts like a
dynamic cell in reality and should be modeled as such. The predictions in TRIM reflect the effect
of having a dynamic cell. As the length of the simulation is increased, the difference between the
two models decreases.
There are extreme variations between the predicted mass in the aquifer cell. Aquifers are extremely
challenging to model and in both TRIM and CalTOX, simple approximations have been used.
CaJTOX uses one well mixed vadose zone cell, while TRIM uses two. The lower vadose cell in
TRIM has over three orders of magnitude less mass than the upper one, reflecting the gradients that
occur in soil. However, there could be breakthrough paths in a real environment enabling the
pollutant to reach the aquifer rather quickly, mimicking the setup in CalTOX. Refinements for the
C-7
-------
soil and aquifer cells in P3 include a review of the diffusion processes and calculation of a
retardation factor in determining the groundwater velocity. After the refinements, it might be more
appropriate to compare them to a model such as T2VOC, a fully dynamic subsurface model.
C.2.0 TRIM.FaTE Prototype 3
This section presents the outputs of TRIM.FaTE P3 simulations and comparisons of these outputs
with CalTOX. Features of P3 are described in Chapter 3.0 of the technical support document.
Three scenarios were run with P3 to test the validity of the outputs. The scenarios and resulting
outputs are discussed in the following sections.
C.2.1 Steady-State Scenario
This scenario included running P3 to obtain a long-term steady-state solution. P3 was run without
varying the input parameters with time, for 10 years with a constant source of 9 grams per hours
(g/hr) in lower air 1 cell. The steady-state concentrations are shown in Table C-3. The mass
distribution of B(a)P for a steady- state solution is shown in Figure C-l. This assumes that the total
macrophyte volume is significantly less than water volume. From this figure (where mass is in log
units), it can be seen that B(a)P predominantly accumulates in the soil and sediments. This is what
would be expected given the extremely high soil-water distribution coefficient of B(a)P (sorbs
preferentially to soil). Mass distribution outputs for P3 showed high degree of sensitivity to
macrophyte volume. The total macrophyte volume as a percentage of surface water volume was
varied between 0.001 percent to 10 percent and the resulting outputs are shown in Figure C-2.
From these figures, it can be concluded that within the context of the simplified ecosystem of P3,
macrophytes are a major sink for B(a)P and could mean that macrophytes could drive the final
destination B(a)P in the environment. A sensitivity analysis with the plant domain may also yield
similar results.
Table C-3
Steady-State Concentrations for Prototype 3
Volume Element
RZ(2), Worm
RZ(2), Root
RZ(2), Stem
RZ(2), Xylem
RZ(3). Worm
Concentration
2.13 X10'22
1.81 x10'16
1.81 xT'6
1.63X10"'6
2.13X1022
Units
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/L
arams B(a)P/kq
C-8
-------
Table C-3 (Continued)
Volume Element
RZ(3), Root
RZ(3), Stem
RZ(3), Xylem
RZ(4), Worm
RZ(5), Worm
RZ(6), Worm
RZ(6), Root
RZ(6), Stem
RZ(6), Xylem
RZ{7), Worm
RZ(7), Root
RZ(7), Stem
RZ(7), Xylem
RZ(8), Worm
SS(1), Mouse
SS(2), Leaf
SS(2), Mouse
SS(3), Leaf
SS(3), Mouse
SS(4), Mouse
SS(5), Mouse
SS(6), Leaf
SS(6), Mouse
SS(7), Leaf
SS(7), Mouse
SS(7), Kingfisher
SS(8), Mouse
LOWER AIR 1, Air
LOWER AIR 2, Air
UPPER AIR 1, Air
UPPER AIR 2, Air
SEDIMENT, Sediment
LOWER SW, Surface Water
LOWER SW, Macrophyte
LOWER SW. Herbivore
LOWER SW, Omnivore
LOWER SW, Carnivore
UPPER SW, Surface Water
UPPER SW, Macrophyte
UPPER SW, Herbivore
UPPER SW, Omnivore
UPPER SW, Carnivore
UPPER SW, Kingfisher
LOWER AIR 3, Air
UPPER AIR 3, Air
Concentration
1.81 x10'16
1.81 x10'16
1.63x10'16
2.13 X10'22
2.13 X10'22
2.13 X10'22
1.72x10'17
1.72X10-'7
1.54X10"17
2.13 X10'22
1.31 x10'17
1.31 x10"17
1.18x10'17
2.13 X10'22
1.03x10-"
7.86 x10'7
2.69x10"
7.86 x10'7
2.69 x10-6
3.45 x10-9
3.37 x10'10
7.23 x10-7
3.17x10'"
3.55 x10'6
1.06x10'7
4.07 x10'7
6.02 x10'9
1.61 x10'"
1.48x10'"
0.00x10°
0.00x10°
1.29x10-"
5.63 x 10 12
2.05x10"
8.47 x10'9
1.57x10'"
3.52 x ID"6
3.03 X10'11
1.10X107
4.55 x10'8
8.42x10'"
1.89x10'5
4.07 x 10 7
8.22x10'"
0.00x10°
Units
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/L
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/L
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/L
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B{a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/m3
grams B(a)P/m3
grams B(a)P/m3
grams B(a)P/m3
grams B(a)P/m3
grams B(a)P/L
grams B(a)P/kg
arams B(a)P/ka
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/L
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/kg
grams B(a)P/m3
grams B(a)P/m3
C-9
-------
To ensure that the observation regarding macrophytes was not a mathematical quirk, a quick
calculation of the steady-state solution for the macrophytes (Section 2.3.1) was performed. This
calculation shows that the concentration ratio between macrophytes and dissolved water
concentration should be approximately 15,000 for B(a)P, which is what can be seen from Table C-
3.
C.2.2 Annual Steady-State Emissions Scenario
This scenario included running P3 for 1 year, 1 day at a time using a constant source. The source
strength was 2.5 x 10"3 grams per second (g/s) in lower air 1 cell. The results of the residual mass
breakdown after a year are shown in Figure C-3. Due to the hydrophobicity of B(a)P, most of it is
seen in soils and sediment, as would be expected. The macrophyte volume for this run was less
than 0.01 percent of the surface water domain. It is interesting to observe that the residual mass
distribution is somewhat different from the steady-state case (Figure C-l), indicating that P3 is
sensitive to duration of the run and source conditions.
C.2.3 One-Hour Puff Emission Single Day Scenario
This scenario included running P3 for 1 day (24 hours) after 1-hour puff emission. The source
strength was 2.5 x 10"3 g/s. The outputs are shown in Figure C-4. From the mass distribution, it can
be seen that B(a)P is a minute later almost equally in soil, sediment, and surface water. At steady-
state, much less B(a)P is seen in surface water; however, in a 24-hour period, equilibration between
sediment and surface water would not be expected. The time series data shows the spike in the air
domain due to the puff, and then decline in mass. The mass in the soil stays mostly constant after
the puff. The mass in the surface water domain reduces with time as sediments are increasing as
B(a)P is sending towards equilibrium between surface water and sediment. Overall, these results
are encouraging and show that P3 is responsive to hourly changes.
C.2.4 Comparison of Prototype 3 and CalTOX Transfer Factors
Air/Soil and Air/Plant Concentration Ratios and Transfers. These values were compared
to the values from CalTOX and are on the same order of magnitude. The mass-transfer pathways in
CalTOX and TRIM.FaTE differ somewhat and thus slightly different values are to be expected.
However, since the algorithms in both models represent the same processes, they should produce
results on the same order of magnitude. In the TRIM.FaTE results, when compared to CalTOX,
there is less mass overall transferred to the plant than to the soil, because there is very little plant
biomass in TRIM.FaTE. This is, however, an input parameter issue as opposed to an algorithm
issue.
C-10
-------
Plants. After coming to equilibrium, the stem, roots, and xylem exchange equal mass to and from
the soil as expected.
Runoff and Erosion. The amount of runoff and erosion for a rainfall rate equal to that in
CalTOX produces very similar results.
Air-Water Interface. The air to water interface produces results that are comparable to CalTOX
results, as they should, since the same algorithms are used. The air to water is exactly the same,
while the water to air is higher because the surface water has been separated into two layers, and
thus, there is less mass in the upper layer; thus, the T factor needs to be higher for there to be the
same flux.
Sediment: Water Interface. For similar sediment deposition and resuspension rates, the T
factors are still comparable to CalTOX.
Groundwater to Surface Water. The T factor compares reasonably with CalTOX.
Plants to Ground and Plants to Air. The excepted T values were obtained for these
processes.
Air to Air. The values obtained for this T factor were comparable to CalTOX.
Air-Soil and Air-Plant. These values were compared to the values from CalTOX and were on
the same order of magnitude. The processes in the two are not exactly the same, and thus, slightly
different values are to be expected.
C.2.5 Comparison of Prototype 3 Results With CalTOX
The geometric factors and soil composition factors relating the soil exchange are all correct and
produce reasonable results. A checker has been added to make sure the Ts match up after soil
composition and geometric factors have been accounted for. Diffusion is an order of magnitude
less than advection, and thus, appears to be reasonable.
The time dependence of the T factors for soil diffusion comes about from the algorithm that was
used to match a multilayer box model of soil (that is, soil layers and resistances between them) to
C-ll
-------
the exact analytical solution that is used in the Jury et al. model. In a journal paper published by
McKone, it has been shown that the multilayer algorithm is reasonable when simulations are for
long periods of time (months to years). It is harder to compare these results to the exact (Jury)
solution for shorter time steps (1 hour to 1 month). Mass transfer and transformation are relatively
slow processes and the algorithm for extended time period simulations using short time steps has
not been checked. This is needed to determine how well the multilayer algorithm works for short
time periods. This issue needs to be revisited after the multilayer algorithm has been optimized for
a number of short time step long-term simulations. The reliability of the proposed algorithm for the
way it is being used in TRIM.FaTE can be tested after several linked, shorter time step simulations
are run.
C-12
-------
c
'3
o
-a
(A
V)
(0
O O O
O O T-
.-;OOOOO
°.-;OOOO
° ,-; 0 0 0
0 ^ 0 0
V
NX
\
%.
($>_.
O
O
V
1
"o
ex
o
o
03
C
3
Qi
en
ft*
•a
cS
o
6JO
c
3
CO
C
O
X)
CO
en
3
en
U
u
£
3
-------
:, I .
iiilii
o
•a
u
13
o
_3
O
a,
o
03
O
•a
,
00
_3
o
5«
_c
'rt
E
o
•o
L.
w
n
o
jTS
u.
3
O
q
d
v
O
on
-------
D
C/3
a
U
-------
to
D
w
O D
ffi
I*
5 E S
S » €
<.
t HH
o»
a
o>
en
LLI
>^
"5
a
c
o
3
£
*c
B)
5
a.
"ra
of
§0000000000
l/>OmOU)OU}Ol/}O
.0
3
'ul
17-
Q
if.
V.
03
3
12
'K
o
a:
a.
O
t/3
t/D
C/2
U
c
.0
tA
1
U
3
O.
4—4
O
c
o
Q
M3
on
ea
U
2?
tu
-------
APPENDIX D
ALGORITHM LIBRARY
-------
Appendix D
Algorithm Library
The algorithms, derived from literature or developed for TRIM.FaTE, that were the starting
algorithms in the development of intermedia transfer factors are listed in this appendix. The
visual basic source code implementation of this algorithm library is available upon request from
the U.S. Environmental Protection Agency (EPA).
Advective Transfer. The general form for the transfer factor for advective transport from cell
/ to cell j in any abiotic domain is:
-,«*, , , Q (Phase"> *Z (phase)
T._ .(phase) =
' J
v (phase) x At xZt(phase)
Vt(Totat)xZfTotat)
Diffusive Transfer. The general form for the transfer factor for diffusive transport from cell /
to cell j in any abiotic domain is:
T*ff =
•* i
V ^ lutul.,
A V,
total, , ~» total,
1 } ,o,a,v
where:
TtJ = transfer factor for diffusive transport from cell 7 to cell j, /day
UtJ = mass transfer coefficient for combined turbulent and molecular diffusion on
T' side of boundary between cells I andj, m/day ( ={ mol/m2 [area]-
day}/{mol/m'[cell/]})
Uj, = mass transfer coefficient for combined turbulent and molecular diffusion on
"j" side of boundary between cells / andy, m/day ( ={ mol/m2 [area]-
day}/{mol/m3 [cell;]})
D-l
-------
V, = total volume of cell /, m3 [cell /]
Z,""al = total fugacity capacity for cell /, moles chemical]/m3 [cell 7]-Pa.
Later Runoff in Soil
where:
D = diffusion coefficient in water (m2/s)
Cs = concentration in soil pore water (g/m3)
CR = concentration in runoff water (g/m3)
R = hydraulic radius (m), for planer flow, water depth over surface
um = mean velocity of the fluid (m/s)
r = fluid density (g/m3)
m = viscosity (kg/ms)
So/7 Erosion. The flux of chemical from erosion is:
_ c , erosion} LW
~ ^ solid I I>W
r solid )
Vertical Diffusion in Lakes. Vertical diffusion in lakes and is represented by:
*~ex epi *^ ex hypo
where:
J = net mass flux from epilimnion to hypolimnion due to vertical mixing, M/T
QM = exchange flow, L3/T
C = concentration of organic, M/L3.
Eddy Diffusivity in Lakes. Vertical eddy diffusivity is given by:
k, = 0.0142(Z)149 mVday
D-2
-------
where:
Z = mean depth (CSM).
Dry Deposition Plant Interception Fraction. The dry deposition plant interception
fraction (Ifd) is given by:
Ifd= 1 -exp(ccxbio_inv)
where:
bio-inv = dry biomass inventory per unit area
a = vegetation attenuation factor.
Wet Deposition Plant Interception Fraction. The wet deposition plant interception
fraction (Ifw) is given by:
-In2 x rain\
7/H. = Sblx LAI x e\ 3 * S"' '
where:
Sh] = vegetation dependent leaf wetting factor
LAI = leaf area index.
Wet Deposition Velocity lor Plants. Wet deposition velocity (Vdw) for plants is given by
x ran
where:
rain = rainfall rate
Wr = washout ratio, unitless factor relating particle washout to rainfall rate.
Diffusion Between Plants and Air. The diffusion from plants to air is based on two
resistances in parallel, the stomata and the series resistance of air and cuticle. The conductance
through the stomata is based on a correlation to the conductance of water vapor through the
D-3
-------
stomata. The conductance varies with the relative humidity, reflecting that the stomata closes up
during dry conditions. Additionally, the stomata are only open during the day and if day/night
patterns are ever used in TRIM, this should be taken into consideration.
g
461 x Temp
stomata
7.7 (7>m/>-273)
jc611 x 10(237 +
where:
rh = relative humidity.
"cuticle
jQ.704iogAT0w-M.2l
~Kaw
x 86400
The conductance through the cuticle is then put in series with the resistance through the air on the
leaf surface to yield the overall conductance:
1
1 ap
del
ap
air air o cuticle p
Soil to Root Transfer. Soil-to-root transfer is based on the following equilibrium
relationship:
where:
CR = concentration in roots (mg [chemical]/m3 [root fresh weight])
Cw = concentration in soil pore water (mg [chemical]/m3 [soil pore water])
WR = water content of root (mass/mass wet weight)
1R = lipid content of root (mass/mass wet weight)
b = correction exponent for the differences between octanol and lipids
pR = density of fresh root (g [root]/cm3 [root])
pw = density of soil pore water (g [soil pore water]/cm3 [soil pore water]).
Concentration in the Xylem Liquid
The algorithm used to calculate the concentration in the xylem liquid is the following:
D-4
-------
where:
TSCF
Pxy
Pw
= concentration of chemical in xylem liquid, mg (chemical)/m3 (xylem
liquid)
= concentration in soil pore water, (mg [chemicalJ/m3 [soil pore water])
= transpiration stream concentration factor (mg [chemical]/g
[xylem liquid])/(mg [chemical]/g [soil pore water])
= density of xylem liquid (g [xylem liquid]/cm3 [xylem liquid])
= density of soil pore water (g [pore water]/cm3 [pore water]).
Concentration in the Stem. The algorithm used to calculated the concentration in the stem
is the following:
where:
Astern
CH
SCF
Pstem
Pw
= concentration of chemical in stem (mg [chemical]/m3 [stem])
= concentration in soil pore water (mg/m3)
= stem concentration factor
= density of stem, g [fresh stem]/cm3 [fresh stem]
= density of soil pore water, g [pore water]/cm3 [pore water].
Benthic Community Transfers. The following concentration algorithm was used to
estimate the within the immature mayfly (benthic representative species):
mf _
'
where:
cmf =
CL, =
Vd-
Amount of compound in the organism normalized on a weight basis (ng/g)
Clearance constant (equivalent to kj (mL water cleared/g organism - hour)
Concentration of the compound in the interstitial water (ng/mL)
Proportionality constant that relates the amount of compound in the organism
to the concentration in the exposure water (equivalent to BCF).
D-5
-------
Water Column Transfers. The algorithm used to calculate concentrations in water column
organisms is as follows:
C C
sed
L TOC
where:
C0 = omnivore tissue concentration at steady state (ug/g)
L = lipid content of organism (g lipid/g organism)
TOC = total organic carbon in sediment (g carbon/g sediment)
Csed = sediment concentration (ug/g)
AF = accumulation factor (g carbon/g lipid).
Flux from Aquatic Macrophytes
The following algorithms was used to estimate flux of pollutant from macrophytes:
F = k V C -k V C
MP 1 MP H 2 MP^MP
where:
FMP = net flux of chemical in the macrophyte, (ug/day)
k, = bioaccumulation rate (day'1)
VMP = volume of the macrophyte (L)
Cw = chemical concentration in water (ug/L)
k2 = depuration rate (day"1)
CMP = chemical concentration in macrophyte (ug/L).
Food Chain Transfers for Fish. The following model for estimating pollutant concen-
trations in fish (Thomann, 1989) was used:
dt
where:
CF = concentration in fish (ug/kg)
k,, = uptake rate from water via the gills (1/kg-day)
D-6
-------
CWD = dissolved chemical concentration in water (ug/L)
kD = chemical uptake from food (kg food/kg fish/day)
P, = proportion of the diet consisting of food item I
CDl = chemical concentration in food item I (ug/kg)
keg = elimination via the gills (I/day)
kE = elimination via fecal egestion (1 /day)
KM = metabolic transformation of chemical (I/day)
KG = dilution contaminate concentration from growth (I/day).
Terrestrial Wildlife Algorithm. The following generalized algorithm was used to estimate
concentrations in terrestrial wildlife:
dC, /dt = [(^ *CW * AJ + (I, *CS* A,) + L^VCf/ A,) + (I, *Ca*Aa)] - [C, * (Em + Eu + E, + Ee)]
where:
C, = total, whole body, internal concentration in animal (mg[chemical]/kg[body
weight])
1^ = water ingestion rate (LVkg body weight/d)
Cw = concentration of contaminant in water ingested by animal (mg/L)
Aw = assimilation efficiency of contaminant from water (unitless)
Is = soil ingestion rate (kg/kg body weight/d)
Cs = concentration of contaminant in soil (mg/kg)
As = assimilation efficiency of contaminant from soil (unitless)
Pj = proportion of food type (j) in diet (unitless)
If = food ingestion rate (kg/kg body weight/d)
Cfj = concentration of contaminant in food type (j) (mg/kg)
Af = assimilation efficiency of contaminant from food (unitless)
Ia = inhalation rate (mVkg body weight/d)
Ca = concentration of contaminant in air (mg/m3)
Aa = assimilation efficiency of contaminant from air (unitless)
Em = contaminant elimination through metabolic breakdown (d'1)
Eu = contaminant elimination through excretory processes (urine and feces) (d"1)
E, = contaminant elimination through lactation (milk production, mammals only)
(d-1)
Ec = contaminant elimination through egg production, birds only (d'1).
Earthworm Model. If the steady state partition coefficient between the concentration in the
worm and the concentration in the soil water is utilized, then at equilibrium:
C = K C
Mum /»K stnl.liquid
D-7
-------
where:
Cworm = Concentration of chemical in the earthworm, mg (chemical)/kg (worm,
fresh weight)
Kj,w = earthworm/water partitioning coefficient, L (soil pore water)/kg (worm,
freshweight)
Cso,i iiqilid = Concentration of chemical in soil pore water, mg (chemical)/L (soil pore
water).
D-8
-------
APPENDIX E
USER'S GUIDE
-------
Appendix E
User's Guide
This appendix contains a suggested outline for the User's Guide Manual in Section E.1.0 and
step-by-step information on how to run and troubleshoot P4 in Section E.2.0.
E. 1.0 User's Guide Outline
This is a suggested outline for a user's guide that has not been written at this point in the TRIM
project. Without the knowledge of software and hardware platforms, it is difficult to be specific.
CHAPTER 1 Introduction
1.1 Background
1.2 TRIM.FaTE Approach
1.3 Regulatory Applicability
1.4 Model Limitations
CHAPTER 2 Getting Started
2.1 TRIM.FaTE Structure
2.2 Accessing TRIM.FaTE
2.3 Hardware and Software Requirements
CHAPTER 3 Simulation Setup
3.1 Main Menu
3.2 Setup Pathways
3.3 Input Data Requirements
3.3.1 Site Specific Data
3.3.2 Abiotic Parameters
3.3.3 Biotic Parameters
3.3.4 Chemical Specific Parameters
3.3.5 Uncertainty and Variability of Inputs
3.4 Data Format
3.4.1 Site Specific Data
3.4.2 Abiotic Parameters
3.4.3 Biotic Parameters
3.4.4 Chemical Specific Parameters
CHAPTER 4 Execution Modes
4.1 Batch
4.2 Sequential
4.3 Remote
4.4 Internet
E-l
-------
CHAPTER 5 Output Setup
5.1 Data
5.2 Graphics
5.3 Export/Import Capabilities
5.4 Output Reports
5.4.1 Domain Specific
5.4.2 Pollutant Specific
5.4.3 Time Dependent
CHAPTER 6 Customizing TRIM.FaTE Algorithm Library
CHAPTER 7 Technical Summary
APPENDICES
Appendix A - Default Data Sets
Appendix B - Data Collection Handbook
GLOSSARY
INDEX
E.2 Prototype 4 Implementation
Setting Up to Run Prototype 4
The program and datafiles implemented require Microsoft Excel 97 for Windows 95, with at
least 30MB of disk space. After downloading the zip file off the ftp site, unzip it (make sure to
set options so that directory structure is preserved), and run the program "setup.exe" in the
directory "trim\proto4\setupDLLs." This program will install the needed dynamic link libraries
(DLLs) to your "c:\windows\system" directory. Four of these DLLs are Visual Basic and Fortran
DLLs implemented for LSODE:
• "Trim Routines for P4.dll"
Visual Basic 5.0 DLL that contains needed geometry routines
• "convexhull.dll"
Fortran DLL to calculate smallest convex region containing a set of two-
dimensional points
• "varlsode.dll"
Fortran DLL to call LSODE
• "lineq.dll"
E-2
-------
Fortran DLL to solve the matrix equation needed to calculate steady-state
solution
The other DLLs are auxiliary files needed by the Visual Basic DLL. If some of the current DLLs
are out of date relative to these files, then the setup program may ask that you restart the machine
before proceeding with setup. Of the machines that we have installed the DLLs, overwriting the
existing files has not caused any problems.
Table E-1 summarizes the primary files needed. Note that paths will be different if the directory
structure on your machine is different than that assumed here.
Table E-1. Primary Files Used
Original Filename
Setup.exe
P4main.xls
Lsode Results Template.xls
P4timedata.xls
Set up file for p4.xls
Proto4FineGrid.xls
Blank Prototype4 Matrix
Template.xls
Debugging Output Template.xls
p4guts.xls
p4LSguts.xls
Description
Program to set up your system
with needed dynamic link
libraries (may require reboot of
machine). Run only when files
are first downloaded.
Has main sheet for generating
matrix and/or running LSODE
Output file for LSODE results.
Includes postprocessing graphs.
Contains time dependent data
Contains non-time-dependent
data
File with configuration
information for P4 (Volume
elements and links)
File for transition matrices
Contains intermediate
information from calculation of
transition matrices.
Programs to generate transition
matrices
Programs to run LSODE
Original Location
c:\trim\proto4\setupdlls
c:\trim\proto4
c:\trim\proto4\templates
c:\trim\proto4\Data files
c:\trim\proto4\Data files
c:\trim\proto4\configurationfiles
c:\trim\proto4\templates
C:\trim\proto4\templates
c:\trim\proto4\VBAFiles
c:\trim\proto4\VBAFiles
E-3
-------
Table E-1 . Primary Files Used
Original Filename
trim.mdb
Description
Database containing spatial
information on volume elements
Original Location
c:\trim\databases
The Main Excel File That Needs to be Opened
The main file that is needed is "p4main.xls" in the directory "c:\trim\proto4." This can be saved
as another name, but do not update format to Excel 97. Excel 97 will probably crash if this
file is updated (this is due to a problem with listboxes and drop-down boxes in Excel 97). This
file is linked to "p41sguts.xls" in the directory c:\trim\proto4\VBAFiles," which references the
file "p4guts.xls" in the directory "c:\trim\proto4\VBAFiles."
How to Do Specific Things
Modify Input Data
There are two input data files. One contains time-dependent data (wind speed and direction,
precipitation, temperature, erosion and runoff, water flow), and the other file contains all other
input data (Table E-2). The default file with time-dependent data is called "p4timedata.xls." The
Table E-2. Existing Data files that Can be Used
Filename
Setup file for P4,
DepthofRunoff=5cm.xls
Setup file for P4,
DepthofRunoff=0.05m.xls
p4timedata.xls
Comment
Depth of runoff for all
surface soil cells is
5cm
Depth of runoff for all
surface soil cells is
0.05m. This depth of
runoff was used for P4
runs prior to 11-8-97.
Time-dependent data
Path
c:\trim\proto4\D
ata files
c:\trim\proto4\D
ata files
c:\trim\proto4\D
ata files
Where in
"p4main.xls" it is
specified if to be
used
Cells to right of "Non-
time dependent data"
Cells to right of "Non-
time dependent data"
Cells to right of Time
dependent data"
default file with the other input data will start with the words "Setup file for P4," followed by a
date or descriptive text. The input parameters are spread out across several sheets, depending on
the dependence of the parameter. Since the inputs are read in by referencing the offset from the
E-4
-------
cell with the domain instance name, it is critical that the location of the data relative to the
domain instance name not change. There are several input files included in the zip file. These
can be modified as desired and saved under different names.
Choose a Chemical
The chemical-specific data will be obtained based on the value in the cell "Chemical" (1=BAP,
2=Phenanthrene). This value will be automatically set every time a matrix file is opened based
on the sheet selected. If the sheet has "bap" in the name, then it is assumed to be for BAP; if it
has "phen" in the name, then it is assumed to be phenanthrene.
Generate Transition Matrices
There are three manners in which transition matrices can be generated:
• Matrices generated without calling LSODE
• Matrices generated and LSODE called using generated matrices
• Sensitivity analysis performed, in which matrices are generated and LSODE run
for a specified number of times, with selected inputs modified each iteration (see
section on sensitivity analyses).
To generate matrices, one must specify the input and output files, and set the particular options
for the run. All of this is performed within the main spreadsheet "P4main.xls." Table E-3
summarizes the files that need to be specified and options selected in order to generate transition
matrices.
There are some matrix files already generated (Table E-4). These files can be used to run
LSODE if one does not want to regenerate new matrices. The existing matrix files can be quite
large (over 5MB), even though the matrices are stored in sparse form. A blank matrix file with
the proper formats is provided for new runs.
View Cell "T" Values
If a matrix file exists, then the input links for the cell and associated "T"-values can be viewed
from the file "P4main.xls" for any hour by selecting the desired cell in the list box under "Pick
Cell" and a time from the list box under "Pick Time." For the cell selected, various information
will be provided. This information includes: the parcel the cell is in, domain type and subtype,
E-5
-------
Table E-3. Files and Options for Generating Transition Matrices
Needed Pile (contains specific
formats for use)
Main file for calling routines
Time dependent data
Non-time-dependent data
Configuration information for P4
Transition matrices
Debugging output and
messages
Spatial database file
Option
Time for diffusion
Lstart for matrices
Lstop for matrices
Debug
Numberlterations
Existing Files (files in
"templates" directory should
be saved as different files)
P4Main.xls
p4timedata.xls
Setup file for P4,
DepthofRunoffs5cm.xls ;
Setup file for P4,
DepthofRunoff=0.05m.xls
Proto4FineGrid.xls
Initial Path
c:\trim\proto4
c:\trim\proto4\Data files
c:\trim\proto4\Data files
c:\trim\proto4\configurationfiles
See next table
Debugging Output Template.xls
trim.mdb
c:\trim\proto4\templates
c:\trim\proto4\databases
Description
Factor used in determining diffusion in soil. Default is one day.
There will be i_stop-istart+1 matrices created. The time-dependent
data will be read starting i_start+1 rows down from top of time-
dependent data set
If set to 1 , then extensive intermediate information on transition
matrices is generated and placed in the selected debugging file.
This information includes a breakdown of the "T values in terms of
diffusion and advection.
Only applicable for sensitivity analyses (see below)
Table E-4. Existing Files for Transition Matrices
FileName
Comment
Location
BlankPrototype4 Matrix
Template.xls
Can be used for new runs.
Open and save as desired file
name, and modify cells to right
of the cell "Matrix File" in
"p4main.xls" to refer to the new
file.
c:\trim\proto4\templates
E-6
-------
Table E-4. Existing Files for Transition Matrices
FileName
Prototype4 Matrix, 4 directions,
precip on and off, annual
averages for
temp.precip.wind.xls
Prototype4 Matrix, 1st 24
hours.xls
Comment
Contains 8 matrices for BAP
and phenanthrene: 4 wind
directions, precipitation on and
off (average annual
precipitation)
24 hours of transition matrices
for BAP and phenanthrene
Location
C:\TRIM\proto4\RunFilesforWrit
eup\4 Directions, annual
averages (precip off and on)
C:\TRIM\proto4\RunFilesforWrit
eup\1st24 hours
output "T" value for cell, number of input links, list of other cells that are linked to cell and
associated "T" values, population size (if biotic), and fraction of chemical in various phases.
General information on the matrix is also provided: units of transition matrix, size of matrix,
wind speed and direction, and precipitation.
Get LSODE/Steady-State Results
One can have LSODE run automatically after the transition matrices are generated, or one can
run LSODE using an existing transition matrix file. The transition matrix file is specified in the
columns to the right of the cell that contains "Matrix File." The options available for running
LSODE are summarized in Table E-5. Table E-6 shows the existing files with LSODE results.
Currently, it is assumed that there is initially no mass of the chemical in the system. Every time
that LSODE is called, the steady-state solution is also calculated.
Get Mass and Concentration Results for a Single Domain
After an LSODE run has been performed, the mass and concentration in a specific cell can be
examined by choosing the desired cell from the drop down box "Pick Cell." The masses and
concentrations are provided several rows down after a cell is selected. The value selected in the
"Pick Time" list box has no effect on these results.
Mass Distribution Graphs
All mass distribution graphs (by parcel, domain, and biotic breakdowns) are located in the
LSODE sheet selected.
Run Sensitivity Analyses
If a properly set up file is available, it is possible to perform "Elasticity"sensitivity analyses. In
addition to the options previously mentioned, the number of iterations desired are specified.
E-7
-------
Table E-5. Options for Running LSODE
Option
tstart
tstop
NumberofTimes
UseSameMatrix
Source term for lower air cell in
volume element 1
RelativeTolerance
MaxSteps
Comment
Time at which simulation starts
Time at which simulation stops
Number of outputs from LSODE between tstart and tstop. For
each each output time, a different transition matrix will potentially
be utilized
If set to 1 , then the same transition matrix is used for all times.
This is used to investigate the system reaching steady-state. If
set to 0, then a different transition matrix will be used for each
output time specified (starting with the first one in the matrix file)
Source term for the smelter, in grams/day
Relative tolerance LSODE will use in solving system
Maximum number of steps LSODE will allow for each interval.
Increase this value if "Istate" returns -3 in the LSODE output file
for any output time.
LSODE Results, 4directions, precip
on and off.xls
Phen LSODE Results, 4directions,
precip on and off.xls
BAP LSODE Results, 1st hour of
4directions, precip on and off
BAP LSODE Results, 1st 24 hours
Phen LSODE Results, 1st 24 hours
C:\TRIM\proto4\RunFilesforWriteup\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteup\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteup\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteup\1st 24 hours
C:\TRIM\Droto4\RunFilesforWriteup\1st 24 hours
TheMatrix - BaP
TheMatrix -
Phenanthrene
TheMatrix - BaP
TheMatrix - BaP
TheMatrix -
Phenanthrene
Prototype4 Matrix, 4 directions, precip on and off,
annual averages for temp.precip.wind.xls
Prototype4 Matrix, 4 directions, precip on and off,
annual averages for temp.precip.wind.xls
Prototype4 Matrix, 4 directions, precip on and off,
annual averages for temp.precip.wind.xls
Prototype4 Matrix, 1st 24 hours.xls
Prototype4 Matrix, 1st 24 hours.xls
C:\TRIM\proto4\RunFilesforWriteu
p\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteu
p\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteu
p\4 Directions, annual averages
(precip off and on)
C:\TRIM\proto4\RunFilesforWriteu
pYlst 24 hours
C:\TRIM\proto4\RunFilesforWriteu
D\1st24 hours
E-8
-------
to
"5
>
ID
CC
UJ
Q
o
(/)
J
£
i
k_
^
O fc- "D
2 •« ^ co" to o]
•tlMHli
PI 3 ^ £ 03 > o
^ CC 5 Q E
Q. 03 Q)
CD
' C
X CD
•c _^
1 C
^ 03
0) C
.c a>
OL
"D _
•— c
5 os
•
^ -i=
a. "°
o «- "o
2 "S; 5 to" to 03
tqm;»
t CC $ Q co £
O ^ 3:
to" J2
±= X
Q) O
cc -o
c
03
c
o
ID a.
Q o
O £
CO D.
co"
c
.g
(j
C m
Q) C
CL T?
o •- -o
2 •§ 5 « co i
fjIP!}1
T3 »_ 'g
1 •* » m « -2 d
Six-Of^CdJ^-rj
o S t> m '•"o.-o
g 5 £ 'o a-* (5 CL c
Q. "D £ O > E
D. OS 0
1
X
II
Q)
_C"
1-
_ _
3 O
p- CO
*. o "to
to *= .0
.>> C Q)
o "~ °
D) ~ "5
•i * ?
J »-* ^.
co CD y^
±± to Q"
3 O
CO Q.
0) i;
C Q.
O >- "D
I i 1 1 -a i i
0 ^ a
•5
3 •*—
o -5
f -D
T- CO
to" c
±= 0
w D-
cu 'o
CC £
UJ °-
O to"
8|
-1 0
o. £
< =6
CO •*
-------
±!
3
Q)
DC
UJ
Q
O
CO
^J
*•*
'i
to
_0)
u.
0)
_c
To
UJ
(O
1
UJ
J£
.0
ra
H
c
a "S
o .E
^^ ^
CO
c w CM
0 3 <
3 ^ o>
E x •—•
O 'C
c ra
"5 fc.
c o
o •£
1 ?
< •£
0)
Q)
E
0
0
c
_o
ra
o
o
0>
£
ra
£
c
"cc
J
«
il
"5
01
-C
en
•2 *" c\i
o **-
C tn ^"^
S C "o. 3
0 ^ •£
^
^* C^
- -»
^ «2
* * 2 e
S il "ci 3
rr C 3 9
bgl *
6 •* ^
^.
"* ^ w
| « X
3* ^ w
2 x ^
o ;= o
n re •*-
^
Ci)
' C
v QJ
.— 1_
« 1
S re
OJ C
^ g
re
re
_>,
3
0
"^)
^C
3
C
"~
re
•D
0)
O
2 •- TT
2 •§ -
^- ^ ^2 to
2 LE "o. 3
TT: ^ "^ O
CC § « -c
>- CC •'c
6 ^ S
CM
to
w'
"5
0)
CC
111
Q
O
CO
c 2
QJ ""J
f 0?
-------
When the button "Sensitivity Runs" is clicked, the program will make multiple runs, generating a
transition matrix and calling LSODE each iteration. For each iteration, the iteration number will
be placed in the cell named "LookUp" in the "p4setup,....xls" file and all sheets will be
recalculated. If the file is configured appropriately, this will update all input parameters from a
master list, the particular values depending on the iteration number. After the transition matrix is
generated and LSODE called, the outputs are copied into another sheet, along with the iteration
number, for later postprocessing.
Open Algorithm Library
The implemented algorithm library is located in the module "P4Algorithm Library" in the file
"p4guts.xls." This is accessed by opening the Visual Basic editor from Excel and choosing the
module.
(Limited) Trouble-Shooting
Error Loading DLL (Error 48)
This error may occur even if one has had successful runs already. First, check and make sure that
there is plenty of disk space available. Windows will probably be caching things to disk, and if
disk space is very low, it cannot load the DLL. If there is plenty of space, then check and make
sure that the "dll" extension is all in lower case letters on the four P4-specific DLLs previously
discussed (this is a possible bug in Windows/Visual Basic).
Excel crashed when opening one of the files (or a version of one of the original
files saved under a different name)
For some files, this may happen if the file is saved in Excel 97 format, instead of Excel 5.0/95
format. You might be able to repair the file with Microsoft Access, but the best thing to do is
just open an Excel 5.0/95 version of this file, if this is an option. If the file is one of the VBA
files, then the problem may be with the references in the file "p4LSguts.xls". If this is the case,
then try renaming the file "p4guts.xls" and opening the file "p4LSguts.xls". If this file now
opens, then open the Visual basic editor and remove "TRIMDLL" and "P4Guts" from the
references. Exit Excel and then see if "p4LSguts.xls" can be opened. If so, then replace the
references.
E-ll
-------
Error 1004: Global Method of Range Failed
This usually means that the program was trying to locate a spreadsheet cell using a name, but the
name does not exist. The different types of files used (data files, output files, etc.) all are
assumed to have certain named ranges. For this reason, if you want new versions of these files
then it is necessary to specify a file that is created from an existing copy of one of the files. This
error may also occur if you halted the program execution and entered "Debug" mode, changed
the active sheet (e.g., you changed windows to look at another Excel file), and resumed execution
of the program. If you make "p4main.xls" the active sheet, then it will be possible to resume
execution if you enter "Debug" mode upon getting this particular error.
Error: Division by Zero
This can happen for a variety of reasons. If this error is obtained when generating transition
matrices, make sure that there are enough time-dependent data for the number of matrices to be
generated. For example, if "i_stop for matrices" is set to 24, this means that the last matrix
generated will use the data in the 25th row of data in the time dependent data sheet. If no data
are there, then 0 will be obtained for all values. This will cause a division by zero when it is
calculating fugacities since the temperature is in the denominator. If this is the case, then all
matrices previous to this matrix have already been generated, so the matrix file can be saved
without having to regenerate them.
E-12
-------
APPENDIX F
DOCUMENTATION OF SOFTWARE AND ROUTINES
-------
-------
Table of Contents.
Page
F. 1 Properties of Class Modules F-1
F.2 LSODE/Steady State F-5
F.3 Spatial Routines Implemented F-17
F.4 Alpha Version F-37
-------
Appendix F
Documentation of Software and Routines
This appendix contains documentation in support of the software developed for P4. Appendix
F. 1 is in tabular format describing the properties of the class modules; Appendix F.2 discusses
LSODE and steady state; Appendix F.3 discusses the intersection of planar regions; and,
Appendix F.4 supplies information on where to locate the alpha version and source code print-
out of P4.
F. 1 Properties of Class Modules
Table F-1
Properties of a BlockStructure in P4
Property
Name
SpatialProps
Domains
time_start
time_stop
Temperature
Rain
Z_pureair
Z_purewater
BasicChemProps
Comment
Name of block; can be used to get block in collection of all blocks
Spatial properties of block (location of lower left corner, length width
height)
and
Collection of domains in the block
Start time for this block (parameters in the block and its domains are valid
from time_start to time_stop; this information is also used to calculate
diffusive flows)
Stop time for this block
Temperature for the block (K)
Rainfall rate for the block (m/hr)
Fugacity in pure air for the block and chemical
Fugacity in pure water for the block and chemical
Object containing information on chemical properties for chemical(s)
block (see Table 10 below).
in the
Note: there is one of these for each chemical, time step, and geographic location1
'The memory (obviously) wasted by use of this type of structure for each geographic location and chemical (rather that having the
chemical-specific subpropemes be stored in arrays of objects within the block) is a temporary compromise given the time constraints and basic
objectives of the prototypes. In Visual Basic for Applications (the version of Visual Basic that comes with Office97), having arrays of properties
within an object requires some additional (tedious) code for each class module and property, and is implemented in only a limited number of cases
mP4
F-1
-------
Table F-2
Common Properties of All Domains in Prototype 4.0
Property
Domain type
Subtype
Keyname
BlockName
Indexinmatrix
Links
HasReactionSink
HasAdvectionSink
TheBlock
RowinExcelFile
IndexinDomains
BasicChemicalProperties
ChemicalPhase
Temperature
Spatial properties
TotalMass_tstart
TotalMassJstop
FractionMass
ConcentrationDenominator
ConcentrationUnits
Comment
Integer denoting the type of domain
Integer denoting subtype of domain. In P4, the domains that have
subtypes are:
Soil: Surface soil, root zone, vadose zone, groundwater
Fish: Carnivore, herbivore, omnivore
Sink: Reaction sink or advection sink
Unique name for domain in collection of domains in block
Name of the block containing the domain
Row in the transition matrix for this domain
Object containing information on the links between the domain to other
domains.
Whether or not domain has a reaction sink
Whether or not domain has an advection sink
Reference to the actual block containing the domain
Row in the Excel input file that contains base information for domain
(used for second pass through input file in order to read in input link
information)
Index for domain in the collection of all domains in the block
Object containing information on chemical properties for chemical(s) in
the domain (see T able 10 below). •
Information on actual phase of chemicaUs) in domain (will be utilized
when applicable algorithms are available).
Temperature of block containing domain
Object containing spatial information for block (see Table 10; this object
is also used for domains)
Total mass of chemical in domain at beginning of time step for which
parameters are valid
Total mass of chemical in domain at end of time step for which
parameters are valid (after LSODE is called)
Array containing information on the fraction of mass of chemical in
specific phases in domain. In P4 phases considered are: bulk (total),
sorbed, dissolved, vapor, worm (only used if domain is a soil domain and
worms domain are in equilibrium with soil)
Array of numbers to divide mass of chemical by in order to get
concentration in a specific phase in the domain. Depending on the
domain type and phase, this could be the volume of the domain (in m3 or
L) or the mass of domain (e.g., kg of soil if a soil domain)
Array of strings denoting the units of the denominator of concentration for
each phase.
F-2
-------
Table F-3
Properties of a BasicChemicalProperties Object
Property
Chemical name
Chemical index
K_ow
K_oc
Kaw
H
R
MW
VaporPressure
MeltingPoint
D_water
D_air
log10_K_ow
DefaultReactionHalflife
Comment
Integer ID for chemical
Octanol-water partitioning coefficient,
L[water]/L[octanol]
Octanol-carbon partitioning coefficient,
L[water]/kg[carbon]
Air-water partitioning coefficient
Henry's law constant
lideal gas constant, Pa-m3/mol-K
Molecular weight, g/mol
Vapor pressure, pa
Melting point (K)
Diffusion coefficient in pure water, m2/day
Diffusion coefficient in pure air, m2/day
Logarithm base 10 of K_ow
Default reaction half-life for chemical in each
domain and subtype of domain
F-3
-------
Table F-4
Properties of a Spatial Properties Object
Property
SinkFeaturelD
SinkFeatureArea
NameforDorhaininDataBase
dbData
GeometryRoutines
VolumeElement
Area
Volume
CrossSectionalArea
Comment
Array of IDs in spatial database for facets/features
of sinks for block/domain
Array of interfacial area with sink(s) with
block/domain
Keyname for domain in spatial database
Database containing spatial data
Object wrapper for geometry routines ("Exposed"
class; see Appendix A(?) of SAB report)
"CVolumeElement" class used for spatial
calculations (see Appendix A(?) of SAB report)
Area of horizontal plane in domain/block (m2)
Volume of domain/block (m3)
Area of vertical plane in domain/block (m2)
Table F-5
Properties of a LinkObject
Property
InputLinks
OutputLinks
Comment
Collection of GenericLinkObject objects (see
Table 11) detailing information on input links to
domain
Collection of generic link objects detailing
information on output links from domain
F-4
-------
Table F-6
Properties of a GenericLinkObject
(utilized for collections of input or output links of a domain)
Property
Domain
AlgorithmResult
Diffusion
Advection
Time_dependent_partition
IngestionRate
Comment
Object referencing the domain sending mass if link is an input link, or
referencing receiving domain is link is an output link
Object containing information on the algorithm result for the link (see
Table 12)
Object containing diffusion properties of link
Whether or not there is diffusion
Interfacial area for diffusion link (m2)
Boundary layer thickness on receiving side of link (m)
Boundary layer thickness on sending side of link (m)
Mass transfer coefficients for sending side of link (m/day)
Mass transfer coefficients for receiving side of link (m/day)
Object containing advection properties of link
Whether or not there is advection
Interfacial area for advection link (m2)
Areal velocities for each phase (m3[phase]/m2[interfacial area]-day
Area) bulk velocity (m3/m2[interfacial area]-day)
Object containing intermediate information on factors used to calculate
transfer for links in which an equilibrium relationship is converted to a
time-dependent form using the time to reach some fraction of steady-
state:
Fraction of steady-state reached (a) by time t_alpha
k, : = -ln(1-a)/t_alpha
k2 : =k, * Steady-state ratio
The ingestion rate if the link is one of ingestion of one domain by another
(e.g., ingestion of soil by mouse, ingestion of fish by kingfisher).
Table F-7
Properties of an AlgResult Object
Property
TValue
Diffusion
Advection
Reaction
Other
Comment
Sum of components; will be entry in the transition
matrix
Diffusion component of TValue
Advection component of TValue
Reaction component of TValue
Miscellaneous components of TValue
F-5
-------
Table F-8
Properties of a Soil Domain in P4
(in addition to properties shared by all domains)
Property
TotalPlantBiomass
InEquilwithWorm
WormProps
VolumeFractionlsWorm
Area
Volume
Height
theta
epsilon
phi
rho
OrganicCarbonContent
DepthofRunoff
Kd
D_Effective
Boundary_layer_Thickness_in_Air_Abov
e_Soil
Z
Zjotal
ErosionScaleFactor
Runoff ScaleFactor
EvaporationScaleFactor
Comment
Total plant biomass in soil domain, kgpdry plantym2[area]
Flag for if worms in domain are in equilibrium with domain
Properties of the worms in the domain; utilized only if
worms are in equilibrium
Fraction of total volume of domain that is worm; utilized
only if worms are in equilibrium
m2
m3
m
Volumetric water content
Volumetric air content
Total porosity
Density of soil particles (k3[soil]/m3[soil]
m; depth of runoff on soil; used only for surface soil
domains
Equilibrium partition coefficient for chemical, L/kg
Effective diffusion coefficient in domain, m2/day
Boundary layer thickness in air above soil (m); utilized if
diffusion is specified between the soil domain and an air
cell.
Fugacity in each relevant phase in domain
Total fugacity capacity in soil
Calculated erosion results are scaled by this term; used to
reflect fact that not all soil is susceptible to erosion
Calculated runoff results are scaled by this term; used to
reflect fact that not all soil is susceptible to runoff
Calculated evaporation results are scaled by this term;
used to reflect fact that not all soil is susceptible to
evaporation
F-l
-------
Table F-9
Properties of an Air Domain in P4
(in addition to properties shared by all domains)
Property
Area
Volume
Height
Junge_C
Temperature
Rain
RelativeHumidity
Dustload
DustDensity
SurfaceAreaperVolumeof Particles
VolumetricAirParticleContent
VolumetricAirAirContent
vdep
u_w
WashoutRatio
Z
Z total
Comment
m2
m3
m
Constant used in calculating partitioning between
air and particles
Temperature in air domain
Rainfall rate (m/day) in block
Mass of particles per volume of air domain, kg/m3
Mass of particles per volume of particles, kg/m3
m2[surface area]/m3[particles]
Ratio of volume of particles in domain to total
volume of domain
1 - VolumetricAirParticleContent
Dry deposition velocity (m/day)
Mass transfer coefficient on air side of air-water
boundary
Washout ratio for particles
Fugacity in each relevant phase in domain
Total f ugacity capacity of domain
F-2
-------
Table F-10
Properties of a Surface Water Domain in P4
(in addition to properties shared by all domains)
Property
Area
Volume
Height
Temperature
rho
SuspendedSedimentconcentration
VolumetricSolidsContent
OrganicCarbonContent
Kd
D_Effective
BoundaryLayerThicknessAboveSediment
WaterSide_AirWaterDiffusionMassTransferCoeffi
cient
CurrentVelocity
Evaporation
Waterlnflow
Outflow
Z
Z total
Comment
m2
m3
m
Temperature in surface water
Density of suspended sediment particles in
surface water, (k3[sediment]/m3[sediment]
Mass of suspended sediment per volume of
surface water, kg[sediment]/m3
Fraction of total volume of surface water domain
comprised of suspened sediment
Organic carbon content for suspended sediment
particles
Equilibrium partition coefficient for chemical, L/kg
Effective diffusion coefficient in domain, m2/day
Utilized only if surface water domain is linked to
sediment domain and diffusion is specified (m)
Utilized only if surface water domain is linked to
sediment domain and diffusion is specified
(m/day)
Velocity of water within domain; used for
estimating diffusion to air; m/day
Evaporation rate from surface water domain,
m/day
Inflow of water not from other surface water
domains in modeled system, m3/day
Outflow of water from surface water domain,
m3/day
Fugacity in each relevant phase in domain
Total f ugacity capacity in domain
F-3
-------
Table F-11
Properties of a Sediment Domain in P4
(in addition to properties shared by all domains)
Property
Area
Volume
Height
Temperature
phi
rho
Benthic_solids_concentration
OrganicCarbonContent
Kd
D_Effective
BoundaryLayerThicknessbelowWater
Z
Zjotal
Comment
m2
m3
m
Temperature in surface water
Total porosity of sediment (m3[pore
space]/m3[total volume]
Density of suspended sediment particles in
sediment, (k3[sediment]/m3[sediment]
Mass of sediment particles per volume of
sediment, kg[sediment]/m3
Organic carbon content for sediment particles
Equilibrium partition coefficient for chemical, LAg
Effective diffusion coefficient in domain, m2/day
Utilized only if sediment domain is linked to
surface water domain and diffusion is specified
(m)
Fugacity in each relevant phase in domain
Total fugacity capacity in domain
F-4
-------
TableF-12
Properties of Mouse, Kingfisher, and Animal Domains in P4
(in addition to properties shared by all domains)
Property
Diet
Excretionrate
Fraction Exc retionto W ater
FractionExcretiontoSoil
BW
PopulationSize_per_sq_meter
PopulationSize
Total Mass
WaterlngestionRate
WaterlngProps
InhalationRate
InhalationProps
FoodlngestionRate
FractionWorms
FractionPlant
SoillngestionRate
WormlngestionRate
FractionDietOmni
FractionDietCarn
FractionDietHerb
AssimilationEffinAir
Comment
FoodDiet object (see Table 19) containing
information on animal's diet
Loss rate of chemical from animal due to
excretion, /day
Fraction of excretion that goes to surface water
connected to animal
Fraction of excretion that goes to soil domain
connected to animal
Bodyweight of individual (kg)
Population size per square meter of abiotic
domain (domain depends on animal type)
Number of individuals in population
Total mass of population (kg)
Water ingestion rate, L[water]/kg[BW]-day
Parameters used in regression equatio to
calculate water ingestion rate from bodyweight
Inhalation rate, m3/kg[BW]-day
Parameters used in regression equatio to
calculate inhalation rate from bodyweight
Total food ingestion rate, kg[food]/kg[bodyweight]-
day
Fraction of food diet (on mass basis) comprised of
worms
Fraction of food diet (on mass basis) comprised of
plants
Soil ingestion rate, kg[soil]/kg[BW]-day
Worm ingestion rate, kg[worm]/kg[BW]-day
Fraction of food diet (on mass basis) comprised of
fish omnivores
Fraction of food diet (on mass basis) comprised of
fish carnivores
Fraction of food diet (on mass basis) comprised of
fish herbivores
Assimilation efficiency of chemical through
F-l
-------
Table F-12
Properties of Mouse, Kingfisher, and Animal Domains in P4
(in addition to properties shared by all domains)
(Continued)
Property
AssimilationEffinSoil
AssimilationEffinWater
AssimilationEffinFood
MetabolicBreakdownRate
Comment
Assimilation efficiency of chemical through
ingestion of soil
Assimilation efficiency of chemical through
ingestion of water
Assimilation efficiency of chemical through
ingestion of food
Breakdown rate of chemical in animal, /day
Table F-13
Properties of a FoodDiet Object
Property
FoodElement(i As Long)
DoesEat(Domam as Object)
colFoodDistribution
Numberltems
Comment
Returns rth domain instance consumed by animal;
return type is "FoodDietElement" (see Table 20)
Returns true if animal consumes Domain, else
false
Private collection of FoodDietElement objects
representing other domain instances consumed
by animal
Number of other domain instances consumed by
animal
TableF-14
Properties of a FoodDietElement Object
Property
DomamType
SubType
FractionofFoodDiet
Comment
Domain type consumed
Domain subtype consumed
Fraction of the total food diet made
domain instance
up of the
F-2
-------
Table F-15
Properties of Plant Domain in P4
(in addition to properties shared by all domains)
Property
Subtype
Volume_per_area
Volume_per_areaDryWeight
Volume
Density
WaterContent
LipidContent
DryBiomass
Total Mass
Stomata Properties
Cuticle properties
OverallConductance
dp
AttenuationFactor
DryDeplnterceptionFraction
WetDeplnterceptionFraction
Leaf area index
Leaf wetting factor
CorrectionExponent
kpa
kpa_part
Comment
Leaf, xylem, stem, or root
Volume of plant (fresh weight) per unit area of soil, m3/m2
Volume of plant (dry weight) per unit area of soil, m3/m2
Volume fresh weight of plant, m3
kg[freshweight]/m3[plant]
Water content of plant
Lipid content of plant
kg dryweight of plant
Total mass of plant (kg fresh weight)
Object that contains information about stomata for leaf
subtype. Currently only contains Conductance for stomata
Object that contains information about cuticles for leaf
subtype:
Conductance
Boundary layer thickness (m)
Total conductance based on stomata and cuticle
conductance
Plays same role as depth for spatial domains in diffusion
calculations; = DryBiomass/((1-WaterContent)*Density)
Used to calculate dry deposition fraction
Area of leaf per area of soil
Used to calculate wet deposition interception fraction
Used to calculate steady-state partitioning between root and
soil pore water
F-l
-------
Table F-15
Properties of Plant Domain in P4
(in addition to properties shared by all domains)
(Continued)
Property
LitterfallRate
alpha
t_alpha
TSCF
SCF
Z_total
Comment
/day
Factors used if steady-state partition relationships are
converted to time-dependent form using length of time
(t_a!pha) it takes to reach some fraction (a) of steady-state
Transpiration stream correction factor; steady-state ratio of
xylem concentration to concentration in soil pore water
Stem correction factor; steady-state ratio of stem
concentration to concentration in soil pore water
Total fugacity capacity for plant (only utilized for leaf subtype
inP4)
Table F-16
Properties of Worm Domain in P4
(in addition to properties shared by all domains)
Property
Volume
TotallMass
Density
ArealDensity
Worm_SoilPartitionCoefficient
alpha
t_alpha
Comment
m3[freshweight] of worm
kg[freshweight] of worm
wet weight, kg[worm]/m3[worm]
kg[worm]/m2[soil area]
L[soil pore water]/kg[worm, freshweight
Factors used if steady-state partition relationships
are converted to time-dependent form using
length of time (t_alpha) it takes to reach some
fraction (a) of steady-state
F-2
-------
Table F-17
Properties of Macrophyte Domain in P4
(in addition to properties shared by all domains)
Property
Volume
TotallMass
Density
DepurationRate
BioaccumulationRate
Comment
m3[freshweight] of macrophyte
kg[freshweight] of macrophyte
wet weight, kg[macrophyte]/m3[macrophyte]
TableF-18
Properties of Fish Domain in P4
(in addition to properties shared by all domains)
Property
NumberofFish
NumberofFishpersquaremeter
FishBodyweight
TotallMass
Diet
FeedingRate
FractionDietOmni
FractionDietHerb
FractionDietMacro
Gamma_fish
FishLipidFraction
GillEliminationRate
FishChemicalUptakeRateviaGill
ChemicalTransferEfficiencyinFish
BioaccumulationRate
Sedimentlnteraction
AccumulationFactor
Comment
Number of fish in population
Number of fish in population per square meter of
surface water area
kg
kg[f reshweight] of fish in population
FoodDiet object (see Table 19) containing
information on animal's diet
Fraction of diet comprised of fish omnivores
Fraction of diet comprised of fish herbivores
Fraction of diet comprised of macrophytes
Factor used in calculating bioaccumulation rate
TimeDependentPartition object (Table 24)for
catfish<->sediment links
g [carbon]/g[lipid], used for catfish<->sediment
F-3
-------
TableF-19
Properties of InsectDomain
(in addition to properties shared by all domains)
Property
Diet
Excretionrate
Fraction Exc retionto Wate r
FractionExcretiontoSoil
PopulationSize
BiomassperArea
TotalMass
SoillngestionRate
FoodlngestionRate
EliminationRate
ClearanceConstant
V_d
MetabolicBreakdownRate
DecayConstant
BW
Comment
FoodDiet object (see Table 19) containing
information on animal's diet
/day
kg/m2
for population, kg
kg[food]/kgBW-day
kg[food]/kgBW-day
/day
ml/g-hr, used for mayfly nymph
used for mayfly nymph, ml/g
/day
/day
kg
Table F-20
Properties of TimeDependentPartition Object
Property
kl
k2
alpha
t_alpha
Comment
Intermediate information on factors used to
calculate transfer for links in which an equilibrium
relationship is converted to a time-dependent form
using the time to reach some fraction of steady-
state:
Fraction of steady-state reached (a) by time
t_alpha
k, : = -ln(1-a)/t_alpha
k, : =k, * Steady-state ratio
F-4
-------
F.2 LSODE/Steady State
Introduction. The system of coupled differential equations that represent the flow of mass
between cells is (currently) assumed to be one of the form:
where y y(t) is the H-dimensional vector containing the amount of mass in each cell, A is the
n by n transition matrix for the current time step, and s is the source term vector for the time
step. The source term accounts for a possible source term in each cell considered. The
solution to this system is approximated using the Livermore Solver for Ordinary Differential
Equations (LSODE), available from the NetLib repository (http:\\www.netlib.org). A steady-
state solution of this system is one in which y 6; i.e., one in which Ay s 6. This equation
is solved using TOMS Algorithm 576 by I. Barrodale and G.F. Stuart (Barrodale and Stuart
1981). As part of the preprocessing, it is necessary to calculate intersections of polygonal
regions. An auxiliary subroutine utilized in this process calculates the convex hull for a set of
points. The convex hull of a set of points is determined using the subroutine CONVEX, which
is Algorithm 523 of the Association for Computing Transactions on Mathematical Software,
written by W.F. Eddy (1977). Details on the implementation of these programs is described
below.
Finding Solution to a System of Differential Equations
Background on Method Used. LSODE subroutine solves systems of first order ordinary
differential equations of the form:
>, y(r0) y0
where y is an n-d mensional time-dependent vector; i.e.,
y(t) (y,(0,y,(/) >„(/))
F-5
-------
and F is a vector-valued function of / and the vector y. The system of differential equations
can be stiff or nonstiff. The term "stiff, when applied to a system of differential equations,
essentially means that there are components of the solution that cause problems when the
solution is approximated. Generally this is due to components of the solution that are decaying
much faster than other components of the system. In the stiff case, it treats the Jacobian matrix
as either a full or banded matrix. It uses Adams methods (predictor-corrector) in the nonstiff
case, and backward differentiation formula methods in the stiff case. The linear systems that
arise are solved by direct methods. LSODE is intended to supersede the older GEAR and
GEARB packages (Hindmarsh 1983, Radhakrishnan and Hindmarsh 1993).
Implementation. The LSODE Fortran source code was downloaded from the NetLib
repository of algorithms (http:\\www.netlib.org). This code was compiled using Microsoft
Fortran PowerStation 4.0 as a 32-bit dynamic link library so that it could be accessed by Visual
Basic for Applications in Excel 8.0. An interface subroutine (Var_LSODE) was written in
Fortran that calls the LSODE routine. This interface subroutine accepts as input the transition
matrix, source term, and initial condition vector, in addition to various parameters concerning
the method of solution and numerical error tolerances. This subroutine can be called by any
other program that can call DLLs (e.g., Fortran, C, Visual Basic). In Visual Basic, the function
is made available by adding the following code to the top of a module:
Declare Sub Var_LSODE Lib "VarLsode" (MatrixSize As Long, MatrixSize_sq As
Long, Matrix_as_OneD_Array As Double, Initial Vector As Double,
SourceTennVector As Double, t_initial As Double, tout As Double, Output Vector As
Double, RelativeTolerance As Double, AbsoluteTolerance As Double, istate As
Long, Irw As Long, liw As Long, MethodFlag As Long, OutLine As Long, MaxSteps
As Long)
Explanation of the arguments is provided in Table 1. The subroutine is called by a statement of
the form:
Call Var_LSODE( MatrixSize, MatrixSize_sq, Matrix_as_OneD_Array(l),
InitialVectorfJ), SourceTennVector( 1), tjnitial, tout, OutputVector( 1),
RelativeTolerance, AbsoluteTolerancefJ), istate, Irw, liw, MethodFlag, OutLine,
MaxSteps)
where the arrays are properly dimensioned. In particular, the first index of the arrays must start
at 1, not 0. This is performed in Visual Basic as follows:
F-6
-------
ReDim A(l To MatrixSize, 1 To MatrixSize)
ReDim Matrix_as_OneD_Array(l To MatrixSize * MatrixSize)
ReDim InitialVector( 1 To MatrixSize)
ReDim Source Term Vector(l To MatrixSize)
ReDim OutputVectorf 1 To MatrixSize)
ReDim AbsoluteTolerance( 1 To MatrixSize)
Calculating Steady State Solution of a System of Linear Differential Equations
Background on Method Used. The system of coupled differential equations that represent
the flow of mass between cells is (currently) assumed to be one of the form:
y1 Ay s
wherey y(t) is the vector containing the amount of mass in each cell, A is the transition matrix
for the current time step, and s is the source term vector for the time step. A steady-state
solution of this system is one in which y 0; i.e., one in which Ay s 0. This equation is
solved (after some preprocessing) using TOMS Algorithm 576 by I. Barrodale and G.F. Stuart
(Barrodale and Stuart 1981). The method used is a modification of Gaussian elimination.
Implementation. The Fortran source code was obtained from the NetLib library of mathe-
matical, statistical and linear algebra routines (http:\\www.netlib.org) and compiled as a
Windows 95 32-bit dynamic link library using Microsoft Fortran Powerstation 4.0.
Before discussing the preprocessing performed, it is important to note some aspects of the
structure of the transition matrix A. The number of rows is equal to the number of distinct cells
where the chemical can be located. This includes all sinks. Assuming that the cells are ordered
from i=J to n, the numbers in the /th row off the diagonal correspond to input the /th cell
receives from other cells2. These numbers will always be nonnegative. The number in
diagonal in the /th row is always nonpositive, and is related to the total amount of chemical that
leaves the /th cell. The numbers in the /th column off the diagonal correspond to the mass of
chemical leaving the /th cell. This means that if cell / does not send mass to any other cells,
then all of the entries in the /th column of the transition matrix will be zero. In particular, all of
the entries in the columns corresponding to sinks will always be zero. This implies that if cell /
technically, these coefficients are the instantaneous fluxes from the sending cells to cell i per mass of chemical in the sending cells
F-7
-------
LL
^)
J2
(D
O
(0
0)
«^
5,
0)
2
0)
o
CO
re
^
c >
•^ o
u *=
I 5
is
O re
8 1
O Jr:
I Q
T3
V
(0
U)
re
Q.
to
o
3
O)
O
c
o
*3
re
c
_re
a
x
HI
Comment
V
a
j£
^
((Q
(Q
_a>
.2
ra
w
Q
O
3
CO
CO
c
co
CD
Size only limited by available memory. N.B. Memory ma
scenarios with any kind of subdomains.
CD
O)
0)
CD
"5s
_Q
4
^
-5-
CD
N
CO
X
•5
ransition M
i-
CO QJ
^3 -^. fl
^.^ 5"s
S ^
•§ co t5
C tv C
(D ^ >»
c 0 to
•-n to E
This variable is passed so that automatic arrays can be <
run-time; i.e., Fortran subroutine does not need to calcul
dimension array. If allocatable arrays were used, then it
necessary to send this variable.
0)
O)
0>
_c
cu
5s
JD
1
^L ~~
3.
CD
N
'co
X
to
E
"o
£
CO
CT
CO
c c co
CO O CD
O M '
••"• ^
CO ^ ^
m 5 E
— Q) CD
™ ^ CO
-C >.£
One-dimensional array used due to concern about how \
Fortran will pass dynamically-sized two-dimensional arra
need to exploit the expected banded/sparse structure of
CO
CO
£
CD ^
0 ^
co oo
t/5 **~
CO °
"m 2 c
dJ ^— \f
% * c
o-l -2
m C sD
>- CD .t!
3 E w
0^ o
,
Q.
^35
CD
E
'*-•
o
X
•5
ransition m
*~
o
to
CO
to
I
.g
"o
CO
CD
CD
•5,
JD
cb
"o
CO
i_
CO
"co
C
mensio
i size n
"O
CD -^
c w
O 2
c
itialVector
—
J
TJ
CO
CO
CD
E
CD
CD
ts
.0
"53
u
ts
CD
E
CD
0
CO
CD
to
CO"
CD
.Q
ob
"6
>s
CO
k_
CO
"CO
c
imensio
'f size n
"O ^
CD w
C CO
0 £
CL
Si
to
CD
E
~
Q
k_
O
"o
CD
ourceTerm
CO
CO
£
(D
•5,
_O
ob
^^ ^
QL
0)
to
CD
E
^*
"o
o>
c
'c
c
CD
^3
to
0)
H
LSODE will return an approximation to y(t(>ut)
CO
£
0)
o
co
3
^
£
0
T3
CD
E
Q.
"5
0
The approximation toy(/(/uf) calculated by LSODE.
CD
•5,
jtp
ob
"o
CO
k_
CO
"re
c
imensio
i size n
-D <->
c to
0 £
• — •
utputVecto
O
co
O
o ^^>
fl5 O
..C ^3
^ -f
(0 *^^_
LSODE attempts to approximate the actual solution sucf
error for the /th component of the solution vector y is rtol
CO
CD
"5s
J3
ob
o
t
*•" "
T3
.t
CO
T3
1
to
CD
cc
CD
5;
i
CO
"6
nT
b.
CO
"CO
c
imensio
'f size n
-o °
tb-H?
C CO
0 £
Q
co
CD
"55
CD
t3
CD
C
2
CD
O
Q)
"5
co
<
CO
u.
-------
O)
O
(0
"o
CO
o
o
i
3
C/)
CO
-J o
O '-5
Q (0
Uj--|
Q a>
-o
0)
c:
o
O
T3
0)
(0
0)
(Q
a.
(0
*-
0)
3
O)
O
c
o
"*3
ra
c
JB
a
x
UJ
Comment
(U
a
>»
j-
0)
3
.2
ra
ti
2
.2
a
>
c
co ,- to
o .to •-
•2 ~ '>.
•«- CO - (/)
o o w •-
J||5I
CD l| E "5 **
X: qj CO S 0)
H!H,
O 5 — g O 3
lelils
CD _Q> o ™ 0) CO
'C ^x i— r/) ^ __
CD -9 .Q — E c
1 1 2 1 1 1
If an error occurs during
be used to determine the
LSODE indicates that th<
does not mean that the r
important to have additio
approximations to the so
CD
O)
Si
"c
i
.a
>Qi'
^M
a
.to
CD
JD
.55
to
>
.0
o
c
D)
CO
Q
cc
•s CM CM
to CM CM
o *- *~
CO O '^ ^^
to T- C\j C\J
(U II II II
o ca)"^ t3)f>)_ o>
CD CD *— CD
«> LL + LL + EC
J +! +| +|
CO O * CM •* CM •=
> CM X= CM ^: CM S:
CO
0)
CD
C
i
^
_Q
?
CO
>s
CO
k_
03
C
1_
o
i
to
JD
i_
O
!c m
0)9
S w
to
CO
01
Value must be set to at li
20
if MethodFlag=10
20 + n
if MethodFlag=21,22
CD
O)
CD
'c
CD
^
T3
CD
C/3
3
2
k.
CO
O)
c
1
*
0)
£
c
0 ^
^ o
13
C •-'
_J J3
ON
ti.
-------
o
o '-
Q TO
jyl
Q o>
T3
0
_C
O
O
0)
(0
CA
(0
Q.
(A
0)
>
O
C
o
"J
re
c
_re
a
x
UJ
Comment
«
a
>
t-
9)
S
.2
*c
n
0)
A
.S
"^
IB
>
c
(0
Method used by LSODE to approximate the solution to the system
y' Ay s, y(t0) c.
Set MethodFlag equal to
10
for nonstiff Adams Predictor-Corrector method (Jacobian not used)
21
for stiff case (Backward Differentiation) Uses full Jacobian (i.e., no
sparsity structure exploited)
22
for stiff case (Backward Differentiation), Approximates the full Jacobi
with difference quotients
24
for stiff case, user-supplied banded Jacobian (Currently not utilized).
25
for stiff case method, approximates banded Jacobian (Currently not
utilized).
o>
O)
S
.'c
r& _ «
Reports line number in LSODE program where error message is, if ar
error occurs. This is not an original part of the LSODE program. It wj
added because the original error message output routines are not
compatible with Microsoft's Fortran compiler. N.B. 1 initially added ar
additional string variable that would contain the error message, but thi
sometimes "unstable" when called by Excel, and causes frequent
crashing. The problem is that passing variable length string arrays
between Fortran and other languages must be done very carefully.
0)
0)
S
c
oj
j?
4
0)
"3
O
o
«- .>,
Maximum number of time steps used by LSODE in the interval (t0, tM
approximate the solution at tou!. Default value in LSODE is 500, but
simple cases showed that this may not be sufficient. N.B. This usual
needs to be increased if LSODE returns istate=-3.
0)
0)
&
c
o>
t^
1
4-
CO
Q.
j5
55
X
m
2
o
a.
-------
is a sink, then y, (the mass of chemical in the sink) does not explicitly appear in the system
Ay s 0; i.e., the ith entry of the vector Ay is zero.
The preceding discussion shows that the rows and columns corresponding to the sinks can be
ignored when finding the steady state solution. For this reason, the actual system solved to find
the steady-state solution is the reduced system that does not include the sinks. This system is
obtained from the general system by deleting the rows and columns corresponding to the sinks.
In Visual Basic, the function is made available by adding the following code to the top of a
module:
Declare Sub Modge Lib "Lineq" (N As Long, NDIM As Long, A As Double, B As
Double, epsAs Double, tolerAs Double, P As Long, QAs Long, ZAs Double, XAs
Double, K As Long, OCODE As Long, OPIVOT As Long)
It is assumed that the file "lineq.dll" is located in the "c:\windows\system" directory. The setup
program will automatically copy this file. The actual calling of the subroutine is performed as:
CallModge(N, NDIM, A(l, I), B(l), eps, toler, P(l), Q(l), Z(l), X(l), K, OCODE, OPIVOT)
where the arrays are properly dimensioned. In particular, it is critical that the index of the first
element if 1, and not 0 (the default in Visual Basic is 0):
NDIM = N
ReDim A(J To N, 1 To N)
ReDim TA(I To N, 1 To N)
ReDim B(l To N)
ReDim P(I To N)
ReDim Q(l To N)
ReDim Z(I To N)
ReDim X(l To N)
On entry to the subroutine, the array A contains the matrix, and B contains the vector for which
a solution of AX=B is sought. If the algorithm is successful, then on return the array X will
contain the approximation to the solution.
F-ll
-------
CM
CM
(0
.o
'f
Q
cr
UJ
(B
o>
o
in
&
w
>.
(0
0>
"o
(A
(1)
*3
O
3
CO
re
.0
& c
• J
E
n
c
O
UJ
I
o
0)
w
M
re
a
I
<
"o
c
o
re
c
"5.
X
UJ
Comment
CD
a
>*
|-»
V
fi
.2
re
0)
JO
"H
re
r denoting the number of equations
0)
a>
0)
c
<
CD
CT
CD
cz
CD
•t
JD
"*
Z
r parameter for adjustable dimensions (NDIM ^ N)
CD
en
_CD
H
c
<
CD
O)
CD
C.
CD
-O
•*
^
^E
Q
Z
CD -o
-C c
III
C O '••=
o '- co
o j«: w
"- — CO
(0 to C
^ 0 "5
^>.C 3
"c *- °"
o c *
Iz E
O ,-. O
Z c g
«- «> TJ
CO > Z>
® f -J
«zl
c to .£
ro ~ .co
I;I|
£ "S3 2
~. O 0
< O 0
3
>^
co
^_
CO
"CO
c
.2
(/)
c
CD
E
% «
O5
O -3
5 o
1- -o
<
j=
Z Q)
~* d
ay of dimension at least N which on entry must contain in positions
side vector B. On exit the positions k+1 to N contain the residuals c
d equations.
t "a 0
ro S «
00 £ 03
2 2 w
J~ 05 C
< •=: 3
15
>s
CO
t
CO
"cO
C
2
m
c
CD
C
^ ®
IQ
c g
O -D
m
CO
.2
"5
LtQ)£a>COTilJ2
CD
X)
3
o
Q
DC
UJ
o
>%
2
(0
CD
•5
CO
CD
C
CO
c:
h
"5 E
O 3
•o o
8 "
o .2
"O '«
CD O
CO Q.
Il
o5 D)
CO 'C
CD O
~^. 0
co ^L
c C
0 0
CO X
C CD
CD -S
"D CD
eo ^
CO rT
^
CO
co
TO
Q
-"
D.
$,
g
co
0
"o
CO
0
0>
co
"I
0 .
i
0 "4=
2 8
o §.
•p To
0 £
|o
i|
«3 °
1!
If
cB CD
L_ ^
o>O
Si '
< CO
z
.2
CO
c
0
E
•^
^_
o
^^
CD
CO
O)
o
o
z
"to
co
m
o
'co
0
"o
to
0
o
CO
CL
h_
i
CO
£
"o
>^ ^7
2 ,-
k_ tr
CO .2
— to
CO C
C 0
.2 E
CO ~
C T3
<" T^
E
j3
c o
OQ
N
CM
ul
-------
o
1
O1
UI
I
o
w
0)
(0
0)
"o
V)
s
Q)
'^
o
JD
£•
n
CM
C4
CO
— .? ^
ra
u
I
ra
c
Q
UJ
(3
1
O
*-
TJ
0)
M
(A
ra
Q.
W
0)
O)
<
"5
,0
ra
jo
0.
X
UJ
C
o
O
£
0)
E
o
U
*
a
H
MB
.Q
.2
a
jj>
A
ra
'C
re
0
CO
0 c
•*"• (0
o .c
CO *=
t to
o to
O CO
= a>
^.E
.2 =>
11
Sie
_C" _O Q)
« .to o
CO C m
•E.Q $
|||
g £ "o
"to 2 co
sai
to g|
0 § °
~ '•= 0)
£ "55 c
f §,§
E r- 2
-r-\ P
*- w o
o c »-
>,.O Q)
CO *m *^;
k- Cg *^
*•" 3 C
« CT CO
III
™ c "5
_t ® D-
< •£ co
"o
^ "Z.
n
to .2
— tO
to c
C 0)
•s E
£v
|o
._ m
?l
C O
00
X
^i_
z
VI
TD
CO
"to
CO
CO
o
"to
cr
CO
"o
^
JS
c
d>
^
CO
CO
0
CO
TJ
"5
^^
J
o
c.
o
.c
o
"i
CO
en
c
c
<
CO
Q)
CO
•5.
jp
•*
^
.
— ;; <^-
CO o
it
CO _
£ «
"tO CO
jl^
W-l
Q- O
UJl-
o'o"
CO CO
— L w w
S" =• =
A ^^
~ ^3 "U
.. < co "to to
~s ^ to E E
"5 ,_ to co co
^ II *— ^^
^ " CD .to co
*-* ^~^ II
Q) '^* '-^
°o o P to to
o ^ *- c 'c
t ^- co c c
x co to "CB "55
® £ co co co
D) , T"T T
m O T- CM CO
c
c
^
CO
0)
0)
^
1
"*
UJ
Q
o
o
0
c
1
CO
(0
-C
>,
(0
E
w"
Q.
LLJ
CO
to
3
•o
"to
CO
"to
CO
CO
o
T3 CO
^^
.2 "o"
Q. CO
1-2
8| |
•5.2 «
> 0)0,
1 -i >
o w co
_Jf 15 ^ "6
X i?" ^£" 5
i- O O =
CO U O CO
en i ,
W T- (M
c
c
<
CO
s
"c
CO
Jlp
•*
t-
o
E
O
-------
Calculating the Convex Hull for a Set of Points
Background on Method Used. Frequently it is necessary to calculate the smallest convex
region containing a set of two-dimensional points. This is primarily performed after finding
the points in the intersection of two convex polygons, where the points must be reordered to
preserve convexity. A convex region is one in which, for any two points in the region, the line
between the points is contained within the region. The smallest convex region containing a set
of points is called the "convex hull" for the points. The convex hull of a set of points is
determined using the subroutine CONVEX, which is Algorithm 523 of the Association for
Computing Transactions on Mathematical Software, written by W.F. Eddy (1977).
Implementation. The only modification made was to add the code to allow the subroutine to
be called by programs that can call DLLs (e.g., Visual Basic):
!MS$IF Defined(ForDLL)
!MS$ATTRBUTES dllexport:: MODGE
!MS$ATTRffiUTES alias: 'Modge'::MODGE
IMSSENDIF
To call the program from Visual Basic, the following code must be added at the top of the
module:
Declare Sub Convex Lib "ConvexHull" (N As Long, x As Double, M As Long, IN_I
As Long, I A As Long, IB As Long, IH As Long, NH As Long, IL As Long)
It is assumed that the file "convexhull.dll" is located in the "c:\windows\system" directory.
The setup program will automatically copy this file. The actual calling of the subroutine is
performed as:
Call Convex(N, x(l, 1), M, INJ(l), IA(1), IB(J), IH(J), NH, IL(J))
where the arrays are properly dimensioned. In particular, it is critical that the index of the first
element if 1, and not 0 (the default in Visual Basic is 0):
ReDim x(J To 2, 1 To N)
Re Dim IN_I(1 To N)
ReDim IA(J To N)
F-14
-------
ReDim IB(1 To N)
ReDim IH(1 To N)
ReDim IL(1 To N)
Before calling the routine, the vertices are placed in the x array; and IN(i) is set to i for i=l to
N. This is implemented here as:
For i = 1 To N
x(l, i) = Vertices(i).x
x(2, i) = Vertices(i).y
IN_I(i) = i'
Next i
After calling CONVEX, the variable NH will be equal to the number of vertices in the convex
hull, and the ordered points (referred to here as V_post) for the convex hull are obtained by the
following code (this uses the linked list in 7L):
IK = IL(1)
NumberVertices = NH
For i = 1 To NH
V_post(i).x = x(l, IH(IK))
V_post(i).y = x(2, IH(IK))
IK = IL(IK)
Next i
F-15
-------
Table F-23
Explanation of Arguments passed to CONVEX Dynamic Link Library Subroutine to Calculate
Convex Hull for a Set of Points
Variable
N
X
M
IN
IA
IB
IH
NH
IL
Variable Type
4-byte Integer
Double (2,N)
4-byte Integer
4-byte Integer array of
dimension M
4-byte Integer array of
dimension M
4-byte Integer array of
dimension M
4-byte Integer array of
dimension M
4-byte Integer
4-byte Integer array of
dimension M
Description
INPUT: Total number of data points
INPUT: (X,Y) co-ordinates of the data
INPUT: Number of points in the input subset
INPUT: Array (M) subscripts for array X of the points in the
input subset
WORK AREA: Array (M) subscripts for array X of left son
subsets
WORK AREA: Array (M) subscripts for array X of right son
subsets
OUTPUT: Array (M) subscripts for array X of the vertices of the
convex hull
OUTPUT: Number of elements in array IH and array IL. Same
as number of vertices of the convex polygon
OUTPUT: A linked list giving in order in a counter-clockwise
direction the elements of array IH
References:
Barrodale, I. and G.F. Stuart, ACM Transactions on Mathematical Software, September, 1981.
W. F. Eddy, Algorithm 523: CONVEX, A New Convex Hull Algorithm for Planar Sets, ACM
TOMS 3(1977) 411-412.
Alan C.Hindmarsh, ODEPACK, A systematized collection of ode solvers, in Scientific
Computing, R. S. Stepleman et al. (eds.), North-Holland, Amsterdam, 1983, pp. 55-64.
Radhakrishnan, K. and A.C. Hindmarsh, Description and Use ofLSODE, the Livermore Solver
for Ordinary Differential Equations, LLNL UCRL-ID-113855, 1993.
F-16
-------
F.3 Spatial Routines Implemented
Introduction. In order to facilitate the necessary spatial calculations, class modules and
subroutines were implemented in Visual Basic and Fortran. These were compiled into a 32-bit
dynamic link library (filename "TrimDLL for P4.dll"), which is referenced by the main sub-
routines that read the input files and generate the transition matrices. This DLL was created
using Microsoft Visual Basic Professional Edition 5.0, Service Pack 2.
A class module is essentially a user-defined "type", analogous to "Integer" or "Double
Precision" in standard Fortran. It is more general than a type, however, as it can have self-
contained properties and subroutines. The properties and subroutines can either be public
(readable/usable by any other subroutine) or private (available only to objects within the class
module itself). The code for a class module is a template or blueprint for creating instances of
the class module, as it is the instances that are utilized by programs making use of the class
modules. The instances can also be referred to as objects. The method of programming that
makes use of such objects is generally called object-oriented programming, although in its
strictest sense there are features that a programming language must have, that Visual Basic 5.0
does not, in order that it be referred to as being object-oriented1. An advantage of the use of
class modules is that it makes the logic flow of programs more transparent: coding details that
are extraneous to the program flow can be tucked inside objects. This simplifies programming,
compartmentalizes code to help reduce code redundancy, and facilitates code reuse.
A summary of the primary class modules implemented for the spatial calculations made in P4
are summarized in the table below. More detail on each of the class modules and associated
subroutines are summarized in subsequent tables.
'These include inheritance, in which objects can be created from existing objects, and polymorphism
F-17
-------
Table F-24
Summary of Main Class Modules Implemented for Spatial Calculations in P4
Class Module
Point2D
PolarVector2D
PointSD
Polygon2D
Facet3D
CVolumeElement
Exposed
Description
Contains x and y coordinates for a two-dimensional point. Used for polygon
calculations.
Contains polar form for a two-dimensional point. Used primarily for code
addressing wind vectors.
Contains information on a three dimensional point. Used primarily for
polyhedra calculations.
Two-dimensional polygon; vertices are Point2D objects
Consists of a two-dimensional polygon (Polygon2D object) rotated into three
dimensional space. Used for polyhedra calculations and windspeed
calculations across cells.
Polyhedron in three-dimensional space; boundary consists of FacetSD
objects.
Object wrapper for general spatial routines.
Calculating the Convex Hull lor a Set of Points. Frequently it is necessary to calculate
the smallest convex region containing a set of two-dimensional points. This is primarily
performed after finding the points in the intersection of two convex polygons, where the points
must be reordered to preserve convexity. A convex region is one in which, for any two points
in the region, the line between the points is contained within the region. The smallest convex
region containing a set of points is called the "convex hull" for the points. The convex hull of
a set of points is determined using the subroutine CONVEX, which is Algorithm 523 of the
Association for Computing Transactions on Mathematical Software, written by W.F. Eddy
(ACM TOMS 3(1977) 411-412. The Fortran source code for this program was downloaded
from the NeiLib repository (http://www.netlib.org). It was compiled as a dynamic link library
("convexhull.dll") using Microsoft Fortran Powerstation 4.0.
Calculation of Interfacial Areas. For diffusive and advective transfers between abiotic
cells, it is necessary to calculate the area of the interfacial region defining the boundary
between the cells. In P4, the cells are assumed to be three-dimensional polyhedra whose
boundaries consist of a finite number of planar regions. The planar regions are referred to here
as facets or features. The facets consist of points in three-dimensional space all of which are in
the same plane. The interfacial area between two cells is calculated by first determining the
pairs of facets in the two cells which are in the same plane. Then, for each such facet pair, the
facets are rotated so that they are both parallel to the xy-plane (this is done using the normal
F-18
-------
vector to the plane containing the facet). At this point the z-coordinates are not necessary, and
the interfacial area can be determined by finding the area of the intersection of the polygons
resulting after omitting the z-coordinates. The convex polygon resulting from the intersection
is determined by first calculating the finding the points in the intersection and then finding the
convex hull containing these points. This is performed using the routine CONVEX described in
the previous section.
Implementation of Wind Field. The wind flow across an air cell boundary is calculated by
finding the projection of the wind vector onto the normal vector to the boundary between the
air cells. In P4, it is assumed that the boundary between air cells is a vertical plane, but the
method described below can be extended to more general boundaries. Implementation of these
methods is performed in the subroutines in the module
GetWindSpeedBetween Volume Elements, has
Let P,=(x,,y,) and P2=(x2,y2) be the points defining the line that is the projection of the boun-
dary onto the ry-plane (i.e., the view from above of the vertical plane defining the boundary).
It is assumed that the points P, and P2 are ordered so that the receiving cell is on the right side
of the directed line segment starting at P, and ending at P2. The unit vector v perpendicular to
this line segment that is in the direction of the receiving cell is given by
r(v2v,, (A:,*,)) (simp, cos
-------
w • v
y,r (*2 .*,)-
5 [sinO sincp cosO cosq>]
- [(y2 y,) sinft (x, x,) cosft]
Since v is a unit vector, the dot product in this case is the component of the vectorv? in the
direction of v . The wind flow rate from the sending cell to the receiving cell is defined to be
the dot product if it is positive, otherwise it is zero; i.e.,
„,. , , r ,. ,, . . ,,
Wind speed from sending cell to receiving cell
-v w
„ ,
If the wind is blowing perpendicular to the boundary, then the wind flow rate is just the wind
speed; otherwise it is flowing with a velocity less than the wind speed, the magnitude of which
depends on the difference in the angles of the wind speed and the boundary.
Summary of Classes and Subroutines
Table F-25
Point2D Class Properties and Methods
Properties
/ Methods
X
y
Type
Double
Double
Public or
Private
Public
Public
Comment
Other Procedures
Called
F-20
-------
Table F-26
PointSD Class Properties and Methods
Properties/
Methods
X
y
z
phi
6
P
dx
dy
dz
dphi
dtheta
drho
SetXYZ
Type
Double
Double
Double
Double
Double
Double
Double
Double
Double
Double
Double
Double
NA
Public or
Private
Public
Public
Public
Public
Public
Public
Private
Private
Private
Private
Private
Private
Private
Comment
Spherical coordinates for point.
Phi is the angle measured from
the positive z-axis (will always be
between 0 and n), 0 is the angle
measured counterclockwise
from the positive x-axis in the xy-
plane, and p is the distance from
the origin to the point. The
relationship between Cartesian
and spherical points is:
p = (x2 + y2 + z2)1'2
tan(9) = y/x
cos(phi) = z/p
x = p * sin (phi) * cos( 6)
y = p * sin (phi) * sin( 8)
z = p * cos(phi)
If any of the properties x, y, z,
phi, 6, or pare modified, then all
of the other properties are
automatically updated, as
necessary.
Private copy of x
Private copy of y
Private copy of z
Private copy of phi
Private copy of 6
Private copy of p
Calculates dx, dy, and dzfrom
current values of dphi, dtheta,
and drho. Called whenever phi,
6, or pare modified
Other Procedures
Called
F-21
-------
Table F-26
PointSD Class Properties and Methods
(Continued)
Properties/
Methods
SetrhoTheta
andPhi
TheAngle(x
as double.y
as double)
Acos(x as
double)
Writeout(Opti
onal Verbose
as Boolean =
false,
optional polar
as boolean =
false)
Draw(Radius
as double,
ViewPt as
Point3D,
Theform as
Object,
optional
zscale as
double=1.0,
optional
thickness as
integer,
optional
Eraselt as
Boolean)
Type
NA
Double
Double
String
NA
Public or
Private
Private
Private
Private
Public
Public
Comment
Calculates dphi, dtheta, and
drho from current values of dx,
dy, and dz. Called whenever x,
y, or z are modified.
Calculates the angle in radians
counterclockwise form the
positive x-axis. There is
currently a separate copy of this
function in the module
BasicF 'unctions
Calculates the inverse cosine of
x, returning a number between 0
and n. There is currently a
separate copy of this function in
the module BasicFunctions
Returns a text string containing
values for either Cartesian or
spherical coordinates for point.
Draws the point with a circle
around it on the form Theform
using the specified (three
dimensional) viewpoint. The z-
values are scaled by zscale, the
line has thickness 1 if no
thickness is specified, and the
facet is drawn in the color of the
background of the form if Eraselt
is True.
Other Procedures
Called
TheAngle
F-22
-------
Table F-27
Polygon2D Class Properties and Methods
Properties/
Methods
Vertices
Sides
NumberVertices
Area
lsVertex(Pt as
Point2D,
Tolerance as
Double, Index
as long,
NumberVertices
as long)
ReorderVertices
toPreserveConv
exity
AddVertex(The
Point as
Point2D)
Draw(Theform
as Object,
Optional
Thickness as
Integer)
Type
Collection
Collection
Long
Double
Boolean
NA
NA
NA
Public or
Private
Public
Public
Public
Public read
only
Public
Public
Public
Public
Comment
Collection of Point2D objects. In
P4, a Polygon2D object will
always be convex.
Collection of LineSegment
objects that make up the sides
of the polygon
Returns the area of the polygon
(see CalcArea function below).
Returns true if the point Pt is
within Tolerance of a vertex of
the polygon. NumberVertices is
the number of vertices that the
point Pt is within Tolerance of,
and Index is the index in the
Vertices collection of the last
vertex that satisfies this criterion.
The purpose of this subroutine is
to reorder the Vertices collection
so that the polygon defined by
Vertices(1), Vertices(2),... is
convex. Generally this method
is called after a vertex is added
or after the intersection of two
polygons is calculated. This
routine will not be necessary if
additional subroutines are added
to allow nonconvex regions.
Adds the point ThePointto the
Vertices collection and updates
the Sides collection.
Draws the polygon on the form
Theform
Other Procedures
Called
CalcArea
Convex (calculates
convex hull of a set
of two dimensional
points)
F-23
-------
Table F-27
Polygon2D Class Properties and Methods
(Continued)
Properties/
Methods
CalcArea
Type
Double
Public or
Private
Public read
only
Comment
Calculates the area of the
polygon, assuming that it is
convex. The convexity implies
that the polygon can be
triangulated by the triangles
(V(1),V(2),V(3)),
(V(1),V(3),V(4)), ...
V(1),V(N-1),V(N), where V(i) is
the ith ordered vertex and N is
the number of vertices.
Other Procedures
Called
TriangleArea2D in
the module "Basic
Functions"
(calculates the area
of a triangle defined
by three arbitrary
two dimensional
points)
Table F-28
PolarVector2D Class Properties and Methods
Properties/
Methods
Direction
Length
X
y
Draw(Theform
as object,
Optional
Thickness as
Integer,
Optional
Eraselt as
Boolean)
Type
Double
Double
Double
Double
NA
Public or
Private
Public
Public
Public read only
Public read only
Public
Comment
Degrees clockwise of the
positive y-axis
Length of vector
Abscissa of the endpoint of the
vector
Ordinate of the endpoint of the
vector
Draws the vector on the form
Theform. If Eraselt is true, then
the line is drawn using the
background color of the form.
Other Procedures
Called
F-24
-------
Table F-29
CVolumeElement Class Properties and Methods
Properties/
Methods
Draw(ViewPt
as PointSD,
Theform as
Object,
Optional
zscale as
double
(default=1 ),
optional
Thickness as
integer,
optional
Eraselt as
Boolean)
IslnDataBase
Facets
ID
Name
TypelD
TypeName
Volume
IsConnectedto
Database
UnHookFrom
DataBase
Database
TimeStep
Type
None
Boolean
Collection
Long
String
Long
String
Double
Boolean
NA
Database
Long
Public or
Private
Public
Public
Public
Public
Public
Public
Public
Public read only
Public read only
Public
Public
Public
Comment
Draws all of the facets in the
volume element on the form
Theform using the specified
(three dimensional) viewpoint.
The z-values are scaled by
zscale, the line has thickness 1 if
no thickness is specified, and
the facet is drawn in the color of
the background of the form if
Eraselt is True.
Returns true if the volume
element is in the most recent
database pointed to, else false
Collection of the facets that
make up the volume element
ID of volume element in
database
Key for volume element in
database
Type volume element (e.g.,
urban, agriculture)
Name for volume element type
Returns the volume of the
volume element via a call to
CalcVolume
Returns true if the database
property is set to a database
Sets database property to
nothing
Sets database for volume
element and reads in data to
define facets. It is assumed that
either the ID or Name property
have been set.
Not utilized
Other Procedures
Called
CalcVolume
Load Facets
F-25
-------
Table F-29
CVolumeElement Class Properties and Methods
(Continued)
Properties/
Methods
Add
(ciFacetSd as
FacetSD)
CalcVolume
Load Facets
Type
Integer
Double
Integer
Public or
Private
Public
Private
Private
Comment
Adds a facet to the Facet
collection. Returns 0 if
successful
Calculates the volume of the
volume element, assuming that
it is bounded above and below
by horizontal facets of the same
shape. In this case, the volume
reduces to the product of the
area of the top and the height.
Reads in facets from database.
Returns 0 if facets successfully
loaded. Called whenever the
database is set.
Other Procedures
Called
Add
F-26
-------
Table F-30
Exposed Class Properties and Methods
Properties/
Methods
myWindSpeed
FromVolumeEleme
ntAtoB
(VolA_Sending as
CvolumeElement,
VolB_Receiving as
CvolumeElement,
WindVector as
PolarVector2D)
myWindSpeedAcros
sVerticalPlane
(VerticalPlane as
FacetSD,
VolA_Sending as
CvolumeElement,
WindVector as
PolarVector2D)
myW indSpeedTowa
rdsRightSide(
(WindVector as
PolarVector2D,
PointStart as
Point2D, PotntSTop
as Point2D)
mySidePointisOn(Z
_1 as Point2D, Z_2
as Pomt2D, p as
Point2D)
myFindProjection(W
indVector as
PolarVector2D,
PointStart as
Pomt2D, PointStop
as Point2D)
myGrabFacet(ID as
Long, iTimeStep as
Long, dbData as
DataBase)
myReorderFacetSD
Vertices(facet as
FacetSD)
Type
Variant
Variant
Variant
Variant
Double
Facet3D
FacetSD
Public or
Private
Public
Public
Public
Public
Public
Public
Public
Comment
Returns windspeed across
boundary of intersection of
volume elements
Returns windspeed from volume
element to a facet (returns 0 if
facet is not vertical)
Returns the wind speed from left
to right side of the directed line
segment starting at PointStart
and ending at PointStop
Returns "left" if point p is on the
left of the directed line segment
starting at Z_1 and ending at Z_2,
else "right"
Returns the projection of the
vector WindVector onto the vector
that is perpendicular to the
directed line segment starting at
PointStart and ending at
PointStop, and pointing to the
right of the segment.
Returns the facet in the database
dbData that has the specified ID
Returns convex hull containing
facet (this is the smallest convex
region containing the facet).
Other Procedures
Called
WindSpeedFromVolume
ElementAtoB in module
GetWindSpeedBetween
VolumeElements.bas
WindSpeedAcrossFacet
in module
GetWindSpeedBetween
VolumeElements. has
WindSpeedTowardsRigh
tSide in
modulePro/'ecf/ons.bas
SidePointisOn in module
WhichSidelsPoint.bas
FindProjection in module
Projections.bas
ReorderFacetSdVertices
F-27
-------
Table F-30
Exposed Class Properties and Methods
(Continued)
' Properties/
Methods
myCreateFacet3D(p
oly2d as
Polygon2D, Height
as double,
NormalVector as
pointSD)
myFacetSdlntersecti
on(Facet1 as
FacetSD, Facet2 as
FacetSd,
IntersectionSd as
Facets D,
intersection2D as
Polygon2D)
myVolumeElementl
nterfaces(VolumeEI
ementA as
CVolumeElement,
VolumeElementB as
CVolumeElement)
myFeaturelnterface
s(ciFacet3DA as
FacetSD,
ciFacetSDB as
FacetSd)
Type
Facet3D
Boolean
Collection
Facet3D
Public or
Private
Public
Public
Public
Public
Comment
Returns the facet generated as
follows:
-Creates a three dimensional
facet from the two dimensional
polygon poly2d by setting the x-
and y-coordinates of each vertex
to those of the polygon, and the
z-coordinate to Height
- Rotates the facet about the
origin so that it has normal vector
NormalVector
Calculates the convex hull of the
intersection of two coplanar
facets
Returns collection of all facets
that result from the intersection of
the facets in each volume
element
Calculates the convex hull of the
intersection of two coplanar
facets
Other Procedures
Called
CreateFacetSD
FacetSdlntersection in
the module
BasicFunctions
VolumeElementlnterface
s in Globals
Feature Interfaces in
Globals
F-28
-------
Table F-31
FacetSD Class Properties and Methods
Properties/
Methods
a
d
c
d
HasSPoints
arrVertices
iNumVertices
TheVertices
mJID
m_ciP3DMinZ
pSdBasePoint
pSdNormalvector
NormalVector
PolygoninXYPIan
ePositiveZView
Type
Double
Double
Double
Double
Boolean
Point3D
Long
Collection
Long
PointSD
PointSD
PointSD
PointSD
Polygon2D
Public or
Private
Public
Public
Public
Public
Public
Private
Private
Public
Private
Private
Private
Private
Public
Public
Comment
The equation for the plane
containing the points in the facet
is given by
ax + by + cz + d = 0
Returns true if there are at least
three points in the facet
Array containing the points in the
facet
Number of points in the facet
Collection containing the points
in the facet
ID for the facet in database (not
required if facet is not created
from a database)
Point in the facet that has the
minimum z-value
pSdNormalVector is a unit vector
normal to the plane containing
the facet, and pSdBasePoint is a
point in the plane (set equal to
the first point added to the.
facet).
The equation for the plane
containing the facet can be
written
pSdNormal.x * (x -
pSdBasePoint.x) +
pSdNormal.y * (y -
pSdBasePoint.y) +
pSdNormal.z " (z
- pSdBasePoint.z) = 0
Returns the point (0,0,0) if the
facet has less than 3 points, else
it returns pSDNormalVector
Returns the two-dimensional
polygon that results when the
facet is viewed from the normal
vector
Other Procedures
Called
DRotatePoint in
BasicFunctions
F-29
-------
Table F-31
FacetSD Class Properties and Methods
(Continued)
Properties/
Methods
Vertex(i as long)
NumVertices
ID
PointMinZ
AddVertex(p3dPt
as PointSD)
lnPlane(Pt as
Pomt3D,
testTolerance as
Double)
Type
Point3D
Long
Long
PointSD
Long
Boolean
Public or
Private
Public
Public
Public
Public
Public
Public
Comment
Returns or sets the Ah vertex of
the facet: arrVertices(i)
Returns the number of vertices
in the facet
Returns or sets the ID for the
facet in the database
returns the vertex point with the
minimum z-value
Adds a point to the facet, if it is
in the plane containing the points
already in the facet and is not
too close to points already in the
facet. The return value will be:
0 if point added to
facet
1 if point is not in
plane containing
the points already
in the facet (with
tolerance 1 E-4)
2 if point is too close
to points already in
the facet (with
tolerance 1 E-4)
If the point is successfully added
to the facet and the resulting
number of points in the facet is
three, then the normal vector
and the constants a, b, c, and d
are calculated.
Returns true if the point Pt is in
the plane containing the facet.
else false. A point is in the plane
containing the facet if there are
less than three points in the
facet, or if
la'Pt.x + b'Pt.y + c'Pt.z + dl <;
testTolerance
Other Procedures
Called
InPlane
F-30
-------
Table F-31
FacetSD Class Properties and Methods
(Continued)
Properties/
Methods
Draw(ViewPt as
PointSD,
Theform as
Object, Optional
zscale as double
(default=1),
optional
Thickness as
integer, optional
Eraselt as
Boolean)
Type
None
Public or
Private
Public
Comment
Draws the facet on the form
Theform using the specified
(three dimensional) viewpoint.
The z-values are scaled by
zscale, the line has thickness 1 if
no thickness is specified, and
the facet is drawn in the color of
the background of the form if
Eraselt is True.
Other Procedures
Called
DRotatePoint in
BasicFunctions
F-31
-------
Table F-32
Subroutines and Functions in the Module BasicFunctions.bas
Name(Arguments)
Convex(N as Long, x
»as Double, M as
Long, M as Long,
IN_I as long, 1 A as
Long, IB as Long, IH
as Long, NH as
Long, IL as Long)
ReorderFacetSdVerti
ces(facet as
FacetSD)
FindThetaandPhi(p
as PointSD, 9 as
Double, phi as
double)
CreateFacet3d(poly2
d as Polygon2D,
Zvalue as Double,
NormalVector as
PointSD)
Facet3dlntersection(
Facetl as FacetSD,
Facet2 as FacetSd,
IntersectionSd as
FacetSD,
intersection2D as
Polygon2D)
TheAngle(x a
Double, y as Double)
Acos(x as Double)
Type
NA
FacetSD
NA
FacetSD
Boolean
Double
Double
Comment
Fortran dynamic link library to calculate the
convex hull of an arbitrary array of two
dimensional points
Returns facet that is the convex hull for facet.
This is performed by
- using the normal vector of the facet, facet is
rotated about the origin so that it is in a
horizontal plane (i.e., z-coordinate is equal to
some Hfor all vertices
- this facet is projected onto the xy-plane to
obtain a two dimensional polygon
- the convex hull of the polygon is calculated,
then translated to height H, and finally rotated
about the origin so that it has same normal
vector as the original facet
Calculates spherical coordinates for the three
dimensional point p
Creates a facet as follows:
- create a facet by translating the polygon
poly2d\o height Zvalue
- rotating the facet about the origin so that it
has normal vector NormalVector
Calculates the convex hull of the intersection
of two coplanar facets
Returns the angle (in radians) of the point
(x,y), measured counterclockwise from the
positive x-axis
Returns the inverse cosine of x; result will be
in the range 0 to n
Other Procedures
Called
CreateFacetSD
UndoDRotatePt
VectorNorm,
1 nte rsection Polygons2
D in Globals,
CreateFacetSD
F-32
-------
Table F-32
Subroutines and Functions in the Module BasicFunctions.bas
(Continued)
Name( Arguments)
TriangleArea2D(p1
as Point2D, p2 as
Point2D, p3 as
Point2D)
VectorNorm (Vector
as Object)
DotProduct(a as
Point2D, b as
Point2D)
DotProduct3D(a as
Point3D, b as
PointSD)
Linelntersection(Line
1 as LineSegment,
Line2 as
LineSegment,
Optional
Tolerance=0)
Parallel(Line1 as
LineSegment, Line2
as LineSegment,
Optional Tolerance
as Double=0)
Vertical(Line as
LineSegment,
optional Tolerance as
Double=0)
Horizontal(Line as
LineSegment,
optional Tolerance as
Double=0)
Type
Double
Double
Double
Double
Point2D
Boolean
Boolean
Boolean
Comment
Calculates the area of the triangle with
vertices at the points p1, p2, and p3. If we
define three dimensional vectors by s*Plp2 and
£=/>,Pi, then the area of the triangle can be
calculated as
Area = (l/2)|jxfc|,
where-x- is the vector cross product, andi r is
the vector norm.
Calculates the norm of
Vector = U,-t,. j;J by
VfdorNorm = HP x~
Currently checks to make sure Vector is either
a Point2D or PointSD object
Returns a.x*b.x + a.y+b.y
Returns a.x*b.x + a.y+b.y+a.z*b.z
Determines the intersection of the lines
containing the two line segments. Currently it
is assumed that lines are not parallel (the
function Parallel is called before this function
is called).
Returns true if the lines are parallel, else false
Returns true if distance between x-
coordinates of starting and ending points of
the line segment is less than Tolerance
Returns true if distance between y-
coordinates of starting and ending points of
the line segment is less than Tolerance
Other Procedures
Called
CrossProduct
VectorNorm
Vertical
Vertical
F-33
-------
Table F-32
Subroutines and Functions in the Module BasicFunctions.bas
(Continued)
Name( Arguments)
Type
Comment
Other Procedures
Called
CrossProduct(u as
PointSD, v as
PointSD)
PointSD
Calculates cross product »• =«* v:
wx = u vv.z-v y*u z
w \ = -(u x*v.i-v x*u z)
H'.Z= U X'V \ -V.Jt»U V
RotatePt(Pt as
PointSD, ViewPt as
PointSD)
PointSD
Rotates the point Pt about the z-axis and then
about the y-axis in the same manner that
rotates ViewPt so that it lies on the positive x-
axis.
RotateAboutZAxis
RotateAboutYAxisD
DRotatePt(Pt as
PointSD, ViewPt as
PointSD)
PointSD
Rotates the point Pt about the z-axis and then
about the y-axis in the same manner that
rotates ViewPt so that it lies on the positive z-
axis. In particular, if the spherical coordinates
of ViewPt are given by (p,cp,9), then the point
Pt is subjected to two consecutive rotations:
- first rotated clockwise about the z-axis with
angle 8 (this rotation would move ViewPt so
that it lies in the xz-plane)
- next rotated counterclockwise about the y-
axis with angle cp (this rotation would move
ViewPt so that it lies in the yz-plane)
RotateAboutZAxis
RotateAboutYAxis
UndoDRotatePt(Pt as
PointSD, ViewPt as
PointSD)
PointSD
This is the inverse of DrotatePt:
UndoDRotatePt(DrotatePt(Pf, ViewPf))=Pt for
any Pt and any ViewPt.
It is used primarily to create facets from
polygons with prescribed normal vectors.
If the spherical coordinates of ViewPt are
given by (p,cp,9), then the point Pt is subjected
to two consecutive rotations:
- rotated clockwise about the y-axis with angle
-cp; this rotation would move the point (p,0,0)
to the point (p.cp.O)
-rotated counterclockwise about the z-axis
with angle -9; this rotation would move
(p.cp.O) to (p,cp,9)
RotateAboutZAxis
RotateAboutYAxis
F-34
-------
Table F-32
Subroutines and Functions in the Module BasicFunctions.bas
(Continued)
Name( Arguments)
RotateAbout2Axis(Pt
as Point3D, Angle as
Double)
RotateabdoutXAxis(P
t as PointSD, Angle
as Double)
RotateAboutYAxis(Pt
as PointSD, Angle as
Double)
Type
Point3D
PointSD
Comment
Rotates Pt clockwise by an angle Angle (in
radians) about the z-axis. This leaves the z-
coordinate unchanged; in particular, the
function returns the vector VP given by
H-J = Pi **cos( -Angle} - Pt\ •iin(-Anj?/f)
K i = Pi x-s\n(-Angle) • Pi \ *cos(-Angte)
Rotates Pt counterclockwise by an angle
Angle (in radians) about the y-axis. This
leaves the y-coordinate unchanged; in
particular, the function returns the vector *
given by
wx-Pii-coXAngM-Ptz-sirtAngle)
« \ = PM
H - = ftjfsinlAnjs/f) • Pi Z'Cos(Anelf)
Other Procedures
Called
F-35
-------
TECHNICAL REPORT DATA
(Please read Instructions on reverse before completing)
1. REPORT NO. 2.
EPA-452/D-98-001
4 TITLE AND SUBTITLE
The Total Risk Integrated Methodology: Technical Support
Document for the TRIM.FaTE Module, Draft
7. AUTHOR(S)
U.S. EPA
9. PERFORMING ORGANIZATION NAME AND ADDRESS
U.S. Environmental Protection Agency
Office of Air Quality Planning and Standards
AQSSD/REAG (MD-15)
Research Triangle Park, NC 27711
12. SPONSORING AGENCY NAME AND ADDRESS
Office of Air Quality Planning and Standards
Office of Air and Radiation
U.S. Environmental Protection Agency
Research Triangle Park, NC 27711
3. RECIPIENT'S ACCESSION NO.
5. REPORT DATE
March 1998
6. PERFORMING ORGANIZATION CODE
Office of Air and Radiation
8. PERFORMING ORGANIZATION REPORT NO.
10. PROGRAM ELEMENT NO.
11. CONTRACT/GRANT NO.
13. TYPE OF REPORT AND PERIOD COVERED
Draft
14. SPONSORING AGENCY CODE
EPA/200/04
15. SUPPLEMENTARY NOTES
U.S. EPA Project Officer: Amy B. Vasu
16. ABSTRACT
The Total Risk Integrated Methodology (TRIM) is a modeling system for the assessment of human health
and ecological risk resulting from exposure to hazardous and criteria air pollutants. This report describes
the first phase of development of the TRIM.FaTE module (the environmental fate, transport, and exposure
module of TRIM) and provides detailed information (mathematical derivations, data inputs, justifications)
supporting the testing and implementation of the TRIM.FaTE module.
17. KEY WORDS AND DOCUMENT ANALYSIS
a. DESCRIPTORS
Multimedia modeling; fate; transport; exposure;
risk assessment
18 DISTRIBUTION STATEMENT
Release Unlimited
b. IDENTIFIERS/OPEN ENDED TERMS
Air pollution
19. SECURITY CLASS (Report)
Unclassified
20. SECURITY CLASS (Page)
Unclassified
c. COSATI Field/Group
21. NO OF PAGES
356
22. PRICE
EPA Form 2220-1 (Rev. 4-77) PREVIOUS EDITION IS OBSOLETE
-------
Table F-33
Subroutines and Functions in the Module
GetWindSpeedBetweenVolumeElements.bas
Properties/ Methods
WindSpeedAcrossfacet(
VerticalPlane as
FacetSD, VolA_Sending
as CvolumeElement,
WindVector as
PolarVector2D)
WindSpeedFromVolume
ElementAtoB
(VolA_Sending as
CvolumeElement,
VolB_Receiving as
CvolumeElement,
WindVector as
PolarVector2D)
Type
Variant
Variant
Comment
Returns windspeed from volume
element to a facet (returns 0 if facet
is not vertical)
Returns windspeed across vertical
boundary of intersection of volume
elements
Other Procedures
Called
W indSpeed Acrossf acet
Table F-34
Subroutines and Functions in the Module Globals.bas
Properties/Methods
lntersectionPolygons2D(
Polyl as Polygon2D,
Poly2 as Polygon2D)
lnConvexPolygon(Pt as
Point2D, poly as
Polygon2D)
VolumeElementlnterface
s(VolumeElementA as
CvolumeElement,
VolumeElementB as
CVolumeElement)
Featurelnterfaces(ciFacet
3DA as FacetSD,
ciFacet3DB as FacetSd)
Type
Polygon2D
Boolean
Collection
Facet3 D
'Comment
Calculates the intersection of two
polygons. It is assumed that the
polygons are convex.
Returns true if the point Pt is in the
convex polygon poly, otherwise
false.
Returns collection of all facets that
result from the intersection of the
facets in each volume element
Calculates the convex hull of the
intersection of two coplanar facets
Other Procedures
Called
Convex
F-36
-------
Table F-35
Subroutines and Functions in the Module Projections.bas
Properties/Methods
WindSpeedTowardsRi
ghtSide( (WindVector
as PolarVector2D,
PointStart as Point2D,
PointSTop as
Point2D)
FindProjection(WindV
ector as
PolarVector2D,
PointStart as Point2D,
PointStop as Point2D)
Type
Variant
Double
Comment
Returns the wind speed from left to
right side of the directed line
segment starting at PointStart and
ending at PointStop
Returns the projection of the vector
WindVector onto the vector that is
perpendicular to the directed line
segment starting at Po/nfSfart and
ending at PointStop, and pointing to
the right of the segment.
Other Procedures
Called
FindProjection
MyDotProduct via
Routines. myDotProdu
ct, where Routines is
an Exposed object
instance
Table F-36
Subroutines and Functions in the Module WhichSidelsPoint.bas
Properties/Methods
SidePointisOn(Z_1 as
Point2D, Z_2 as
Point2D, p as Point2D)
Type
Variant
Comment
Returns "left" if point p is on the left
of the directed line segment starting
at Z_1 and ending at Z_2, else
"right"
Other Procedures
Called
TheAngle
References:
W. F. Eddy, Algorithm 523: CONVEX, A New Convex Hull Algorithm for Planar Sets, ACM
TOMS 3(1977) 411-412.
F.4 Alpha Version
The working alpha version of P4 for TRIM.FaTE can be downloaded from the following
World Wide Web site:
www.epa.gov/oar/oaqps
A printout of the source code is available upon request.
F-37
-------