&ER&
United States
Environmental Protection
Agency
EPA/600/R-08/068
June 2008
       Demonstration and
       Evaluation of an Automated
       Infiltration Gallery System at
       Port Hueneme, CA
        Plume Control and
         Containment
          System
                  In-Situ Bio-Barrier
                         (Leading Edge)
                              In-Situ Bio-Barrier
                               (Mid Plume)
              In-Situ
            Biore mediation
             Test Plots
          EPA Infiltration Gallery
           at Former Envirogen
           Demonstration Site
           r — ,j

-------
                                                         EPA/600/R-08/068
                                                               June 2008
Demonstration and Evaluation of an Automated Infiltration
             Gallery System at Port Hueneme, CA.
                                 by

                     Carl G. Enfield1 and Bob K. Lien2

                     'Pegasus Technical Services, Inc.
                          Cincinnati, OH 45219
              2Land Remediation and Pollution Control Division
               National Risk Management Research Laboratory
                         Cincinnati, Ohio 45268
               National Risk Management Research Laboratory
                    Office of Research and Development
                   U.S. Environmental Protection Agency
                         Cincinnati, Ohio 45268

-------
                                    DISCLAIMER

The work reported in this document is funded by the United States Environmental Protection
Agency (EPA) under Work Assignment 15 of Contract EP-C-05-056 to Pegasus Technical
Services, Inc. It has been subjected to the Agency's peer and administrative reviews and has been
approved for publication as an EPA document. Any opinions expressed in this paper are those of
the author(s) and do not, necessarily, reflect the official positions and policies of the EPA. Any
mention of products or trade names does not constitute recommendation for use by the EPA.

-------
                                     FOREWORD

The United States Environmental Protection Agency (EPA) is charged by Congress with
protecting the nation's land, air, and water resources. Under a mandate of national environmental
laws, the Agency strives to formulate and implement actions leading to a compatible balance
between human activities and the ability of natural systems to support and nurture life. To meet
this mandate, EPA's research program is providing data and technical support for solving
environmental problems today and building a science knowledge base necessary to manage our
ecological resources wisely, understand how pollutants affect our health, and prevent or reduce
environmental risks in the future.

The National Risk Management Research Laboratory (NRMRL) is the Agency's center for
investigation of technological and management approaches for preventing and reducing risks
from pollution that threaten human health and the environment. The focus of the Laboratory's
research program is on methods and their cost-effectiveness for prevention and control of
pollution to air, land, water, and subsurface resources; protection of water quality in public water
systems; remediation of contaminated sites, sediments and groundwater; prevention and control
of indoor air pollution; and restoration of ecosystems. NRMRL collaborates with both public and
private sector partners to foster technologies that reduce the cost of compliance and anticipate
emerging problems. NRMRL's research provides solutions to environmental problems by
developing and promoting technologies that protect and improve the environment; advancing
scientific and engineering information to support regulatory and policy decisions; and providing
the technical support and information transfer to ensure implementation of environmental
regulations and strategies at the national, state, and community levels.

This publication has been produced as part of the Laboratory's strategic long-term research plan.
It is published  and made available by EPA's Office of Research and Development to assist the
user community and to link researchers with their clients.
                                            Sally Gutierrez, Director
                                            National Risk Management Research Laboratory

-------
                                CONTENTS
DISCLAIMER	i
FOREWORD	ii
ABSTRACT	iv
FIGURES	v
APPENDICES	vi
ACKNOWLEDGMENTS	vii
1   INTRODUCTION	1
  1.1    Objectives	1
  1.2    Rationale	1
    1.2.1    MTBE biodegradation	2
    1.2.2    Mound On-Site Treatment System	2
2   SITE DESCRIPTION	5
  2.1    Prior Studies and Information Relevant to System Design	5
  2.2    Infiltration Gallery and Plot Installation	6
  2.3    Limitation of Scope Due to MTBE Depletion	9
3   LABORATORY GAS PERMEABLE MEMBRANE DIFFUSION TEST	10
4   AUTOMATED INFILTRATION GALLERY CONCEPT & DESIGN	12
  4.1    Infrastructure	13
    4.1.1    Ground water extraction and distribution	13
    4.1.2    Infiltration Gallery Oxygen Monitoring	15
  4.2    Program Control Logic	17
    4.2.1    Fan Control	20
    4.2.2    Extraction Well Control	20
    4.2.3    Plot Water Application	20
    4.2.4    Datastorage	21
    4.2.5    Data Display	21
5   PERFORMANCE EVALUATION	23
  5.1    Hardware Performance	23
  5.2    Chemical Performance	24
  5.3    Temperature	25
  5.4    Pumping Required to Maintain Pressure Tank Pressure	26
  5.5    Oxygen Sensor Calibration	28
  5.6    Water Applied to the Plot	30
6   RECOMMENDED NEXT STEPS	32
7   REFERENCES	35

-------
ABSTRACT

Laboratory and field studies have shown that is possible to degrade most fuel components under
oxidizing conditions. The spread of soluble fuel components released to ground-water
environments is often enhanced because ground water can not supply oxygen at a rate equal to the
demand of the dissolved fuel.  This study was conducted to evaluate the feasibility of using the
vadose zone or soil above the water table which was maintained in an oxidizing state by a control
system without artificially adding oxygen to treat fuel components. The test was performed at
Port Hueneme California in an area formerly contaminated by a fuel spill. The scope of the study
was limited to evaluating the field reliability of a remotely operated infiltration gallery. The
results showed that it was possible to operate the system remotely with very little intervention
from a field technician. None  of the problems normally associated with infiltration galleries
plugging from biological growth were observed. This was likely due to the draining of the
distribution lines between each water application cycle.  The study was conducted for more than a
year but there was little contamination remaining in the groundwater when the study was
performed and it was not possible to evaluate the chemical performance of the system.
                                           IV

-------
FIGURES
Figure 1. Schematic of the Wisconsin mound system showing septic tank, dosing and
       mound	3
Figure 2. Port Hueneme MTBE and BTEX plume as of May 2001 showing project area
       used in this study	5
Figure 3. Schematic layout of test plots	6
Figure 4. Location of north infiltration gallery showing Envirogen gas injection wells
       prior to the beginning of work	7
Figure 5. Removal of 1.2 m of the existing formation material to allow for the
       constriction of the infiltration gallery	8
Figure 6. Infiltration gallery as installed	8
Figure 7. Schematic drawing of the laboratory test chamber used to evaluate the silicone
       tubing used as a diffusion membrane for oxygen measurement	10
Figure 8. Performance of a length of silicone tubing in the laboratory test chamber	11
Figure 9. Cross section of infiltration gallery as originally proposed	12
Figure 10. Water Extraction System	13
Figure 11. Water distribution system	14
Figure 12. Water extraction and delivery system	15
Figure 13. Gas sampling system	16
Figure 14. Instrumentation housed in the equipment shed. Note, the rotometers in the
       photo were not in use	16
Figure 15. Flow diagram of the computer program that operated the system	18
Figure 16. Computer monitor display of the program	21
Figure 17. Equipment in the vault	24
Figure 18. Temperature  fluctuations at three different locations	26
Figure 19. Average pump cycles per day required to maintain pressure in tank located in
       vault	27
Figure 20. Pumps after approximately  18 months of continuous operation	28
Figure 21. Oxygen calibration parameters illustrating period of time when oxygen was
       not available	29
Figure 22. Measured oxygen based on  calibration curves	29
Figure 23. Cumulative water application to south plot using two different metrics	31

-------
APPENDICES

APPENDIX 1. Wiring Codes DAS6033	37
APPENDIX 2. Oxygen Sensor Wiring Codes	40
APPENDIX 3. Oxygen Calibrator Box Wiring Codes	41
APPENDIX 4. DDA02-16 Wiring Codes	43
APPENDIX 5. Vault Wiring	47
APPENDIX 6. Port_Hueneme_Display Code	48
  Private Sub cmdStart_Click()	51
  Private Sub FanQ	59
  Private Sub O2Cal()	60
  Private Sub PlotPumpCtrlQ	65
  Private Sub WellPumpCtrlQ	71
  Private Sub CmdStop_Click()	73
  Private Sub Analog_In() ' used for channel 0 thru 13	74
  Private Sub Analog_In2() ' used for channel 14 thru 19	76
  Private Sub SleepTimeQ Time between measurements when water is not needed	77
  Private Sub DTime(delay) 'Delay time	77
  Private Sub Analog_In3() ' used for channel 4 thru 11	78
  Private Sub Analog_In4() 'used for channel 20 thru 21	79
  Private Sub FillTimeQ Time to fill pumps	80
  Private Sub PressureTimeQ Time to fill pumps	80
  Private Sub VentTimeQ Time to pressure vent lines	80
  Private Sub Plot2()	80
APPENDIX 7. Farm Code	84
APPENDIX 8. Main Form 1  (Code)	88
APPENDIX 9 Initial Work Plan	89
  INTRODUCTION	89
  THE SITE	90
  EXPERIMENTAL PLAN	90
  CONTFNGENCIES	93
APPENDIX 10 Partial Parts List	99
                                   VI

-------
ACKNOWLEDGEMENTS

We wish to thank the NFESC personnel at the US Navy's Port Hueneme for their support
in obtaining a permit from the state of California to perform the experiment and the
continued support during the experiment making field observations and recording data on
the  data log.  Without this support this project would not have been possible.
                                      VII

-------
1   INTRODUCTION

1.1   Objectives
The objective of this project was to demonstrate and evaluate the robustness of an
automated infiltration gallery system at Port Hueneme, CA designed to remove fuel
components from ground water by moving the ground water from a reducing
environment in the water table aquifer to the vadose zone where oxidizing conditions
exist providing favorable conditions for aerobic bioremediation of the potentially
contaminated groundwater.  The primary source of oxygen in the vadose zone is the
atmosphere. Oxygen is supplied by a combination of processes including diffusion, and
natural pumping actions caused by changes in water content and changes in atmospheric
pressures. An infiltration gallery, as used in this report, refers to a structure in the soil
consisting of slightly perforated (10% or less of the surface area) horizontal pipes
surrounded initially by permeable sands or gravels used to distribute water within the soil
profile and then allow the water to infiltrate naturally. Infiltration galleries are frequently
used for onsite waste treatment called leach fields after a septic tank and to assist in
dissipating waters in storm water catchments basins in urban areas.  Installing an
infiltration gallery at underground  storage  tank (UST) facilities provides immediate
access to local groundwater providing rapid identification of contamination with a built in
remedial system capable of handling small releases. Questions to be answered directly
by this investigation were:  (1) the ability to detect the depletion of oxygen in the vadose
zone and consequently reduce the application of water until oxygen returns to the
infiltration gallery; (2) automatically calibrate oxygen sensors used to assess the oxygen
status of the vadose zone; (3) maintain the ability of delivering groundwater to the vadose
zone without plugging the distribution system with biological growth which has been a
major shortcoming of the infiltration gallery approach; (4) monitor the performance of
the system remotely with minimum local intervention. In addition, there were concerns
as to the durability of the different sensors, in particular the oxygen sensors many of
which have a short useable life (the ones used in this study were reported to have a life
expectancy often years), and control systems under this type of environmental
conditions.
1.2  Rationale
Methyl tertiary Butyl Ether (MTBE), the principal oxygenate in fuel, peaked in US
production at about 3.3 billion gal per year in 1998 (USGS, 2006). MTBE was the
second most-produced chemical in the U.S. in 1997 (OEHHA, 1999). MTBE is the
second most frequently detected VOC in samples from domestic and public wells despite
its relatively short production and use history (USGS, 2006). In general, most fuel
components are biologically degradable under aerobic conditions.  If favorable
subsurface environmental conditions can be maintained, there is considerable potential
for natural attenuation processes to mitigate small releases from Underground Storage
Tanks (UST).  Selected evidence of the attenuation potential is discussed below.

-------
1.2.1   MTBE biodegradation

There are numerous laboratory and field studies that document the degradation of MTBE
and other fuel components under oxidizing conditions (Borden et al., 1997; Bradley et al.,
1999; Church et al., 1999; Javanmardian and Glasser,  1997; Mackay et al.,  1999; Mackay
et al., 2000; Wilson et al., 2002; Wilson et al., 1999).  Compared to other fuel
components MTBE may be more recalcitrant than many but there are sufficient
organisms naturally occurring to expect degradation can occur. When MTBE is present
one of the daughter products, tertiary butyl alcohol (TEA), is also frequently observed.
TEA is also degradable under oxidizing conditions (Bradley et al., 2002; Kaharoune et
al., 2002; Schmidt et al., 2004; Wilson et al., 2001). At subsurface fuel releases, even
when the resident ground water is initially oxidizing, the demand for oxygen frequently
out strips the natural ability of a formation to attenuate the contamination before risks are
evident at water supply wells. The problem is exacerbated when the groundwater is
reducing.

There are technologies available in the waste water industry that effectively treat
oxidizable waste waters. Most of the systems collect the waste water and treat it in
centralized plants.  Unlike the municipal and industrial waste water sources, our gasoline
distribution system is diffuse and scattered in our urban and rural communities such that
it is not practical to collect contaminated ground water and treat  it at centralized facilities.
An alternative would be to use one of the land-based on-site small flows waste water
treatment systems. In  this study, an infiltration gallery, utilizing the principals of a
Mound On-Site Treatment System, was selected for evaluation because of its adaptability
to a large range of soil conditions.
1.2.2   Mound On-Site Treatment System

The objective of the mound, as with other soil-based units, is to treat and disperse
domestic and commercial waste water on-site via the subsurface in an environmentally
acceptable manner and to protect the public health (Converse and Tyler, 2000).  A mound
treatment system consists of a septic tank that removes solids by settling and floatation
with some of the solids transformed into  soluble material which pass to the dosing
chamber (Figure 1). The dosing chamber contains a pump or siphon, which transfers
effluent, under pressure, to a distribution network of small diameter pipes with small
perforations which distributes the effluent uniformly over the absorption area of the
mound. The effluent infiltrates into and percolates through the mound sand and  native
soil, the pathogens are removed, the organic matter is transformed both aerobically and
anaerobically, nitrogen is transformed sequentially from organic and ammoniacal forms
to nitrate which requires oxidizing conditions and phosphorus is retained in the native
soil and may slowly migrate depending on the soil properties.

The design and performance of the mound system,  as well as other soil based treatment
systems, is usually based on typical domestic waste water properties which has been
pretreated by passing the waste water through a septic tank. Typical domestic effluent

-------
                                                             /Jete RVAI-ON TIME
                                                TCP SOU, ,.
        StPTiC  TANK      DOSING  CHAM3ES
Figure 1.  Schematic of the Wisconsin mound system showing septic tank, dosing
and mound (Converse and Tyler, 2000).

will have a biochemical oxygen demand (BOD) in the range of 150 - 250 mg/L and total
suspended solids (TSS) in range of 50 - 100 mg/L. Fats oils and greases (FOG) are
typically below 15 mg/L.  The mound treatment system is suitable for final treatment and
dispersal of highly pretreated effluent from units such as aerobic treatment systems, sand
filters, peat filters and biofilters which typically produce effluent with BOD and TSS  less
than 25 mg/L (Converse and Tyler, 2000).
An efficient on-site waste water system has a balance between the amount of oxygen
entering the  system with the amount of oxygen needed to decompose the organic matter
and meet the demand for other reactions. If the amount of oxygen entering the system
cannot meet the demand, a clogging mat will form (Erickson and Tyler, 2001). Clogging
mats form at a contrast in the hydraulic conductivity (when the fluid passes from a high
hydraulic conductivity area to a lower hydraulic conductivity). If the system design can
be manipulated to supply oxygen into the soil exceeding the rate needed, the life and
loading rate  of the on-site waste water system can be greatly increased. Aerobic bacteria
use oxygen as their terminal electron acceptor to convert organic molecules to carbon
dioxide and ammonia to nitrate. Oxygen is the most effective oxidizing agent; therefore
decomposition in an aerobic setting is far more efficient than in  an anaerobic
environment.

In addition to supplying the oxygen needed to avoid a clogging mat, sufficient separation
distance is required between the discharge point in the mound and the regulatory control
plane to allow time for aerobic transformations. The regulatory control plane is the
location along the flow path of the treated waste water where the treated waste water
must meet health and safety requirements (usually considered to be the water table or
perched water table under the mound).

The natural soil formation must be capable of accepting the hydraulic load from the
mound system.  The acceptable loading rate can be estimated based on the soil texture,
depth to the  seasonal high water table, and slope of the soil surface (water table slope and
soil surface slope are usually assumed to be the same) (Tyler, 2001).

-------
The composition of the contaminants in groundwater down gradient from a fresh fuel
release will be the mole fraction solubility of the components in the fuel (Cline et al.,
1991). With time, the composition will change and the ability of the treatment system to
accept a load will change. For this study, rather than designing the system based solely
on an expected water composition, the oxygen status is monitored and water is applied
only when there is sufficient oxygen to prevent the development of a clogging mat.  An
upper application rate is limited to the maximum the natural soil can accept hydraulically.

-------
2   SITE DESCRIPTION

2.1  Prior Studies and Information Relevant to System Design
The test plots were located at a site previously used to study the degradation of MTBE in
a plume created by a leaking underground storage tank at the Port Hueneme's Base
Exchange as shown in Figure 2. Port Hueneme has performed numerous studies related
to MTBE remediation and the evaluation of sight characterization tools. The
                                                                         N
Plume Control and
  Containment
    System
In-Situ Bio-Barrier
 (Leading Edge)
               In-Situ
           Bloremediation
              Test Plots
                                                In-Situ Bio-Barrier
                                                   (Mid Plume)
       EPA Infiltration Gallery
         at Former Envirogen
         Demonstration Site
Figure 2.  Port Hueneme MTBE and BTEX plume as of May 2001 showing project
area used in this study.

infrastructure already available made it a good candidate as a test site for this study. The
study site selected by personnel at Port Hueneme was a site previously used by Envirogen
to study MTBE degradation in situ using propane to stimulate biodegradation. We
modified the Envirogen site for the infiltration gallery study. The study area was near
monitoring well CBC-45. These test plots were previously set up to monitor MTBE
degradation in the water table aquifer and installed normal to the direction of
groundwater flow as shown in Figure 3.  Previously during the Envirogen study a
bromide tracer study was performed at the site using all of the 2" wells shown in Figure
3. The study was performed similar to a borehole dilution study where bromide was
injected into the formation at a constant rate and water within the borehole was circulated
with non contact pneumatic pumps to generate a uniform concentration in the bore hole.

-------
Time of travel to the various monitoring points was then evaluated. The flow rate
through aquifer was variable as a function of depth with a maximum determined
interstitial velocity of 0.05 m/day for a zone 2.3 m thick. In a regional study based on
historical data of the movement of the MTBE, the average interstitial velocity was
determined to be 0.006 m/day with a total average aquifer thickness of 3.5 m. This
information, based on prior work not funded by this project, was used to estimate the
desired maximum pumping rate for the plots. Each plot for the current study was
constructed 5 m in width.  If one assumes the porosity of the formation is 0.25 then the
volume flow needing to extract all of the water passing through a plane through the
infiltration gallery averages 0.05 1/m for the high flow rate zone measured using tracers
or 0.015 1/min for the aquifer averaged flow rate calculated based on an interstitial
velocity of 0.006 m/day.

               EPA Infiltration Gallery Test Plots

                       Support Shed:
                         Air Compressor
                         Pneumatic Pump Controllers
                         02 Monitoring
            Down Gradient
            Sampling Points
 GW Distribution System (bgi)

 0, Monitoring Lines

O 2" Extraction Weils with Bladder Pump

            N
                                                Vault {bgi)
                                                   Water Storage
                                                       Contr
                                                        •^
Down Gradit nt
Sampling Points
      Test Plot 1
                                        Test Plot 2
Figure 3.  Schematic layout of test plots. Wells used in a previous study at this
location were left in place. Many of the wells and monitoring points were reused in
this study.

2.2  Infiltration Gallery and Plot Installation

The area previously occupied by the oxygen and propane injectors used in the Envirogen
study was removed (Figure 4) and the infiltration galleries constructed in this area. The
existing soil was removed down to 1.2m (Figure 5) and the formation soil replaced by a
medium sand.  The infiltration gallery (Figure 6) consisted of a water distribution system
constructed from 1/2" polyethylene tubing and oxygen permeable membranes placed at
two depths below the water distribution system.  The lower loop oxygen permeable

-------
membrane (1/8" ID x 0.365 OD silicone tubing) was placed on a bed of sand.  Then 45
cm of sand placed on the lower membrane. And then an upper oxygen measurement
membrane was installed in the plot. The upper membrane was the same design as the
lower membrane. The upper membrane was covered by 45 cm of sand and the
distribution system was placed approximately 30 cm below the ground surface. Multi
depth vadose zone samplers were installed in the plot but sampling was discontinued
when it was discovered that there was little quantifiable MTBE in the formation water.
Figure 4. Location of north infiltration gallery showing Envirogen gas injection
wells prior to the beginning of work.

-------
                                                   =•*•• 2" Wells Used for Extraction
                                                       and Previews Tracer Study
  Down Gradient
Multilevel Samplers
                                                 ; .•=K*'ilarr" ••~irs-^^kJ\.
Figure 5. Removal of 1.2 m of the existing formation material to allow for the
constriction of the infiltration gallery.
               Vadose Zone Samplers
                       ater
                         .System
                                                  "> *""$-*
                       H^iliebfie'tuBtttg tor ty^etsu
Figure 6. Infiltration gallery as installed.
                                         8

-------
2.3  Limitation of Scope Due to MTBE Depletion

When the project was initially proposed and the permitting process initiated, the site was
contaminated with MTBE based on data provided by the Envirogen study. Vadose zone
samplers were installed to monitor water quality as it passed through the vadose zone.
However, by the time permits were in place and the system constructed, either the MTBE
had been dissipated by up-gradient remedial activities or the flow direction changed
sufficiently to deplete the MTBE from the test area making chemical performance
evaluation a moot point.  It was decided, after the first few months of sampling did not
find MTBE above quantifiable limits, to continue the evaluation without performing
chemical analysis and evaluate the mechanical performance of the design system and not
artificially add chemicals to the water potentially increasing Port Hueneme's liability by
adding contaminants to the site.

-------
3   LABORATORY GAS PERMEABLE MEMBRANE
    DIFFUSION TEST

Remediation of MTBE contaminated water requires oxygenated water as referenced
above. One of the objectives of this work was to maintain an oxidizing environment in
the vadose zone.  The hypothesis was that one should be able to change the water
application rate such that oxidizing conditions were continually maintained in the
formation. Thus if oxygen conditions in the vadose zone fell below a set level (15% in
air in equilibrium with the soil solution) the water application rate would be turned off.
To do this, it is necessary to monitor the oxygen in the vadose zone.  This suggests two
issues that must be addressed. First there needs to be a method for measuring the oxygen
status of the formation and a need to be able to calibrate the measurement device to
insure accurate measurements.  Silicone tubing is known to be permeable to oxygen as
well as numerous other gases. It was selected as a gas permeable membrane that could
equilibrate with the soil water allowing the assessment of the oxygen in the water.  The
membrane material was tested under laboratory conditions to evaluate how fast the gas
within the membrane could respond to a step change in oxygen concentration
surrounding the membrane. Ideally, if the response were very fast then air could be
pumped through tubing installed in the infiltration gallery and the amount of oxygen
remaining would represent an equilibrium state between the gas in the tubing and the
water in the formation. This equilibrium value could be determined by some type of
sensor with the output signal used for control purposes. The oxygen sensor  selected was
either a Figaro KE-50-F3 which is reported to have a life of 10  years and a nominal
output of 250 mV at 100% oxygen or a Figaro KE-25-F3 with a reported half life of 5
                          Silicone tubing under test
            Oxygen Sensors
                A
       Flow Regulator.
             \
         Argon CQ2
       Compressed Gas
Oxygen Sensors
                                                             Flow
                                                          Measurement
      Air Pump
                            Closed test chamber
Figure 7.  Schematic drawing of the laboratory test chamber used to evaluate
the silicone tubing used as a diffusion membrane for oxygen measurement.

years and a nominal output of 60 mV at 100% oxygen.  The membrane diffusion was
tested by first calibrating four of the oxygen sensors using air as 20.5% oxygen and then
                                     10

-------
passing a welding gas composed of Argon and CC>2 passed by the sensing membrane
assumed to represent 0% oxygen.  For the membrane diffusion test, two of the sensors
were placed at the discharge of the chamber used (Figure. 7) to verify that the oxygen in
the test chamber had been purged. Two oxygen sensors were also placed at the discharge
from a known length of silicone tubing placed in the chamber.  Air was pumped through
the tubing at known flow rates and measurements made of the oxygen concentration
emitted. At time zero for each flow rate both the oxygen in the test chamber and the
oxygen in the tubing were at the same concentration assumed to be 20.5% oxygen. Then
the test chamber was purged with a mixture of CC>2 and Argon (i.e. no oxygen). The
chamber oxygen level rapidly droped from  20.5% to near zero. This was verified using
the oxygen sensors  at the discharge of the test chamber and is equivalent to a step change
in relative concentration going from one to  zero.  The air entering the silicone tubing
remained at 20.5% but diffused through the tubing to the test chamber where it is flushed
away.  The longer the gas resides in the tubing the lower the oxygen concentration in the
effluent.  Since this is primarily a diffusion process, the shape of the curve should be
exponential where the loss is initially fast and then slows down as the concentration
gradient is reduced. Evaluations can be made only at the discharge of the test chamber.
Thus, changing the  flow rate through the membrane tubing changed the residence time of
a packet of air analyzed by the oxygen sensor. Residence time is inversely proportional
to flow rate through the tubing. The test was performed using the same type of oxygen
sensors used in the field so the response time reported includes the response time of the
sensors (Figure 8).  The figure shows the relative change in oxygen as a function of
residence time in the oxygen permeable tubing. The last data point is likely in error and
the residence time was likely much longer than reported. The reason for the error is that
the flow rate was at the limit of both the pump and flow measuring equipment and it is
believed that the flow intermittently stopped during this portion of the test. It was not
possible to maintain flow at lower flow rates with the equipment available. Based on the
data presented in Figure 8, the time that would be required to achieve equilibrium was
sufficiently long that the design used in the field employed a closed loop for measuring
the oxygen rather than single pass air.
       0.70
     -a 0.60
      
-------
4   AUTOMATED INFILTRATION GALLERY CONCEPT &
    DESIGN

The design of the system was to pump ground water up to the vadose zone and apply
water to the vadose zone with a maximum rate that would capture all of the ground water
passing beneath the infiltration gallery and redirecting the water through the vadose zone
occupied by the infiltration gallery (Figure 9). In the design it was necessary to keep all
of the water below grade to avoid the regulatory requirement for treating water that
passed through the plane of the surface before it could be reinjected into the ground. As
mentioned previously, the depth of aquifer treated has the saturated thickness above a
confining clay (approximately 4 m). Laboratory studies have suggested that there needs
to be at least two meters of soil above the water table to be able to maintain sufficient
oxygen to achieve the treatment desired. The depth to the water table was greater than 2
meters so it was not considered necessary to build a mound to operate the system. If
water could be  applied at the maximum design rate, essentially all of the groundwater
would be redirect through the vadose zone. The maximum design flow rate was based on
previous work at the site mentioned above.
                    EPA Infiltration Gallery Test Plots
        Sampling
        Location #1
 Sampling
Location #2
 Sampling
Location #3
Sampling
Locations
#4(D&S)
#5 (D8S)
JL
 w
 Oi
Q  4
Figure 9.  Cross section of infiltration gallery as originally proposed.
                                     12

-------
4.1  Infrastructure

4.1.1   Ground water extraction and distribution

Each plot had four non-contact bladder pneumatic pumps that were placed in 2"
monitoring wells immediately upgradient from the infiltration gallery. The pneumatic
extraction pumps delivered water to a pressure tank and maintained the pressure between
9 and 10 psi (Figure  10).  Pneumatic pumps are operated by pulses of air such that, when
pressurized, they force water into the pressure tank and, when they vent, the pump is
allowed to refill the pump body. Two check valves are used in the pump, one to prevent
back flow into the well from the pressure tank and the other to prevent water in the pump
body from reentering the well bore. The pump cycle used was 40 seconds of pressure
and 20  seconds of venting. The pumps operated on this cycle whenever the pressure in
the pressure tank was less than 9 psi, but once the cycling started they continued to pump
until they exceeded 10 psi.

          Water Well  Pump  Fittings
                          120 VAC -
        Nylon tee 3/8x3/8x3/8 all
      /      but first well

               Air
   TTL operated line voltage
   relay operated by computer
     120 VAC three
   •^  way valve
                Air Compres
                Water
                                                                         Flow
                                                                       Controller
      "\ 3/8" Union ell
       1/4" NPT(FF) check valve with
       locally purchased nipple if necessary
      s"
      X  3/8" Tube to 1/4" NPT(M)
       ^connector. Assumed fittings in
         pump are 1/4" NPT(F)
         Note: hang pump with cable not
         tubing
Pressure transducer in 1 x
1/4" plug reducer Note;
Requires excitation voltage
not on parts list.
15 Gal pressure tank Inlet line
3/8" OD Outlet Line 1/2" OD
both connected with 1 /2"
NPT(M) adaptors plug one
port with 1" plug.
        Four wells per plot
         to extract water
Figure 10.  Water Extraction System.


Water was distribution (Figure 11) to the plots cyclically. This was done for two reasons:
First, if flow is continuous and slow, bacteria begin to develop in the piping and soon
plug the distribution system to a point where water could not be delivered to the
infiltration gallery.  This was observed at a previous study with fuel contaminated ground
water performed at Dover AFB and is a common cause of failure of infiltration systems.
The second reason for pulses of water is to improve the distribution of the water. If water
                                     13

-------
is delivered at a slow rate, then it would be delivered only to the emitter locations and
penetrate to ground water relatively rapidly along preferential flow paths. The amount of
                   «	  350" (29' 2")	"
                       «	  330" (2T 6")	*
        Drill  four 3/32" holes
            each section
           AegtaJ 90° ell
 W OD 3/8" ID Polyethylene tubing
     to flow controller in Vault.
                                     Yf       tee
                                     3 places
                                                                   t
                                                                  20"
                     40"
Boundary of Infiltration
      gallery pit
          In  plot water distribution system  place 3-4 in
                         below ground surface
Figure 11. Water distribution system.

contact with vadose zone oxygen would be small and the system would likely fail due to
either poor oxidation of the chemicals or successive plugging of the formation.  Applying
water at instantaneous rates, greater than the saturated hydraulic conductivity of the soil,
will cause the water to spread horizontally filling the void spaces in the vadose zone
improving the areal distribution of the water.  The system was designed to deliver pulses
of water followed by two pulses of air after each pulse of water. The air was used to
drain the distribution system and minimize the potential of the distribution fouling from
bacterial growth, at the same time adding some oxygen to the vadose zone.  Oxygen from
this source is not a requirement for system operation. The major components of the
system are shown in Figure 12.

In the initial design, a programmable metering pump was used to deliver water to the
plot, rather than a flow controller shown in Figure 12.  This system failed due to flooding
of the site. When the system was rebuilt, a vault was added such that the top was above
the high water level of the previous years flood, but still keeping the fluids below ground
elevation. A sump pump was added to remove any water that might penetrate the vault's
walls. At this time the decision was made to replace the pump with a less expensive flow
controller. An  advantage of the flow controller was that it included a flow totalizer, a
stop valve when the control signal was set to zero, and a flow rate output that could be
logged by the computer system. The flow controller used has some restrictions related to
the amount of grit that could be tolerated and the manufacture suggested that the water be
filtered prior to passing through the flow controller. Filtering was the only treatment
provided before the ground water was injected into the infiltration gallery. It was
                                     14

-------
necessary to manually record the totalized flow. Manual recording of totalized flow
occurred on an approximately weekly schedule. The totalizing flow meter would
frequently roll over and begin counting from zero between reading cycles.  The data was
manually incremented to reflect these changes. Another disadvantage of the flow
controller was that it relied on the pressure developed by the pneumatic extraction pumps
for power to deliver water to the plots. The pneumatic pumps used were not designed to
operate at high pressures. The pumps were operating near the maximum head that could
reliably operate over long periods of time and were not able to operate at a rate that
would supply the maximum design flow.

                             Water  Extraction
           Equipment Shed
& Delivery
                                                                     1120 VAC
                                                                     Fan with
                                           \ -r   g
                                        \ r "      i
                                        x4-f*resTankut>l<3—•**
    Air
Compressor
                                  120 VAC
                                J Solenoids
                                  NC with
                                  TTL relays
                     Well Pump
Figure 12. Water extraction and delivery system.


4.1.2   Infiltration Gallery Oxygen Monitoring


The control system was to apply all of the groundwater flowing past under the infiltration
gallery to the infiltration gallery as long as there was sufficient oxygen in the vadose zone
to avoid dropping the oxygen content in air in equilibrium with the soil moisture below
15%.  If the oxygen fell below 15% the system stopped applying water until sufficient
oxygen was observed. The system was set up such that under program control the
oxygen sensors could be presented one of three different gases (Figure 13).  Two of the
gases were used for calibration. One calibration gas was atmospheric air representing a
reference 20.5% oxygen, and the other was GC grade nitrogen which served as a
                                    15

-------
      Oxygen  sampling
     Oxygen sensors
   1/4" Brass tee
                            -1/8" tube x 1/4" NPT(M),,
                              i   connector - -"•''
                  1/8" copper tubing with heat trace
                  brass unions where necessary
modified to accept ' I I i ± . JL
IXC Crt ™,*l,*^n f*^**^*** O L-r^-r* -r-l i '"'I J^
Stop valve r~ rF'
normally IM/'L/, rqX*'')n
closed ?T\ f '•""Vs".
V -r

1/4" to 1/8" reducing . - - . i ,„ JS 	
union *^^ (==^\ f. ~-=1 ^^ ! t^Al
a/
\
Air pump - Each pump has two \
/' \
m K, ^j i
	 "™"™'=~B^IIIIIIIIIIiaa|p«<==^^ J
-p? |

) I
I 1/8" ID silicone tubing 100' per sampling loop
I connect to copper tubing with worm drive clamp.
	 i The tubing was woven in a polyethylene fence
\ material to assist in placing the tubing in a single
\ plane in the formation. Note: there are two sampling
\ loops per test cell.
\ 3 way valves for calibrating; ports 1 and 3 connected
when de-energized; ports 1 and 2 connected when energized
   Note: all valves are 120 VAC
     with TTL operated relays

Figure 13. Gas sampling system.
  K ^Pressure regulator with tube adaptor
•x-X \
    X
     N2 gas cylinder leased at site
Figure 14. Instrumentation housed in the equipment shed. Note, the rotometers in
the photo were not in use.
                                16

-------
reference 0% oxygen. The third gas was the gas in the sampling loop. The sampling loop
was isolated and closed when the system was being calibrated. Initially a rotometer, as
seen in Figure 14, was used to measure gas flow, but continuous maintenance was
required to obtain reasonable reading. The rotometers were removed from the system to
minimize potential leaks. In the de-energized state, gas can flow through the solenoid
valves used in the gas sampling loop was from port 3  to port 1. Normally all of solenoid
valves used in the gas sampling loop remain de-energized.  When the system calls for a
calibration, the gas diffusion membrane was isolated from the system and atmospheric air
was pumped by the oxygen sensors for a  predetermined amount of time.  The voltage was
recorded for all  of the sensors every 20 seconds for four minutes.  Then nitrogen was
pumped through each individual sensor pair one at a time.  This was done in case there
was a leak in one of the systems. Data was again recorded every 20 seconds for four
minutes and all four loops were sequenced. The final measurements, air, representing
20.5% oxygen, and nitrogen, representing 0% oxygen, were used to calculate slopes and
intercepts used to evaluate the oxygen levels.
4.2  Program Control Logic

The system was controlled using an INTEL 386™ based PC. System changes were slow
and there was no need for a high speed computer.  The computer was placed on a small
UPS to handle short term power interruptions and ran continuously throughout the project
using Windows  2000™ operating system without any interruptions. The program was
written in Visual Basic 6 with a supplemental library of subroutines supplied by
Measurement Computing®.  The remote interface was based on SYMANTEC
pcANYWHERE™. Communication between the PC and the Internet was provided
wirelessly by an IP provider, Sky River. There were two primary functions for the onsite
hardware: data collection and storage and process control. To accomplish these
functions, two Measurement Computing® interface cards were added to the PC.  The two
PCI cards were a DAS6033 with 64-channels of 100 kS/s analog I/O with eight digital
I/O, and two counter/timers, and a PCI-DDA02/16 with 2 Channels of 16-Bit Analog
Output and 48 Bits of Digital I/O. In the upper right hand corner of Figure 14, is the
oxygen calibrator. The rotometers were initially in the system but removed because they
continuously needed to be cleaned to give reliable results. The pumps that moved the gas
through the diffusion  membrane and desiccators are  in the upper left of the picture.  In
the lower right of the  figure, in addition to the computer, are two breakout boxes where
the control signals and sensors were  attached to the computer, the small UPS system, and
one relay box. The digital  I/O ports functioned as output switches.  The power up state
for the ports was a digital high.  The interfaces to the AC loads were zero voltage relays
capable of handling loads up to 20 Amp.  The relays were turned on by a digital high.
The power up state of the Measurement Computing® interface cards was also a digital
high.  To avoid potential problems during power up sequencing, an additional transistor
switch was used between the computer card and the output relay to present the relay with
a digital low when the digital output port was set high and a digital high when the digital
output port was  set low. This is counter intuitive, requiring special attention during the
preparation and  evaluation of the code.
                                     17

-------
                                                            Determine if
                                                          adequate delay
                                                           time si nee last
                                                          water application
            Define Constants
            Allocate Memory
           Configure Hardware
                                                            Determine if
                                                          plot capable of
                                                          receiving Water
         Input Control Parameters
                                                             etermme i
                                                          sufficient water
                                                             available
                                                            Tank Pres
             Read Sensors
           Update data display
                                                             etermme i
                                                             data to be
                                                              Stored
              Determine i
              Fan should
                Be on
                (temps)
                                                            Should new
                                                             files be
                                                             Created
                                                             (counter)
Determine if we I
 Pumps should
    Cycle
(tank pressure)
                                         Update display
                                         create new fi es
                                                          Should program
                                                           continue to run
                                                            (user input)
Figure 15. Flow diagram of the computer program that operated the system.
                                           18

-------
A simplified flow diagram of the control logic of a single test plot is provided in Figure
15.  There were two test plots called north and south.  For a given plot, the pneumatic
extraction well pumps, four on each plot, were controlled by a single three wave solenoid
valve and operated in parallel. During initialization the user can adjust the timing by
setting the number of seconds for filling the bladder (solenoid valve vents to the
atmosphere) and the number of seconds the pump discharges (solenoid valve delivers
regulated pressure to the bladder).  Pump pressure was regulated manually and the
pressure was not recorded electronically.  During the power up sequence a default value
for the timing was provided. After tuning the pumping system to get a good delivery, the
default values were reset to the adjusted values.  This was done to avoid needing to reset
the pumping sequence each time there was a power interruption.
Decision
Turn on or leave on vault exhaust fan
Cycle Well pumps
Has there been sufficient delay since last
water application
Is there sufficient oxygen for water
application
Is there sufficient water in tank to apply
water
Should data be stored
Should new data file be created
Should O2 sensors be recalibrated
True Condition
If Vault temp > 10 °C and Air temp < Vault
temp
If Pressure tank pressure < 9 psi or if on
previous cycle pumps were on and pressure
tank pressure < 10 psi
Pump cycle count since last water
application > 20
O2>15%
Tank pressure > 8 psi
If counter > 10 then reset counter
If number of records in data file > 1000
When new data file is created
There were four pressure transducers monitored; two on each of the pressure tanks.  The
manufactures supplied calibration curve parameters were stored in a subroutine called
"parms.bas". Two different brands were used, one of each brand was placed in each of
the pressure tanks.  There were four temperature transducers. The temperature
transducers were semiconductors with a linear output (LM35). The calibration
parameters were  stored in the subroutine "parms.bas".  One temperature transducer was
placed in each of the vaults used to deliver water to the plots, one was in the shed that
stored the computer, and air compressor and one was in an air space under the shed to
measure ambient air temperature.  There were eight oxygen sensors, four measuring
oxygen on each plot two at each sampling elevation. Initial calibration parameters were
stored in the subroutine "parms.bas" but they were periodically recalibrated under
program control as discussed later.  The flow controllers had outputs of instantaneous
flow rate that were periodically sampled and stored.

Data was stored in  engineering units in three different groups of comma separated
variable files with names that included the type of data included in the file. Each file
name would have the form DATA month, day (number), minute, second, and either
blank, cal, or flow .csv. The data file (without cal or flow) stored data in units of °C,
                                      19

-------
oxygen as %, tank pressure in psig and counters as integers.  The file had the format
datetime not including seconds, four temperatures (South Vault, North Vault, Shed and
Air), eight oxygens (South Low 1, South Low 2, South High 1, South High 2, North Low
1, North Low 2, North High 1, North High 2), South well pump cycle counter, North well
pump cycle counter, South Application counter, North Application Counter, South
pressure tank pressure, and North pressure tank pressure. The data files with the suffix
cal contained the calibration data for the oxygen sensors. The first column was datetime
followed by the voltage output of the oxygen sensors in the same sequence as listed
above. The last column gave the gas being presented to the oxygen sensors.  The final
two rows are the calibration parameters determined, based on linear regression.

4.2.1   Fan Control

The vaults could get very warm and go above the maximum operating temperature of the
flow controllers. To minimize this impact, fans were installed in the vaults to exhaust air
when needed.  The fans did not run all of the time since we did not want to create
conditions where condensation could occur, potentially shorting out some of the
instrumentation. The fans were operated when the air temperature was above 5 °C and
the temperature of the vault was greater than the temperature of the outside air. This
should avoid potentially freezing the water in the lines and avoid condensing conditions.
No data was collected indicating what part of the time the fans were running.
4.2.2   Extraction Well Control

The extraction wells were operated such that the pumps would begin to cycle when the
pressure in the tank fell below the lower set point (9 psi) and then sloped cycling when
the pressure went above the upper set point (10 psi). The computer displayed the
pressure reported by all of the pressure transducers but only one pressure data point for
each pressure tank was recorded in the data file. Once a pump cycle started, the entire
cycle was completed before other operations were initiated, including a called program
stop.
4.2.3   Plot Water Application

Water was applied to the plots in doses similar to a mound type wastewater treatment
system. The objective is to inject sufficient water to cause it to spread horizontally over
the infiltration gallery, based on a premise that the horizontal hydraulic conductivity will
be greater than the vertical hydraulic conductivity. An individual dose might be 1.0 cm
of water. For the study plots this would be 0.05 m3 or 50 1. The pressure tank was
undersized for optimum operation. While the pressure tank should have been able to
deliver the required volume, it wouldn't have been able to supply the volume with
adequate pressure to maintain the flow rate desired.  The flow controller was limited to a
maximum flow rate of 0.5 1/min and would have required 10 minutes of delivery for a
single cycle. A less than optimum compromise was used.  The application duration was
                                     20

-------
reduced to a single pump cycle (1 minute) and the flow rate was reduced 0.3 1/min. The
control flow rate was set in the subroutine parms.bas and the controller attempted to
match the desired rate. Application occurred no more frequently than once every N
cycles where N is set in the parms.bas subroutine. Water application would occur only if
the pressure in the pressure tank were greater than the minimum pressure set point - 1
psi.
4.2.4   Data Storage

Every Mth observation was stored in the data files. After O records were stored on a data
file new files were created. The size of a file and the frequency of recording were set in
the subroutine parms.bas.
4.2.5   Data Display

The field operator was provided with a display (Figure 16) showing the operating
conditions and information about how the system was working.  The display was divided

:::::::: South Plot 1 :_ ]
'• Oxygen Set'poinfc02\ ' : : : : : : : : : : ::::::::

. Current Measured 02% 	 ff 	 0 	 0 	
	 llra-iBr 	 \ rasier
	 	

Plot Pump Status them '.'.'.'.'.' H20 '• '- '- '- '- ft
Pressing1 Tank Set Points (psij ....... ...
Pressure Tank Pressure 0 Pump Status 0 - -
S80
540-
520-
500
480-
460-
440
420-
g? 400
¥380
f 3WJ-
°340
320
300-
190

280

240-

220

200

180 -
' "




.^ i . . i ;,
r , „ 	 „ 	 „ 	
* * h
'













1 2/30/1 889 1 /I ft 800 1 /3/t 900 1 /5/1 900

;:;:;::::: North Plot ] ' ; •


: : : : : °
'.'.'.'.'.'.'.'.'. I ippei '.'.'.'. \ ™.«*w


Ch@m ::::': H20 ':': #

0 PumpSiatus ^ 0
"-.- ... .......;. -.- ... -.- ...
-. : : 	 	 I, : -






, i
k 	 .....:..
. . ....." 	











1/7/1300 1^3/1900 1/J1/1300
' l!l50 |
IpSO
C? 1.060
1 2
fe 8SO
t aoo
1 ?so
650
120C


i i ». . i




















1fl3/1900


* * "
	 .-,-v- -
	 i"v!"V""
* * . v * " "
s. ". * s. . * 'l ".~ g *
".=: . -'„ :" . „, *.i " s. .". . .„ ' 	
"; ' ' '••"„• "' : 	
yl899 1W980 1«3fl»00 1/2W900
Dste
.' " ? 	 	 	 ;" '





, , , . „ , 	 „ . , , , ^ 	 „ . , , a, .


e- - - - - - - f 	 '












J3
; •«.
; •„••' !.\>* h-sct-.v" ^
: iyiiu
: ci ,j I p
; 	 ' 	
i ...StoP..I Fi ;;;;;; ; ; ;
:------ Weti Pump Control : •
i :
: ^__ZHHB^^ ^^ .
' - - - - Current Temperatuies •
= - .- - -,- = --


- - -,- 	 '
- . ,- . ..*....
. *i . i
















•420
410
•400
•390
•380
370
•360
•350
•340 ;f
330 g
320 1
310 a
•300
290
280
270

•260

250

240

230

1 /I S/1 900 1 /1 7/1 900 1/1 9/1 900 1 /21 fl 900 1 £3/1 900
Figure 16. Computer monitor display of the program. This screen capture was
obtained in programming mode. The values displayed are placeholders not data.
                                     21

-------
into several regions. In the upper left hand corner there was a flag that would indicate the
system was recalibrating the oxygen sensors. The color would change indicating which
sensor was being calibrated. When the oxygen sensors were being calibrated the display
reported the voltage being measured rather than the oxygen percentage in the gas. After
calibration the display reported oxygen in percent.  There were status flags indicating
conditions that might cause water delivery to be skipped, as well as the approximate
amount of time before the next plot water delivery cycle.  The times were updated only
once every pump extraction cycle. In the upper right hand corner, the pump
pressurization (pump) and venting (fill) times were input as well as the start stop buttons
for the program.  There were also two graphical displays that were continuously updated.
One display was the temperature history and the other displayed oxygen and pressure
tank pressure. Each time a data file was closed the displays were erased and then
regenerated with current data.  The displays were auto ranging. The values shown in the
Figure 16 are not actual data, just space fillers.
                                      22

-------
5   PERFORMANCE EVALUATION

A very large amount of data was collected during the entire performance period. To
permit discussing the results, we will focus on the data collected between November 19,
2006 and April 8, 2007.


5.1  Hardware Performance

The system performed as expected with few design difficulties. The pumping system
delivering water from the formation to the pressure tanks worked with no down time for
the entire duration of the study. The control system was able to maintain the pressure in
the pressure tank with in the expected range. The redundant pressure transducers
measuring the pressure in the pressure tank were not recalibrated during the test. There
were a total of three pressure transducers on each tank, two were reported to the display
and one was stored in the data base table continuously.  They continued to track each
other over the duration of the project.  The third transducer located in the flow controller
was checked when senior staff were at the site and gave similar values, but this
information was not recorded in the data log. No changes were required in the computer
code that operated these pumps. The code was designed to allow setting the
pressurization and venting time by the operator.  Once this timing was established it was
not re-adjusted during the study.  The code was modified such that the default values for
pump timing in the code were the  same as those determined experimentally as giving the
best flow rates. In this way, if there was a power outage, the program could be restarted
automatically when the computer rebooted without human intervention. The solenoid
valves that supplied and discharged the compressed air functioned continuously without a
problem. Power outages did take place during the project, but either the small UPS
system or the auto restart function in the code kept the system running, appearently
continuously.

We had one problem with the oxygen calibration system, the regulator supplying the
nitrogen for calibration developed a leak, at a rate of one cylinder per week. The
regulator was replaced and an additional solenoid stop valve (Figure 13) added to the
system which solved the problem. Once the leak was stopped, very little nitrogen gas
was consumed. The oxygen sensors showed very little drift over the period of the
experiment.  Calibration repeatability was within ±2% when the nitrogen was available
for calibration. The loop measuring the plot oxygen initially had problems with water
condensing in the line, even with a desiccant column in the loop.  Water would condense
as  it cooled during the winter and the air pump was not able to force the water out of the
lines.  A heat trace all along the 1/8" copper tubing, as indicated in Figure 13, was added
to the system and no further problems were observed.

The major difficulty was with the equipment that was installed below ground level. The
initial installation was splash proof but was unable to withstand flooding. During one of
the storm events, everything was flooded and destroyed.  A different type of vault was
                                     23

-------
installed where the top of the vault was above the high water level and a sump pump
installed to remove water that might enter through the small penetrations in the vault
walls required for electrical, pneumatic and hydraulic fittings (Figure 17). To conserve
                                      Outlets
Figure 17. Equipment in the vault.

funds, a flow controller, rather than a metering pump, was used in the vault when the
system was rebuilt. The flow controller relied on the pressure in the pressure tank to
deliver water to the plot.  There was insufficient pressure to deliver the design flow rate,
even when the distribution system was above ground. To achieve the desired flow rate
with these flow controllers, it would be necessary to have a greater tank pressure.  The
pneumatic well pumps being used were not capable of supplying this pressure, suggesting
the addition of a pressure pump or using the metering pumps as initially installed in the
system. Once the modifications were made, the system continued to function at a
reduced flow rate for the remainder of the study period and there was little reduction in
the flow through the system over time.  This suggests that draining the distribution lines
with compressed air after each water application was successful in controlling the
biomass buildup in the distribution system. This had been a problem in earlier work
where the lines were not drained.  The modified system did survive major flooding
events without any problems.
5.2  Chemical Performance
                                     24

-------
Prior to the installation of the system, it was believed that methyl tertiary butyl ether
(MTBE) was present in the formation water.  The site had been used previously for
MTBE research and data was available suggesting sufficient MTBE to warrant a study to
evaluate the degradation of MTBE.  However, after the first few rounds of sampling it
was discovered that there was little MTBE remaining and studying the chemical response
would not provide definitive information as to the field application of the technology for
the removal of MTBE.  It was felt that it would beneficial to continue monitoring the
system to verify how robust the system would be mechanically and to learn what
improvements might be made to improve the viability of the technology. Laboratory
studies have repeatedly shown that under oxidizing conditions, fuel components degrade
in a soil environment.  In this study, we have shown that a system can be reliably
installed and operated remotely and when a reduction in sensed oxygen occurs the flow
rate to the plots is reduced. Very few modifications were required. A study needs to
demonstrate the total system performance where dissolved fuel components are present.
We were not able to depress the oxygen level in the vadose zone using the ground water
at this site. This is  partially due to the quality of water being applied and partially due to
the inability to apply excess water to the system. The infiltration gallery was scaled so
that the maximum design flow would be 5% of the saturated hydraulic conductivity. It
was felt, based on research on infiltration galleries with municipal waste water, the
system should be capable of accepting this loading rate without biologically fouling. No
biological fouling was observed. The flow controllers could not apply this rate to the
infiltration gallery with the pressure available.  The metering pumps initially installed
could have met the design maximum flow rate, but may not have been able to pump at a
sufficiently high rate to depress the oxygen in the formation since there was little oxygen
demand remaining  in the water.
5.3   Temperature
The temperature was monitored at four different locations: in each of the vaults, inside
the shed where the computer was stored and in the airspace below the shed.  The primary
purpose for measuring the temperature at these locations was to determine if the
temperature ever exceeded the operational range of the instrumentation (0 - 40 °C).  A
sample of the experimental data is shown in Figure 18.  Other data looks similar but is
not shown.  It was necessary to provide shading for the vaults to avoid overheating even
with an exhaust fan that was used under program control whenever the air temperature
below the shed was below the air temperature in the vault and above 5 °C. This range
was used to avoid condensation in the vault and potentially freezing the water distribution
system.  The temperature sensors, LM35s, proved to be very reliable and robust.  The
program did not set an alarm for out of range temperatures. This did not create a problem
at Port Hueneme but might be a problem at other locations with wider temperature
swings.
                                     25

-------
                               Temperature
    50 -i

~+  40 -
9,
±S   30 -
re
>   20 H

O   10
 Q.
 E
     o -

   -10 -

   -20
                                                     T 70
       CD
       9
       "5
       O
       6
       CO
            CD
            O

            O
CD
O
6
CD
Q
CD
CD
6
CD
Q
                      CM
c
CO
                           co
_Q
CD
o

CD
LL
 I
CM
CD
i_
a.
<
CO
                            Time
Figure 18. Temperature fluctuations at three different locations. Note, the south
vault temperature fluctuated much more than the north vault. The north vault was
shaded by the equipment shed much of the time.
5.4  Pumping Required to Maintain Pressure Tank Pressure

There were two check valves in each of the four pumps on each of the plots. The bottom
check valve allowed water to enter the pump when the pump bladder was vented to
atmosphere and sloped the flow when the pump was pressurized.  The top check valve
was at the top of the pump body and prevented backflow into the well from the water
column and pressure tank. Under ideal conditions each pump cycle should produce the
same amount of flow and, if all pumps are operating under the same head conditions, all
of the pumps should discharge at the same flow rate.  As a crude performance metric the
number of times the pumps were cycled was recorded for each of the plots (Figure 19).
The north plot showed a roughly constant flow rate of 400 to 500 cycles per day while
the south plot was showing a slow decline but only about half as many cycles except for
one period about February 7 2007 when both plots showed a decrease in pumping rates.
The cause  of this pumping rate decrease is discussed later. The maximum possible
number of pump cycles per day was less than!440 or one cycle per minute minus the
time used in other computer operations such as data collection, display and storage. At
the end of the project when the pumps were removed from the formation there were
major differences in the appearance of the pumps (Figure 20).  Some of the pumps had a
significant amount of what appears to be iron oxide on the outside and water that drained
from the pumps was rusty in appearance.  From previous studies not referenced, the
                                    26

-------
formation water was known to contain a significant amount of reduced iron. From the
observation, it appears that some of the pumps were leaking air into the well bore causing
the iron to oxidize and fall out of solution. This may suggest that more frequent
maintenance of the pumps was required and checking the seals to make sure there was no
air leakage.

            Pumping required to maintian pressure in tank


s*

Q
01)
0
g
Q.
E
3
Q.








700.00 -i
600.00 -

500.00 -

400.00 -

300.00 -

200.00 -

100.00 -
0.00 -

" "

• =- —
• = -
^
a S
* *• •»
_
*«*..* • . . t
I *
I

I 1 1 1 I i 1
CD CD CO CD P"~ P**" P*~ I1"- Is
ooooooooc
ooooooooc
CNCNCNJCNCNCNCNDJC
oo>o)O}ooh-r~-cno
                                                              » South Pump Rate
                                                              = North Pump Rate
CN
?3
                                        csi
                                                   CO
                                Date
Figure 19. Average pump cycles per day required to maintain pressure in tank
located in vault.
                                    27

-------
                   Apparent Iron Oxide
                     coating on pump
                   when removed from
                           well
Figure 20.  Pumps after approximately 18 months of continuous operation.

5.5  Oxygen Sensor Calibration.

The oxygen sensors were recalibrated after every M x O (10000) data points were
collected or before each data file was created. The number of data points was fixed by
parameters  passed to the operating program.  Figure 21 shows the changes in the
calibration curves. The period of time between 11/19/2006 and 1/17/2007 was the time
period when the regulator was leaking and the default oxygen calibrations were used.
Thus the slope (377) and intercept (-1.06) remain constant. The repair to the system
occurred 1/17/2007. After that point in time the calibrated sensors reported the same
oxygen level for both plots except for the short period of time when there was apparently
a small amount of dirt that made the regulator inoperative  (Figure 22).  During this period
of time in attempting to calibrate the algorithm used made the intercept go more negative
and the slope to increase dramatically yielding false data.  If the there had been no drift in
the oxygen  sensors, both the slope of the calibration curve and the intercept of the
calibration curve should have been constant. The period of time illustrated shows
significant deviation for a short period of time. It is believed that a piece of dirt caused
the regulator to malfunction. Touching the regulator resolved the problem. The problem
                                     28

-------
was discovered almost immediately but it took some time before the technician could
respond to the problem.
14000 -i
I ^WWw
12000 -
10000 -

oj 8000 -
<*>

w 6000 -

4000 -

2000 -
0 -
tfhr^oon 	 n " -«-- « » * w *

\m|
-
V| 1
M ii
If
1 T
Bp
M\
•f Jr ,1 1
_^ "
/— 	 	 u^/ - .-.-:?>-:•. v 	 _^.
1 ! 1 I 1 I 1 I
- 0
W
- -100
- -200
- -300 ^
Q.
**»
- -400 £
-Si
"c
- -500 ~
- -600

- -700
- -800
co co co co h"*- i**-* h"*- r**"* r^- r^-*
oooooooooo
oooooooooo
£«l£«l£«l£«l£<4£«l£<4jy£^jy
OG>Q5G>QQ|>"h-GSQDCO
Q^IwCi^cNiC-jSI^fCi
OT-T-CMt- CM CO ^
                                                                      •-»"" S Lower 1
                                                                      ^=^8 Lower 2
                                                                         SUpper!
                                                                         S Upper 2
                                                                      ^t^S Lowerl
                                                                      —*— S Lower 2
                                                                      =i=S Upper 1
                                                                      —— S Upper 2 I
                                 Date
Figure 21.  Oxygen calibration parameters illustrating period of time when oxygen
was not available. The first four curves are the slope of the four south plot oxygen
sensors and the next four curves are the respective oxygen sensors intercept. The
nominal value for the intercept is -1.
       30 i
       25 -

       20 -
   5"  15

    |  10-1

   O   5 -

        0 -
      -10
3
D
3
^
5
0
CD
0
O

5)

to
0
o
CN
g>
OJ
CD
0
O
C\l
O5

^
0
O
C!
CO

^
0
o
g

ft
r^
0
o
C-l
|V«
5l
^
0
O
C-J
O)
S
I
0
o
DJ
CO

         o
                             CM
                                   Date
Figure 22.  Measured oxygen based on calibration curves.
                                     29

-------
To improve the maintenance and reliability, a pressure transducer should be added to the
nitrogen line and add an alarm that would alert the operator of a fault automatically
bypassing the recalibration of the oxygen sensor until the alarm had been reset. The
nitrogen cylinder should also be moved into a secure location to minimize tampering.
When nitrogen was present, the oxygen measurement system calibrated with good
stability.  The oxygen sensors were still functioning reliability five years after the date of
manufacturer.  The manufacturer suggests that the life expectancy for this series of
oxygen sensors is ten years. No data was collected beyond the five year period.Looking
at the average oxygen measured over the same period of time (Figure 22) we see there is
a major dip in the reported oxygen level.  The observed apparent dip in the oxygen
occurred at the same time the calibration curves were apparently in error because there
was insufficient nitrogen to bring the sensor down to the reduced oxygen level. No
provision had been made in the code to set off alarms or to use the default settings when
there was an apparent fault in the data being collected.
5.6   Water Applied to the Plot.

One of the primary evaluation criteria was the ability to deliver water to the test plots.
Previously, at Dover AFB, a test was performed but the system failed due to an
accumulation of biomass in the plumbing system.  The Dover AFB system failed after a
few months of operation and it was not possible to continue delivering water to the plot.
In this study we did not apply as much water to the plots as the initial design called for.
The target upper was 72 1/d to each of the plots.  We applied less than 9 I/day.  There
were two primary reasons for the reduced delivery. First, the extraction pumps did not
deliver the amount of water anticipated. The pumps ran continuously to extract water
from the formation but were not capable of maintaining the required pressure in the
pressure tank to deliver water at every potential cycle.  Second, there was either backflow
from the pressure tank into the formation between pump cycles or a system gas leak.
This was observed  as a drop in pressure in the pressure tank when there was no flow.
Finally, the flow controllers need more pressure to deliver the maximum flow through the
distribution system. The pumps were tested in the field to see if their pumping rate was
adequate.  The testing pumped into an open vessel with no back pressure other than
elevation head and pressure drop through the plumbing. As tested, back flow could not
occur and the pumps appeared to be delivering adequate flow.  A pressure flow curve was
not developed and hindsight suggests that additional pumping capacity would have been
beneficial. The flow controllers were unable to deliver the maximum flow even when
first turned on without any potential back pressure caused by system fouling. This
limitation was recognized at the beginning of the test. It was decided to continue,
knowing that it would not be possible to deliver the maximum amount of water desired. If
flow controllers are to be used,  a pressure pump should be added to the system to
increase the pressure available to deliver the water or a different type of extraction pump
should be used that is capable of delivering higher pressure reliably. We had two
methods of estimating flow, one based on the flow totalizer, and one based on the flow
rate measurements  and the theoretical duration of a flow cycle. Flow rate was measured
only one time during each flow cycle and assumed to be constant throughout the cycle. If
                                     30

-------
the flow controller operated as expected, the flow rate would not be a true constant as the
control valve will continuously "seek" the set point and there will be overshoot and
undershoot problems. The duration of the flow cycle was set by an internal clock as a
fixed amount of delay. In addition to the delay there were other activities going on that
required time.  The actual cycle time is not known, but should have been very
reproducible. It is known that the actual time is greater than the program delay (1
minute).  The estimated flow, based on the flow rate will, therefore, be less that the actual
total. The flow totalizer counted to 99.999 1 before turning over and restarting.
Technicians  manually recorded the totalized flow. Measurements were made on a weekly
schedule.  It  was frequently necessary to use judgment to decide how many times the
counter had turned over between recorded values.  A portion of Cumulative flow data is
shown in Figure 23. The slope of the cumulative flow data is the flow rate. A linear

                             Cumulative Flow
    3.E+Q6
 •S- 2.E+06
 u
 ****
 o
 u-  1.E+Q6
    O.E+00
                               = 8534.5x-3E+08
                                  FT = 0.995
                                 = 4950.8x-2E+08
           CO
           o
           o
           ca
           CO
CD
O
O
CD
O
O
CJ
                      CO
CO
o
o
I
o
                                        •  S Plot Flow

                                        *  Calculated flow rate

                                        — Linear (S Plot Flow)

                                        — Linear (Calculated flow
                                           rate)	
                              Date

Figure 23.  Cumulative water application to south plot using two different metrics.

function was fit to the experimental data and the results presented on the figure.  The
starting times are different so only the slopes not the cumulative flow values are
significant.  The totalized flow suggests an average flow rate of 8.5 I/day this is based on
the measurements made using the flow totalizer that was part of the flow controller and
manually recorded by a field technician.  Calculating the totalized flow based on one
instantaneous measurement flow rate and the theoretical time of a flow pulse suggests an
average flow rate of 5 I/day. Both of the plots are essentially linear suggesting there is
little if any evidence of system failure due to biological fouling. This suggests the system
design which included draining the distribution lines with compressed air was successful
in achieving one of the major concerns of system reliability under field operation.  Only
minor design adjustment would be required to achieve the desired maximum pumping
rates
                                     31

-------
6   RECOMMENDED NEXT STEPS

It has been demonstrated in the field that a reliable system can be constructed and
operated remotely and requires little field operator intervention.  Several items can be
improved over the initial installation to improve the overall system. The gas supply used
for the oxygen sensor calibration should be maintained in a limited access area and a
pressure transducer should be added to the system that can be monitored remotely. The
control program should be modified and the old calibration curve parameters for the
oxygen  sensors should be kept when signals indicate calibration gas is not present. As
implemented in the current design, we used a continuous loop for oxygen measurement.
To avoid moisture collection in the system we used a heat trace along the copper lines to
and from the plot and a dryer.  The system required a significant amount of maintenance.
Two alternative potential improvements are: a refrigerated dropout pot with automatic
drain in the closed loop system, or a one pass system.  In either case, it is likely that the
heat trace would still be required to avoid condensation in the gas lines.  It is also
recommended that a mass flow controller be used in the gas sampling system if one pass
air is used or a mass flow meter if a closed loop system is used.  By controlling and
measuring the flow, confidence will be gained that the gas being sampled is actually what
is passing through the diffusion membrane.  A controller would also be a requirement if
one pass air is used to insure the appropriate residence time to obtain representative
oxygen  measurements.

The water delivery system needs to be capable of supplying a known flow at known flow
rates with varying amounts of back pressure and supply pressure. We did not achieve
these objectives in the present study.  Either the flow controller should be replaced with a
metering pump or a pressurizing pump should be added that can maintain adequate
pressure during a delivery cycle.

Material costs should be considered when designing a future demonstration.  Since it is
not reasonable to make a site-independent cost estimate, it is recommended that the
project be  designed in a two step process, once a tentative site has been selected.  The
first step would be to determine how large an infiltration gallery would be required, based
on areal extent of the design and the hydraulic properties of the formation. Once this
information is known, it is possible to make a reasonable cost estimate. Some of the
items that  should be considered up front are:
    1.  Wells for the extraction of groundwater and the evaluation of the flow rate of the
       groundwater including a determination of the direction of flow.
   2.  A pre analysis of the flow rate at the site can be done with the wells that are
       installed to extract water.  A test similar to a borehole dilution test would be
       adequate. There are  several other alternatives that should be considered.
   3.  Well pumps - The pumps  needed are low flow pumps that will provide long term
       service with minimum maintenance.  Non-contact bladder pumps for 2" wells
       appear to be adequate, if the pumping head is not too great. Air lift pumps may
       be  required for greater depths.  An analysis needs to be made comparing the
                                     32

-------
       difference between the cost of installing 2" monitoring wells and using more
       expensive pumps or 4" wells and less expensive pumps.
   4.  Equipment Shed for storing equipment - will heat and/or cooling be required?
   5.  Air compressor. - The size of the air compressor will be dependent on whether air
       is used just for draining the lines or also used for water extraction from the
       formation. An oilless pump should be used to avoid the potential transfer of oil
       from the compressor to the formation.
   6.  Automatic Drain to remove condensate will be needed for the air compressor.
   7.  PC - A low cost slow computer that is reliable is all that is needed. Care must be
       taken regarding the temperature range anticipated. Hard disk drives are generally
       limited to 0 - 40 °C. In dusty environments fans  can have a problem it would be
       better to have a unit that did not require moving parts.
   8.  Interface cards for the PC. - Water condensing environmental conditions may
       require special coatings on the computer cards  at some locations.
   9.  Pressure tank for the extracted well water - a bladder isolated pressure tank is
       recommended that  has a storage volume equal to two or more application cycle
       volumes to the infiltration gallery.  It may be desirable to include a deairing valve
       upgradient of the pressure tank if there is any potential of introducing air into the
       water. Additional air will potentially encourage bacterial growth in the pressure
       tank and this should be avoided as much as possible.
   10. Plot delivery pump and infiltration gallery size (the distance along the flow path
       of the groundwater) are critical items that must be scaled to the flow rates desired.
       This will be dependent on the ground water flow rate and system size.
   11. From a design standpoint, there was no indication that there were problems
       applying water at 5% of the saturated conductivity of the infiltration gallery fill
       material.  An additional constraint is that the hydraulic conductivity of the natural
       formation material  must be capable of accepting the entire application rate of the
       water.
   12. The silicone tubing used in the study was reinforced tubing with 1/8" nominal ID
       with 1/8" copper lines to the oxygen sensors It might be better to use Vi" ID
       tubing with Vi" copper lines to deliver the sampled gas to the oxygen sensors.
       This will give more time for equilibration.
   13. A self regulating heat trace is considered essential to avoid water condensation in
       the oxygen measurement system. Manufacturers will assist in the design of an
       appropriate size.  Take into consideration that rodents like to eat the insulation  of
       wire. Metal conduit may be appropriate where the wire is exposed.
   14. There was nothing  special about the solenoid valves used. They were all
       120VAC and activated using TTL  input optically isolated zero voltage switches.
       The switches were  used to isolate the valves from the computer system.

The system needs to be scaled to a full sized system and  implemented at a site with
existing contamination. The performance monitoring needs to be evaluated over a period
of time of 18 months or more. Longer times would be desirable to make  sure there is no
bio-fouling of the infiltration gallery.  It will likely require a few months for the system to
acclimate to the water composition and then several additional months for the biomass to
grow to a quasi steady state level.  Scaling of the system will require different sized
                                      33

-------
pressure tanks, and flow controllers.  As demonstrated all of the groundwater fluids were
maintained below ground surface.  This is possible to accomplish, however, it would be
preferable if the controls can be placed in a protected area above the ground surface
where there is less likelihood of flood damage. Temperature extremes also need to be
considered. Where the test was performed we did not have problems keeping equipment
within its operating temperature range 0-40°C. Most locations in the Unites States may
have difficulty in the winter time maintaining temperatures above freezing unless there is
some sort of heat. The computer, in addition to all of the small water lines, needs to be
protected from freezing. In the South there may be problems of overheating of
equipment. One alternative for the computer's hard disk is to replaced it with a solid state
disk with wider environmental constraints.
                                      34

-------
7   REFERENCES

Borden, R.C., Daniel, R.A., LeBrun IV, L.E. and Davis, C.W., 1997. Intrinsic
       biodegradation of MTBE and BTEX in a gasoline-contaminated aquifer. Water
       Resources Research, 33: 1105-1115.
Bradley, P.M., Landmeyer, I.E. and Chapell, F.H., 1999. Aerobic mineralization of
       MTBE and tert_butyl alcohol by stream-bed sediment microorganisms.
       Environmental Science and Technology, 33: 1877-1879.
Bradley, P.M., Landmeyer, I.E. and Chapell, F.H., 2002. TEA Biodegradation in
       Surface-Water Sediments under Aerobic and Anaerobic Conditions. Environ. Sci.
       and Technol., 36(19): 4087-4090.
Church, C.D. et al., 1999. Effects of environmental conditions on MTBE degradation in
       model column aquifers. In: USGS (Editor), U.S. Geological Survey Toxic
       Substances Hydrology Program, Charleston, South Carolina.
Cline, P.V., Delfino, JJ. and Rao, P.S.C., 1991. Partitioning of aromatic constituents into
       water from gasoline and other complex solvent mixtures.  Environ. Sci. and
       Technol., 25(5): 914-920.
Converse, J.C. and Tyler, E.J., 2000. Wisconsin mound soil absorption system: sitine,
       design and construction manual. University of Wisconsin.
Erickson, J. and Tyler, E.J., 2001. A model for soil oxygen delivery to wastewater
       infiltration surfaces.
Javanmardian, M. and Glasser, H.A.,  1997. In situ biodegradation of MTBE using
       biosparging, Division of Environmental Chemistry. American Chemical Society,
       Preprint of Extended Abstracts, pp. 424.
Kaharoune, M., Kharoune, L., Lebault, J.M. and Pauss, A., 2002. Aerobic degradation of
       ethyl-tert-butyl ether by a microbial consortium: selection and evaluation of
       biodegradation ability. Environ Toxicol Chem, 21(10): 2052-2058.
Mackay, D.M. et al., 1999. Field studies of in situ remediation of an MTBE plume at site
       60, Vandenburg Air Force Base, California. In: A. Stanley (Editor), Petroleum
       Hydrocarbons and Organic Chemicals in Ground Water: Prevention, Detection,
       and Remediation. National Ground Water Association and American Petroleum
       Institute, Houston, Texas, pp.  178-188.
Mackay, D.M. et al., 2000. In situ treatment of MTBE by biostimulation of native aerobic
       microorganisms. In: U.S.EPA (Editor), Workshop on MTBE Biodegradation.
       U.S. EPA, Cincinnati, Ohio, pp. 87-91.
OEHHA, 1999.  Public health goal for Methyl Tertiary Butyl Ether (MTBE) in drinking
       water.
Schmidt, T.C., Schirmer, M., WeiB, H. and Haderlein, S., 2004. Microbial degradation of
       methyl tert-butyl ether and tert-butyl alcohol in the subsurface. J. Contam.
       Hydrol., 70(3-4): 173-203.
Tyler, E.J., 2001. Hydraulic wastewater loading rates to soil.
USGS, 2006. Volatile Organic Compounds in the Nation's ground water and drinking-
       water supply wells, USGS Circular 1292.
                                     35

-------
Wilson, G.J., Richter, A.P., Suidan, M.T. and Venosa, A.D., 2001. Aerobic
       biodegradation of gasoline oxygenates MTBE and TEA. Water Science and
       Technology, 43(2): 277-284.
Wilson, R.D., Mackay, D.M. and Scow, K., 2002. In situ MTBE biodegradation
       supported by diffusive oxygen release. Environ. Sci. and Technol., 36: 190-199.
Wilson, R.D. et al., 1999. Laboratory-scale evaluation of in situ aerobic MTBE
       biodegradation options for Vandenberg Air Force Base, California, Petroleum
       Hydrocarbons and Organic Chemicals in Ground Water: Prevention, Detection,
       and Remediation, Houston, Texas, pp. 167-176.
                                     36

-------
APPENDIX 1. Wiring Codes DAS6033

    DAS6033 Wiring
Pin Signal Name   Application   Range
   1LLGND
                Temp South
   2CHOInHi
   SChOInLo
             Vault
                Temp North
0-10 VDC
                            0-10 VDC
4 CHI IN HI    Vault
5 CHI IN LOW
6 CH2 IN HI    Temp Shed    0-10 VDC
7 CH2 IN LO
             Outside Temp
             Air          0-10 VDC
Cable  Wire Pair

      B/B

 2-A  R/B
      B/B

 4-A  R/B
   8 CHS In HI
   9 CHS IN LO

  10CH4INHI
  11CH4INLO
             O2 South Plot
             Low Sensor 1  0-1 VDC

             O2 South Plot
             Low Sensor 2  0-1 VDC
  12 CH 5 IN HI
  13 CHS IN LO
                O2 South Plot
  14 CH 6 IN HI    High Sensor 1  0-1 VDC
  15CH6INLO
                O2 South Plot
  16CH7INHI    High Sensor 2  0-1 VDC
  17 CH7 IN LO
  18LLGND
                O2 North Plot
  19 Ch 8 In HI    Low Sensor 1  0-1 VDC
  20 CHS IN Low
                O2 North Plot
  21CH9 IN High  Low Sensor 2  0-1 VDC
  22CH9INLO
                O2 North Plot
  23CH10INHI   High Sensor 1  0-1 VDC
  24CH10INLO
                O2 North Plot
  25 Chi 1 IN HI    HighSensor 2  0-1 VDC
  26 CHI UN LOW
                Pressure
                Transducer
  27 CH12 IN HI   South Plot     0-10 VDC
  28CH12INLO
                Pressure
  29 CH 13 IN HI   Transducer
                                    6-A Y/B
                                        G/B
                                    1-A G/B
       Variable
Color   Name    Comment

Blue    Temp(O)

Black
Blue    Temp(l)
                                                      Black
                                                             Temp(2)
                                 Temp(3)
Y/B
Y/B
R/B
Y/B
R/B
Y/B
W/B
Y/B
G/B
Y/B
Blue/B
Y/B
Blue/B
Y/B
G/B
Yellow
Black
Red
Black
Black
Black
White
Black
Green
Black
Blue
Black
Black
Black
Black
O2(0)

02(1)

O2(2)

02(3)

02(4)

02(5)

02(6)

02(7)
                          0-10 VDC   3-A G/B
                         Black

                                         0.5 VDC = 0
                                         psi, 5.5 VDC
                         Green  Pres(O)   = 15 psi
                         Black

                         Green  Pres(l)
                                     37

-------
30CH13INLOW
                             G/B
                Black
31CH14INHI
32CH14INLOW
33CH15INHI
34CH15INLOW
35

36D/AOutO
37D/AGnd

38D/AOutl
39PC+5VDC
40
41
42
43
44
45
46
47
48
49
50GND
51LLGND
Chem Feed
Pump South
Plot          0-10 VDC

Chem Feed
Pump North
Plot          0-10 VDC
South Flow
Controler     0-5 VDC   1-A

South Chemical
Metering Pump 0-10 VDC
     B/B
     B/B
                                Return
                                Signal From
                                Pump

                                Return
                                Signal From
                                Pump
           Blue    SWaterPOut
           Black

                   SChemPOut
52CH16INHI
53CH16INLO
54CH17INHI
55CH17INLO
Flow Meter
Rate South Plot 0-10 VDC

Flow Meter
Totalizer South
Plot          0-10 VDC
1-A
                        1-A
W/B
W/B
     Y/B
     Y/B
White
Black
           Yellow
           Black
                                Use 500 ohm
                                resistor
                Use 500 ohm
                resistor
56 CH18 IN HI
57CH18INLO
58CH19INHI
59CH19INLO

60Ch20InHI
61CH20InLO

62CH21INHI
63CH21INLO
Flow Meter
Rate North Plot 0-10 VDC
                        3-A
Flow Controler
Totalizer North
Plot          0-10 VDC
                        3-A
Old Pressure
transducer     0-10 VDC 2-A

Old Pressure
transducer     0-10 VDC 4-A
     W/B
     W/B
     Y/B
     Y/B

     G/B
     G/B

     G/B
     G/B
            White
            Black
           Yellow
           Black

           Green
           Black

           Green
           Black
                Use 500 ohm
                resistor
                Use 500 ohm
                resistor
                                     38

-------
 64
 65
 66
 67
 68LLGND
 69
 70
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84

 85DIOO

 86 DIG 1
 87DIO2


 88DIO3

 89DIO4

 90DIO5


 91DIO6


 92DIO7
 93
 94
 95
                               R/B
South Vent Fan

North Vent Fan
South
Compressed
Air
North
Compressed
Air
South Stop
Valve
North Stop
Valve
Oxygen
Calibration 4
valves
O2_N2
selector 2
valves
2-A    Y/B
                   Red     FanBit(O)
                   Black   FanBit(l)
Yellow  PlotAirBit(O)
                   Yellow  PlotAirBit(l)
                   Yellow  PlotStopBit(O)
                   White   PlotStopBit(l)
                   Green   O2CalBit(0)
       Blue/B
Blue    O2CalBit(l)
 96GND
 97
 98
 99
100 GND
                               Y/B,W/B,G/B
                               ,Blue/B      Black
                                         39

-------
APPENDIX 2. Oxygen Sensor Wiring Codes
Oi Sensors
South Upper
  Sensor Color
 IRed
  Black
 2 Red
  Black
South Lower
 IRed
  Black
 2 Red
  Black
North Upper
 IRed
  Black
 2 Red
  Black
North Lower
 IRed
  Black
 2 Red
  Black
Wire Pair
orange/White

Green/White
Brown/White

Blue/White


orange/White

Green/White


Brown/White

Blue/White
Wire
Orange
White
Green
White

Brown
White
Blue
White

Orange
White
Green
White

Brown
White
Blue
White
Comment
1 is closest to the panel
                                     40

-------
APPENDIX 3. Oxygen Calibrator Box Wiring Codes
       Relay Box Wiring
Vault relays in vault
           Ter
Relay(s Val min     Signal
     )  ve   al     Cable            Pair
       Compressor Air Control Normally Closed
  1-8
1
2
3   Vault   Y/B
4 Cable 2,4 Y/B
Black
Black
Yellow
Black
                                               Comment
         Power
Color     Cable

              Pick Up Black In Vault @AC
              Cables going to Valut + 2
     10-B,11-B Signal Cables
Vault Relay in Shed
       Ventilating Fan
             1
             2
  2-6
             3          B/W,O/W
             4     5     B/W
       Stop Valve Normally closed
             1
             2
  3-7         3
                        G/W,brn/w
             4     5     G/W
                                               Duplicate for North and South
                                               Plot
                                               Operate fan when outside
                                               temperature is less than inside
                                               temperature and inside
                                               temperature greater than  10 dej
                                               C
Black
Orange

Blue, Orange
White

Black
Red

Green, Brown
White
                                      9,10A,11A
                                               South Plot Blue, North Plot
                                               Orange
                                               Green South, Brown North
                        Orange/W      White
                        Brown/W      White
Oxygen Monitor Relays in Valve Box
      Three way valves
      O2 Calibration 2 valves valves to switch from sample to calibration
             1                        Black
   4         2                        Red
             3          Blue/White     Blue
                                               5 VDC
                                               5 VDC
                                               Insulate power terminals
             4          Blue/White     White
       O2 Calibration 1 valve N2 or air South Upper
             1                        Black
             2                        Orange
             3          Brown/White    Brown
             4
                                               Digital Ground Black in Panel
                                               Common Digital Ground
                                        41

-------
10
11
O2 Calibration 1 valve N2 or air South Lower
       1                          White
       2                          Green
       3           Green/White     Green
       4           Green/White     White
O2 Calibration 1 valve N2 or air North Upper
       1
       2
       3           Orange/White    Orange
       4
O2 Calibration 1 valve N2 or air North Lower
       1
       2
       3           Orange/White    White
       4
    N2 stop two way valve normally open to pump box

         % VDC Supply Brown/White    White
                                                               Common Digital Ground
                                                               Common Digital Ground
Common Digital Ground
Operate this valve with the
valves to switch between
sample and calibrate relay 4
                                        42

-------
APPENDIX 4.  DDA02-16 Wiring Codes
                  DDA02-16 Wiring

Pin  Signal Name Application  Range  Cable  Wire Pair  Color  Variable Name    Comment
             North Flow  0-5
  IVoutO     Controler    VDC        B/B      Blue   NWaterPOut
  2 Analog Gnd                    3-A  B/B      Black
             North
             Chemical
             Metering    0-10
  3 V out 1     Pump       VDC                      NChemPOut
  4 Analog Gnd
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
                                   43

-------
39
40
41
42
43
44
45
46
47
48
49
50 Digital Gnd
  Second Port
51A Bit 7
  Second Port
52 A Bit 6
  Second Port
53 A Bit 5
  Second Port
54 A Bit 4
  Second Port
55 A Bit 3
  Second Port
56 A Bit 2
  Second Port  North Well
57 A Bit 1      Pump                                      WellPumpBit(l)
  Second Port  South Well
58 A Bit 0      Pump                                      WellPumpBit(O)
  Second Port
59 B Bit 7
  Second Port
60 B Bit 6
  Second Port
61B Bit 5
  Second Port
62 B Bit 4
  Second Port
63 B Bit 3
  Second Port
64 B Bit 2

              North
              Chemical
  Second Port  Metering
65BBitl      Pump                                      ChemPumpBit(l)

              South
              Chemical
  Second Port  Metering
66BBitO      Pump                                      ChemPumpBit(O)
                                       44

-------
   Second Port
67 C Bit 7
   Second Port
68 C Bit 6
   Second Port
69 C Bit 5
   Second Port
70 C Bit 4
   Second Port
71C Bit 3
   Second Port
72 C Bit 2
   Second Port
73 C Bit 1
   Second Port
74CBitO
   First Port A
75 Bit 7
   First Port A
76 Bit 6
   First Port A
77 Bit 5
   First Port A
78 Bit 4
   First Port A
79 Bit 3
   First Port A
80 Bit 2
   First Port A
81 Bit 1

   First Port A
82 Bit 0
   First Port B
83 Bit 7
   First Port B
84 Bit 6
   First Port B
85 Bit 5
   First Port B
86 Bit 4
   First Port B
87 Bit 3
   First Port B
88 Bit 2
   First Port B
89 Bit 1
   First Port B
90 Bit 0
                  FillBit(l)

                  FillBit(O)
N2 North
High
N2 North
Low
N2 South
High
N2 South
Low
Air/Sampling
valves & N2
Stop
Or/W      Orange

Or/W      White
Gr/W
Br/W
Bl/W
Green
Brown
Blue
                                          45

-------
   First Port C
 91 Bit 7
   First Port C
 92 Bit 6
   First Port C
 93 Bit 5
   First Port C
 94 Bit 4
   First Port C
 95 Bit 3
   First Port C
 96 Bit 2
   First Port C
 97 Bit 1
   First Port C
 98 Bit 0
 99+5VDC                                  Br/W      White
100 Digital Gnd                               Bl/W,Gr/W White
                                            46

-------
APPENDIX 5. Vault Wiring
         Vault Signal Level Wiring
          Color        Function
         Pressure Transducer
          Red          +15 VDC input
          Black        Gnd Input
          Green
          White
          Shield
         Flow Controller
          Red
          Blue
                      + output
                      - output
                      + Analog In
                      Analog In Common
                       + Analog Flow Out
                       - Analog Flow Out
                       + Controller Out
                       - Controller Out
          Orange
          Violet
Cable 1/3-  Yellow
   B      Brown
          Green
         Temperature Transducer
                       Supply +5VDC
                       Common
                       Signal Out

         Digital Switch Compressed Air
                       Signal
                       Return
         Old Pressure transducer
 Cable 2/4-
    B
          Green
          White
+ Output
- Output
                                                Pair  Color

                                                R/B  Red
                                                R/B  Black
                          G/B   Green
                          G/B   Black
                          B/B   Blue
                          B/B   Black
                          W/B   White
                          W/B   Black
                          Y/B   Yellow
                          Y/B   Black
                          B/B   Black

                          R/B   Red
                          R/B   Black
                          B/B   Blue
                                                 Y/B   Yellow
                                                 Y/B   Black
G/B   Green
G/B   Black
                                         Comment
               0.5 VDC = 0
               psi, 5.5 VDC =
               15 psi
               0-5VDC

               4 ma = no flow,
               20 ma = 2000
               ml/min

               4 - 20 ma
Use 15 VDC
power from
Cable 1/3
                                       47

-------
APPENDIX 6. Port_Hueneme_Display Code

 Option Explicit
 'Last revised 3/12/2006 CGE
Const Boardl = 1         ' Board number 1 is the DAS6033
Const Board2 = 2         ' Board number 2 is the DDA02
Const Direction = DIGITALOUT ' program digital output
Const NumPoints = 2000     ' nunber of points to be scaNN*MMed to determine
      average value
Const FirstPoint = 0     ' first point in buffer to scan to array
Const CBRate = 90000      ' scan rate
Const NN = 1000         ' Number of records in a data file before creating a new file
Const MM = 10 ' Number of measurements+2 between recording in file i.e. if MM = 1
      every third recorded is recorded
Dim SAData(NumPoints)    ' Dimension of scan array to hold input data
Dim MemHandle        ' define a variable to contain the handle for memory
                 ' allociated by windows through cbWinBufAlloc%()
Dim ADDatal(21) As Integer       ' raw analog input data Unit 1 16 bit binary
Dim A_Data(21)       ' Scaled to 1 analog data
Dim ADData%(NumPoints)
Dim flowcount(3) As Integer  ' Flow totalizers number of times pump turned on
Dim DataValue%          ' Binary Number used to turn pumps on and off Board 2
      only
Dim Data Value 1%
Dim ULStat%
Dim CycleCountS As Integer 'South plot counter for number of times water has been
      applied to plot
Dim CycleCountN As Integer 'North plot counter for number of times water has been
      applied to plot
Dim O20(NN * MM) As Variant  ' Oxygen Sensor O2(0) South lower sensor 1 CH4
      High pin 10 low pin 11
Dim O21(NN * MM) As Variant   ' Oxygen Sensor O2(l) South lower sensor 2 CHS
      High pin 12 low pin 13
Dim O22(NN * MM) As Variant   ' Oxygen Sensor O2(2) South upper sensor  1 CH6
      High pin 14 low pin 15
Dim O23(NN * MM) As Variant   ' Oxygen Sensor O2(3) South upper sensor 2 CH7
      High pin 16 low pin 17
Dim O24(NN * MM) As Variant   ' Oxygen Sensor O2(4) North lower sensor  1 CHS
      High pin 19 low pin 20
Dim O25(NN * MM) As Variant   ' Oxygen Sensor O2(5) North lower sensor 2 CH9
      High pin 21 low pin 22
Dim O26(NN * MM) As Variant   ' Oxygen Sensor O2(6) North upper sensor  1 CH10
      High pin 23 low pin 24
Dim O27(NN * MM) As Variant   ' Oxygen Sensor O2(7) North upper sensor 2 CHI 1
      High pin 25 low pin 26
                                  48

-------
Dim PresO(NN * MM) As Variant  ' Pressure Tank Pressure South Plot Pres(O) CH12
      High pin 27 Low pin 28
Dim Presl(NN * MM) As Variant  ' Pressure Tank Pressure North Plot Pres(l) CH13
      High pin 29 Low pin 30
Dim TempO(NN * MM) As Variant ' Temperature inside South Vault Temp(O) Ch 0
      High pin 2 Low pin 3
Dim Templ(NN * MM) As Variant ' Temperature inside North Vault Temp(l) Ch 1
      High pin 4 Low pin 5
Dim Temp2(NN * MM) As Variant ' Temperature inside Shed Temp(2) Ch 2 High pin 6
      Low pin 7
Dim Temp3(NN * MM) As Variant ' Temperature Air Under Shed Temp(3) Ch 3 High
      pin 8 Low pin 9
Dim FlowRO(NN * MM) As Variant ' Flow rate FlowR(O) South Plot, FlowR(l) North
      Plot
Dim FlowRl(NN * MM) As Variant
Dim TFlowO(NN * MM) As Variant ' Totalized Flow TFlow(O) South plot, TFlow(l)
      North plot
Dim TFlowl(NN * MM) As Variant
Dim WellPumpBit(l) As Integer  ' Bit 0 is the south plot bit 1 is the north plot
Dim ChemPumpBit(l) As Integer  ' Bit 0 is the south plot bit 1 is the north plot
Dim FillBit(l) As Integer    ' Bit to tell is pressure tank has been filled
Dim PlotPumpBit(7) As Integer  ' Bit 0,1 is the south plot bit 2,3 is the north plot
Dim FanBit(l) As Integer     ' Bit 0 South Plot, Bit 1 North Plot Ventelating fan for
      vault
Dim PlotAirBit(l) As Integer  ' bit 0 South Plot, Bit 1  North Plot To remove water form
      distribution lines
Dim PlotStopBit(l) As Integer ' Bit 0 South Plot, Bit 1 North Plot To make sure flow
      stops when off
Dim O2CalBit(l)         ' Bit 0 three way sample/calibrate valve, Bit  1 three way
                 '  Air/N2 valve
Dim DaTime(NN * MM) As Date
Dim Date_time As Date
Dim Run%
Dim Start
Dim Start 1
Dim M As Integer        ' counter to determine when to write data
Dim N As Integer        ' counter to determine when to create a new file
Dim I As Integer
Dim J As Integer
Dim Fill seel As Integer
Dim AirVolt(7) As Variant    ' O2 sensor voltage in air
Dim N2Volt(7) As Variant    ' O2 sensor voltage in N2
Dim SumAdata(21)
Dim Data(NumPoints)
Dim Gain As Variant
                                    49

-------
Dim Options As Variant
Dim ans
Dim SFlowR   'South flow controller voltage
Dim NFlowR    'North flow controller voltage
Dim CycleCoutnS ' Number of times through the pump cycle south plot
Dim CycleCoutnN ' Number of times through the pump cycle north plot
Dim delay  'seconds of delay

'Board 1 DAS6033 Function Code Variable
'DIOO
'DIO1
'DIO2
'DIO3
'DIO4
'DIO5
'DIO6
'DIO7
South Vent Fan FanBit(O)
North Vent Fan FanBit(l)
South Compressed Air PlotAirBit(O)
North Compressed Air PlotAirBit(l)
South Stop Valve PlotStopBit(O)
North Stop Valve PlotStopBit(l)
O2 Calibration Valve O2CalBit(0)
O2/Air Calibration VAlve O2CalBit(l)
PinNo(s)
85
86
87
88
89
90
91
92
'A/D Channel 0
'A/D Channel 1
'A/D Channel 2
'A/D Channel 3
'A/D Channel 4
'A/D Channel 5
'A/D Channel 6
'A/D Channel 7
'A/D Channel 8
'A/D Channel 9
'A/D Channel 10
'A/D Channel 11
'A/D Channel 12
'A/D Channel 13
'A/D Channel 14
'A/D Channel 15
'A/D Channel 16
'A/D Channel 17
'A/D Channel 18
'A/D Channel 19
'A/D Channel 20
'A/D Channel 21

'D/A Out 0
'D/A Out 1
  Temp South Vault         Temp(O)         2,3
  Temp North Vault         Temp(l)         4,5
  Temp Shed            Temp(2)         6,7
  Air Temp Under Shed       Temp(3)          8,9
  O2 South Plot Low Sensor 1   O2(0)          10,11
  O2 South Plot Low Sensor 2   O2(l)          12,13
  O2 South Plot High Sensor 1   O2(2)          14,15
  O2 South Plot High Sensor 2   O2(3)          16,17
  O2 North Plot Low Sensor 1   O2(4)          19,20
  O2 North Plot Low Sensor 2   O2(5)          21,22
  O2 North Plot High Sensor 1   O2(6)          23,24
  O2 North Plot High Sensor 2   O2(7)          25,26
  Pressure Tank South Plot    Pres(O)         27,28
  Pressure Tank North Plot    Pres(l)         29,30
  South Chemical Metering Pump               31,32
  North Chemical Metering Pump               33,34
  Flow Rate South Plot      FlowR(O)         52,53
  Flow Total South Plot     TFlow(O)         54,55
  Flow Rate North Plot      FlowR(O)         56,57
  Flow Total North Plot     TFlow(O)         58,59
  Pressure Tank South Plot Old               60,61
  Pressure Tank North Plot Old               62,63
South Flow Controller      SWaterOut        36,37
South Chem Feed Pump RPM Cont  SChemOut
38,37
                                   50

-------
'Board 2 DDA02
'D/AOutO     North Flow Controller      NWaterPOut       1,2
'D/A Out 1     N Chem Pump RPM Control    NChemPOut        3,4

'  SecondPortA
'BitO       North Water pump Valve     WellPumpBit(l)     58
'Bit 1                                    57
'  SecondPortB
'Bit 0       South Chemical pump bit     ChemPumpBit(O)      66
'Bit 1       North Chemical pump bit     ChemPumpBit(l)      65
'  FirstPortA
'Bit 0       N2 Stop Valve Stops N2 from Pump box          82
'Bitl       N2 South Low                       81
'Bit 2       N2 South High                       80
'Bit 3       N2 North Low                       79
'Bit 4       N2 North High                       78
'  FirstPortB
'Bit 0       South Low Sample/Calibrate valves (2)          90
'Bit 1       South High Sample/Calibrate valves (2)          89
'Bit 2       North Low Sample/Calibrate valves (2)          88
'Bit 3       North High Sample/Calibrate valves (2)          87

Private Sub cmdStart_Click()
'This is the basic timing program and is based on the timing sequence of the extraction
pumps
Call param

M = 0 'counter used to determine when to write a record to the data file
N = 1 ' counter used to store the number of records written in the file
'ReDim 020(64000)
'ReDim 021(64000)
'ReDim 022(64000)
'ReDim 023(64000)
'ReDim PresO(64000)
'ReDim Pres 1(64000)
'ReDim TempO(64000)
'ReDim Temp 1(64000)
'ReDim DaTime(64000)
Run% = 0

  ' declare revision level of Universal Library

  ULStat% = cbDeclareRevision(5.52!)
  If ULStat% <> 0 Then Stop

  ULStat% = cbErrHandling(PRINTALL, DONTSTOP)
                                   51

-------
If ULStat% <> 0 Then Stop

1 If cbErrHandling% is set for STOP ALL or STOPFATAL during the program
' design stage, Visual Basic will be unloaded when an error is encountered.
' We suggest trapping errors locally until the program is ready for compiling
' to avoid losing unsaved data during program design. This can be done by
' setting cbErrHandling options as above and checking the value of ULStat%
' after a call to the library. If it is not equal to 0, an error has occurred.
ULStat% = cbDConfigBit(Boardl, AUXPORT, 0, Direction%) '  configure Bit 0 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 1, Direction%) '  configure Bit 1 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 2, Direction%) '  configure Bit 2 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 3, Direction%) '  configure Bit 3 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 4, Direction%) '  configure Bit 4 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 5, Direction%) '  configure Bit 5 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 6, Direction%) '  configure Bit 6 as
     output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigBit(Boardl, AUXPORT, 7, Direction%) '  configure Bit 7 as
     output
If ULStat% <> 0 Then Stop

ULStat% = cbDConfigPort(Board2, FIRSTPORTA, Direction%) ' configure FirstPortA
     as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, FIRSTPORTB, Direction%) ' configure FirstPortB
     as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, SECONDPORTA, Direction%) ' configure
     SecondPortA as output
If ULStat% <> 0 Then Stop
ULStat% = cbDConfigPort(Board2, SECONDPORTB, Direction%) ' configure
     SecondPortB as output
If ULStat% <> 0 Then Stop

                                 52

-------
' initialize digital output ports to a digital 1 of off for all but the well pumps

   DataValue% = 1+2
    ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
       If ULStat% <> 0 Then Stop

   DataValue% =1+2
    ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)
       If ULStat% <> 0 Then Stop

   DataValue% =1+2 + 4 + 8 + 16
    ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%)
       If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 4, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 5, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 6, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 7, 1)
   If ULStat% <> 0 Then Stop
' initialize pumping rates

ULStat% = cbFromEngUnits(Boardl, UNI10VOLTS, SChemPOut, DataValue%)
 If ULStat% <> 0 Then Stop
  ULStat% = cbAOut(Boardl, 1, UNI10VOLTS, DataValue%)' South Chem pump
      RPM output
 If ULStat% <> 0 Then Stop
ULStat% = cbFromEngUnits(Board2, UNI10VOLTS, NChemPOut, DataValue%)
 If ULStat% <> 0 Then Stop
  ULStat% = cbAOut(Board2, 1, UNI10VOLTS, DataValue%) ' North Chem pump
      RPM output
 If ULStat% <> 0 Then Stop

 ' MsgBox (SWaterPOut%)
                                53

-------
I******************
' Initialize oxygen set point

O2SetS.Caption = Format(O2Set(0), "0.0")
O2SetN.Caption = Format(O2Set(l), "0.0")

' Initialize pressure tank and pump settings
SouthHiPresSet.Caption = Format(SouthHiPSet, "0.0")
SouthLoPresSet. Caption = Format(SouthLoPSet, "0.0")
NorthHiPresSEt. Caption = Format(NorthHiPSet, "0.0")
NorthLoPresSet. Caption = Format(NorthLoPSet, "0.0")
PressureSec. Caption = Format(PresSec, "0.") ' Number of seconds for presurazation or
       pump seconds
FillSec. Caption = Format(FilSec, "0.")     ' Number of seconds for filliing
'MsgBox ("test")
' Initialize flow counters flow counters initialized each time a new file is opened
' Flowcount(O) is the South well cluster, Flowcount(l) is the North well cluster
' Flowcount(2) = South Plot Pump, Flowcount(3) = North plot pump
For I = 0 To 3
  flowcount(I) = 0
Next I
  CmdStart.Enabled = 0
' Initialize Well pump bits

FillBit(O) = 0
FillBit(l) = 0
CycleCountS = 0
CycleCountN = 0
'MsgBox ("test")
' Calibrate O2 Sensors

'Call O2Cal
' Create a files for storing data

  Date = Now
  Time = Now
                                    54

-------
  fname = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm ss")
      + ".csv"
  Open fname For Output As #1
  Close
  Date = Now
  Time = Now

  fnameS = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
      ss") + "flow.csv"
  Open fnameS For Output As #3
  Close
'  Channel 14 = South Chem Metering Pump Hi Pin 3 1, Low Pin 32
'  Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
1  Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
1  Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
'  Channel 1 8 = North Flow Meter Rate Hi Pin 56, Low Pin 57
'  Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59
       Open fname3 For Append As #3
      Write #3, Format("Date Time"), Format("South Chem Pump"), Format("N Chem
      Pump"), _
        Format("S Flow Rate"), Format("S Flow Total"), _
        Format("N Flow Rate"), Format("N FlowTotal")
      Close

Do While Run% <>-!

If Fill Sec <= 1 Then
  Fillsecl = 0
  Else: Fillsecl =FillSec- 1
End If
' Obtain sensor data

Call Analog_In
Call Analog_In4
' Fan Control

Call Fan
' Set up well pump control

'MsgBox ("Well Pump Cont IN")
Call WellPumpCtrl
'MsgBox ("Well Pump Cont out")
                                   55

-------

' Determine if plots need water and turn on appropriate pumps Note: make sure there is
      water in pressure tank
' before turning on pumps. If Tank pressure >= low set pressure - 1 assume water is in
      tank.
' Delay chemical feed by one pump cycle and maintain water feed by ten pump cycles
      after turning
' off the chemical feed pump.
' The objective is to reduce the carbon source in the feed line to minimize the potential for
      biological growth in the
' distribution lines.
'ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0) ' South Air Bit
1  If ULStat% <> 0 Then Stop
1  Call VentTime
'ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1) ' South Air Bit
1  If ULStat% <> 0 Then Stop

'MsgBox ("Before South Air")

Call PlotPumpCtrl
'Write to the digital output channels the 6052 will be used for the South plot
' and the DDA02 will be used for the north plot the 6052 is configured bitwies and
' the DDA02 is configured port wise
  I**********
  'Board 1 (6052) Output to control plot pumps and solenoid valves South plot bit 0
      water pump
  '  (pin 85), bit 1 solenoid stop valve (pin 86)
  '  bit 2 chemical feed pump (pin 87), bit 3 three way soelnoid valve for air flush (pin
      88),
  '  and bit 4 the south water well pump bit(O) (pin 89)

'    ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, PlotPumpBit(O))
'    If ULStat% <> 0 Then Stop
'    ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, PlotPumpBit(l))
'    If ULStat% <> 0 Then Stop
'    ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, PlotPumpBit(2))
'    If ULStat% <> 0 Then Stop
'    ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, PlotPumpBit(3))
'    If ULStat% <> 0 Then Stop
                                   56

-------
  'Port B Board2 Output port to control plot pumps and solenoid valves North plot bit 4
      water pump (pin 32), bit 5 solenoid stop valve (pin 33)
  '  bit 6 chemical feed pump (pin 34), and bit 7 three way soelnoid valve for air flush
      (pin 35)
     Data Value 1% = PlotPumpBit(4) + 2 * PlotPumpBit(S) + 4 * PlotPumpBit(6) + 8 *
      PlotPumpBit(7)
     ULStat% = cbDOut(Board2%, FIRSTPORTB, DataValuel%)
        If ULStat% <> 0 Then Stop

  'Bit 4 Board 1 south plot, Port A Unit 2 North plot Output port to control well pumps
      only 1 bits used (pin 21)

       MsgBox (WellPumpBit(O))
  If WellPumpBit(O) = 1 Or WellPumpBit(l) = 1 Then ' Pumps are to run a pressure
       cycle followed by a fill cycle
   DataValue% = WellPumpBit(O) + 2 * WellPumpBit(l)

    ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
        If ULStat% <> 0 Then Stop

   '   MsgBox (DataValue 1%)
    Call PressureTime
    DataValue% = 0 ' Vent pressure lines
    ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
        If ULStat% <> 0 Then Stop
    Call FillTime ' Don't turn switches back on until sufficient time to fill bladder
       'MsgBox (DataValue 1%)

  Else: Call SleepTime ' This is the time for one pump cycle

  End If

    DoEvents ' Yield to other processes
    Refresh  ' required to update the screen
' determine how to store data it is not necessary to plot or record every data point.
' Data is recorded after M counter observations
' it is also desirable to limit the size of a given record. A new record is started after
' a fixed number (N counter) of events are recorded
If M > MM Then ' Write date after (MM +2) sampling events
  Date time = Now
                                   57

-------
  Open fname For Append As #1
  Write #1, Format(Date_time), Format(A_Data(0), "#0.00"), Format(A_Data(l),
       "#0.00"), Format(A_Data(2), "#0.00"), Format(A_Data(3), "#0.00"), _
  Format(A_Data(4), "#0.00"), Format(A_Data(5), "#0.00"), Format(A_Data(6),
       "#0.00"), Format(A_Data(7), "#0.00"), _
  Format(A_Data(8), "#0.00"), Format(A_Data(9), "#0.00"), Format(A_Data(10),
       "#0.00"), Format(A_Data(ll), "#0.00"), _
  Format(flowcount(0), "#00000"), Format(flowcount(l), "#00000"),
       Format(flowcount(2), "#00000"), _
  Format(flowcount(3), "#00000"), Format(A_Data(20), "#0.000"), Format(A_Data(21),
       "#0.000")
  Close
  M = 0 'reset the counter for recording and ploting after each data point is recorded

' place the recorded data in arrays for ploting
  O20(N) = A_Data(4)
  O21(N) = A_Data(5)
  O22(N) = A_Data(6)
  O23(N) = A_Data(7)
  O24(N) = A_Data(8)
  O25(N) = A_Data(9)
  O26(N) = A_Data(10)
  O27(N) = A_Data(ll)
  PresO(N) = A_Data(12)
  Presl(N) = A_Data(13)
  TempO(N) = A_Data(0)
  Templ(N) = A_Data(l)
  Temp2(N) = A_Data(2)
  Temp3(N) = A_Data(3)
  DaTime(N) = Date_time
' update the plot
  Call PlotZ
  N = N+ 1
' determine if it is necessary to create a new file
  If N > NN Then 'Create a new file name after (NN) samples are recorded
    N = 1 'reset the counter
    Date = Now
                                   58

-------
    Time = Now

    fname = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
       ss") + ".csv"
    Open fname For Output As #1
    Close

' reset the flow counters
    For I = 0 To 3
      flowcount(I) = 0
    Next I
    'Call O2Cal
  End If
' MsgBox DaTime(N)
 Else: M = M + 1
 End If
Loop
End Sub

Private Sub Fan()
' This subroutine is to operate the fan in the faults.  The objective is to cool the
' vault and reduce the humidity in the vault. The sump pump will only remove part of
' the water and the vault would probably remain at near saturated conditions causing
' corrosion and other problems with the instrumentation. The Fans will be programed to
      be
' on when the outside temperature is cooler than the inside temperature as long as the
      inside
' temperature is above 10 C. Need to leave some cussion to avoid freezing conditions.

If A_Data(3) < A_Data(0) And A_Data(0) > 10 Then
  FanBit(O) = 0
  Else: FanBit(O) = 1
End If
If A_Data(3) < A_Data(l) And A_Data(l) > 10 Then
  FanBit(l) = 0
  Else: FanBit(l) = 1
End If
   ULStat% = cbDBitOut(Boardl, AUXPORT, 0, FanBit(O)) 'Fan Control
   If ULStat% <> 0 Then Stop
    Start = Timer
   ULStat% = cbDBitOut(Boardl, AUXPORT, 1, FanBit(l)) 'Fan Control
                                    59

-------
   If ULStat% <> 0 Then Stop
     Start = Timer

End Sub

Private Sub O2Cal()
Dim  AirVolt(7)
Dim  N2Volt(7)
' Calibrate O2 Sensors first time throuth routine. Sensor reported to respons 90% in 60
      sec
'  Obtain Initial sensor data
' Create a file for storing Calibration data

Label2.BackColor = &HFF& ' red
Label2. Caption = "Calibrating"
  Date = Now
  Time = Now

  fname2 = "c:\temp\DATA" + Format$(Date, "mmm dd ") + Format$(Time, "hh mm
      ss") + "cal.csv"
  Open fname2 For Output As #2
  Close
' First obtain air reading all valves at the same time
  DataValue% =1*1 + 1*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Do not activate N2 Stop
      valve to pump box Bit 0
   If ULStat% <> 0 Then Stop
  DataValue% = 0*1 + 0*2 + 0*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate All
      Sample/calibrate valves
   If ULStat% <> 0 Then Stop
     Start 1 = Timer

Do While Timer < (Startl + CalTime)
     Call Analog_In3
      Date_time = Now
     Open fname2 For Append As #2
     Write #2, Format(Date_time), Format(A_Data(4), "#0.000"), Format(A_Data(5),
      "#0.000"), _
     Format(A_Data(6), "#0.000"), Format(A_Data(7), "#0.000"), _
                                   60

-------
    Format(A_Data(8), "#0.000"), Format(A_Data(9), "#0.000"), Format(A_Data(10),
      "#0.000"), _
    Format(A_Data(ll), "#0.0000"), Format(" Air")
    Close
  O2Val(0).Caption = Format$(A_Data(4), "0.000")
'  MsgBox (A_Data(4))

  O2Val(l).Caption = Format$(A_Data(5), "0.000")
  O2Val(2).Caption = Format$(A_Data(6), "0.000")
  O2Val(3).Caption = Format$(A_Data(7), "0.000")
  O2Val(4).Caption = Format$(A_Data(8), "0.000")
  O2Val(5).Caption = Format$(A_Data(9), "0.000")
  O2Val(6).Caption = Format$(A_Data(10), "0.000")
  O2Val(7).Caption = Format$(A_Data(l 1), "0.000")
    DoEvents  ' Yield to other processes
    Refresh   ' required to update the screen
  Call SleepTime

Loop
For I = 0 To 7
AirVolt(I) = A_Data(I + 4)
Next I

' Supply N2 only to south low stop N2 from pump box
  DataValue% = 0*1 + 0*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2 stop valve
      and Air/N2 valve for N2 calibration
   If ULStat% <> 0 Then Stop
  DataValue% = 0*1 + 1*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
      Sample/Calibrate valves for South Low
   If ULStat% <> 0 Then Stop
'MsgBox ("South Low")
    Start 1 = Timer
Label2.BackColor = &HFFOO& ' green
Refresh
Do While Timer < (Startl + CalTime)
    Call Analog_In3
'      A_Data(4) = 0 'comment line out when not testing
'      A_Data(5) = 0 'comment line out when not testing
      Date_time = Now
    Open fname2 For Append As #2
    Write #2, Format(Date_time), Format(A_Data(4), "#0.000"), Format(A_Data(5),
      "#0.000"), _
    Format(""), Format(""), _
                                   61

-------
    FormatC'"), Format(""), Format(""), _
    Formatf"), Format("N2")
    Close
  O2Val(0).Caption = Format$(A_Data(4), "0.000")
  O2Val(l).Caption = Format$(A_Data(5), "0.000")
    DoEvents  ' Yield to other processes
    Refresh  ' required to update the screen
  Call SleepTime
Loop
For I = 0 To 1
  N2Volt(I) = A_Data(I + 4)
Next I
'Begin South High supplying N2
  DataValue% = 0*1 + 1*2 + 0*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
      for N2 stop valve for
      'South High channels 6 and 7
   If ULStat% <> 0 Then Stop
  DataValue% =1*1 + 0*2+1*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
      Sample/Calibrate for
      'South High channels 6 and 7
   If ULStat% <> 0 Then Stop
'MsgBox(" South High 1")
    Start 1 = Timer

Do While Timer < (Startl + CalTime)
    Call Analog_In3
'      A_Data(6) = 0 'comment line out when not testing
'      A_Data(7) = 0 'comment line out when not testing
      Date_time = Now
    Open fname2 For Append As #2
    Write #2, Format(Date_time), Format(""), Format(""), _
    Format(A_Data(6), "#0.000"), Format(A_Data(7), "#0.000"), _
    Formatf"), Format(""), Format(""), _
    Format(""), Format("N2")
    Close
  O2Val(2).Caption = Format$(A_Data(6), "0.00")
  O2Val(3).Caption = Format$(A_Data(7), "0.00")
    DoEvents  ' Yield to other processes
    Refresh  ' required to update the screen
  Call SleepTime
Loop
For I = 0 To 1
  N2Volt(I + 2) = A_Data(I + 6)
Next I
                                   62

-------
'Begin North Low N2 Calibration
  DataValue% = 0*1 + 1*2+1*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
      and N2 stop valve for
      'North Low Channels 8 and 9
   If ULStat% <> 0 Then Stop
  DataValue% =1*1 + 1*2 + 0*4 + 1*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
      Sample/Calibrate valves
      'North Low Channels 8 and 9
   If ULStat% <> 0 Then Stop
    Start 1 = Timer

Do While Timer < (Startl + CalTime)
    Call Analog_In3
'      A_Data(8) = 0 'comment line out when not testing
'      A_Data(9) = 0 'comment line out when not testing
      Date_time = Now
    Open fname2 For Append As #2
    Write #2, Format(Date_time), Format(""), Format(""), _
    Format(""), Format(""),_
    Format(A_Data(8), "#0.000"), Format(A_Data(9), "#0.000"), Format(""), _
    Formatf"), Format("N2")
    Close
  O2Val(4).Caption = Format$(A_Data(8), "0.00")
  O2Val(5).Caption = Format$(A_Data(9), "0.00")
    DoEvents  ' Yield to other processes
    Refresh  ' required to update the screen
  Call SleepTime
Loop
For I = 0 To 1
  N2Volt(I + 4) = A_Data(I + 8)
Next I
' Begin North High N2 Calibration
  DataValue% = 0*1 + 1*2+1*4 + 1*8 + 0* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Activate N2/Air Valve
      and N2 stop valve
      'North High Channels 10 and 11
   If ULStat% <> 0 Then Stop
  DataValue% =1*1 + 1*2+1*4 + 0*8 + 1* 16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTB, DataValue%) 'Activate
      Sample/Calibrate valves for
      'North High Channels 10 and 11
   If ULStat% <> 0 Then Stop
    Startl = Timer
                                   63

-------
Do While Timer < (Start 1 + CalTime)
    Call Analog_In3
'       A_Data(10) = 0 'comment line out when not testing
'       A_Data(l 1) = 0 'comment line out when not testing
       Date_time = Now
    Open fname2 For Append As #2
    Write #2, Format(Date_time), Format(""), Format(""), _
    Format(""), Format(""),_
    FormatC'"), Format(""), Format(A_Data(10), "#0.000"), _
    Format(A_Data(ll), "#0.000"), Format("N2")
    Close
  O2Val(6).Caption = Format$(A_Data(10), "0.00")
  O2Val(7).Caption = Format$(A_Data(l 1), "0.00")
    DoEvents ' Yield to other processes
    Refresh  ' required to update the screen
  Call SleepTime
Loop
For I = 0 To 1
  N2Volt(I + 6) = A_Data(I + 10)
Next I
For I = 0 To 7

Slope(I + 4) = 20.9 / (AirVolt(I) - N2Volt(I))
Intercept(I + 4) = (-1) * Slope(I + 4) * N2Volt(I)

Next I
    Open fname2 For Append As #2
    Write #2, Format("Slopes"),  Format(Slope(4), "#0.000"), Format(Slope(5),
       "#0.000"), _
    Format(Slope(6), "#0.000"),  _
    Format(Slope(7), "#0.000"),  Format(Slope(8), "#0.000"), Format(Slope(9),
       "#0.000"), _
    Format(Slope(10), "#0.000"), Format(Slope(ll), "#0.000")
    Close
    Open fname2 For Append As #2
    Write #2, Format("Intercepts"), Format(Intercept(4), "#0.000"), Format(Intercept(5),
       "#0.000"), _
    Format(Intercept(6), "#0.000"), _
    Format(Intercept(7), "#0.000"), Format(Intercept(8), "#0.000"), Format(Intercept(9),
       "#0.000"), _
    Format(Intercept(10), "#0.000"), Format(Intercept(ll), "#0.000")
    Close

  DataValue% =1*1 + 1*2+1*4 + 1*8 + 1*  16+1* 32+1* 64 + 1* 128
   ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%) 'Denergize N2/Air Valve
   If ULStat% <> 0 Then Stop
                                    64

-------
Label2.BackColor = &HFFFFFF
Label2. Caption = ""
    DoEvents  ' Yield to other processes
    Refresh  ' required to update the screen

End Sub

Private Sub PlotPumpCtrl()
Dim AVGO2
' fluids are pumped only part of the time. This allows draining the lines in an attempt to
' minimize the biological growth in the pipeing. pulses of flow are delivered to the plot
       as
' one part out of the variable cyclecount cyclecount must be 3 or greater

  If A_Data(12) > SouthLoPSet - 1 Then ' Sufficient water pressure to operate pump
    'AVGO2 = (A_Data(4) + A_Data(5)) / 2
    AVGO2 = 20 'for testing purposes
    If AVGO2  > O2Set(0) Then ' Sufficient oxygen to apply water
      Cntl. Caption = Format$((cyclecount - CycleCountS) * (FilSec + PresSec), "0")
      CycleCountS = CycleCountS + 1 ' used to determine when to pump water vs flush
      with air
      'MsgBox (CycleCountS)
      If CycleCountS = 1 Then Turn on plot pump chemical pump and open solenoid
      valve
         flowcount(2) = flowcount(2) + 1  ' Increment South water flow counter
         SFlowR = SWaterPOut ' south plot water flow controller activated
         PlotStopBit(O) = 0 ' solenoid stop valve activated (opened) normally closed
      valve
         ChemPumpBit(O) = 0 ' south chemical pump bit turned on pin 34 Note a zero
      is
                    ' on for this pump
         PlotAirBit(O) = 1 ' south vent valve is off
         lblPump(0).BackColor = &HFFOO& 'green
         lblPump(l).BackColor = &HFFOO& 'green

      Elself CycleCountS = 2 Then '  Flush line with Air everything off but air
         SFlowR = 0 ' stop flow through flow controller
         PlotStopBit(O) = 1 ' closes the solenoid stop valve (normally closed valve)
         ChemPumpBit(O) = 1 ' a 1 turning off south chemical pump bit turned off
         'PlotAirBit(O) = 0 'south vent valve is  on
         lblPump(0).BackColor = &HFFFF& 'yellow
         lblPump(l).BackColor = &HFFFF& 'Yellow

      Elself CycleCountS > 2 And CycleCountS < cyclecount Then ' everything off
                                    65

-------
       SFlowR = 0 ' no flow thrugh flow controller
       PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
       ChemPumpBit(O) = 1 ' south chemical pump bit turned off
       PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
       lblPump(0).BackColor = &HFF& 'red
       lblPump(l).BackColor = &HFF& 'red

     Elself CycleCountS >= cyclecount Then 'last cycle before a pulse everything off
       CycleCountS = 0
       SFlowR = 0 ' no flow thrugh flow controller
       PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
       ChemPumpBit(O) = 1 ' south chemical pump bit turned off
       PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
       lblPump(0).BackColor = &HFF& 'red
       lblPump(l).BackColor = &HFF& 'red
     Else:   ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Plot
     Pump Control Logic ")

     End If
   Else:  'insuficient oxygen to deliver water
       Cntl.Caption = Format$("O2 ??")
       SFlowR = 0 ' no flow thrugh flow controller
       PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
       ChemPumpBit(O) = 1 ' south chemical pump bit turned off
       PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
       lblPump(0).BackColor = &HFF& 'red
       lblPump(l).BackColor = &HFF& 'red
   End If
 Else:  'Insuficient water in pressure tank to run a cycle
     Cntl.Caption = Format$("H2O ??")
       SFlowR = 0 ' no flow thrugh flow controller
       PlotStopBit(O) = 1 ' close solenoid stop valve (normally closed valve)
       ChemPumpBit(O) = 1 ' south chemical pump bit turned off
       PlotAirBit(O) = 1 'south vent valve off (normally closed valve)
     lblPump(0).BackColor = &H8000000F  'grey
     lblPump(l).BackColor = &H8000000F  'grey
 End If

If A_Data(13) > NorthLoPSet - 1  Then '  Sufficient water pressure to operate pump
   AVGO2 = (A_Data(8) + A_Data(9)) / 2
   AVGO2 = 20 'for testing purposes
   If AVGO2 > O2Set(l) Then ' Sufficient oxygen to apply water
     Cnt2.Caption = Format$((cyclecount - CycleCountN) * (FilSec + PresSec), "0")
     CycleCountN = CycleCountN +  1
     If CycleCountN = 1 Then
       flowcount(3) = flowcount(3) + 1 ' Increment South water flow counter
                                  66

-------
      NFlowR = NWaterPOut' north plot water pump bit turned on pin 32 Note a
    zero is on for this pump
      PlotStopBit(l) = 0 ' solenoid stop valve activated (opened) normally closed
      ChemPumpBit(l) = 0 ' north chemical pump bit turned on
      PlotAirBit(l) =  1 ' north vent valve not activated
      lblPump(2).BackColor = &HFFOO& 'green
      lblPump(3).BackColor = &HFFOO& 'green
    Elself CycleCountN = 2 Then
      NFlowR = 0 ' a  1 is turning off the South plot water
      PlotStopBit(l) = 1 ' closes the solenoid stop valve
      ChemPumpBit(l) = 1 ' north chemical pump bit turned off
      'PlotAirBit(l) = 0 'north compressed air vent valve
      lblPump(2).BackColor = &HFFFF& 'Yellow
      lblPump(3).BackColor = &HFFFF& 'Yellow
    Elself CycleCountN > 2 And CycleCountN < cyclecount Then
      NFlowR = 0 ' a  1 is turning off the flow controller
      PlotStopBit(l) = 1 ' solenoid stop valve
      ChemPumpBit(l) = 1 ' north chemical pump bit turned off
      PlotAirBit(l) =  1 'south compressed air vent valve
      lblPump(2).BackColor = &HFF& 'red
      lblPump(3).BackColor = &HFF& 'red
    Elself CycleCountN >= cyclecount Then 'last cycle before a pulse
      CycleCountN = 0
      NFlowR = 0 ' a  1 is turning off the flow controller
      PlotStopBit(l) = 1 ' solenoid stop valve
      ChemPumpBit(l) = 1 ' north chemical pump bit turned off
      PlotAirBit(l) =  1 'south compressed air vent valve
      lblPump(2).BackColor = &HFF& 'red
      lblPump(3).BackColor = &HFF& 'red
    Else:  ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Plot
    Pump Control Logic ")
    End If
  Else:  'insuficient oxygen to deliver water
      Cnt2.Caption = Format$("O2 ??")
      NFlowR = 0 ' a  1 is turning off the flow controller
      PlotStopBit(l) = 1 ' solenoid stop valve
      ChemPumpBit(l) = 1 ' north chemical pump bit turned off
      PlotAirBit(l) =  1 'south compressed air vent valve
      lblPump(2).BackColor = &HFF& 'red
      lblPump(3).BackColor = &HFF& 'red
  End If
Else:  'Insuficient water in pressure tank to run a cycle
    Cnt2.Caption = Format$("H2O ??")
      NFlowR = 0 ' a  1 is turning off the flow controller
      PlotStopBit(l) = 1 ' solenoid stop valve
      ChemPumpBit(l) = 1 ' north chemical pump bit turned off
                                  67

-------
        PlotAirBit(l) = 1 'south compressed air vent valve
      lblPump(2).BackColor = &H8000000F  'grey
      lblPump(3).BackColor = &H8000000F  'grey
  End If
'MsgBox ("test")

' first set the analog outputs then the Digital outputs
'ULStat% = cbFromEngUnits(Board2, UNI10VOLTS, NFlowR, DataValue%)
'  If ULStat% <> 0 Then Stop
'  ULStat% = cb AOut(Board2, 0, UNI1 OVOLTS, DataValue%)
'  IfULStatoOThenStop
  'MsgBox (NFlowR)

'ULStat% = cbFromEngUnits(Boardl, UNI10VOLTS, SFlowR, DataValue%)
'  If ULStat% <> 0 Then Stop
'  ULStat% = cbAOut(Boardl, 0, IMI10VOLTS, DataValue%)
'  If ULStat <> 0 Then Stop

DataValue% = ChemPumpBit(O) + 2 * ChemPumpBit(l)
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%) ' chemical flow bits
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 4, PlotStopBit(O)) 'south stop valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 5, PlotStopBit(l)) 'north stop valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, PlotAirBit(O)) 'south air valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, PlotAirBit(l)) 'north air valve
  If ULStat% <> 0 Then Stop
' measure flows
  If PlotStopBit(O) = 0 Or PlotStopBit(l) = 0 Then
      delay = 10
      Call DTime(delay)
      Call Analog_In2
      Date_time = Now
       Open fnameS For Append As #3
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
        Format(A_Data(19), "#0.000")
      Close
                                  68

-------
      Call DTime(delay)
      Call Analog_In2
      Date_time = Now
       Open fnameS For Append As #3
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
        Format(A_Data(19), "#0.000")
      Close
      Call DTime(delay)
      Call Analog_In2
      Date_time = Now
       Open fname3 For Append As #3
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
        Format(A_Data(19), "#0.000")
      Close
      delay = FilSec + PresSec - delay * 3
      Call DTime(delay)
  End If
If CycleCountN = 2 And CycleCountS = 2 Then
  ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
    If ULStat% <> 0 Then Stop
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
    If ULStat% <> 0 Then Stop
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
    If ULStat% <> 0 Then Stop
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
    If ULStat% <> 0 Then Stop
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
    If ULStat% <> 0 Then Stop
      Call Analog_In2
      Date_time = Now
       Open fname3 For Append As #3
                                  69

-------
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
        Format(A_Data(19), "#0.000")
      Close
Elself CycleCountN = 2 And CycleCountS <> 2 Then
    ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
      If ULStat% <> 0 Then Stop
    Call VentTime
    ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
      If ULStat% <> 0 Then Stop
    Call VentTime
    ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 0)
    If ULStat% <> 0 Then Stop
    Call VentTime
    ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1)
    If ULStat% <> 0 Then Stop
      Call Analog_In2
      Date_time = Now
       Open fnameS For Append As #3
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
        Format(A_Data(19), "#0.000")
      Close
Elself CycleCountS = 2 And CycleCountN <> 2 Then
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 0)
    If ULStat% <> 0 Then Stop
  Call VentTime
  ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1)
    If ULStat% <> 0 Then Stop
      Call Analog_In2
      Date_time = Now
       Open fname3 For Append As #3
      Write #3, Format(Date_time), Format(A_Data(14), "#0.0000"),
      Format(A_Data(15), "#0.000"), _
        Format(A_Data(16), "#0.000"), Format(A_Data(17), "#0.000"),
      Format(A_Data(18), "#0.000"), _
                                  70

-------
        Format(A_Data(19), "#0.000")
      Close
Else:

End If
1  If WellPumpBit(O) = 0 Or WellPumpBit(l) = 0 Then ' Pumps are to run a pressure
      cycle followed by a fill cycle
1   DataValue% = WellPumpBit(O) + 2 * WellPumpBit(l)

1   ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
        If ULStat% <> 0 Then Stop

      'MsgBox (DataValue 1%)
'     Call PressureTime
     If CycleCoutnS = 1 Or CycleCountN = 1 Then

'      DataValue% = 3 ' Vent pressure lines
      ULStat% = cbDOut(Board2, SECONDPORTA, DataValue%)
        If ULStat% <> 0 Then Stop
'      Call FillTime ' Don't turn switches back on until sufficient time to fill bladder
      'MsgBox (DataValue 1%)
     End If
'  Else: Call SleepTime ' This is the time for one pump cycle

'  End If
DataValue% = 3
ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)' chemical flow bits
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 4, 1) 'south stop valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 5, 1) 'north stop valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 2, 1) 'south air valve
  If ULStat% <> 0 Then Stop
ULStat% = cbDBitOut(Boardl, AUXPORT, 3, 1) 'north air valve
  If ULStat% <> 0 Then Stop
    Call Analog_In

    DoEvents  ' Yield to other processes
    Refresh  ' required to update the screen
End Sub

Private Sub WellPumpCtrlQ

' Determine if well pumps should cycle. Since the well pumps cycle faster than the plot
      pumps,
                                  71

-------
' the well pump cycle will control the sampling frequency
'MsgBox (WellPumpBit(O))
    If A_Data(12) <= SouthLoPSet Then
      WellPumpBit(O) = 1
      FillBit(O) = 0
      lblPump(4).BackColor = &HFFFF&       'Yellow
      flowcount(O) = flowcount(O) + 1
      'MsgBox ("If 1")
    Elself A_Data(12) > SouthHiPSet And FillBit(O) = 1 Then '
      WellPumpBit(O) = 0
      lblPump(4).BackColor = &HFF& 'Red
      'MsgBox ("If loop 2")
    Elself A_Data(12) > SouthLoPSet And FillBit(O) = 0 And A_Data(12) <
      SouthHiPSet Then'
      WellPumpBit(O) = 1
      lblPump(4).BackColor = &HFFOO& 'green
      flowcount(O) = flowcount(O) + 1
      'MsgBox ("If loop 3")
    Elself A_Data(12) >= SouthHiPSet Then
      WellPumpBit(O) = 0
      FillBit(O) = 1
      lblPump(4).BackColor = &HFF& 'red
      'MsgBox ("If loop 4")
    Else:   ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Pump
      Control Logic ")
    End If

    If A_Data(13) <= NorthLoPSet Then
      WellPumpBit(l) = 1
      FillBit(l) = 0
      lblPump(5).BackColor = &HFFFF&   'Yellow
      flowcount(l) = flowcount(l) + 1
      'MsgBox ("If 1")
    Elself A_Data(13) > NorthLoPSet And FillBit(l) = 1 Then
      WellPumpBit(l) = 0
      lblPump(5).BackColor = &HFF& 'Red
      'MsgBox ("If loop 2")
                                   72

-------
    Elself A_Data(13) > NorthLoPSet And FillBit(l) = 0 And A_Data(13) <
      NorthHiPSet Then
      WellPumpBit(l) = 1
      lblPump(5).BackColor = &HFFOO& 'green
      flowcount(l) = flowcount(l) + 1
      'MsgBox("Ifloop3")
    Elself A_Data(13) >= NorthHiPSet Then
      WellPumpBit(l) = 0
      FillBit(l) = 1
      lblPump(5).BackColor = &HFF& 'red
      'MsgBox("Ifloop4")
    Else:   ans = MsgBox("Continue?", vbYesNo + vbQuestion, "Problem in Pump
      Control Logic ")

    End If

'  MsgBox ("test")
End Sub

Private Sub CmdStop_Click()

' set output lines to off when system is sloped
   DataValue% = 3
    ULStat% = cbDOut(Board2, SECONDPORTB, DataValue%)
        If ULStat% <> 0 Then Stop

   DataValue% =1+2 + 4 + 8 + 16
    ULStat% = cbDOut(Board2, FIRSTPORTA, DataValue%)
        If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 0, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 1, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 2, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 3, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 4, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 5, 1)
   If ULStat% <> 0 Then Stop
                                 73

-------
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 6, 1)
   If ULStat% <> 0 Then Stop
   ULStat% = cbDBitOut(Boardl%, AUXPORT, 7, 1)
   If ULStat% <> 0 Then Stop
' initialize states of the output ports for Board 2 DDA02

    DataValuel% =1+2*1+4*1+8*1 + 16*1 + 32 * 1
    ULStat% = cbDOut(Board2%, FIRSTPORTB, DataValuel%)
        If ULStat% <> 0 Then Stop
    ULStat% = cbDOut(Board2%, FIRSTPORTA, DataValuel%)
        If ULStat% <> 0 Then Stop
    ULStat% = cbDOut(Board2%, SECONDPORTA, 0)
        If ULStat% <> 0 Then Stop

Run% = -l
Close  1
Close 2
Close 3

Close
  CmdStart.Enabled = True
End Sub

Private Sub Analog_In() ' used for channel 0 thru 13

' Analog Channel inputs PCI-DAS6031 Board 1
'  Channel 0 = South Vault Temperature Sensor Hi Pin 2, Low Pin 3
'  Channel 1 = North Vault Temperature Sensor Hi Pin 4, Low Pin 5
'  Channel 2 = Shed Temperature Sensor Hi Pin 6, Low Pin 7
'  Channel 3 = Outside Air Under Shed Temperature Sensor Hi Pin 8, Low Pin 9
'  Channel 4 = South Plot Low O2 Sensor 1 Hi Pin 10, Low Pin 11
1  Channel 5 = South Plot Low O2 Sensor 2 Hi Pin 12, Low Pin 13
1  Channel 6 = South Plot Hi O2 Sensor 1 Hi Pin 14, Low Pin 15
1  Channel 7 = South Plot Hi O2 Sensor 2 Hi Pin 16, Low Pin 17
'  Channel 8 = North Plot Low O2 Sensor 1 Hi Pin 19, Low Pin 20
1  Channel 9 = North Plot Low O2 Sensor 2 Hi Pin 21, Low Pin 22
1  Channel 10 = North Plot Hi O2 Sensor 1 Hi Pin 23, Low Pin 24
1  Channel 11 = North Plot Hi O2 Sensor 2 Hi Pin 25, Low Pin 26
'  Channel 12 = South Pressure Transducer Hi pin 27, Low Pin 28
'  Channel 13 = North Pressure Transducer Hi Pin 29, Low Pin 30
'  Channel 14 = South Chem Metering Pump Hi Pin 31, Low Pin 32
'  Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
'  Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
                                  74

-------
  Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
  Channel 1 8 = North Flow Meter Rate Hi Pin 56, Low Pin 57
  Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59
  Channel 20 = South Old Pressure transducer Hi pin 60, Low Pin 61
  Channel 21 = North Old Pressure transducer Hi Pin 62, Low Pin 63

'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For 1 = 0 To 13
  MemHandle = cbWinBufAlloc(NumPoints)
  If MemHandle = 0 Then Stop

'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000      'Sampling rate in HZ per channel
    Gain = Voltrange(I)
'Options = CONVERTDATA
  ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
      Options)
  IfULStat% = 91Then
    ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
  Elself ULStat% <> 0 Then
    Stop
  End If
' transfer values from Windows buffer to data array used by VB A
  ULStat% = cbWinBufToArray(MemHandle, ADData(O), FirstPoint, NumPoints)
  ULStat% = cbWinBufFree(MemHandle)   ' Free up memory for use by
  If ULStat% <> 0 Then Stop         ' other programs

  If ULStat% <> 0 Then Stop
  SumAdata(I) = 0
  For J = 0 To NumPoints
    ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
    SumAdata(I) = SumAdata(I) + Data(J)
  Next J
  A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))

Next I
' Convert voltages to real world values

For 1 = 0 To 13
  A_Data(I) = (A_Data(I) - Intercept(I)) * Slope(I)
Next I
                                   75

-------
I*********
' Create Display captions
'A_Data(4) = 9
'A_Data(5) = 9

For J = 0 To 3
  TempVal(J).Caption = Format$(A_Data(J), "0.00")
Next J
For J = 0 To 7
  O2Val(J).Caption = Format$(A_Data(J + 4), "0.00")
Next J
For J = 0 To 1
  TankPres(J).Caption = Format$(A_Data(J + 12), "0.00")
Next J

Refresh      ' required to update the screen

End Sub

Private Sub Analog_In2()  ' used for channel 14 thru 19

' Analog Channel inputs PCI-DAS6031 Board 1
'  Channel 14 = South Chem Metering Pump Hi Pin 31, Low Pin 32
'  Channel 15 = North Chem Metering Pump Hi Pin 33, Low Pin 34
1  Channel 16 = South Flow Meter Rate Hi Pin 52, Low Pin 53
1  Channel 17 = South Flow Totalizer Hi Pin 54, Low Pin 55
'  Channel 18 = North Flow Meter Rate Hi Pin 56, Low Pin 57
'  Channel 19 = North Flow Totalizer Hi Pin 58, Low Pin 59

'ReDim SumAdata(13)
'ReDim Data(NumPoints)
Forl= 14 To 19
  MemHandle = cbWinBufAlloc(NumPoints)
  If MemHandle = 0 Then Stop

'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000      'Sampling rate in HZ per channel
    Gain = Voltrange(I)
'Options = CONVERTDATA
  ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
       Options)
  IfULStat% = 91Then
                                  76

-------
    ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
  Elself ULStat% <> 0 Then
    Stop
  End If
' transfer values from Windows buffer to data array used by VB A
  ULStat% = cbWinBufToArray(MemHandle, ADData(O), FirstPoint, NumPoints)
  ULStat% = cbWinBufFree(MemHandle)   ' Free up memory for use by
  If ULStat% <> 0 Then Stop        ' other programs

  If ULStat% <> 0 Then Stop
  SumAdata(I) = 0
  For J = 0 To NumPoints
    ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
    SumAdata(I) = SumAdata(I) + Data(J)
  Next J
  A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))

Next I
Refresh       ' required to update the screen

End Sub

Private Sub SleepTime() 'Time between measurements when water is not
needed

      Start = Timer
        Do While Timer < Start + FilSec + PresSec
          If Timer < Start Then Start = Start - 86400 Timer crossed midnight
          DoEvents  ' Yield to other processes
        Loop

End Sub

Private Sub DTime(delay)  'Delay time

      Start = Timer
        Do While Timer < Start + delay
          If Timer < Start Then Start = Start - 86400 Timer crossed midnight
          DoEvents  ' Yield to other processes
        Loop

End Sub
                                  77

-------
Private Sub Analog_In3() ' used for channel 4 thru 11

' Analog Channel inputs PCI-DAS603 1 Board 1
'  Channel 4 = South Plot Low O2 Sensor 1 Hi Pin 10, Low Pin 1 1
'  Channel 5 = South Plot Low O2 Sensor 2 Hi Pin 12, Low Pin 13
1  Channel 6 = South Plot Hi O2 Sensor 1 Hi Pin 14, Low Pin 15
1  Channel 7 = South Plot Hi O2 Sensor 2 Hi Pin 16, Low Pin 17
'  Channel 8 = North Plot Low O2 Sensor 1 Hi Pin 19, Low Pin 20
'  Channel 9 = North Plot Low O2 Sensor 2 Hi Pin 21, Low Pin 22
1  Channel 10 = North Plot Hi O2 Sensor 1 Hi Pin 23, Low Pin 24
1  Channel 1 1 = North Plot Hi O2 Sensor 2 Hi Pin 25, Low Pin 26
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For I = 4 To 1 1
  MemHandle = cbWinBufAlloc(NumPoints)
  If MemHandle = 0 Then Stop

'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000      'Sampling rate in HZ per channel
    Gain = Voltrange(I)
'Options = CONVERTDATA
  ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
      Options)
  IfULStat% = 91 Then
    ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
  Elself ULStat% <> 0 Then
    Stop
  End If
' transfer values from Windows buffer to data array used by VB A
  ULStat% = cbWinBufToArray(MemHandle, ADData%(0), FirstPoint, NumPoints)
  ULStat% = cbWinBufFree(MemHandle)   ' Free up memory for use by
  If ULStat% <> 0 Then Stop        ' other programs

  If ULStat% <> 0 Then Stop
  SumAdata(I) = 0
  For J = 0 To NumPoints
    ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
    SumAdata(I)  = SumAdata(I) + Data(J)
  Next J
  A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I
                                  78

-------
Refresh       ' required to update the screen

End Sub

Private Sub Analog_In4() 'used for channel 20 thru 21
' Analog Channel inputs PCI-DAS603 1 Board 1
'  Channel 20 = South Old Pressure transducer Hi pin 60, Low Pin 61
'  Channel 21 = North Old Pressure transducer Hi Pin 62, Low Pin 63
'ReDim SumAdata(13)
'ReDim Data(NumPoints)
For I = 20 To 21
  MemHandle = cbWinBufAlloc(NumPoints)
  If MemHandle = 0 Then Stop

'LowChannel = i
'HighChannel = i
'CBCount& = NumPoints% ' Total number of data points to collect
'CBRate& = 90000      'Sampling rate in HZ per channel
    Gain = Voltrange(I)
'Options = CONVERTDATA
  ULStat% = cbAInScan(Boardl, I, I, NumPoints, CBRate&, Gain, MemHandle,
      Options)
  IfULStat% = 91Then
    ULStat% = cbErrHandling(DONTPRINT, DONTSTOP)
  Elself ULStat% <> 0 Then
    Stop
  End If
' transfer values from Windows buffer to data array used by VB A
  ULStat% = cbWinBufToArray(MemHandle, ADData%(0), FirstPoint, NumPoints)
  ULStat% = cbWinBufFree(MemHandle)   ' Free up memory for use by
  If ULStat% <> 0 Then Stop        ' other programs

  If ULStat% <> 0 Then Stop
  SumAdata(I) = 0
  For J = 0 To NumPoints
    ULStat = cbToEngUnits(Boardl, Gain, ADData%(J), Data(J))
    SumAdata(I) = SumAdata(I) + Data(J)
  Next J
  A_Data(I) = SumAdata(I) / NumPoints
'MsgBox (A_Data(i%))
Next I

' Convert voltages to real world values
                                  79

-------
For I = 20 To 21
  A_Data(I) = (A_Data(I) - Intercept®) * Slope(I)

Next I
For J = 2 To 3
  TankPres(J).Caption = Format$(A_Data(J + 18), "0.00")
Next J

Refresh        ' required to update the screen

End Sub

Private Sub FillTime() 'Time to Jill pumps
      Start = Timer
        Do While Timer < Start + FilSec 'FillSec it the seconds
           If Timer < Start Then Start = Start - 86400 Timer crossed midnight
           DoEvents ' Yield to other processes
        Loop
End Sub

Private Sub PressureTimeQ 'Time to Jill pumps
      Start = Timer
        Do While Timer < Start + PresSec 'PressureSec it the seconds
           If Timer < Start Then Start = Start - 86400 Timer crossed midnight
           DoEvents ' Yield to other processes
        Loop
End Sub

Private Sub VentTime() 'Time to pressure vent lines
  Start = Timer
     Do While  Timer < Start + VentSec
      If Timer  < Start Then Start = Start - 86400 Timer crossed midnight
      DoEvents  ' Yield to other processes
     Loop
End Sub

Private Sub Plot2()
  Dim GraphQ As Single
  Dim x As Integer
  Dim myXarrayQ As Double
  Dim my YArrayOQ As Double
  Dim myYArraylQ As Double
  Dim my YArray2() As Double
  Dim myYArraySQ As Double
  Dim my YArray4() As Double
                                   80

-------
Dim my YArraySQ As Double
Dim my YArray6() As Double
Dim my YArray7() As Double
Dim my YArraySQ As Double
Dim my YArray9() As Double
Dim myYArraylOQ As Double
Dim myYArrayl 1() As Double
Dim myYArrayl2() As Double
Dim myYArrayl3() As Double

Dim myYArraylQ
ReDim myXarray(N)
ReDim myYArrayO(N)
ReDim my Y Array 1(N)
ReDim myYArray2(N)
ReDim myYArray3(N)
ReDim myYArray4(N)
ReDim myYArray5(N)
ReDim myYArray6(N)
ReDim myYArray7(N)
ReDim myYArray8(N)
ReDim myYArray9(N)
ReDim my Y Array 10(N)
ReDim myYArrayl 1(N)
ReDim my Y Array 12(N)
ReDim myYArrayl3(N)
'Generate some x y data.
myXarray(O) = DaTime(l)
myYArrayO(O) =  O20(l)
myYArrayl(0) =  O21(l)
myYArray2(0) =  O22(l)
myYArray3(0) =  O23(l)
myYArray4(0) =  O24(l)
myYArrayS(O) =  O25(l)
myYArray6(0) =  O26(l)
myYArray7(0) =  O27(l)
myYArrayS(O) =  PresO(l)
myYArray9(0) =  Presl(l)
myYArrayl 0(0) = TempO(l)
myYArrayl 1(0) = Temp 1(1)
myYArrayl 2(0) = Temp2(l)
myYArrayl 3(0) = Temp3(l)

MsgBox N
For x = 1 To N
  myXarray(x) = DaTime(x) Value for X-axis
                                81

-------
  myYArrayO(x) = O20(x) Value for Y-axis
  myYArrayl(x) = O21(x)
  my YArray2(x) = O22(x)
  myYArray3(x) = O23(x)
  my YArray4(x) = O24(x)
  myYArray5(x) = O25(x)
  my YArray6(x) = O26(x)
  my YArray7(x) = O27(x)
  my YArray8(x) = PresO(x)
  myYArray9(x) = Presl(x)
  myYArraylO(x) = TempO(x)
  myYArrayl l(x) = Templ(x)
  myYArray!2(x) = Temp2(x)
  myYArrayl 3 (x) = Temp3(x)

Nextx
.Series(0).AddXY .Series(0).XValues.Last+ 1, .Series(0).YValues.Last/
     .Series(0).YValues.Last - 1 + (Rnd(lOO) - (100 / 2)), "", clTeeColor
With TChartl
 .AddSeries scPoint
 .Series(0).AddArray UBound(myYArrayO), myYArrayOQ, myXarrayQ
 .Series(0).XValues.DateTime = True
 .AddSeries scPoint
 .Series(l).AddArray UBound(myYArrayl), myYArraylQ, myXarrayQ
 .Series(l).XValues.DateTime = True
 .Series(2).AddArray UBound(myYArray2), myYArray2(), myXarrayQ
 .Series(2).XValues.DateTime = True
 .Series(3).AddArray UBound(myYArray3), myYArray3(), myXarrayQ
 .Series(3).XValues.DateTime = True
 .Series(4).AddArray UBound(myYArray4), myYArray4(), myXarrayQ
 .Series(4).XValues.DateTime = True
 .Series(5).AddArray UBound(myYArray5), myYArraySQ, myXarrayQ
 .Series(5).XValues.DateTime = True
 .Series(6).AddArray UBound(myYArray6), myYArray6(), myXarrayQ
 .Series(6).XValues.DateTime = True
 .Series(7).AddArray UBound(myYArray7), myYArray7(), myXarrayQ
 .Series(7).XValues.DateTime = True
 .Series(8).AddArray UBound(myYArray8), myYArraySQ, myXarrayQ
 .Series(8).XValues.DateTime = True
 .Series(9).AddArray UBound(myYArray9), myYArray9(), myXarrayQ
 .Series(9).XValues.DateTime = True

End With
                                 82

-------
  With TChart2
  .AddSeries scPoint
  .Series(0).AddArray UBound(myYArray 10), myYArray 10(), myXarrayQ
  .Series(0).XValues.DateTime = True
  .Series(l).AddArray UBound(myYArray 11), myYArrayllQ, myXarrayQ
  .Series(l).XValues.DateTime = True
  .Series(2).AddArray UBound(myYArray 12), myYArrayl2(), myXarrayQ
  .Series(2).XValues.DateTime = True
  .Series(3).AddArray UBound(myYArray 13), myYArraylSQ, myXarrayQ
  .Series(3).XValues.DateTime = True

  End With
  Refresh

End Sub
                                   83

-------
APPENDIX 7. Parm Code
Option Explicit
Public SlopeQ
Public InterceptQ
Public RangeQ
Public VoltrangeQ
'Public MM As Integer ' Number of measurements+2 between recording in file i.e. if MM
      = 1 every third recorded is recorded
'Public NN As Integer' Number of records in a file before creating a new file
Public N As Integer
Public O2Set(l)
Public O2()
Public A_Data()
Public fname
Public fname2
Public fnameS
Public SouthHiPSet
Public SouthLoPSet
Public NorthHiPSet
Public NorthLoPSet
Public SWaterPOut 'South Flow Controller Anaog Output 0-5 VDC
Public SChemPOut ' South Chemical Metering pump Control Voltage 0-10 VDC
Public NWaterPOut ' North Flow Controler Analog  ZOutput 0-5 VDC
Public NChemPOut ' North Chemicla metering Pump Control Voltate 0-10 VDC
Public PresSec
Public FilSec
Public cyclecount
Public VentSec
Public CalTime
Public Sub paramQ
ReDim Slope(21)
ReDim Intercept(21)
'ReDimRange(19)
ReDim Voltrange(21)
CalTime = 240 'number of seconds allowed to equibilarate for calibration
'MM =10 'number of measurements between recorded values
'NN = 1000 ' number of records in a data file
' Set Pump Speed Variables

SWaterPOut = 0.5
SChemPOut = 0.194 '0.59 ml/min arm on pump right side 1 no ethanol
NWaterPOut = 0.5
                                   84

-------
NChemPOut = 0.5535 ' 1.5ml/min = 1 volt input target flow rate 0.83 ml/min measured
       0.847ml/min
           ' arm on pump right side 4 with ethanol
cyclecount = 20 ' number of cycles with no plot flow must be greater than or equal to 3
       the actual
       ' pumping rate must be greater than the average desired application rate this was
       ' necessary to allow drying of the piping to minimize chemical degredation in the
       ' delivery system and plugging due to biological growth in the piping system
       average
       ' flow rate = pumping rate/cyclecount estimate the time for a pluse
       ' by taking the difference in times data are recorded divided by MM
' Well water pump timing variables
PresSec = 60 ' number of seconds to pressurize pumps
FilSec = 20 'number of seconds to vent the pumps
VentSec = 3 ' number of seconds to air purge distribution lines

O2Set(0) = 15 ' Oxygen set point South Plot
O2Set(l) = 15 ' Oxygen set point North Plot
SouthHiPSet = 10 ' Pressure set opint for water tank high pressure South Plot
SouthLoPSet = 7.5 ' Pressure set point for water tank low pressure south plot
NorthHiPSet = 10 ' Pressure set point of water pressure tank North plot
NorthLoPSet = 7.5 ' Lo pressure set point North plot
' Settings for the A/D operations
Slope(O) = 100 ' Temp South Vault
Slope(l) = 100 ' Temp North Vault
Slope(2) = 100 ' Temp Shed
Slope(3) = 100 ' Temp Air Under Shed
Slope(4) = 370 ' Preliminary Estimate of O2 South Lower 1
Slope(5) = 370  ' O2 South Lower 2
Slope(6) = 370  'O2 South Upper 1
Slope(7) = 370  'O2 South Upper 2
Slope(8) = 370  'O2 North Lower 1
Slope(9) = 370  'O2 North Lower 2
Slope(lO) = 370 'O2 North Upper 1
Slope(ll) = 370 'O2 North upper 2
Slope(12) = 7.5  'South pres
Slope(13) = 7.5  'North pressure
Slope(14) = 1
Slope(15)=l
Slope(16)=l
Slope(17)=l
Slope(18)=l
                                     85

-------
Slope(19)=l
Slope(20) = 5 'South Old Pressure transducer
Slope(21) = 5   ' North Old Pressure transducer
Intercept(O) = 0
Intercept( 1) = 0
Intercept(2) = 0
Intercept(3) = 0
Intercept(4) = 0
Intercept^) = 0
Intercept(6) = 0
Intercept(7) = 0
Intercept^) = 0
Intercept(9) = 0
Intercept( 10) = 0
Intercept( 11) = 0
Intercept( 12) = 1
Intercept( 13) = 1
Intercept( 14) = 0
Intercept( 15) = 0
Intercept( 16) = 0
Intercept( 17) = 0
Intercept( 18) = 0
Intercept( 19) = 0
Intercept(20) = 0.444
Intercept(21) = 0.61
Voltrange(O) = UNI5VOLTS '0-5 volt range Temp Sensor
Voltrange(l) = UNI5VOLTS '0-5 volt range
Voltrange(2) = UNI5VOLTS '0-5 volt range
Voltrange(3) = UNI5VOLTS '0-5 volt range
Voltrange(4) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(S) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(6) = UNIPT1 VOLTS '0-0.1 volt range oxygen Sensor
Voltrange(7) = IMIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(S) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(9) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(lO) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(l 1) = UNIPT1 VOLTS '0-0.1 volt range oxygen sensor
Voltrange(12) = IMI10VOLTS '0-10 volt range pressure transducer
Voltrange(lS) = UNI10VOLTS '0-10 volt range pressure transducer
Voltrange(14) = UNI10VOLTS '0-10 volt range Soutn Chemical Feed pump
Voltrange(lS) = IMI10VOLTS '0-10 volt range North Chemical Feed pump
Voltrange(16) = UNI10VOLTS '0-10 volt range South Flow Rate
Voltrange(17) = UNI10VOLTS '0-10 volt range South Flow Totalizer
Voltrange(lS) = UNI10VOLTS '0-10 volt range North Flow Rate
Voltrange(19) = UNI10VOLTS '0-10 volt range North Flow Totalizer
Voltrange(20) = UNI10VOLTS '0-10 volt range South Old pressure Transducer
                                   86

-------
Voltrange(21) = UNI10VOLTS '0-10 volt range North Old Pressure Transducer




End Sub
                                  87

-------
APPENDIX 8. Main Form 1 (Code)

Private Sub MDIForm_Load()
Port_Hueneme_Display. Show
MainForml.AutoShowChildren = True
Port_Hueneme_Display.CmdStart. Value = True
End Sub
                               88

-------
APPENDIX 9. Initial Work Plan
                        PROPOSAL AND WORK PLAN

               Evaluation of Enhancement of Natural Attenuation
             of BTEX, MTBE and ethanol using infiltration galleries

                                  Carl Enfield
                  National Risk Management Research Laboratory
               U.S. Environmental Protection Agency, Cincinnati, OH
                                 513-569-7489

                                  Ernie Lory
                               NFCSC, U.S. Navy
                                 805-982-1299
INTRODUCTION

       Port Hueneme NFESC has been studying the MTBE-BTEX plume emanating
from the NEX service station near Heritage Park for a number of years. The base has
hosted a number of studies and demonstrations of innovative treatment systems and
monitoring techniques for remediation both in situ and above ground.

       In this work plan, we propose, under new EPA funding, to expand experimental
activities previously completed at the Envirogen demonstration area and evaluate the
efficacy of infiltration galleries to treat contaminant plumes from fuel sources that have
had their oxygen depleted due to natural attenuation process or the properties of the
formation geology. There is a large body of evidence that most fuel components are
degradable under oxidizing conditions. We believe that infiltration galleries can
introduce oxygen into the formation through atmospheric and/or membrane  diffusion and
thereby provide a potential low cost remedial technology that could be implemented at
service stations to limit the transport of contaminants beyond property boundaries; such a
system, if proven to work at Port Huemene, it might be useful at the other fuel-
contaminated site at Navel facilities.  We also believe the experimental design can be
conducted with appropriate safeguards to ensure that there is no lasting adverse impact
from this experimental activity at the Site. We thus request approval to proceed as
proposed in detail below.

       The general approach will be to extract reduced groundwater (groundwater with
low dissolved oxygen) immediately upgradient of the infiltration gallery and reinject the
water in the vadose zone without contact with the air. After establishing and
documenting the hydraulic flow field, and demonstrating to ability to control the
oxidization status of the infiltrated ground water with or without amendments, fuel
                                    89

-------
components would slowly be added to the injected water to simulate ground water near a
leaking storage tank.  The injections would be staged initially injecting easily degradable
compounds (i.e. ethanol - selected because of California's intent to replace MTBE with
ethanol) followed by ethanol combined with BTEX and then combined with MTBE.
THE SITE

    Figure 1 presents a map of the BTEX and MTBE plume several hundred feet down
gradient of the source area (the service station). We know from years of monitoring that
the BTEX concentrations at this  site have been strongly attenuated by natural processes
and MTBE fluxes have been substantially reduced by In situ remedial treatment systems.
We plan to utilize the infrastructure previously used by Envirogen shown in Figure 2 to
study infiltration galleries as a potential low cost treatment system.
EXPERIMENTAL PLAN

       We propose to evaluate the utility and effectiveness of infiltration galleries to
enhance the natural attenuation of ethanol, BTEX and MTBE. The motivation for this
work is the certainty that such plumes, with or without ethanol, will continue to be
present and require management at service stations throughout the country.  EPA has
already initiated a similar study limited to MTBE and BTEX on the East Coast (Dover
AFB) and hopes to use the proposed Port Hueneme test as the example for the West
Coast.
       We propose to conduct two side-by-side experiments simultaneously. The
proposed locations of the two infiltration galleries are illustrated in Figure 3. The
proposed location was selected to utilize the infrastructure of the previous Envirogen
study and not interfere with ongoing activities at the Port. The propane and oxygen
injection wells would be removed or cut off below grade and plugged with bentonite to
make room for the infiltration galleries.  Selected MTBE/tracer injection wells would be
used as extraction wells.
       Figure 4 presents vertical schematics of the proposed infiltration gallery
experiments.  A backhoe will be used  to cut two holes through the blacktop  after the
injection wells were removed. The holes will be outfitted with various water release and
oxygen monitoring/releasing devices,  etc, and backfilled with non-native  coarse sand.
Groundwater will be extracted from the  aquifer via the former MTBE/tracer injection
wells and released into the infiltration galleries.  Initially, only groundwater and tracers
will be released into the infiltration galleries.  This activity will be continued until
hydraulic and oxygen control can be established. Then it will be necessary to spike the
influent to the infiltration galleries because neither BTEX nor ethanol are present in
groundwater near the transect. It may also be necessary to spike the influent with MTBE
if insufficient MTBE is present in the  groundwater immediately upgradient of the
infiltration galleries (which is likely given our past monitoring data). The infiltration
galleries will be kept aerobic by controlling the rate at which the influent  is added to each
gallery, as described in more detail later. It is expected that  the chemicals will be
                                      90

-------
degraded during downward infiltration, thus leading to the release of treated water back
into the aquifer. Treatment will be confirmed by monitoring wells previously installed
for this purpose for the Envirogen study.
       The general idea is to conduct two experiments simultaneously, but under
different oxidizing conditions.  The methods employed allow for rapid and complete
cessation of chemical release at the end of the experiments or in case release
concentrations or other aspects of the experiment have exceeded contingency criteria
discussed below.
       Table 1 summarizes the approximate release concentrations that would be typical
of aqueous concentrations near a leaking underground storage tank.  These concentrations
have been utilized at other studies at  e.g. Vandenburg AFB to simulate a gasohol release.
The goals  are: 1) to provide a stable aerobic environment in situ, 2) to meter the
contaminated water into the infiltration gallery in such a way that the aerobic
environment is sustained while the contaminants are degraded by native microbial
populations, 3) to provide influent contaminant concentrations that are stable and high
enough to allow reliable analysis and quantification, 4) to keep concentrations and total
mass low enough so that they will naturally attenuate  or can easily be remediated upon
the end of the experiment.
       We have estimated the total mass of the chemicals to be released.  These
estimates assume that each 3-m wide infiltration gallery will be dosed with the
groundwater migrating through a 3-m wide portion of the sand aquifer immediately
upgradient of it. We assume, for the area of these tests a interstitial groundwater velocity
of approximately 0.006 m/d (0.194 f/d), a porosity of 0.25, and a saturated thickness of 7
m. The groundwater will  be released uniformly across the 1 m by 3  m surface opening
(areal extent) of each infiltration gallery.  Total duration of the test will be roughly 1.5
years, in order to allow time for final shutdown of the experiments, cleanup of
contaminants if required, etc. Prior to final design a pump test will be performed at the
site to verify the flux of water passing by the extraction wells. Adjustments will be made
in the design based on these measurements.
Table 1. Target characteristics of chemical release
Chemical






Ethanol
Benzene
Toluene
o-Xylene
MTBE
Pentaflorobenzoic acid
Approximate
release
concentration


(mg/L)

500
5
15
5
10
3
Approximate total
mass per unit area
to be released over
1.5 years

(kg/m2)

1.1
0.02
0.07
0.02
0.04
0.001
Approximate total
volume (liquid
equivalent) per
unit area to be
released over 1.5
years
(gallons/m2)
0.37
0.007
0.02
0.007
0.015
NA
                                      91

-------
(tracer)
Bromide (tracer)

300

0.13

NA
       The infiltration galleries will initially be operated to maintain a fixed oxygen
concentration (15%) in the soil gas at the one meter depth within each gallery (called a
"control plane"). This oxygen level is required to obtain significant MTBE degradation.
If the oxygen level drops below the set point the injection pumps will be turned off until
oxygen has returned to the desired levels (confirmed by automated in situ monitoring). A
second oxygen sensor will monitor the oxygen status 30 cm below the water injection as
an internal check on system performance.
       We propose to build the infiltration galleries in spring 2004, turn on their pumps
and monitoring devices, and run groundwater through them for at least 3 weeks. This
will allow time for the native microbes to populate the non-native coarse sand backfill
(consistent with prior work by UC Davis and also column work completed in prior years
with waters from various source areas). It will also allow us to verify our ability to
supply sufficient oxygen to oxidize the native groundwater by diffusion alone. If it is not
possible to obtain a reasonable flow (flow rate to be determined later) the upper oxygen
monitoring plane will be switched to an oxygen supply plane and oxygen will be supplied
through the diffusion membrane to supply required oxygen. Flows through the
infiltration galleries will be compared to evaluate the variability in the infiltration
galleries. We then will introduce ethanol into both lanes for 3-5 weeks.  Ethanol is
readily degradable. The initial use of ethanol alone permits making sure the oxygen
sensing system is functioning properly  prior to injecting potentially more slowly
degradable contaminants. After this additional  shake down period, ethanol will be
removed from one of the lanes and the  source water source water for both lanes will be
changed to include both BTX and MTBE. One lane will represent a  service station that
has converted to gasohol but had a previous leak containing MTBE and the other a
station that did not convert to MTBE. Tracers will be added to both of the lanes
periodically and this will be continued for at least 10 months, but no  longer than 18
months. During tracer and organic release, we will monitor the source water and
downgradient sampling network in two ways: 1) snapshot sampling of all points every
month, (the primary information that will be used to evaluate the efficacy of the
infiltration galleries), and 2) weekly or more frequent sampling of key points. The
anticipated sample load is outlined below.

Test Phase
Initial
tracer

Ethanol

MTBE,
BTEX,
TEA,

Source
2

2

2

Wells

24

24


Depths

3

3

Frequency
Daily
1




Weekly

2
1

1
Monthly



3


Duration
Weeks
O
3
5
5
40

Total
Samples
30
432
10
360
80
                                      92

-------
Ethanol
and tracers




24

3





1

40

720
       EPA will perform the ground water flux measurement. During the flux
measurement ground water will be produced (approximately 500 gal) requiring
discharge. NFCSC will supply the tank for water collection and arrange for discharge.
EPA will install the infiltration galleries and control systems. NFCSC will assume
responsibility for sampling, shipping samples to the Robert S. Kerr Environmental
Research Center for analysis, and monitoring system operation. EPA will perform all of
the chemical analyses. Periodically cocktails will need to be mixed to supply
contaminants to the infiltration gallery. This activity will be performed by NFCSC.
NFCSC will either forward files stored on the operating computer to the principal
investigator or supply a telephone line to permit downloading the data remotely. System
failures should be reported to EPA.  EPA will be responsible for making system repairs.
CONTINGENCIES
The primary contingency for this work is the ability to shut off groundwater flow and
chemical release automatically if the oxygen concentrations in either of the galleries falls
below the value needed to sustain biotreatment. If either infiltration gallery is found to be
unable to sustain treatment, its use will be discontinued.  The monitoring wells can be
used to extract whatever small amount of released chemical mass has escaped either
infiltration gallery. At most, we expect to create very small plumes of BTX and MTBE
in groundwater beneath the infiltration galleries.  By far the majority of the mass
released will be treated in the infiltration gallery prior to arriving at the water table.  The
infiltration galleries, however, will give rise to tracer concentrations that are higher than
currently present in the groundwater in the area. We expect that only the tracers will
migrate significantly beyond the monitoring well field.  Finally, we would expect that the
originally efficient in situ natural attenuation of the BTEX compounds would be
reestablished very quickly after we stop releasing chemicals into the infiltration galleries.
Thus it is highly likely that no additional measures would be necessary after cessation of
the infiltration gallery tests, other than monitoring for a month or two, as there would be
no fugitive BTX or ethanol mass in situ to manage.
       Nevertheless,  there is always a chance, however small, of the unexpected
happening, i.e. more significant elongation of plumes, more significant concentrations of
contaminants in groundwater than anticipated, and/or accidental unplanned releases of
the BTX compounds  as a result of human error or instrument failure. Thus we have
planned two contingencies to be ready, when and if necessary, to handle various levels of
problems that might conceivably be encountered.  The following table summarizes the
two contingencies, which are described in more detail below.
Contingency
1
What
Pump and treat
When
During the
Criterion
Contaminant concentrations in
                                      93

-------
using monitoring
wells
downgradient of
experimental zone
Pump and treat
using supply and
monitoring wells
up and
downgradient of
the experimental
zone
experiment
the monitoring wells exceed
10% of the injected
concentration ofthenon
tracer compounds (using
average values over 2 months
of monitoring)	
After the
experiment
Contaminant concentrations
exceed pre-injections
concentrations by 20% of the
non tracer compounds
referring to averages of
concentrations in all wells
(monitoring and supply)
utilized for this work
                       94

-------
 Figure 1  EPA Site Locations at CBC Port Hueneme
                 Well Head Drinking Water  |
               Treatment Extraction Zone s  I
                                   Envirogen
                                  Propane & O,
                                  Enhancement
JMTBE Plume

IBTEX Plume
                                                                   NFESC/Equilon/

                                                                    ASU In Situ

                                                                   Bioremediation
                                               Ex-Situ
                                             Remediation
                                            Pump & Treat
                                            Demonstration
                                                                           Multi Level
                                                                         Monitoring Wells
Figure 1. Map showing various features of NEX contamination plume with selected

studies that have already been performed
                                        95

-------
            A
      4      XXXXXXXXX

      *  /  X X X  X X  X X  X X X

      .QQQOQQQQ
      fciirJT-i  oirTr-2  offr-3  oitjr-4  oifrs oi£r-6  offi-7 oirjr-
                                            \     f9~9l  f9~9l    -  -1'«  - " -  »"-  - 2
                                                •v^  I I  T|  I I  11    xxxxxxxxx
                                                     ^^1	_|      X X  X X  X X X X X X

                                                       T      TOOOOOOOO
                                            	I	| oirTc-i oirjc-2 oirTb oirTc-4 Q^c-s oirJc-6 oirjc-7 oirTc-a
      LEGEND

      Is- EPA Groundwater Monitoring Clusters

      @Envirogen Groundwater Monitoring Well / Probe (GWT-1)

      0 Oxygen Injection Point (OIPT-1)

      XPropane Injection Point (PIPT-1)

      Xd-MTBE Injection Point (P1-P3S) 2" Fully Screened Well

      4 Vapor Monitoring Probe (VMPT-1)

    	Oxygen Distribution System
                                                                                                  Port Hueneme
                                                                                        EPA MTBE Performance Monitoring
                                                                                       In-Situ Biostimulation Bioaugmentation
                                                                                                   Area Layout
Figure 2  EPA Site Location, Middle of Plume
                                             w
                              375
                B
                i—1
   In-Situ Bacterial Treatment Sites


Proposed Envirogen Site
          Envirogen
        Propane & O,
        Enhancement
                                     Pacific Rd.
                                                              96

-------
                                                    XX0X0X0XX

                                                    X X X X X X X X X X
                                                     Port Hueneme
                                                 EPA Infiltration Gallery at Former
                                                 Envirogen Demonstration Site
Figure 3. Illustration of the concept for the side-by-side infiltration galleries.  A backhoe
will be used to cut two holes into the Vadose Zone. The holes will be outfitted with
various distribution and monitoring devices, etc. (shown only in the plan view), and
backfilled with coarse sand. Groundwater will be extracted from the aquifer via the
supply wells, spiked with chemicals of interest (see text) and released into the infiltration
galleries.  The infiltration galleries will be kept aerobic as described in the text. It is
expected that the chemicals will be degraded during downward infiltration, thus leading
to release of treated water back into the aquifer.  Treatment will be confirmed by
monitoring wells previously installed for this purpose.  The general idea is to conduct two
experiments simultaneously, but under different conditions, i.e. one with release of small
amounts of BTX and MTBE and tracers, and the other with the same plus ethanol.
                                       97

-------
  a) Transverse vertical section

      groundwater flow into page
Soil Solution samplers

               3 m
  b) Longitudinal vertical section
        Groundwater
        flow direction
                                        Supply wells
                                                             sand backfill
                                                                   ily/monitoring wells
                                                                              Sandy
                                                                              aquifer
                                Multi Level Samplers
0

•— •
£ 1
I
£ 2"
Q.
2
6
-f






j
i
!



" "-





































water
Distribution
O2
Supply/
Monitoring





                                            01234
                                               Distance along flowpath (m)
Figure 4 vertical section of proposed infiltration gallery.
                                               98

-------
APPENDIX 10. Partial Parts List
                                    Unit
Part No.
A-07193-00
A-07193-05
9989K53
5272K234
5272K233

5272K296

4596K428
1976K67
36895K116
2389K213

8111K94

8077K48

8077K42
7219K25
7219K64
7310K12
7310K14

PCI-DAS6033
Desciption
Drying Column
Indicating Drierite
desicant
1/3 hp sump pump
with diaphram
switch
Panel Mount
Coupling 1/8" OD
Panel Mount
Coupling 1/2" OD
1/2" Tube x 3/4"
Male Pipe
1 1/2 x 3/4
Reducing bushing
3.15" square fan
115 VAC
2" bulkhead fitting
2" solvent weld
street ell
120VAC Buna-N 3
way universal
solenoid

120 VAC solenoid

120 VAC solenoid
2 Gang Weather
Proof Box
Duplex receptical
cover
Liqid tight Cord
Grip
Liqid tight Cord
Grip
64Channel 16 Data
I/O Card
Source Price Quantity Cost Comments
Cole Farmer
Cole Farmer
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr

McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Carr
McMaster
Can-
Measurement
Computing®
62
121
108.83
5.01
9.18

6.56

3.36
22.73
20.91
1.32

81.6

98.89

38.73
8.58
11.05
1.75
2.51

1125
4
1
2
2
6

2

2
2
4
12

12

2

2
2
2
4
2

1
$248.00Gas Sampling lines
$121.00
Need 18" diameter by 24"
$217.66depth sump for operation
Air supply to empty
$ 10.02distribution pipe
to water lines and pump
$55.08dicharge from sump pump

$13.12 Sump pump Adaptor

$6. 72 Sump pump Adaptor
$45.46Ventalatingfan
$83.64piping adaptor for vent
vent through side of tank.
$15. 84No holes in top

Gas Sampling claibration
$979.20valves
Water line shutoff
$197.78normally closed
Air valve in distribution
$77.46system
For sump pumpand vent
$17.16fan
$22.10
$7.00
$5.02

$1,125.00
            5 conductor 16
            AWG Cable 100 ft
02F5345      spool OD = 0.504" Newark       68.35
            5 pair shielded 24
            AWG Cable 100 ft
02F4871      spool OD 0.289"   Newark       35.64
   .35Power except for pump
$35.64
                                   99

-------
02F4063
18AWG 3
Conductor Cable
100' OD 0.265"
Newark
                                  89.9
$89.90
PXM41MDO-
1.60BARG5V
Heavy duty metric
pressure transducer
with 0 to 1.6 Bar
range, G 1/4 male
fitting, 3 meter
cable  and 0.5 to 5.5 Omega
Vdc output        Engineering
                                  500
                            2  $1,000.0012 Week delivery
FL-3607G
FLV2011
5.77 cc/minof air
.07 cc/min of water,
Aluminum Frame,  Omega
65mm tube        Engineering
Flow controler
20000 seem
                  Omega
                  Engineering
                 119        5    $595.00

                                       Don't know fitting size will
                2095        2  $4,190.00need to get after received
               85 gal Polyethylene
               tank with external
           4155flange            US Plastics
           4205Cover for tank

               Air chuck
                  US Plastics
              159.64

               29.06
                                                     Total
                                                        For Sump will be used to
                                                        replace one of the valve
                                                        boxes will come above
                                                        grade but instuments will
                                                 $319.28be laced below grade
                                                        bolts on should be water
                                                   $58.12tight
                                                        On pressure tank to
                                                    $0.00pressurize

                                                 ;9,603.55
                                           100

-------