HSPF Version 12.2 User's Manual

Brian R. Bicknell
John C. Imhoff
John L. Kittle, Jr.
Thomas H. Jobes
Anthony S. Donigian, Jr.

AQUA TERRA Consultants
Mountain View, California 94043

In Cooperation With

Office of Surface Water
Water Resources Discipline
U.S. Geological Survey
Reston, Virginia 20192

National Exposure Research Laboratory
Office of Research and Development
U.S. Environmental Protection Agency
Athens, Georgia 30605


Introduction
  • Disclaimer
  • Foreword
  • Abstract
  • Dedication
  • Purpose of HSPF
  • Purpose of Document
  • Notice of User Responsibility
  • Acknowledgments


Disclaimer

 This report has been reviewed by the Environmental Research Laboratory, U.S. Environmental Protection Agency, Athens, Georgia and approved for publication. Approval does not signify that the contents necessarily reflect the views and policies of the U.S. Environmental Protection Agency, nor does mention of trade names or commercial products constitute endorsement or recommendation for use.


Foreword

 As environmental controls become more costly to implement and the penalties of judgment errors become more severe, environmental quality management requires more efficient analytical tools based on greater knowledge of the environmental phenomena to be managed. Part of this Laboratory's research on the occurrence, movement, transformation, impact, and control of environmental contaminants, consists of the development of management and engineering tools to help pollution control officials achieve water quality goals through watershed management.

The development and application of mathematical models to simulate the movement of pollutants through a watershed and thus to anticipate environmental problems has been the subject of intensive EPA research for a number of years. An important tool in this modeling approach is the Hydrological Simulation Program - FORTRAN (HSPF), which uses computers to simulate hydrology and water quality in natural and man-made water systems. HSPF is designed for application to most watersheds using existing meteorologic and hydrologic data. Although data requirements are extensive, HSPF is thought to be the most accurate and appropriate management tool presently available for the continuous simulation of hydrology and water quality in watersheds.

Rosemarie C. Russo, Ph.D.
Director
Environmental Research Laboratory
Athens, Georgia


Abstract

 The Hydrological Simulation Program - FORTRAN (HSPF) is a set of computer codes that can simulate the hydrologic, and associated water quality, processes on pervious and impervious land surfaces and in streams and well-mixed impoundments. The manual discusses the structure of the system, and presents a detailed discussion of the algorithms used to simulate various water quantity and quality processes. It also contains all of the information necessary to develop input files for applying the program, including descriptions of program options, parameter definitions, and detailed input formatting data.

The original version of this report was submitted in fulfillment of Grant No. R804971-01 by Hydrocomp, Inc., under the sponsorship of the U.S. Environmental Protection Agency. That work was completed in January 1980.

Extensive revisions, modifications, and corrections to the original report and the HSPF code were performed by Anderson-Nichols and Co. under Contract No. 68-03-2895, also sponsored by the U.S. EPA. That work was completed in January 1981. Versions 7 and 8 of HSPF and the corresponding documents were prepared by Linsley, Kraeger Associates, Ltd. and Anderson-Nichols & Co., Inc. under Contract No. 68-01-6207 (the HSPF maintenance and user-support activities) directed by the U.S. EPA laboratory in Athens, GA.

The HSPF User's Manuals for Versions 10, 11, and 12 were prepared by AQUA TERRA Consultants of Mountain View, CA, incorporating code modifications, corrections, and documentation of algorithm enhancements sponsored by the U.S. Geological Survey, the U.S. EPA Chesapeake Bay Program, the U.S. Army Corps of Engineers, the South Florida Water Management District, the Minnesota Pollution Control Agency, and the U.S. EPA Athens National Exposure Research Laboratory. The Version 12 manual and code were prepared under sponsorship of the EPA under Contract No. 68-C-01-037. The manual is available in Microsoft Word and Adobe Pdf formats as well as an HTML Help File.


Dedication

 In Memory of

Robert Carl Johanson, 1941-1998 "Father of HSPF"

Robert ('Rob') Carl Johanson, Professor of Civil Engineering at the University of the Pacific in Stockton, CA, was born in South Africa in 1941, and studied at the University of Natal in Durban and at Stanford University. He started as an assistant engineer with the Durban Harbour Engineer, and obtained his MSc (working with Bill James) in Engineering with distinction. Later Rob was affiliated with research groups at Stanford (with Professors Vennard, Linsley and Crawford), University of the Witwatersrand (Prof. Midgley) and the Computing Center for Water Resources at the University of Natal in Pietermaritzburg (Dr. Mark Dent). He became a US citizen and consulted widely.

From 1975 to 1981, while working at Hydrocomp, Inc., Rob was the Project Manager on the HSPF development effort for the U. S. EPA Environmental Research Laboratory in Athens, GA. In consultation with Drs. Norman Crawford and Delbert Franz, Rob developed the overall design of the HSPF code using the then-emerging technology of structured programming, an alien concept to most practicing civil engineers of the time. Through these efforts, he pioneered one of the first applications of this technology to the water resources field. He managed the project throughout its duration, implemented the code design, wrote many sections of the code and essentially reviewed each line of code, supervised the code and application testing, and wrote much of the user manual.

Due to his exacting attention to detail, his intense commitment to 'always get it right', and his belief in modeling technology, HSPF still stands today as the state-of-the-art in comprehensive watershed hydrology and water quality modeling. For more than two decades, with its initial release in 1980, HSPF has withstood the test of time, and the advancements of science in software, computer hardware, and environmental technology, largely due to Rob's dedicated and visionary efforts during its initial development. For all these reasons, Rob is known as the "Father of HSPF". This User Manual for Version 12 is dedicated to his memory from his friends, former colleagues, and the universe of HSPF users who have benefited from his industry.

Tony Donigian
AQUA TERRA Consultants


Purpose and Scope of the HSPF Software

 The use of models which simulate continuously the quantity/quality processes occurring in the hydrological cycle is increasing significantly. There has been a proliferation in the variety of models and in the range of processes they simulate. This has been a mixed blessing to the users. To get the benefits of simulation, a user must select a model from among several candidate models, and then spend much effort amassing and manipulating the large quantities of data which the model requires. If the modeler wishes to couple two or more subprocess models to simulate a complete process, he often encounters further difficulties. The underlying assumptions and/or structures of the subprocess models may make them somewhat incompatible. More frequently, the data structures are so different that coupling requires extensive data conversion work.

One reason for these problems is that the increase in modeling work has not included enough work on the development of good model structures. That is, very few software packages for water resource modeling are built on a systematic framework in which a variety of process modules can fit.

With HSPF, a major attempt was made to overcome these problems as far as possible. HSPF consists of a set of modules arranged in a hierarchical structure, which permit the continuous simulation of a comprehensive range of hydrologic and water quality processes. Common experience with sophisticated models suggests that much of the human effort is associated with data management. This fact, often overlooked by model builders, means that a successful comprehensive model must include a sound data management component. Otherwise, the user may become so entangled in data manipulation that progress on the simulation work is significantly impeded. Consequently, the HSPF software is planned around a time series data management system operating on direct access principles. The simulation modules draw input from time series storage files and are capable of writing output to them. Because these transfers require very few instructions from the user, the problems referred to above are minimized.

The system was designed so that the various simulation and utility modules can be invoked conveniently, either individually or in tandem. A top down approach emphasizing structured design was followed. Modules were separated according to function so that, as much as possible, they contained only those activities which are unique to them. Structured design has made the system relatively easy to extend, so that new modules can be added with relatively little disruption of the existing code.

In the initial development, the functions and processes included in HSPF were derived primarily from the following group of predecessor models:

  • Hydrocomp Simulation Programming (HSP) (Hydrocomp, Inc., 1976, 1977)
  • NonPoint Source (NPS) Model (Donigian and Crawford, 1976a)
  • Agricultural Runoff Management (ARM) Model (Donigian & Crawford, 1976b; Donigian et al., 1977)
  • Sediment and Radionuclides Transport (SERATRA) (Onishi and Wise, 1979)
The HSPF software is not merely a translation of the above models, but a new system with a framework designed to accommodate a variety of simulation modules. Many extensions were made to the above models in the course of restructuring them into the HSPF system.

HSPF has become a valuable tool for water resource planners. Because it is more comprehensive than most existing systems, it permits more effective planning. More specifically, the program can benefit the user in the following ways:

  1. The time-series-oriented direct access data system and its associated modules can serve as a convenient means of inputting, organizing, and updating the large files needed for continuous simulation.
  2. The unified structure of the model makes it relatively simple to operate. The user can select those modules and options that are needed in one run, and the system will ensure that the correct sets of code are invoked and that internal and external transfers of data are handled. This is achieved with a minimum of manual intervention. Input of control information is simplified because a consistent system is used for this data for all the modules.
  3. Because the system was carefully planned using top-down programming techniques, it is relatively easy to modify and extend. The use of uniform programming standards and conventions assisted in this respect.
  4. Since the underlying code is written almost entirely in ANSI standard Fortran, implementation on a variety of computers and Fortran compilers is possible.


Purpose and Organization of this Document

 This report contains the primary documentation of the HSPF system. It is designed to:
  1. introduce users to the principles and concepts on which the system is founded
  2. describe the technical foundations of the algorithms in the various application (simulation) modules
  3. describe the input which the user supplies to run the system
To meet these needs and, at the same time, to produce a document which is reasonably easy to use, this report is divided into several distinct parts, each with its own organization.

This first part contains introductory material.

The second part outlines the general principles on which the HSPF system is based. This includes a discussion of the "world view" which the simulation modules embody. A firm grasp of this material is necessary before the detailed material can be properly understood.

The third part documents the function of each part of the software. The organization of this part follows the layout of the software itself. The relationship between, and the functions of, the various modules are described, starting at the highest (most general) level and proceeding down to the lowest (most detailed) level. The algorithms used to simulate the quantity and quality processes which occur in watersheds are described in this part.

The fourth part describes the User's Control Input; that is, the information which the user must provide in order to run HSPF.

The Appendices include a glossary of terms and HSPF time series concepts.


Notice of User Responsibility

 This product has been carefully developed. Although the work included testing of the software, the ultimate responsibility for its use and for ensuring correctness of the results obtained, rests with the user.

The EPA and the developers of this software make no warranty of any kind with regard to this software and associated documentation, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. They shall not be liable for errors or for incidental or consequential damages in connection with the furnishing, performance or use of this material.

While we intend to correct any errors which users report, we are not obliged to do so. We reserve the right to make a reasonable charge for work which is performed for a specific user at his request.


Acknowledgments

 The original development of HSPF was sponsored by the Environmental Research Laboratory in Athens, Georgia. David Duttweiler was the laboratory director and Robert Swank the head of the Technology Development and Applications Branch, which supervised the project during the code development period. Mr. Jim Falco was the Project Officer initially on the HSPF development work; he was succeeded by Mr. Tom Barnwell, who oversaw HSPF activities for EPA from 1979 until 1995.

Much of the recent development of HSPF has been sponsored by the U.S. Geological Survey Water Resources Division in Reston, Virginia. Dr. Alan Lumb is the Contract Officer and directs that effort for the USGS.

The initial HSPF and user manual development work was performed by Hydrocomp, Inc.; members of the entire project team are acknowledged in the original (Release 5.0) version of the user manual (EPA Publication No. EPA-600/9-80-015) published in April 1980. Subsequent revisions and extensions to the HSPF code and user manual were performed by Anderson-Nichols & Co., Inc. and AQUA TERRA Consultants. The primary participants in the work noted above, and their contributions, are discussed below.

Robert Johanson was Project Manager for Hydrocomp on the initial development work, and provided consulting assistance to Anderson-Nichols & Co., Inc. and Linsley, Kraeger Associates on subsequent development and maintenance work.

John Imhoff had primary responsibility for the RCHRES water quality sections, both during the initial development work for Hydrocomp and subsequent modifications and development for Anderson-Nichols and AQUA TERRA.

Harley Davis designed, coded and documented much of the PERLND and IMPLND modules for Hydrocomp during the initial development effort.

Delbert Franz participated in the overall design of the system and supervised the work on the time series management system at Hydrocomp.

Jack Kittle performed or directed most HSPF software development activities between 1979 and 1990. His focus has been on the software structure, time series improvements, and addition of new components. He designed the MUTSIN (Multiple Timeseries Sequential Input) module, water categories in the RCHRES module, conditional Special Actions, major structural improvements to the software, and was responsible for production of Releases 7, 8 and 9. He continues to be a principal advisor in HSPF development and maintenance.

Tony Donigian participated in the design of the PERLND algorithms in the initial project at Hydrocomp. Since 1980, he has been the Principal Investigator/Project Manager, providing overall guidance and supervision, on all projects related to HSPF algorithm development, with particular focus on the improvements to the AGCHEM sections of the program.

Brian Bicknell has been involved in HSPF maintenance and software development since 1981. He has developed or directed all recent algorithm enhancements and software corrections. He added the WDM file interaction, the MASS-LINK and SCHEMATIC blocks, and the FILES block. He directed the development and documentation of Versions 10, 11, and 12, including major enhancements for simulating forest nitrogen, atmospheric deposition, the DSS file interface, and sediment-nutrient interactions and bed temperature interactions in RCHRES.

Tom Jobes has been the primary software engineer with day-to-day responsibility for HSPF development and maintenance since 1992. He implemented most of the enhancements and software corrections in Versions 10, 11, and 12, with particular responsibility for the DSS file interface, atmospheric deposition, forest nitrogen and plant uptake enhancements in AGCHEM, multiple WDM files, code structure improvements, conditional Special Actions, water categories, wetland capabilities in PERLND, the irrigation capabilities, the BMPRAC and REPORT modules, and the binary output capability.


General Principles
  • View of the Real World
    • General Concepts
    • Nodes, Zones, and Elements
    • Processing Units and Networks
  • Software Structure
    • Concept of an Operation
    • Time Series Storage
    • Time Series Management for an Operation
    • HSPF Software Hierarchy
  • Structure of a Job
    • Elements of a Job
    • Groups Of Operations
  • ConventionsFD
  • Structure of Data in Memory
  • Structure of Data in Disk Files
  • Diagnostic Messages


View of the Real World
  • General Concepts
  • Nodes, Zones, and Elements
  • Processing Units and Networks


General Concepts

 To design a comprehensive simulation system, one must have a consistent means of representing the prototype; in this case, a watershed. We view it as a set of constituents which move through a fixed environment and interact with each other. Water is one constituent; others are sediment, chemicals, etc. The motions and interactions are called processes.


Nodes, Zones, and Elements

 The prototype is a continuum of constituents and processes. Simulation of such a system on a computer requires representation in a discrete fashion. In general, this is done by subdividing the prototype into "elements" which consist of "nodes" and "zones."

A node corresponds to a point in space. Therefore, a particular value of a spatially variable function can be associated with it, for example, channel flow rate and/or flow cross sectional area. A zone corresponds to a finite portion of the real world. It is usually associated with the integral of a spatially variable quantity, for example, storage in a channel reach. The zone is the smallest unit into which the world is subdivided. The relationship between zonal and nodal values is similar to that between the definite integral of a function and its values at the limits of integration.

An element is a collection of nodes and/or zones. Figure 1 illustrates these concepts. In HSPF, the response of the land phase of the hydrologic cycle is simulated using elements called "segments." A segment is a portion of the land assumed to have areally uniform properties. A segment of land with a pervious surface is called a "Pervious Land-segment" (PLS). Constituents in a PLS are represented as resident in a set of zones (Fig. 1a). A PLS has no nodes. As a further example, consider the formulation of channel routing. A channel reach is modeled as a one dimensional element consisting of a single zone situated between two nodes (Fig. 1b). Flow rate and depth are simulated at the nodes; the zone is associated with storage.

The conventions of the finite element technique also fall within the scope of these concepts. Figure 1c shows a two dimensional finite element used in the simulation of an estuary. Three nodes define the boundaries of the triangular element. A fourth node, situated inside, may be viewed as subdividing the element into three zones. This last type of element is not presently used in any HSPF module, but is included in this discussion to show the generality provided by HSPF. The system can accommodate a wide variety of simulation modules.

Nodes, zones, and elements

There are no fixed rules governing the grouping of zones and nodes to form elements. The model builder must decide what grouping is reasonable and meaningful, based on his view of the real world processes being simulated. In general, it is convenient to define elements so that a large portion of the real world can be represented by a collection of conceptually identical elements. In this way, a single parameter structure can be defined which applies to every element in the group. Thus, each element is a variation on the basic theme. It is then meaningful to speak of an "element type." For example, elements of type "PLS" all embody the same arrangement of nodes and are represented by sets of parameters with identical structure. Variations between segments are represented only by variations in the values of parameters. The same applies to any other element, such as a Reach, layered lake or a triangular finite element.

As illustrated in the above discussion, nodes are often used to define the boundaries of zones and elements. A zone, characterized by storage, receives inflows and disperses outflows; these are called "fluxes." Note that if the nodal values of a field variable are known, it is often possible to compute the zonal values (storages). The reverse process does not work.


Processing Units and Networks

 To simulate a prototype, we must handle the processes occurring within the elements and the transfer of information and constituents between them. The simulation of large prototypes is made convenient by designing a single "application module" for a given type of element or element group, and applying it repetitively to all similar members in the system. For example, the RCHRES module may be used to simulate all the reaches in a watershed using storage routing. This approach is most efficient computationally if one element or group of elements, called a "processing unit" (PU), is simulated for an extended period of time before switching to the next one. To permit this, we must be able to define a processing sequence such that all information required by any PU comes from sources external to the system or from PU's already simulated. This can only happen if the PU's and their connecting fluxes form one or more networks which are "directed graphs." In a directed graph there are no bi-directional paths and no cycles.

Directed and Non-directed graphs

The requirement that PU's form directed graphs provides the rule for grouping elements into PU's. Any elements interacting with each other via loops or bi-directional fluxes must be grouped into a single PU because none of them can be simulated apart from the others.

Thus, we can have both single element and multi-element PU's. A PLS is an example of the former and a channel network simulated using the full equations of flow exemplifies the latter. A multi-element PU is also known as a "feedback region." The collection of PU's which are simulated in a given run is called a "network."

The processes which occur within a PU are represented mathematically in an "application model." The corresponding computer code in HSPF is called an "application module" or "simulation module."

Single- and multi-element processing units


Software Structure
  • Concept of an Operation
  • Time Series Storage
  • Time Series Management for an Operation
  • HSPF Software Hierarchy


Concept of an Operation

 A great variety of activities are performed by HSPF; for example, input a time series to the WDM file, find the cross correlation coefficient for two time series, or simulate the processes in a land segment. They all incorporate two or more of the following functions: get a set of time series, operate on the set of input time series to produce other time series, and output the resulting time series. This applies both to application modules (discussed in Processing Units and Networks) and to utility modules, which perform operations ancillary or incidental to simulation. Thus, a simulation run may be viewed as a set of operations performed in sequence. All operations have the following structure:

                                 SUPERVISE
                                 OPERATIONS
                             (subroutine OSUPER)
                                     |
                    +----------------+-----------------+
                    |                |                 |
                GET TIME          OPERATE          PUT TIME
                 SERIES           (utility          SERIES
            (subroutine group        or        (subroutine group
                  TSGET)        application          TSPUT)
                                  module)
The OPERATE function is the central activity in the operation. This work is done by an "operating module" and its subordinate subprograms. They operate for a specified time on a given set of input time series and produce a specified set of output time series, under control of the "operations supervisor" (OSUPER). All of the pieces of time series involved in this internal operation have the same time interval and time duration. They are therefore viewed as written on an "internal scratch pad" (INPAD), resident in the memory of the computer (Figure 4). The operating module receives the scratch pad with some rows filled with input, and, after its work is done, returns control to the supervisor with another set of rows filled with output. The operating module may overwrite an input row with its own output. The computing module being executed, together with the options being invoked, will determine the number of rows required in the INPAD. For example, simulation of the hydraulic behavior of a stream requires relatively few time series (e.g., inflow, depth and outflow), but the inclusion of water quality simulation adds many more time series to the list. The total quantity of memory space available for storage of time series is also fixed (specified in a COMMON block) by the options in effect; this is the size (area) of the INPAD. Since both the size (N*M) and number of rows (M) in the INPAD are known, the "width" (number of intervals, N) can be found. The corresponding physical time is called the "internal scratch pad span (INSPAN)."

Logical structure of the internal scratch pad

The "get time series" function prepares the input time series. This work is done by a subroutine group called TSGET. It obtains the correct piece of a time series from the appropriate file, aggregates or disaggregates it to the correct time interval, multiplies the values by a user-specified constant (if required), and places the data in the required row of the internal scratch pad. Subroutine group TSPUT performs the reverse set of operations. TSGET and TSPUT are sometimes bypassed if a required time series is already in the INPAD when the operation is started, or if the output is being passed to the next operation via the internal scratch pad.


Time Series Storage

 The time series used and produced by an operation can reside in five types of storage.
  1. The Watershed Data Management (WDM) File

    The WDM file is the principal library for storage of time series. As far as the computer's operating system is concerned, it consists of a single, large, direct-access file. This space is subdivided into many data sets containing individual time series. Each is logically self-contained but may be physically scattered through the file. A directory keeps track of data sets and their attributes. Before time series are written to the WDM file, the file and its directory must be created using a WDM file utility program such as WDMUtil or ANNIE. These programs are documented separately.

  2. The Hydrologic Engineering Center Data Storage System (DSS) File

    The DSS is the primary hydrologic data storage system of the U.S. Army Engineers Hydrologic Engineering Center (HEC). It is similar in design and function to the WDM file. A DSS file consists of a single, large, direct-access file containing many individual data sets that are identified by unique identifiers called "pathnames". A pathname is a string of characters from 5 to 80 characters long, and similar in construction to a file pathname on computer disk. Creation and maintenance of DSS files is typically performed by a utility program such as DSSUTL, which is documented separately.

  3. Sequential Files

    SEQuential files are ASCII, formatted disk files with a constant logical record length. Time series received from agencies such as the National Weather Service are typically stored in sequential files. Sequential files provide input to HSPF; they are not available for output.

  4. PLTGEN Files

    PLTGEN files are ASCII, formatted disk files that are produced (i.e., time series are output to the file) by the utility module PLTGEN. Up to 20 time series can be written to a single PLTGEN file. Time series can be input to HSPF from a PLTGEN file by using the MUTSIN utility module.

  5. Internal Scratch Pad (INPAD)

    If two or more operations performed in sequence use the same internal time step, time series may be passed between them via the INPAD. Successive operations may simply pick up the data written by the previous ones, without any external (disk) transfer taking place. This is typically done when time series representing the flow of water (and constituents) are routed from one stream reach to the one next downstream.


Time Series Management for an Operation

 Any operation involves a subset of the activities shown in Figure 5 in the next section. The operating module expects a certain set of time series in the INPAD. The operations supervisor, acting under user control, ensures that the appropriate input time series are loaded from whichever source has been selected, and informs the computing module of the rows in the INPAD where it will find its input. Similar arrangements hold for output of time series.


HSPF Software Hierarchy

 The hierarchy of functions in HSPF is shown in Figure 6. Some explanatory notes follow.

The "Run Interpreter" is the group of subprograms which reads and interprets the "Users Control Input." It sets up internal information instructing the system regarding the sequence of operations to be performed. It stores the initial conditions and the parameters for each operation in the appropriate file on disk and creates an instruction file which will ensure that time series are correctly passed between operations, where necessary.

The "Operations Supervisor" is a subroutine which acts on information provided by the Run Interpreter, invoking the appropriate application or utility modules. It provides them with the correct values for parameters and state variables by reading the files created by the Run Interpreter.

Operating modules are either application modules or utility modules. They perform the operations which make up a run. Each time one of these modules is called, an operation is performed for a period corresponding to the span of the internal scratch pad (INSPAN). The Operations Supervisor ensures that the correct module is invoked.

"Service subprograms" perform tasks such as reading from and writing to time series storage areas, adding T minutes to a given date and time, to get a new date and time, etc.

The "Time Series Management System" (TSMS) consists of all the modules which are only concerned with manipulation of time series or the files used to store time series. It includes the WDM and DSS management functions, and TSGET and TSPUT.

Activities involved in an operation

Overview of HSPF software


Structure of a Job
  • Elements of a Job
  • Groups Of Operations


Elements of a Job

 A "JOB" is the work performed by HSPF in response to a complete set of Users Control Input. It consists of one or more "RUNs". A RUN is a set of operations which can be performed serially, and which all cover the same period of time. The operations are performed in a sequence specified in the Users Control Input.


Groups Of Operations

 In most runs, time series have to be passed between operations. As described earlier in Time Series Storage, each operation can communicate with four different time series storage areas: the WDM file, DSS file, the INPAD, and sequential (SEQ) files. This is illustrated in Figure 7.

Potentially, any time series required by or output by any operation can be stored in the WDM file, DSS file, or a sequential file. The user simply specifies the exact origin or destination for the time series, and the HSPF system moves the data between that device and the appropriate row of the INPAD.

To transfer data via the INPAD, operations must share the same pad. This means that all time series placed in the pad have the same time interval and span. This requirement provides a logical basis for grouping operations; those sharing a common INPAD are called an INGRP. The user specifies the presence of groups in the "Users Control Input (UCI)." A typical sequence of input is shown at the end of this section.

The user also indicates (directly or indirectly) in the UCI the source and disposition of all time series required by or output by an operation. If the user indicates that a time series must be passed to another operation then the system assumes that the transfer will be made via the scratch pad. If they are not in the same INGRP there is an error. Without a common INPAD, the data must go via the WDM or DSS file.

Schematic of data flow and storage for a single run

The sequence of events in a run is as follows (refer to figure above).

a. Operation 1 is performed until its output rows in the INPAD are filled.

b. Data are transferred from those rows to other time series storage areas, as required. If any of these data are not required by other operations in INGRP1, their INPAD rows are available for re-use by other operations in INGRP1.

c. Steps (a) and (b) are repeated for each operation in INGRP1.

d. Steps (a), (b), and (c) are repeated, if necessary, until the run span is complete.

e. The INPAD is reconfigured and work on operations 5 through 11 proceeds as in steps (a-d) above. The step repeats until all INGRP's have been handled. The run is now complete.

Note that reconfiguration of a scratch pad implies that its contents will be overwritten.

      OPN SEQUENCE
          INGRP                  INDELT = 00:30
            COPY     1
            PERLND   1
          END INGRP
            PERLND   2           INDELT = 00:30
            PERLND   3           INDELT = 00:20
          INGRP                  INDELT = 00:30
            COPY     2
            RCHRES   1
            RCHRES   3
            RCHRES   5
            RCHRES  20
            RCHRES  22
            RCHRES  23
            RCHRES   7
            RCHRES   8
            RCHRES  50
            RCHRES 100
            RCHRES 200
          END INGRP
          INGRP                  INDELT = 00:10
            DURANL   1
            PLTGEN   1
          END INGRP
      END OPN SEQUENCE
Extract from typical Users Control Input, showing how grouping of operations is specified


Conventions Used in Functional Description

 The primary purpose of the Functional Description is:
  1. to describe the functions performed by the various subprograms
  2. to explain the technical algorithms and equations that are implemented in the code.
Subprograms are described in numerical order in the text. This system provides a logical progression for the descriptions. General comments regarding a group of subprograms can be made when the upper level subprogram is described, while details specific to an individual subordinate subprogram can be deferred until that part is described. For example, a general description of the PERLND module is followed by more detailed descriptions of its twelve sections, ATEMP through TRACER.


Structure of Data in Memory

 The way in which we arrange the variables used in our programs is important. They are structured, as far as possible, using techniques like those used in Structured Program Design. Data items that logically belong together are grouped together.

Most of the variables in an Operating Module are documented in the Operation Status Vector (OSV). The OSVs for the application modules are shown in the supplementary document: HSPF Data Structures for Version 12 (AQUA TERRA Consultants, 2000).


Structure of Data in Disk Files

 The HSPF system makes use of four different types of disk-based data files:
  1. Watershed Data Management (WDM) file and HEC Data Storage System (DSS) files are binary files that contain multiple time series data sets that are used for input and output.
  2. PLTGEN files are ASCII (text) files that contain up to 20 time series. These files can provide input to HSPF through use of the Utility module MUTSIN, and are used as output files by the Utility Module PLTGEN.
  3. SEQuential files are ASCII (text) files that allow input of time series data to HSPF. SEQuntial file formats are available for six specific time intervals.
  4. The message/information file (HSPFMSG.WDM), is a read-only, binary file that contains information used by the program, such as keyword names, input formats, parameter defaults and limits, and error/warning messages.


Method of Handling Diagnostic Messages

 HSPF makes use of two kinds of diagnostic messages; error messages and warnings, which are printed in the Run Interpreter Output file during both the Run Interpretation and simulation phases of a run. The basic text of these messages are all stored on the "message/information" file: HSPFMSG.WDM. This system for storing the messages has at least two advantages:
  1. Because the messages are not embedded in the Fortran source code, they do not normally occupy any memory. This reduces the length of the executable code.
  2. The files are easier to maintain than if the messages were embedded in the code. A user can obtain a listing of the contents by "exporting" data sets from the message WDM file using the ANNIE program's Archive function or the standalone utility WDIMEX.
Each message has been given a "maximum count". If the count for a message reaches this value, HSPF informs the user of the fact. Then:
  1. If it is an error message, HSPF quits.
  2. If it is a warning, HSPF continues but suppresses any future printing of this message.
In addition to the above features, the Run Interpreter has been designed to:
  1. Stop if 20 errors of any kind have been detected. This gives the user a reasonable number of messages to work on, but avoids producing huge quantities of error messages, many of which may be spurious (for example, if the code could not recover from early error conditions).
  2. Stop at the end of its work if any errors have been detected by it. Therefore, the program will not enter any time-consuming loop if the Run Interpreter has found any errors in the User's Control Input.


Functional Description
  • MAIN Program
  • Interpret a RUN Data Set in the User's Control Input
  • Supervise and Perform Operations
    • Perform Special Actions - SPECL
    • Get Required Input Time Series - TSGET
    • Perform an Operation
    • Pervious Land Segment - PERLND
      • Air Temperature Elevation Difference - ATEMP
      • Accumulation and Melting of Snow and Ice - SNOW
        • Meteorological Conditions - METEOR
        • Precipitation on the Pack - EFFPRC
        • Compact the Pack - COMPAC
        • Evaporation from the Pack - SNOWEV
        • Estimate Heat Exchange Rates - HEXCHR
        • Temperature Index Calculations - DEGDAY
        • Loss of Heat from Pack - COOLER
        • Warm the Snowpack - WARMUP
        • Melt the Pack Using Remaining Heat - MELTER
        • Liquid Water in Pack - LIQUID
        • Occurrence of Ice in Pack - ICING
        • Melt the Pack Using Heat from the Ground - GMELT
        • Reset When Snowpack Disappears - NOPACK
      • Water Budget Pervious - PWATER
        • Interception - ICEPT
        • Distribute Water Available for Infiltration and Runoff - SURFAC
          • Dispose of Moisture Supply - DISPOS
            • Inflow to Upper Zone - UZINF
            • Surface Runoff - PROUTE
        • Interflow - INTFLW
        • Upper Zone Behavior - UZONE
        • Lower Zone Behavior - LZONE
        • Groundwater Behavior - GWATER
        • Evapotranspiration - EVAPT
        • Water Budget Pervious, High Water Table, Low Gradient
        • Irrigation
      • Production and Removal of Sediment - SEDMNT
        • Detach Soil By Rainfall - DETACH
        • Remove by Surface Flow - SOSED1
        • Remove by Surface Flow - SOSED2
        • Re-attachment of Detached Sediment - ATTACH
      • Soil Temperatures - PSTEMP
      • Water Temperature and Dissolved Gas Concentrations - PWTGAS
        • Lateral inflows
      • Quality Constituents Using Simple Relationships - PQUAL
        • Remove by Association with Sediment - QUALSD
        • Accumulate and Remove by a Constant Unit Rate and by Overland Flow - QUALOF
        • Association with Interflow Outflow - QUALIF
        • Association with Active Groundwater Outflow - QUALGW
      • Moisture Content of Soil Layers - MSTLAY
      • Pesticide Behavior - PEST
        • Reactions on Pesticides - PSTRXN
          • First-Order Kinetics - FIRORD
          • Single Value Freundlich Method - SV
          • Non-single Value Freundlich Method - NONSV
      • Nitrogen Behavior - NITR
        • Reactions on Nitrogen Forms - NITRXN
      • Phosphorous Behavior - PHOS
      • Movement of a Tracer - TRACER
    • Impervious Land Segment - IMPLND
      • Water Budget Impervious - IWATER
        • How Much Moisture Runs Off - IROUTE
      • Accumulation and Removal of Solids - SOLIDS
        • Washoff Solids - SOSLD1
        • Washoff Solids - SOSLD2
        • Accumulate and Remove Solids Independently of Runoff - ACCUM
      • Water Temperature and Dissolved Gas Concentrations - IWTGAS
      • Washoff of Quality Constituents Using Simple Relationships - IQUAL
        • Remove by Association with Solids - WASHSD
        • Accumulate and Remove by Constant Unit Rate and Overland Flow - WASHOF
    • Free-flowing Reach or Mixed Reservoir - RCHRES
      • Sinking of Suspended Material - SINK
      • Hydraulic Behavior - HYDR
        • Outflows Using Hydraulic Routing - ROUTE
          • Find Outflow Demands Corresponding to Row in RCHTAB - DEMAND
          • Solve Routing Equations - SOLVE
        • Outflows Without Using Hydraulic Routing - NOROUT
        • Values of Auxiliary State Variables - AUXIL
        • Bed Shear Stress and Shear Velocity - SHEAR
      • Prepare to Simulate Advection of Fully Entrained Constituents - ADCALC
      • Conservative Constituents - CONS
        • Advection of Constituent Totally Entrained in Water - ADVECT
      • Heat Exchange and Water Temperature - HTRCH
        • Air Temperature Elevation Difference - RATEMP
      • Behavior of Inorganic Sediment - SEDTRN
        • Cohesive Sediments - COHESV
          • Exchange with Bed - BDEXCH
        • Behavior of Sand_Gravel - SANDLD
          • Sand Transport Capacity Using Toffaleti's Method - TOFFAL
          • Sand Transport Capacity Using Colby's Method - COLBY
      • Generalized Quality Constituent - GQUAL
        • Decay of Dissolved Material - DDECAY
        • Advection of Material on Sediment - ADVQAL
        • Decay of Adsorbed Material - ADECAY
        • Adsorption/Desorption of a Generalized Quality Constituent - ADSDES
      • Constituents Involved in Biochemical Transformations - RQUAL
        • Primary DO and BOD Balances - OXRX
          • Benthal Oxygen Demand and Benthal Release of BOD - OXBEN
          • Oxygen Reaeration Coefficient - OXREA
          • BOD Decay - BODDEC
        • Primary Inorganic Nitrogen and Phosphorus Balances - NUTRX
          • Benthal Release of Constituents - BENTH
          • Nitrification - NITRIF
          • Denitrification - DENIT
          • Adsorption/Desorption of Ammonia and Orthophosphorus - ADDSNU
          • Advection and Deposition/Scour of Adsorbed Ammonia and Orthophosphorus - ADVNUT
          • Ionization of Ammonia to Ammonium - AMMION
          • Ammonia Volatilization - NH3VOL
          • Materials Balance for Transformation from Organic to Inorganic - DECBAL
        • Simulate Plankton Populations and Associated Reactions - PLANK
          • Advect Plankton - ADVPLK
          • Light-related Information for Algal Simulation - LITRCH
          • Phytoplankton - PHYRX
            • Unit Growth and Respiration Rates for Algae - ALGRO
            • Nutrients Required for Computed Growth - GROCHK
            • Phytoplankton Death - PHYDTH
            • Materials Balance for Transformation from Living to Dead Organic - ORGBAL
            • Materials Balance for Transformation from Inorganic to Organic - NUTRUP
          • Zooplankton - ZORX
          • Benthic Algae - BALRX
            • Benthic Algae Death - BALDTH
        • pH, Carbon Dioxide, Total Inorganic Carbon, and Alkalinity - PHCARB
          • Calculate pH - PHCALC
    • Copy Time Series - COPY
    • Output Time Series to a List File - PLTGEN
    • Display Time Series in a Tabular Format - DISPLY
    • Duration Analysis on a Time Series - DURANL
    • Generate a Time Series from One or Two Other Time Series - GENER
    • Multiple Sequential Input of Time Series from an HSPF PLTGEN File - MUTSIN
    • Best Management Practice Evaluation - BMPRAC
    • Summary Report - REPORT
      • User-Defined Format Input File
      • Looping
      • Special Format for transfer to external database or spreadsheet
    • Module TSPUT
  • REFERENCES


MAIN Program

The MAIN program calls, directly or indirectly, all the other modules in the system. The functions performed are:

  1. Preprocess the Users Control Input (UCI). Subroutine USRRDR transfers the UCI to memory, sets up a pointer system to non-comment lines, and recognizes input set headings and delimiters: RUN, END RUN.
  2. If a RUN input set has been found, call subroutine INTERP to interpret it and then call OSUPER to supervise execution of it.

Keywords:


Interpret a RUN Data Set in the User's Control Input

 (Module INTERP)

General Description of Module INTERP

This module, known as the Run Interpreter, translates a RUN data set in the User's Control Input into many elementary instructions, for later use by other parts of the system, when the time series are operated on. To do this, the Run Interpreter performs such tasks as:

  1. Check and augment the data supplied by the user.
  2. Decide which time series will be required and produced by each operation, based on the user's data and built-in tables which contain information on the various operations.
  3. Allocate INPAD rows to the various time series.
  4. Read the control data, parameters, and initial conditions supplied for each operation, convert them to internal units, and supply default values where required.

The output of the Run Interpreter is stored in memory arrays containing instructions to be read by the Operations Supervisor, TSGET and TSPUT. The instruction arrays contain the following information:

Functions and data transfers involved in the operations portion of HSPF

  1. The Operations Supervisor Instructions Array. This array contains instructions which the Operations Supervisor reads to manage the operations in a run. This includes information on:

    1. the configuration of the scratch pads (time intervals and widths)
    2. the configuration of the INGROUPs, such as the number of INGROUPs, operations in each INGROUP, etc.
  2. The Operation Status Vector Array. The operations in a run are interrupted every time an INPAD span is completed. To save computer memory, the system is designed so that the various operations all use the same area of memory. This requires that upon interruption of an operation, all information necessary to restart an operation be stored in a disk file or another memory area. The data, called the "Operation Status Vector" (OSV), reside in a string of contiguous locations in memory and have a structure specified in the supplementary document "Data Structures for HSPF Version 12" (AQUA TERRA, 2000). The array OSVMEM contains an exact copy of the OSV for each operation. It is used to restore the OSV in the common memory area when the operation is resumed after interruption.
  3. The Time Series Instruction Array (TSGPM). This array contains instructions which govern the transfer of pieces of time series into and out of the INPAD. Each Get instruction enables module TSGET to retrieve a specified piece of time series from one of the source volumes, transform it to the interval and form required for the INPAD, and insert it in the desired row of the INPAD. For Put instructions, the sequence is the reverse of that just described.

    Each operation has its own set of Get and Put instructions in TSGPM which are read whenever modules TSGET and TSPUT are called upon to service that operation (every INSPAN).

  4. The Special Action Instruction Array (SPINS). Each record of this array contains a special action instruction, which specifies the action required to be taken in a given operation at a specific time, e.g., report operation state, modify a state variable. In some cases, that action may be repeated several times, or even every interval of the run.


Supervise and Perform Operations

 (module OSUPER)

Function of Operations Group

The Operations group of modules handles all the manipulations of time series and thus, performs most of the work in a run. Subroutine OSUPER controls the group. It performs some of the tasks itself, but it invokes subordinate modules to do other tasks.

General Description of Subroutine OSUPER

The primary tasks of subroutine OSUPER are to ensure that the various operations in the run are called in the correct sequence and that the associated time series and OSVs are input and/or output at the required junctures (see Groups Of Operations). OSUPER uses a nest of DO-loops to control the sequencing. The instruction array OSUPM specifies the ranges of the loops and supplies information ("keys") which enable OSUPER, TSGET and TSPUT to correctly access the other instruction arrays. OSUPER reads an instruction each time an operation starts a new INSPAN. Using this information, it then:

  1. calls TSGET, to supply the required input time series
  2. reads the OSV from disk or memory storage
  3. calls the operating module

When the INSPAN is over, OSUPER:

  1. writes the OSV to disk or memory storage
  2. calls TSPUT, to output time series
Use of OSUPER to Interact with Groundwater Model MODFLOW in the Integrated Hydrologic Model

OSUPER includes the capability to interact with the groundwater model MODFLOW as part of the Integrated Hydrologic Model (IHM) (Ross et al., 2004). During the run interpretation, a routine (HSPF_INI) is called which passes HSPF start-up information and binary output file names to the IHM driver program, and receives the number of timesteps to execute during each INSPAN. During execution, a routine (EXE_UPDATE) is called at each INSPAN, which interacts with the IHM driver program, pauses HSPF, reads updated information produced by IHM operations on MODFLOW output, and updates the OSV's of various operations.


Perform Special Actions - SPECL

 (Subroutine SPECL)

HSPF permits the user to perform certain "Special Actions" during the course of a run. A special action instruction specifies the following:

  1. The operation on which the action is to be performed (e.g., PERLND 10)
  2. The date/time at which the action is to be taken.
  3. The variable name and element (if the variable is an array) to be updated.
  4. The action to be performed. The most common actions are to reset the variable to a specified value and to increment the variable by a specified value, but a variety of mathematical functions are available.

The special action facility is used to accommodate things such as:

  1. Human intervention in a watershed. Events such as plowing, cultivation, fertilizer and pesticide application, and harvesting are simulated in this way.
  2. Changes to parameters. For example, a user may wish to alter the value of a parameter for which 12 monthly values cannot be supplied. This can be done by specifying a special action for that variable. The parameter could be reset to its original value by specifying another special action, to be taken at a later time.

Special Actions can be performed on variables in the PERLND, IMPLND, RCHRES, COPY, PLTGEN, GENER, and BMP modules. The input is documented in Users Control Input, SPEC-ACTIONS Block.


Get Required Input Time Series - TSGET

 (module TSGET)

The task of this module is to insert in the INPAD all input time series required by an operation. OSUPER calls it each time an operation is to commence an INSPAN, passing to it the keys of the first and last records in the TSGET instruction array which must be read and acted upon. Each instruction causes a row of the INPAD to be filled. TSGET can draw its input time series from any of the following source "volumes": WDM file, DSS file, sequential file and INPAD.

TSGET will, if necessary, automatically transform the time interval and "kind" (Appendix II) of the time series, as it is transferred from the source location to the INPAD (target). TSGET can also perform a linear transformation on the values in a time series; for example, if the source contains temperatures in degrees C and the INPAD needs them in degrees F.


Perform an Operation

Function of an Operating Module

An operating module is at the center of every operation ( Concept of an Operation). When the Operations Supervisor calls an operating module the time series which it requires are already in the INPAD. The task of the operating module is to operate on these input time series. The results of this work are:

  1. updated state variables. The operating module constantly updates any state variables. These are located in the OSV. Thus, when the operating module returns control to the Operations Supervisor, which copies the OSV to disk or memory storage area, the latest values of all state variables are automatically preserved.
  2. printed output. The operating module accumulates values, formats them and routes these data to the output files.
  3. output time series. The operating module places these in the INPAD, but is not concerned with their ultimate disposition; this is handled by module TSPUT.

Note that all time series simultaneously present in an INPAD have the same constant time interval. This implies that, internally, all time series involved in an operation have the same time interval. Externally, the time series may have differing time intervals. Part of the function of modules TSGET and TSPUT is to convert time series from external to internal time intervals and vice versa.

Sub-divisions in an Operating Module

An operating module may be divided into several distinct sections, each of which may be selectively activated in a given run, under the user's control, e.g., the Pervious Land-segment module (PERLND) contains twelve sections, the first being air temperature correction, and the last is tracer (conservative substance) simulation. The operating procedure is as follows: in each time interval of the INSPAN, the operating module calls each of its active sections in the order in which they are built into the code (the sequence can not be altered by the user). When the INSPAN has been covered, the operating module returns control to OSUPER which determines the next action to be taken. This procedure implies that an operating module must be arranged so that a section is called after any others from which it requires information. For example, in the Pervious Land-segment module, the sediment calculation section may use data computed by the snow and water balance sections, but not by sections listed after sediment.

Partitioning of an Operation

A user may activate one group of module sections in an initial run and other groups in subsequent runs. Thus, it is possible to "partition" an operation. For example, it is possible to calibrate the hydraulic response of a set of river reaches before moving on to simulate the behavior of constituents contained in the water without having to re-run the hydrology. Since this type of work involves transfers of results between the sections handled in different runs, it follows that:

  1. The time series involved must be stored between runs, usually in the WDM file.
  2. In the second run the system will expect the user to specify external sources for all of these time series.

With the increasing processing power available in recent years, partitioning has become uncommon, since the decrease in simulation time is now relatively small.

Numbering of Operating Modules

In principle, there is no limit to the number of operating modules which the system can accommodate. Although the size and complexity of the modules vary greatly, they all are, logically, of equal rank (Figure "Overview of HSPF software" in General Principles, Software Structure, HSPF Software Hierarchy).

Inserting Additional Operating Modules

A programmer may insert additional modules. This requires the following tasks:

  1. Write or adapt the operating module. This includes restructuring the data into an OSV which conforms with the requirements of the HSPF system.
  2. Add a section of code to the Run Interpreter to interpret the UCI for the new module.
  3. Add data to the message/information file (HSPFMSG.WDM).
  4. Make minor changes to subroutines OPNBLK and OSUPER.

Types of Operating Modules

There are two general types of operating modules; utility modules and application modules. Utility modules perform any operations involving time series which are essentially auxiliary to application operations, e.g., input time series data from ASCII formatted files to the WDM file using COPY, multiply two time series together to obtain a third one using GENER, or send time series of results to create a REPORT. Application (simulation) modules represent processes, or groups of processes, which occur in the real world.


Pervious Land Segment - PERLND

 (Module PERLND)

A land segment is a subdivision of the simulated watershed. The boundaries are established according to the user's needs, but generally, a segment is defined as an area with similar hydrologic characteristics. For modeling purposes, water, sediment, and water quality constituents leaving the watershed move laterally to a downslope segment or to a reach/reservoir. A segment of land which has the capacity to allow enough infiltration to influence the water budget is considered pervious. In HSPF, PERLND is the module that simulates the water quality and quantity processes which occur on a pervious land segment.

The primary module sections in PERLND simulate snow accumulation and melt (Section SNOW), the water budget (section PWATER), sediment produced by land surface erosion (section SEDMNT), and water quality constituents by various methods (section PQUAL and the agri-chemical sections). Other sections perform the auxiliary functions of correcting air temperature (section ATEMP) for use in snowmelt and soil temperature calculations, producing soil temperatures (section PSTEMP) for estimating the outflow temperatures and influencing reaction rates in the agri-chemical sections, and determining outflow temperatures which influence the solubility of oxygen and carbon dioxide. The structure chart for the PERLND module below shows these sections and their relationships to each other and to PPTOT, PBAROT, and PPRINT. These last three sections manipulate the data produced. Section PPTOT places state variables (point values) and PBAROT places flux variables which are actually averages over the interval (mean values) into the INPAD. PPRINT produces the printable results in the quantity and frequency that the user specifies. The sections in the structure chart are executed from left to right.

Structure chart for PERLND Module


Air Temperature Elevation Difference - ATEMP

 (Section ATEMP of Modules PERLND and IMPLND)

Purpose

The purpose of ATEMP is to modify the input air temperature to represent the mean air temperature over the land segment. This module section is used by both PERLND and IMPLND. Air temperature correction is needed when the elevation of the land segment is significantly different than the elevation at the temperature gage. If no correction for elevation is needed, this module section can be skipped.

Method

The lapse rate for air temperature is dependent upon precipitation during the time interval. If precipitation occurs, a wet lapse rate of 0.0035 degrees F per foot difference in elevation is assumed. Otherwise, a dry lapse rate, that varies with the time of day, is used. A table of 24 hourly dry lapse rates varying between 0.0035 to 0.005 is built into the system. A different, user-defined lapse rate may be implemented by modifying the HSPF message/information file (HSPFMSG.WDM). The corrected air temperature is:

     AIRTMP = GATMP - LAPS*ELDAT                                       (1)

where:
     AIRTMP = corrected air temperature (degrees F)
     GATMP  = air temperature at gage (degrees F)
     LAPS   = lapse rate (degrees F/ft)
     ELDAT  = elevation difference between the land segment and the
              gage (ft)


Accumulation and Melting of Snow and Ice - SNOW

 (section SNOW of modules PERLND and IMPLND)

Purpose

SNOW deals with the runoff derived from the fall, accumulation, and melt of snow. This is a necessary part of any complete hydrologic package since much of the runoff, especially in the northern half of the United States, is derived from snow conditions.

Approach

Two options are available to model the processes involved in snow accumulation and melt on a land segment. The first method is an energy balance approach based on the work by the Corps of Engineers (1956), Anderson and Crawford (1964), and Anderson (1968). Empirical relationships are employed when physical ones are not well known. The snow algorithms use meteorologic data to determine whether precipitation is rain or snow, to simulate an energy balance for the snowpack, and to determine the effect of the heat fluxes on the snowpack. Figure "Snow accumulation and melt processes" illustrates the processes used in this method.

The second (optional) snowmelt method uses a temperature index, or "degree-day" approach. Most processes from the original method are maintained, while the snowmelt due to atmospheric heat exchange is calculated using the air temperature and an empirical degree-day factor. This approach minimizes the requirements for meteorologic data to precipitation and air temperature. The reader is referred to Rango and Martinec (1995) for a summary of the degree-day method.

Six meteorologic time series may be required by SNOW for each land segment simulated, depending on the option chosen. They are:

    Meteorologic quantity   Energy balance    Temperature index
    precipitation           required          required
    air temperature         required          required
    solar radiation         required          not used
    dewpoint                required          optional
    wind velocity           required          not used
    cloud cover             optional          not used

A value from each of these time series is input to SNOW at the start of each simulation interval. However, some of the meteorological time series are only used intermittently for calculating rates, such as in the calculation of the potential rate of evaporation from the snowpack.

Air temperature is used to determine whether precipitation is falling as rain or as snow. The critical temperature TSNOW may be adjusted upward by up to one degree in unsaturated conditions, based on the dewpoint. This adjustment is optional when using the temperature index method, and is made only if the input dewpoint time series is supplied to the PLS.

Snow accumulation and melt processes

Once snow begins to accumulate on the ground, the snowpack accumulation and melt calculations take place. Five sources of heat which influence the melting of the snowpack may be simulated. )When the temperature index approach is used, the first three sources are subsumed under the degree-day factor.)

  1. net radiation heat (RADHT), both longwave and shortwave
  2. convection of sensible heat from the air (CONVHT)
  3. latent heat transfer by condensation of moist air on the snowpack (CONDHT)
  4. heat from rain, sensible heat from rain falling (RNSHT) and latent heat from rain freezing on the snowpack
  5. conduction of heat from the underlying ground to the snowpack (GMELTR)

Other heat exchange processes such as latent heat from evaporation are considered less significant and are not simulated. If the energy balance option is turned on, the energy calculations for RADHT, CONVHT, and CONDHT are performed by subroutine HEXCHR, and MOSTHT is the sum of these three heat sources. If the degree-day option is used, MOSTHT is computed directly from the air temperature and the degree-day factor in subroutine DEGDAY. Latent heat from rain freezing is considered in subroutine WARMUP. RNSHT is computed in the parent subroutine SNOW. GMELTR is calculated in subroutine GMELT, and subtracted from the pack separately.

For uniformity and accounting, energy values are calculated in terms of the water equivalent which they could melt. It takes 202.4 calories per square cm on the surface to melt one inch water equivalent of snow at 32 degrees F. All the sources of heat including RNSHT are considered to be positive (incoming to the pack) or zero, except RADHT which can also be negative (leaving the pack).

Net incoming heat from the atmosphere (the sum of MOSTHT and RNSHT) is used to warm the snowpack. The snowpack can be further warmed by the latent heat released upon rain freezing. Any excess heat above that required to warm the snowpack to 32 degrees F is used to melt the pack. Likewise, net loss of heat is used to cool the snowpack producing a negative heat storage. Furthermore, incoming heat from the ground melts the snowpack from the bottom independent of the atmospheric heat sources except that the rate depends on the temperature of the snowpack.

The figure below gives a schematic view of the moisture related processes modeled in section SNOW. Precipitation may fall as rain or snow on the snowpack or the ground. Evaporation, when simulated, only occurs from the frozen portion of the pack (PACKF). The frozen portion of the pack is composed of snow and ice. The ice portion of PACKF is considered to be in the lower part of the snowpack, so it is the first to melt when heat is conducted from the ground. Similarly, the snow portion of PACKF is the first to melt when atmospheric heat increases. Melted PACKF and rain falling on the snowpack produce the water portion of the total snowpack which may overflow the capacity of the pack. The water yield and rain on the bare ground becomes input to module section PWATER or IWATER. These moisture related processes as well as the heat exchange processes are discussed later in more detail.

Heat transfer from incoming rain (RNSHT) to the snowpack is calculated in the parent subroutine SNOW. The following physically based equation is used:

Flow diagram of water movement, storages, and phase changes modeled in the SNOW section of the PERLND and IMPLND Application Modules

     RNSHT = (AIRTMP - 32.0)*RAINF/144.0	                             (2)

where:
     AIRTMP = temperature of the air (degrees F)
     RAINF  = rainfall (inches)
     144.0  = factor to convert to equivalent depth of melt
     32.0   = freezing point (degrees F)

Other characteristics of the snowpack are also determined in the main subroutine SNOW. The fraction of the land segment covered by the snowpack is estimated by merely dividing the depth of the snowpack by a cover index (COVINX) which is a function of the parameter COVIND and the history of the pack as explained in subroutine EFFPRC. The temperature of the snowpack is estimated by:

     PAKTMP = 32.0 - NEGHTS/(0.00695*PACKF)                            (3)

where:
     PAKTMP  = mean temperature of the snowpack (degrees F)
     NEGHTS  = negative heat storage (inches of water equivalent)
     PACKF   = frozen contents of the snowpack (inches of water equivalent)
     0.00695 = physically based conversion factor


Meteorological Conditions - METEOR

 (subroutine METEOR)

Purpose

Subroutine METEOR estimates the effects of certain meteorological conditions on specific snow-related processes by the use of empirical equations. It determines whether precipitation is falling as snow or rain. The form of precipitation is critical to the reliable simulation of runoff and snowmelt. When snow is falling, the density is calculated in order to estimate the depth of the new snowpack. The fraction of the sky which is clear is also estimated for use in the radiation algorithms (if required), and the gage dewpoint temperature is corrected if it is warmer than air temperature.

Method

If dewpoint is input, then it is corrected and used to adjust the critical temperature for snowfall. A gage dewpoint higher than air temperature is not physically possible and will give erroneous results in the calculation of snowpack evaporation. Therefore, dewpoint is set equal to the air temperature when this situation occurs. Otherwise, the gage dewpoint is used.

The following expression is used to calculate hourly the effective air temperature below which snowfall occurs:

     SNOTMP = TSNOW + (AIRTMP - DEWTMP)*(0.12 + 0.008*AIRTMP)          (4)

where:
     SNOTMP = air temperature below which snowfall occurs (degrees F)
     TSNOW  = parameter (degrees F)
     AIRTMP = air temperature (degrees F)
     DEWTMP = dewpoint (degrees F)

SNOTMP is allowed to vary in this calculation by a maximum of one degree F from TSNOW. If dewpoint is not input, then SNOTMP is always equal to TSNOW. When AIRTMP is equal to or greater than SNOTMP, precipitation is assumed to be rain.

When snowfall occurs, its density is estimated as a function of air temperature according to:

     RDNSN = RDCSN + (AIRTMP/100.0)**2                                 (5)

where:
     RDNSN = density of new snowfall (at zero degrees F or greater)
             relative to liquid water
     RDCSN = parameter designating density of new snow at an air temperature
             of zero degrees F and lower, relative to liquid water

RDNSN is used in subroutine EFFPRC to calculate the new depth of the snowpack resulting from the addition of the snow. This and all other snow density terms are in water equivalent (inches) per depth of the snowpack (inches).

When the energy balance option is selected, the fraction of the sky which is clear (SKYCLR) is needed for the calculation of the longwave back radiation to the snowpack from the clouds (done in subroutine HEXCHR). If cloud cover is input as a time series, then SKYCLR is computed directly from it. Otherwise, SKYCLR is estimated from the time since the last precipitation event. In an interval during which precipitation occurs, SKYCLR is set to the minimum value of 0.15. Between events, it is increased each simulation time interval as follows:

     SKYCLR = SKYCLR + (0.0004*DELT)                                   (6)

where:
     DELT = simulation time interval (min)

SKYCLR increases until either it reaches unity or precipitation causes it to be reset.


Precipitation on the Pack - EFFPRC

 (subroutine EFFPRC)

Purpose

The purpose of this subroutine is to add the falling snow to the pack, determine the amount of rain falling on the snowpack, and adjust the snowpack dullness to take into account new snow.

Method

The amount of precipitation falling as snow or rain is determined in subroutine METEOR. Subroutine EFFPRC accounts for the influence that snowfall and rain have on the land segment. The subroutine begins by increasing the snowpack depth by the amount of snow falling on the pack divided by its density.

The fraction of the land segment which is a covered by the snowpack (SNOCOV) is determined by re-evaluating the index to areal coverage (COVINX). When the frozen contents of the pack (PACKF) exceeds the value of the parameter describing the maximum PACKF required to insure complete areal coverage by snow cover (COVIND), then COVINX is set equal to COVIND. Otherwise, COVINX is equal to the largest previous value of PACKF. SNOCOV is PACKF/COVINX if PACKF < COVINX. The amount of rain falling on the snowpack is that fraction of the precipitation which falls as rain multiplied by the SNOCOV. Rain falling on the snowpack will either freeze, adding to the frozen portion of the pack and produce heat used to warm the pack (see subroutine WARMUP), or it will increase the liquid water content of the pack (see subroutine LIQUID). Any rain not falling on the pack is assumed to land on bare ground.

Under the energy balance option, the albedo of the snowpack surface is used to compute the radiation heat flux RADHT. When snowfall occurs, the index to the dullness of the snowpack (DULL) is decreased by one thousand times the snowfall for that interval. However, if one thousand times the snowfall is greater than the previous value for DULL, then DULL is set to zero to account for a new layer of perfectly reflectable snow. Otherwise, when snowfall does not occur, DULL is increased by one index unit per hour up to a maximum of 800. Since DULL is an empirical term used as an index, it has no physical units. DULL is used to determine the albedo of the snowpack, which in turn is used in the shortwave energy calculations in subroutine HEXCHR.


Compact the Pack - COMPAC

 (subroutine COMPAC)

Purpose

The addition of new snow will reduce the density as well as increase the depth of the snowpack as in subroutine EFFPRC. The pack will tend to compact with age until a maximum density is reached. The purpose of subroutine COMPAC is to determine the rate of compaction and calculate the actual change in the depth due to compaction.

Method

When the relative density is less than 55 percent, compaction is assumed to occur. The rate of compaction is computed according to the empirical expression:

     COMPCT = 1.0 - (0.00002*DELT60*PDEPTH*(0.55 - RDENPF))            (7)

where:
     COMPCT = unit rate of compaction of the snowpack per interval
     DELT60 = number of hours in an interval
     PDEPTH = depth of the snowpack in inches of total snowpack
     RDENPF = density of the pack relative to liquid water

The new value for PDEPTH is COMPCT times PDEPTH. PDEPTH is used to calculate the relative density of the snowpack which affects the liquid water holding capacity as determined in subroutine LIQUID.


Evaporation from the Pack - SNOWEV

 (subroutine SNOWEV)

Purpose

The SNOWEV subroutine estimates evaporation from the snowpack (sublimation) when the energy balance method is being used.

Method

Evaporation from the snowpack will occur only when the vapor pressure of the air is less than that of the snow surface, that is, only when the air vapor pressure is less than 6.108 mbar, which is the maximum vapor pressure that the thin surface film of air over the snowpack can attain. When this condition is met the evaporation is computed by the empirical relationship:

     SNOWEP = SNOEVP*0.0002*WINMOV*(SATVAP - VAP)*SNOCOV               (8)

where:
     SNOWEP = potential rate of evaporation from the frozen part of the
              snowpack (inches of water equivalent/interval)
     SNOEVP = parameter used to adjust the calculation to field conditions
     WINMOV = wind movement (miles/interval)
     SATVAP = saturated vapor pressure of the air at the current air
              temperature (mbar)
     VAP    = vapor pressure of the air at the current air temp (mbar)
     SNOCOV = fraction of the land segment covered by the snowpack

The potential (SNOWEP) will be fulfilled if there is sufficient snowpack. Otherwise, only the remaining pack will evaporate. For either case, evaporation occurs only from the frozen content of the snowpack (PACKF). The effect of evaporation on the heat balance in the pack is considered negligible.


Estimate Heat Exchange Rates - HEXCHR

 (subroutine HEXCHR)

Purpose

The purpose of this subroutine is to estimate the heat exchange from the atmosphere due to condensation, convection, and radiation when using the energy balance method. All heat exchanges are calculated in terms of equivalent depth of melted or frozen water.

Method of Determining Heat Supplied by Condensation

Transfer of latent heat of condensation can be important when warm moist air masses travel over the snowpack. Condensation occurs when the air is moist enough to condense on the snowpack. That is, when the vapor pressure of the air is greater than 6.108 mbar. This physical process is the opposite of snow evaporation; the heat produced by it is calculated by another empirical relationship:

     CONDHT = 8.59*(VAP - 6.108)*CCFACT*0.00026*WINMOV                 (9)

where:
     CONDHT = condensation heat flux to the snowpack (inches of water
              equivalent/interval)
     VAP    = vapor pressure of the air at the current air temp (mbar)
     CCFACT = parameter used to correct melt values to field conditions
     WINMOV = wind movement (miles/interval)

CONDHT can only be positive or zero, that is, incoming to the pack.

Method of Determining Heat Supplied by Convection

Heat supplied by turbulent exchange with the atmosphere can occur only when air temperatures are greater than freezing. This convection of heat is calculated by the empirical expression:

     CONVHT = (AIRTMP - 32.0)*(1.0 - 0.3*MELEV/10000.0)*              (10)
              CCFACT*0.00026*WINMOV

where:
     CONVHT = convective heat flux to the snowpack (inches of water
              equivalent/interval)
     AIRTMP = air temperature (degrees F)
     MELEV  = mean elevation of the land segment above sea level (ft)

In the simulation, CONVHT also can only be positive or zero, that is, only incoming.

Method of Determining Heat Supplied by Radiation

Heat supplied by radiation is determined by:

     RADHT = (SHORT + LONG)/203.2                                     (11)

where:
     RADHT = radiation heat flux to the snowpack (inches of
             water equivalent/interval)
     SHORT = net solar or shortwave radiation (langleys/interval)
     LONG  = net terrestrial or longwave radiation (langleys/interval)

The constant 203.2 is the number of langleys required to produce one inch of melt from snow at 32 degrees F. RADHT can be either positive or negative, that is, incoming or outgoing.

SHORT and LONG are calculated as follows. Solar radiation, a required time series, is modified by the albedo and the effect of shading. The albedo or reflectivity of the snowpack is a function of the dullness of the pack (see subroutine EFFPRC for a discussion of DULL) and the season. The equation for calculating albedo (ALBEDO) for the 6 summer months is:

     ALBEDO = 0.80 - 0.10*(DULL/24.0)**0.5                            (12)

The corresponding equation for the winter months is:

     ALBEDO = 0.85 - 0.07*(DULL/24.0)**0.5                            (13)

ALBEDO is allowed a minimum value of 0.45 for summer and 0.60 for winter. The hemispheric location of the land segment is taken into account for determining summer and winter in using the above equation. This is done through the use of the latitude parameter which is positive for the northern hemisphere.

Once the albedo of the pack is found then solar radiation (SHORT) is modified according to the equation:

     SHORT = SOLRAD*(1.0 - ALBEDO)*(1.0 - SHADE)                      (14)

where:
     SOLRAD = solar radiation (langleys/interval)
     SHADE  = parameter indicating the fraction of the land segment which
              is shaded

Unlike shortwave radiation which is more commonly measured, longwave radiation (LONG) is estimated from theoretical consideration of the emitting properties of the snowpack and its environment. The following equations are based on Stefan's law of black body radiation and are linear approximations of curves in Plate 5-3, Figure 6 in Snow Hydrology (Corps of Engineers, 1956). They vary only by the constants which depend on air temperature. For air temperatures above freezing:

     LONG = SHADE*0.26*RELTMP + (1.0 - SHADE)*(0.2*RELTMP - 6.6)      (15)

And for air temperatures at freezing and below:

     LONG = SHADE*0.20*RELTMP + (1.0 - SHADE)*(0.17*RELTMP - 6.6)     (16)

where:
     RELTMP = air temperature minus 32 (degrees F)
        6.6 = average back radiation lost from the snowpack in open areas
              (langleys/hr)

Since the constants in these equations were originally based on hourly time steps, both calculated values are multiplied by DELT60, the number of hours per interval, so that they correspond to the simulation interval. In addition, LONG is multiplied by the fraction of clear sky (SKYCLR) when it is negative, to account for back radiation from clouds.


Temperature Index Calculations - DEGDAY

 (subroutine DEGDAY)

Purpose

The purpose of this subroutine is to estimate the heat exchange from the atmosphere based on a temperature index. The heat exchange is calculated in terms of equivalent depth of melted or frozen water.

Method

The snowpack gains energy at a rate proportional to the amount that the air temperature is above a specified base temperature (TBASE) (at or near freezing). Both TBASE and the constant of proportionality KMELT are input parameters.

     MOSTHT= KMELT * (AIRTMP - TBASE)                                   (17)

where:
     MOSTHT = the amount of potential melt due to atmospheric exchange
              (in/ivl)
     KMELT  = degree-day factor (in/F.ivl)
     AIRTMP = current air temperature (F)
     TBASE  = base temperature, above which melt occurs (F)

KMELT can be input on a monthly basis to reflect differences in average radiation and/or wind movement that are not accounted for as a function of temperature.


Loss of Heat from Pack - COOLER

 (subroutine COOLER)

Purpose

The purpose of this code is to cool the snowpack whenever it is warmer than the ambient air and thus loses heat. This is accomplished by accumulating negative heat storage which increases the capacity of the pack to later absorb heat without melting as simulated in subroutine WARMUP.

Method

In every interval where there is heat loss to the atmosphere and the temperature of the snowpack is greater than the air temperature, the negative heat storage will increase; that is, the pack will cool. However, there is a maximum negative heat storage. The maximum negative heat storage that can exist at any time is found by assuming a linear temperature distribution from the air temperature which is considered to be above the pack to 32 degrees at the bottom of the snowpack. This maximum negative heat storage is calculated hourly as follows:

     MNEGHS = 0.00695*(PACKF/2.0)*(-RELTMP)                           (18)

where:
     MNEGHS = maximum negative heat storage (inches of water equivalent)
     PACKF  = water equivalent of the frozen contents of the snowpack
              (inches)
     RELTMP = air temperature above freezing (degrees F)

The accumulation of the negative heat storage is calculated hourly from the following empirical relationship:

     NEGHT = 0.0007*(PAKTMP - AIRTMP)*DELT60                          (19)

where:
     NEGHT  = potential rate of cooling of the snowpack (inches of water
              equivalent per interval)
     PAKTMP = mean temperature of the snowpack (degrees F)
     AIRTMP = air temperature (degrees F)
     DELT60 = number of hours per interval

NEGHT is added to the negative heat storage (NEGHTS) every interval except when limited by MNEGHS. NEGHTS is used in the parent subroutine SNOW to calculate the temperature of the snowpack and in subroutine WARMUP to determine the extent that the pack must be warmed to reach 32 degrees F.


Warm the Snowpack - WARMUP

 (subroutine WARMUP)

Purpose

This subroutine warms the snowpack to as much as 32 degrees F when possible.

Method

When there is negative heat storage in the pack (see subroutine COOLER for a discussion of NEGHTS), and there is net incoming energy as calculated in previous subroutines, then NEGHTS will decrease resulting in a warmer snowpack and possible melt.

The calculations in this subroutine are merely accounting. They decrease NEGHTS to a minimum of zero by subtracting the net incoming heat. If any negative heat storage remains, then the latent heat released by the freezing of any incoming rain is added to the pack. Since NEGHTS and all other heat variables are in units of inches of melt, the inches of rain falling on the pack and freezing is subtracted from NEGHTS without any conversion.


Melt the Pack Using Remaining Heat - MELTER

 (subroutine MELTER)

Purpose

MELTER simulates the actual melting of the pack with whatever incoming heat remains. Any heat which was not used to heat the snowpack in subroutine WARMUP can now be used to melt the snowpack.

Method

This subroutine is also merely an accounting subroutine. The net incoming heat has already been calculated in terms of water equivalents of melt. Hence, any remaining incoming heat is used directly to melt the snowpack either partially or entirely depending on the size of the snowpack.


Liquid Water in Pack - LIQUID

 (subroutine LIQUID)

Purpose

Subroutine LIQUID first determines the liquid storage capacity of the snowpack. It then determines how much liquid water is available to fill the storage capacity. Any liquid water above the capacity will leave the snowpack unless it freezes (see subroutine ICING).

Method

The liquid water holding capacity of the snowpack can be at the maximum as specified by the parameter MWATER, at zero, or somewhere in between depending on the density of the pack: the less dense the snowpack the greater the holding capacity. The following relationships define the capacity:

for RDENPF > 0.91,

     PACKWC = 0.0                                                     (20)

for 0.6 < RDENPF < 0.91,

     PACKWC = MWATER*(3.0 - 3.33*RDENPF                               (21)

for RDENPF < 0.61,

     PACKWC = MWATER                                                  (22)

where:
     PACKWC = liquid water holding capacity of the snowpack (in/in)
     MWATER = parameter specifying the maximum liquid water content of
              the snowpack (in/in)
     RDENPF = density of the snowpack relative to liquid water

MWATER is a function of the mass of ice layers, the size, the shape, and spacing of snow crystals and the degree of channelization and honeycombing of the snowpack.

Once PACKWC is calculated, it is compared to the available liquid water in the pack PWSUPY. PWSUPY is calculated by summing any storage remaining at the start of the interval, any melt, and any rain that fell on the pack which did not freeze. If PWSUPY is more than PACKWC, then water is yielded to the land surface from the snowpack.


Occurrence of Ice in Pack - ICING

 (subroutine ICING)

Purpose

The purpose of subroutine ICING is to simulate the possible freezing of water which would otherwise leave the snowpack. This freezing in turn produces ice or frozen ground at the bottom of the snowpack. In this subroutine, the ice can be considered to be at the bottom of the pack or frozen in the ground below the snow portion of the pack thus extending the total pack into the soil. This subroutine may only be applicable in certain areas; therefore, it is optional.

Method

The freezing of the water yield of the snowpack depends on the capacity of the environment to freeze it. Every day at approximately 6 a.m. the capacity is reassessed. A new value is estimated in terms of inches of melt by multiplying the Fahrenheit degrees of the air temperature below 32.0 by 0.01. This estimate is compared with the freezing capacity if any which remains from the previous 24-hr period. If it is greater, then the new estimated capacity replaces the old, else the old value remains as the potential. Any water yield that occurs freezes and is added to the ice portion of the snowpack until the capacity is met. Any subsequent water yield is released from the snowpack.


Melt the Pack Using Heat from the Ground - GMELT

 (subroutine GMELT)

Purpose

The purpose of the GMELT subroutine is to simulate the melt caused by heat conducted from the surface underlying the snowpack. This ground heat melts the pack only from below. Therefore, melt from this process is considered independent of other previously calculated heat influences except for an indirect effect via the temperature of the snowpack. Unlike the other melt processes, ground heat melts the ice portion of the snowpack first since ice is considered to be located at the lower depths of the pack.

Method

The potential rate of ground melt is calculated hourly as a function of snowpack temperature (PAKTMP) and a lumped parameter (MGMELT). MGMELT is the maximum rate of melt in water equivalent caused by heat from the ground at a PAKTMP of 32 degrees F. MGMELT would depend upon the thermal conductivity of the soil and the normal depth of soil freezing. The potential ground melt is reduced below MGMELT by 3 percent for each degree that PAKTMP is below 32 degrees F to a minimum of 19 percent of MGMELT at 5 degrees F or lower. As long as a snowpack is present, ground melt occurs at this potential rate.


Reset State Variables When Snowpack Disappears - NOPACK

 (subroutine NOPACK)

Purpose

This code resets the state variables (for example, SNOCOV) when the snowpack completely disappears.

Method

The frozen contents of the snowpack required for complete areal cover of snow (COVINX) is set to a tenth of the maximum value (COVIND). All other variables are either set to zero or the "undefined" value of -1.0E30.


Water Budget Pervious - PWATER

 (Section PWATER of Module PERLND)

Purpose

PWATER is used to calculate the components of the water budget, primarily to predict the total runoff from a pervious area. PWATER is the key component of module PERLND; subsequent major sections of PERLND (eg. SEDMNT) depend on the outputs of this section.

Background

The hydrologic processes that are modeled by PWATER are illustrated in Figure "Hydrologic cycle." The algorithms used to simulate these land related processes are the product of over 15 years of research and testing. They are based on the original research for the LANDS subprogram of the Stanford Watershed Model IV (Crawford and Linsley, 1966). LANDS has been incorporated into many models and used to successfully simulate the hydrologic responses of widely varying watersheds. The equations used in module section PWATER are nearly identical to the ones in the current version of LANDS in the PTR Model (Crawford and Donigian, 1973), HSP (Hydrocomp, 1976), and the ARM and NPS Models (Donigian and Crawford, 1976 a,b). However, some changes have been made to LANDS to make the algorithms internally more amenable to a range of calculation time steps. Also, many of the parameter names have been changed to make them more descriptive, and some can be input on a monthly basis to allow for seasonal variation.

Data Requirements and Manipulation

The number of time series required by module section PWATER depends on whether snow accumulation and melt are considered. When such conditions are not considered, only potential evapotranspiration and precipitation are required. However, when snow conditions are considered, air temperature, rainfall, snow cover, water yield, and ice content of the snowpack are also required. Also, the evaporation data are adjusted when snow is considered. The input evaporation values are reduced to account for the fraction of the land segment covered by the snowpack (determined from the generated time series for snow cover), with an allowance for the fraction of area covered by coniferous forest which, it is assumed, can transpire through any snow cover. Furthermore, PET is reduced to zero when air temperature is below the parameter PETMIN. If air temperature is below PETMAX but above PETMIN, PET will be reduced to 50% of the input value, unless the first adjustment already reduced it to less than this amount.

The estimated potential evapotranspiration (PET) is used to calculate actual ET in subroutine group EVAPT.

Approach

Figures below represent the fluxes and storages simulated in module section PWATER. The time series SUPY representing moisture supplied to the land segment includes rain, and when snow conditions are considered, rain plus water from the snowpack. SUPY is then available for interception. Interception storage is water retained by any storage above the overland flow plane. For pervious areas, interception storage is mostly on vegetation. Any overflow from interception storage is added to the optionally supplied time series of surface external lateral inflow to produce the total inflow into the surface detention storage.

Hydrologic cycle

Inflow to the surface detention storage is added to existing storage to make up the water available for infiltration and runoff. Moisture which directly infiltrates moves to the lower zone and groundwater storages. Other water may go to the upper zone storage, may be routed as runoff from surface detention or interflow storage, or may stay on the overland flow plane, from which it runs off or infiltrates at a later time.

The processes of infiltration and overland flow interact and occur simultaneously in nature. Surface conditions such as heavy turf on mild slopes restrict the velocity of overland flow and reduce the total quantity of runoff by allowing more time for infiltration. Increased soil moisture due to prolonged infiltration will in time reduce the infiltration rate producing more overland flow. Surface detention will modify flow. For example, high intensity rainfall is attenuated by storage and the maximum outflow rate is reduced. The water in the surface detention may also later infiltrate reoccurring as interflow, or it can be contained in upper zone storage.

Water infiltrating through the surface and percolating from the upper zone storage may become stored within the lower zone storage, flow to active groundwater storage, or may be lost by deep percolation. The water that reaches the lower zone is subject to evapotranspiration. Active groundwater eventually reappears as baseflow, and may be subject to evapotranspiration, but deep percolation is considered lost from the simulated system.

Lateral external inflows to interflow, upper zone, lower zone, and active groundwater storages are also possible in section PWATER. One may wish to use this option if an upslope land segment is significantly different to merit separating it from a downslope land segment and no channel exists between them.

Not only are flows important in the simulation of the water budget, but so are storages. As stated, soil storage affects infiltration. The water holding capacity of the two soil storages, upper zone and lower zone, in module section PERLND is defined in terms of nominal capacities. Nominal, rather than absolute capacities, serve the purpose of smoothing any abrupt change that would occur if an absolute capacity is reached. Such capacities permit a smooth transition in hydrologic performance as the water content fluctuates.

Flow diagram of water movement and storages modeled in the PWATER section of the PERLND Application Module (Part 1)

Flow diagram of water movement and storages modeled in the PWATER section of the PERLND Application Module (Part 2)

Storages also affect evapotranspiration loss. Evapotranspiration can be simulated from interception storage, upper and lower zone storages, active groundwater storage, and directly from baseflow.

Storages and flows can also be instrumental in the transformation and movement of chemicals simulated in the agri-chemical module sections. Soil moisture levels affect the adsorption and transformations of pesticides and nutrients. Soil moisture contents may vary greatly over a land segment. Therefore, a more detailed representation of the moisture contents and fluxes may be needed to simulate the transport and reaction of agricultural chemicals.

The following subroutine descriptions explain the algorithms of the PWATER module section in more detail. Further detail can be found in the reports cited above.


Interception - ICEPT

 (subroutine ICEPT)

Purpose

The purpose of this code is to simulate the interception of moisture by vegetal or other ground cover. Moisture is supplied by precipitation, or under snow conditions, it is supplied by the rain not falling on the snowpack plus the water yielded by the snowpack. Also, irrigation water that is applied to the crop canopy is subject to interception.

Method

The user may supply the interception capacity on a monthly basis to account for seasonal variations, or may supply one value designating a fixed capacity. The interception capacity parameter can be used to designate any retention of moisture which does not infiltrate or reach the overland flow plane. Typically for pervious areas this capacity represents storage on grass blades, leaves, branches, trunks, and stems of vegetation.

Moisture exceeding the interception capacity overflows the storage and is ready for either infiltration or runoff as determined by subroutine group SURFAC. Water held in interception storage is removed by evaporation; the amount is determined in subroutine EVICEP.


Distribute Water Available for Infiltration and Runoff - SURFAC

 (subroutine SURFAC)

Purpose

Subroutine SURFAC determines what happens to the moisture on the surface of the land. It may infiltrate, go to the upper zone storage or interflow storage, remain in surface detention storage, or run off.

Method

The algorithms which simulate infiltration represent both the continuous variation of infiltration rate with time as a function of soil moisture and the areal variation of infiltration over the land segment. The equations representing the dependence of infiltration on soil moisture are based on the work of Philips (1957) and are derived in detail in the previously cited reports.

The infiltration capacity, the maximum rate at which soil will accept infiltration, is a function of both the fixed and variable characteristics of the watershed. Fixed characteristics include primarily soil permeability and land slopes, while variables are soil surface conditions and soil moisture content. Fixed and variable characteristics vary spatially over the land segment. A linear probability density function is used to account for areal variation. Figure "Determination of infiltration and interflow inflow" represents the infiltration/interflow/surface runoff distribution function of section PWATER. Careful attention to this figure and the last figure in PWATER will facilitate understanding of subroutine SURFAC and the subordinate subroutines DISPOS, DIVISN, UZINF, and PROUTE.

The infiltration distribution is focused around the two lines which separate the moisture available to the land surface (MSUPY) into what infiltrates and what goes to interflow. A number of the variables that are used to determine the location of lines I and II are calculated in subroutine SURFAC. They are calculated by the following relationships:

     IBAR = (INFILT/(LZS/LZSN)**INFEXP)*INFFAC                         (1)

     IMAX = INFILD*IBAR                                                (2)

     IMIN = IBAR - (IMAX - IBAR)                                       (3)

     RATIO = INTFW*(2.0**(LZS/LZSN))                                   (4)

where:
     IBAR   = mean infiltration capacity over the land segment
              (in/interval)
     INFILT = infiltration parameter (in/interval)
     LZS    = lower zone storage (inches)
     LZSN   = parameter for lower zone nominal storage (inches)
     INFEXP = exponent parameter greater than one
     INFFAC = factor to account for frozen ground effects, if applicable
     IMAX   = maximum infiltration capacity (in/interval)
     INFILD = parameter giving the ratio of maximum to mean infiltration
              capacity over the land segment
     IMIN   = minimum infiltration capacity (in/interval)
     RATIO  = ratio of the ordinates of line II to line I
     INTFW  = interflow inflow parameter

Determination of infiltration and interflow inflow

The parameter INTFW can be input on a monthly basis to allow for variation throughout the year.

The factor that reduces infiltration (and also upper zone percolation) to account for the freezing of the ground surface (INFFAC) is calculated in one of two ways. In the first method, it is derived from the water equivalent of ice in the snowpack according to the equation:

     INFFAC = 1.0 - FZG*PACKI                                          (5)

where:
     FZG    = parameter indicating how much icing reduces infiltration
              (/inches)
     PACKI  = water equivalent of ice in snowpack (inches)

In this method, INFFAC is subject to a minimum, supplied as the dimensionless parameter FZGL.

The second method determines INFFAC according to the soil temperature in the lower layer. If this temperature is less than 0 degrees C, then INFFAC is set to the parameter FZGL; otherwise it is set to 1.0. This method can only be used if section PSTEMP is active.


Dispose of Moisture Supply - DISPOS

 (subroutine DISPOS)

Purpose

Subroutine DISPOS determines what happens to the moisture supply (MSUPY) on the land segment.

Method

This subroutine calls subordinate routines DIVISN, UZINF, and PROUTE. DIVISN is called to determine how much of MSUPY falls above and below line I in the figure in SURFAC. The quantity under this line is considered to be infiltrated. The amount over the line but under the MSUPY line (the entire shaded portion) is the potential direct runoff (PDRO), which is the combined increment to interflow, and upper zone storage plus the quantities which will stay on the surface and run off. PDRO is subdivided by line II. The ordinates of line II are found by multiplying the ordinates of line I by RATIO (see subroutine SURFAC for definition). The quantity underneath both line II and the MSUPY line but above line I is called potential interflow inflow. This consists of actual interflow plus an increment to upper zone storage. Any amount above line II but below the MSUPY (potential surface detention/runoff) is that portion of the moisture supply which stays on the surface and is available for overland flow routing, plus a further increment to upper zone storage. The fractions of the potential interflow inflow and potential surface detention/runoff which are combined to compose the upper zone inflow are determined in subroutine UZINF.


Inflow to Upper Zone - UZINF

 (subroutines UZINF1 and UZINF2)

Purpose

The purpose of this code is to compute the inflow to the upper zone when there is some potential direct runoff (PDRO). PDRO, which is determined in subroutine DISPOS, will either enter the upper zone storage or be available for either interflow or overland flow. This subroutine determines what amount, if any, will go to the upper zone storage.

Method

The fraction of the potential direct runoff which becomes inflow to the upper zone storage is a function of the ratio (UZRAT) of the storage to the nominal capacity. The figure in PROUTE diagrams this relationship. The equations used to define this curve follow:

     FRAC = 1 - (UZRAT/2)*(1/(4 - UZRAT))**(3 - UZRAT)                 (7)

for UZRAT less than or equal to two.  For UZRAT greater than two,

     FRAC = (0.5/(UZRAT - 1))**(2*UZRAT - 3)                           (8)

where:
     FRAC  = fraction of PDRO retained by the upper zone storage
     UZRAT = UZS/UZSN

Since UZS and FRAC are dynamically affected by the inflow process it becomes desirable when using particularly large time steps to integrate over the interval to find the inflow to the upper zone. This is done in subroutine UZINF1. The solution is simplified by assuming that inflow to and outflow from the upper zone are handled separately. Considering inflow, the following differential equation results:

     d(UZS)/dt = (d(UZRAT)/dt)*UZSN = PDRO*FRAC                        (9)

Thus

     d(UZRAT)/FRAC = (PDRO/UZSN)*dt                                   (10)

Now taking the definite integral of both sides of the equation:

              UZRATt2
             (        d(UZRAT)
    INTGRL = |        ---------   =  (PDRO/UZSN)(t2-t1)               (11)
             )          FRAC
              UZRATt1

where:
      t1 = time at start of interval
      t2 = time at end of interval

The integral on the left side must be evaluated numerically. Subroutine UZINF1 uses tabulated corresponding values of INTGRL and UZRAT to evaluate it. This relationship, plus Equations 9 and 11, enable one to find the change in UZRAT over the interval, and hence, the quantity of inflow.

Subroutine UZINF2, which is an alternative to UZINF1, uses the algorithm used in the predecessor models HSP, ARM and NPS. That is, Equations 7 and 8 are used directly to estimate the fraction of PDRO retained by the upper zone. Only the value of UZRAT at the start of the simulation interval is used; thus, no account is taken of the possible steady reduction in inflow to the upper zone within a single time step, due to its being filled as shown in the following figure.

Fraction of the potential direct runoff retained by the upper zone (FRAC) as a function of the upper zone soil moisture ratio (UZRAT)


Surface Runoff - PROUTE

 (subroutine PROUTE)

Purpose

The purpose of subroutine PROUTE is to determine how much potential surface detention runs off in one simulation interval.

Method of Routing

Overland flow is treated as a turbulent flow process. It is simulated using the Chezy-Manning equation and an empirical expression which relates outflow depth to detention storage. A more detailed explanation and derivation can be found in the reports cited in the initial background discussion. The rate of overland flow discharge is determined by the equations:

for SURSM < SURSE

    SURO = DELT60*SRC*(SURSM*(1.0 + 0.6(SURSM/SURSE)**3)**1.67        (12)

for SURSM >= SURSE

    SURO = DELT60*SRC*(SURSM*1.6)**1.67

where:
    SURO   = surface outflow (in/interval)
    DELT60 = DELT/60.0 (hr/interval)
    SRC    = routing variable, described below
    SURSM  = mean surface detention storage over the time interval (in)
    SURSE  = equilibrium surface detention storage (inches) for current
             supply rate

DELT60 makes the equations applicable to a range of time steps (DELT). The first equation represents the case where the overland flow rate is increasing, and the second case where the surface is at equilibrium or receding. Equilibrium surface detention storage is calculated by:

     SURSE = DEC*SSUPR**0.6                                           (13)

where:
     DEC   = calculated routing variable, described below
     SSUPR = rate of moisture supply to the overland flow surface

There are two optional ways of determining SSUPR and SURSM. One option - the same method used in the predecessor models - HSP, ARM, and NPS - estimates SSUPR by subtracting the surface storage at the start of the interval (SURS) from the potential surface detention (PSUR) which was determined in subroutine DISPOS. The units of SSUPR are inches per interval. SURSM is estimated as the mean of SURS and PSUR. The other option estimates SSUPR by the same method except that the result is divided by DELT60 to obtain a value with units of inches per hour. SURSM is set equal to SURS. This option is dimensionally consistent for any time step.

The variables DEC and SRC are calculated daily in subroutine SURFAC, but their equations will be given here since they pertain to routing. They are:

     DEC = 0.00982*(NSUR*LSUR/SQRT(SLSUR))**0.6                       (14)

     SRC = 1020.0*(SQRT(SLSUR)/(NSUR*LSUR                             (15)

where:
     NSUR  = Manning's n for the overland flow plane
     LSUR  = length of the overland flow plane (ft)
     SLSUR = slope of the overland flow plane (ft/ft)

NSUR can be input on a monthly basis to allow for variations in roughness of the overland flow plane throughout the year.


Interflow - INTFLW

 (subroutine INTFLW)

Purpose

Interflow can have an important influence on storm hydrographs particularly when vertical percolation is retarded by a shallow, less permeable soil layer. Additions to the interflow component are retained in storage or routed as outflow from the land segment. Inflows to the interflow component may occur from the surface or from upslope external lateral flows. The purpose of this subroutine is to determine the amount of interflow and to update the storage.

Method of Determining Interflow

The calculation of interflow outflow assumes a linear relationship to storage. Thus outflow is a function of a recession parameter, inflow, and storage. Moisture that remains will occupy interflow storage. Interflow discharge is calculated by:

     IFWO = (IFWK1*INFLO) + (IFWK2*IFWS)                              (16)

where:
     IFWO  = interflow outflow (in/interval)
     INFLO = inflow into interflow storage, including lateral inflow
             (in/interval)
     IFWS  = interflow storage at the start of the interval (inches)

IFWK1 and IFWK2 are variables determined by:

     IFWK1 = 1.0 - (IFWK2/KIFW)                                       (17)

     IFWK2 = 1.0 - EXP(-KIFW)                                         (18)

and

     KIFW = -ALOG(IRC)*DELT60/24.0                                    (19)

where:
     IRC    = interflow recession parameter (per day)
     DELT60 = number of hr per interval
     24.0   = number of hours per day
     EXP    = exponential function
     ALOG   = natural logarithm function

IRC is the ratio of the present rate of interflow outflow to the value 24 hours earlier, if there was no inflow. IRC can be input on a monthly basis to allow for variation in soil properties throughout the year.


Upper Zone Behavior - UZONE

 (subroutine UZONE)

Purpose

This subroutine and the subsidiary subroutine UZONES are used to calculate the water percolating from the upper zone. Water not percolated remains in upper zone storage available for evapotranspiration in subroutine ETUZON.

Method of Determining Percolation

The upper zone inflow calculated in DISPOS, plus any lateral inflow and/or irrigation application, is first added to the upper zone storage at the start of the interval to obtain the total water available for percolation from the upper zone.

Percolation only occurs when UZRAT minus LZRAT is greater than 0.01. When this happens, percolation from the upper zone storage is calculated by the empirical expression:

     PERC = 0.1*INFILT*INFFAC*UZSN*(UZRAT - LZRAT)**3                 (20)

where:
     PERC   = percolation from the upper zone (in/interval)
     INFILT = infiltration parameter (in/interval)
     INFFAC = factor to account for frozen ground, if any
     UZSN   = parameter for upper zone nominal storage (inches)
     UZRAT  = ratio of upper zone storage to UZSN
     LZRAT  = ratio of lower zone storage to lower zone nominal storage
              (LZSN)

The upper zone nominal capacity can be input on a monthly basis to allow for variations throughout the year. The monthly values are interpolated to obtain daily values.


Lower Zone Behavior - LZONE

 (subroutine LZONE)

Purpose

This subroutine determines the quantity of infiltrated and percolated water which enters the lower zone. The infiltrated moisture supply is determined in subroutine DISPOS. The percolated moisture from the upper zone is found in subroutine UZONE.

Method

The fraction of the lower zone inflow, which is the sum of direct infiltration, percolation, lower zone lateral inflow, and irrigation application, that enters the lower zone storage (LZS) is based on the lower zone storage ratio of LZS/LZSN where LZSN is the lower zone nominal capacity. The inflowing fraction is determined empirically by:

     LZFRAC = 1.0 - LZRAT*(1.0/(1.0 + INDX))**INDX                    (21)

when LZRAT is less than 1.0, and by

     LZFRAC = (1.0/(1.0 + INDX))**INDX                                (22)

when LZRAT is greater than 1.0.  INDX is defined by:

     INDX = 1.5*ABS(LZRAT - 1.0) + 1.0                                (23)

where:
     LZFRAC = fraction of infiltration plus percolation plus lower zone
              lateral inflow that enters LZS
     LZRAT  = LZS/LZSN
     ABS    = function for determining absolute value
The fraction of the moisture supply remaining after the surface, upper zone, and lower zone components are subtracted is added to the groundwater storages.

An optional method of distributing the infiltration and percolation is available in which all recharge is input to the lower zone storage until the equilibrium soil moisture condition (LZS = LZSN) is met. This method is intended for use when HSPF is linked with the MODFLOW groundwater model as part of the Integrated Hydrologic Model (IHM) (Ross et al., 2004). The formulation is as follows:

     LZFRAC = 1.0                               when LZRAT =< 1.0
     LZFRAC = EXP (-1.0*(IFRDFG*(LZRAT-1.0)))   when LZRAT > 1.0      (24)

where:
     IFRDFG = decay rate accelerator that accounts for the tendency for
              the wet equilibrium soil moisture profile to be near the
              normal equilibrium profile (integer values between 3 and 7)

This option is selected by setting IFRDFG (in table PWAT-PARM1) to the desired exponential coefficient in the above expression. The allowable values are integers between 3 and 7.

These relationships are plotted in Figure 18, where the behavior of LZFRAC is shown as a function of LZRAT (i.e., the ratio LZS/LZSN). The standard method is compared to the optional formulation with exponential coefficient values of 3, 5 and 7.

Fraction of infiltration plus percolation entering lower zone storage


Groundwater Behavior - GWATER

 (subroutine GWATER)

Purpose

The purpose of this subroutine is to determine the amount of the inflow to groundwater that is lost to deep or inactive groundwater and to determine the amount of active groundwater outflow. These two fluxes will in turn affect the active groundwater storage.

Method of Determining Groundwater Fluxes

The quantity of direct infiltration plus percolation from the upper zone which does not go to the lower zone (determined in subroutine LZONE) will be inflow to either inactive or active groundwater. The distribution to active and inactive groundwater is user designated by parameter DEEPFR. DEEPFR is that fraction of the groundwater inflow which goes to inactive groundwater. The remaining portion of the percolating water plus all lateral inflow and/or irrigation application make up the total inflow to the active groundwater storage.

The outflow from active groundwater storage is based on a simplified model. It assumes that the discharge of an aquifer is proportional to the product of the cross-sectional area and the energy gradient of the flow. Further, a representative cross-sectional area of flow is assumed to be related to the groundwater storage level at the start of the interval. The energy gradient is estimated as a basic gradient plus a variable gradient that depends on past active groundwater accretion.

Thus, the groundwater outflow is estimated by:

     AGWO = KGW*(1.0 + KVARY*GWVS)*AGWS                               (25)

where:
     AGWO  = active groundwater outflow (in/interval)
     KGW   = groundwater outflow recession parameter (/interval)
     KVARY = parameter which can make active groundwater storage to
             outflow relation nonlinear (/inches)
     GWVS  = index to groundwater slope (inches)
     AGWS  = active groundwater storage at the start of the interval (inches)

GWVS is increased each interval by the inflow to active groundwater but is also decreased by 3 percent once a day. It is a measure of antecedent active groundwater inflow. KVARY is introduced to allow variable groundwater recession rates. When KVARY is nonzero, a semilog plot of discharge versus time is nonlinear. This parameter adds flexibility in groundwater outflow simulation which is useful in simulating many watersheds.

The parameter KGW is calculated by the Run Interpreter using the relationship:

     KGW = 1.0 - (AGWRC)**(DELT60/24.0)                               (26)

where:
     AGWRC  = daily recession constant of groundwater flow if KVARY
              or GWVS = 0.0; i.e., the ratio of current groundwater
              discharge to groundwater discharge 24-hr earlier
     DELT60 = hr/interval


Evapotranspiration - EVAPT

 (subroutine EVAPT)

Purpose

The purpose of EVAPT and its subordinate subroutines is to simulate evaporation and evapotranspiration fluxes from all zones of the pervious land segment. Since in most hydrologic regimes the volume of water that leaves a watershed as evapotranspiration exceeds the total volume of streamflow, this is an important aspect of the water budget.

Method of Determining Actual Evapotranspiration

There are two separate issues involved in estimating evapotranspiration (ET). First, potential ET must be estimated. ET potential or demand is supplied as an input times series, typically using U.S. Weather Bureau Class A pan records plus an adjustment factor. The data are further adjusted for cover in the parent subroutine PWATER. Second, actual ET must be calculated, usually as a function of moisture storages and the potential. The actual ET is estimated by trying to meet the demand from five sources in the order described below. The sum of the ET from these five sources is the total actual evapotranspiration from the land segment.

Subroutine ETBASE

The first source from which ET can be taken is the active groundwater outflow or baseflow. This simulates effects such as ET from riparian vegetation in which groundwater is withdrawn as it enters the stream. The user may specify by the parameter BASETP the fraction, if any, of the potential ET that can be sought from the baseflow. That portion can only be fulfilled if outflow exists. Any remaining potential not met by actual baseflow evaporation will try next to be satisfied in subroutine EVICEP.

Subroutine EVICEP

Remaining potential ET exerts its demand on the water in interception storage. Unlike baseflow, there is no parameter regulating the rate of ET from interception storage. The demand will draw upon all of the interception storage unless the demand is less than the storage. When the demand is greater than the storage, the remaining demand will try to be satisfied in subroutine ETUZON.

Subroutine ETUZON

There are no special ET parameters for the upper zone, but rather ET is based on the moisture in storage in relation to its nominal capacity. Actual evapotranspiration will occur from the upper zone storage at the remaining potential demand if the ratio of UZS/UZSN, upper zone storage to nominal capacity, is greater than 2.0. Otherwise the remaining potential ET demand on the upper zone storage is reduced; the adjusted value depends on UZS/UZSN. Subroutine ETAGW will attempt to satisfy any remaining demand.

Subroutine ETAGW

Like ET from baseflow, actual evapotranspiration from active groundwater is regulated by a parameter. The parameter AGWETP is the fraction of the remaining potential ET that can be sought from the active groundwater storage. That portion of the ET demand can be met only if there is enough active groundwater storage to satisfy it. Any remaining potential will try to be met in subroutine ETLZON.

Subroutine ETLZON

The lower zone is the last storage from which ET is drawn. Evapotranspiration from the lower zone is more involved than that from the other storages. ET from the lower zone depends upon vegetation transpiration. Evapotranspiration opportunity will vary with the vegetation type, the depth of rooting, density of the vegetation cover, and the stage of plant growth along with the moisture characteristics of the soil zone. These influences on the ET opportunity are lumped into the LZETP parameter. Unlike the other ET parameters LZETP can be input on a monthly basis to account for temporal changes in the above characteristics.

If the LZETP parameter is at its maximum value of one, representing near complete areal coverage of deep rooted vegetation, then the potential ET for the lower zone is equal to the demand that remains. However, this is normally not the case. Usually vegetation type and/or rooting depths will vary over the land segment. To simulate this, a linear probability density function for ET opportunity is assumed (see Figure "Potential and actual evapotranspiration from the lower zone" below). This approach is similar to that used to handle areal variations in infiltration/percolation capacity.

The variable RPARM, the index to maximum ET opportunity, is estimated by:

     RPARM = (0.25/(1.0 - LZETP))*(LZS/LZSN)*DELT60/24.0              (27)

where:
     RPARM  = maximum ET opportunity (in/interval)
     LZETP  = lower zone ET parameter
     LZS    = current lower zone storage (inches)
     LZSN   = lower zone nominal storage parameter (inches)
     DELT60 = hr/interval

The quantity of water lost by ET from the lower zone storage, when remaining potential ET (REMPET) is less than RPARM, is given by the cross-hatched area of the figure below. When REMPET is more than RPARM the lower zone ET is equal to the entire area under the triangle, RPARM/2.

ET from the lower zone storage is further reduced when LZETP is less than 0.5 by multiplying by LZETP*2.0. This is designed to account for the fraction of the land segment devoid of any vegetation that can draw from the lower zone.

An optional method for computing ET from the lower zone is available. This method (which is designed for use when HSPF is linked with MODFLOW as part of the Integrated Hydrologic Model (IHM) (Ross et al., 2004)), is selected by setting the flag VLEFG (see table PWAT-PARM1) to either 2 (constant LZETP) or 3 (monthly variable LZETP). This approach assumes a uniform ET over the entire land segment. This ET computation is as follows:

     LZPET = LZETP*(LZS/LZSN)*REMPET             (if LZS < LZSN)     (28)
     LZPET = LZETP*REMPET                        (if LZS >= LZSN)

where:
     LZPET  = lower zone ET (in/interval)
     REMPET = remaining potential ET (in/interval)

Potential and actual evapotranspiration from the lower zone


Water Budget Pervious, High Water Table, Low Gradient

This section describes an optional method of simulating soil hydrology when the water table approaches or rises above the ground surface (Hydrocomp and AQUA TERRA, 1996). This method, which is applicable for wetlands and low gradient areas, is a modified version of the standard hydrologic method in HSPF (i.e., the Stanford Watershed Model).

Soil Moisture Concepts

To represent the high water table/low gradient environment, it is necessary to keep track of the groundwater levels (saturated zone elevation) and to model the interaction between the saturated zone and the unsaturated zone. The interaction between the saturated and unsaturated zones corresponds to transfers between the groundwater storage and the other storages. Determining when and how the rising groundwater starts affecting the other storages requires being more specific about the location and capacity of the storages.

The porosity of a soil is the volume of pore space as a fraction, or a percentage, of the total soil volume. Porosity varies, with typical values for sand of about 40%, and higher values for silts and clays.

Water is stored in soil as adhesion water, cohesion water, and gravitational water. Adhesion water is electrically bonded to soil particles and is immobile except at very high temperatures (in drying ovens). Cohesion water is bonded in soil by capillary forces and weaker electrical forces. Cohesion water is roughly equal to the "available water", the difference between the wilting point and field capacity. Gravitational water will drain from soils in the unsaturated zone unless drainage is inhibited. Gravitational water can be defined to be present in macropores (cohesion water is present in micropores).

For modeling purposes the total porosity is divided into porosity in micropores (PCW, cohesion water), and porosity in macropores (PGW, gravitational water). The upper layer of the soil may be disturbed and have a larger porosity in macropores (UPGW). The porosity of micropores is assumed to be the same throughout the soil column. In PWATER, cohesion water is stored in the lower zone storage, while gravitational water is stored in the upper zone and interflow storages.

Figure "Sketch of soil moisture in the unsaturated zone under high water table conditions" defines these concepts. In this figure, Pcw is the porosity of cohesion water and Pgw is the porosity of gravity water.

The "groundwater level" is the elevation of the saturated zone above an arbitrary datum such as mean sea level. The active groundwater storage is gravity water stored above the minimum channel or canal elevation that is within or adjacent to the land.

An "influence depth" is also shown in this figure. The influence depth is the maximum depth where soil moisture varies seasonally due to evapotranspiration. Soil moisture within the influence depth could be defined as "hydrologically active".

Model Overview

Figure "Soil moisture storage concepts under high water table conditions" is the main definition sketch for the model to simulate the high water table hydrology. It locates the PWATER storages in the conceptual representation of the soil introduced in the first figure. It also summarizes some of the variables and constants used in the model. The soil column is divided into three soil regions according to two influence elevation lines: the lower and upper influence elevations.

Sketch of soil moisture in the unsaturated zone under high water table conditions

Soil moisture storage concepts under high water table conditions

When the groundwater elevation is below the lower influence elevation, (Region 1 in the figure immediately above), there is no interaction between the saturated and the unsaturated zones. The algorithms operate in essentially the same way as the standard PWATER. Groundwater elevation in this region is a function of the groundwater storage and the total porosity (macropores and micropores).

When the groundwater elevation reaches the lower influence elevation, (Region 2), the groundwater storage starts interacting with the lower zone storage. Rising groundwater that occupies micropores is reassigned to the lower zone, according to the saturation level of the lower zone. Groundwater in this region is assumed to occupy macropores and it is subject to evapotranspiration. As the groundwater rises in this region it may start interacting with, and "drowning" the interflow storage, if this storage is large enough. Groundwater elevation in this region is a function of groundwater storage and the porosity in macropores.

When the groundwater elevation reaches the upper influence level, (Region 3), the groundwater affects upper zone behavior. Interflow storage is not "drowned" anymore in this region, but it is limited to a maximum capacity. Groundwater storage shares macropores with the interflow storage and the upper zone storage. Changes in groundwater storage that are not reassigned to the lower zone storage, are distributed between upper zone, interflow and groundwater storage, according to their relative saturation levels. Groundwater elevation in this region is a function of interflow, upper zone and groundwater storages.

When the groundwater level reaches the surface, any additional water is assigned to surface detention storage and the surface detention storage represents the depth of inundation over the land segment. Evaporation from the surface storage takes place at the potential rate, after interception storage has been exhausted. Surface runoff is only a function of surface detention storage.

Detailed Definition of Influence Levels and Storages

In each time step the behavior of the various storages and the interactions between them depend on the current elevation of the groundwater (the current "region" in the second figure above). This section explains the way in which the model determines the influence levels and associated groundwater storages that define the soil regions. It also describes how groundwater elevation is calculated in the various regions.

The three soil regions in the soil column are determined by the lower influence elevation (LELV) and the upper influence elevation (UELV).

The lower influence elevation is the elevation above which the groundwater affects lower zone behavior and, depending on the current interflow storage, it may also affect interflow behavior. The lower influence elevation is defined in terms of the lower zone nominal storage as:

      LELV = SELV - (2.5*LZSN)/PCW                                    (29)

where:
      LELV = lower zone influence level (in)
      SELV = mean surface elevation (in)
      LZSN = lower zone nominal storage (in)
      PCW  = porosity in micropores (-)
      2.5  = factor derived from PWATER equations; this factor
             is implemented as a model parameter (LELFAC) to
             allow users to investigate its sensitivity

The total groundwater storage associated with a groundwater elevation equal to LELV is:

      LLGWS = LELV*(PCW + PGW)                                        (30)

where:
      LLGWS = total groundwater storage below LELV (in)
      PCW   = porosity in micropores (-)
      PGW   = porosity in macropores (-)

Below LELV (Region 1 in the second figure above) there are no interactions between the saturated and the unsaturated zones. The rising groundwater occupies the total porosity (macropores and micropores). Groundwater elevation in this region is calculated as:

      GWEL = TGWS/(PCW + PGW)                                         (31)

where:
      GWEL = groundwater elevation (in)
      TGWS = total groundwater storage (in)

Above LELV (Region 2), the lower zone storage represents water stored in micropores. Consequently, the portion of the rising water table that occupies the micropores is reassigned to the lower zone storage. The groundwater storage is assumed to occupy the macropores. Groundwater elevation in this region is calculated as:

      GWEL = LELV + (TGWS - LLGWS)/PGW                                (32)

Interflow storage also occupies macropores. Interflow storage increases from the surface down. If it is below the upper influence level, it will share macropores with the groundwater. The model assumes that in this region the interflow path is drowned by the rising groundwater; if the rising groundwater storage reaches the interflow storage, the excess interflow storage is transferred to groundwater storage.

The upper influence elevation is the elevation above which the groundwater affects upper zone behavior. In this region (region 3 in the second figure above), upper zone and interflow share the macropores with the groundwater storage. In the conceptual model upper zone storage is the portion of the water stored in macropores which will not reach the channels, but will percolate, evaporate or transpire; interflow storage is the portion of the water stored in macropores which will flow to the channels through a subsurface flow path. The groundwater storage that enters this region will flow to the channels as base flow, or transpire, if the potential evapotranspiration has not been met by the upper zone.

Groundwater that occupies micropores is reassigned to lower zone storage, as in the previous region. The remaining changes in groundwater storage are reassigned between interflow storage, upper zone storage and groundwater storage. In this region, the interflow path is not assumed to be drowned by the rising groundwater. However the interflow storage is limited to a maximum, given by a new parameter, the interflow storage capacity, IFWSC. This capacity represents the portion of macropores that will continue to produce interflow into the channels when the saturated zone reaches the surface.

The upper influence elevation is defined in terms of the upper zone nominal storage and the interflow storage capacity:

      UELV = SELV - (4.0*UZSN + IFWSC)/UPGW                           (33)

where:
      UELV  = upper zone and interflow influence level (in)
      SELV  = mean surface elevation (in)
      UZSN  = upper zone nominal storage (in).
      IFWSC = interflow storage capacity (in)
      UPGW  = porosity in macropores in upper soil layer (-)
      4.0   = factor derived from PWATER equations; this factor
              is implemented as a model parameter (UELFAC) to
              allow users to investigate its sensitivity

The total groundwater storage corresponding to a groundwater elevation of UELV is:

      ULGWS = LLGWS + (UELV - LELV)*PGW                               (34)

where:
      ULGWS = total groundwater storage below upper influence level (in)
      LLGWS = total groundwater storage below lower influence level (in)
      PGW   = porosity in macropores (-)

The saturation level of macropores in the upper portion of the soil is a function of the upper zone storage, the interflow storages and the groundwater storage above UELV. Therefore, groundwater elevation in this region is calculated as:

      GWEL = UELV + (UZS + IFWS + (TGWS - ULGWS))/UPGW                (35)

where:
      UPGW = porosity in macropores in the upper soil region (-)

It is important to notice that, even though the calculation of the groundwater elevation above the lower influence level is based only on water stored in macropores, the water that occupies the micropores as the water table rises is being accounted for through the transfers to lower zone storage.

When the groundwater elevation reaches the surface, any additions to groundwater storage are transferred to surface detention storage, and the depth of water over the surface is given by the surface detention storage.

Groundwater transfers to the lower zone, interflow and upper zone are based on the available pore space in each region as defined in the second figure above.

Operation of the Algorithms

The hydrologic processes are modeled in essentially the same order as in PWATER. After the groundwater is simulated, the algorithms compare the current groundwater storage with the value at the beginning of the time interval. Changes in total groundwater storage are a consequence of percolation, evapotranspiration and outflow. Depending on the current value of the total groundwater storage and the current elevation of the water table, the calculated change in total groundwater storage is re-distributed between the various storages affected by the saturated zone. The storages are updated accordingly and the final groundwater storage (after the re-distribution has taken place) is used to determine the new groundwater elevation.

The following sections describe the way in which the model represents the processes in each soil region.

Region 1: Groundwater Elevation Below Lower Zone Influence Level

When the groundwater elevation is below the lower influence elevation, there is no interaction between the saturated and the unsaturated zones.

The PWATER algorithms operate in essentially the same way as before, with two exceptions:

- surface storage and surface runoff calculations; and

- active groundwater outflow calculation.

Surface Runoff and Surface Storage

The standard overland flow algorithms may not be appropriate to represent surface runoff in flat areas, even when the groundwater is well below the surface. The hydraulics of surface flows is complex and is not solely a function of local gradient and roughness. Additionally, water may pond on the surface and be subject to evaporation. Ideas on how to calculate surface runoff and surface storage are discussed later.

Active Groundwater Outflow

The groundwater in these areas is not "perched" groundwater as assumed in the standard PWATER algorithms. If the groundwater elevation is high enough, a portion of the groundwater storage may be "active", i.e., it may provide base flow to nearby channels; the rest is "deep" or "inactive" groundwater. However, it is necessary to account for the entire storage, to calculate the groundwater elevation in each time step.

The algorithms that simulate groundwater storage are modified to represent deep (inactive) groundwater, as well as perched (active) groundwater (groundwater that contributes to base flow). This was done by introducing a new parameter, BELV (active groundwater base elevation parameter). Theoretically, this parameter represents the water elevation in the surrounding channels. However, since water level in channels is a variable that cannot be calculated within PWATER, BELV is approximated by the bottom elevation or the mean water level in the channels.

The total groundwater storage below that base elevation is:

      BGWS = BELV/(PCW + PGW)                                         (36)

where:
      BGWS = groundwater storage below which there is no groundwater
             outflow (in)

When the groundwater elevation is below BELV, there is no outflow from the groundwater storage (AGWO = 0). When the groundwater elevation is above BELV, the groundwater outflow is a function of the active groundwater storage, i.e., the storage above the base level (AGWS=TGWS-BGWS).

Region 2: Groundwater Elevation Between Lower Influence Level and Upper Influence Level.

In this region there are interactions between the saturated and the unsaturated zone, but the upper part of the soil column has not been affected. The upper zone operates as usual. Interflow operates as usual as long as the interflow storage remains above the groundwater elevation. The groundwater starts invading the lower zone and changes in groundwater storage affect lower zone storage. Also, groundwater above the lower zone influence level is subject to evapotranspiration.

Changes in Lower Zone Storage due to Changes in Groundwater Storage

Consider the situation when the water table is rising. In this region, part of the micropore porosity is already occupied by water stored in the lower zone. Since the lower zone represents the micropores in this region, the portion of rising groundwater that enters the micropores is actually increasing the lower zone storage. The groundwater storage is assumed to occupy the macropores. Therefore the algorithms re-distribute the original increase in groundwater storage between AGWS and LZS according to the level of saturation of the lower zone:

      DLZS = DAGWS*((1 - LZS/(2.5*LZSN))*PCW                          (37)

where:
      DLZS  = increase in lower zone storage (in)
      DAGWS = original increase in active groundwater storage (in)

The increase in AGWS (and TGWS) calculated initially is reduced by DLZS:

      DAGWS = DAGWS - DLZS                                            (38)

DLZS represents the added storage in micropores above the lower zone influence level and below the current groundwater elevation. However, when it is added to LZS, it is distributed throughout the entire depth of the lower zone, increasing its saturation uniformly. This is a necessary approximation, in order to avoid subdividing LZS into several storages as a function of depth below the surface.

This redistribution does not occur when the groundwater table is receding (when DAGWS < 0), because water in micropores will not percolate by gravity. Water that entered the lower zone when the groundwater elevation was rising can only leave as evapotranspiration.

Changes in Interflow due to Changes in Groundwater Storage

Interflow storage increases from the surface down. The interflow storage capacity, IFWSC, represents the maximum space available for interflow in the upper layer of the soil. Increases in interflow storage beyond IFWSC are assumed to occupy macropores in region 2 (between the lower and the upper influence levels). There is only a limited volume in macropores in Region 2:

Volume of macropores in Region 2 = (UELV - LELV)*PGW = ULGWS - LLGWS  (39)

where:
      LLGWS = total groundwater storage below LELV (in)
      ULGWS = total groundwater storage below UELV (in)

When the groundwater storage above LELV plus the interflow storage below UELV exceed the macropore space in region 2, water is transferred from interflow storage to groundwater storage:

      IF (IFWS - IFWSC) + (TGWS - LLGWS) > ULGWS - LLGWS THEN      (40)

      DIFWS = (IFWS - IFWSC) + (TGWS - LLGWS) - (ULGWS - LLGWS)
      IFWS  = IFWS - DIFWS
      TGWS  = TGWS + DIFWS

where:
      DIFWS = Transfer from interflow storage to groundwater storage (in)

The model assumes that in this region the interflow path is drowned by the rising groundwater.

Evapotranspiration

Gravitational water above the lower zone influence level is subject to evapotranspiration. In fact, water in macropores will be used up faster than water in micropores. To represent this effect, the way in which PWATER calculates actual evapotranspiration has to be modified.

In the standard PWATER algorithms, evapotranspiration from the groundwater storage occurs only if the parameter AGWETP is greater than zero. AGWETP represents the fraction of remaining potential evapotranspiration that can be sought from groundwater. The algorithms try to satisfy remaining PET from the groundwater storage before using the lower zone storage. This scheme may be valid if the water table is below the lower influence level. However, if the water table is above the lower influence level, additional evapotranspiration from water in macropores should occur. In this model, the algorithms that calculate actual evapotranspiration are modified as follows:

If the groundwater level is below the lower influence level the algorithms operate as before (with the possible addition of surface detention storage evaporation, as discussed later). However, given that the TGWS also represents deep groundwater, a value of AGWETP greater than zero may not be appropriate.

If the groundwater level is above the lower influence level, evapotranspiration from the groundwater storage is still a function of the AGWETP parameter. However, the fraction of remaining potential evapotranspiration (after interception, surface detention and upper zone storages have been used) that can be sought from the total groundwater storage is also proportional to the elevation of the water table above the lower influence level. The equation is:

      AGWET = REMPET*(AGWETP + ((1.0 - AGWETP)*(GWEL-LELV)/(SELV-LELV))) (41)

where:
      AGWET  = evapotranspiration from groundwater (in/interval)
      REMPET = remaining potential evapotranspiration (in/interval).
      AGWETP = active groundwater ET parameter (-)
      GWEL   = groundwater elevation (in)
      SELV   = surface elevation (in)

AGWET cannot exceed the groundwater storage above LELV:

      AGWET = MIN(AGWET, (TGWS - LLGWS))                              (42)

When the groundwater elevation lies in Region 2 or 3, the potential evapotranspiration is applied to lower zone storage before groundwater evaporation takes place.

Region 3: Groundwater Elevation Above Upper Influence Level and Below Surface Elevation

In this region the saturated zone affects the upper layers of the soil column. Upper zone and interflow storage share the macropores with the groundwater storage. The interflow path is not assumed to be drowned by the rising groundwater. However the interflow storage is limited to a maximum, the interflow storage capacity, IFWSC. Interflow inflow from the surface is limited accordingly, and any excess is added back to surface detention storage.

Changes in Upper Zone and Interflow Storages due to Changes in Groundwater Storage

Consider a rising water table. As before, in this region, part of the micropore porosity is occupied by water in the lower zone storage. Groundwater that enters the micropores is represented as a transfer to the lower zone storage and is calculated as described previously for Region 2. The remaining change in groundwater storage is reassigned between interflow storage, upper zone storage and groundwater storage according to the relative saturation levels as follows: The total contribution to interflow and upper zone is inversely proportional to the combined saturation level of these two storages:

      DUZIFS = DAGWS*(1 - (IFWS + UZS)/(4*UZSN + IFWSC))              (43)

where:
      DUZIFS = combined addition to upper zone and interflow storage (in)
      DAGWS  = remaining change in groundwater storage after transfers to
               LZS (in)

DUZIFS is distributed between upper zone and interflow according to the saturation level of the upper zone and the maximum capacity of the interflow storage. In this model it is done as follows:

Determine addition to interflow storage:

      DIFWS = DUZIFS*(1 - UZFRAC)                                     (44)

where:
      DIFWS  = change in interflow storage (in)
      UZFRAC = fraction of potential direct runoff captured by the
               upper zone, as calculated by the UZINF routines of PWATER

If the addition to the interflow storage is such that the interflow storage exceeds its capacity, IFWSC, then the interflow storage is limited to IFWSC, and DIFWS is reduced.

Determine change in upper zone storage:

      DUZS = DUZIFS - DIFWS                                           (45)

where:
      DUZS = change in upper zone storage (in)

Notice that if the interflow storage is below its capacity, the addition to upper zone storage will be proportional to UZFRAC. However, if the interflow storage is at capacity, the addition to upper zone storage will be larger.

When the groundwater table is receding (DAGWS < 0), no water percolates from the lower zone (i.e., DLZS = 0). However, water stored in macropores can percolate down. Therefore, the redistribution of water between groundwater storage, upper zone storage and interflow storage also takes place when the water table is receding (DAGWS < 0). In that case, the distribution is proportional to the saturation levels:

      DUZIFS = DAGWS*(IFWS + UZS)/(4*UZSN + IFWSC)                    (46)

      DIFWS  = DUZIFS*(UZFRAC)                                        (47)

The algorithms check to make sure that the storages do not become negative.

Inflow to Interflow and Surface Detention Storage

As mentioned, when the water table is close to the surface, the interflow storage cannot grow without limit in response to inflow from the surface. The distribution of water available for infiltration and runoff and the inflow to the upper zone are calculated as before. However, the calculated inflows to surface detention storage and interflow storage are checked and, if necessary, redistributed to limit inflow into interflow storage. If the new interflow storage exceeds its capacity, IFWSC, the interflow storage is limited to IFWSC and the interflow inflow is reduced accordingly. The reduction in interflow inflow is added back to the inflow to surface detention storage (PSUR). This requires a change in the order in which processes are simulated in PWATER: interflow has to be simulated before surface runoff, in case there are additions to PSUR.

Evapotranspiration

The existing evapotranspiration from upper zone represents water drawn from macropores in the upper levels of the soil. Therefore, no further changes to the evapotranspiration procedures are considered necessary when the groundwater level exceeds the upper influence level. Evapotranspiration from groundwater storage continues to be calculated as a function of both the parameter AGWETP and the elevation of the water table above the lower influence level, as described in the previous section.

Groundwater Elevation at the Surface.

When the water table reaches the surface, the groundwater storage interacts with the surface detention storage. In this model, the groundwater elevation cannot exceed the surface elevation. Water depths over the land surface are reflected by the depth of the surface detention storage.

Changes in Storages due to Changes in Groundwater:

The groundwater table reaches the surface when the total macropore space in the upper layer has been saturated. In terms of storages, this occurs when:

      IFWS + UZS + (TGWS - ULGWS)  =  4*UZSN + IFWSC                  (48)

This condition does not guarantee that the upper zone and interflow storages will be completely full when the water table reaches the surface. Similarly, there is no guarantee that the lower zone will be completely saturated, even though transfers to the lower zone are made whenever there is an increase in groundwater storage.

While it may seem wrong to have the water table at the surface when there is still space available in some of the storages, the algorithms tend to correct the problem automatically after a few time steps. While the water table remains at the surface, more water continues to be added to the lower zone storage until it is full. The additions to LZS, are calculated as described in the previous section.

In the case of interflow, upper zone and total groundwater, their combined storage cannot change. However, the distribution changes: if UZS and IFWS were not full when the water reached the surface, water is added to these storages until both are full, and the amount of groundwater storage over UELV is decreased accordingly.

Any remaining changes are assigned to surface detention storage as follows:

After DLZS, DIFWS and DUZS have been subtracted:

      IF DAGWS > 0       DSUS = DAGWS                              (49)

where:
      DSUS = change in surface detention storage (in)

This interaction with the surface detention storage does not take place when the groundwater is receding, (DAGWS < 0), because in the existing algorithms surface detention storage is already subject to infiltration.

Evaporation from Surface Detention Storage.

In high water table environments, long term surface inundation may be common, except where it is prevented by drainage works. During periods of inundation water can evaporate from the surface at the potential rate. To simulate this environment, it is necessary to allow evaporation from the surface detention storage. In this model, the surface detention storage is the second source from which PET can be met (after interception storage); water will be drawn from this source until the potential evaporation rate is met or until the storage is empty.

Evaporation from the surface detention storage is active even when the water table is well below the surface. Given the low land gradients, water can pond on the surface and remain there long enough to be subject to evaporation.

Surface Runoff Simulation

In the standard PWATER algorithms, surface runoff is dependent on the characteristics of an "overland flow plane" on the land surface. The length, slope, and roughness of this overland flow plane are model parameters.

Surface runoff in a high water table/low gradient environment is complex. When the land surface is inundated, flow will respond to the differences in the elevation of the water surface. Water surface elevations can be altered by local thermal storms. Flows are dependent on the stage in nearby canals, pumping into and out of feeder canals and shallow groundwater, and gate settings in levees.

Two additional methods are available for computing surface outflow in this model. The first one consists of a power function of the following form:

surface runoff = a * (surface storage)**b,

where a and b are parameters and a = (1-SRRC), a Surface Recession Constant similar to IRC, but evaluated on an hourly basis instead of daily.

      SURO = (1 - SRRC*DELT60)*SURS**SREXP                            (50)

where:
      SURO   = Surface Outflow (in/interval)
      SURS   = Surface Detention Storage (in)
      SRRC   = Hourly recession constant
      SREXP  = Surface runoff exponent (-)
      DELT60 = Hours per interval

Since surface outflow may not always be easily related to the physical characteristics of the land surface, the second option is based on a user-defined function that is provided in tabular form. In this algorithm, the outflow, expressed as a "fraction of the current depth leaving the surface per time interval", is specified in the FTABLES block as a function of the current depth of surface detention storage.


Irrigation

The irrigation module is an addition to PWATER which has three distinct functions:

  1. Calculate gross irrigation demand for a PERLND based on one of three optional methods:
    1. Input time series defined by user.
    2. Crop irrigation demand based on the allowable water depletion in root zone.
    3. Scheduled applications with rates defined by user.

  2. Obtain the water needed for irrigation from one or more of three possible sources, subject to limitation by the amount of water available:
    1. Import from outside basin, including groundwater withdrawals from deep aquifers which are not hydraulically connected to the water table.
    2. Shallow groundwater storage (TGWS) of the same PERLND that is being irrigated.
    3. A stream reach (RCHRES) in the basin.

  3. Apply irrigation water to any of four soil zones, the interception storage of the crop canopy, or any combination of the five.

Irrigation Demand

There are three distinct options for specifying gross irrigation demand. The user inputs a flag to specify the desired option. Demand is measured in inches.

  1. Time series - A time series of gross irrigation demand is developed by the user and stored in the WDM or DSS file. During the run, this time series is input to the irrigation module by including a line in the EXT SOURCES block that transfers the data to the (EXTNL) time series IRRINP.

  2. Crop irrigation demand - This option is based on the AFSIRS model (Smajstrla, 1990) which computes net root zone water requirements from a simplified root zone water balance and crop water-use coefficients. The gross requirement is then calculated using an assumed irrigation efficiency based on the type of watering system. In the HSPF implementation, the water balance is computed by the existing PWATER methods first, and then the irrigation requirements are calculated based on the AFSIRS algorithm. See below for a more detailed description of this method.

  3. Schedule - This option requires the user to specify a date and time, duration, and hourly rate for each irrigation application. If the year is input as zero, then the application will occur each year of the simulation. These annual applications may not cross a year boundary (e.g., date 0/12/31/18:00, duration 16 hours). The maximum number of specified applications allowed per PERLND in a simulation to 20 per PERLND for the entire span of the run. Annual applications count as only one toward this limit, regardless of how many years they are applied.

Irrigation Source

There are three possible sources of water to meet the irrigation demand: imports from outside the basin, local shallow groundwater, and any RCHRES in the run. All three may be used for a specific PERLND, and priorities are input for each of the three possible sources for water. If the demand is greater than the supply for the first-priority source, the second-priority source is used, etc. If more than one source is given the same priority, then fractions are used to specify how much is taken from each source as long as there is sufficient supply. A zero priority indicates that the source is not used. If the supply in all selected sources is not enough to meet demand, the deficit or shortfall is computed.

  1. Import - This is the simplest option. All of the demand is met, and no withdrawals need to be modeled.

  2. Groundwater - In this option, water is drawn from the total groundwater storage (TGWS) of the same PERLND that receives the irrigation application. If the demand is greater than TGWS, only the available storage will be withdrawn.

    If the PWATER parameter KVARY is active so that some of the groundwater is considered to be in "wedge" storage (GWVS), then withdrawals will be removed from this wedge storage first.

    If the High Water Table module is not operating, TGWS is equal to the active groundwater storage (AGWS). Since AGWS is usually considered to be small (on the order of a few inches), the amount of water available from this source may be very limited

    When the High Water Table algorithms are being used, an adequate range between the base elevation BELV and the groundwater datum GWDATM will result in a potentially large reservoir of groundwater, even when the water table is too low to contribute to baseflow.

  3. RCHRES - In this option, water is drawn from an active RCHRES, which may be either upstream or downstream of the PERLND. The user must specify the PERLND area, so that depth units for irrigation demand can be converted to total volume for withdrawal from the reach. This area factor must match the total area for the PERLND that is specified in the SCHEMATIC block in order to maintain the overall water balance in the basin.

    In the RCHRES input, the user specifies that one of the five possible exits for the reach is reserved as the irrigation withdrawal exit. Water that is withdrawn from the RCHRES by any PERLND is removed via this exit prior to the calculation of precipitation, evaporation, or streamflow routing. The parameter IRMINV specifies a minimum volume below which the irrigation exit can not draw. This can be used to prevent problems in the RCHRES water quality sections during low flows, and/or to represent the minimum diversion outlet stage (invert elevation).

    There are two irrigation-related output time series for the HYDR section. RIRDEM is the total amount of irrigation water demanded from a RCHRES per time step. RIRSHT is the shortage, i.e., the difference between the demand and the actual withdrawal. The total actual withdrawals are available for output in the appropriate member of the existing exit-specific output time series OVOL. The printed output also contains the variable RIRWDL, which is equivalent to OVOL for the irrigation exit.

    A given RCHRES may be drawn on by as many PERLNDs in the run as desired. If the total demand from a RCHRES made from all PERLNDs exceeds the available storage (VOL - IRMINV), only the available storage will be withdrawn. This water is allocated to the PERLNDs in the order they are found in the OPN SEQUENCE block, beginning immediately after the RCHRES in question.

Irrigation Application

The application amount may be divided into five separate fluxes based on the soil zone receiving the application: 1) water sprayed from above the plants, and is therefore subject to interception by the crop canopy; 2) water applied directly to the soil surface; 3) water applied to the upper soil zone via buried systems; 4) water likewise applied to the lower soil zone; and 5) water entering directly into the local groundwater, such as seepage irrigation. Input fractions are used to specify this division. These five fractions of application are tracked separately as output fluxes, along with the total application.

If subirrigation is being used (IROPFG=1), then the application fractions are used only for the portion of demand which is intended to raise the root zone water content. SUBDEM, which is the portion of the irrigation demand which is intended to raise the water table, is automatically added to the groundwater regardless of the fractions.

Detailed Description of Crop Root Zone Irrigation Requirements Algorithm

This method, based on the AFSIRS model, computes irrigation needs based on the water stored in the root zone of the soil. The actual storage in the soil down to the crop root depth is compared against the available water capacity (AWC). When the storage above the wilting point is reduced to a specified fraction of AWC (called the allowable water depletion), the net irrigation requirement is set to the amount needed to restore the entire root zone to field capacity. Finally, the gross irrigation requirement is computed from the net requirement based on a user-specified efficiency factor.

The key parameters are the soil-specific field capacity (FLDCAP) and wilting point (WILTP), the crop root depth (CRDEP), the allowable water depletion (IRAWD), and the irrigation efficiency (IREFF). The field capacity and wilting point are used to determine the available water capacity. The irrigated crop root depth is used along with AWC to calculate the root zone water storage capacity (RZWSC). The allowable water depletion is the fraction of RZWSC that can be depleted without reducing crop yield.

The root depth and allowable water deficiency for annual crops may be constant, or vary monthly, or may vary according to four crop growth stages, with the durations specified as fractions of the total irrigation season. Up to three crop seasons per year may be specified, in order to simulate crop rotations.

The PWATER section computes the water storage in each of four soil layers or zones, i.e., surface, upper, lower, and groundwater. These storages are related to the root zone storage via the crop root depth and the depths of the soil zones, which must be specified by the user. Once the hydrology is computed in PWATER, the irrigation demand is computed as follows:

The root zone capacity and storage are computed first. The available water capacity (AWC) is:

         AWC   = FLDCAP - WILTP	(51)

The root zone water storage capacity RZWSC varies with crop root depth CRDEP.

         RZWSC = AWC*CRDEP + WILTP	(52)

The actual root zone water storage (RZWS) is computed from the water storages in each soil zone. Since the surface layer is generally considered to be extremely shallow (on the order of 1 cm), the root zone should always extend at least down into the upper soil zone. The details of the RZWS calculation depend on whether the High Water Table algorithms are in use.

In the normal (non-High Water Table) case, the irrigation module looks at the soil layer depths directly. If the root zone extends only into the upper soil zone, then RZWS is the sum of the surface storage (SURS) plus the portion of the upper zone storage (UZS) and interflow storage (IFWS) within the root depth:

         RZWS  = SURS + (UZS + IFWS)*((CRDEP - SOILD(1))/SOILD(2))	(53)

where SOILD(1) and SOILD(2) are the depths of the surface and upper soil zones. The ratio in parentheses therefore represents the fraction of the upper zone which lies within CRDEP of the surface. For example, if the crop root depth on a given day is 6 cm, the surface depth is 1 cm, and the upper zone depth is 10 cm, then the root zone water storage is the sum of the surface storage plus one half of the upper zone storage (i.e., (6-1)/10 = 0.5).

Likewise, if the root zone extends into the lower soil zone, then the entire UZS and IFWS are included in RZWS, as well as the portion of the lower zone storage (LZS) within the root depth:

      RZWS  = SURS + UZS + IFWS + LZS*((CRDEP - SOILD(1)) - SOILD(2))/SOILD(3))	(54)

where SOILD(3) is the lower zone soil depth. In both cases, the vertical distribution of the water storage in each soil zone is assumed to be uniform.

If the High Water Table algorithms are not being used, all of the groundwater is assumed to lie at the bottom of the active groundwater zone, since it drains by gravity instead of being held in tension by capillary forces. Therefore, the groundwater is assumed to lie below the root zone unless the root depth extends all the way to the bottom of the zone.

When the High Water Table algorithms are active, then the computation of RZWS is based on the Upper and Lower Influence Elevations. First, the elevation of the bottom of the root zone CRDELV is computed as

      CRDELV = SELV - CRDEP	(55)

If CRDELV is below UELV, then all of UZS and IFWS are included in RZWS. If CRDELV is above UELV, then the fraction of UZS plus IFWS that is available in the root zone is

      CRDEP/(SELV - UELV)

Likewise, if CRDELV is below LELV, then all of LZS is included in RZWS, while if it is above LELV, the fraction of LZS that lies in the root zone is:

      CRDEP/(SELV - LELV)

If the groundwater level rises up into the root zone, then it has already "drowned out" some of these storages, and the remaining portions lie closer to the surface. In this case, both of the above fractions become:

      CRDEP/(SELV - GWEL)

and all of the groundwater above CRDELV is also added to RZWS.

The irrigation demand is calculated by comparing the RZWS to the minimum storage above the wilting point which is needed to maintain crop yield (MINWS). First, MINWS is computed using the allowable water deficiency (AWD), which is applied only to the portion of the root zone capacity RZWSC which is above the wilting point.

      MINWS = (RZWSC - CRDEP*WILTP)*(1.0 - AWD) + CRDEP*WILTP	(56)

If RZWS is greater than or equal to MINWS, then no irrigation occurs. Otherwise the net irrigation requirement (NIR) is:

      NIR   = ARZI*CRDEP*FLDCAP - RZWS	(57)

Finally, the gross irrigation requirement (IRRDEM) is calculated using the efficiency (IREFF):

     IRRDEM = NIR/IREFF	(58)

The user may specify that the subirrigation method is being used by turning on the flag IROPFG. In this case, in addition to the demand to the root zone (normally applied directly to the lower zone), water may be needed to raise the water table. In this method, it is assumed that the water table must be close to the bottom of the root zone, so that capillary rise can supply water to the root zone. The maximum distance between the root zone and the water table is input by the user as the parameter CAPRIS. If the groundwater elevation is below this level, an additional irrigation demand SUBDEM is computed to raise the water table to the bottom of the root zone. This portion of the demand is automatically applied directly to the local groundwater, regardless of the application fractions specified in the array IRRTGT. If subirrigation is used, the irrigation sources should generally not include the local groundwater because of the likelihood of the algorithm simply cycling large amounts of withdrawals and applications from the same storage as it unsuccessfully attempts to raise the water table.


Production and Removal of Sediment - SEDMNT

 (Section SEDMNT of Module PERLND)

Purpose

Module section SEDMNT simulates the production and removal of sediment from a pervious land segment. Sediment can be considered to be inorganic, organic, or both; the definition is up to the user.

Sediment from the land surface is one of the most common pollutants of waters from urban, agricultural, and forested lands. It muddies waters, covers fish eggs, and limits the capacity of reservoirs. Nutrients and toxic chemicals are carried by it.

Approach

The equations used to produce and remove sediment are based on the predecessor models ARM and NPS (Donigian and Crawford, 1976 a,b). The algorithms representing land surface erosion in these models were derived from a sediment model developed by Negev (1967) and influenced by Meyer and Wischmeier (1969) and Onstad and Foster (1975). The supporting management practice factor which has been added to the soil detachment by rainfall equation was based on the "P" factor in the Universal Soil Loss Equation (Wischmeier and Smith, 1965). It was introduced in order to better evaluate agricultural conservation practices. The equation that represents scouring of the matrix soil (which was not included in ARM or NPS) was derived from Negev's method for simulating gully erosion.

Figure "Erosion processes" shows the detachment, attachment, and removal involved in the erosion processes on the pervious land surface, while Figure "Flow diagram for SEDMNT section of PERLND Application Module" schematically represents the fluxes and storages used to simulate these processes. Two of the sediment fluxes, SLSED and NVSI, are added directly to the detached sediment storage variable DETS in the parent routine SEDMNT while the other fluxes are computed in subordinate routines. SLSED represents external lateral input from an upslope land segment. It is a time series which the user may optionally specify. NVSI is a parameter that represents any net external additions or removals of sediment caused by human activities or wind.

Removal of sediment by water is simulated as washoff of detached sediment in storage (WSSD) and scour of matrix soil (SCRSD). The washoff process involves two parts: the detachment/attachment of sediment from/to the soil matrix and the transport of this sediment. Detachment (DET) occurs by rainfall. Attachment occurs only on days without rainfall; the rate of attachment is specified by parameter AFFIX. Transport of detached sediment is by overland flow. The scouring of the matrix soil includes both pick-up and transport by overland flow combined into one process.

Erosion processes

Flow diagram for SEDMNT section of PERLND Application Module

Module section SEDMNT has two options for simulating washoff of detached sediment and scour of soil. One uses subroutine SOSED1 which is identical to the method used in the ARM and the NPS Models. However, some equations used in this method are dimensionally nonhomogeneous, and were designed for 15- and 5-min intervals. The results obtained are probably highly dependent on the simulation time step. The other option uses subroutine SOSED2, which is dimensionally homogeneous and is, generally less dependent on the time step.


Detach Soil By Rainfall - DETACH

 (subroutine DETACH)

Purpose

The purpose of DETACH is to simulate the splash detachment of the soil matrix caused by impact of rain.

Method of Detaching Soil by Rainfall

Kinetic energy from rain falling on the soil detaches particles which are then available to be transported by overland flow. The equation that simulates detachment is:

    DET    = DELT60*(1.0 - CR)*SMPF*KRER*(RAIN/DELT60)**JRER           (1)

where:
    DET    = sediment detached from the soil matrix by rainfall
             (tons/ac/interval)
    DELT60 = number of hours/interval
    CR     = fraction of the land covered by snow and other cover
    SMPF   = supporting management practice factor
    KRER   = detachment coefficient dependent on soil properties
    RAIN   = rainfall (in/interval)
    JRER   = detachment exponent dependent on soil properties

The variable CR is the sum of the fraction of the area covered by the snowpack (SNOCOV), if any, and the fraction that is covered by anything else but snow (COVER). SNOCOV is computed by section SNOW. COVER is a parameter which for pervious areas will typically be the fraction of the area covered by vegetation and mulch. It can be input on a monthly basis.


Remove by Surface Flow - SOSED1

 (subroutine SOSED1)

Purpose

Simulate the washoff of the detached sediment and the scouring of the soil matrix.

Method

When simulating the washoff of detached sediment, the transport capacity of the overland flow is estimated and compared to the amount of detached sediment available. The transport capacity is calculated by the equation:

     STCAP = DELT60*KSER*((SURS + SURO)/DELT60)**JSER                  (2)

where:
     STCAP  = capacity for removing detached sediment (tons/ac/interval)
     DELT60 = hr/interval
     KSER   = coefficient for transport of detached sediment
     SURS   = surface water storage (inches)
     SURO   = surface outflow of water (in/interval)
     JSER   = exponent for transport of detached sediment

When STCAP is greater than the amount of detached sediment in storage, washoff is calculated by:

     WSSD = DETS*SURO/(SURS + SURO)                                    (3)

If the storage is sufficient to fulfill the transport capacity, then the following relationship is used:

     WSSD = STCAP*SURO/(SURS + SURO)                                   (4)

where:
     WSSD = washoff of detached sediment (tons/ac/interval)
     DETS = detached sediment storage (tons/ac)

WSSD is then subtracted from DETS.

Transport and detachment of soil particles from the soil matrix is simulated with the following equation:

     SCRSD = SURO/(SURS + SURO)*DELT60*KGER*((SURS + SURO)/DELT6O)**JGER (5)

where:
     SCRSD = scour of matrix soil (tons/ac/interval)
     KGER  = coefficient for scour of the matrix soil
     JGER  = exponent for scour of the matrix soil

The sum of the two fluxes, WSSD and SCRSD, represents the total sediment outflow from the land segment.

Subroutine SOSED1 differs from SOSED2 in that it uses the dimensionally nonhomogeneous term (SURS + SURO)/DELT60 in the above equations, while SOSED2 uses the homogeneous term SURO/DELT60.


Remove by Surface Flow - SOSED2

 (subroutine SOSED2)

Purpose

The purpose of this subroutine is the same as SOSED1 (above). It only differs in method.

Method of Determining Removal

This method of determining sediment removal makes use of the dimensionally homogeneous term SURO/DELT60 instead of (SURO+SURS)/DELT60.

The capacity of the overland flow to transport detached sediment is determined in this subroutine by:

STCAP = DELT60*KSER*(SURO/DELT60)**JSER (6)

When STCAP is more than the amount of detached sediment in storage, the flow washes off all of the detached sediment storage (DETS). However, when STCAP is less than the amount of detached sediment in storage, the situation is transport limiting, so WSSD is equal to STCAP.

Direct detachment and transport of the soil matrix by scouring (e.g., gullying) is simulated with the equation:

SCRSD = DELT60*KGER*(SURO/DELT60)**JGER (7)

Definitions of the above terms can be found in the previous section (i.e., description of subroutine SOSED1). The coefficients and exponents will have different values than in subroutine SOSED1 because they modify different variables.


Re-attachment of Detached Sediment - ATTACH

 (subroutine ATTACH)

Purpose

Subroutine ATTACH simulates the re-attachment of detached sediment (DETS) on the surface (soil compaction).

Method

Attachment to the soil matrix is simulated by merely reducing DETS. Since the soil matrix is considered to be unlimited, no addition to the soil matrix is necessary when this occurs. DETS is diminished at the start of each day that follows a day with no precipitation by multiplying it by (1.0 - AFFIX), where AFFIX is a parameter. This represents a first-order rate of reduction of the detached soil storage.


Soil Temperatures - PSTEMP

 (Section PSTEMP of Module PERLND)

Purpose

PSTEMP simulates soil temperatures for the surface, upper, and lower/groundwater layers of a land segment for use in module section PWTGAS and the agri-chemical sections. Good estimates of soil temperatures are particularly important for simulating first-order transformations in the agri-chemical sections.

Method

The two methods used for estimating soil temperatures are based on the regression equation approach in the ARM Model (Donigian, et al., 1977) and the smoothing factor approach used in HSP QUALITY (Hydrocomp, 1977) to simulate the temperatures of subsurface flows.

Simulation of soil temperatures is done by layers which correspond to those specified in the agri-chemical sections. The surface layer is the portion of the land segment that affects overland flow water quality characteristics. The subsurface layers are upper, lower, and groundwater. The upper layer affects interflow quality characteristics while the lower layer is a transition zone to groundwater. The temperature of the groundwater layer affects groundwater quality transformations and outflow characteristics. Lower layer and groundwater temperatures are considered approximately equal; a single value is estimated for both layers.

Surface layer soil temperatures are estimated by the following regression equation:

     SLTMP = ASLT + BSLT*AIRTC                                         (1)

where:
     SLTMP = surface layer temperature (degrees C)
     ASLT  = Y-intercept
     BSLT  = slope
     AIRTC = air temperature (degrees C)

Temperatures of the other layers are simulated by one of two methods. If TSOPFG is set equal to 1 in the User's Control Input, the upper layer soil temperature is estimated by a regression equation as a function of air temperature (similar to equation above), and the lower layer/groundwater layer temperature is specified by a parameter which can vary monthly. This method is similar to that used in the ARM Model except that ARM relates the upper layer temperature to the computed soil surface temperature instead of directly to air temperature.

If TSOPFG is set equal to zero, both the upper layer and the lower layer/ groundwater layer temperatures are computed by using a mean departure from air temperature plus a smoothing factor. The same basic equation is used with separate state variables and parameters for each layer:

     TMP = TMPS + SMO*(AIRTCS + TDIF - TMPS)                           (2)

where:
     TMP    = layer temperature at the end of the current interval
              (degrees C)
     SMO    = smoothing factor (parameter)
     AIRTCS = air temperature at the start of the current interval
              (degrees C)
     TDIF   = parameter which specifies the difference between the mean
              air temperature and the mean temperature of the soil layer
              (degrees C)
     TMPS   = layer temperature at the start of the current interval
              (degrees C)

If TSOPFG is set to 2, then the method is identical to the above, except that the lower layer/groundwater layer temperature is estimated from the upper layer temperature (ULTMP), instead of directly from the air temperature.

The values of the parameters for any of the layer computations can be linearly interpolated from monthly input values to obtain daily variations throughout the year. If this variation is not desired, the user may supply yearly (constant) values.


Water Temperature and Dissolved Gas Concentrations - PWTGAS

 (Section PWTGAS of Module PERLND)

Purpose

PWTGAS estimates water temperature and concentrations of dissolved oxygen and carbon dioxide in surface, interflow, and groundwater outflows from a land segment.

Method

The temperature of each outflow is considered to be the same as the soil temperature of the layer from which the flow originates, except that water temperature can not be less than freezing. Soil temperatures must either be computed in module section PSTEMP or supplied directly as an input time series. The temperature of the surface outflow is equal to the surface layer soil temperature, the temperature of interflow to the upper layer soil temperature, and the temperature of the active groundwater outflow equals the lower layer and groundwater layer soil temperature.

The dissolved oxygen and carbon dioxide concentrations of the overland flow are assumed to be at saturation and are calculated as direct functions of water temperature. PWTGAS uses the following empirical nonlinear equation to relate dissolved oxygen at saturation to water temperature (Committee on Sanitary Engineering Research, 1960):

     SODOX = (14.652 + SOTMP*(-0.41022 +
             SOTMP*(0.007991 - 0.000077774*SOTMP)))*ELEVGC             (1)

where:
     SODOX  = concentration of dissolved oxygen in surface outflow (mg/l)
     SOTMP  = surface outflow temperature (degrees C)
     ELEVGC = correction factor for elevation above sea level
              (ELEVGC is calculated by the Run Interpreter dependent upon
              mean elevation of the segment)

The empirical equation for dissolved carbon dioxide concentration of the overland flow (Harnard and Davis, 1943) is:

     SOCO2 = (10**(2385.73/ABSTMP - 14.0184 + 0.0152642*ABSTMP))*
              0.000316*ELEVGC*12000.0                                  (2)

where:
     SOCO2  = concentration of dissolved carbon dioxide in surface outflow
              (mg C/l)
     ABSTMP = temperature of surface outflow (degrees K)

The concentrations of dissolved oxygen and carbon dioxide in the interflow and the active groundwater flow cannot be assumed to be at saturation. Values for these concentrations are provided by the user. They may be specified as constant values or 12 monthly values. If monthly values are provided, daily variation in values will automatically be obtained by linear interpolation between the monthly values.


Lateral inflows

If lateral inflows are being modeled, then the lateral inflow concentrations are used to modify the outflow concentrations according to the following equation:

      OCONC = LIFAC*LICONC + (1.0 - LIFAC)*CONC                        (3)

where:
      OCONC  = effective outflow concentration
      LIFAC  = lateral inflow weighting factor for soil laye
      LICONC = lateral inflow concentration
      CONC   = outflow concentration computed from other algorithms
               and parameters

This algorithm is used for the following: heat and dissolved gases in PERLND PWTGAS and IMPLND IWTGAS; QUALSDs in PERLND PQUAL and IMPLND IQUAL; and QUALIFs and QUALGWs in PERLND PQUAL. Temperatures and sediment potency factors are treated in the same manner as concentrations.

LIFAC is a dimensionless input parameter in Table-type LAT-FACTOR in PWTGAS and LAT-FACTOR in IWTGAS. Separate factors are given for sediment-, surface-, interflow-, and baseflow-associated constituents


Quality Constituents Using Simple Relationships - PQUAL

 (Section PQUAL of Module PERLND)

Purpose

The PQUAL module section simulates water quality constituents or pollutants in the outflows from a pervious land segment using simple relationships with water and/or sediment yield. Any constituent can be simulated by this module section. The user supplies the name, units and parameter values appropriate to each of the constituents that are needed in the simulation. However, more detailed methods of simulating sediment, heat, dissolved oxygen, dissolved carbon dioxide, nitrogen, phosphorus, soluble tracers, and pesticide removal from a pervious land segment are available, in other module sections.

Approach

The basic algorithms used to simulate quality constituents are a synthesis of those used in the NPS Model (Donigian and Crawford, 1976b) and HSP QUALITY (Hydrocomp, 1977). However, some options and combinations are unique to HSPF.

Figure "Flow diagram for PQUAL section of the PERLND Application Module" shows schematically the fluxes and storages represented in module section PQUAL. The occurrence of a water quality constituent in both surface and subsurface outflow can be simulated. The behavior of a constituent in surface outflow is considered more complex and dynamic than the behavior in subsurface flow. A constituent on the surface can be affected greatly by adhesion to the soil and by temperature, light, wind, atmospheric deposition, and direct human influences. Section PQUAL is able to represent these processes in a general fashion. It allows quantities in the surface outflow to be simulated by two methods. One approach is to simulate the constituent by association with sediment removal. The other approach is to simulate it using atmospheric deposition and/or basic accumulation and depletion rates together with depletion by washoff; that is, constituent outflow from the surface is a function of the water flow and the constituent in storage. A combination of the two methods may be used in which the individual outfluxes are added to obtain the total surface outflow. These approaches will be discussed further in the descriptions of the corresponding subroutines. Concentrations of quality constituents in the subsurface flows of interflow and active groundwater are specified by the user. The concentration may be linearly interpolated to obtain daily values from input monthly values.

The user has the option of simulating the constituents by any combination of these surface and subsurface outflow pathways. The outflux from the combination of the pathways simulated will be the total outflow from the land segment. In addition, the user is able to select the units to be associated with the fluxes. These options provide considerable flexibility. For example, a user may wish to simulate coliforms in units of organisms/ac by association with sediment in the surface runoff and use a concentration in the groundwater which varies seasonally. Or a user may want to simulate total dissolved salts in pounds per acre by direct association with overland flow and a constant concentration in interflow and groundwater flow.

Flow diagram for PQUAL section of the PERLND Application Module

PQUAL allows the user to simulate up to 10 quality constituents at a time. Each of the 10 constituents may be defined as one or a combination of the following types: QUALSD, QUALOF, QUALIF, and/or QUALGW. If a constituent is considered to be associated with sediment, it is called a QUALSD. The corresponding terms for constituents associated with overland flow, interflow, and groundwater flow are QUALOF, QUALIF, and QUALGW, respectively. Note that only a QUALOF may receive atmospheric deposition, since it is the only type to maintain a storage. However, no more than seven of any one of the constituent types (QUALSD, QUALOF, QUALIF, or QUALGW) may be simulated in one operation. The program uses a set of flag pointers to keep track of these associations. For example, QSDFP(3) = 0 means that the third constituent is not associated with sediment, whereas QSDFP(6) = 4 means that the sixth constituent is the fourth sediment associated constituent (QUALSD). Similar flag pointer arrays are used to indicate whether or not a quality constituent is a QUALOF, QUALIF, or QUALGW.


Remove by Association with Sediment - QUALSD

 (subroutine QUALSD)

Purpose

QUALSD simulates the removal of a quality constituent from a pervious land surface by association with the sediment removal determined in module section SEDMNT.

Method

This approach assumes that the particular quality constituent removed from the land surface is in proportion to the sediment removal. The relation is specified with user-input "potency factors." Potency factors indicate the constituent strength relative to the sediment removed from the surface. Various quality constituents such as iron, lead, and strongly adsorbed toxicants are actually attached to the sediment being removed from the land surface. Some other pollutants such as ammonia, organics, pathogens, and BOD may not be extensively adsorbed, but can be considered highly correlated to sediment yield.

For each quality constituent associated with sediment, the user supplies separate potency factors for association with washed off and scoured sediment (WSSD and SCRSD). Typically, the washoff potency factor would be larger than the scour potency factor because washed off sediment is usually finer than the scoured material and thus has a higher adsorption capacity. Organic nitrogen would be a common example of such a constituent. The user is also able to supply monthly potency factors for constituents that vary somewhat consistently during the year. For instance, constituents that are associated with spring and fall fertilization may require such monthly input values.

Removal of the sediment associated constituent by detached sediment washoff is simulated by:

     WASHQS = WSSD*POTFW                                               (1)

where:
     WASHQS = flux of quality constituent associated with
              detached sediment washoff (quantity/ac per interval)
     WSSD   = washoff of detached sediment (tons/ac per interval)
     POTFW  = washoff potency factor (quantity/ton)

If lateral inflow of a QUALSD is considered, then the inflow potency factor SLIQSP, which is input as a time series, and the current washoff potency factor POTFW are combined in a weighted average using the input parameter SDLFAC. The modified effective potency factor is used in place of POTFW. (See lateral inflows for a description of the weighting method.)

Removal of constituents by scouring of the soil matrix is similar:

     SCRQS = SCRSD*POTFS                                               (2)

where:
     SCRQS = flux of quality constituent associated with scouring
             of the matrix soil (quantity/ac per interval)
     SCRSD = scour of matrix soil (tons/ac per interval)
     POTFS = scour potency factor (quantity/ton)

WASHQS and SCRQS are combined to give the total sediment associated flux of the constituent from the land segment, SOQS.

The unit "quantity" refers to mass units (pounds or tons in the English system) or some other quantity, such as number of organisms for coliforms. The unit is user-specified.


Accumulate and Remove by a Constant Unit Rate and by Overland Flow - QUALOF

 (subroutine QUALOF)

Purpose

QUALOF simulates the accumulation of a quality constituent on the pervious land surface and its removal by a constant unit rate and by overland flow.

Method

This subroutine differs from the others in module section PQUAL in that the storage of the quality constituent on the land surface is simulated. The constituent can be accumulated and removed by processes which are independent of storm events such as cleaning, decay, and wind erosion and deposition, or it can be washed off by overland flow. The accumulation and removal rates can have monthly values to account for seasonal fluctuations. A pollution indicator such as fecal coliform from range land is an example of a constituent with accumulation and removal rates which may need to vary throughout the year. The concentration of the coliform in the surface runoff may fluctuate with the seasonal grazing density, and the weather.

The constituent may, alternatively or additionally, receive atmospheric deposition. Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for PERLND, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

If atmospheric deposition data are input to the model, the storage of qual is updated as follows:

     SQO = SQO + ADFX + PREC*ADCN                                      (3)

where:
     SQO  = storage of available quality constituent on the surface
            (mass/area)
     ADFX = dry or total atmospheric deposition flux (mass/area per
            interval)
     PREC = precipitation depth
     ADCN = concentration for wet atmospheric deposition (mass/volume)

If there is lateral inflow of QUALOF, then it is added directly to SQO.

When there is surface outflow and some quality constituent is in storage, washoff is simulated using the commonly used relationship:

     SOQO = SQO*(1.0 - EXP(-SURO*WSFAC))                               (4)

where:
     SOQO  = washoff of the quality constituent from the land
             surface (quantity/ac per interval)
     SQO   = storage of available quality constituent on the surface
             (quantity/ac)
     SURO  = surface outflow of water (in/interval)
     WSFAC = susceptibility of the quality constituent to washoff (/in)
     EXP   = exponential function

If QSOFG=1, then the storage is updated once a day to account for accumulation and removal which occurs independent of runoff by the equation:

     SQO = ACQOP + SQOS*(1.0 - REMQOP)                                 (5)

where:
     ACQOP  = accumulation rate of the constituent (quantity/ac per day)
     SQOS   = SQO at the start of the interval
     REMQOP = unit removal rate of the stored constituent (per day)

If QSOFG is 2, then accumulation and removal occur every interval, and the removal rate is applied to atmospheric deposition and lateral inflows, as well as the accumulation rate.

The removal rate is recomputed every interval as:

     REMOV= REMQOP + INTOT/(ACQOP/REMQOP)                             (5a)

where:
     INTOT  = total of atmospheric deposition and lateral inflow

REMOV is capped at 1.0, and then the storage is updated as:

     SQO= ACQOP*(DELT60/24.0)+ SQO*(1.0-REMOV)**(DELT60/24.0)         (5b)

where:
     DELT60 = number of hours per interval

The Run Interpreter computes REMQOP and WSFAC for this subroutine according to:

     REMQOP = ACQOP/SQOLIM                                             (6)

where:
     SQOLIM = asymptotic limit for SQO as time approaches infinity
              (quantity/ac), if no washoff occurs

and

     WSFAC = 2.30/WSQOP                                                (7)

where:
     WSQOP = rate of surface runoff that results in 90 percent washoff in
             one hour (in/hr)

Since the unit removal rate of the stored constituent (REMQOP) is computed from two other parameters, it does not have to be supplied by the user.


Association with Interflow Outflow - QUALIF

 (subroutine QUALIF)

Purpose

QUALIF is designed to permit the user to simulate the occurrence of a constituent in interflow.

Method

The user specifies a concentration for each constituent which is a QUALIF. Optionally, one can specify 12 monthly values, to account for seasonal variation. In this case, the system interpolates a new value each day.

If a lateral inflow concentration is input, then the effective outflow concentration is a weighted average of the computed value and the lateral inflow using the input parameter ILIFAC. (See lateral inflows for a description of the averaging method.)


Association with Active Groundwater Outflow - QUALGW

 (subroutine QUALGW)

Purpose

QUALGW is designed to permit the user to simulate the occurrence of a constituent in groundwater outflow.

Method

The method is identical to that for QUALIF, except that ALIFAC is used as the lateral inflow weighting factor.


Introduction to the Agri-chemical Sections

 (MSTLAY, PEST, NITR, PHOS, TRACER)

The introduction of agricultural chemicals into streams, lakes, and groundwater from agricultural land may be detrimental. For example, persistent fat soluble pesticides, such as DDT, have been known to concentrate in the fatty tissue of animals causing toxic effects. Nitrogen and phosphorus are essential plant nutrients which when introduced into certain surface waters will increase productivity. This may or may not be desirable depending upon management objectives. Significant productivity results in algal blooms, but some increase in productivity will increase fish production. Drinking water containing high nitrate concentrations may cause methomoglobinemia in small children.

Pesticide, nitrogen, and phosphorus compounds are important to agricultural production, but prediction of their removal from the field is necessary for wise management of both land and water resources. HSPF can be used to predict such outflows. The agri-chemical sections of the PERLND module of HSPF simulate detailed nutrient and pesticide processes, both biological and chemical, and the movement of any nonreactive tracer in a land segment. These chemicals can also be simulated in module section PQUAL, but in a simplified manner. The dynamic and continuous processes that affect the storages and outflow of pesticides and nutrients from fertilized fields should often be simulated in detail to fully analyze agricultural runoff. If the situation does not require full representation of these processes, or if sufficient data are not available, the PQUAL subroutines can be used.

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for module PERLND, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

An additional use of the atmospheric deposition time series is specifying inputs of agricultural chemicals and fertilizers instead of changing soil storages in the SPEC-ACTIONS block. For this purpose, deposition to the upper soil layer in addition to the surface soil layer has been provided for in sections NITR, PHOS, and TRACER. (Section PEST has time series only for the surface layer, since pesticides are not normally incorporated into the soil as are fertilizers.) Depending on the complexity of the agricultural practices being modeled, the user should decide whether the SPEC-ACTIONS block or the time series is simpler to construct.

The basic algorithms in the agri-chemical sections of HSPF were originally developed for use on agricultural lands, but can be used on other pervious areas where pesticides and plant nutrients occur, for example, orchards, nursery land, parks, golf courses, and forests. All pervious land contains nitrogen and phosphorus in the soil; it is possible to use this module to simulate the behavior of agricultural chemicals in any such area.

Comparison of HSPF and Predecessor Models

The methods used to simulate pesticide processes in the agri-chemical sections were developed originally for the Pesticide Transport and Runoff (PTR) Model (Crawford and Donigian, 1973), then expanded to include nutrients in the Agricultural Runoff Management (ARM) Model (Donigian and Crawford, 1976) and tested and modified in ARM Version II (Donigian, et al., 1977). In HSPF the ARM Version II algorithms were implemented with some additional options. For more detail on the basic methods, the reader should refer to the cited reports.

The differences between HSPF and ARM Model Version II should, however, be discussed. The biggest difference is the availability of new options to simulate soil nutrient and pesticide adsorption and desorption. Ammonium and phosphate adsorption/desorption in HSPF can be accomplished by using Freundlich isotherms as well as first-order kinetics. Pesticides can be adsorbed and desorbed by the two Freundlich methods used in the ARM Model or first-order kinetics. In addition, the pesticide parameter values are now input for each separate soil layer instead of applying one parameter set to the complete soil profile. HSPF also allows the user to simulate more than one pesticide in a run, while the ARM Model is limited to one. In addition to the percolation factors which can still be used to retard any solute leaching from the upper layer and lower layer, a multiplication factor has been introduced that can reduce leaching from the surface layer. Also, in HSPF, nitrogen and phosphorus chemical and biochemical transformations can be simulated at different time steps to save computation time. Plant uptake of ammonium is also available in HSPF.

Units

The fluxes and storages of chemicals modeled in these module sections are in mass per area units. The user must supply the input in appropriate units; kg/ha for the Metric system, and lb/ac for the English system. Internally, most of the code does not differentiate between the unit systems. Fluxes are determined by either proportionality constants, fractions of chemicals in storage, or unitless concentrations. First-order kinetics makes use of proportionality constants for determining reaction fluxes. Chemicals are transported based on the fractions of that compound in storage. Freundlich adsorption/desorption is based on ppm concentrations.

Module Sections

There are five agri-chemical module sections. They are shown in the structure chart of PERLND. Module section MSTLAY manipulates water storages and fluxes calculated in module section PWATER. This section must be run before the following sections can be run, since it supplies them with data for simulating the storage and movement of solutes. Module section PEST simulates pesticide behavior while NITR and PHOS simulate the plant nutrients of nitrogen and phosphorus. Simulation of a non-reactive, non-adsorbing solute is accomplished in module section TRACER.


Moisture Content of Soil Layers - MSTLAY

 (Section MSTLAY of Module PERLND)

Purpose

This module section estimates the storages of moisture in the four soil layers with which the agricultural chemical sections deal and the fluxes of moisture between the storages. MSTLAY is required because the moisture storages and fluxes computed by module section PWATER can not be directly used to simulate solute transport through the soil. For example, in PWATER, some moisture which infiltrates can reach the groundwater in a single time step. While this phenomenon does not have any serious impact in simulating the hydrologic response of a land segment, it does seriously affect the simulation of solute transport.

Thus, MSTLAY takes the fluxes and storages computed in PWATER and adapts them to fit the storage/flow path picture in the figure below. The revised storages, in inches of water, are also expressed in mass/area units (that is, lb/ac or kg/ha) for use in the adsorption/desorption calculations.

Method

The figure below schematically diagrams the moisture storages and fluxes used in subroutine MSTLAY. Note that the fluxes are represented in terms of both quantity (e.g., IFWI, in inches/interval) and as a fraction of the contributing storage (e.g., FII, as a fraction of UMST/interval). The reader should also refer to Figure "Flow diagram of water movement and storages modeled in the PWATER section of the PERLND Application Module" in module section PWATER when studying this diagram and the following discussion.

For the agri-chemical sections, the moisture storages (the variables ending in MST) are calculated by the general equation:

     MST = WSTOR + WFLUX                                               (1)

The variable WSTOR is the related storage calculated in module section PWATER. For example, in the calculation of the lower layer moisture storage (LMST), WSTOR is the lower zone storage (LZS). The variable WFLUX generally corresponds to the flux of moisture through the soil layer. For the computation of LMST, WFLUX is the sum of water percolating from the lower zone to the inactive (IGWI) and active groundwater (AGWI) as determined in section PWATER. Note that these equations are dimensionally non-homogeneous, because storages (inches) and fluxes (inches/interval) are added together. Thus, the results given are likely to be highly dependent on the simulation time step. The ARM Model, from which the equations come, uses a time step of 5 minutes. Caution should be exercised if the agricultural chemical sections (including MSTLAY) are run with any other time step.

The upper layer has been subdivided into two storages, principal and transitory. The transitory (interflow) storage is used to transport chemicals from the upper layer to interflow outflow. The chemicals in the transitory storage do not undergo any reactions. However, reactions do occur in the principal storage.

Flow diagram showing transport of moisture and solutes as estimated in the MSTLAY section of the PERLND Application Module

The fluxes shown are the same as those in Figure "Flow diagram of water movement and storages modeled in the PWATER section of the PERLND Application Module" in module section PWATER with the exceptions of SDOWN and UDOWN. SDOWN encompasses all the water that moves downward from the surface layer storage. It is the combination of the water infiltrating from the surface detention storage directly to the lower zone (INFIL), the inflow to the upper zone (UZI), and the water flowing into interflow storage (IFWI). UDOWN is all the water percolating through the upper layer. It is INFIL plus the percolation from the upper zone storage to the lower zone storage (PERC).

Each fractional solute flux is the appropriate moisture flux divided by the contributing storage. For example, the fraction of chemical in solution that is transported overland from the surface layer storage (FSO) is the surface moisture outflow (SURO) divided by the surface layer moisture storage (SMST).

The above estimates are based on the assumption that the concentration of the solute being transported is the same as that in storage. They also assume uniform flow through the layers and continuous mixing of the solutes. However, these assumptions may need to be revised or implemented differently for some of the transport. Past testing has shown that the above method leads to excessive leaching of solutes (Donigian, et al., 1977). Factors that retard solute leaching were added in the ARM Model Version II to remedy this problem. For the surface layer, the percolation factor (SLMPF) affects the solute fraction percolating (FSP) by the relationship:

     FSP = SLMPF*SDOWN/SMST                                            (2)

The variables SDOWN and SMST are defined in the figure above. FSP will typically be between 0 and 1.

For the upper or lower layer percolating fraction (FUP, FLDP, or FLP), the retardation factor only has an influence when the ratio of the respective zone storage to the nominal storage times the factor (ZS/(ZSN*LPF)) is less than one. The relationship under this condition is:

     F = (ZS/(ZSN*LPF))*(PFLUX/MST)                                    (3)

where:
     F     = layer solute percolating fraction
     ZS    = zone moisture storage, either UZS or LZS
     ZSN   = zone nominal moisture storage, either UZSN or LZSN
     LPF   = factor which retards solute leaching for the layer,
             either ULPF or LLPF
     PFLUX = percolation flux, either UDOWN, IGWI, or AGWI
     MST   = layer moisture storage, either UMST or LMST


Pesticide Behavior - PEST

 (Section PEST of Module PERLND)

Purpose

Because of the complexity of pesticide behavior on the land, simulation of the processes frequently requires considerable detail. Pesticide applications vary in amount and time during the year. Various pesticides adsorb and degrade differently. Some, like paraquat, attach themselves strongly to the soil, thereby appearing in low concentrations in water but in high concentrations on soil particles. Others, like atrazine, undergo complex interactions with the soil and are found in higher concentrations in the runoff water than on the eroded sediment.

Section PEST models pesticide behavior by simulating the processes of degradation and adsorption as well as transport. The pesticides are simulated in the soil and runoff in three forms: dissolved, adsorbed, and crystallized. These phases in the soil affect the forms and amounts in the runoff.

Method

Pesticides are simulated by using the time series generated by other PERLND module sections to transport and influence the adsorption and degradation processes. Pesticides move with water flow or by association with the sediment. They also may be adsorbed to the soil in varying degree as a function of the chemical characteristics of the toxicant and the exchange capacity of the soil layer. Pesticide degradation occurs to varying degrees depending upon the susceptibility of the compound to volatilization and breakdown by light, heat, microorganisms and chemical processes. The subroutines in module section PEST consider these transport and reaction processes.

All the subroutines described in this module section except NONSV and DEGRAS are accessed by other agri-chemical module sections because many of the basic transport and reaction processes are similar. The subroutines are described here because they are physically located in this subroutine group. Subroutine AGRGET is first to be called. This subroutine has no computing function; it obtains any required time series (that are not already available) from the INPAD.

Inputs of pesticide to the surface soil layer may be simulated using either or both of two methods: 1) as changes to storage variables in the SPEC-ACTIONS block or 2) as atmospheric deposition. However, atmospheric deposition affects only the surface layer, so if a pesticide is incorporated into the upper soil layer, Special Actions must be used.

Lateral inflows from upslope land segments may also be specified in the NETWORK or SCHEMATIC and MASS-LINK blocks. These fluxes are added to the appropriate soil storage at the beginning of the interval. (Refer to the Time Series Catalog for PERLND for more information.)

Atmospheric deposition inputs of pesticide can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as time series, which cover the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific pesticide atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for PERLND, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

If atmospheric deposition data are input to the model, the surface storage is updated for each of the three forms of each pesticide using the formula:

     SPS = SPS + ADFX + PREC*ADCN                                      (1)

where:
     SPS  = storage of pesticide form on the surface (mass/area)
     ADFX = dry or total atmospheric deposition flux (mass/area per
            interval)
     PREC = precipitation depth
     ADCN = concentration for wet atmospheric deposition (mass/volume)

Subroutine SDFRAC determines the fraction of the surface layer soil that has eroded. The amount eroded is the total sediment removed by scour and washoff as determined in module section SEDMNT. The mass of soil in the surface layer is a parameter value which does not vary even when material is removed. The chemical which is associated with the sediment is assumed to be removed from the surface layer storage in the same proportion that the layer has eroded. Chemical removal is simulated in subroutine SEDMOV. A sediment associated chemical is one that may be attached to the eroding soil or one which may move with the soil. With pesticides the adsorbed form will be attached to the soil particle, while the crystalline form will move with the soil particle being eroded, but will not be attached to it. Both forms are removed from their respective surface layer storages in proportion to the fraction of the surface soil layer removed by overland flow.

Subroutines TOPMOV and SUBMOV perform a function similar to SEDMOV except they move the solutes. Chemicals in solution move to and from the storages according to the fractions calculated in section MSTLAY. The figure below schematically illustrates the fluxes and storages used in these subroutines. The fractions (variables beginning with the letter "F") of the storages are used to compute the solute fluxes. The equations used to compute the solute transport fluxes from the fractions and storages are given in the figure. Subroutine TOPMOV performs the calculations of the fluxes and the resulting changes in storage for the topsoil layers (surface and upper), while SUBMOV performs them for the subsurface layers (lower and active groundwater).

Biological and chemical reactions are performed on the pesticides (and other chemicals) in each layer storage. Chemicals in the upper layer principal storage undergo reactions while those in the transitory (interflow) storage do not. The upper layer transitory storage is a temporary storage of chemicals on their way to interflow outflow. Subroutine PSTRXN is called to perform reactions on the pesticide in each layer.

Flow diagram showing modeled movement of chemicals in solution


Reactions on Pesticides - PSTRXN

 (subroutine PSTRXN)

Purpose

This code simulates the degradation and adsorption/desorption of pesticides. This subroutine is called for each of the four soil layers and each pesticide.

Method of Reacting Pesticides

The user has the option of adsorbing/desorbing the pesticide by one of three methods. The first method is by first-order kinetics. This method assumes that the pesticide adsorbs and desorbs at a rate based on the amount in soil solution and on the amount on the soil particle. It makes use of a proportionality constant and is independent of the concentration. The second method uses a single value Freundlich isotherm. This method makes use of a single adsorption/desorption curve for determining the concentration on the soil and in solution. The third method uses multiple curves based on a varying Freundlich K value. Further details of these methods can be found in the discussion of the individual subroutines that follows and in documentation of the ARM Model (Donigian and Crawford, 1976; Donigian, et al., 1977).

Degradation is performed once a day in each of the four layers that contain pesticide. The amount degraded is determined simply by multiplying a decay rate parameter specified for each soil layer by each of the three forms (adsorbed, solution, and crystalline) of pesticide in storage. The degraded amounts are then subtracted from their respective storages. This method of simulating degradation lumps complex processes in a simple parameter.


First-Order Kinetics - FIRORD

 (subroutine FIRORD)

Purpose

The purpose of this subroutine is to calculate the adsorption and desorption reaction fluxes of chemicals using temperature dependent first-order kinetics. These fluxes are calculated every simulation interval when the subroutine is called by section PEST, but they are determined only at the designated chemical reaction frequency when called by sections NITR and PHOS.

Method

The calculation of adsorption and desorption reaction fluxes by first-order kinetics for soil layer temperatures less than 35 degrees C takes the form:

      DES = CMAD*KDS*THKDS**(TMP - 35.0)                               (1)

      ADS = CMSU*KAD*THKAD**(TMP - 35.0)                               (2)

where:
     DES   = current desorption flux of chemical (mass/area per interval)
     CMAD  = storage of adsorbed chemical (mass/area)
     KDS   = first-order desorption rate parameter (per interval)
     THKDS = temperature correction parameter for desorption
     TMP   = soil layer temperature (degrees C)
     ADS   = current adsorption flux of chemical (mass/area per interval)
     CMSU  = storage of chemical in solution (mass/area)
     KAD   = first-order adsorption rate parameter (per interval)
     THKAD = temperature correction parameter for adsorption
     THKDS and THKAD are typically about 1.06

All of the variables except the temperature coefficients may vary with the layer of the soil being simulated. The soil temperatures are time series which may be input (e.g., using field data) or simulated in module section PSTEMP. The temperature correction of the reaction rate parameter is based on the Arrhenius equation. At temperatures of 35 degrees C or above, no correction is made. When the temperature is at 0 degrees C or below or the soil layer is dry, no adsorption and desorption occurs.

The storage of the solution chemical is updated every simulation interval in the calling subroutine, that is, in PSTRXN, NITRXN, or PHORXN, by adding DES minus ADS. Likewise, the storage of the adsorbed chemical is updated there also by adding ADS minus DES. An adjustment is made in the calling subroutine if any of the fluxes would cause a storage to go negative. When this happens a warning message is produced and fluxes are adjusted so that no storage goes negative. This usually occurs when large time steps are used in conjunction with large KAD and KDS values.


Single Value Freundlich Method - SV

 (subroutine SV)

Purpose

Subroutine SV calculates the adsorption and desorption and the resulting new storages of a chemical using the single value Freundlich method.

Method

The Freundlich isotherm methods, unlike first-order kinetics, assume instantaneous equilibrium. That is, no matter how much chemical is added to a particular phase, equilibrium is assumed to be established between the solution and adsorbed phase of the chemical. These methods also assume that for any given amount of chemical in the soil, the equilibrium distribution of the chemical between the soil solution and soil particles can be found from an isotherm. Figure "Freundlich isotherm calculations" below illustrates such an isotherm.

Three phases of the chemical are actually possible: crystalline, adsorbed, and solution. The crystalline form is assumed to occur only when the soil layer is dry, or when there is more chemical in the layer than the combined capacity to adsorb and hold in solution. When the soil is dry, all the chemical is considered to be crystalline salt. When there is more total chemical in the soil layer than the soil adsorption sites can contain and more than that saturated in solution, then the chemical content which exceeds these capacities is considered to be crystalline salt. Module section PEST considers crystalline phase storage, but module sections NITR and PHOS do not. Instead, any crystalline phosphate or ammonium predicted by an isotherm is added to the adsorbed phase storage.

The adsorbed and solution phases of the chemical are determined in this subroutine by the standard Freundlich equation as plotted by curve 1 below. When the amount of chemical is less than the capacity of the soil particle lattice to permanently bind the chemical (XFIX), then all the material is consider fixed. All the fixed chemical is contained in the adsorbed phase of the layer storage. Otherwise, the Freundlich equation for curve 1 is used to determine the partitioning of the chemical into the adsorbed and solution phases:

     X = KF1*C**(1/N1) + XFIX                                          (3)

where:
     X    = chemical adsorbed on soil (ppm of soil)
     KF1  = single value Freundlich K coefficient
     C    = equilibrium chemical concentration in solution (ppm of
            solution)
     N1   = single value Freundlich exponent
     XFIX = chemical which is permanently fixed (ppm of soil)

The above equation is solved in subroutine ITER by an iteration technique. The parameters used in the computation can differ for each layer of the soil.

Freundlich isotherm calculations


Non-single Value Freundlich Method - NONSV

 (subroutine NONSV)

Purpose

The purpose of this subroutine is to calculate the adsorption/desorption of a chemical by the nonsingle value Freundlich method. The single value Freundlich method was found to inadequately represent the division of some pesticides between the soil particle and solution phases, so this method was developed as an option in the ARM Model (Donigian and Crawford, 1976). This routine is only available for use by the PEST module section.

Method

The approach in this code uses the same algorithms and solution technique as subroutine SV for determining curve 1 in Figure "Freundlich isotherm calculations" above. However, curve 1 is used solely for adsorption. That is, only when the concentration of the adsorbed chemical is increasing. When desorption occurs a new curve (curve 2) is used:

     X = KF2*C**(1/N2) + XFIX                                          (4)

     KF2 = (KF1/XDIF)**(N1/N2) * XDIF                                  (5)

where:
     KF2  = nonsingle value Freundlich coefficient
     N2   = nonsingle value Freundlich exponent parameter
     XDIF = XJCT - XFIX
     XJCT = the adsorbed concentration where curve 1 joins curve 2
            (i.e., where desorption started)
            as shown in Figure "Freundlich isotherm calculations" above
            (ppm of soil)

The other variables are as defined for subroutine SV.

Once curve 2 is used, both desorption and adsorption follow it until the adsorbed concentration is less than or equal to XFIX or until it reaches XJCT. Then, adsorption will again take place following curve 1 until desorption reoccurs, following a newly calculated curve 2. The solution of the Freundlich equations for curves 1 and 2 utilizes the same iteration technique described in subroutine SV (subroutine ITER).


Nitrogen Behavior - NITR

 (section NITR of module PERLND)

Purpose

NITR, like section PEST, simulates the behavior of chemicals in the soil profile of a land segment. Section NITR handles the nitrogen species of nitrate, ammonia, and organic nitrogen. This involves simulating nitrogen transport and soil reactions. Nitrogen, like phosphorus, may be a limiting nutrient in the eutrophication process in lakes and streams. Nitrates in high concentrations may also pose a health hazard.

Method

Nitrogen species are transported by the same methods used for the pesticide forms. The subroutines that are called to transport nitrogen are located in and described with the PEST module section. Adsorbed ammonium and two forms of particulate organic nitrogen (labile and refractory) are removed from the surface layer storage by association with sediment. These processes are handled by subroutines SDFRAC and SEDMOV. Nitrate, ammonium, and two forms of dissolved organic nitrogen (labile and refractory) in the soil water are transported using the subroutines TOPMOV and SUBMOV. Nitrogen reactions are simulated separately for each of the soil layers. The methods are described below, in the discussion of subroutine NITRXN, and are shown schematically in Figure "Flow diagram for nitrogen reactions" below.

Inputs of Nitrogen to the Soil

Natural and agricultural inputs of nitrogen to the surface and upper soil layers can be simulated using either or both of two methods: 1) as changes to storage variables in the SPEC-ACTIONS block, or 2) as atmospheric deposition inputs. Atmospheric deposition inputs are implemented for three species: nitrate, ammonium, and particulate labile organic nitrogen.

Lateral inflows from upslope land segments may also be specified in the NETWORK or SCHEMATIC and MASS-LINK blocks. These fluxes are added to the appropriate soil storage at the beginning of the interval. (Refer to the Time Series Catalog for PERLND for more information.)

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for PERLND, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

Flow diagram for nitrogen reactions

If atmospheric deposition data are input to the model, the soil storage is updated for each of the three species of nitrogen in each soil layer (surface and upper) using the general formula:

      NSTOR = NSTOR + ADFX + PREC*ADCN                                 (1)

where:
     NSTOR = storage of nitrogen species in the soil layer (mass/area)
     ADFX  = dry or total atmospheric deposition flux (mass/area per
             interval)
     PREC  = precipitation (depth per interval)
     ADCN  = concentration of nitrogen species in rainfall (mass/volume)


Reactions on Nitrogen Forms - NITRXN

 (subroutine NITRXN)

Purpose

The purpose of NITRXN is to simulate soil nitrogen transformations. This includes plant uptake of nitrate and ammonium, return of plant nitrogen to organic nitrogen, denitrification or reduction of nitrate-nitrite, immobilization of nitrate-nitrite and ammonium, mineralization of organic nitrogen, fixation of atmospheric nitrogen, volatilization of ammonium, adsorption/desorption of ammonium, and partitioning of two types of organic nitrogen between solution and particulate forms.

Method of Nitrogen Transformations

Adsorption/desorption of ammonium

Nitrogen reactions can be divided between those that are chemical in nature and those that are a combination of chemical and biological reactions. The adsorption and desorption of ammonium is a chemical process. The user has the option of simulating ammonium adsorption and desorption by first-order kinetics with subroutine FIRORD or by the Freundlich isotherm method with subroutine SV. These subroutines are described in the PEST module section.

The user has the option of specifying how often the adsorption and desorption rates are calculated. When adsorption/desorption is simulated by the Freundlich method, the solution and adsorbed storages of ammonium are determined instantaneously at the specified frequency of reaction. However, when the first-order method is used, the temperature-corrected reaction fluxes (Figure "Flow diagram for nitrogen reactions" above) are recomputed intermittently, but the storages are updated every simulation interval.

Organic Nitrogen Partitioning

Organic nitrogen is assumed to exist in the following four forms in each soil layer.

Particulate labile

Solution labile

Particulate refractory

Solution refractory

The particulate labile species is the default form of organic N in the model; if default values of organic N-related sorption parameters and reaction rates are used, only this form will exist. This species is formed by immobilization of nitrate and ammonia, and is converted back to ammonia by mineralization in the soil. It also is transported on the surface by association with sediment. However, if the user inputs non-zero values of the relevant parameters, it can undergo conversion by first-order rate to the particulate refractory form, and it can also desorb to the solution labile form. The particulate refractory species can also desorb to the solution refractory form. The two solution species are available for transport with surface runoff and within the soil profile, and the particulate refractory form can be transported on the surface with sediment.

The organic nitrogen partitioning reactions (sorption-desorption) are described by equilibrium isotherms as shown in the following equations:

      KLON = PLON/SLON                                                 (2)
      KRON = PRON/SRON

where:
      KLON and KRON = partition coefficients for the labile and refractory
                      organic nitrogen, respectively (-)
      PLON = particulate labile organic N (lb N/ac or kg N/ha)
      SLON = solution labile organic N (lb N/ac or kg N/ha)
      PRON = particulate refractory organic N (lb N/ac or kg N/ha)
      SRON = solution refractory organic N (lb N/ac or kg N/ha)

The four organic nitrogen forms and their assorted reactions are illustrated in Figure "Flow diagram for nitrogen reactions" above. Note that the storages and transformations in this figure are generally repeated in each soil layer except for the aboveground plant N and the litter compartments.

Note that the three new organic nitrogen state variables described above are always present in the NITR module, i.e., they are not optional. However, in order to make the program compatible with previous versions, the default inputs result in the three new forms maintaining zero concentrations; therefore, there should be no impact on the simulation results of existing applications when using the current version of the program.

Other Nitrogen Transformations

The other reactions are a combination of biological and chemical transformations. All of these reactions can be modeled using first-order kinetics; optional algorithms can be used for plant uptake of N and immobilization of organic N. The optimum first-order kinetic rate parameter is corrected for soil temperatures below 35 degrees C by the generalized equation:

     KK = K*TH**(TMP - 35.0)                                           (3)

where:
     KK  = temperature-corrected first-order reaction rate (/interval)
     K   = optimum first-order reaction rate at 35 degrees C (/interval)
     TH  = temperature correction coefficient for reaction (typically
           about 1.06)
     TMP = soil layer temperature (degrees C)

When temperatures are greater than 35 degrees C, the rate is considered optimum, that is, KK is set equal to K. When the temperature of the soil layer is below 4 degrees C or the layer is dry, no biochemical transformations occur.

The corrected reaction rate parameters are determined every biochemical reaction interval and multiplied by the respective storages as shown in Figure "Flow diagram for nitrogen reactions" to obtain the reaction fluxes. Plant uptake can vary monthly and can be distributed between nitrate and ammonium by the parameters NO3UTF and NH4UTF. These parameters are intended to designate the fraction of plant uptake from each species of N; the sum of NO3UTF and NH4UTF should be 1.0.

The biochemical reaction rate fluxes that are shown in Figure "Flow diagram for nitrogen reactions" are coupled, that is, added to and subtracted from the storages simultaneously. The coupling of the fluxes is efficient in use of computer time, but has a tendency to produce unrealistic negative storages when large reaction intervals and large reaction rates are used jointly. A method is used which modifies the reaction fluxes so that they do not produce negative storages. A warning message is issued when this modification occurs.

Immobilization of nitrate and ammonia (conversion to particulate labile organic N) can be simulated using either first-order kinetics as described above, or a saturation kinetics (Michaelis-Menten) method. The saturation kinetics option is intended primarily for forests, and is activated when NUPTFG = 2 or -2. Details of this option are presented below, under the description of plant uptake optional methods.

Ammonia Volatilization

Ammonia volatilization is included as an optional (AMVOFG = 1) first-order reaction in order to allow large concentrations of ammonia in the soil, resulting from animal waste and fertilizer applications, to be attenuated by losses to the atmosphere. The original formulation by Reddy et al., (1979) included adjustment for variable soil cation exchange capacity (CEC) and wind speed, and it could be "turned off" after seven days. In HSPF, it is assumed that: (1) the CEC factor can be incorporated into the first-order rate constant by the user, and (2) the wind (air flow) is always high enough to result in maximum loss; Reddy's original method reduced the volatilization rate only when wind speed was less than 1.4 km/day. Downward adjustment of the rate, after an initial period of high losses, requires use of the Special Actions capability.

The temperature correction for volatilization of ammonia is slightly different than the standard method used for the other reactions. The reference temperature is user-specified, instead of 35 degrees C, since rates in the literature are often given at a temperature of 20 degrees C. Also, instead of attaining a maximum value at the reference temperature, the volatilization rate is adjusted upwards when the soil temperature exceeds the reference temperature.

Plant nitrogen

The user can select between two optional scenarios for simulating plant nitrogen. If ALPNFG = 0, plant N is simulated in each of the four standard soil layers (i.e., surface, upper, lower, and active groundwater). If ALPNFG = 1, plant N is also simulated in above-ground and litter compartments, in addition to the standard below-ground layers. Plant N simulation involves uptake of ammonium and nitrate by the plant, and "return" of plant N to organic N in the soil. Above-ground plant N returns to the litter compartment, and litter plant N returns to the particulate organic N compartments in the surface and upper soil layers. These return reactions from above-ground plant N to litter and from litter to surface/upper organic N are simulated using first-order kinetics. No other reactions affect these nitrogen storages except for plant uptake to the above-ground compartment.

Return of plant N to particulate organic N is divided into labile and refractory fractions. By using default values of the return parameters, all plant return becomes labile organic N.

Optional Methods for Modeling Plant Uptake of Nitrogen

There are three optional methods for simulating plant uptake, including the default, first-order method described above. These options are selected using the input flag NUPTFG.

The second method for simulating plant uptake is a yield-based algorithm (NUPTFG = 1). This approach is a modification of the algorithm used in the Nitrate Leaching and Economic Analysis Package (NLEAP model) (Shaffer et al., 1991). It is designed to be less sensitive to soil nutrient levels and nutrient application rates than the first-order rate approach (NUPTFG = 0); thus, it allows crop needs to be satisfied, subject to nutrient and moisture availability, without being calculated as a direct function of the soil nutrient level. This approach allows a better representation of nutrient management practices, since uptake levels will not change dramatically with changes in application rates.

In this method, a total annual target, NUPTGT, is specified by the user, and is then divided into monthly targets during the crop growing season; the target is further divided into the four soil layers. The monthly target for each soil layer is calculated as:

     MONTGT= NUPTGT* NUPTFM(MON)* NUPTM(MON)* CRPFRC(MON,ICROP)        (4)

where:
     MONTGT= monthly plant uptake target for current crop
             (lb N/ac or kg N/ha)
     NUPTGT= total annual uptake target (lb N/ac or kg N/ha)
     NUPTFM= monthly fraction of total annual uptake target (-)
     NUPTM = soil layer fraction of monthly uptake target (-)
     CRPFRC= fraction of monthly uptake target for current crop (-)
     MON   = current month
     ICROP = index for current crop

Note that CRPFRC is 1.0 unless the month contains parts of two or more crop seasons, in which case the monthly uptake target is divided among the crops according to the number of days of the month belonging to each season.

Planting and harvesting dates can be specified for up to three separate crops during the year. Plant uptake is assumed to occur only during a growing season, defined as the time period between planting and harvest. When portions of two growing seasons are contained within one month, the total monthly target is divided between the two crops in proportion to the number of days in each season in that month. The daily target is calculated by starting at zero at the beginning of a crop season and using a trapezoidal rule to solve for monthly boundaries; linear interpolation is used to solve for daily values between the monthly boundaries, and between a monthly boundary and a planting or harvest date.

Yield-based plant uptake only occurs when the soil moisture is above the wilting point, which is specified by the user for each soil layer. No temperature rate adjustment is performed, but all uptake is stopped when soil temperature is below 4 degrees C. If the uptake target is not met during a given interval, whether from nutrient, temperature, or moisture stress, then an uptake deficit is accumulated, and applied to the next interval's target. When uptake later becomes possible, the program will attempt to make up the deficit by taking up nitrogen at a rate higher than the normal daily target, up to a user-specified maximum defined as a multiple of the target rate. The deficit is tracked for each soil layer, and is reset to zero at harvest, i.e., it does not carry over from one crop season to the next.

When using the yield-based plant uptake option, it is also possible to represent leguminous plants (e.g., soybeans) that fix nitrogen from the atmosphere. The algorithm is designed to allow N fixation only to make up any shortfall in soil nitrogen, i.e., fixation is only allowed if the available soil nitrogen (nitrate and solution ammonium) is insufficient to satisfy the target uptake. The maximum daily nitrogen fixation rate is subject to the same limits as the uptake under deficit conditions noted above.

The third option for simulating plant uptake is to use a Michaelis-Menten or saturation kinetics method. This algorithm is included in HSPF primarily for simulating forest areas, and whenever it is selected, the same method is also used to simulate immobilization of ammonium and nitrate. The saturation kinetics method is activated for both uptake and immobilization by setting NUPTFG to 2 or -2.

The user specifies a maximum rate and a half-saturation constant for each of the four processes (uptake of nitrate and ammonia, and immobilization of nitrate and ammonia). The input maximum rates can vary monthly. The corresponding reaction fluxes are computed using the general equation:

      FLUX = KK * CONC / (CS + CONC)                                   (5)

where:
      FLUX = amount of flux (mg/l/interval)
      KK   = temperature corrected maximum rate (mg/l/interval)
      CONC = concentration of nitrogen species in soil layer (mg/l)
      CS   = half-saturation constant (mg/l)

The flux is then converted to units of mass per interval.

Regardless of the option used to simulate plant uptake, if the above-ground and litter compartments are being simulated, then the user can specify the fraction of uptake from each layer that goes to the above-ground plant N storage. The remainder is assumed to become plant N within that soil layer.


Phosphorous Behavior - PHOS

 (Section PHOS of Module PERLND)

Purpose

Module section PHOS simulates the behavior of phosphorus in a pervious land segment. This involves modeling the transport, plant uptake, adsorption/desorption, immobilization, and mineralization of the various forms of phosphorus. Because phosphorus is readily tied to soil and sediment, it is usually scarce in streams and lakes. In fact, in many cases it is the limiting nutrient in the eutrophication process. Because of its scarcity, accurate simulation is particularly important.

Method

The method used to transport and react phosphorus is the same as that used for nitrogen in module section NITR. The subroutines used to transport phosphorus are described in module section PEST. Organic phosphorus and adsorbed phosphate are removed with sediment by calling subroutine SEDMOV. Phosphate in solution is transported in the moving water using subroutines TOPMOV and SUBMOV. Phosphorus reactions are simulated in the soil by subroutine PHORXN.

Inputs of phosphorus to the surface and upper soil layers, natural or agricultural, can be simulated using either or both of two methods: 1) as changes to storage variables in the SPEC-ACTIONS block, or 2) as atmospheric deposition.

Lateral inflows from upslope land segments may also be specified in the NETWORK or SCHEMATIC and MASS-LINK blocks. These fluxes are added to the appropriate soil storage at the beginning of the interval. (Refer to the Time Series Catalog for PERLND for more information.)

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for PERLND, and are specified in the EXT SOURCES block. The monthly values are input in the MONTH-DATA block.

If atmospheric deposition data are input to the model, the soil storage is updated for each of the two species of phosphorus for both affected soil layers using the formula:

     P = P + ADFX + PREC*ADCN                                          (1)

where:
     P    = storage of phosphorus species in the soil layer (mass/area)
     ADFX = dry or total atmospheric deposition flux (mass/area per
            interval)
     PREC = precipitation depth
     ADCN = concentration for wet atmospheric deposition (mass/volume)

In subroutine PHORXN, phosphate is adsorbed and desorbed by either first-order kinetics or by the Freundlich method. The mechanics of these methods are described in module section PEST. As with the simulation of ammonium adsorption/desorption, the frequency of this chemical reaction for phosphate can also be specified. Unlike ammonium, typically phosphate includes a large portion which is not attached to the soil particle but is combined with cations. This is because phosphate is much less soluble with the ions found in soils than ammonium.

Other reactions performed by subroutine PHORXN include mineralization, immobilization, and plant uptake. These are accomplished using temperature dependent, first-order kinetics; the same method used for the nitrogen reactions. As for nitrogen, a yield-based plant uptake option is available for phosphorus and is activated with PUPTFG = 1. The saturation-kinetics option for uptake and immobilization, however, is not available for phosphorus. The only other difference between nitrogen and phosphorus plant uptake is that only solution phosphate can be taken up by the plant and no fixation process is modeled. The general description of these processes is in module section NITR. Figure "Flow diagram for phosphorus reactions" below shows the parameters and equations used to calculate the reaction fluxes for phosphorus. Reactions are simulated for each of the four soil layers using separate parameter sets for each layer. As with nitrogen, the biochemical phosphate reaction fluxes of mineralization, immobilization, and plant uptake can be determined at an interval less frequent than the basic simulation interval.

Flow diagram for phosphorus reactions


Movement of a Tracer - TRACER

 (Section TRACER of Module PERLND)

Purpose

The purpose of this code is to simulate the movement of any nonreactive tracer (conservative) in a pervious land segment. Chloride, bromide, and dyes are commonly used tracers which can be simulated by section TRACER. Also, total dissolved salts could possibly be modeled by this section. Typically, this code is applied to chloride to calibrate solute movement through the soil profile. This involves adjustment of the percolation retardation factors (see section MSTLAY) until good agreement with observed chloride concentrations has been obtained. Once these factors have been calibrated, they are used to simulate the transport of other solutes, such as nitrate.

Method of Simulating Tracer Transport

Tracer simulation uses the agri-chemical solute transport subroutines TOPMOV and SUBMOV which are described in section PEST. No reactions are modeled.

Inputs of the tracer substance to the surface and upper soil layers can be simulated using either or both of two methods: 1) as changes to storage variables in the SPEC-ACTIONS block, or 2) as atmospheric deposition.

Lateral inflows from upslope land segments may also be specified in the NETWORK or SCHEMATIC and MASS-LINK blocks. These fluxes are added to the appropriate soil storage at the beginning of the interval. (Refer to the Time Series Catalog for PERLND for more information.)

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for PERLND, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

If atmospheric deposition data are input to the model, then the soil storage of tracer is updated for both affected soil layers using the formula:

     T = T + ADFX + PREC*ADCN                                          (1)

where:
     T    = storage of tracer in the soil layer (mass/area)
     ADFX = dry or total atmospheric deposition flux (mass/area per
            interval)
     PREC = precipitation depth
     ADCN = concentration for wet atmospheric deposition (mass/volume)


Impervious Land Segment - IMPLND

 (Module IMPLND)

In an impervious land segment, little or no infiltration occurs. However, land surface processes do occur as illustrated in Figure "Impervious land segment processes" below. Snow may accumulate and melt, and water may be stored or may evaporate. Various water quality constituents accumulate and are removed. Water, solids, and various pollutants flow from the segments by moving laterally to a downslope segment or to a stream or lake.

The sections of IMPLND and their functions are given in the structure chart shown in Figure "Structure chart for IMPLND Module" below. They are executed from left to right. Many of them are similar to the corresponding sections in the PERLND module. In fact, since sections SNOW and ATEMP perform functions that can be applied to pervious or impervious segments, they are shared by both modules. IWATER is analogous to PWATER in module PERLND; SOLIDS is analogous to SEDMNT; IWTGAS is analogous to PWTGAS; and IQUAL is analogous to PQUAL. However, the IMPLND sections are less complex, since they contain no infiltration function and consequently no subsurface flows.

When segmenting a watershed, the area of impervious land segments represented by IMPLND should be the "effective" impervious area, or EIA, rather than the total or mapped impervious area of the watershed of interest. EIA is that portion of the total impervious area that is directly connected to the drainage system, (e.g., storm drains, streams, rivers, lakes), including rooftops that drain directly to driveways or storm drains. Impervious runoff that drains first to pervious areas can infiltrate, and should not be included in the impervious simulation. In most watersheds, the EIA is less than the total impervious area, especially in less dense residential areas. Conversely, in highly urbanized areas, the EIA and total impervious areas are often very similar.

Impervious land segment processes

Structure chart for IMPLND Module


Water Budget Impervious - IWATER

 (Section IWATER of Module IMPLND)

Purpose

Section IWATER simulates the retention, routing, and evaporation of water from an impervious land segment.

Method

Section IWATER is similar to section PWATER of the PERLND module. However, IWATER is simpler because there is no infiltration and consequently no subsurface processes. IWATER is composed of the parent subroutine plus three subordinate subroutines: RETN, IROUTE, and EVRETN. RETN is analogous to ICEPT, IROUTE is analogous to PROUTE, and EVRETN is analogous to EVICEP in module section PWATER. The time series requirements are the same as for section PWATER.

Figure "Hydrologic Processes" schematically represents the fluxes and storages simulated in module section IWATER. Moisture (SUPY) is supplied by precipitation, or under snow conditions, it is supplied by the rain falling on areas with no snowpack plus the water yielded by the snowpack. This moisture is available for retention; subroutine RETN performs the retention functions. Lateral surface inflow (SURLI) may also be retained if the user so specifies by setting the flag parameter RTLIFG=1. Otherwise, retention inflow (RETI) equals SUPY. Moisture exceeding the retention capacity overflows the storage and is available for runoff.

Flow Diagram of Impervious Hydrologic Processes

The retention capacity, defined by the parameter RETSC, can be used to designate any retention of moisture which does not reach the overland flow plane. RETSC may be used to represent roof top catchments, asphalt wetting, urban vegetation, improper drainage, or any other containment of water that will never flow from the land segment. The user may supply the retention capacity on a monthly basis to account for seasonal variations, or may supply one value designating a fixed capacity.

Water held in retention storage is removed by evaporation (IMPEV). The amount evaporated is determined in subroutine EVRETN. Potential evaporation is an input time series.

Retention outflow (RETO) is combined with any lateral inflow when RTLIFG=0 producing the total inflow to the detention storage (SURI). Water remaining in the detention storage plus any inflow is considered the moisture supply. The moisture supply is routed from the land surface in subroutine IROUTE.


How Much Moisture Runs Off - IROUTE

 (subroutine IROUTE)

Purpose

The purpose of subroutine IROUTE is to determine how much of the moisture supply runs off the impervious surface in one simulation interval.

Method of Routing

A method similar to that used in module PERLND PROUTE is employed to route overland flow.


Accumulation and Removal of Solids - SOLIDS

 (Section SOLIDS of Module IMPLND)

Purpose

Module section SOLIDS simulates the accumulation and removal of solids by runoff and other means from the impervious land segment. The solids outflow may be used in section IQUAL to simulate quality constituents associated with particulates.

Method

The equations used in this section are based on those in the NPS Model (Donigian and Crawford, 1976b). Lateral input of solids by water flow is a user designated option. Washoff of solids may be simulated by one of two ways. One subroutine is similar to the method used in the NPS Model. However, this method is dimensionally nonhomogeneous. That is, a flux and a storage are added making the result time-step dependent. This technique was designed for 15-minute time-steps. The other subroutine is dimensionally homogenous, since only a flux term is used in the equation.

The accumulation and removal of solids which occurs independently of runoff (e.g., by atmospheric fallout, street cleaning) is handled in subroutine ACCUM.


Washoff Solids - SOSLD1

 (subroutine SOSLD1)

Purpose

Subroutines SOSLD1 and SOSLD2 perform the same task, but by different methods. They simulate the washoff of solids from an impervious land segment.

Method

When simulating the washoff of solids, the transport capacity of the overland flow is estimated and compared to the amount of solids available. The transport capacity is calculated by the equation:

     STCAP = DELT60*KEIM*((SURS + SURO)/DELT60)**JEIM                  (1)

where:
     STCAP  = capacity for removing solids (tons/ac per interval)
     DELT60 = hours per interval
     KEIM   = coefficient for transport of solids
     SURS   = surface water storage (inches)
     SURO   = surface outflow of water (in/interval)
     JEIM   = exponent for transport of solids

Flow diagram of the SOLIDS section of the IMPLND Application Module

When STCAP is greater than the amount of solids in storage, washoff is calculated by:

     SOSLD = SLDS*SURO/(SURS + SURO)                                   (2)

If the storage is sufficient to fulfill the transport capacity, then the following relationship is used:

     SOSLD = STCAP*SURO/(SURS + SURO)                                  (3)

where:
     SOSLD = washoff of solids (tons/ac per interval)
     SLDS  = solids storage (tons/ac)

SOSLD is then subtracted from SLDS.

Subroutine SOSLD1 differs from SOSLD2 in that it uses the dimensionally nonhomogeneous term (SURS + SURO)/DELT60 in the above equations, while SOSLD2 uses the homogeneous term SURO/DELT60.


Washoff Solids - SOSLD2

 (subroutine SOSLD2)

Purpose

The purpose of this subroutine is the same as SOSLD1. It only differs in method.

Method of Determining Removal

Unlike subroutine SOSLD1, this method of determining sediment removal makes use of the dimensionally homogeneous term SURO/DELT60 instead of (SURO+SURS)/DELT60 in the following equation.

     STCAP = DELT60*KEIM*(SURO/DELT60)**JEIM                             (4)

When STCAP is more than the amount of solids in storage, the flow washes off all of the solids storage (SLDS). However, when STCAP is less than the amount of solids in storage, the situation is transport limiting, so SOSLD is equal to STCAP.


Accumulate and Remove Solids Independently of Runoff - ACCUM

 (subroutine ACCUM)

Purpose

Subroutine ACCUM simulates the accumulation and removal of solids independently of runoff; for example, atmospheric fallout and street cleaning.

Method

The storage is updated once a day, on those days when precipitation did not occur during the previous day, using the equation:

     SLDS = ACCSDP + SLDSS*(1.0 - REMSDP)                              (5)

where:
     ACCSDP = accumulation rate of the solids storage (tons/ac per day)
     SLDS   = solids in storage at end of day (tons/ac)
     SLDSS  = solids in storage at start of day (tons/ac)
     REMSDP = unit removal rate of solids in storage
              (i.e., fraction removed per day)

ACCSDP and REMSDP may be input on a monthly basis to account for seasonal variations.

Note: if no runoff occurs, Equation 5 will cause the solids storage to asymptotically approach a limiting value. The limit, found by setting SLDS and SLDSS to the same value (SLDSL), is:

     SLDSL = ACCSDP/REMSDP                                             (6)


Water Temperature and Dissolved Gas Concentrations - IWTGAS

 (Section IWTGAS of Module IMPLND)

Purpose

IWTGAS estimates the water temperature and concentrations of dissolved oxygen and carbon dioxide in the outflow from the impervious land segment.

Method

Outflow temperature is estimated by the following regression equation:

     SOTMP = AWTF + BWTF*AIRTC                                         (1)

where:
     SOTMP = impervious surface runoff temperature (degrees C)
     AWTF  = Y-intercept
     BWTF  = slope
     AIRTC = air temperature (degrees C)

The parameters AWTF and BWTF may be input on a monthly basis. When snowmelt contributes to the outflow, SOTMP is set equal to 0.5.

The dissolved oxygen and carbon dioxide concentrations of the overland flow are assumed to be at saturation and are calculated as direct functions of water temperature. IWTGAS uses the following empirical nonlinear equation to relate dissolved oxygen at saturation to water temperature (Committee on Sanitary Engineering Research, 1960):

     SODOX = (14.652 + SOTMP*(-0.41022 +
             SOTMP*(0.007991 - 0.000077774*SOTMP)))*ELEVGC             (2)

where:
     SODOX  = concentration of dissolved oxygen in surface outflow (mg/l)
     SOTMP  = surface outflow temperature (degrees C)
     ELEVGC = correction factor for elevation above sea level
              (ELEVGC is a function of the mean elevation of the segment)

The empirical equation for dissolved carbon dioxide concentration of the overland flow (Harnard and Davis, 1943) is:

     SOCO2 = (10**(2385.73/ABSTMP - 14.0184 + 0.0152642*ABSTMP))
             *0.000316*ELEVGC*12000.0                                  (3)

where:
     SOCO2  = concentration of dissolved CO2 in surface outflow (mg C/l)
     ABSTMP = absolute temperature of surface outflow (degrees K)

If lateral inflow temperature and/or gas concentrations are input, then the effective outflow values are weighted averages of the computed value and the lateral inflow, using the appropriate weighting factor for the soil layer. (Refer to lateral inflows for a description of the averaging method.)


Washoff of Quality Constituents Using Simple Relationships - IQUAL

 (Section IQUAL of Module IMPLND)

Purpose

The IQUAL module section simulates water quality constituents or pollutants in the outflows from an impervious land segment using simple relationships with water yield and/or solids. Any constituent can be simulated by this module section. The user supplies the name, units and parameter values appropriate to each of the constituents that are needed in the simulation. Note that more detailed methods of simulating solids, heat, dissolved oxygen, and dissolved carbon dioxide removal from the impervious land segment are available in other sections of IMPLND.

Approach

The basic algorithms used to simulate quality constituents are a synthesis of those used in the NPS Model (Donigian and Crawford, 1976b) and HSP QUALITY (Hydrocomp, 1977). However, some options and combinations are unique to HSPF.

Figure "Flow diagram for IQUAL section of IMPLND Application Module" below shows schematically the fluxes and storages represented in module section IQUAL. A quality constituent may be simulated by two methods. One approach is to simulate the constituent by association with solids removal. The other approach is to simulate it by using atmospheric deposition and/or basic accumulation and depletion rates together with depletion by washoff; that is, constituent outflow from the surface is a function of the water flow and the constituent in storage. A combination of the two methods may be used in which the individual fluxes are added to obtain the total surface outflow. These approaches are discussed further in the descriptions of the corresponding subroutines.

IQUAL allows the user to simulate up to 10 quality constituents at a time. If a constituent is considered to be associated with solids, it is called a QUALSD. The corresponding term for constituents associated directly with overland flow is QUALOF. Each of the 10 constituents may be defined as either a QUALSD or a QUALOF or both. Note that only a QUALOF may receive atmospheric deposition, since it is the only type to maintain a storage. There is no limit on how many of the ten quality constituents can be assigned the constituent types (QUALSD or QUALOF). The program uses a set of flags to keep track of these associations. For example, QSDFP(3)=0 means that the third constituent is not associated with solids, whereas QSDFP(6)=4 means that the sixth constituent is the fourth solids associated constituent (QUALSD). Similar flag arrays are used to indicate whether or not a quality constituent is a QUALOF.

Flow diagram for IQUAL section of IMPLND Application Module


Remove by Association with Solids - WASHSD

 (subroutine WASHSD)

Purpose

WASHSD simulates the removal of a quality constituent from the impervious land surface by association with the solids removal determined in section SOLIDS.

Method

This approach assumes that the particular quality constituent removed from the land surface is in proportion to the solids removal. The relation is specified by user-input "potency factors." Potency factors indicate the constituent strength relative to the solids removal from the surface. For each quality constituent associated with solids, the user supplies separate potency factors. The user is also able to supply monthly potency factors for constituents that vary somewhat consistently throughout the year.

Removal of the solids associated constituent by solids washoff is simulated by:

     SOQS = SOSLD*POTFW                                                (1)

where:
     SOQS  = flux of constituent associated with solids washoff
             (quantity/ac per interval)
     SOSLD = washoff of detached solids (tons/ac per interval)
     POTFW = washoff potency factor (quantity/ton)

If lateral inflow of a QUALSD is considered, then the inflow potency factor SLIQSP, which is input as a time series, and the current washoff potency factor POTFW, are combined as a weighted average using the input parameter SDLFAC. The modified effective potency factor is used in place of POTFW. (Refer to section lateral inflows for a description of the weighting method.)

The unit "quantity" refers to mass units (pounds or tons in the English system) or some other quantity, such as number of organisms for coliforms. The user specifies the units of "quantity."


Accumulate and Remove by Constant Unit Rate and Overland Flow - WASHOF

 (subroutine WASHOF)

Purpose

WASHOF simulates the accumulation of a quality constituent on the impervious land surface and its removal by a constant unit rate and by overland flow.

Method

This subroutine differs from subroutine WASHSD in that the storage of the quality constituent is simulated. The stored constituent can be accumulated and removed by processes which are independent of storm events, such as cleaning, decay, and wind deposition, and it is washed off by overland flow. The accumulation and removal rates can have monthly values to account for seasonal fluctuations. The constituent may, alternatively or additionally, receive atmospheric deposition and/or lateral inflows from upslope land segments.

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If it is in the form of a concentration in rainfall, then it is considered wet deposition, and HSPF automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for IMPLND, and are input in the EXT SOURCES block. The monthly values are input in the MONTH-DATA block.

If atmospheric deposition data are input, the surface storage is updated:

     SQO = SQO + ADFX + PREC*ADCN                                      (2)

where:
     SQO  = storage of available quality constituent on the surface
            (mass/area)
     ADFX = dry or total atmospheric deposition flux (mass/area per
            interval)
     PREC = precipitation depth
     ADCN = concentration for wet atmospheric deposition (mass/volume)

When there is surface outflow and some quality constituent is in storage, then washoff is simulated using the commonly used relationship:

     SOQO = SQO*(1.0 - EXP(-SURO*WSFAC))                               (3)

where:
     SOQO  = washoff of the quality constituent from the land
             surface (quantity/ac per interval)
     SQO   = storage of the quality constituent on the surface
             (quantity/ac)
     SURO  = surface outflow of water (in/interval)
     WSFAC = susceptibility of the quality constituent to washoff (/inch)
     EXP   = exponential function

If QSOFG=1, then the storage is updated once a day to account for accumulation and removal which occurs independent of runoff by the equation:

     SQO = ACQOP + SQOS*(1.0 - REMQOP)                                 (4)

where:
     ACQOP  = accumulation rate of the constituent (quantity/ac per day)
     SQOS   = SQO at the start of the interval
     REMQOP = unit removal rate of the stored constituent (per day)

If QSOFG is 2, then accumulation and removal occur every interval, and the removal rate is applied to atmospheric deposition and lateral inflows, as well as the accumulation rate.

The removal rate is recomputed every interval as:

     REMOV= REMQOP+ INTOT/(ACQOP/REMQOP)                              (4a)

where:
     INTOT  = total of atmospheric deposition and lateral inflow

REMOV is capped at 1.0, and then the storage is updated as:

     SQO= ACQOP*(DELT60/24.0)+ SQO*(1.0-REMOV)**(DELT60/24.0)         (4b)

where:
     DELT60 = number of hours per interval

The Run Interpreter computes REMQOP and WSFAC for this subroutine according to:

     REMQOP = ACQOP/SQOLIM                                             (5)

where:
     SQOLIM = asymptotic limit for SQO as time approaches infinity,
              if no washoff occurs (quantity/ac),

and

     WSFAC = 2.30/WSQOP                                                (6)

where:
     WSQOP = rate of surface runoff that results in 90% washoff in 1 hour
             (in/hr)

Since the unit removal rate (REMQOP) is computed from two other parameters, it is not supplied directly by the user.


Free-flowing Reach or Mixed Reservoir - RCHRES

 (Module RCHRES)

This module simulates the processes which occur in a single reach of open or closed channel or a completely mixed lake. For convenience, such a processing unit is referred to as a RCHRES throughout this documentation. In keeping with the assumption of complete mixing, the RCHRES consists of a single zone situated between two nodes, which are the extremities of the RCHRES.

Flow through a RCHRES is assumed to be unidirectional. The inflow and outflow of materials through a RCHRES are illustrated in Figure "Flow of materials through a RCHRES" below. Water and other constituents which arrive from other RCHRES's and local sources enter the RCHRES through a single gate (INFLO). Outflows may leave the RCHRES through one of several gates or exits (OFLO). A RCHRES can have up to five OFLO exits. Precipitation, evaporation, and other fluxes also influence the processes which occur in the RCHRES, but do not pass through the exits.

The ten major subdivisions of the RCHRES module and their functions are shown in Figure "Structure chart for RCHRES Module" below. RPTOT, RBAROT, and RPRINT perform the storage and printout of results from the other module sections of RCHRES (HYDR through RQUAL). Within a module section, simulation of physical processes (longitudinal advection, sinking, benthal release) is always performed before simulation of biochemical processes.

The user specifies which module sections are active. If any "quality" sections (CONS through RQUAL) are active, section ADCALC must also be active; it computes certain quantities needed to simulate advection of the quality constituents. Besides fulfilling this requirement, the user must ensure that all the time series required by the active sections are available, either as supplied input time series or as data computed by another module section. For example, if RQUAL is active, the water temperature must be supplied, either as an input time series or by activating section HTRCH which will compute it.

Water Rights Categories

The HYDR section of RCHRES allows the optional simulation of water "categories", which are used to facilitate the modeling of water rights or ownership. If this option is turned on (by including the CATEGORY block in the UCI), each RCHRES in the run keeps track of the user-defined categories of all inflows, storages, and outflows, as well as precipitation and evaporation fluxes. Up to 100 categories can be specified in the CATEGORY block. Details of this option are provided in the discussion of HYDR below, and the CATEGORY block documentation. Also, refer to the description of HYDR inputs.

Flow of materials through a RCHRES

Structure chart for RCHRES Module


Sinking of Suspended Material - SINK

 (subroutine SINK)

Purpose

SINK calculates the quantity of material settling out of a RCHRES and determines the resultant change in concentration of the material within the RCHRES.

Method

The portion of material settling out of a RCHRES during an interval is calculated by the equation:

     SNKOUT = CONC*(KSET/AVDEPE)                                       (1)

where:
     SNKOUT = fraction of material which settles out (reduction of
              concentration/interval)
     CONC   = concentration of material before deposition
     KSET   = sinking rate (ft/interval) (dependent upon RCHRES
              characteristics and type of material)
     AVDEPE = average depth of water (feet)

In any interval in which KSET is greater than AVDEPE, all the material in the RCHRES sinks out of the water.

The mass of material sinking out of the RCHRES is calculated as:

     SNKMAT = SNKOUT*VOL                                               (2)

where:
     SNKMAT = mass of material that settles out during the interval
              (mass.ft3/l/interval or mass.m3/l/interval)
     VOL    = volume of water in RCHRES (ft3 or m3)


Hydraulic Behavior - HYDR

 (Section HYDR of Module RCHRES)

Purpose

The purpose of this code is to simulate the hydraulic processes occurring in a reach or a mixed reservoir (RCHRES). The final goal of the process may be to route floods, study reservoir behavior, or analyze constituents dissolved in the water.

Schematic View of Fluxes and Storage

Figure "Flow diagram for the HYDR Section of the RCHRES Application Module" below shows the principal state variable (stored volume) and fluxes with which this part of HSPF deals.

All water entering the RCHRES from surface and subsurface sources arrives through "gate" INFLO; this quantity is called IVOL. The user indicates the time series which enter this gate in the EXT SOURCES or NETWORK Block in the User's Control Input (UCI). If no time series are specified, the system assumes the RCHRES has zero inflow.

The volume of water which leaves the RCHRES during a simulation time interval, through gate OFLO(N), is called OVOL(N). The total outflow is ROVOL.

The input of water from precipitation falling directly on the water surface and the loss of water by evaporation from the surface can also be considered. The user activates these options by supplying the time series PREC and/or POTEV in the User's Control Input (External Sources block). These time series are in units of depth/interval. The code multiplies these quantities by the current surface area of the RCHRES to obtain volumes of input or output. If either time series is absent from the UCI it is assumed that the option is inactive and the corresponding flux is zero.

The basic equation is that of continuity:

    VOL - VOLS = IVOL + PRSUPY - VOLEV - ROVOL                         (1)

where:
    VOL  = volume at the end of the interval
    VOLS = volume at the start of the interval

This can be written as:

    VOL = VOLT - ROVOL                                                 (2)

where:
    VOLT = IVOL + PRSUPY - VOLEV + VOLS

The principal task of this subroutine is to estimate ROVOL and, hence, the volume at the end of the interval (VOL).

Flow diagram for the HYDR Section of the RCHRES Application Module

Calculation of Outflows and VOL

If water is available, it is assumed that the total volume of water leaving a RCHRES in an interval is:

    ROVOL = (KS*ROS + COKS*ROD)*DELTS                                  (3)

where:
    KS    = weighting factor (0 <= KS <= 0.99)
    COKS  = 1.0 - KS (complement of KS)
    ROS   = total rate of outflow from the RCHRES at the start of the
            interval
    ROD   = total rate of demanded outflow for the end of the interval
    DELTS = simulation interval in seconds

That is, the mean rate of outflow is assumed to be a weighted mean of the rates at the start and end of the interval. The weighting factor KS is supplied either by the user or by default. Care should be exercised in selecting a value because, as KS increases from 0.0 to 1.0, there is an increasing risk that the computation of outflow rates will become unstable. Theoretically, a value of 0.5 gives the most accurate results, provided oscillations do not occur. The default value of 0.0 has zero risk, but gives less accurate results. Users are advised to be very careful if a nonzero value is used; users should not select a value greater than 0.5.

Combination of Equations 2 and 3 yields:

    VOL = VOLT - (KS*ROS + COKS*ROD)*DELTS                             (4)

There are two unknown values in this equation: VOL and ROD. Thus, a second relation is required to solve the problem. To provide this function, it is assumed that outflow demands for the individual exits are of the form:

    OD(1) = f1(VOL,t)
    OD(2) = f2(VOL,t)
    .
    .
    OD(NEXITS) = fNEXITS(VOL,t)                                        (5)

That is, the outflow demand for each exit is a function of volume or time or a combination. This topic is discussed in greater detail in DEMAND. It follows that the total outflow demand is of similar form:

    ROD = funct(VOL,t)                                                 (6)

At a given time in the simulation, t is known and the above functions reduce to:

    OD(N) = fN(VOL)                                                    (7)
    ROD   = funct(VOL)                                                 (8)

Equation 8 provides the second relation required to solve the problem.

Equations 4, 7, and 8 are shown in Figure "Graphical representation of the equations used to compute outflow rates and volume" below. The point of intersection of Equations 4 and 8 gives the values RO, VOL, and hence O(1), O(2), etc.

where:
    RO   = total rate of outflow from the RCHRES at the end of the interval
    O(N) = rate of outflow through exit N at the end of the interval

In HSPF, it is assumed that each outflow demand can be represented by one or both of the following types of components:

1. Component = function(VOL). This is most useful in simulating RCHRES's where there is no control over the flow or where gate settings are only a function of water level. This component is supplied to the program in the form of an FTABLE.

2. Component = function(time). This is most useful for handling demands for municipal, industrial, or agricultural use. The function may be cyclic (for example, annual cycle) or general (for example, annual cycle superimposed on an increasing trend). The user must supply this component in the form of an input time series.

If a user indicates that both types of component are present in an outflow demand, then the user must also specify how they are to be combined to get the demand. HSPF allows the following options:

1. OD(N) = Min [fN(VOL),gN(t)]. This is useful in cases such as the following:

Suppose a water user has an optimum demand which may be expressed as a function of time (gN(t)); however, his pump has a limited capacity to deliver water. This capacity is a function of the water level in the RCHRES from which the pump is drawing the water. Thus, it can be expressed as a function of the volume in the RCHRES (fN(VOL)). Then, his actual demand for water will be the minimum of the two functions. Note that gN(t) is an input time series (OUTDGT). See the Time Series Catalog.

2. OD(N) = Max [fN(VOL),gN(t)]

3. OD(N) = fN(VOL) + gN(t)

If one or more outflow demands have an fN(VOL) component (part A of Figure "Graphical representation of the equations used to compute outflow rates and volume"), subroutine ROUTE is called to solve the routing equations. In this case, the evaluation of the outflow demands and the solution of the equations can be quite complicated.

If there is no fN(VOL) component in any demand, the process is much simpler (part B of the figure). Subroutine NOROUT is called in this case.

Irrigation Withdrawals from a RCHRES

One of the options for the PWATER irrigation module in PERLND is to withdraw water from a RCHRES. Because of the way that the PERLND and RCHRES operations must be linked, the withdrawals must be handled separately from the normal routing operations.

Irrigation withdrawal demands are made directly by the PERLND operations. No time series connections, such as OUTDGT, are necessary.

When irrigation withdrawals from the RCHRES are occurring, HSPF runs each operation in the OPN SEQUENCE block in order, time step by time step. All of the irrigation withdrawal demands made of a RCHRES from the PERLND operations in a given time step are summed up, and when the RCHRES is run, these withdrawals are subtracted from the initial storage VOLS. The initial outflow rates ROS and OS are recalculated as if the previous RCHRES time step had already removed the irrigation withdrawal. The inflow, precipitation, evaporation, and routing then occur normally.

The irrigation module will not attempt to withdraw more water than is present in the RCHRES at the end of the last time step. The user may also specify a non-zero minimum volume IRMINV, below which the PERLNDs are not permitted to draw irrigation water from the reach.

One exit of the RCHRES is designated by the parameter IREXIT as the irrigation withdrawal exit. This exit may not have any other fN(VOL) or gN(t) demands, i.e., ODFVFG and ODGTFG must both be zero. This means that if the stream reach has a normal downstream outflow, then the RCHRES must have at least two exits.

RIRDEM is the total amount of water demanded from a RCHRES per time step. RIRSHT is the shortage, i.e., the difference between the demand and the actual withdrawal. The total actual withdrawals RCHWDL are equal to the outflow from the irrigation exit (i.e., OVOL(IREXIT)).

Graphical representation of the equations used to compute outflow rates and volume

Typical RCHRES configurations and the method used to represent geometric and hydraulic properties

Representing the Geometry and Hydraulic Properties of a RCHRES

HSPF makes no assumptions regarding the shape of a RCHRES. It does not require that the cross-section be trapezoidal or even that the shape be prismoidal. This is one reason why both free flowing reaches and reservoirs can be handled by the same application module. Both of the shapes shown in part A of Figure "Typical RCHRES configurations and the method used to represent geometric and hydraulic properties" above are acceptable. However, HSPF does assume that:

  1. There is a fixed relation between depth (at the deepest point in the RCHRES), surface area, and volume.
  2. For any outflow demand with an fN(VOL) component, the functional relation is constant in time (with the exception discussed in DEMAND).

These assumptions rule out cases where the flow reverses direction or where one RCHRES influences another upstream of it in a time-dependent way. No account is taken of momentum. The routing technique falls in the class known as "storage routing" or "kinematic wave" methods.

The user specifies the properties of a RCHRES in a table called RCHTAB (part B of Figure "Typical RCHRES configurations and the method used to represent geometric and hydraulic properties" above). It has columns for the depth, surface area, volume, and volume dependent functions (fN(VOL)). Each row contains values appropriate to a specified water surface elevation. The system obtains intermediate values by interpolation. Thus, the number of rows in RCHTAB depends on the size of the cross section and the desired resolution. The table is either included in the User's Control Input (in the function tables (FTABLES) block) or it may be stored in a Watershed Data Management (WDM) file. A subsidiary, stand-alone program can be used to generate this table for RCHRES's with simple properties (for prismoidal channels with uniform flow, use Manning's equation).

Auxiliary Variables

Besides calculating outflow rates and the volume in a RCHRES, HSPF can compute the values of some auxiliary state variables:

  1. If AUX1FG=1, DEP, STAGE, SAREA, AVDEP, TWID, and HRAD are computed, where: DEP is the depth at the deepest point; STAGE is the water stage at a related point; SAREA is the surface area of water in the RCHRES; AVDEP is the average depth (volume/surface area); TWID is the top width (surface area/length); HRAD is the hydraulic radius.
  2. If AUX2FG=1, AVSECT and AVVEL are computed, where: AVSECT is the average cross section (volume/length); AVVEL is the average velocity (discharge/AVSECT).
  3. If AUX3FG=1, USTAR and TAU are computed, where: USTAR is the bed shear velocity; TAU is the bed shear stress.

Note that these are point-valued time series; that is, they apply at the boundaries (start or end) of simulation time intervals.

The user specifies whether AUX1FG, AUX2FG, and AUX3FG are ON or OFF. If certain constituents are being simulated, one or more of these flags might be required to be ON. For example, simulation of oxygen (group OXRX) requires that both AUX1FG and AUX2FG be ON. AUX3FG must be ON if sediment is simulated (group SEDTRN).


Outflows Using Hydraulic Routing - ROUTE

 (subroutine ROUTE)

Purpose

ROUTE computes the rates and volumes of outflow from a RCHRES and the new volume in cases where at least one outflow demand has an fN(VOL) component.

Method

The problem is to solve simultaneously Equations 4 and 8. The cases which arise are shown graphically in Figure "Graphical representation of the work performed by subroutine ROUTE" below. Equations 7 and 8 are represented by a series of straight line segments. The breakpoints in the lines correspond to a row of entries in RCHTAB (the FTABLE). A segment of Equation 8 can be represented by the equation:

    (VOL - V1)/(ROD - ROD1) = (V2 - V1)/(ROD2 - ROD1)                  (9)

where V1,V2 are volumes specified in adjacent rows of RCHTAB, for the lower and upper extremities of the straight-line segment, respectively. ROD1 and ROD2 are the corresponding total outflow demands.

The first step is to find the intercept of Equation 4 on the volume axis:

    VOLINT = VOLT - KS*ROS*DELTS                                      (10)

If VOLINT is less than zero, the equations cannot be solved (case 3). Equation 4 will give a negative value for VOL, even if ROD is zero. Physically, this means that we started the interval with too little water to satisfy the projected outflow demand, even if the outflow rate at the end of the interval is zero. Accordingly, the code does the following:

    VOL   = 0.0
    RO    = 0.0
    O(*)  = 0.0
    ROVOL = VOLT

If VOLINT is greater than or equal to zero, the outflow rate at the end of the interval will be nonzero (case 1 or 2). To determine the case:

  1. The intercept of Equation 4 on the Volume axis is found:

         OINT = VOLINT/(DELTS*COKS)                                   (11)
  2. The maximum outflow demand for which the volume is still zero (RODZ) is found.

Graphical representation of the work performed by subroutine ROUTE

If OINT is greater than RODZ, Equations 4 and 8 can be solved (case 1). The solution involves searching for the segment of Equation 8 which contains the point of intersection of the graphs, and finding the coordinates of the point (RO,VOL). This is done by subroutine SOLVE.

If OINT is less than or equal to RODZ, Equations 4 and 8 cannot be solved (case 2). Physically this means that the RCHRES will instantaneously go dry at the end of the interval with total outflow rate at that time equal to OINT. Accordingly, the code assigns a zero value to the RCHRES volume, and the total outflow is equal to the intercept of Equation 4 on the volume axis in Figure "Graphical representation of the work performed by subroutine ROUTE" above. As many of the individual demands (O(*)) as possible are satisfied in full by the available water. The remaining water is used to partially satisfy the demand of next highest priority, and any others are not satisfied at all.


Find Outflow Demands Corresponding to Row in RCHTAB - DEMAND

 (subroutine DEMAND)

Purpose

DEMAND finds the individual and total outflow demands which apply at the end of the present interval for a specified level (row) in RCHTAB.

General Method

The approach is to determine the outflow demand for each active exit and accumulate them to find the total demand.

Evaluating the Demand for Exit N

The outflow demand for an individual exit consists of one or both of two components. Their presence or absence is indicated by two flags:

Component Flag

fN(VOL) ODFVFG(N)

gN(t) ODGTFG(N)

Finding the fN(VOL) Component

If ODFVFG(N) is zero, there is no fN(VOL) component.

If ODFVFG(N) is greater than zero, there is a fN(VOL) component. The value of the flag is the column number in RCHTAB containing the value to be used to find the component:

    column = ODFVFG(N)
    ODFV   = fN(VOL) = (column value)*CONVF                           (12)

where CONVF is a conversion factor which can vary throughout the year. It is supplied by the user in the RCHRES Block of the User's Control Input. It can be used to incorporate effects into the simulation of, for example, seasonal variation in channel roughness.

If ODFVFG(N) is less than zero, there is an fN(VOL) component, but the function fN is time varying. In this case the determination of the component is less direct. The absolute value of ODFVFG(N), say I, gives the element number of a vector COLIND() which contains a user-supplied time series. The values in this time series indicate which pair of columns in RCHTAB are used to interpolate fN(VOL). For example, if COLIND(I) = 4.6 for a given time step, then the value is interpolated between those in columns 4 and 5:

    ODFV = fN(VOL) = (column4 value) +
                      0.6*[(column5 value) - (column4 value)]*CONVF   (13)

If the user has selected this option, the time series COLIND(I) must be supplied in the EXT SOURCES Block of the UCI.

This method of outflow demand specification is useful where a set of rule curves (fN(VOL)) are specified for releases from a reservoir, and it is necessary to move from one curve to another (gradually or suddenly) as time progresses in the simulation.

Finding the gN(t) Component

If ODGTFG(N) is zero, there is no gN(t) component. If ODGTFG(N) is greater than zero, there is a gN(t) component. The value of this flag is the element number of vector OUTDGT() which contains the required time series:

    FG2  = ODGTFG(N)
    ODGT = gN(t) = OUTDGT(FG2)                                        (14)

Combining the fN(VOL) and gN(t) Components

If an outflow demand has both of the components described above, the system expects the user to indicate which of the following options to use in combining them:

  1. OD(N) = Min [fN(VOL),gN(t)]
  2. OD(N) = Max [fN(VOL),gN(t)]
  3. OD(N) = fN(VOL) + gN(t)                                    (15)


Solve Routing Equations - SOLVE

 (subroutine SOLVE)

Purpose

SOLVE finds the point where Equations 4 and 8 intersect (case 1 in Figure "Graphical representation of the work performed by subroutine ROUTE" above).

General Approach

The general idea is to select a segment of Equation 8, and determine the point of intersection with Equation 4. If this point lies outside the selected segment, the code will select the adjacent segment (in the direction in which the point of intersection lies) and repeat the process. This continues until the point lies within the segment under consideration. To minimize searching, the segment in which the point of intersection was last located is used to start the process.

Solving the Simultaneous Linear Equations

Equations 4 and 9 can be written as:

    A1*VOL+ B1*ROD = C1                                               (16)
    A2*VOL+ B2*ROD = C2                                               (17)

These equations can be solved by evaluating the determinants:

          ¦A1 B1¦          ¦C1 B1¦          ¦A1 C1¦
    DET = ¦     ¦   DETV = ¦     ¦   DETO = ¦     ¦                   (18)
          ¦A2 B2¦          ¦C2 B2¦          ¦A2 C2¦

In the code of this subroutine:

    FACTA1 = A1 = 1.0/(COKS*DELTS)                                    (19)
    FACTA2 = A2 = ROD1 - ROD2                                         (20)
    FACTB1 = B1 = 1.0                                                 (21)
    FACTB2 = B2 = V2 - V1                                             (22)
    FACTC1 = C1 = OINT                                                (23)
    FACTC2 = C2 = (V2*ROD1) - (V1*ROD2)                               (24)

By substituting Equations 19 through 24 in Equation 18, the determinants are evaluated as:

    DET =  FACTA1*FACTB2 - FACTA2                                     (25)
    DETV = OINT*FACTB2 - FACTC2                                       (26)
    DETO = FACTA1*FACTC2 - FACTA2*OINT                                (27)

The coordinates of the point of intersection are:

    VOL = DETV/DET                                                    (28)
    RO  = DETO/DET                                                    (29)


Outflows Without Using Hydraulic Routing - NOROUT

 (subroutine NOROUT)

Purpose

NOROUT is used to compute the rates and volumes of outflow from a RCHRES and the new volume in cases where no outflow demand has an fN(VOL) component; that is, where all outflow demands are functions of time only.

Method

Equations 4 and 8 are illustrated for this situation in Figure "Graphical representation of the work performed by subroutine NOROUT" below. The solution procedure is similar to that used in subroutine ROUTE, except that: because no outflow demands depend on volume, no table look-up and interpolation is required to evaluate them, and the simultaneous solution of Equations 4 and 8 is easier.

The intercept of Equation 4 on the volume axis is found, as before, using Equation 10. If VOLINT is less than 0.0, there is no solution (case 3). The code takes similar action to that taken by subroutine ROUTE for this case.

If VOLINT is greater than or equal to 0.0, the solution is either case 1 or case 2, as before. In either case, the first step is to evaluate the outflow demands:

    FG    = ODGTFG(N)
    OD(N) = OUTDGT(FG)                                                (30)
    ROD   = OD(1) + ... OD(NEXITS)                                    (31)

The intercept of Equation 4 on the volume axis (OINT) is found using Equation 11. If OINT is greater than ROD, Equations 4 and 8 can be solved (case 1):

    RO   = ROD
    O(*) = OD(*)                                                      (32)

   And from Equations 4 and 10,

    VOL = VOLINT - COKS*RO*DELTS                                      (33)

If OINT is less than or equal to ROD, Equations 4 and 8 cannot be solved (case 2). The physical meaning and the action taken by the code are identical to that described for subroutine ROUTE.

Graphical representation of the work performed by subroutine NOROUT


Values of Auxiliary State Variables - AUXIL

 (subroutine AUXIL)

Purpose

AUXIL is used to compute the depth, stage, surface area, average depth, top width, and hydraulic radius corresponding to a given volume of water in a RCHRES.

Method of Computing Depth

The basic problem is to interpolate a depth value between those given for discrete values of volume in RCHTAB. This raises the question of how the interpolation should be performed; for example, linear or quadratic. Whatever method is used, it should be consistent with the fact that volume is the integral of surface area with respect to depth.

Most RCHRES's are long and relatively narrow (Figure "Illustration of quantities involved in calculation of depth" below). To perform interpolation, it is assumed that surface area varies linearly with depth between neighboring levels (rows) in RCHTAB:

    SAREA = SA1 + (SA2 - SA1)*RDEP                                    (34)

where SAREA is the surface area at depth DEP; SA1, SA2 are the tabulated values of surface area immediately above and below SAREA; RDEP is the relative depth (DEP-DEP1)/(DEP2-DEP1); DEP1, DEP2 are the tabulated values of depth immediately above and below DEP.

By integrating the above equation with respect to depth and equating the result to volume:

    (A*RDEP**2) + (B*RDEP) + C = 0.0                                  (35)

where:
    A = SA2 - SA1
    B = 2.0*SA1
    C = -(VOL - VOL1)/(VOL2 - VOL1)*(B + A)

Equation 35 provides a means of interpolating depth, given volume. There is a quadratic relation between RDEP and VOL. The equation can be solved for RDEP analytically, but, in HSPF, Newton's method of successive approximations is used because it is generally faster in execution:

  1. Calculation starts with an estimate of RDEP: RDEP1 = 0.5
  2. The function FRDEP = (A*RDEP1**2) + (B*RDEP1) + C is evaluated
  3. The derivative DFRDEP = 2.0*A*RDEP1 + B is evaluated
  4. A new value RDEP2 = RDEP1 - FRDEP/DFRDEP is calculated
  5. Steps 2-4 are repeated with RDEP1 = RDEP2 until the change in RDEP is small

Illustration of quantities involved in calculation of depth

The depth is found using:

    DEP = DEP1 + RDEP2*(DEP2 - DEP1)                                  (36)

Computation of Other State Variables

STAGE is the name for any quantity which differs from DEP by a constant:

    STAGE = DEP + STCOR                                               (37)

where:
    STCOR = the difference, supplied by the user

Surface area is computed using a formula based on Equation 34:

    SAREA = SA1 + A*RDEP2                                             (38)

Average depth is computed as:

    AVDEP = VOL/SAREA                                                 (39)

The mean top width is found using:

    TWID = SAREA/LEN                                                  (40)

where:
    LEN = length of the RCHRES, supplied by the user

The hydraulic radius is calculated as a function of average water depth (AVDEP) and mean top width (TWID):

    HRAD = (AVDEP*TWID)/(2.*AVDEP + TWID)                             (41)


Bed Shear Stress and Shear Velocity - SHEAR

 (subroutine SHEAR)

Purpose

SHEAR is used to compute the bed shear velocity and shear stress, based on the mean particle size of bed sediment and the hydraulic properties of the RCHRES (i.e., average water depth, average velocity, hydraulic radius, and slope).

The method of calculating shear velocity and shear stress depends on whether the RCHRES is a lake or a river. If the RCHRES is a lake (LKFG=1), shear velocity is computed using Equation 8.49 from "Hydraulics of Sediment Transport", by W. H. Graf:

     USTAR = AVVEL/(l7.66 + (ALOG10 (AVDEP/(96.5*DB50)))*2.3/AKAPPA)  (42)

where:
     USTAR  = shear velocity (ft/s or m/s)
     AVVEL  = average flow velocity (ft/s or m/s)
     AVDEP  = average water depth (ft or m)
     DB5O   = median diameter of bed material (ft or m)
     AKAPPA = Karman constant (AKAPPA = 0.4)

The shear stress (TAU) on a lake bed is calculated as:

     TAU = GAM*(USTAR**2)/GRAV                                        (43)

where:
     TAU  = bed shear stress (lb/ft2 or kg/m2)
     GAM  = unit weight, or density, of water (62.4 lb/ft3 or 1000 kg/m3)
     GRAV = acceleration due to gravity (32.2 ft/sec2 or 9.8l m/sec2)

If the RCHRES being simulated is a stream or river, both shear velocity and shear stress are determined as functions of the slope and hydraulic radius of the reach:

     USTAR = SQRT(GRAV*SLOPE*HRAD)                                    (44)

where:
     SLOPE = slope of the RCHRES (-)
     HRAD  = hydraulic radius (ft or m)

and

     TAU = SLOPE*GAM*HRAD                                             (45)

where:
     TAU   = stream bed shear stress (lb/ft2 or kg/m2)

Water Rights Categories

Categories can be used to facilitate the modeling of water rights in a RCHRES. If categories are being simulated (NCAT > 0) in the CATEGORY block), each RCHRES in the run keeps track of the categories of all inflows, storages, and outflows, as well as precipitation and evaporation fluxes. Up to 100 categories may be specified in the CATEGORY block.

The storage of each category of water in a RCHRES is called CVOL(C). The inflows of each category are CIVOL(C). The category outflows from exit gate OFLO(N) are called COVOL(C,N), and the total outflow of each category is CROVOL(C). These quantities are illustrated in Figure "Flow diagram for water categories in the HYDR Section of the RCHRES Application Module" below.

The initial storage of water in a RCHRES may be assigned to a single category, or fractions of the storage can be assigned to specified categories. The default is to divide the storage equally among all active categories.

All water entering a RCHRES must be assigned a category. The inflow to each category is input as time series CIVOL, and IVOL is computed as the sum.

By default, precipitation is divided proportionally among all categories present in a RCHRES according to their current storage fraction CFRAC(C), which is calculated as CVOL(C) divided by VOL. Optionally, it may be assigned to either a single category or to several categories by user-defined fractions.

Assigning evaporation losses to categories is somewhat more complicated. By default, evaporation is taken from all categories proportionally based on CFRAC. If a single category is specified, evaporation is taken from that category as long as sufficient water is present. For more complex situations, a priority may be assigned to each of several categories. Multiple categories may be given the same priority, and losses may be divided among them by either user-specified fractions or by CFRAC (the default). When all specified categories are exhausted, any remaining loss is distributed among the other categories by CFRAC.

fN(VOL) outflows are calculated from the FTABLE normally. Most free-flowing reaches will use the default algorithm, which is to pass all categories downstream unchanged, i.e., according to CFRAC. For more complex situations, categories can be assigned in the same way as for evaporation, with separate priorities and categories specified for each exit.

Time-dependent demands (gN(t) releases) are handled differently. The time series OUTDGT is replaced by COTDGT, which is an array specifying the demand from each category for each exit. If there is not enough water in a category to satisfy the demand, the release is cut back, and the storage of that category is reduced to zero. Water is not "borrowed" from other categories to make up the flow. Any deficit in the demand is accumulated throughout the run in the time series CDFVOL. If a category is drawn from more than one exit, a priority may be established for each demand. The priority may be specified as either a real number or a date, such as an ownership date.

Flow diagram for water categories in the HYDR Section of the RCHRES Application Module

If an exit uses FUNCT to combine fN(VOL) and gN(t) demands, then OUTDGT is calculated as the sum of COTDGT for that exit, and the combining function is applied normally.

COVOL is then the result of the actual releases of gN(t) demands COTDGT and the apportionment of fN(VOL) flows by category. The outflow rate is called CO(C,N). The total category outflow volume and rate are CROVOL and CRO, respectively.


Prepare to Simulate Advection of Fully Entrained Constituents - ADCALC

 (Section ADCALC of Module RCHRES)

Purpose

ADCALC calculates values for variables which are necessary to simulate longitudinal advection of dissolved or entrained constituents. These variables are dependent upon the volume and outflow values calculated in the hydraulics section (HYDR).

Approach

The outflow of an entrained constituent is a weighted mean of two quantities: one is an estimate based on conditions at the start of the time step, the other reflects conditions at the end of the time step. The weighting factors are called JS and COJS (complement of JS), respectively. The values of the weighting coefficients depend on (1) the relative volume of stored water in the RCHRES compared to the volume leaving in a single time step and (2) the uniformity of the velocity across a cross-section of the RCHRES. In order to represent these factors, two variables are defined: RAT and CRRAT. RAT is the ratio of RCHRES volume at the start of the interval to the outflow volume based on the outflow rate at the start of the interval:

     RAT = VOLS/(ROS*DELTS)                                            (1)

where:
     VOLS  = volume of water at the start of interval (ft3 or m3)
     ROS   = outflow rate at start of interval (ft3/s or m3/s)
     DELTS = number of seconds in interval

The parameter CRRAT is defined as the ratio of maximum velocity to mean velocity in the RCHRES cross-section under typical flow conditions. CRRAT must always have a value of 1.0 or greater. A value of 1.0 corresponds to a totally uniform velocity (plug flow) across the RCHRES.

Determination of JS and COJS

If the value of RAT is greater than that of CRRAT, it is assumed that all outflow over a given time interval was contained in the RCHRES at the start of the interval, and the mean rate of outflow of material is entirely dependent upon the rate of outflow at the start of the interval (JS = 1.0). If the value of RAT is less than CRRAT, it is assumed that part of the water in the outflow entered the RCHRES as inflow during the same interval; in this case, the concentration of inflowing material will affect the outflow concentration in the same interval, and JS will have a value less than 1.0. The relationship of RAT, CRRAT, and JS is illustrated in Figure "Determination of weighting factors for advection calculations" below. COJS is (1.0 - JS).

Another way to interpret the relationship of these variables is that no inflowing material is present in the outflow in the same interval if the outflow volume is less than (VOLS/CRRAT).

Determination of weighting factors for advection calculations

Calculation of Components of Outflow Volume

Components of outflow volume based on conditions at the start of the interval (SROVOL) and the end of the interval (EROVOL) are calculated as:

     SROVOL = JS*ROS*DELTS                                             (2)
     EROVOL = COJS*RO*DELTS

where:
     SROVOL = outflow volume component based on start of interval
              (ft3/interval or m3/interval)
     EROVOL = outflow volume component based on end of interval
              (ft3/interval or m3/interval)
     ROS    = outflow rate at start of interval (ft3/s or m3/s)
     RO     = outflow rate at end of interval (ft3/s or m3/s)
     DELTS  = number of seconds in interval

Likewise, if there is more than one exit gate for the RCHRES, the corresponding outflow components for each unit, based on conditions at the start and end of each interval, are calculated as:

     SOVOL(N) = JS*OS(N)*DELTS                                         (3)
     EOVOL(N) = COJS*O(N)*DELTS

where:
     SOVOL(N) = outflow volume component based on start of interval for
                exit gate N (ft3/interval or m3/interval)
     EOVOL(N) = outflow volume component based on end of interval for
                exit gate N (ft3/interval or m3/interval)
     OS(N)    = outflow rate at start of interval for exit gate N (ft3/s or m3/s)
     O(N)     = outflow rate at end of interval for exit gate N (ft3/s or m3/s)
     DELTS    = number of seconds in interval

It should be noted that SROVOL, EROVOL, SOVOL(N), and EOVOL(N) are not actual outflows from the RCHRES, but instead are components of outflow based on conditions at the start or end of the interval. These variables are used in subroutine ADVECT to estimate the advection of constituents.


Conservative Constituents - CONS

 (Section CONS of Module RCHRES)

Purpose

CONS simulates constituents which, for all practical purposes, do not decay with time or leave the RCHRES by any mechanism other than advection. Examples include: total dissolved solids, chlorides, and pesticides and herbicides which decay very slowly. Figure "Flow diagram for conservative constituents in the CONS section of the RCHRES Application Module" below illustrates the fluxes of conservative material that are modeled in CONS.

Method

Subroutine CONS performs three functions. First, a value for inflow of material (INCON) is obtained and converted to internal units. The inflow is the sum of inputs from upstream reaches, tributary land areas, and atmospheric deposition:

     INCON = ICON + SAREA*ADFX + SAREA*PREC*ADCN                       (1)

where:
     INCON = total input to reach (mass/interval)
     ICON  = input from upstream reaches and tributary land(mass/interval)
     SAREA = surface area of reach (area)
     ADFX = dry or total atmospheric deposition flux (mass/area per interval)
     PREC = precipitation (depth)
     ADCN = concentration for wet atmospheric deposition in mass/volume

The atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, or as a set of monthly values. The atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for RCHRES, and are specified in the EXT SOURCES block of the UCI. Monthly values are input in the MONTH-DATA block.

After computing inflows, CONS calls subroutine ADVECT to perform longitudinal advection of this material and the material already contained in the RCHRES. Finally, CONS calculates the mass of material remaining in the RCHRES after advection; this value, RCON, is necessary for the mass balance checks on conservatives and is calculated as:

     RCON = CON*VOL                                                    (2)

where:
     RCON = mass of material in RCHRES after advection
     CON  = concentration of conservative after advection
     VOL  = volume of water in RCHRES at end of interval (ft3 or m3)

Flow diagram for conservative constituents in the CONS section of the RCHRES Application Module

Additional Requirements

HSPF allows a maximum of ten conservative constituents. The user selects the units for each constituent; thus, different conservative constituents may have different units. However, in order to provide this flexibility, additional input is required. For each constituent the following information must be provided in the User's Control Input:

  1. CONID: the name of the constituent (up to 20 characters long)
  2. QTYID: this string (up to 8 characters) contains the units used to describe the quantity of constituent entering or leaving the RCHRES, or the total quantity of material stored in it. Examples of possible units for QTYID are 'kg' for kilograms or 'lbs' for pounds
  3. CONCID: the concentration units for each conservative (up to 8 characters long); examples are 'mg/l' or 'lbs/ft3'
  4. CONV: conversion factor from QTYID/VOL to desired concentration units: CONC = CONV*(QTY/VOL) (in English system, VOL is expressed in ft3) (in metric system, VOL is expressed in m3) For example, if:

                        CONCID is mg/l

                        QTYID  is kg

                        VOL    is in m3

                    then CONV = 1000.0


Advection of Constituent Totally Entrained in Water - ADVECT

 (subroutine ADVECT)

Purpose

ADVECT computes the concentration of material in a RCHRES and the quantities of material that leave the RCHRES due to longitudinal advection through active exits. ADVECT is a generalized subroutine, and is called by each module section which simulates constituents which undergo normal longitudinal advection.

Assumptions

Two assumptions are made in the solution technique for normal advection:

  1. Each constituent advected by calling subroutine ADVECT is uniformly dispersed throughout the waters of the RCHRES.
  2. Each constituent is completely entrained by the flow; that is, the material moves at the same horizontal velocity as the water.

Method

The equation of continuity may be written as:

     IMAT - ROMAT = (CONC*VOL) - (CONCS*VOLS)                          (3)

where:
     IMAT  = inflow of material over the interval
     ROMAT = total outflow of material over the interval
     CONCS = concentration at the start of the interval
     CONC  = concentration at the end of the interval
     VOLS  = volume of water stored in the RCHRES at the start of the interval
     VOL   = volume of water stored in the RCHRES at the end of the interval

The other basic equation states that the total outflow of material over the time interval is a weighted mean of two estimates; one based on conditions at the start of the interval, the other on ending conditions:

     ROMAT = ((JS*ROS*CONCS) + (COJS*RO*CONC))*DELTS                   (4)

where:
     JS    = weighting factor
     COJS  = 1.0 - JS
     ROS   = rates of outflow at the start of the interval (m3/s or ft3/s)
     RO    = rates of outflow at the end of the interval (m3/s or ft3/s)
     DELTS = length of interval (seconds)

Using Equations (2) in ADCALC, Equation (4) can be written:

     ROMAT = (SROVOL*CONCS) + (EROVOL*CONC)                            (5)

where SROVOL and EROVOL are as defined earlier.

By combining Equations (3) and (5) we can solve for CONC:

     CONC = (IMAT + CONCS*(VOLS - SROVOL))/(VOL + EROVOL)              (6)

The total amount of material leaving the RCHRES during the interval is calculated from equation (5).

If there is more than one active exit from the RCHRES, the amount of material leaving through each exit is calculated as:

     OMAT = SOVOL*CONCS + EOVOL*CONC                                   (7)

where:
     OMAT  = amount of material leaving RCHRES through individual exit
     SOVOL = outflow volume component for individual exit based on start
             of interval
     EOVOL = outflow volume component for individual exit based on end
             of interval

(SOVOL and EOVOL are defined in ADCALC)

If the RCHRES goes dry during the interval, the concentration at the end of the interval is undefined. The total amount of material leaving the RCHRES is:

     ROMAT = IMAT + (CONCS*VOLS)                                       (8)

If there is more than one active exit from the RCHRES, the amount of material leaving through each exit from a RCHRES which has gone dry during the interval is calculated as:

     OMAT = (SOVOL/SROVOL)*ROMAT                                       (9)

The units in the preceding equations are:

     VOLS,VOL        m3 or ft3 (call these vol-units)
     SROVOL,etc      vol-units/interval
     CONCS,CONC      user defined (call these conc-units)
     IMAT,ROMAT,etc  conc-units * vol-units/interval


Heat Exchange and Water Temperature - HTRCH

 (Section HTRCH of Module RCHRES)

Purpose

The purpose of this code is to simulate the processes which determine the water temperature in a reach or mixed reservoir. Water temperature is one of the most fundamental indices used to determine the nature of an aquatic environment. Most processes of functional importance to an environment are affected by temperature. For example, the saturation level of dissolved oxygen varies inversely with temperature. The decay of reduced organic matter, and hence oxygen demand caused by the decay, increases with increasing temperature. Some form of temperature dependence is present in nearly all processes. The prevalence of individual phytoplankton and zooplankton species is often temperature dependent.

Required Time Series

Five time series of meteorological data are required to simulate the temperature balance within a RCHRES. These are:

  1. solar radiation in langleys/interval
  2. cloud cover expressed as tenths
  3. air temperature in degrees F (English) or degrees C (Metric)
  4. dewpoint temperature in degrees F (English) or degrees C (Metric)
  5. wind speed in miles/interval (English) or km/interval (Metric)

Note that solar radiation data are usually available as daily totals. The user must generally convert these data to hourly or two hourly values before using them in HSPF. If the standard HSPF disaggregation rule were used, a daily value would be divided into equal increments for each interval of the day; this would not account for the rising and setting of the sun. A similar kind of preprocessing needs to be done if daily max/min air temperatures are used.

Schematic View of Fluxes and Storages

Figure "Flow diagram for HTRCH section of the RCHRES Application Module" below illustrates the fluxes involved in this module section. There are no significant internal sources or sinks of temperature within a RCHRES. Changes in heat content are due only to transport processes across the RCHRES boundaries. Module section HTRCH considers three major processes: heat transfer by advection, heat transfer across the air-water interface, and optionally, heat transfer across the water-sediment (bed) interface. The processes of diffusion and dispersion are not considered in HSPF.

Heat transfer by advection is simulated by treating water temperature as a thermal concentration. This enables the use of subroutine ADVECT, a standard subroutine which calculates advective transport of constituents totally entrained in the moving water.

Flow diagram for HTRCH section of the RCHRES Application Module

Heat is transported across the air-water interface by a number of mechanisms, and each must be evaluated individually. The net transport across the air-water interface is the sum of the individual effects. Mechanisms which can increase the heat content of the water are absorption of solar radiation, absorption of longwave radiation, and conduction-convection. Mechanisms which decrease the heat content are emission of longwave radiation, conduction-convection, and evaporation.

Shortwave Solar Radiation

The shortwave radiation absorbed by a RCHRES is approximated by the following equation:

     QSR = 0.97*CFSAEX*SOLRAD*10.0                                     (1)

where:
     QSR    = shortwave radiation (kcal/m2/interval)
     0.97   = fraction of incident radiation which is assumed absorbed
              (3 percent is assumed reflected)
     CFSAEX = ratio of radiation incident to water surface to radiation
              incident to gage where data were collected.  This factor
              also accounts for shading of the water body, e.g., by trees
     SOLRAD = solar radiation (langleys/interval)
     10.0   = conversion factor from langleys to kcal/m2

Longwave Radiation

All terrestrial surfaces, as well as the atmosphere, emit longwave radiation. The rate at which each source emits longwave radiation is dependent upon its temperature. The longwave radiation exchange between the atmosphere and the RCHRES is estimated using the formula:

   QB = SIGMA*((TWKELV**4) - KATRAD*(10**-6)*CLDFAC*(TAKELV**6))*DELT60 (2)

where:
     QB     = net transport of longwave radiation (kcal/m2/interval)
     SIGMA  = Stephan-Boltzman constant multiplied by 0.97 to account
              for emissivity of water
     TWKELV = water temperature (degrees Kelvin)
     KATRAD = atmospheric longwave radiation coefficient with a typical
              value of 9.0
     CLDFAC = 1.0 + (.0017*C**2)
     TAKELV = air temperature corrected for elevation difference (deg K)
     C      = cloud cover, expressed as tenths (range = 0 - 10)
     DELT60 = DELT(minutes) divided by 60

Both atmospheric radiation to the water body and back radiation from the water body to the atmosphere are considered in this equation. QB is positive for transport of energy from the water body to the atmosphere.

Conduction-Convection

Conductive-convective transport of heat is caused by temperature differences between the air and water. Heat is transported from the warmer medium to the cooler medium; heat can therefore enter or leave a water body, depending upon its temperature relative to air temperature. HSPF assumes that the heat transport is proportional to the temperature difference between the two media. The equation used is:

     QH = CFPRES*(KCOND*10**-4)*WIND*(TW - AIRTMP)                     (3)

where:
     QH     = conductive-convective heat transport (kcal/m2/interval)
     CFPRES = pressure correction factor (dependent on elevation)
     KCOND  = conductive-convective heat transport coefficient
              (typically in the range 1 - 20)
     WIND   = wind speed (m/interval)
     TW     = water temperature (deg C)
     AIRTMP = air temperature (deg C)

QH is positive for heat transfer from the water to the air.

Evaporative Heat Loss

Evaporative heat transport occurs when water evaporates from the water surface. The amount of heat lost depends on the latent heat of vaporization for water and on the quantity of water evaporated. For purposes of water temperature simulation, HSPF uses the following equation to calculate the amount of water evaporated:

     EVAP = (KEVAP*10**-9)*WIND*(VPRESW - VPRESA)                      (4)

where:
     EVAP   = quantity of water evaporated (m/interval)
     KEVAP  = evaporation coefficient with typical values of 1 - 5
     WIND   = wind movement 2 m above the water surface (m/interval)
     VPRESW = saturation vapor pressure at the water surface (mbar)
     VPRESA = vapor pressure of air above water surface (mbar)

The heat removed by evaporation is then calculated:

     QE = HFACT*EVAP                                                   (5)

where:
     QE    = heat loss due to evaporation (kcal/m2/interval)
     HFACT = heat loss conversion factor (latent heat of vaporization
             multiplied by density of water)

Heat Content of Precipitation

In module section HYDR, an option exists to include the input of water from precipitation falling directly on the water surface. If this option is activated, it is necessary to assign a temperature to the water added to the RCHRES in this manner. HSPF assumes that precipitation has the same temperature as the water surface on which it falls.

Bed conduction

Heat movement between water and bed sediment contributes significantly to the diurnal variation of water temperature, especially in shallow streams and rivers. Simulation of bed conduction is optional. Also, the user may select from three alternative methods to represent this process.

Method 1:

If BEDFLG = 1, streambed conduction is computed as a function of the difference in temperature between the water-streambed interface (temperature = water temperature) and the streambed at an equilibrium ground temperature at some depth below the bed. The equation is:

      QBED = KMUD * (TGRND - TW)                                       (6)

where:
      QBED  = heat flux from ground to water (kcal/m2/interval)
      TGRND = equilibrium ground temperature (C)
      TW    = water temperature (C)
      KMUD  = water-ground heat conduction coefficient (kcal/m2/C/interval)

KMUD can be estimated as the thermal conductivity of the streambed material divided by the depth (below the water-sediment interface) where equilibrium temperature is assumed to occur.

Method 2:

If BEDFLG = 2, bed conduction is based on the method of Caupp et al. (1994). The method is an extension of Method 1 to include a finite sediment or mud layer (consisting of water-saturated sediment) overlying the ground, which is at an equilibrium temperature. Heat fluxes between the ground and sediment and between the sediment and water are computed, as well as sediment and water temperatures. The algorithm, which includes a differencing scheme for updating the sediment temperature, is described below:

The heat transfer between the ground and sediment is computed as follows:

      QGRMUD = KGRND*(TGRND - TMUD)                                    (7)

where:
      QGRMUD = heat transfer from ground to sediment layer (kcal/m2/interval)
      KGRND  = ground-sediment heat conduction coefficient
               (kcal/m2/C/interval); (default value = 1.419)
      TGRND  = equilibrium ground temperature (C)
      TMUD   = sediment temperature (C)

This heat transfer is used to update the sediment temperature as follows:

      TMUD   = TMUD + QGRMUD/CPR/MUDDEP                                (8)

where:
      CPR    = heat capacity of sediment (1000 kcal/m3/C)
               (CPR is assumed to be the heat capacity of water)
      MUDDEP = depth of sediment layer (m)

Finally, the new sediment temperature is used to compute the heat transfer between the sediment and water column:

      QBED = KMUD*(TMUD - TW)                                          (9)

where:
      QBED  = heat flux from sediment to water (kcal/m2/hr)
      KMUD  = water-sediment heat conduction coefficient (kcal/m2/C/hr)
      TW    = water temperature (C)

Method 3:

If BEDFLG = 3, the bed conduction computation is based on the method proposed by Jobson (1977, 1979) in which the advection-dispersion equation for heat is solved analytically. Jobson's solution reduces the bed conduction to a convergent series consisting of the product of the following quantities:

  1. Temperature change (deg C) of the water over a specific period (TSTOP intervals) prior to the current time interval. (DELTT)
  2. Heat flux per degree C between the bed and water (over the TSTOP time period). The units are kcal/m2/C/interval. (DELH)

Assuming time intervals of one hour, the equation is:

      QBED = S(I=1,TSTOP) [DELH(I) * DELTT(I)]                        (10)

where:
      S(I=1,TSTOP)= summation over the past TSTOP hours
      DELH(I)  = heat flux from bed to water at current interval resulting
                 from a 1.0 degree C temperature increase at hour I
                 (kcal/m2/C/hr)
      DELTT(I) = temperature change over hour I

Therefore, at each time step, the total bed conduction flux is the summation, over TSTOP, of the product of these two arrays. As implemented in HSPF, the temperature change at the current time step is computed twice. The first computation includes all heat flux components except bed conduction; then the resulting temperature change is used to compute the bed conduction flux, which is used to compute the final water temperature change.

Values of DELH and TSTOP can be developed from Jobson's equations; these inputs are computed as a function of the thickness and thermal properties of the bed. Note: The input values of DELH depend upon the simulation time step (i.e., the units are kcal/m2/C/interval). Also, DELH values are negative.

Net heat exchange

The net heat exchange at the water surface is represented as:

     QT = QSR - QB - QH - QE + QP + QBED                              (11)

where:
     QT  = net heat exchange in kcal/m2/interval
     QSR = net heat transport from incident shortwave radiation
     QB  = net heat transport from longwave radiation
     QH  = heat transport from conduction-convection
     QE  = heat transport from evaporation
     QP  = heat content of precipitation
     QBED= net heat exchange with bed

Calculation of Water Temperature

Of the five heat transport mechanisms across the air-water interface, three are significant and dependent upon water temperature. In order to obtain a stable solution for water temperature, these three terms (QB, QH, QE) are evaluated for the temperature at both the start and end of the interval, and the average of the two values is taken (trapezoidal approximation). For this purpose, the unknown ending temperature is approximated by performing a Taylor series expansion about the starting temperature, and ignoring nonlinear terms. This formulation leads to the following equation for the change in water temperature over the interval:

     DELTTW = CVQT*QT/(1.0 + SPD*CVQT)                                (12)

where:
     DELTTW = change in water temperature (deg C)
     CVQT   = conversion factor to convert total heat exchange expressed
              in kcal/m2/interval to deg C/interval (volume dependent)
     QT     = net heat exchange in kcal/m2/interval (with terms evaluated
              at starting temperature)
     SPD    = sum of partial derivatives of QB, QH, and QE with respect to
              water temperature

The heat exchange calculations do not give realistic results when the water body becomes excessively shallow. Consequently, heat transport processes are not considered if the average depth of water in the RCHRES falls below 2 inches. When this happens, the water temperature is set equal to the air temperature.


SHADE

Stream Shading - SHADE function

Stream shading is determined by the spatial relationship between the sun position, the location and orientation of the stream, topographic features such as hills, and riparian vegetation buffers. The position of the sun can be determined at any time, and can be quantified by the solar zenith and azimuth angles. These relationships, some of which are illustrated in Figure 47, are used in this function to estimate the shading of a stream surface of given width and orientation by the topography and vegetation at any time of the day and year when solar radiation is available. A flow diagram of the procedures used in the SHADE function is shown in Figure 48.

Figure 47: Schematic of Topographic and Vegetative Shading

The SHADE function is an implementation of the SHADE program (Chen, 1996), which was originally developed to generate time series of solar radiation absorbed by stream water. The function uses detailed topographic and vegetation information to compute the reduction in radiation due to stream surface shading by these features. The adjusted radiation flux is computed as the average energy flux over the entire RCHRES. Since vegetation and topography may vary significantly along a stream reach represented by a single RCHRES, the shading computations are performed at multiple points (stream sample points or SSPs) along the RCHRES, and the average radiation from all of the SSPs is used.

The inputs needed by SHADE are defined in the UCI file, time series data files, and other files. Several global parameters are specified in the UCI file. These include: a flag specifying that SHADE is being used; the topographic file ID numbers and names; the vegetative file ID numbers and names; the number of stream sample points; the latitude and longitude of the watershed; and the longitude of the center of the local time zone.

Figure 48: Flow chart of Procedures in SHADE Function

The topographic and vegetative features are defined in separate input files (one of each type of file per RCHRES); the files are formatted the same as in the original SHADE program. The topographic input files contain the UTM Cartesian coordinates of the stream sample points and the topographic shade angles in 12 directions at each SSP. The vegetative input files contain the following information for each vegetation polygon (mapped unit of vegetation or forest stand having uniform composition) near the stream: its location (left or right bank); the type of polygon (i.e., forest/shrub or gap); its distance from the edge of stream to the near-stream polygon boundary; width; average height; average height in reference to stream surface; and average canopy density. Refer to Figures 47 and 49 for illustrations of these quantities. The other inputs needed are timeseries of the incoming solar radiation (values for each time interval) and the total daily incoming solar radiation (these timeseries are specified separately). The SHADE function outputs are the effective shading factor and the amount of solar radiation absorbed by the water.

Figure 49: Plan View and Cross Section of Riparian Vegetation Polygons in SHADE Function

As described above, since riparian shading may vary considerably along a stream, shading calculations are made at various locations within a RCHRES; these locations are referred to as stream sample points (SSPs). The shading applicable to the entire RCHRES is estimated as the average of the shading over all of the SSPs. Typically, a uniform distance interval (100-500 m) will be used to select SSPs.

The input solar radiation is disaggregated into two components: beam and diffuse, because the two components are reduced differently by topographic and vegetative shading effects. The direct beam radiation is affected by the geometric relationships between the solar path, the stream/river valley topography, and riparian vegetation buffers, while the diffuse radiation is controlled by the general sky "openness" at each SSP.

Based on the inputs described above for stream location, topography, and vegetation, the following three parameters are estimated at each SSP:

Stream orientation (SO)

The SO at each SSP is the angle from due north to the vector drawn from the SSP to the next upstream SSP (Figure 50). The formulas for computing SO based on the UTM coordinates of the SSPs are shown in Table 1.

Figure 50: Stream Orientation and Two Directions Perpendicular to Stream used in SHADE Function

Table 1. Stream Orientation and Azimuth Angles for the Two Directions Perpendicular to Stream Topographic Shade Angle (TSA) in any Direction

Based on the input TSAs in the twelve standard directions, the TSA (in degrees) in any other direction is determined by interpolation as follows:

Sky Openness (SKOP)

Sky openness is the fraction of sky not blocked by riparian vegetation or topography. It is computed using the TSAs and VSAs (vegetation shade angles) in the directions perpendicular to the stream channel on the left and right banks (refer to Figures 47 and 50).

where TSAZ is estimated using Eqn. 1 with the standard TSAs and the azimuth angles AZL and AZR given in Table 1. The vegetation shade angles (VSA) are computed from the following equation using values for the highest vegetation polygon on either side of the stream.

Disaggregation of Global Solar Radiation

The method for disaggregating the total global radiation into diffuse (RADD) and beam (RADB) components uses an equation by Vignola and Daniels (1984) to compute the diffuse fraction based on a clearness index KT, which is the global radiation (RADG) divided by the extraterrestrial radiation on a horizontal surface (RADEH). The equation for DF (=RADD/RADG) is:

Once DF is computed, RADD is computed as shown above. The daily beam radiation (RADB) is estimated by subtracting the daily diffuse radiation (RADD) from the daily global radiation (RADG) as shown in Eqn. 5 below. Generally, there is more beam radiation and less diffuse radiation on sunny days, and the opposite on cloudy days.

Estimating Shading Effects and Moving Water Albedo

The factors which control the amount of solar radiation that enters stream water are the shading effects of topography and vegetation, and the albedo of the moving water surface. These factors have different impacts on the two components of solar radiation. The SHADE function computes these factors at each SSP during each time interval. This allows the values of RADB and RADD to be adjusted separately to account for reduction due to shading and stream surface reflectance. The output from the SHADE function is the overall adjustment to the global radiation for a RCHRES, which is the sum of the adjusted RADB and RADD.

(1) Shading Effects on Beam Radiation

The length and direction of topographic and vegetation shadows on a stream surface depend on the geometric relationships between the solar path at a particular time and the characteristics of the stream, topography, and vegetation. The solar path is defined by two angles, the zenith angle Z given by the following:

and the azimuth AZ, computed as follows:

At the middle of each interval between sunrise and sunset, the solar zenith angle Z and the azimuth AZ are computed and used to evaluate the topographic and vegetative shading. If the sun beam is parallel to the stream channel, the following computations are ignored because all of the beam radiation can reach the stream surface.

Topographic Shading

The topographic shade angle in the direction of the sun beam (azimuth AZ) i.e., TSAZ is estimated by Eqn. 1, and then compared with the solar altitude (ALT = 90o - Z). If ALT = TSAZ, no sun beam can enter the stream valley, and the vegetative shading computations are skipped. If ALT < TSAZ, there is no topographic shading, and the sun beam can pass the ridge and enter the stream valley.

Vegetation Shading

When ALT < TSAZ, the vegetation buffer (if one exists) provides the only obstruction to the sun beam. The amount of beam radiation that reaches the stream surface is estimated through the following four steps.

First, the stream bank (Left or Right) from which the sun beam comes is identified using the solar azimuth (AZ), the stream orientation (SO), and criteria shown in Table 2.

Second, for each vegetation polygon on the sunward bank at a SSP, two critical height values are estimated. The heights are HMIN, the minimum HDEM of a polygon that can produce stream shade, and HFCV, the HDEM required for generating a shadow of full cover on the stream surface (SHDWID = TWID). They are estimated as follows:

If HDEM < HMIN, the trees or shrubs in that polygon are high enough to contribute shade on the stream surface. Otherwise, that vegetation polygon is not a shade-contributing buffer at this specific time. As the solar altitude increases and decreases during the day, a vegetation polygon that contributes shade in the morning or afternoon may not generate any shade around noon. For each contributing buffer, the shadow width (SHDWID) measured perpendicularly to the stream is calculated as:

The effective shade density (SHDDEN) is approximately estimated using BEER's law through the following procedure:

The extinction coefficient [image] is computed by the equation:

Finally, the effective shade density is derived as

The accumulated effective length (VEGSHD) of the shadow formed by single or multiple vegetation polygons is computed. The shadows of all contributing buffers are sorted and renumbered based on SHDWID in an increasing order. Figure 51 shows four shadows with different values of SHDWID and SHDDEN, where the shadows partially overlap, producing a composite shadow. The accumulated effective shade of these multiple shadows is considered to be an aggregate of multiple shade "segments". Each shade segment has an actual width of SHDWIDi -SHDWIDi-1 and an accumulated density equal to the maximum SHDDEN of the contributing buffers to that segment plus 20% of other contributing buffers SHDDEN (the accumulated density does not exceed 1). The effective width of each shade segment is equal to its actual width multiplied by its accumulated density. The sum of all effective widths of the shade segments is VEGSHD.

Third, if the first vegetation polygon on the sunward bank is located very close to the stream, overhanging canopy above the stream surface may exist and contribute shade. The horizontal width of the protruding portion of the canopy towards the stream is assumed to be 10% of the tree height (HABS). Therefore, when (0.1*HABS - DIS) is greater than zero, the effective width (OVHSHD) of stream surface shaded directly by overhanging canopy can be approximated by

Fourth, VEGSHD + OVHSHD is divided by the stream surface width (TWID) to approximate the fraction of stream surface covered by composite shade. This ratio is used to estimate the amount of incoming beam radiation that actually reaches the water surface as follows:

Figure 51: Partially Overlapping Shadows of Multiple Vegetation Buffers

(2) Shading Effects on Diffuse Radiation The shading of diffuse radiation is assumed to be controlled only by the sky openness (SKOP), which was computed above in Eqn. 2, and does not change with time. At each SSP, the amount of diffuse radiation that strikes the stream surface can be approximated by:

(3) Albedo of Moving Water Surface In the standard version of HTRCH, the albedo (ALDO) of the stream water is assumed to be fixed at a value of 3%. Since albedo for beam radiation actually varies with the solar zenith angle Z, it is estimated using the following empirical equations fitted by Beschta and Weatherred (1984).

Beschta and Weatherred (1984) estimated water albedo for diffuse radiation as a constant value of 0.09. Therefore, the two components of solar radiation RADB and RADD, computed by Eqns. 23 and 24 are reduced by albedo values and summed to obtain the global radiation flux that enters the water.


Air Temperature Elevation Difference - RATEMP

 (subroutine RATEMP)

Purpose

The purpose of this code is to correct air temperature for any elevation difference between the RCHRES and the temperature gage.

Approach

The lapse rate for air temperature is dependent upon whether or not precipitation occurs during the time interval. If precipitation does occur, a wet lapse rate of 1.94E-3 degrees C/ft is assumed. Otherwise, a dry lapse rate which is a function of the time of day is used. A table of 24 hourly dry lapse rates is built into HSPF. The corrected air temperature is:

     AIRTMP = GATMP - LAPS*ELDAT                                        (13)

where:
     AIRTMP = corrected air temperature (deg C)
     GATMP  = air temperature at gage
     LAPS   = lapse rate (degrees C/ft)
     ELDAT  = elevation difference between mean RCHRES elevation and gage
              elevation (feet) (ELDAT is positive if the mean RCHRES
              elevation is greater than the gage elevation)


Behavior of Inorganic Sediment - SEDTRN

 (Section SEDTRN of Module RCHRES)

Purpose

The purpose of this code is to simulate the transport, deposition, and scour of inorganic sediment in free-flowing reaches and mixed reservoirs. The modeling of sediment in channels may be needed for analysis of such problems as:

  1. Structural instability of bridge piers or water intakes caused by scouring.
  2. Reduction of reservoir capacity and clogging of irrigation canals and navigable waterways due to deposition.
  3. Reduction of light available to aquatic organisms caused by suspended sediment.
  4. Transport of adsorbed pollutants such as fertilizers, herbicides, and pesticides.

Schematic View of Fluxes and Storages

Figure "Flow diagram of inorganic sediment fractions in the SEDTRN section of the RCHRES Application Module" below shows the principal state variables and fluxes with which module section SEDTRN deals.

Both the migration characteristics and the adsorptive capacities of sediment vary significantly with particle size. Consequently, HSPF divides the inorganic sediment load into three components (sand, silt, and clay), each with its own properties. Parametric information required for cohesive sediments (silt and clay) include:

  1. particle diameter - D
  2. particle settling velocity in still water - W
  3. particle density - RHO
  4. critical shear stress for deposition - TAUCD
  5. critical shear stress for scour - TAUCS
  6. erodibility coefficient - M

Parameter values required for noncohesive, or sand, particles depend on the method used to compute sandload (alternate methods are described in the functional description of subroutines SANDLD, TOFFAL, and COLBY). If the Toffaleti method is used, values must be defined for median bed sediment diameter (DB5O) and particle settling velocity (W). The Colby method requires a value for DB5O, and the power function method requires both a coefficient (KSAND) for the power function and an exponent (EXPSND).

The same material fluxes are modeled for all three fractions of sediment. Only the methodology used to determine fluxes between suspended storage and bed storage differ.

Flow diagram of inorganic sediment fractions in the SEDTRN section of the RCHRES Application Module

HSPF assumes that scour or deposition of inorganic sediment does not affect the hydraulic properties of the channel. Furthermore, it is assumed that sand, silt, and clay deposit in different areas of the RCHRES bed; consequently, the deposition or scour of each material is not linked to the other fractions (i.e., "armoring" is not modeled). Longitudinal movement of bed sediments is not modeled.

The details of the transport, deposition, and scour techniques are outlined in the functional descriptions of the lower level routines of the SEDTRN module section. Following these calculations, the depth of sediment in the RCHRES bed is determined in order to warn the user whenever the deposited sediment exceeds a pre-specified level. First, the volume occupied by each fraction of bed sediment is calculated:

     VOLSED(J) = RSED(J+3)/RHO(J)*1.0E06                               (1)

where:
     VOLSED(J) = volume occupied by bed sediment of fraction J (m3 or ft3)
     RSED(J+3) = bed storage of sediment fraction J (mg.m3/l or mg.ft3/l)
     RHO(J)    = particle density of fraction J (gm/cm3)

The volumes of the three fractions of bed sediment are summed, and the total bed volume is adjusted to account for the fraction of the volume which is void of sediment (i.e., the porosity):

     VOLSEDA = VOLSED/(l.0 - POR)                                      (2)

where:
     VOLSEDA = volume of bed adjusted to account for volume occupied
               by materials other than sediment
     VOLSED  = volume of sediment contained in the bed (sand + silt + clay)
     POR     = porosity of bed sediment (ratio of pore volume to total volume)

Finally, the depth of bed sediment is calculated for use as an indicator of excessive deposition:

     BEDDEP = VOLSEDA/(LEN*BEDWID)                                     (3)

where:
     BEDDEP  = depth of bed (m or ft)
     VOLSEDA = volume of bed (m3 or ft3)
     LEN     = length of RCHRES (m or ft)
     BEDWID  = effective width of bed for calculation of bed thickness
               (an input parameter expressed in m or ft)

If the calculated value for BEDDEP exceeds a user specified value, a warning message is printed to alert the user to potential modeling problems.

The PERLND module of HSPF simulates removal of total inorganic sediment due to washoff from the land surface and erosion from gullies. Therefore, the user must divide this total sediment into the three components (sand, silt, and clay) so that this material can be routed through the channel system in the RCHRES module.


Cohesive Sediments - COHESV

 (subroutine COHESV)

Purpose

COHESV simulates the deposition, scour, and transport processes of cohesive sediments (silt and clay).

Method

The modeling effort consists of two steps. First, subroutine ADVECT is called to perform advective transport (see ADVECT). Then subroutine BDEXCH is called, and deposition or scour is calculated based on the bed shear stress and the Krone and Partheniades equations. (see BDEXCH).


Exchange with Bed - BDEXCH

 (subroutine BDEXCH)

Purpose

BDEXCH simulates the deposition and scour of cohesive sediment fractions (silt and clay).

Approach

Exchange of cohesive sediments with the bed is dependent upon the shear stress exerted upon the bed surface. The shear stress within the RCHRES is calculated in subroutine SHEAR of the HYDR section. Whenever shear stress (TAU) in the RCHRES is less than the user-supplied critical shear stress for deposition (TAUCD), deposition occurs; whenever shear stress is greater than the user-supplied critical shear stress for scour (TAUCS), scouring of cohesive bed sediments occurs. The rate of deposition for a particular fraction of cohesive sediment is based on a simplification of Krone's (1962) equation to the following form:

     D = W*CONC*(1.0 - TAU/TAUCD)                                      (4)

where:
     D     = rate at which sediment fraction settles out of suspension
             (mass/len2.ivl)
     W     = settling velocity for cohesive sediment fraction (len/ivl)
     CONC  = concentration of suspended sediment fraction (mass/len3)
     TAU   = shear stress (lb/ft2 or kg/m2)
     TAUCD = critical shear stress for deposition (lb/ft2 or kg/m2)

The rate of change of suspended sediment fraction concentration in the RCHRES due to deposition can be expressed as:

     d(CONC)/dt = -(D/AVDEPM)                                          (5)

where:
     AVDEPM = average depth of water in RCHRES (m)

By substituting the expression for deposition rate (D) from Equation 4, the following equation is obtained:

     d(CONC)/dt = -(W*CONC/AVDEPM)*(1 - TAU/TAUCD)                     (6)

By integrating and rearranging this equation, a solution may be obtained for the concentration of suspended sediment lost to deposition during a simulation interval (DEPCONC):

     DEPCONC = CONC*(1.0 - EXP((-W/AVDEPM)*(1.0 - TAU/TAUCD))          (7)

where:
     CONC    = concentration of suspended sediment at start of interval (mg/l)
     W       = settling velocity for sediment fraction (m/ivl)
     AVDEPM  = average depth of water in RCHRES in meters (calculated in HYDR)
     TAU     = shear stress (lb/ft2 or kg/m2)
     TAUCD   = critical shear stress for deposition (lb/ft2 or kg/m2)

The user must supply values for settling velocity (W) and critical shear stress for deposition (TAUCD) for each fraction of cohesive sediment (silt and clay).

Following the calculation of DEPCONC, the storage of sediment in suspension and in the bed is updated:

     SUSP = SUSP - (DEPCONC*VOL)                                       (8)
     BED  = BED + (DEPCONC*VOL)                                        (9)

where:
     SUSP = suspended storage of sediment fraction (mg.ft3/l or mg.m3/l)
     BED  = storage of sediment fraction in bed (mg.ft3/l or mg.m3/l)
     VOL  = volume of water in RCHRES (ft3 or m3)

The rate of resuspension, or scour, of cohesive sediments from the bed is derived from a modified form of Partheniades'(1962) equation:

     S = M*(TAU/TAUCS - 1.0)                                          (10)

where:
     S     = rate at which sediment is scoured from the bed (mass/len2.ivl)
     M     = erodibility coefficient for the sediment fraction (kg/m2.ivl)
     TAUCS = critical shear stress for scour (lbs/ft2 or kg/m2)

The rate of change of suspended sediment fraction concentration in the RCHRES due to scour can be expressed as:

     d(CONC)/dt = S/AVDEPM                                            (11)

By substituting the expression for scour rate (S) from Equation 10 the following equation is obtained:

     d(CONC)/dt = (M/AVDEPM)*(TAU/TAUCS - 1.0)                        (12)

By integrating and rearranging this equation, a solution may be obtained for the concentration of suspended sediment added to suspension by scour during a simulation interval (SCRCONC):

     SCRCONC = M/AVDEPM*1000*(TAU/TAUCS - 1.0)                        (13)

where:
     M      = erodibility coefficient (kg/m2.ivl)
     AVDEPM = average depth of water (m)
     1000   = conversion from kg/m3 to mg/l

The user is required to supply values for the erodibility coefficient (M) and critical shear stress for scour (TAUCS) for each fraction of cohesive sediment (silt and clay) which is modeled.

Following the calculation of SCRCONC, the storage of sediment in suspension and in the bed is updated:

     BED  = BED - (SCRCONC*VOL)                                       (14)
     SUSP = SUSP + (SCRCONC*VOL)                                      (15)

If the amount of scour calculated is greater than available storage in the bed, the bed scour is set equal to the bed storage, and the bed storage is set equal to zero. Since the value specified for TAUCS should be greater than that for TAUCD, only one process (deposition or scour) occurs during each simulation interval.


Behavior of Sand, Gravel - SANDLD

 (subroutine SANDLD)

Purpose

SANDLD simulates the deposition, scour, and transport processes of the sand fraction of inorganic sediment.

Method

Erosion and deposition of sand, or noncohesive sediment, is affected by the amount of sediment the flow is capable of carrying. If the amount of sand being transported is less than the flow can carry for the hydrodynamic conditions of the RCHRES, sand will be scoured from the bed. This occurs until the actual sand transport rate becomes equal to the carrying capacity of the flow or until the available bed sand is all scoured. Conversely, deposition occurs if the sand transport rate exceeds the flow's capacity to carry sand.

Subroutine SANDLD allows the user to calculate sand transport capacity for a RCHRES by any one of three methods. Depending on the value of SANDFG specified in the User's Control Input, either the Toffaleti equation (SANDFG=1), the Colby method (SANDFG=2), or an input power function of velocity (SANDFG=3) is used. If sand transport capacity is calculated using the Toffaleti or Colby methods, the potential sandload concentration is determined by the following conversion:

     PSAND = (GSI*TWIDE*10.5)/ROM                                     (16)

where:
     PSAND = potential sandload (mg/l)
     GSI   = sand transport capacity (tons/day/ft of width)
             (calculated in COLBY or TOFFAL)
     TWIDE = width of RCHRES (ft)
     10.5  = conversion factor
     ROM   = total rate of outflow of water from the RCHRES (m3/sec)

If carrying capacity is a power function of velocity, PSAND is calculated as:

     PSAND = KSAND*AVVELE**EXPSND                                     (17)

where:
     KSAND  = coefficient in the sandload suspension equation (input parameter)
     EXPSND = exponent in sandload suspension equation (input parameter)
     AVVELE = average velocity (ft/sec)

The potential outflow of sand during the interval is:

     PROSND = (SANDS*SROVOL) + (PSAND*EROVOL)                         (18)

where:
     PROSND = potential sand outflow
     SANDS  = concentration of sand at start of interval (mg/1)
     SROVOL and EROVOL are as defined in ADCALC>

The potential scour from, or deposition to, the bed storage is found using the continuity equation:

     PSCOUR = (VOL*PSAND) - (VOLS*SANDS) + PROSND - ISAND             (19)

where:
     PSCOUR = potential scour (+) or deposition (-)
     VOL    = volume of water in RCHRES at the end of the interval (ft3 or m3)
     VOLS   = volume of water in RCHRES at the start of interval (ft3 or m3)
     ISAND  = total inflow of sand into RCHRES during interval

The terms in Equations 18 and 19 have the units of mass.  The potential scour is compared to the amount of sand material on the bottom surface available for resuspension.  If scour demand is less than available bottom sands, the demand is satisfied in full, and the bed storage is adjusted accordingly.  The new suspended concentration is PSAND.  If the potential scour cannot be satisfied by bed storage, all of the available bed sand is suspended, and bed storage is exhausted.  The concentration of suspended sandload is calculated as:

     SAND = (ISAND + SCOUR + SANDS*(VOLS - SROVOL))/(VOL + EROVOL)    (20)

where:
     SAND  = concentration of sand at end of interval
     SCOUR = sand scoured from, or deposited to, the bottom
     SANDS = concentration of sand at start of interval

The total amount of sand leaving the RCHRES during the interval is:

     ROSAND = SROVOL*SANDS + EROVOL*SAND                              (21)

If a RCHRES goes dry during an interval, or if there is no outflow from the RCHRES, all the sand in suspension at the beginning of the interval is assumed to settle out, and the bed storage is correspondingly increased.


Sand Transport Capacity Using Toffaleti's Method - TOFFAL

 (subroutine TOFFAL)

Purpose

TOFFAL uses Toffaleti's method to calculate the capacity of the RCHRES flow to transport sand.

Method

In Toffaleti's methodology, the actual stream for which the sand discharge is to be calculated is assumed to be equivalent to a two-dimensional stream of width equal to that of the real stream and of depth equal to the hydraulic radius of the real stream (FHRAD).

For the purposes of calculation, the depth, FHRAD, of the hypothetical stream is divided into four zones shown in Figure "Toffaleti's velocity, concentration, and sediment discharge relations" below. These are: (1) the bed zone of relative thickness Y/FHRAD = 2*FDIAM/FHRAD; (2) the lower zone extending from

Y/FHRAD = 2*FDIAM/FHRAD to Y/FHRAD = 1/11.24; (3) the middle zone extending from Y/FHRAD = 1/11.24 to Y/FHRAD = 1/2.5; and (4) the upper zone extending from Y/FHRAD = 1/2.5 to the surface. (FDIAM is the median bed sediment diameter). The velocity profile is represented by the power relation:

     U = (1 + CNV)*V*(Y/FHRAD)**CNV                                   (22)

where:
     U    = flow velocity at distance Y above the bed (ft/sec)
     V    = mean stream velocity (ft/sec)
     CNV  = exponent derived empirically as a function of water
            temperature (0.1198 + 0.00048*TMPR)
     TMPR = water temperature (degrees F)

Toffaleti's velocity, concentration, and sediment discharge relations

The concentration distribution of sand is given by a power relation for each of the three upper zones; i.e., by Equations 23-25 in the figure above. The exponent, ZI, in Equations 23-25 is given by:

     ZI = (VSET*V)/(CZ*FHRAD*SLOPE)                                   (26)

where:
     VSET  = settling velocity for sand (ft/s)
     SLOPE = slope of RCHRES (ft/ft)
     CZ    = empirical factor derived as a function of water
             temperature (260.67 - 0.667*TMPR)

Expressions for the sand transport capacity of the lower (GSL), middle (GSM), and upper (GSU) zones are obtained by substituting U from Equation 22 and the appropriate value for sand particle concentration (CI) for each zone into the following equation and integrating between the vertical limits of the zone:

     GSI = INT [LLI to ULI] (CI*Udy)                                  (27)

where:
     GSI = sand transport capacity for zone I
     INT = integral of function in ( ) over limits in [ ]
     ULI = depth Y at upper limit of zone I
     LLI = depth Y at lower limit of zone I
     CI  = concentration of sand in zone I

The resulting equations for sand transport capacity in the three zones are:

     GSL = CMI*(((HRAD/11.24)**(1.0 + CNV - 0.758*ZI) -
           (2*FDIAM)**(1.0 + CNV - 0.756*ZI))/(1.0 + CNV - 0.756*ZI)) (28)

     GSM = CMI*(((HRAD/11.24)**(0.244*ZI)*((HRAD/2.5)**(1.0 + CNV - ZI) -
           (HRAD/11.24)**(1.0 + CNV - ZI)))/(1.O + CNV - ZI))         (29)

     GSU = CMI*(((HRAD/11.24)**(0.244*ZI)*(HRAD/2.5)**(0.5*ZI)*
           (HRAD**(1.0 + CNV - 1.5*ZI) - (HRAD/2.5)**(1.0 + CNV - 1.5*ZI)))/
           (1.0 + CNV - 1.5*ZI))                                      (30)

in which

     CMI = 43.2*CLI*(1.0 + CNV)*V*HRAD**(0.758*ZI - CNV)              (31)

A value for CLI, the concentration of sand in the lower zone, can be obtained by setting the expression for GSL in Equation 28 equal to the following empirical expression and solving for CLI:

     GSL = 0.6/((TT*AC*K4/V**2)**(1.67)*DIAM/0.00058)**(1.67))        (32)

where:
     GSL   = sand transport capacity
     TT    = empirical factor derived as a function of water
             temperature (1.10*(0.051 + 0.00009*TMPR))
     AC    = empirical factor derived as a function of the kinematic
             viscosity of water (VIS) and shear velocity based on
             shear stress due to sand grain roughness (USTAR)
     K4    = empirical factor derived as a function of AC, slope
             of the RCHRES (SLOPE), and particle diameter for which
             65% by weight of sediment is finer (D65).
     V     = mean stream velocity (ft/sec)
     FDIAM = median bed sediment diameter (ft)

Values for factors AC and K4 are given in figures below. The dimensions of AC are such that GSL is expressed in tons per day per foot of width. Consequently, when CLI is evaluated and substituted back into Equations 28-30 the resulting units of sand transport capacity for all three zones are tons per day per foot of width.

Prior to calculation of sand transport capacity for the zones, Equation 25 is solved to be sure that the value for concentration at Y=2*FDIAM does not exceed 100 lbs/ft3. If it does, the concentration at this depth is set equal to 100 lbs/ft3 and an adjusted value of CLI is calculated and used in Equations 28-30. The transport capacity of the final zone, the bed zone, is also determined using the adjusted value of CLI and the following equation:

     GSB = CMI*(2*FDIAM)**(1.0 + CNV - 0.758*ZI)                      (33)

The total sand transport capacity (GSI) for the RCHRES is the sum of the transport capacities for the four zones:

     GSI = GSB + GSL + GSM + GSU                                      (34)

Factors in Toffaleti relations


Sand Transport Capacity Using Colby's Method - COLBY

 (subroutine COLBY)

Purpose

COLBY calculates the capacity of the RCHRES to transport sand based on the median bed sediment diameter (DB50), average stream velocity (V), hydraulic radius (HRAD), fine sediment load concentration (FSL), and water temperature (TEMPR).

Method

The solution technique used in this subroutine is based on empirical relationships developed from the figures below. In general terms, the solution consists of three operations:

  1. Obtain one value for sediment transport capacity from a matrix of values by interpolation. The dimensions of the matrix (G) are 4x8x6 and correspond to ranges of hydraulic radius, velocity, and mean diameter of bed sediment, respectively. Since Colby's curves were developed on a log-log scale, it is necessary to perform a series of three linear interpolations of logarithmic values to derive the value for sediment transport appropriate for the hydraulic parameters in the RCHRES. This value (GTUC) is not corrected for the effects of fine sediment concentration or water temperature.
  2. Correct sand transport capacity value to account for water temperature in RCHRES. A multiplier is obtained from a matrix of values by interpolation. The dimensions of the matrix (T) are 7x4 and correspond to ranges of water temperature and hydraulic radius, respectively. A linear interpolation of logarithmic values is performed to derive the appropriate temperature correction factor. Generally speaking sand transport capacity, measured in tons per day per foot of stream width, decreases with increasing stream width (see Figure "Colby's correction factors" below).
  3. Correct sand transport capacity value to account for fine sediment load in RCHRES. A multiplier is obtained from a matrix of values by interpolation. The dimensions of the matrix (F) are 5x9 and correspond to ranges of fine sediment load concentration and hydraulic radius, respectively. Again, a linear interpolation of logarithmic values is performed to derive the appropriate correction factor. Sand transport capacity increases with increasing fine sediment load and with increasing stream width (Figure "Colby's correction factors" below). It should be noted, however, that the correction factor is not large for typical stream conditions. For example, the multiplier corresponding to a fine sediment load of 10,000 ppm (with hydraulic radius of 1 foot) is 1.17.

Colby's relationship for discharge of sands in terms of mean velocity for six median sizes of bed sands, four depths of flow, and water temperature of 60 F

Colby's correction factors for effect of water temperature, concentration of fine sediment, and sediment size; applied to uncorrected discharge of sand given by above graph

The following additional comments are important to understanding and using the COLBY subroutine:

  1. Fine sediment load is defined as the sum of suspended silt and clay.
  2. If the value for median bed sediment diameter, hydraulic radius, or average velocity for the RCHRES for a given simulation interval falls outside the range of values considered in Colby's graphs, a solution for sand transport capacity cannot be obtained by the Colby method. In this case, an error message is printed which specifies which parameter is out of range, and subroutine TOFFAL is automatically called to obtain a solution using the Toffaleti method.

    Acceptable ranges of parameter values for the Colby method are:

    (a) median bed sediment diameter 0.1-0.8 mm

    (b) hydraulic radius 0.1-100 ft

    (c) average velocity 1.0-10.0 ft/s

  3. Both the Colby and Toffaleti formulations equate depth of flow to hydraulic radius. This approximation is best for wide rivers. Subroutines COLBY and TOFFAL were obtained and modified from Battelle Northwest Laboratories' SERATRA model (Onishi and Wise, 1979). In this model, the depth of flow values in the above figures are equated to hydraulic radius values, and the HSPF version of COLBY has done the same. To the best of our knowledge the accuracy of this approximation for narrow streams has not been documented.


Generalized Quality Constituent - GQUAL

 (Module Section GQUAL)

Purpose

The purpose of this code is to enable the model user to simulate the behavior of a generalized constituent. The constituent which is modeled may be present in the RCHRES only in a dissolved state, or it may also be sediment-associated. If the generalized quality constituent, which will is referred to as a "qual" throughout this discussion, is not associated with sediment, module section GQUAL only considers the following processes:

  1. Advection of dissolved material
  2. Decay processes. One or more of the following can be modeled:
    1. hydrolysis
    2. oxidation by free radical oxygen
    3. photolysis
    4. volatilization
    5. biodegradation
    6. generalized first-order decay
  3. Production of one generalized quality constituent as a result of decay of another generalized quality constituent by any of the listed decay processes except volatilization. This capability is included to allow for situations in which the decay products of a chemical are of primary interest to the user.

    The following additional processes are considered if the generalized quality constituent being modeled is sediment-associated:

  4. Advection of adsorbed suspended material
  5. Deposition and scour of adsorbed material with sediment
  6. Decay of suspended and bed material
  7. Adsorption/desorption between dissolved and sediment-associated phase.

Schematic View of Fluxes and Storage

The figure below illustrates the fluxes and storages modeled in section GQUAL. Note that the arrows indicating fluxes from each of the sediment fraction storages are not all labeled. For instance, although deposition and scour transfer materials between the suspended storage and bed storage of all three sediment fractions (sand, silt, clay), only the flux arrow for deposition/scour of clay is labeled. Deposition/scour flux arrows for sand and silt are left unlabeled so that the flow diagram does not become overly cluttered and incomprehensible. The same convention is used for the other fluxes contained in the flow diagram (i.e., an unlabeled flux arrow indicates that a flux of the same nature as a parallel labeled flux occurs).

Flow diagram for generalized quality constituent in the GQUAL section of the RCHRES Application Module

Approach

The first portion of GQUAL evaluates the nature of the data which will be used for the GQUAL simulation. Since it is anticipated that some users of section GQUAL will be using this section independently of many of the other sections of the RCHRES application module, a variety of data types are allowed. In particular, most data required for simulation of individual decay processes can be supplied in the form of a single constant, 12 monthly constants, a time series value from the INPAD, or in cases where the data value is calculated in another active section of RCHRES, the last computed value may be used. Data types which may be obtained from any one of these sources include:

  1. water temperature
  2. pH (for hydrolysis)
  3. free radical oxygen (for oxidation)
  4. total suspended sediment (for photolysis)
  5. phytoplankton (for photolysis)
  6. cloud cover (for photolysis)
  7. wind (for volatilization from lakes)

GQUAL utilizes six routines to perform the simulation of a generalized quality constituent. These six routines and their functions are:

  1. OXREA: compute oxygen reaeration rate (used to simulate volatilization)
  2. ADVECT: simulate advection of dissolved material
  3. DDECAY: simulate decay of dissolved material
  4. ADVQAL: advect sediment-associated material
  5. ADECAY: simulate decay of qual adsorbed to suspended and bed sediment
  6. ADSDES: simulate exchange of materials due to adsorption and desorption

Details on the methods used by these routines are provided in subsections of this section and in functional descriptions of CONS and RQUAL, OXRX.

Before ADVECT is called, GQUAL sums the inputs of dissolved qual from upstream reaches, tributary land areas, and atmospheric deposition:

     INDQAL = IDQAL + SAREA*ADFX + SAREA*PREC*ADCN                     (1)

where:
     INDQAL = total input of dissolved qual to reach
     IDQAL  = input of dissolved qual from upstream reaches and tributary land
     SAREA  = surface area of reach
     ADFX   = dry or total atmospheric deposition flux in mass/area per interval
     PREC   = precipitation depth
     ADCN   = concentration for wet atmospheric deposition in mass/volume

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for RCHRES, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

GQUAL is also responsible for the calculation of increases in qual resulting from decay of a "parent" chemical. The program is designed so that a user may specify that a "daughter" chemical is produced by any or all of the six decay processes (except volatilization) which degrade a parent qual. However, certain restrictions are placed on the daughter/parent relationship. Simulation of up to seven generalized quality constituents is allowed. Each quality constituent can be produced by decay of any of the other constituents that are specified before it. For example, qual #2 may be produced by decay of qual #1. Qual #3 may be produced by decay of qual #1 and/or qual #2. Qual #7 may be produced by decay of any of the previous six quals. The user should sequence quality constituents accordingly. The amount of daughter qual produced by decay of a parent by a particular decay process is computed as:

     PDQAL(I) = DDQAL(K,J)*C(I,J,K)                                    (2)

where:
     PDQAL(I)   = amount of daughter qual I produced by decay of parent qual J
                  through process K (concu/l)*(ft3/ivl) or (concu/l)*(m3/ivl)
     DDQAL(K,J) = amount of parent material decayed by process K
                  expressed in same units as PDQAL(I)
     C(I,J,K)   = amount of qual I produced per unit of qual J
                  degraded by process K in units of concu I/concu J

After the amount of decay resulting from all active decay processes and the amount of input of qual produced by decay of parent qual(s) have been calculated, the new dissolved concentration of a qual is computed as:

     DQAL(I) = DQAL(I) + (PDQAL(I) - DDQAL(7,I))/VOL                   (3)

where:
     DQAL(I)    = concentration of dissolved qual I
     PDQAL(I)   = amount of qual I produced by decay of parent qual(s)
     DDQAL(7,I) = total amount of qual I degraded by the decay processes
     VOL        = volume of water in the RCHRES

Additional Requirements

HSPF allows a maximum of 7 general quality constituents. The user selects the units for each constituent; thus, different constituents may have different units. For example, the user may simulate fecal and total coliforms expressed in organisms per ml and a pesticide expressed in milligrams per liter in the same simulation. In order to provide this flexibility, additional input is required. For each constituent the following information must be provided in the User's Control Input:

  GQID:     the name of the constituent (up to 20 characters long)

  QTYID:    this string (up to 8 characters) contains the units used to
            describe the quantity of constituent entering or leaving the
            RCHRES, and the total quantity of material stored in it.
            Examples of possible units for QTYID are 'Morg' for millions
            of organisms or 'lbs' for pounds

  CONCID:   the concentration units for each decay constituent (up to 4
            characters long); examples are '#' or 'mg'. It is implied
            that these units are "per liter".

  CONV:     conversion factor from QTYID/VOL to desired concentration
            units: CONC = CONV*(QTY/VOL) (in English system, VOL is
            expressed in ft**3; in metric system, VOL is expressed in m**3)

             For example, if:
                  CONCID is mg/l,
                  QTYID is kg, and
                  VOL is m3,
             then CONV = 1000.


Decay of Dissolved Material - DDECAY

 (subroutine DDECAY)

Purpose

DDECAY simulates the degradation of generalized quality constituents by chemical and/or biological means. Six processes are considered:

  1. hydrolysis
  2. oxidation by free radical oxygen
  3. photolysis
  4. volatilization
  5. biodegradation
  6. generalized first-order decay

Discussion

HSPF includes detailed degradation methods only for the dissolved state of the quality constituent (qual); decay of qual material in the adsorbed state is handled by a lumped first-order decay function in subroutine ADECAY. Formulations of the degradation processes are based on studies conducted by Smith et al. (1977, 1980), Zepp and Cline (1977), Falco et al. (1976), and Mill et al. (1980). Most formulations are similar to those included in the SERATRA model (Onishi and Wise, 1979). All degradation processes modeled in DDECAY contain a temperature correction factor.

Methods

Hydrolysis

Hydrolysis is defined as any reaction that takes place in water, without the aid of light or microorganisms, in which a compound is transformed to a different compound as a result of reaction with water. The rate of change of dissolved qual concentration due to hydrolysis is sensitive to changes in pH and water temperature. In HSPF, the equation presented by Smith et al. (1977) is modified to include a temperature correction factor and rewritten as:

     KHYD = (KA*10.0**(-PHVAL) + KB*10.0**(PHVAL - 14.0) + KN)*
            THHYD**TW20                                                (5)

where:
     KHYD  = hydrolysis rate constant for qual adjusted for pH
             and water temperature conditions of RCHRES
     KA    = hydrolysis rate coefficient for qual in acidic solution (pH5)
     KB    = hydrolysis rate coefficient for qual in basic solution (pH9)
     KN    = hydrolysis rate coefficient for qual in neutral solution (pH7)
     PHVAL = pH of water in RCHRES
     THHYD = temperature correction parameter for hydrolysis
     TW20  = TW (water temperature in degrees C) - 20.0

The hydrolysis rate coefficients (KA, KB, KN) for a particular qual are determined by standard laboratory tests (ASTM, 1980). Depending on the availability of data and the needs of the model user, pH information for the hydrolysis equation can be supplied as (1) one constant value, (2) twelve monthly values, or (3) a time series. The time series can either be an input time series or the results of pH simulation if section RQUAL is active and pH is simulated.

Oxidation by Free Radical Oxygen

Two general types of oxidation reactions can be distinguished for evaluating chemical oxidation processes in an aquatic environment (Mill et al., 1980):

1. Reaction of an excited state of a molecule with oxygen, in which the excited state is produced by direct photolysis or by interaction with a photosensitizer; this process is termed photo-oxidation.

2. Reaction of the ground state of the chemical with oxidants in solution, in which the oxidants are formed by reactions of dissolved or suspended natural materials in solution; these reactions are termed thermal oxidation, autoxidation, or simply oxidation. The ultimate driving force for oxidant formation may, however, often be photochemical reactions of the natural materials.

In HSPF, photo-oxidation is considered as one of the photo-initiated degradation processes collectively labelled as photolysis. Consequently, only thermal oxidation is considered in the following formulation. The rate of oxidation of dissolved qual is expressed as a function of free radical oxygen concentration (ROC) and water temperature:

     KROX = KOX*ROC*(THOX**TW20)                                       (5)

     KROX = oxidation rate constant for qual adjusted for free
            radical oxygen concentration and water temperature
     KOX  = base oxidation rate coefficient for qual
     ROC  = free radical oxygen concentration (moles/l (M))
     THOX = temperature correction parameter for oxidation
     TW20 = TW (water temperature in degrees C) - 20.0

The oxidation rate coefficient (KOX) for a qual is determined from laboratory tests. Mill et al. (1980) cites two groups of oxidants which are likely to be important in natural waters: alkylperoxy radicals and singlet molecular oxygen. The overall free radical oxygen concentration can be specified by the user as a constant value, twelve monthly values, or a time series.

Photolysis

Photochemical transformation of chemicals can occur when energy in the form of light is absorbed by a molecule, placing it in an excited state from which reaction can occur. Direct photolysis of chemicals occurs when the chemical molecule itself absorbs light and undergoes reaction from its excited state. Indirect photolysis occurs when another chemical species, called a sensitizer, absorbs light and the sensitizer transfers energy from its excited state to another chemical, which then undergoes reaction. There are many types of photochemical reactions, including oxidation, reduction, hydrolysis, substitution, and rearrangement. In practice it is possible to measure the rate constant for photochemical reaction or a reaction quantum yield without knowing the types of reactions which are occurring (Mill et al., 1980). The formulation of photolysis developed for HSPF is intended to measure the net degradation of a generalized quality constituent which results from photochemical reactions.

The basic equation for rate of loss of a qual in dilute solution in an environmental water body due to absorbance of light of wavelength lambda is given by:

     KPHOL = ((PHI*INLITL)/DEP)*FSLAM*FQLAM                            (6)

where:
     KPHOL  = rate of loss of qual due to photolysis by light of wavelength lambda
     PHI    = reaction quantum yield for photolysis of qual (moles/einstein)
     INLITL = incident light intensity of wavelength lambda (einsteins/cm2.day)
     DEP    = depth of water
     FSLAM  = fraction of light absorbed by the system
     FQLAM  = fraction of absorbed light that is absorbed by qual

The solution technique outlined by Mill and implemented in HSPF uses seasonal day-averaged, 24-hour light intensity values (LLAM) for 18 wavelength intervals from 300 nm to 800 nm. In order to use these values, the relationship between the light intensity variable (INLITL) in Equation 6 and the tabulated values for LLAM must be defined. The relationship derived by Mill for relatively clear water or shallow depths can be written as:

     INLITL = LLAM/2.3*BETA                                            (7)

where:
     BETA = LLIT/DEP
     LLIT = path length of light through water
     DEP  = depth of water

Further, the effects of cloud cover on light intensity are introduced by adding factor CLDLAM:

     INLITL = (LLAM/2.3*BETA)*CLDLAM                                   (8)

where:
     CLDLAM = fraction of total light intensity of wavelength
              lambda which is not absorbed or scattered by clouds

CLDLAM is calculated as:

     CLDLAM = (10.0 - CC*KCLDL)/10.0                                   (9)

where:
     CC    = cloud cover in tenths
     KCLDL = efficiency of cloud cover in intercepting light
             of wavelength lambda, a user supplied parameter (default
             value 0.0)

By substitution of Equation 8 into Equation 6, the general equation for the photolysis rate of a qual due to absorbance of light of wavelength lambda can be expressed as:

     KPHOL = ((PHI*LLAM*CLDLAM)/2.3*BETA*DEP)*FSLAM*FQLAM             (10)

The general mathematical expression for the fraction of light absorbed by the water system (FSLAM) is:

     FSLAM = 1.0 - 10**(-KLAM*LLIT)                                   (11)

The exponential coefficient, KLAM, in this equation has two components for laboratory conditions:

     KLAM = ALPHL + EPSLAM*C                                          (12)

where:
     ALPHL  = base absorbance term for light of wavelength lambda
              for the system (/cm)
     EPSLAM = absorbance term for light of wavelength lambda
              absorbed by qual (l/mole.cm)
     C      = concentration of qual (moles/l)

For environmental systems, the effects of light absorbance by suspended sediment and phytoplankton are introduced to the formulation, and KLAM is expanded to:

     KLAM = ALPHL + EPSLAM*C + GAMLAM*SED + DELLAM*PHYTO              (13)

where:
     GAMLAM = absorbance term for light absorbed by suspended sediment
              (l/mg/cm)
     SED    = total suspended sediment (mg/l)
     DELLAM = absorbance term for light absorbed by phytoplankton (l/mg/cm)
     PHYTO  = phytoplankton concentration (mg/l)

Because the concentration of qual is assumed small, the fraction of total absorbance of light in the water system resulting from absorbance by the qual is assumed negligible, and the term (EPSLAM*C) is dropped from Equation 13. By substituting the modified value of KLAM into Equation 10, setting LLIT = BETA*DEP (from Equation 7), and assuming that BETA = 1.2 (Mill et al., 1980), the final form of the expression for FSLAM is obtained:

     FSLAM = 1.0 - 10**(-1.2*KLAM*DEP)                                (14)

The remaining term of the general equation for photolysis (Equation 10) which must be evaluated is FQLAM, the fraction of total absorbed light that is absorbed by the qual. This term is evaluated as:

     FQLAM = (EPSLAM*C)/KLAM                                          (15)

Equation 10 can be rewritten as:

     PHOFXL = ((PHI*LLAM*CLDLAM)/2.3*BETA*DEP)*
              (1.0 - 10**(-1.2*KLAM*DEP))*(EPSLAM*C/KLAM)             (16)

To obtain the rate of loss of qual due to photolysis from absorption of light of all wavelength intervals, Equation 16 must be summed over LLAM:

     KPHO = (PHI/(2.76*DEP))*(SUM [1 to 18] ((LLAM*
            CLDLAM*EPSLAM/KLAM)*(1.0 - EXP(-2.76*KLAM*DEP))           (17)

The equation for the degradation rate due to photolysis used in HSPF is further complicated by correction factors for surface shading and water temperature. The final rearranged and expanded formulation is:

     KPHO = (CF*DELT60/24.)*PHI*(SUM [1 to 18] ((LLAM*CLDLAM/2.76*
            KLAM*DEP)*(1.0 - EXP(-2.76*KLAM*DEP))*EPSLAM))*THPHO**TW20 (18)

where:
     SUM       = summation of function in ( ) over limits in [ ]
     CF        = factor accounting for surface shading
     DELT60/24 = conversion from day to interval
     THPHO     = temperature correction parameter for photolysis
     TW20      = TW (water temperature in degrees C) - 20.0

For simulation intervals of less than 24 hours, photolysis is assumed to occur only between 6:00 AM and 6:00 PM during approximate daylight hours. In order to obtain a solution which is reasonably consistent with the input seasonal, day-averaged, 24-hour light intensity values, the daily light intensity is assumed to be uniformly distributed over the 12 hours from 6:00 AM to 6:00 PM. Consequently, calculated photolysis rates are doubled during daylight hours and set equal to zero for non-daylight hours. It should be noted that five look-up tables for solar intensity values (LLAM) are incorporated into HSPF. Tables below show the values for seasonal day-averaged, 24 hour light intensity at 1O, 20, 30, 40, and 50 degrees latitude. The Run Interpreter checks the input latitude for the study area and selects the appropriate table from which to extract values. Additional input required to simulate photolysis in subroutine DDECAY include:

  1. Molar absorption coefficients for each of the 18 wavelengths
  2. Reaction quantum yield for qual (PHI)
  3. Temperature correction parameter for photolysis (THPHO)
  4. 18 values for base absorbance term for water system (ALPHL)
  5. 18 values for absorbance for light absorbed by suspended sediment (GAMLAM)
  6. 18 values for absorbance for light absorbed by phytoplankton (DELLAM)
  7. Cloud cover values. Either a time series or 12 monthly values may be supplied.
  8. Total suspended sediment values. Either a time series or 12 monthly values.
  9. Phytoplankton values. Either a time series or 12 monthly.
Wavelength, | Solar Intensity, milli-einsteins/cm2/day
Nanometers | Spring | Summer | Fall | Winter
300 | 1.02E-2 | 4.66E-4 | 4.19E-4 | 3.20E-4
303.75 | 1.78E-2 | 3.16E-3 | 2.87E-3 | 2.39E-3
308.75 | 2.85E-2 | 9.37E-3 | 8.51E-3 | 7.26E-3
313.75 | 3.27E-2 | 1.90E-2 | 1.73E-3 | 1.51E-2
318.75 | 4.18E-2 | 2.91E-2 | 2.66E-2 | 2.38E-2
323.1 | 3.70E-2 | 2.65E-2 | 2.91E-2 | 2.36E-2
346 | 3.39E-1 | 3.29E-1 | 2.99E-1 | 2.92E-1
370 | 4.33E-1 | 4.38E-1 | 3.85E-1 | 3.44E-1
400 | 8.40E-1 | 8.37E-1 | 7.64E-1 | 6.96E-1
430 | 1.16 | 1.17 | 1.07 | 9.80E-1
460 | 1.47 | 1.47 | 1.36 | 1.23
490 | 1.50 | 1.50 | 1.37 | 1.27
536.25 | 2.74 | 2.69 | 2.46 | 2.26
587.5 | 2.90 | 2.79 | 2.52 | 2.35
637.5 | 2.90 | 2.80 | 2.60 | 2.43
687.5 | 2.80 | 2.80 | 2.60 | 2.30
756 | 2.70 | 2.70 | 2.50 | 2.40
800 | 3.00 | 2.50 | 2.30 | 2.10

Solar Intensity Values for Latitude 10 N

9
Wavelength, | Solar Intensity, milli-einsteins/cm2/day
Nanometers | Spring | Summer | Fall | Winter
300 | 3.51E-4 | 4.44E-4 | 2.74E-4 | 1.47E-4
303.75 | 2.51E-3 | 3.15E-3 | 2.20E-3 | 1.47E-3
308.75 | 8.09E-3 | 9.61E-3 | 6.89E-3 | 5.34E-3
313.75 | 1.81E-2 | 1.97E-2 | 1.48E-2 | 1.15E-2
318.75 | 2.82E-2 | 3.02E-2 | 2.33E-2 | 1.88E-2
323.1 | 2.83E-2 | 3.03E-2 | 2.33E-2 | 1.88E-2
340 | 3.29E-1 | 3.47E-1 | 2.68E-1 | 2.21E-1
370 | 4.24E-1 | 4.47E-1 | 3.45E-1 | 2.86E-1
406 | 8.41E-1 | 8.83E-1 | 6.96E-1 | 5.97E-1
430 | 1.17 | 1.23 | 9.80E-1 | 8.40E-1
460 | 1.47 | 1.55 | 1.24 | 1.06
490 | 1.50 | 1.58 | 1.26 | 1.0
536.25 | 2.68 | 2.81 | 2.30 | 1.95
587.5 | 2.80 | 2.96 | 2.35 | 2.03
637.5 | 2.80 | 2.90 | 2.42 | 2.07
687.5 | 2.80 | 3.00 | 2.40 | 2.10
750 | 2.76 | 2.80 | 2.20 | 2.36
800 | 2.50 | 2.70 | 2.26 | 1.60

Solar Intensity Values for Latitude 20 N

Wavelength, | Solar Intensity, milli-einsteins/cm2/day
Nanometers | Spring | Summer | Fall | Winter
300 | 2.30E-4 | 3.65E-4 | 1.35E-4 | 4.10E-5
303.75 | 2.13E-3 | 2.32E-3 | 1.44E-3 | 6.50E-4
308.73 | 7.26E-3 | 9.02E-3 | 4.84E-3 | 2.76E-3
313.75 | 1.65E-2 | 1.92E-2 | 1.16E-2 | 7.55E-3
318.75 | 2.64E-2 | 3.02E-2 | 1.89E-2 | 1.31E-2
323.1 | 2.69E-2 | 3.04E-2 | 2.30E-2 | 1.34E-2
340 | 3.20E-1 | 3.74E-1 | 2.23E-1 | 1.70E-1
370 | 4.14E-1 | 4.37E-1 | 2.84E-1 | 2.19E-1
400 | 8.27E-1 | 9.07E-1 | 6.23E-1 | 4.75E-1
430 | 1.15 | 1.34 | 8.50E-1 | 6.69E-1
460 | 1.45 | 1.59 | 1.09 | 8.50E-1
490 | 1.48 | 1.62 | 1.11 | 8.80E-1
536.25 | 2.64 | 2.89 | 2.00 | 1.57
587.5 | 2.74 | 3.03 | 2.07 | 1.63
637.5 | 2.76 | 3.00 | 2.09 | 1.67
687.5 | 2.80 | 3.00 | 2.10 | 1.73
750 | 2.70 | 2.90 | 2.10 | 1.63
800 | 2.50 | 2.80 | 1.90 | 1.60

Solar Intensity Values for Latitude 30 N

Wavelength, | Solar Intensity, milli-einsteins/cm2/day
Nanometers | Spring | Summer | Fall | Winter
300 | 1.09E-4 | 2.49E-4 | 1.09E-4 | 5.38E-6
303.75 | 1.37E-3 | 2.32E-3 | 1.37E-3 | 1.56E-4
308.75 | 2.96E-3 | 7.93E-3 | 5.35E-3 | 1.02E-3
313.75 | 7.99E-3 | 1.81E-2 | 1.38E-2 | 3.79E-3
318.75 | 1.38E-2 | 2.91E-2 | 2.319E-2 | 7.53E-3
323.1 | 1.42E-2 | 2.97E-2 | 2.39E-2 | 8.10E-3
340 | 1.78E-1 | 3.54E-1 | 1.08E-1 | 7.52E-2
370 | 2.30E-1 | 4.58E-1 | 3.84E-1 | 1.47E-1
400 | 5.26E-1 | 9.71E-1 | 7.91E-1 | 3.38E-1
430 | 6.76E-1 | 1.28 | 1.11 | 4.80E-1
460 | 8.90E-1 | 1.43 | 1.39 | 6.10E-1
490 | 9.23E-1 | 1.63 | 1.42 | 6.20E-1
536.25 | 1.69 | 2.92 | 2.52 | 1.12
587.5 | 1.73 | 3.05 | 2.62 | 1.16
637.5 | 1.78 | 3.00 | 2.60 | 1.19
687.5 | 1.50 | 3.10 | 4.70 | 1.39
750 | 1.70 | 2.90 | 2.60 | 1.20
800 | 1.60 | 2.90 | 2.50 | 1.16

Solar Intensity Values for Latitude 40 N

Wavelength, | Solar Intensity, milli-einsteins/cm2/day
Nanometers | Spring | Summer | Fall | Winter
300 | 3.71E-5 | 7.88E-6 | 1.52E-4 | 4.00E-7
303.75 | 7.10E-4 | 1.75E-3 | 2.25E-4 | 1.57E-5
308.75 | 3.55E-3 | 6.53E-3 | 1.29E-3 | 1.78E-4
313.75 | 7.30E-3 | 1.63E-2 | 4.39E-3 | 1.20E-3
318.75 | 1.84E-3 | 2.67E-2 | 8.64E-3 | 2.93E-3
323.1 | 1.96E-2 | 2.77E-2 | 9.20E-3 | 3.68E-3
340 | 2.66E-1 | 3.43E-1 | 1.24E-1 | 6.29E-2
370 | 3.48E-1 | 4.44E-1 | 1.66E-1 | 8.21E-2
400 | 7.24E-1 | 9.04E-1 | 3.65E-1 | 1.96E-1
430 | 1.02 | 1.26 | 5.17E-1 | 2.75E-1
460 | 1.29 | 1.60 | 6.60E-1 | 3.51E-1
470 | 1.32 | 1.63 | 6.80E-1 | 3.55E-1
536.25 | 2.34 | 2.90 | 1.22 | 6.30E-1
587.5 | 2.40 | 3.04 | 1.25 | 6.40E-1
637.5 | 2.44 | 3.00 | 1.31 | 6.90E-1
687.5 | 2.50 | 3.10 | 1.34 | 7.10E-1
750 | 2.50 | 2.90 | 1.31 | 7.10E-1
800 | 2.30 | 2.90 | 1.24 | 6.90E-1

Solar Intensity Values for Latitude 50 N

Volatilization

Volatilization of a chemical that is dissolved in water is defined as the transport of the chemical from the water to the atmosphere. The concentration of the chemical in water decreases even though a transformation does not occur. Thus, volatilization is not a degradation process in the strict sense, since the chemical which leaves a water body by volatilization is not biologically or chemically degraded. Current evidence suggests that volatilization is likely to be the major aquatic fate of low molecular weight, nonpolar compounds that are not rapidly biodegraded or chemically transformed. Volatilization rates of higher molecular weight compounds can also be significant under certain conditions (Smith, 1980).

In HSPF, the volatilization rate of a qual is tied to the oxygen reaeration coefficient:

     KVOL = KOREA*CFGAS                                               (19)

where:
     KVOL  = rate of loss of qual from water due to volatilization
     KOREA = oxygen reaeration coefficient calculated by subroutine OXREA
     CFGAS = ratio of volatilization rate of qual to oxygen reaeration
             rate, an input parameter.

The value for input parameter CFGAS can be determined as the ratio of the molecular diameter of oxygen to the molecular diameter of the qual.

Biodegradation

Biodegradation is one of the most important processes for transformation of chemical compounds when they enter natural environments. Many organic chemicals are used by living cells for carbon and energy sources. Microorganisms metabolize a wide variety of organic compounds, including many man-made chemicals (Chou, 1980). The rate of biodegradation of a dissolved qual is expressed as a function of the concentration of biomass which degrades the qual (BIO) and water temperature:

     KBIO = KBMASS*BIO*(THBIO**TW20)                                  (20)

where:
     KBIO   = biodegradation rate constant for qual adjusted for
              biomass concentration and water temperature
     BIOCON = base biodegradation rate coefficient for qual
     BIO    = concentration of biomass that is involved in qual degradation
     THBIO  = temperature correction parameter for biodegradation
     TW20   = TW (water temperature in degrees C) - 20.0

Biomass data may be supplied as a constant, 12 monthly values, or a time series. HSPF allows for the fact that a different population of microorganisms can be involved in the biodegradation of each different generalized quality constituent by requiring the user to specify a unique set of biomass data for each constituent which is simulated.

Generalized First-order Decay

Generalized first-order decay of dissolved qual may be simulated in addition to, or instead of, the individual decay processes outlined above. The equation used to calculate rate of decay is:

     KGEN = KGEND*THGEN**TW20                                         (21)

where:
     KGEN  = generalized first-order decay rate for a qual
             corrected for temperature
     KGEND = base first-order decay rate for a qual
     THGEN = temperature correction parameter for first-order decay

After decay rates for all of the processes which are active for a qual have been calculated, they are summed to determine a total decay rate. At this point the total loss of qual material resulting from decay is evaluated:

     DDQALT = DQAL*(1.0 - EXP(-KTOTD))*VOL                            (22)

where:
     DDQALT = loss of qual due to all forms of degradation,
              expressed in (concu/l)*(ft3/ivl) or (concu/l)*(m3/ivl)
     DQAL   = concentration of dissolved qual (concu/l)
     KTOTD  = total decay rate of qual per interval
     VOL    = volume of water in the RCHRES

Finally, to determine the amount of material degraded by each individual process, a linear proration is performed based on the total decay of material:

     DDQAL(I) = (K(I)/KTOTD)*DDQALT                                   (23)

where:
     DDQAL(I) = loss of qual due to decay by process I, expressed
                in (concu/l)*(ft3/ivl) or (concu/l)*(m3/ivl)
     K(I)     = decay rate due to process I (/ivl)


Advection of Material on Sediment - ADVQAL

 (subroutine ADVQAL)

Purpose

ADVQAL simulates the advective processes for the quality constituent attached to one sediment size fraction. Processes handled in this subroutine include:

  1. Inflow to the RCHRES of qual attached to suspended sediment.
  2. Migration of qual from suspension in the water to the bed as a result of deposition of the sediment to which the qual is adsorbed.
  3. Migration of qual from the bed into suspension in the water as a result of scour of the bed sediments to which the qual is adsorbed.
  4. Outflow from the RCHRES of qual attached to suspended sediment.

Method

The movement of adsorbed qual is completely determined by the movement of the sediment to which it is attached. All fluxes of adsorbed qual are expressed as the product of the flux of a sediment fraction (sand, silt, or clay) and the concentration of qual associated with that fraction (expressed in concu per mg of sediment). Likewise, storages of adsorbed qual are expressed as the product of the sediment fraction storage and the associated concentration of qual. A simplified flow diagram of sediment and associated qual fluxes and storages is provided in the figure below to facilitate the following discussion. Note that ADVQAL is designed to operate on one sediment fraction and one qual each time it is called by GQUAL.

Simplified flow diagram for important fluxes and storages of sediment and associated qual used in subroutine ADVQAL

If the sediment simulation in module section SEDTRN indicates that scour of bed storage of a sediment fraction occurs, the following actions are taken in ADVQAL:

  1. Bed storage of adsorbed qual is updated.
  2. Flux of qual from bed to suspension (DSQAL) is set equal to the bed storage of the qual (RBQAL) if the entire bed storage of the sediment fraction is scoured.
  3. If only part of the bed storage of the sediment fraction is scoured, the flux of qual from bed to suspension is calculated as:

        DSQAL = BQAL*DEPSCR                                           (24)

   where:
        DSQAL  = amount of qual scoured from bed and added to suspension
                 expressed in (concu/1)*(ft3/ivl) or (concu/1)*(m3/ivl)
        BQAL   = concentration of qual on bed sediment fraction
                 under consideration in concu/mg sediment
        DEPSCR = amount of sediment fraction which is scoured from
                 the bed expressed in mg.ft3/1.ivl or mg.m3/l.ivl
  4. Concentration of adsorbed qual in suspension is updated to account for scour:

        SQAL = (ISQAL + RSQALS - DSQAL)/(RSED + ROSED)                (25)

   where:
        SQAL   = concentration of adsorbed qual in suspension
                 expressed as concu/mg suspended sediment fraction
        ISQAL  = inflow of qual to the RCHRES as a result of inflowing sediment
                 fraction, expressed as (concu/l)*(ft3/ivl) or (concu/l)*(m3/ivl)
        RSQALS = storage of qual on suspended sediment fraction
                 expressed in (concu/l)*ft3 or (concu/l)*m3
        RSED   = amount of sediment fraction in suspension at end of interval
                 expressed in mg.ft3/l or mg.m3/l
        ROSED  = amount of sediment fraction contained in outflow from the RCHRES
                 during the interval expressed in mg.ft3/l.ivl or mg.m3/l.ivl
  5. Amount of qual leaving the RCHRES as outflow is determined as:

        ROSQAL = ROSED*SQAL                                           (26)

If the sediment simulation in module section SEDTRN indicates that deposition of suspended sediment occurs, ADVQAL performs the following operations:

  1. Concentration of qual on total suspended sediment fraction (inflow + suspended storage) for the RCHRES is calculated:

        SQAL = (ISQAL + RSQALS)/(RSED + DEPSCR + ROSED)               (27)
  2. Amount of qual leaving the RCHRES due to outflow of sediment fraction is determined:

        ROSQAL = ROSED*SQAL                                           (28)
  3. Amount of qual leaving suspension due to deposition of the sediment to which it is adsorbed is found by:
            DSQAL = DEPSCR*SQAL                                           (29)
  4. The concentration of qual on sediment in suspension is set equal to zero if the suspended storage of sediment is zero.
  5. The concentration of qual on bed sediment is set equal to zero if the storage of bed sediment at the end of the interval is zero.
  6. If there is bed sediment at the end of the interval, the bed storage of qual associated with the sediment fraction is calculated as:
            RBQAL = DSQAL + RBQALS                                        (30)
  7. The concentration of qual on bed sediment is determined:

        BQAL = RBQAL/BSED                                             (31)

   where:
        BSED = storage of sediment fraction (sand, silt, or clay)
               in the bed, expressed as mg.ft3/l or mg.m3/l

The final operation which ADVQAL performs is the computation of outflow of adsorbed qual through individual exits (when more than one exit is specified). The algorithm is:

     OSQAL (I) = ROSQAL*OSED(I)/ROSED                                 (32)

where:
     OSQAL(I) = outflow of adsorbed qual through exit gate I
     ROSQAL   = total outflow of adsorbed qual from RCHRES
     OSED(I)  = outflow of sediment fraction through exit gate I


Decay of Adsorbed Material - ADECAY

 (subroutine ADECAY)

Purpose

ADECAY is a generalized subroutine which calculates the amount of decay experienced by a generalized quality constituent (qual) adsorbed to inorganic sediment. This subroutine is called twice (once for decay on suspended sediment and once for decay on bed sediment) for each generalized quality constituent which is sediment-associated. (The user specifies that a qual is sediment-associated by setting QALFG(7)=1 for the qual in the User's Control Input.) HSPF assumes that the decay rate of a particular adsorbed qual is the same for all fractions of sediment (sand, silt, and clay), but may be different for suspended sediment than it is for bed sediment.

Method

Necessary information which must be supplied to the subroutine includes:

  1. ADDCPM(1) - decay rate for qual on sediment being considered (suspended or bed)
  2. ADDCPM(2) - temperature correction coefficient for decay
  3. RSED(1-3) - the storage of each sediment fraction expressed in mg.ft3/l or mg.m3/l (for either suspended or bed sediment)
  4. SQAL(1-3) - the concentration of qual associated with the 3 fractions of sediment (concu/mg)

First, the temperature-adjusted decay rate is calculated:

     DK = ADDCPM(1)*ADDCPM(2)**TW20                                   (33)

where:
     TW20 = TW (water temperature) - 20.0 in degrees C.

Next, the fraction of adsorbed qual which decays during the simulation interval (FACT) is calculated using the general form for first-order decay:

     FACT = 1.0 - EXP(-DK)                                            (34)

The concentration of qual decayed from each sediment fraction (DCONC) is determined, and the concentration of qual associated with each fraction is updated:

     DCONC   = SQAL(I)*FACT                                           (35)

     SQAL(I) = SQAL(I) - DCONC                                        (36)

Finally, the mass of qual decayed from each sediment fraction is calculated:

     SQDEC(I) = DCONC*RSED(I)                                         (37)

where:
     SQDEC(I) = amount of qual decayed from sediment fraction I expressed
                in (concu/l)*(ft3/ivl) or (concu/l)*(m3/ivl)
     DCONC    = concentration of qual decayed from sediment fraction
                (concu/mg)
     RSED(I)  = storage of sediment fraction I (mg.ft3/l or mg.m3/l)


Adsorption/Desorption of a Generalized Quality Constituent - ADSDES

 (subroutine ADSDES)

Purpose

ADSDES simulates the exchange of a generalized quality constituent (qual) between the dissolved state and adsorbed state. Kinetic equilibrium between dissolved state and six adsorption sites is modeled: suspended sand, silt, and clay, and bed sand, silt, and clay.

Method

The basic equation (Onishi and Wise, 1979) for the transfer of a chemical between the dissolved state and an adsorbed state on sediment type J is:

     -d(RSEDJ*SQALJ)/dt + RSEDJ*KJT*(KDJ*DQAL - SQALJ) = 0            (38)

where:
     RSEDJ = total quantity of sediment type J in the RCHRES
             (mg.ft3/l or mg.m3/l)
     SQALJ = concentration of qual on sediment type J (concu/mg)
     DQAL  = concentration of dissolved qual (concu/l)
     KDJ   = distribution coefficient between dissolved state and sediment type
             J (liters/mg) (adsorbed concentration/dissolved concentration)
     KJT   = temperature corrected transfer rate between dissolved
             state and sediment type J

Thus, adsorption of a qual by sediment or desorption from sediment is assumed to occur toward an equilibrium condition with transfer rate KJT if the particulate qual concentration differs from its equilibrium value. Equation 38 is actually 6 equations (one for each sediment type J) with 7 unknowns (DQAL and 6 values of SQALJ). The necessary seventh equation is that of conservation of material. The following relation gives the total quantity of qual in the RCHRES, both before and after exchange due to adsorption/desorption:

     SUM [1 to 6](RSEDJ*SQALJ) + VOL*DQAL = TOT                       (39)

where:
     VOL = volume of water in the RCHRES

To solve numerically, Equation 38 is expressed in finite difference form:

     -RSEDJ*(SQALJ - SQALJO) + RSEDJ*KJT*KDJ*DQAL*DELT
     - RSEDJ*KJT*SQALJ*DELT = 0                                       (40)

where:
     SQALJ  = concentration of qual on sediment type J at end of
              simulation interval (subsequent to adsorption/desorption)
     SQALJO = concentration of qual on sediment type J at start of interval
     DELT   = simulation time step

The product of the transfer rate for sediment type J and the simulation time step is calculated (AKJ = KJT*DELT), and the resulting value is substituted into Equations 39 and 40. Two forms of Equation 39 are written. Equation 41 expresses conservation of material at the beginning of the simulation interval and Equation 42 expresses conservation of material at the end of the interval:

     - SUM [1 to 6] ((RSEDJ*SQALJO) - VOL*DQALO) = -TOT               (41)

     - SUM [1 to 6] ((RSEDJ*SQALJ)  - VOL*DQAL ) = -TOT               (42)

Equation 40 is rewritten as:

     RSEDJ((1.0 + AKJ)/(AKJ*KDJ))*SQALJ - RSEDJ*DQAL =
     (RSEDJ*SQALJO)/(AKJ*KDJ)                                         (43)

Equations 42 and 43 can be written in matrix form and solved for unknowns SQALJ and DQAL using standard procedures such as Gaussian elimination or the Crout reduction. The solutions are:

     DQAL  = (TOT - SUM [1 to 6] (RSEDJ*CJ)/AJJ)/
             (VOL + SUM [1 to 6] (RSEDJ/AJJ))                         (44)

     SQALJ = (CJ/AJJ) + (DQAL/AJJ)                                    (45)

where:
     DQAL  = concentration of dissolved qual after adsorption/desorption
     SQALJ = concentration of qual on sediment type J after adsorption/desorption
     AJJ   = (1 + AKJ)/(AKJ*KDJ)
     CJ    = (SQALJO/AKJ*KDJ)

By combining Equations 41 and 44, TOT can be eliminated, and a final solution for DQAL can be obtained:

     DQAL = (VOL*DQALO + SUM [1 to 6] (SQALJO - CJ/AJJ)*RSEDJ))/
            (VOL + SUM [1 to 6] (RSEDJ/AJJ))                          (46)

In subroutine ADSDES, the following variables are used to facilitate the evaluation of Equations 45 and 46:

     AINVJ  = 1.0/AJJ = (AKJ*KDJ)/(1.0 + AKJ)                         (47)

     CAINVJ = CJ/AJJ  = (SQALJO/(1.0 + AKJ))                          (48)


Constituents Involved in Biochemical Transformations - RQUAL

 (Section RQUAL of Module RCHRES)

RQUAL is the parent routine to the four subroutine groups which simulate constituents involved in biochemical transformations. Within module section RQUAL the following constituents may be simulated:

dissolved oxygen

biochemical oxygen demand

ammonia

nitrite

nitrate

orthophosphorus

phytoplankton

benthic algae

zooplankton

dead refractory organic nitrogen

dead refractory organic phosphorus

dead refractory organic carbon

total inorganic carbon

pH

carbon dioxide

Four additional quantities are estimated from simulation of these constituents. These quantities are total organic nitrogen, total organic phosphorus, total organic carbon, and potential biochemical oxygen demand. The definition of these quantities is determined by their method of calculation:

     TORN   = ORN + CVBN*(ZOO + PHYTO + BOD/CVBO)                      (1)
     TORP   = ORP + CVBP*(ZOO + PHYTO + BOD/CVBO)                      (2)
     TORC   = ORC + CVBC*(ZOO + PHYTO + BOD/CVBO)                      (3)
     POTBOD = BOD + CVNRBO*(ZOO + PHYTO)                               (4)

where:
     TORN   = total organic nitrogen (mg N/l)
     TORP   = total organic phosphorus (mg P/l)
     TORC   = total organic carbon (mg C/l)
     POTBOD = potential BOD (mg O/l)
     ORN    = dead refractory organic nitrogen (mg N/l)
     ORP    = dead refractory organic phosphorus (mg P/l)
     ORC    = dead refractory organic carbon (mg C/l)
     BOD    = biochemical oxygen demand from dead nonrefractory organic
              materials (mg O/l)
     CVBN   = conversion from mg biomass to mg nitrogen
     CVBP   = conversion from mg biomass to mg phosphorus
     CVBC   = conversion from mg biomass to mg carbon
     CVNRBO = conversion from mg biomass to mg biochemical oxygen demand
              (with allowance for non-refractory fraction)
     CVBO   = conversion from mg biomass to mg oxygen
     ZOO    = zooplankton (mg biomass/l)
     PHYTO  = phytoplankton (mg biomass/l)

Subroutine RQUAL performs two tasks. First, RQUAL is responsible for calling the four groups which simulate the constituents listed above. These four groups and their functions are:

  1. OXRX: simulate primary dissolved oxygen and biochemical oxygen demand balances
  2. NUTRX: determine inorganic nitrogen and phosphorus balances
  3. PLANK: simulate plankton populations and associated reactions
  4. PHCARB: simulate pH and inorganic carbon species

The four groups are listed in their order of execution, and the execution of a group is dependent upon the execution of the groups listed above it. For example, group PHCARB cannot be activated unless OXRX, NUTRX, and PLANK are active. On the other hand, the reactions in OXRX can be performed without the reactions contained in the other three groups.

The other function of RQUAL is to determine the values for variables which are used jointly by the four subroutine groups. The following variables are evaluated:

  1. AVVELE: the average velocity of water in the RCHRES (ft/s)
  2. AVDEPE: the average depth of water in the RCHRES (ft)
  3. DEPCOR: conversion factor from square meters to liters (used for changing areal quantities from the benthal surface to equivalent volumetric values based on the depth of water in the RCHRES)
  4. SCRFAC: scouring factor to be used for calculation of benthal release rates of inorganic nitrogen, orthophosphorus, carbon dioxide, and biochemical oxygen demand

SCRFAC has one of two values depending on the average velocity (AVVELE) of the water in the RCHRES. AVVELE is compared to the value of parameter SCRVEL, the user-specified velocity at and above which scouring occurs. If AVVELE is less than the value of parameter SCRVEL, then SCRFAC is set equal to 1.0, and there is no increase of benthal release rates due to scouring. If AVVELE is greater than SCRVEL, SCRFAC is set equal to the value of parameter SCRMUL, which is a constant multiplication factor applied directly to the release rates to account for scouring by rapidly moving water.


Primary DO and BOD Balances - OXRX

 (Subroutine Group OXRX of Module RCHRES)

Purpose

The purpose of this section is to simulate the primary processes which determine the dissolved oxygen concentration in a reach or mixed reservoir. Dissolved oxygen concentration is generally viewed as an indicator of the overall well-being of streams or lakes and their associated ecological systems. In relatively unpolluted waters, sources and sinks of oxygen are in approximate balance, and the concentration remains close to saturation. By contrast, in a stream receiving untreated waste waters, the natural balance is upset, bacteria predominate, and a significant depression of dissolved oxygen results (O'Connor and DiToro, 1970).

Schematic View of Fluxes and Storages

The figures below illustrate the fluxes and storages modeled in this subroutine group. In order to account for temporal variations in oxygen balance, state variables for both dissolved oxygen and biochemical oxygen demand must be maintained. The state variable DOX represents the oxygen dissolved in water and immediately available to satisfy the oxygen requirements of the system. The BOD state variable represents the total quantity of oxygen required to satisfy the first-stage (carbonaceous) biochemical oxygen demand of dead nonrefractory organic materials in the water.

Subroutine OXRX considers the following processes in determining oxygen balance:

  1. longitudinal advection of DOX and BOD
  2. sinking of BOD material
  3. benthal oxygen demand
  4. benthal release of BOD material
  5. reaeration
  6. oxygen depletion due to decay of BOD materials

Additional sources and sinks of DOX and BOD are simulated in other sections of the RCHRES module. If module section NUTRX is active, the effects of nitrification on dissolved oxygen and denitrification on BOD balance can be considered. If module section PLANK is active, the dissolved oxygen balance can be adjusted to account for photosynthetic and respiratory activity by phytoplankton and/or benthic algae and respiration by zooplankton. Adjustments to the BOD state variable in section PLANK include increments due to death of plankton and nonrefractory organic excretion by zooplankton.

Flow diagram for dissolved oxygen in the OXRX subroutine group of the RCHRES Application Module

Flow diagram for biochemical oxygen demand in the OXRX subroutine group of the RCHRES Application Module

OXRX uses five subroutines to simulate dissolved oxygen and biochemical oxygen demand. Advection of DOX and BOD is performed by ADVECT. Sinking of BOD material is carried out by SINK. OXBEN calculates benthal oxygen demand and benthal release of BOD materials. The oxygen reaeration coefficient is determined by utilizing OXREA, and BOD decay calculations are performed in BODDEC.

Since subroutine OXREA may also be called by module section GQUAL to obtain the oxygen reaeration coefficient (KOREA) for calculation of volatilization rates for generalized quality constituents, the change in dissolved oxygen concentration in water due to reaeration is calculated in OXRX rather than OXREA. The equation for reaeration is:

     DOX = DOXS + KOREA*(SATDO - DOXS)                                 (1)

where:
     DOX   = dissolved oxygen concentration after reaeration (mg/l)
     DOXS  = dissolved oxygen concentration at start of interval (mg/l)
     KOREA = reaeration coefficient calculated in OXREA
     SATDO = saturated concentration of dissolved oxygen (mg/l)

The saturation concentration of dissolved oxygen is computed at prevalent atmospheric conditions by the equation:

     SATDO = (14.652 + TW*(-0.41022 + TW*(0.007991 - 0.7777E-4*TW)))*
             CFPRES                                                    (2)

where:
     SATDO  = saturated concentration of dissolved oxygen (mg/l)
     TW     = water temperature (deg C)
     CFPRES = ratio of site pressure to sea level pressure
              (CFPRES is calculated by the Run Interpreter dependent upon
              mean elevation of RCHRES)


Benthal Oxygen Demand and Benthal Release of BOD - OXBEN

 (subroutine OXBEN)

Purpose

OXBEN accounts for two possible demands exerted on available oxygen by the benthos. These two demands are categorized as benthal oxygen demand and benthal release of BOD materials. Benthal oxygen demand results from materials in the bottom muds which require oxygen for stabilization. This process results in a direct loss of oxygen from the RCHRES. The second demand on oxygen caused by the release and suspension of BOD materials is a less direct form of oxygen demand. This process increases the pool of BOD present in the RCHRES and exerts a demand on the dissolved oxygen concentration at a rate determined by the BOD decomposition kinetics.

Benthal Oxygen Demand

The user approximates the oxygen demand of the bottom muds at 20 degrees Celsius by assigning a value to BENOD for each RCHRES. The effects of temperature and dissolved oxygen concentration on realized benthal demand are determined by the following equation:

     BENOX = BENOD*(TCBEN**TW20)*(1.0 - Exp(-EXPOD*DOX))               (3)

where:
     BENOX = amount of oxygen demand exerted by benthal muds (mg/m2/interval)
     BENOD = reach dependent benthal oxygen demand at 20 degrees C
             (mg/m2/interval)
     TCBEN = temperature correction factor for benthal oxygen demand
     TW20  = water temperature - 20.0 (deg C)
     EXPOD = exponential factor to benthal oxygen demand function
             (default value = 1.22)
     DOX   = dissolved oxygen concentration (mg/l)

The first portion of the above equation adjusts the demand at 20 degrees Celsius to a demand at any temperature. The second portion of the equation indicates that low concentrations of dissolved oxygen suppress realized oxygen demand. For example, 91 percent of BENOD may be realized at a dissolved oxygen concentration of 2 mg/l, 70 percent at 1 mg/l, and none if the waters are anoxic.

After the value of BENOX has been calculated, the dissolved oxygen state variable is updated:

     DOX = DOX - BENOX*DEPCOR                                          (4)

where:
     DEPCOR = factor which converts from mg/m2 to mg/l, based on the average
              depth of water in the RCHRES during the simulation interval
              (DEPCOR is calculated in subroutine RQUAL)

Benthal Release of BOD

Bottom releases of BOD are a function of scouring potential and dissolved oxygen concentration. The equation used to calculate BOD release is:

     RELBOD = (BRBOD(1) + BRBOD(2)*Exp(-EXPREL*DOX))*SCRFAC            (5)

where:
     RELBOD   = BOD released by bottom muds (mg/m2 per interval)
     BRBOD(1) = base release rate of BOD materials (aerobic conditions)
                (mg/m2/interval)
     BRBOD(2) = increment to bottom release rate due to decreasing
                dissolved oxygen concentration
     EXPREL   = exponential factor to BOD benthal release function
                (default value = 2.82)
     DOX      = dissolved oxygen concentration (mg/l)
     SCRFAC   = scouring factor dependent on average velocity of water
                (SCRFAC is calculated in subroutine RQUAL)

The above equation accounts for the fact that benthal releases are minimal during conditions of low velocity and ample dissolved oxygen. Under these conditions a thin layer of hardened, oxidized material typically retards further release of materials from the benthos. However, anaerobic conditions or increased velocity of overlying water disrupts this layer, and release rates of BOD and other materials are increased. Solution of Equation 5 indicates that 6 percent of the incremental release rate (BRBOD(2)) occurs when 1 mg/l of dissolved oxygen is present, 75 percent occurs when 0.1 mg/l is present, and the entire increment occurs under anoxic conditions.


Oxygen Reaeration Coefficient - OXREA

 (subroutine OXREA)

Purpose

Various methods have been used to calculate atmospheric reaeration coefficients, and experience has shown that the most effective method of calculation in any given situation depends upon the prevalent hydraulic characteristics of the system (Covar, 1976). Based upon user instructions, subroutine OXREA calculates oxygen reaeration by using one of four built-in solution techniques.

Approach

The general equation for reaeration is:

     DOX = DOXS + KOREA*(SATDO - DOXS)                                 (6)

where:
     DOX   = dissolved oxygen concentration after reaeration (mg/l)
     KOREA = reaeration coefficient (greater than zero and less than one)
     SATDO = oxygen saturation level for given water temperature (mg/l)
     DOXS  = dissolved oxygen concentration at start of interval (mg/l)

Lake Reaeration

In a lake or reservoir, calculation of reaeration is dependent upon surface area, volume, and wind speed. The wind speed factor is determined using the following empirical relationship:

     WINDF = WINDSP*(-0.46 + 0.136*WINDSP)                             (7)

where:
     WINDF  = wind speed factor in lake reaeration calculation
     WINDSP = wind speed (m/sec)

For low wind speeds, less than 6.0 m/s, WINDF is set to 2.0. The reaeration coefficient for lakes is calculated as:

     KOREA = (.032808*WINDF*CFOREA/AVDEPE)*DELT60                      (8)

where:
     CFOREA = correction factor to reaeration coefficient for lakes; for lakes
              with poor circulation characteristics, CFOREA may be less than
              1.0, and lakes with exceptional circulation characteristics may
              justify a value greater than 1.0
     AVDEPE = average depth of water in RCHRES during interval (ft)
     DELT60 = conversion from hourly time interval to simulation interval

Stream Reaeration

One of three approaches to calculating stream reaeration may be used:

  1. Energy dissipation method (Tsivoglou-Wallace, 1972). Oxygen reaeration is calculated based upon energy dissipation principles:

    KOREA = REAKT*(DELTHE/FLOTIM)*(TCGINV**(TW - 20.))*DELTS           (9)

where:
    REAKT  = escape coefficient with a typical value between
             0.054/ft and 0.110/ft.
    DELTHE = drop in energy line along length of RCHRES (ft)
    FLOTIM = time of flow through RCHRES (seconds)
    TCGINV = temperature correction coefficient for gas invasion rate
             with a default value of 1.047
    DELTS  = conversion factor from units of /second to units of /interval

    DELTHE, the drop in elevation over the length of the RCHRES, is supplied by the user. REAKT, the escape coefficient, referred to in Tsivoglou's work, is also supplied by the user. The value for FLOTIM is calculated by dividing the length of the RCHRES by the average velocity for the simulation interval. Tsivoglou's method of calculation is activated by setting the reaeration method flag (REAMFG) to 1.

  2. Covar's method of determining reaeration (Covar, 1976). Reaeration is calculated as a power function of hydraulic depth and velocity. The general equation is:

    KOREA = REAK*(AVVELE**EXPREV)*(AVDEPE**EXPRED)
            *(TCGINV**(TW - 20.))*DELT60                              (10)

where:
    KOREA  = reaeration coefficient (per interval)
    REAK   = empirical constant for reaeration equation (/hour)
    AVVELE = average velocity of water (ft/s)
    EXPREV = exponent to velocity function
    AVDEPE = average water depth (ft)
    EXPRED = exponent to depth function
    TCGINV = temperature correction coefficient for reaeration
             defaulted to 1.047
    DELT60 = conversion factor from units of per hour to units of per interval

    Depending on current depth and velocity, one of three sets of values for REAK, EXPREV, and EXPRED is used. Each set corresponds to an empirical formula which has proven accurate for a particular set of hydraulic conditions. The three formulas and their associated hydraulic conditions and coefficients are:

    1. Owen's formula (Owen et al., 1964). This formula is used for depths of less than 2 ft. For this formula, REAK = 0.906, EXPREV = 0.67, and EXPRED = -1.85.
    2. Churchill's formula (1962). This formula is used for high velocity situations in depths of greater than 2 ft. For this formula, REAK = 0.484, EXPREV = 0.969, and EXPRED = -1.673.
    3. O'Connor-Dobbins formula (1958). This formula is used for lower velocity situations in depths of greater than 2 ft. The coefficient values are: REAK = 0.538, EXPREV = 0.5, and EXPRED = -1.5.

    This method of calculation of reaeration is activated by setting the reaeration method flag (REAMFG) to 2.

  3. Users may select their own power function of hydraulic depth and velocity for use under all conditions of depth and velocity. In this case, the user supplies values for REAK, EXPREV, and EXPRED. This option is selected by setting the reaeration method flag (REAMFG) to 3.

Reaeration may be modeled as a constant process for any given temperature. In this case, the user must supply a value for REAK, and a value of zero for both EXPREV and EXPRED. Note that subroutine OXREA requires input values for REAK, EXPREV, and EXPRED only if REAMFG is 3.


BOD Decay - BODDEC

 (subroutine BODDEC)

Purpose

Subroutine BODDEC adjusts the dissolved oxygen concentration of the water to account for the oxygen consumed by microorganisms as they break down complex materials to simpler and more stable products. Only carbonaceous BOD is considered in this subroutine. The BOD decay process is assumed to follow first-order kinetics and is represented by:

     BODOX = (KBOD20*(TCBOD**(TW - 20.)))*BOD                           (11)

where:
     BODOX  = quantity of oxygen required to satisfy BOD decay
              (mg/l per interval)
     KBOD20 = BOD decay rate at 20 degrees C (/interval)
     TCBOD  = temperature correction coefficient, defaulted to 1.075
     TW     = water temperature (degrees C)
     BOD    = BOD concentration (mg/l)

If there is not sufficient dissolved oxygen available to satisfy the entire demand exerted by BOD decay, only the fraction which can be satisfied is subtracted from the BOD state variable, and the DOX variable is set to zero.


Primary Inorganic Nitrogen and Phosphorus Balances - NUTRX

 (Subroutine Group NUTRX of Module RCHRES)

Purpose

This section simulates the primary processes which determine the balance of inorganic nitrogen and phosphorus in natural waters. When modeling the water quality of an aquatic system, consideration of both nitrogen and phosphorus is essential. Nitrogen, in its various forms, can deplete dissolved oxygen levels in receiving waters, stimulate aquatic growth, exhibit toxicity toward aquatic life, or present a public health hazard (EPA, 1975). Phosphorus is vital in the operation of energy transfer systems in biota, and in many cases is the growth limiting factor for algal communities. Consequently, it is necessary to model phosphorus in any study concerned with eutrophication processes.

Schematic View of Fluxes and Storages

The figures below illustrate the fluxes and storages of four constituents which are introduced into the RCHRES modeling system in subroutine group NUTRX. In addition to these constituents, the state variables for dissolved oxygen and BOD are also updated. If subroutine group NUTRX is active (NUTFG = 1), nitrate will automatically be simulated; the user must specify whether or not nitrite, total ammonia, and/or orthophosphorus are to be simulated in addition to nitrate by assigning appropriate values to NO2FG, TAMFG, and PO4FG in the User's Control Input. In addition, if ammonia or orthophosphorus is simulated, the user may specify whether to simulate the adsorbed (particulate) forms of ammonia and orthophosphorus. If either adsorbed nutrient is simulated, Section SEDTRN must be active to provide the inorganic sediment (sand, silt, and clay) concentrations and fluxes. If all possible constituents are simulated, subroutine NUTRX considers the following processes:

  1. longitudinal advection of dissolved NO3, NO2, NH3, and PO4
  2. benthal release of inorganic nitrogen (NH3) and PO4 (if BENRFG = 1)
  3. ammonia ionization (NH3/NH4+ equilibrium)
  4. ammonia vaporization (if AMVFG = 1)
  5. nitrification of NH3 and NO2
  6. denitrification of NO3 (if DENFG = 1)
  7. ammonification due to degradation of BOD materials
  8. adsorption/desorption of NH3 and PO4 to inorganic sediment in the water column (if ADNHFG = 1 or ADPOFG = 1)
  9. deposition/scour and longitudinal advection of adsorbed NH3 and PO4 (if ADNHFG = 1 or ADPOFG = 1)

Additional sources and sinks of NO3, NH3, and PO4 are simulated in the PLANK section of this module. If section PLANK is active, the state variables for these three constituents can be adjusted to account for nutrient uptake by phytoplankton and/or benthic algae, and for respiration and inorganic excretion by zooplankton.

Flow diagram for inorganic nitrogen in the NUTRX subroutine group of the RCHRES Application Module

Flow diagram for ortho-phosphate in the NUTRX subroutine group of the RCHRES Application Module

NUTRX utilizes nine principal routines to simulate inorganic nitrogen and phosphorus. Advection of dissolved NO3, NO2, NH3, and PO4 is performed by ADVECT. BENTH determines the amount of inorganic nitrogen and phosphorus which is released to the overlying waters from the benthos. The nitrification and denitrification processes are simulated by NITRIF and DENIT, respectively. Adsorption/desorption of NH3 and PO4 is computed by ADDSNU, and the advection and deposition/scour of the adsorbed forms are simulated in ADVNUT. The ammonia ionization and volatilization calculations are performed in AMMION and NH3VOL, respectively. Finally, the production of inorganic nitrogen and phosphorus resulting from decay of BOD materials is simulated by DECBAL.

Before ADVECT is called, NUTRX sums the inputs of dissolved NO3, NH3, and PO4 from upstream reaches, tributary land areas, and atmospheric deposition (deposition of NO2 is not considered):

     INNUT = INUT + SAREA*ADFX + SAREA*PREC*ADCN                       (1)

where:
     INNUT = total input of dissolved nutrient to reach
     INUT  = input of dissolved nutrient from upstream reaches
             and tributary land
     SAREA = surface area of reach
     ADFX  = dry or total atmospheric deposition flux in mass/area
             per interval
     PREC  = precipitation depth
     ADCN  = concentration for wet atmospheric deposition in mass/volume

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series are documented in the EXTNL table of the Time Series Catalog for RCHRES, and are specified in the EXT SOURCES block of the UCI. Monthly values are input in the MONTH-DATA block.


Benthal Release of Constituents - BENTH

 (subroutine BENTH)

Purpose

This subroutine checks to see whether present water conditions are aerobic or anaerobic, calculates benthal release for a constituent based on this check, and updates the concentration of the constituent.

Approach

The equation used to calculate release is:

     RELEAS = BRCON(I)*SCRFAC*DEPCOR                                   (2)

where:
     RELEAS   = amount of constituent released (mg/l per interval)
     BRCON(I) = benthal release rate (BRTAM or BRPO4) for constituent
                (mg/m2 per interval)
     SCRFAC   = scouring factor, dependent on average velocity of
                the water (SCRFAC is computed in RQUAL)
     DEPCOR   = conversion factor from mg/m2 to mg/l (computed in RQUAL)

The dissolved oxygen concentration below which anaerobic conditions are considered to exist is determined by the input parameter ANAER. Two release rates are required for each of the constituents: one for aerobic conditions and one for anaerobic conditions. Typically, the aerobic release rate is less than the anaerobic rate, because a layer of oxidized materials forms on the benthal surface during aerobic periods, and this layer retards the release rate of additional benthal materials. BRCON(1) is the aerobic release rate and BRCON(2) is the anaerobic rate. The choice of which release rate is used is determined by comparing the current value of DOX to ANAER.

If ammonia is simulated, the inorganic nitrogen release from the benthos is assumed to be in the form of ammonia, and the NH3 (TAM) state variable is updated. If ammonia is not simulated, benthal release of inorganic nitrogen is assumed to not occur. If orthophosphate is simulated, an additional call is made to BENTH to account for release of PO4.

Simulation of benthal release processes is activated by assigning a value of one to BENRFG in the User's Control Input for RQUAL.


Nitrification - NITRIF

 (subroutine NITRIF)

Purpose

NITRIF simulates the oxidation of ammonium and nitrite by chemoautotrophic bacteria. This oxidation provides energy for bacteria much the same way that sunlight provides energy for photosynthetic algae. The Nitrosomonas genera are responsible for conversion of ammonium to nitrite, and Nitrobacter perform oxidation of nitrite to nitrate. Oxidation of inorganic nitrogen is dependent upon a suitable supply of dissolved oxygen; NITRIF does not simulate nitrification if the DO concentration is below 2 mg/l.

Method

The rate of nitrification is represented by a first order equation in which nitrification is directly proportional to the quantity of reactant present, either ammonia or nitrite. The equation used to calculate the amount of NH3 oxidized to NO2 is:

     TAMNIT = KTAM20*(TCNIT**(TW - 20.))*TAM                           (3)

where:
     TAMNIT = amount of NH3 oxidation (mg N/l per interval)
     KTAM20 = ammonia oxidation rate coefficient at 20 degrees C (/interval)
     TCNIT  = temperature correction coefficient, defaulted to 1.07
     TW     = water temperature (degrees C)
     TAM    = total ammonia concentration (mg N/l)

Similarly, if nitrite is simulated, the amount of nitrite oxidized to nitrate is determined by the equation:

     NO2NIT = KNO220 * (TCNIT**(TW - 20.)) * NO2                       (4)

where:
     NO2NIT = amount of NO2 oxidation (mg N/l/interval
     KNO220 = NO2 oxidation rate coefficient at 20 degrees C (/interval)
     NO2    = nitrite concentration (mg N/l)

The amount of oxygen used during nitrification is 3.43 mg oxygen per mg NH3-N oxidized to NO2-N, and 1.14 mg oxygen per mg NO2-N oxidized to NO3-N. In the RCHRES module, these numbers are adjusted to 3.22 mg and 1.11 mg, respectively, to account for the effects of carbon dioxide fixation by bacteria (Wezerak and Gannon, 1968). Thus, the oxygen demand due to nitrification is evaluated as:

     DODEMD = 3.22 * TAMNIT + 1.11 * NO2NIT                            (5)

where:
     DODEMD = loss of dissolved oxygen from the RCHRES due to
              nitrification (mg O/l per interval)

If the value of DODEMD is greater than available dissolved oxygen, the amounts of oxidation from NH3 to NO2 and from NO2 to NO3 are proportionally reduced, so that the state variable DOX maintains a non-negative value. If nitrite is not simulated, the calculated amount of oxidized ammonia is assumed to be fully oxidized to nitrate.


Denitrification - DENIT

 (subroutine DENIT)

Purpose

DENIT simulates the reduction of nitrate by facultative anaerobic bacteria such as Pseudomonas, Micrococcus, and Bacillus. These bacteria can use NO3 for respiration in the same manner that oxygen is used under aerobic conditions. Facultative organisms use oxygen until the environment becomes nearly or totally anaerobic, and then switch over to NO3 as their oxygen source. In HSPF, the end product of denitrification is assumed to be nitrogen gas.

Approach

Denitrification does not occur in the RCHRES module unless the dissolved oxygen concentration is below a user-specified threshold value (DENOXT). If that situation occurs, denitrification is assumed to be a first-order process based on the NO3 concentration. The amount of denitrification for the interval is calculated by the following equation:

     DENNO3 = KNO320 * (TCDEN**(TW-20)) * NO3                          (6)

where:
     DENNO3 = amount of NO3 denitrified (mg N/l per interval)
     KNO320 = NO3 denitrification rate coefficient at 20 degrees C
              (/interval)
     TCDEN  = temperature correction coefficient for denitrification
     NO3    = nitrate concentration (mg N/l)


Adsorption/Desorption of Ammonia and Orthophosphorus - ADDSNU

 (subroutine ADDSNU)

Purpose

This subroutine simulates the exchange of nutrient (ammonium and orthophosphorus) between the dissolved state and adsorption on suspended sediment. The sorbents considered are suspended sand, silt, and clay, which are simulated in section SEDTRN. The adsorption/desorption process is not simulated in bed sediments.

Approach

The adsorption/desorption for each sediment fraction is represented with an equilibrium, linear isotherm, i.e., a standard Kd approach, which is described as follows:

     SNUT(J) = DNUT * ADPM(J)                                          (7)

where:
     SNUT(J) = equilibrium concentration of adsorbed nutrient on sediment
               fraction J (mg/kg)
     DNUT    = the equilibrium concentration of dissolved nutrient (mg/l)
     ADPM(J) = adsorption parameter (or Kd) for sediment fraction J (l/kg)

This expression for SNUT(J) is substituted into the following mass balance expression for total nutrient in the reach:

     NUM  = DNUT*VOL + SUM[SNUT(J)*RSED(J)]
          = total nutrient in reach J=1,3                              (8)

where:
     NUM     = variable used to represent total nutrient mass in the reach (mg)
     VOL     = volume of reach (l)
     RSED(J) = mass of sediment fraction J in suspension (kg)

After substituting, rearranging, and solving for DNUT, the following expression is obtained:

                           NUM
     DNUT  =     -------------------------   	                       (9)
                 VOL + SUM[RSED(J)*ADPM(J)]
                       J=1,3

In the above equation, the value of NUM is obtained from a "non-equilibrium" version of Equation 8 in which temporary DNUT and SNUT values include the effects of other processes such as advection, scour/deposition, nitrification, etc, that have occurred during the interval. Therefore, the overall procedure involves performing all processes that affect the nutrient concentrations, and then partitioning (equilibrating) the total mass of nutrient among the four phases, i.e., dissolved phase and three sediment fractions.

Note, the units listed for some variables in the preceding discussion are simplified from the internally-used HSPF units.


Advection and Deposition/Scour of Adsorbed Ammonia and Orthophosphorus - ADVNUT

 (subroutine ADVNUT)

Purpose

ADVNUT simulates the advective processes for a nutrient (NH3 or PO4) attached to one sediment size fraction. Processes handled in this routine include:

  1. Inflow to the RCHRES of nutrient attached to suspended sediment.
  2. Migration of nutrient from suspension in the water to the bed as a result of deposition of the sediment to which the nutrient is adsorbed.
  3. Migration of nutrient from the bed into suspension in the water as a result of scour of the bed sediments to which the nutrient is adsorbed.
  4. Outflow from the RCHRES of nutrient attached to suspended sediment.

Method

The movement of adsorbed nutrient is completely determined by the movement of the sediment to which it is attached. All fluxes of adsorbed nutrient are expressed as the product of the flux of a sediment fraction (sand, silt, or clay) and the concentration of nutrient associated with that fraction (expressed in mg per kg of sediment). Likewise, storages of adsorbed nutrient are expressed as the product of the sediment fraction storage and the associated concentration of nutrient. Note that the nutrient storage in the bed is essentially infinite. Nutrients that deposit to the bed are assumed to be lost from the RCHRES, and scoured sediment is assumed to have a constant (user-specified) adsorbed nutrient concentration; thus the scoured nutrient flux is limited only by the storage of sediment in the bed. A simplified flow diagram of sediment and associated nutrient fluxes and storages is provided in Figure 4.2(3).7.2-3 to facilitate the following discussion. ADVNUT is designed to operate on one sediment fraction and one nutrient each time it is called by subroutine NUTRX.

If the sediment simulation in module section SEDTRN indicates that scour of bed storage of a sediment fraction occurs, the following actions are taken in ADVNUT:

  1. The flux of nutrient from bed to suspension is calculated as:

     DSNUT = BNUT*DEPSCR                                              (10)

where:
    DSNUT  = amount of nutrient scoured from bed and added to suspension
             (mg/l)*(ft3/ivl) or (mg/l)*(m3/ivl)
    BNUT   = constant concentration of nutrient on bed sediment fraction
             under consideration (mg/mg sediment)
    DEPSCR = amount of sediment fraction which is scoured from
             the bed (mg.ft3/l.ivl or mg.m3/l.ivl)
  2. The concentration of adsorbed nutrient in suspension is updated to account for scour:

     SNUT  = (ISNUT + RSNUTS - DSNUT)/(RSED + ROSED)                  (11)

where:
     SNUT   = concentration of adsorbed nutrient in suspension
              (mg/mg suspended sediment)
     ISNUT  = inflow of nutrient to the RCHRES as a result of inflowing
              sediment fraction ((mg/l)*(ft3/ivl) or (mg/l)*(m3/ivl))
     RSNUTS = storage of nutrient on suspended sediment fraction
              ((mg/l)*ft3 or (mg/l)*m3)
     RSED   = amount of sediment fraction in suspension
              at end of interval (mg.ft3/l or mg.m3/l)
     ROSED  = amount of sediment fraction contained in outflow from the RCHRES
              during the interval (mg.ft3/l.ivl or mg.m3/l.ivl)
  3. The concentration of nutrient on bed sediment is set equal to zero if the storage of bed sediment at the end of the interval is zero.
  4. Amount of nutrient leaving the RCHRES as outflow is determined as:

        ROSNUT = ROSED*SNUT                                           (12)

If the sediment simulation in module section SEDTRN indicates that deposition of suspended sediment occurs, ADVNUT performs the following operations:

  1. Concentration of nutrient on total suspended sediment fraction (inflow + suspended storage) for the RCHRES is calculated:

        SNUT = (ISNUT + RSNUTS)/(RSED + DEPSCR + ROSED)               (13)
  2. Amount of nutrient leaving the RCHRES due to outflow of sediment fraction is determined:

        ROSNUT = ROSED*SNUT                                           (14)
  3. Amount of nutrient leaving suspension due to deposition of the sediment to which it is adsorbed is found by:

        DSNUT = DEPSCR*SNUT                                           (15)
  4. The concentration of nutrient on sediment in suspension is set equal to zero if the suspended storage of sediment is zero.

The final operation which ADVNUT performs is the computation of outflow of adsorbed nutrient through individual exits (when more than one exit is specified). The algorithm is:

     OSNUT(I) = ROSNUT*OSED(I)/ROSED                                  (16)

where:
     OSNUT(I) = outflow of adsorbed nutrient through exit gate I
     ROSNUT   = total outflow of adsorbed nutrient from RCHRES
     OSED(I)  = outflow of sediment fraction through exit gate I


Ionization of Ammonia to Ammonium - AMMION

 (subroutine AMMION)

Approach

The total dissolved ammonia state variable (TAM) consists of two forms, NH4+ and NH3. The ionized form is dominant at typical pH's and temperatures found in nature; however, the un-ionized form is toxic to aquatic species at fairly low concentrations, and may be significant at some extreme environmental pH's. Therefore, while the process formulations in HSPF are based on the total ammonia, the un-ionized form is computed and output.

The fraction (FRAC) of total ammonia that is present as un-ionized ammonia is calculated as:

                 10**pH
      FRAC =  --------------                                          (17)
              10**pH + RATIO

where:
      RATIO   = ratio of ionization products for water (kw) and ammonia (kb)

RATIO is computed using an empirical relationship based on pH and temperature as described by Loehr et al. (1973):

      RATIO   = -3.39753 loge(0.02409 TW) 10**9                       (18)

The pH used in Equation 17 may be obtained from Section PHCARB (if it is active) or specified by the user in the form of a constant value, 12 monthly values, or an input time series.


Ammonia Volatilization - NH3VOL

 (subroutine NH3VOL)

Approach

The amount of total ammonia lost from the RCHRES due to ammonia volatilization is calculated by a standard two-layer model of mass transfer across the air-water interface; this is based on Henry's Law and the flux of mass through the water and air films. The inverse of the overall mass transfer coefficient is given by the following expression:

     1                  1       8.21x10-5 * TWKELV
    ---  =  KRINV  =  -----  +  ------------------                    (19)
     KR               NH3KL       HCNH3 * NH3KG

where:
     KR      = overall mass transfer coefficient (cm/hr)
     KRINV   = inverse of coefficient (hr/cm)
     NH3KL   = liquid film mass transfer coefficient (cm/hr)
     NH3KG   = gas film mass transfer coefficient (cm/hr)
     HCNH3   = Henry's Law Constant for ammonia (atm-m3/mole)
     8.21E-5 = the ideal gas constant (atm-m3/K/mole)
     TWKELV  = water temperature (degrees K)

Computation of the liquid-film coefficient is based on correlation with the reaeration rate (i.e., the rate of transfer of oxygen gas across the interface). The proportionality constant is a function of the ratio of the molecular weights. Therefore, the liquid-film coefficient is given by:

     NH3KL  = [KOREA * AVDEPM * 100/DELT60]  *  [1.878**(EXPNVL/2.)] (20)

where:
     KOREA  = the oxygen reaeration rate (per interval)
     AVDEPM = average depth of the reach (m)
     100    = conversion from meters to centimeters
     DELT60 = conversion from units of per interval to units of per hour
     1.878  = ratio of molecular weight of oxygen (32) to ammonia (17)
     EXPNVL = user-specified exponential factor

Note that in the first part of the above equation, KOREA is being converted to the same units as NH3KL, i.e., cm/hr.

In a similar manner to the liquid-film coefficient, the gas-film coefficient is computed from the water evaporation rate which is primarily driven by the wind. The gas film coefficient is computed as:

     NH3KG  = 700. * WINDSP * 1.057**(EXPNVG/2.)                      (21)

where:
     700    = an empirical constant relating the wind speed in m/s and the
              evaporation rate in cm/hr
     WINDSP = wind speed (m/s)
     1.057  = ratio of water molecular weight to that of ammonia
     EXPNVG = user-specified exponential factor

The Henry's constant for ammonia (HCNH3) is interpolated from a table of values based on temperature and pH.

The reach-specific, first-order rate constant for volatilization is computed by:

     KNVOL  = KR * DELT60/(AVDEPM * 100)                              (22)

where:
     KNVOL  = first-order rate constant for volatilization (/interval)
     100    = conversion from units of 1/cm to 1/m

Finally, the volatilization loss is computed as:

    NH3VLT = KNVOL * TAM                                              (23)

where:
     NH3VLT = volatilization loss during the interval (mg N/l)
     TAM    = concentration of total ammonia (mg N/l)

Simulation of ammonia volatilization is activated by setting AMVFG equal to one in the User's Control Input. Of course, total ammonia simulation must also be activated by setting TAMFG equal to 1.


Materials Balance for Transformation from Organic to Inorganic - DECBAL

 (subroutine DECBAL)

Purpose

DECBAL adjusts the inorganic nitrogen and orthophosphorus state variables to account for decomposition of organic materials.

Method

In subroutine NUTRX the total BOD decay for the time interval is used to compute the corresponding amounts of inorganic nitrogen and orthophosphorus produced by the decay are determined as:

     DECNIT = BODOX*CVON                                              (24)
     DECPO4 = BODOX*CVOP                                              (25)

where:
     BODOX = total BOD decay (mg O/l per interval)
     CVON  = stoichiometric conversion factor from mg oxygen to mg nitrogen
     CVOP  = stoichiometric conversion factor from mg oxygen to mg phosphorus

The values for DECNIT and DECPO4 are passed to subroutine DECBAL. If ammonia is simulated, the value of DECNIT is added to the NH3 (TAM) state variable; if not, DECNIT is added to the NO3 state variable. If orthophosphorus is simulated, the value of DECPO4 is added to the PO4 state variable.


Plankton Populations and Associated Reactions - PLANK

 (Subroutine Group PLANK of Module RCHRES)

Purpose

PLANK simulates phytoplankton, zooplankton, and/or benthic algae.

Schematic View of Fluxes and Storages

The figures below illustrate the fluxes and storages of the six constituents which are introduced into the RCHRES modeling system in subroutine PLANK. In addition to these constituents, the state variables for dissolved oxygen, biochemical oxygen demand, nitrate, total ammonia, and orthophosphorus are also updated. If subroutine group PLANK is active (PLKFG = 1), dead refractory organics will automatically be simulated. The state variables for these organics are ORN (dead refractory organic nitrogen), ORP (dead refractory organic phosphorus), and ORC (dead refractory organic carbon). The user must specify whether or not phytoplankton, zooplankton, and/or benthic algae are simulated by assigning appropriate values to PHYFG, ZOOFG, and BALFG in the User's Control Input. The state variable PHYTO represents the free floating photosynthetic algae, ZOO represents the zooplankton which feed on PHYTO, and BENAL is the state variable for algae attached to the benthal surface.

Subroutine group PLANK is a large and complex code segment. It uses twelve subroutines to perform simulation of the three types of plankton. Longitudinal advection of PHYTO and ZOO is performed by ADVPLK, a special advection routine for plankton. ORN, ORP, and ORC are advected by ADVECT. The sinking of PHYTO, ORN, ORP, and ORC is performed by subroutine SINK. The user controls the sinking rate of these constituents by assigning values to parameters PHYSET and REFSET in the User's Control Input. PHYSET is the rate of phytoplankton settling, and REFSET is the settling rate for all three of the dead refractory organic constituents. Advection and sinking are performed every interval.

Before ADVECT is called, PLANK sums the inputs of ORN, ORP, and ORC from upstream reaches, tributary land areas, and atmospheric deposition:

     INORG = IORG + SAREA*ADFX + SAREA*PREC*ADCN                       (1)

where:
     INORG = total input of organic to reach
     IORG  = input of organic from upstream reaches and tributary land
     SAREA = surface area of reach
     ADFX  = dry or total atmospheric deposition flux in mass/area per interval
     PREC  = precipitation depth
     ADCN  = concentration for wet atmospheric deposition in mass/volume

Flow diagram for phytoplankton in the PLANK section of the RCHRES Application Module

Flow diagram for dead refractory organics in the PLANK section of the RCHRES Application Module

Flow diagram for zooplankton in the PLANK section of the RCHRES Application Module

Flow diagram for benthic algae in the PLANK section of the RCHRES Application Module

Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series for NUTRX are documented in the EXTNL table of the Time Series Catalog for RCHRES, and are specified in the EXT SOURCES block of the UCI. The monthly values are input in the MONTH-DATA block.

The remainder of the processes modeled in PLANK are only performed when the average depth of water in the RCHRES is at least 2 inches. Experience has shown that the algorithms used to represent these processes are not accurate for excessively shallow waters. If 2 inches or more of water is present in the RCHRES, PLANK performs a series of operations which are necessary to determine the availability of light to support algal growth. First the light intensity at the RCHRES surface is calculated by the following equation:

     INLIT = 0.97*CFSAEX*SOLRAD/DELT                                   (2)

where:
     INLIT  = light intensity immediately below water surface (langleys/min)
     0.97   = correction factor for surface reflection (assume 3 percent)
     CFSAEX = input parameter that specifies the ratio of radiation at
              water surface to gage radiation values. This factor also
              accounts for shading of the water body, e.g., by trees and
              streambanks
     SOLRAD = solar radiation (langleys/interval)
     DELT   = conversion from units of per interval to per minute

After the light intensity at the water surface has been calculated, PLANK determines the factors which diminish the intensity of light as it passes through the water. In addition to the natural extinction due to passage through water, extinction may result from interference caused by suspended sediment or phytoplankton. If SDLTFG is assigned a value of one, the contribution of total suspended sediment to light extinction is calculated as:

     EXTSED = LITSED*SSEDT                                             (3)

where:
     EXTSED = increment to base extinction coefficient due to total
              suspended sediment (/ft)
     LITSED = multiplication factor to total suspended sediment conc.
              (supplied in User's Control Input)
     SSEDT  = total suspended sediment (sand + silt + clay) (mg/l)

The contribution of suspended phytoplankton to light extinction is determined by the empirical relationship:

     EXTCLA = 0.00452*PHYCLA                                           (4)

where:
     EXTCLA = increment to base extinction coefficient due to phytoplankton (/ft)
     0.00452 = multiplication factor to phytoplankton chlorophyll a concentration
     PHYCLA = phytoplankton concentration (micromoles/l of chlorophyll a)

After values for INLIT, EXTSED, and EXTCLA have been calculated, PLANK calls subroutine LITRCH to determine the light correction factor to algal growth and the amount of light available to phytoplankton and benthic algae. Once these calculations have been completed, PLANK checks a series of flags to determine which types of plankton are to be simulated. If PHYFG is assigned a value of one, simulation of phytoplankton is performed. Zooplankton are simulated if ZOOFG is given a value of one. Zooplankton simulation can be performed only if the phytoplankton section is active. Finally, a value of one for BALFG activates benthic algae simulation.


Advect Plankton - ADVPLK

 (subroutine ADVPLK)

Purpose

ADVPLK performs the advection of phytoplankton and zooplankton. The normal advection method (subroutine ADVECT) used in the RCHRES module assumes that each constituent concentration is uniform throughout the RCHRES. This assumption is not valid for plankton. Both phytoplankton and zooplankton locate their breeding grounds near the channel boundaries. Since the water near the boundaries moves downstream much more slowly than the mean water velocity, the plankton populations have a much longer residence time in the RCHRES than would be indicated by the mean flowtime. The geographical extent of the plankton breeding grounds is inversely related to the flow rate. At low flows, large areas of slow moving waters which are suitable for breeding exist along the channel boundaries. As flowrates increase, more and more of these areas are subject to flushing. The special advection routine is critical to plankton simulation, because the only source of plankton is within the reach network. Thus an upstream RCHRES with no plankton inflows can maintain a significant plankton population only if the growth rate of plankton exceeds the rate at which plankton are advected out of the RCHRES. Since biological growth rates are typically much slower than "normal" advection rates, few free-flowing RCHRES's could maintain a plankton population without the use of the special advection routine.

Method

The figure below illustrates the relationships used to perform plankton

advection.

Relationship of parameters for special advection of plankton

ADVPLK assumes that a certain concentration of plankton (STAY) is not subject to advection, but any excess of organisms will be advected in the normal way. A small population (SEED) of plankton are never subject to advection, even during the periods of greatest flow. The maximum concentration of plankton which is not subject to advection (MXSTAY) occurs during low flow conditions. Each simulation interval ADVPLK calculates STAY based on the values of these two parameters and OREF. OREF is the outflow rate at which STAY has a value midway between SEED and MXSTAY. First, the average flow rate through the RCHRES for the interval is calculated:

     OFLO = (SROVOL + EROVOL)/DELTS                                    (5)

where:
     OFLO   = average flow rate (ft3/s or m3/s)
     DELTS  = number of seconds per interval
     SROVOL and EROVOL are as defined in ADCALC

The concentration of plankton which is not subject to advection is then determined:

     STAY = (MXSTAY - SEED)*(2.0**(-OFLO/OREF)) + SEED                 (6)

where:
     STAY   = plankton concentration not advected (mg/l)
     MXSTAY = maximum concentration not subject to advection
     SEED   = concentration of plankton never subject to advection
     OREF   = outflow rate at which STAY has a value midway between
              SEED and MXSTAY (ft3/s or m3/s)

The amount of plankton not subject to advection is converted to units of mass (MSTAY) by multiplying STAY by the volume in the RCHRES at the start of the interval (VOLS). The concentration of plankton which is advected is:

     PLNKAD = PLANK - STAY                                             (7)

ADVPLK calls subroutine ADVECT to perform longitudinal advection of the quantity PLNKAD. The updated value of PLNKAD is then added to the amount of plankton which did not undergo advection to determine the concentration of plankton in the RCHRES at the end of the interval:

     PLANK = PLNKAD + MSTAY/VOL                                        (8)

where:
     PLANK  = concentration of plankton at end of interval
     PLNKAD = concentration of advected plankton which remain in RCHRES
     MSTAY  = mass of plankton not advected
     VOL    = volume in RCHRES at end of interval

If the concentration of plankton in the RCHRES at the start of the interval is less than the value assigned to SEED, advection of plankton is not performed in the RCHRES, and the value of PLANK at the end of the interval is calculated as:

     PLANK = (MSTAY + IPLANK)/VOL                                      (9)

where:
     IPLANK = mass of plankton which enters RCHRES during interval


Light-related Information for Algal Simulation - LITRCH

 (subroutine LITRCH)

Purpose

Subroutine LITRCH determines the light correction factor to algal growth and the amount of light available to phytoplankton and benthic algae.

Method

The overall light extinction factor for the interval is obtained by adding EXTSED and EXTCLA to the base extinction coefficient (EXTB). The value of EXTB is assumed constant for a particular RCHRES and must be assigned in the User's Control Input. The resulting sum (EXTCO) is used to calculate the euphotic depth, which is the distance below the surface of the water body at which 1 percent of the light incident on the surface is still available:

     EUDEP = 4.60517/EXTCO                                            (10)

where:
     EUDEP = euphotic depth (ft)
     EXTCO = total light extinction coefficient (/ft)

HSPF assumes that growth of algae occurs only in the euphotic zone (that is, the water above euphotic depth). When EUDEP has been calculated, it is possible to assign a value to CFLIT, the light correction factor to algal growth. A value of 1.0 is assigned to CFLIT if the calculated euphotic zone includes all the water of the RCHRES. CFLIT = EUDEP/AVDEPE, if the euphotic depth is less than the average depth of water (AVDEPE). CFLIT is used in subroutine ALGRO, to adjust the computed rate of algal growth.

Finally, the amount of light available to phytoplankton and benthic algae is calculated. The equation used to calculate the amount of light available to phytoplankton assumes that all phytoplankton are at mid-depth in the RCHRES or the middle of the euphotic zone, whichever is closer to the surface:

     PHYLIT = INLIT*Exp(-EXTCO*(.5*Min(EUDEP,AVDEPE)))                (11)

where:
     PHYLIT = light available to phytoplankton (langleys/min)
     INLIT  = light available at water surface (langleys/min)
     EXTCO  = light extinction coefficient (/ft)
     AVDEPE = average depth of water in the RCHRES (ft)
     Exp    = Fortran exponential function
     Min    = Fortran minimum function

The equation used to calculate the amount of light available to benthic algae assumes that all benthic algae are at AVDEPE below the surface of the RCHRES:

     BALLIT = INLIT*Exp(-EXTCO*AVDEPE)                                (12)


Phytoplankton - PHYRX

 (subroutine PHYRX)

Purpose

PHYRX simulates the algae which float in the water of a RCHRES. Because these organisms use energy from light to produce organic matter, they are called primary producers and are considered the first trophic level in the aquatic ecosystem. The biological activity of the ecosystem depends upon the rate of primary production by these photosynthetic organisms. The activities of the phytoplankton are in turn affected by the physical environment. Through the process of photosynthesis, phytoplankton consume carbon dioxide and release oxygen back into the water. At the same time, algal respiration consumes oxygen and releases carbon dioxide. Phytoplankton reduce the concentration of nutrients in the water by consuming phosphates, nitrate, and ammonia. Through assimilation these nutrients are transformed into organic materials which serve as a food source for higher trophic levels. A portion of the organic matter that is not used for food decomposes, which further affects the oxygen and nutrient levels in the water. Where the phytoplankton population has grown excessively, much of the available oxygen supply of the water may be depleted by decomposition of dead algae and respiration. In this situation, phytoplankton place a serious stress upon the system.

Approach

To describe quantitatively the dynamic behavior of phytoplankton populations, a number of assumptions must be made. PHYRX treats the entire phytoplankton population as if it were one species, and the mean behavior of the population is described through a series of generalized mathematical formulations. While such an approach obscures the behavior of individual species, the overall effect of the phytoplankton population on the water quality can be modeled with reasonable accuracy.

The HSPF system assumes that biomass of all types (phytoplankton, zooplankton, benthic algae, dead organic materials) has a consistent chemical composition. The user specifies the biomass composition by indicating the carbon:nitrogen: phosphorus ratio and the percent-by-weight carbon. This is done by assigning values to the following parameters:

  1. CVBPC: number of moles of carbon per mole of phosphorus in biomass (default = 106)
  2. CVBPN: number of moles of nitrogen per mole of phosphorus in biomass (default = 16)
  3. BPCNTC: percentage of biomass weight which is carbon (default = 49)

The algorithms used in PHYRX and its subroutines require that the phytoplankton population be expressed in units of micromoles of phosphorus per liter. PHYRX converts the value for state variable PHYTO in milligrams biomass per liter into micromoles phosphorus per liter and assigns this value to the internal state variable STC (standing crop).

PHYRX uses five routines to simulate phytoplankton. ALGRO computes unit growth and respiration rates and determines the growth limiting factor for the phytoplankton. If the amount of growth exceeds the amount of respiration for the interval, GROCHK adjusts growth to account for nutrient limitations. PHYDTH calculates the amount of death occurring during the interval. State variables ORN, ORP, ORC, and BOD are updated by ORGBAL to account for materials resulting from phytoplankton death. Finally, NUTRUP adjusts the values for PO4, NO3, and TAM (total ammonia) to account for uptake of nutrients by phytoplankton. In addition to these updates, the dissolved oxygen state variable is adjusted in PHYRX to account for the net effect of phytoplankton photosynthesis and respiration:

     DOX = DOX + (CVPB*CVBO*GROPHY)                                   (13)

where:
     CVPB   = conversion factor from micromoles phosphorus to mg biomass
     CVBO   = conversion factor from mg biomass to mg oxygen
     GROPHY = net growth of phytoplankton
              (micromoles phosphorus/l per interval)

After all the operations in PHYRX and its subroutines have been performed, the value of STC is converted back into units of milligrams biomass per liter and becomes the updated value of PHYTO.


Unit Growth and Respiration Rates for Algae - ALGRO

 (subroutine ALGRO)

Purpose

ALGRO calculates the unit growth rate of algae based on light, temperature, and nutrients. Each time step, ALGRO determines the rate limiting factor for growth, and passes a label which identifies the limiting factor to the subroutines responsible for printed output. The labels and their meanings are as follows:

'LIT' Growth is light limited.

'NON' Insufficient nutrients are available to support growth.

'TEM' Water temperature does not allow algal growth.

'NIT' Growth is limited by availability of inorganic nitrogen.

'PO4' Growth is limited by availability of orthophosphorus.

'NONE' There is no limiting factor to cause less than maximal growth.

'WAT' Insufficient water is available to support growth.

ALGRO is also responsible for calculating the unit respiration rate for algae. This routine is used in the simulation of both phytoplankton and benthic algae.

Approach

ALGRO performs a series of initial checks to determine whether or not conditions are suitable for growth during the interval. If the light intensity for the interval is less than 0.001 langleys/min, insufficient light is available for growth, and growth is not calculated. Likewise, if the concentration of either inorganic nitrogen or orthophosphorus is less than 0.001 mg/l, no growth occurs. If these checks indicate that conditions are suitable for growth, ALGRO next determines the effects of water temperature on the growth potential.

Temperature Control

The user specifies the temperature preferences of the algae by assigning values to three parameters: TALGRL, TALGRM, and TALGRH. If the water temperature is less than the value assigned to TALGRL or greater than the value assigned to TALGRH, no growth occurs. For water temperatures between TALGRL and TALGRH, a correction factor to maximum growth rate (MALGR) is calculated. This correction factor increases in value linearly from 0.0 at TALGRL to 1.0 at TALGRM. Thus, TALGRM specifies the minimum temperature at which growth can occur at a maximum rate. ALGRO assumes that there is no temperature retardation of maximum growth rate for temperatures between TALGRM and TALGRH. The temperature corrected maximum growth rate is:

     MALGRT = MALGR*TCMALG                                            (14)

where:
     MALGRT = temperature corrected maximum algal growth rate (/interval)
     MALGR  = maximum unit growth rate for algae
     TCMALG = temperature correction to growth
              (TCMALG ranges between 0 and 1)

Once the temperature correction to potential growth rate has been made, ALGRO uses Monod growth kinetics with respect to orthophosphorus, inorganic nitrogen, and light intensity to determine the actual growth rate. The procedure taken in ALGRO is to consider each possible limiting factor separately to determine which one causes the smallest algal growth rate during each simulation interval. This method does not preclude that interactions between factors affect the actual growth rate; in cases where it has been established that there is such an interaction, as in the uptake of phosphate, the phenomena are included in the model. If none of the factors considered is limiting, growth will be maximal and temperature dependent.

Phosphorus Limited Growth

Algae are dependent upon uptake of orthophosphorus to provide the continual supply of phosphorus necessary for ordinary cellular metabolism and reproductive processes. In phosphorus-limited situations, the resultant growth rate has been shown to be dependent not only on the concentration of phosphate ions, but on nitrate concentration as well (DiToro, et al., 1970). The phosphorus limited growth rate is determined by:

     GROP = MALGRT*PO4*NO3/((PO4 + CMMP)*(NO3 + CMMNP))               (15)

where:
     GROP   = unit growth rate based on phosphorus limitation (/interval)
     MALGRT = temperature corrected maximum algal growth rate
     PO4    = orthophosphorus concentration (mg P/l)
     NO3    = nitrate concentration (mg N/l)
     CMMP   = orthophosphorus Michaelis-Menten constant for phosphorus
              limited growth (mg P/l) (CMMP is defaulted to 0.015 mg P/l)
     CMMNP  = nitrate Michaelis-Menten constant for phosphorus limited
              growth (mg N/l) (CMMNP is defaulted to 0.0284 mg N/l)

Nitrogen Limited Growth

Nitrogen is essential to algae for assimilation of proteins and enzymes. In the form of nitrate, nitrogen serves as the essential hydrogen acceptor in the metabolic pathways which enable organisms to grow. ALGRO allows for two different sources of inorganic nitrogen. If ammonia is being simulated and a value of one is assigned to the nitrogen source flag (NSFG), both ammonia and nitrate are used by algae to satisfy their nitrogen requirements. Otherwise, only nitrate is considered in the kinetics formulations. High ratios of ammonia to nitrate have been found to retard algal growth. If a value of one is assigned to the ammonia retardation flag (AMRFG), this phenomenon is simulated by the equation:

     MALGN = MALGRT - 0.757*TAM + 0.051*NO3                           (16)

where:
     MALGN  = maximum unit growth rate corrected for ammonia retardation
              (/interval)
     MALGRT = temperature corrected maximum unit growth rate

Nitrogen limitation on growth is calculated by the equation:

     GRON = MALGN*MMN/(MMN + CMMN)                                    (17)

where:
     GRON  = unit growth rate based on nitrogen limitation (per interval)
     MALGN = maximum unit growth rate (MALGN has the same value
             as MALGRT if AMRFG is set to zero)
     MMN   = total pool of inorganic nitrogen considered available
             for growth
     CMMN  = Michaelis-Menten constant for nitrogen limited growth
             (mg N/l) (CMMN is defaulted to 0.045 mg N/l)

Light Limited Growth

The equation used to determine the limitation on growth rate imposed by light intensity was derived by Dugdale and Macisaac (1971) based on uptake rates of inorganic nitrogen under varying light intensities:

     GROL = MALGRT*LIGHT/(CMMLT + LIGHT)                              (18)

where:
     GROL   = unit growth rate based on light limitation (/interval)
     MALGRT = temperature corrected maximum unit growth rate (/interval)
     LIGHT  = light intensity available to algae in RCHRES (langleys/min)
     CMMLT  = Michaelis-Menten constant for light limited growth
              (langleys/min) (CMMLT is defaulted to 0.033 langleys/min)

Algal Respiration

Algal respiration is dependent upon water temperature and is calculated by the equation:

     RES = ALR20*(TW/20.)                                             (19)

where:
     RES   = unit algal respiration rate (/interval)
     ALR20 = unit respiration rate at 20 degrees C
     TW    = water temperature (deg C)


Nutrients Required for Growth - GROCHK

 (subroutine GROCHK)

GROCHK assures that a minimum concentration of 0.001 mg/l of each nutrient remains in the RCHRES waters after growth occurs. If this condition is not satisfied, the computed growth rate is adjusted accordingly. Orthophosphorus and inorganic nitrogen are always considered as nutrients. If pH is simulated (PHFG = 1), the user may specify that carbon dioxide concentration also be considered as a limiting nutrient by setting the value of DECFG equal to zero.


Phytoplankton Death - PHYDTH

 (subroutine PHYDTH)

Purpose

PHYDTH calculates algal death each interval by using one of two unit death rates specified in the User's Control Input. ALDL, the low unit death rate, is used when environmental conditions encourage sustained life. In situations where nutrients are scarce or the phytoplankton population becomes excessive, ALDH, the high algal death rate, is used.

Method

The high algal death rate, which has a default value of 0.01/hr, is used if any one of three conditions exists:

  1. the concentration of PO4 is less than the value of parameter PALDH
  2. the concentration of inorganic nitrogen is less than the value of parameter NALDH
  3. the concentration of phytoplankton is greater than the value of parameter CLALDH

Regardless of whether these tests indicate that ALDH or ALDL should be used, an additional increment to death occurs if anaerobic conditions prevail during the interval. The increment to death rate due to anaerobic conditions is determined by the value of parameter OXALD. The amount of phytoplankton death which occurs during the interval is calculated as:

     DTHPHY = ALD*STC                                                 (20)

where:
     DTHPHY = amount of phytoplankton death (micromoles P/l per interval)
     ALD    = unit algal death rate determined by environmental conditions
              (/interval)
     STC    = concentration of phytoplankton (micromoles P/l)


Materials Balance for Transformation from Living to Dead Organic - ORGBAL

 (subroutine ORGBAL)

Purpose

ORGBAL increments the concentrations of dead organics to account for plankton death. Plankton death may either be algal death, zooplankton death, or phytoplankton ingested by zooplankton but not assimilated. In each case in which ORGBAL is called, the increments to ORP, ORN, ORC, and BOD are calculated in the subroutine which makes the call and passed on to ORGBAL. ORGBAL is merely a service program which performs the additions to these state variables.


Materials Balance for Transformation from Inorganic to Organic - NUTRUP

 (subroutine NUTRUP)

Purpose

NUTRUP adjusts the concentrations of inorganic chemicals to account for net growth of algae. Net growth may be either positive or negative depending on the relative magnitude of growth and respiration. The state variables which are updated by NUTRUP include PO4, NO3, TAM, and CO2.

Method

The adjustments to PO4 and CO2 are straightforward. The PO4 state variable is always updated; the CO2 state variable is only updated if pH is simulated (PHFG = 1) and carbon dioxide is considered as a limiting nutrient (DECFG = 0). Adjustment of the inorganic nitrogen state variables is more complex. If ammonia is not specified as a source of inorganic nitrogen for growth (NSFG = 0), only the NO3 state variable is updated to account for net growth. If ammonia is considered a nutrient (NSFG = 1), negative net growth is accounted for by adding the total flux of nitrogen to the TAM state variable. If net growth is positive, a portion of the nitrogen flux is subtracted from both the NO3 and TAM state variables. The relative proportions of NO3 and TAM are governed by the value of parameter ALNPR, which is the fraction of nitrogen requirements for growth which are preferably satisfied by nitrate.


Zooplankton - ZORX

 (subroutine ZORX)

Purpose

ZORX simulates the growth and death of zooplankton, and the resultant changes in the biochemical balance of the RCHRES. Zooplankton play an important role in determining the water quality of rivers and lakes. By feeding on the algal, bacterial, and detrital mass, they are a natural regulator in the aquatic environment. At the same time zooplankton are a source of food material for higher trophic levels such as fish. Through excretion, zooplankton provide nutrients for phytoplankton growth. HSPF is only concerned with those zooplankton which feed on phytoplankton, although in reality zooplankton may be herbivores, omnivores, or carnivores.

Schematic View of Fluxes and Storages

Figure "Flow diagram for zooplankton in the PLANK section of the RCHRES Application Module" in PLANK illustrates the fluxes and storage of zooplankton modeled in ZORX. In addition to zooplankton, the state variables for dissolved oxygen, biochemical oxygen demand, total ammonia, nitrate, orthophosphate, and refractory organics are also updated. Subroutine ZORX considers the following processes:

  1. filtering and ingestion of phytoplankton by zooplankton
  2. assimilation of ingested materials to form new zooplankton biomass
  3. zooplankton respiration
  4. inorganic and organic zooplankton excretion
  5. zooplankton death

Filtering and Ingestion

The amount of phytoplankton ingested per milligram zooplankton is calculated by the equation:

     ZOEAT = ZFIL20*(TCZFIL**(TW - 20.))*PHYTO                        (21)

where:
     ZOEAT  = unit ingestion rate (mg phyto/mg zoo per interval)
     ZFIL20 = zooplankton filtering rate at 20 degrees C
              (liters filtered/mg zoo per interval)
     TCZFIL = temperature correction coefficient for filtering
     TW     = water temperature (deg C)
     PHYTO  = phytoplankton concentration (mg phyto/l)

The filtering rate is dependent upon water temperature and phytoplankton concentration. Rates for most biological activities double for every 10 degrees Centrigrade increase in temperature. The filtering rate meets this criterion if the default value of 1.17 is used for the temperature correction coefficient TCZFIL.

When the phytoplankton biomass is below a critical concentration, the unit filtering rate will be maximal and constant. As the phytoplankton biomass increases above the critical concentration, the limiting rate is dependent on ingestive and digestive capabilities, and not on the concentration of the food source. Under these conditions, the filtering rate decreases proportionally such that the algal biomass ingested remains constant at the value of the parameter MZOEAT, which is defaulted to 0.055 mg phytoplankton/mg zooplankton per hour. The code simulates this by reducing ZOEAT to MZOEAT, if Equation 21 gives a value greater than MZOEAT. HSPF assumes that the filtering activities of zooplankton are 100 percent efficient; that is, the zooplankton ingest all of the food which is contained in the water which they filter. The total amount of phytoplankton ingested by the zooplankton is calculated as:

     ZEAT = ZOEAT*ZOO                                                 (22)

where:
     ZEAT  = ingested phytoplankton (mg biomass/l per interval)
     ZOEAT = unit ingestion rate
     ZOO   = zooplankton concentration (mg biomass/l)

ZORX checks that the calculated amount of ingestion does not reduce the phytoplankton population to less than 0.0025 micromoles of phosphorus per liter; if it does, the ingestion rate is adjusted to maintain a phytoplankton concentration at this level.

Assimilation

Assimilation is the process by which ingested phytoplankton are converted to new zooplankton mass. The process of assimilation is never 100 percent efficient in biological systems. Unassimilated food is excreted as organic and inorganic waste products. Zooplankton assimilation efficiency is dependent upon quality and concentration of food. High quality food is assimilated at high efficiency, whereas low quality food is mostly excreted as waste resulting in low assimilation efficiency. The relationship between food concentration and assimilation efficiency is more complex. If the concentration of available food and the filtering rate of an organism are such that the organism ingests more food than can be readily used for growth and metabolism, the organism's assimilation efficiency decreases. The model represents the effect of food quality and concentration on assimilation as shown in Figure "Zooplankton assimilation efficiency" below.

The quality of the zooplankton food is assigned in the User's Control Input by the parameter ZFOOD. Three qualities of food are allowed. From these, one type must be chosen to represent the overall food source available to the zooplankton:

             1 = high quality food
   ZFOOD =   2 = medium quality
             3 = low quality

Depending on the value assigned to ZFOOD, the assimilation efficiency ZEFF is calculated by one of the following equations:

Zooplankton assimilation efficiency

     IF ZFOOD = 1 THEN ZEFF = -0.06*PHYTO + 1.03                      (23)
        IF ZEFF > 0.99 THEN ZEFF = 0.99

     IF ZFOOD = 2 THEN ZEFF = -0.03*PHYTO + 0.47
        IF ZEFF < 0.20 THEN ZEFF = 0.20

     IF ZFOOD = 3 THEN ZEFF = -0.013*PHYTO + 0.17
        IF ZEFF < 0.03 THEN ZEFF = 0.03

These equations are extrapolations from research on Daphnia (Schindler, 1968). The corrections to ZEFF set reasonable upper or lower limits on efficiency for assimilating each type of food. The mass of ingested phytoplankton assimilated by zooplankton is calculated as:

     ZOGR = ZEFF*ZEAT                                                 (24)

where:
     ZOGR = zooplankton growth (mg biomass/l per interval)
     ZEFF = assimilation efficiency (dimensionless)
     ZEAT = ingested phytoplankton (mg biomass/l per interval)

Respiration

Respiration is the biochemical process by which organic molecules are broken down, resulting in a release of energy which is essential for cellular and organismal activities. The oxidized molecules may either be carbohydrates and fats stored within the organism or food passing through the organism's digestive system. In either case, the end result of respiration is a decrease in zooplankton mass and a subsequent release of inorganic nutrients. The equation governing zooplankton respiration is:

     ZRES = ZRES20*(TCZRES**(TW - 20.))*ZOO                           (25)

where:
     ZRES   = zooplankton biomass respired (mg zoo/l per interval)
     ZRES20 = respiration rate at 20 degrees C (default= 0.0015/hr)
     TCZRES = temperature correction factor for respiration (default = 1.07)
     ZOO    = zooplankton (mg biomass/l)

Excretion Products

Excretion is the ingested food which is not assimilated by the zooplankton. These waste products contain both refractory and nonrefractory materials. The amount of refractory organic excretion is calculated as:

     ZREFEX = REFR*ZEXMAS                                             (26)

where:
     ZREFEX = refractory organic material excreted by zooplankton
              (mg refractory biomass/l per interval)
     ZEXMAS = total mass of zooplankton excretion
              (ZEXMAS is the difference between ZEAT and ZOGR)
     REFR   = fraction of biomass which is refractory
              (REFR is the complement of parameter NONREF)

The nonrefractory portion of the excretion is released to the water in the form of inorganic nutrients and undegraded BOD materials. The relative abundance of the materials is dependent upon the unit ingestion rate of the zooplankton (ZOEAT). At higher ingestion rates, a larger fraction of the nonrefractory excretion is not decomposed and is released as BOD materials. In the model, the parameter ZEXDEL is the fraction of nonrefractory excretion which is immediately decomposed and released to the water as inorganic nutrients when the unit ingestion rate of the zooplankton is maximal. If the unit ingestion rate is less than maximal, the model assumes that all the nonrefractory excretion is released to the water as inorganic nutrients. Thus, the amount of excretion released as inorganic materials is:

     ZINGEX = ZEXDEC*(ZEXMAS - ZREFEX)                                (27)

where:
     ZINGEX = amount of biomass decomposed to inorganic excretion
              (mg biomass/l per interval)
     ZEXDEC = fraction of nonrefractory inorganic excretion
              (ZEXDEC = 1 for ZOEAT <= MZOEAT and ZEXDEC = ZEXDEL for
              ZOEAT > MZOEAT. Value of ZOEAT is that given by equation
              20, i.e., prior to adjustment.)

The remaining portion of the excretion is considered to be BOD materials, and is calculated as:

     ZNRFEX = ZEXMAS - ZREFEX - ZINGEX                                (28)

where:
     ZNRFEX = amount of biomass released as nonrefractory organic
              excretion (mg biomass/l per interval)

Death

Zooplankton death is the termination of all ingestion, assimilation, respiration, and excretion activities. After death, zooplankton contribute both refractory and nonrefractory materials to the system. Under aerobic conditions, the mass rate of zooplankton death is determined by multiplying the natural zooplankton death rate, ZD, by the zooplankton concentration. If anaerobic conditions exist, an increase in zooplankton death rate is modeled by adding the value of the anaerobic death rate parameter, OXZD, to ZD. The default value of ZD is 0.0001/hr and that of OXZD is 0.03/hr.

Materials Balance for Related Constituents

Research has shown that 1.10 mg of oxygen are consumed for every gram of zooplankton mass which is respired (Richman, 1958). The DOX state variable is reduced accordingly in ZORX. If there is not sufficient oxygen available to satisfy respiration requirements, the deficit is added to the BOD state variable, and DOX is set equal to zero.

ZORX makes use of subroutine DECBAL to update the state variables TAM, NO3, and PO4 to account for additions from zooplankton respiration and inorganic excretion. The amount of inorganic constituents produced by these two processes is calculated by the following equations:

     ZNIT = (ZINGEX + ZRES)*CVBN                                     (29)
     ZPO4 = (ZINGEX + ZRES)*CVBP
     ZCO2 = (ZINGEX + ZRES)*CVBC

where:
     ZNIT   = increment to TAM or NO3 state variable (mg N/l per interval)
     ZPO4   = increment to PO4 state variable (mg P/l per interval)
     ZCO2   = increment to CO2 state variable (mg C/l per interval)
     ZINGEX = biomass decomposed to inorganic excretion (mg biomass/l per interval)
     ZRES   = biomass respired by zooplankton (mg biomass/l per interval)
     CVBN   = conversion factor from biomass to equivalent nitrogen
     CVBP   = conversion factor from biomass to equivalent phosphorus
     CVBC   = conversion factor from biomass to equivalent carbon

If ammonia is simulated, the inorganic nitrogen released is added to the TAM variable; otherwise, it is added to the NO3 variable. The value of ZCO2 is computed for use in subroutine group PHCARB if pH simulation is performed. Finally, ZORX calls subroutine ORGBAL to update the state variables for ORN, ORP, ORC, and BOD to account for additions from zooplankton death and organic excretion. The amounts of organic constituents produced by these processes are calculated as:

     ZORN = ((REFR*ZDTH) + ZREFEX)*CVBN                               (30)
     ZORP = ((REFR*ZDTH) + ZREFEX)*CVBP
     ZORC = ((REFR*ZDTH) + ZREFEX)*CVBC
     ZBOD = (ZDTH*CVNRBO) + (ZNRFEX*CVBO)

where:
     ZORN   = increment to ORN state variable (mg N/l per interval)
     ZORP   = increment to ORP state variable (mg P/l per interval)
     ZORC   = increment to ORC state variable (mg C/l per interval)
     ZBOD   = increment to BOD state variable (mg O/l per interval
     REFR   = refractory fraction of biomass
     ZDTH   = zooplankton death (mg biomass/l per interval)
     ZREFEX = refractory organic excretion (mg biomass/l per interval)
     ZNRFEX = nonrefractory organic excretion (mg biomass/l per interval)
     CVBO   = conversion from biomass to equivalent oxygen
     CVNRBO = conversion from nonrefractory biomass to equivalent oxygen,
              times NONREF


Benthic Algae - BALRX and BALRX2

Purpose

This section simulates those algae in the RCHRES which are attached to rocks or other stable structures. In free flowing streams, large diurnal fluctuations of oxygen can be attributed to benthic algae. During the sunlight hours, if sufficient nutrients exist to support photosynthesis, oxygen is produced in such large quantities that supersaturation often occurs. However, at night, when photosynthesis cannot occur, the benthic algae can exert a significant demand on the oxygen supply of the RCHRES due to respiratory requirements. Benthic algae influence the nutrient balance of the RCHRES by their extraction of nutrients for growth.

Two different methods are available for modeling benthic algae. The first method is based largely on the phytoplankton process equations, and simulates a single species of benthic algae. The second method includes additional algal types and the processes are independent of the phytoplankton processes. This method includes algal kinetic processes that are in accord with recent scientific literature approaches. The two methods are sufficiently different to warrant separate descriptions. Method 1, which is contained in subroutine BALRX and its subordinate routines, is described below. Method 2 is contained in subroutine BALRX2 and its subroutines; it is described following Method 1.

Approach - Method 1 (subroutine BALRX)

The growth and death of benthic algae are modeled in much the same manner as their free floating relatives, the phytoplankton. In fact, four of the five subroutines that are used for phytoplankton simulation are also used in the benthic algae simulation. These routines are ALGRO, GROCHK, ORGBAL, and NUTRUP. There are two major differences in modeling the two types of algae. First, since the benthic algae are attached to materials in the RCHRES, they are not subject to longitudinal advection. Second, the manner in which death of benthic algae is modeled is sufficiently different from the method used for phytoplankton that a special routine, BALDTH, is used. Within BALRX benthic algae are in units of micromoles phosphorus per liter so that the benthic algae simulation can take advantage of the same subroutines used by PHYRX. In order to obtain these units, the following conversion is performed:

     BAL = BENAL*DEPCOR/CVPB                                          (31)

where:
     BAL    = benthic algae (micromoles phosphorus/l)
     BENAL  = benthic algae (mg biomass/m2)
     CVPB   = conversion factor from micromoles phosphorus to mg biomass
     DEPCOR = conversion from square meters to liters based on average
              depth of water in RCHRES during the interval (computed in RQUAL)

Net Growth

Unit growth and respiration rates for benthic algae are calculated by subroutine ALGRO. The user has the option of multiplying either of these rates by a constant factor if there is evidence that the benthic algae population does not exhibit the same growth and respiration rates as the phytoplankton population. Thus, net growth rate is calculated as:

     GROBAL = (GRO*CFBALG - RES*CFBALR)*BAL                           (32)

where:
     GROBAL = net growth rate of benthic algae (micromoles P/l per interval
     GRO    = unit growth rate as calculated in subroutine ALGRO (/interval)
     CFBALG = ratio of benthic algae to phytoplankton growth rates
              under identical growth conditions (default = 1.0)
     RES    = unit respiration rate as calculated in subroutine ALGRO (/interval)
     CFBALR = ratio of benthic algae to phytoplankton respiration rate (default = 1.0)
     BAL    = benthic algae concentration (micromoles P/l)

After GROBAL has been calculated, subroutine GROCHK is called to assure that the calculated growth does not reduce any nutrient to a concentration less than 0.001 mg/l. If it does, GROBAL is adjusted to satisfy this requirement.

Death of Benthic Algae

Subroutine BALDTH calculates the amount of benthic algae death and passes this information back to BALRX. BALRX updates the state variable BAL to account for net growth and death. The value of BAL is not allowed to fall below 0.0001 micromoles of phosphorus per square meter.

BALDTH calculates algal death each interval by using one of two unit death rates specified in the User's Control Input. ALDL, the low unit death rate, is used when environmental conditions encourage sustained life; in situations where nutrients are scarce or the benthic algae population becomes excessive, ALDH, the high algal death rate, is used. The high algal death rate, which has a default value of 0.01/hr, is used if any one of three conditions exists:

  1. the concentration of PO4 is less than the value of parameter PALDH
  2. the concentration of inorganic nitrogen is less than the value of parameter NALDH
  3. the areal density of benthic algae is greater than the value of parameter MBAL

Regardless of whether these tests indicate that ALDH or ALDL (default equals 0.001/hr) should be used, an additional increment to death occurs if anaerobic conditions are prevalent during the interval. The increment to death rate due to anaerobic conditions is determined by the value of parameter OXALD. When the benthic algae population grows to a size greater than that which may be supported on the bottom surface, algae begin to break away from the bottom, a phenomenon known as sloughing. Whenever the population calculated exceeds the maximum allowable bottom density (MBAL), the sloughing process removes the excess algae. The amount of benthic algae death which occurs during the interval is calculated as:

     DTHBAL = (ALD*BAL) + SLOF                                        (33)

where:
     DTHBAL = amount of benthic algae death (micromoles P/l per interval)
     ALD    = unit algal death rate determined by environmental conditions
              (/interval)
     BAL    = concentration of benthic algae (micromoles P/l)
     SLOF   = amount of benthic algae sloughed (micromoles P/l per interval)

Materials Balance for Related Constituents

The DOX state variable is updated to account for the net effect of benthic algae photosynthesis and respiration according to the following equation:

     DOX = DOX + (CVPB*CVBO*GROBAL)                                   (34)

where:
     DOX    = concentration of dissolved oxygen (mg/l)
     CVPB   = conversion factor from micromoles phosphorus to mg biomass
     CVBO   = conversion factor from mg biomass to mg oxygen
     GROBAL = net growth of benthic algae (micromoles phosphorus/l per
              interval)

The additions to ORN, ORP, ORC, and BOD resulting from benthic algae death are calculated as:

     BALORN = REFR*DTHBAL*CVBPN*.014                                  (35)
     BALORP = REFR*DTHBAL*.031
     BALORC = REFR*DTHBAL*CVBPC*.012
     BALBOD = CVNRBO*CVPB*DTHBAL

where:
     BALORN = increment to ORN state variable (mg N/l per interval)
     BALORP = increment to ORP state variable (mg P/l per interval)
     BALORC = increment to ORC state variable (mg C/l per interval)
     BALBOD = increment to BOD state variable (mg O/l per interval)
     REFR   = refractory fraction of biomass
     DTHBAL = benthic algae death (micromoles P/l per interval)
     CVNRBO = conversion from mg biomass to equivalent mg
              oxygen demand (allowing for refractory fraction)
     CVPB   = conversion from micromoles phosphorus to mg biomass
     CVBPN  = conversion from micromoles phosphorus to micromoles nitrogen
     CVBPC  = conversion from micromoles phosphorus to micromoles carbon

When BALORN, BALORP, BALORC, and BALBOD have been evaluated, subroutine ORGBAL is called to perform the actual increments to the appropriate state variables. Finally, subroutine NUTRUP is called to update the inorganic state variables to account for net growth.

External Units

The output values for benthic algae are in units of milligrams biomass per square meter and micrograms chlorophyll a per square meter.

Approach - Method 2 (subroutine BALRX2)

The benthic algae algorithms in Method 2 are based upon the periphyton kinetics contained in the DSSAMt (Caupp et al., 1998) water quality model, which are in accord with more recent literature approaches. Up to four different algal types can be simulated simultaneously, and the processes which these algae undergo are independent of the phytoplankton processes. The process equations, which are adapted from DSSAMt, are briefly summarized as follows:

Benthic algae are assumed to grow only in portions of the stream that can be described as riffles. Algal growth is a function of the available nutrients, light, temperature, and the total density of benthic algae. Nitrogen-fixing (blue-green) algae can be represented, and algae are generally not permitted to reduce nutrients below a user-defined floor. Respiration is dependent on temperature. Algae are lost or die (i.e., removed) through grazing/disturbance by benthic invertebrates and through scouring or sloughing processes. The inorganic and organic nutrient pools in the water column are updated to reflect the growth, respiration, and removal processes.

BALRX2 utilizes five subroutines, two of which are the same routines used by BALRX, and three of which are similar in function and structure to routines used by BALRX. The routines that are used by both methods are ORGBAL and GROCHK. The three different subroutines called by BALRX2 are: 1) ALGRO2, which models growth and respiration and is similar to ALGRO; 2) BALREM, which performs similar processes (i.e., removal of benthic algae) to those in BALDTH; and 3) NUTUP2, which performs similar functions to those in NUTRUP. In BALRX2, many of the benthic algae processes are expressed in units of micromoles phosphorus per liter. In order to obtain these units, the following conversion is performed:

     BAL(x) = BENAL(x)*DEPCOR*FRRIF/CVPB                              (36)

where:
     BAL(x)   = concentration of benthic algal type x (micromoles phosphorus/l)
     BENAL(x) = density of benthic algal type x (mg biomass/m2)
     CVPB     = conversion factor from micromoles phosphorus to mg biomass
     DEPCOR   = conversion from square meters to liters based on average
                depth of water in RCHRES during the interval (computed in RQUAL)
     FRRIF    = fraction of reach that is composed of riffles

The overall equation expressing the benthic algae mass balance (in density units) can be effectively represented as follows:

     d(BENAL(x))/dt = [GROBA(x)-RESBA(x)-SLOF(x)]*BENAL(x)-REMBA(x)   (37)

where:
     BENAL(x) = benthic algal type x biomass (mg biomass/m2)
     GROBA(x) = production rate for benthic algal type x (/interval)
     RESBA(x) = respiration rate for benthic algal type x (/interval)
     SLOF(x)  = biomass removal rate from scouring for benthic algal type x
                (/interval)
     REMBA(x) = removal rate (grazing and disturbance) of benthic algal
                type x (mg biomass/m2/interval) (note: in the code REMBA
                has different units)

Growth

Growth and respiration rates for benthic algae are calculated in subroutine ALGRO2. The following equation is used to compute growth:

     GROBA(x) = MBALGR(x)*TCMBAG(x)*min[GROFN(x),GROFL(x)]*GROFD(x)   (38)

where:
     MBALGR(x) = production of benthic algal type x under optimal conditions
                 (/interval)
     TCMBAG(x) = temperature limitation function for benthic algal type x
     GROFN(x)  = nutrient limitation function for benthic algal type x
     GROFL(x)  = light limitation function for benthic algal type x
     GROFD(x)  = density limitation function for algal type x
     min       = minimum function

The temperature limitation function is computed by the following equation:

     TCMBAG(x) = TCBAG(x)**(TW-20)                                    (39)

where:
     TCBAG(x) = coefficient for temperature effect on growth of algal type x
     TW       = water temperature (deg C)

If the inorganic nitrogen and phosphorus concentrations are greater than user-defined minimum values for growth (NMINGR and PMINGR), then growth can occur, and the nutrient limitation function is computed by the following equation for non-blue-green algae:

     GROFN(x) = min[GROFV*PO4/(CMMP(x)+GROFV*PO4),                    (40)
                    GROFV*MMN/(CMMN(x)+GROFV*MMN)]

For nitrogen-fixing (blue-green) algae, if the available nitrogen concentration is greater than a user-defined parameter (NMAXFX), fixation is suppressed and the above equation is used. Otherwise, fixation is assumed to occur and the following expression is used:

     GROFN(x) = GROFV*PO4/(CMMP(x)+GROFV*PO4)                         (41)

where:
     GROFV   = velocity limitation function for benthic algal nutrient
               availability (-)
     PO4     = dissolved available phosphorus concentration (mg P/l)
     CMMP(x) = half-saturation constant for phosphorus uptake for
               algal type x (mg P/l)
     MMN     = dissolved available nitrogen concentration (mg N/l)
     TAM     = total ammonia nitrogen concentration (mg NH3-N/l)
     NO3     = nitrate nitrogen concentration (mg NO3-N/l)
     CMMN(x) = half-saturation constant for nitrogen growth for
               algal type x (mg N/l)

The available nitrogen is computed as:

     MMN = NO3 + TAM                                                  (42)

where:
     TAM = 0 if ammonia is not simulated

The velocity adjustment on nutrient limitation is computed as:

     GROFV = BALVEL/(CMMV + BALVEL)                                   (43)

where:
     BALVEL = water velocity in riffle sections of reach (ft/s or m/s)
     CMMV   = half-saturation constant for velocity for algal nutrient
              availability (ft/s or m/s)

If the light intensity is greater than the user-specified minimum value for growth (LMINGR), then growth can occur, and the light limitation function on growth is computed as follows:

     GROFL(x) = BALLIT/CSLIT(x)*exp[1 - BALLIT/CSLIT(x)]              (44)

where:
     BALLIT   = available light at the stream bottom (ly/interval)
     CSLIT(x) = saturating light intensity for growth of benthic
                algal type x (ly/interval)

Optional methods are available for estimating the light extinction coefficient. If SDLTFG is set to 1, extinction is based on the computed (or input) sediment concentration. If SDLTFG is 2, extinction is based on a linear regression on flow. In this case, the total extinction coefficient is computed as follows:

     EXTB + EXTSED = CKTRB1*TURB**CKTRB2                              (45)
and
     TURB = CTRBQ1*RO**CTRBQ2                                         (46)

where:
     EXTB   = base extinction coefficient for light (/ft)
     EXTSED = addition to extinction coefficient due to sediment in the
              water column (/ft)
     TURB   = turbidity (NTU)
     RO     = outflow rate at end of interval (ft3/s or m3/s)
     CKTRB1 = regression coefficient for calculating extinction coefficient
              from turbidity (/ft or /m)
     CKTRB2 = regression exponent for calculating extinction coefficient
              from turbidity (-)
     CTRBQ1 = reach-specific regression coefficient for calculating turbidity
              from discharge (NTU/ft3/s or NTU/m3/s)
     CTRBQ2 = reach-specific regression exponent for calculating turbidity
              from discharge (-)

The density limitation function on growth is based on the total density of benthic algae; these two quantities are computed as:

     SUMBA    = SUM[BENAL(x)]  for all algal types x                  (47)

     GROFD(x) = (CMMD1(x)*SUMBA + CMMD2(x))/(SUMBA + CMMD2(x))        (48)

where:
     SUMBA    = total benthic algal biomass for all algal types
                (mg biomass/m2)
     CMMD1(x) = coefficient in equation for density-limited growth
                for algal type x (-)
     CMMD2(x) = half-saturation constant for density-limited growth
                for algal type x (mg biomass/m2)

If necessary, the growth of each benthic algal type is adjusted so that its density (mg/m2) does not go below the minimum value given by the input parameter MINBAL.

Respiration

     RESBA(x) = BALR20(x)*TCBALR(x)**(TW-20) + GRORES(x)*GROBA(x)     (49)

where:
     BALR20(x) = respiration rate at 20 C for benthic algal type x
                 (/interval)
     TCBALR(x) = temperature correction coefficient for respiration for
                 benthic algal type x (-)
     GRORES(x) = fraction of respiration required to support growth for
                 benthic algal type x (-)

Removal of Benthic Algae

Benthic algae removal is assumed to occur as a result of grazing and disturbance by benthic invertebrates and scouring. These processes are computed in subroutine BALREM. The total removal rate of all benthic algae due to grazing and disturbance is computed as:

     REMINV = CREMVL*TCGRAZ**(TW-20)*[SUMBA/(SUMBA+CMMBI)]*BINV       (50)

where:
     REMINV = total removal of benthic algae (all types) due to
              grazing and disturbance (mg biomass/m2/interval)
     CREMVL = removal rate due to grazing and disturbance of benthic
              algae by invertebrates (mg biomass/mg invertebrates/interval)
     TCGRAZ = temperature correction coefficient for grazing of
              benthic algae by benthic invertebrates (-)
     CMMBI  = half-saturation constant for benthic invertebrate grazing
              (mg biomass/m2)
     BINV   = biomass of grazing benthic invertebrates in the reach
              (mg invertebrates/m2)

The scouring loss rate (/interval) for each benthic algal type is computed as follows:

     SLOF(x) = CSLOF1(x)*exp[CSLOF2(x)*BALVEL]                        (51)

where:
     CSLOF1(x) = rate coefficient in scour regression equation for
                 benthic algal type x (/interval)
     CSLOF2(x) = exponent coefficient in scour regression equation for
                 benthic algal type x (/interval)
>p>Finally, the total removal is computed by allocating the total grazing removal to each of the types and adding the scouring removal rate as follows:
     REMBA(x) = [REMINV/SUMBA + SLOF(x)]*BENAL(x)                     (52)

If necessary, the removal of each benthic algal type is adjusted so that its density (mg/m2) does not go below the minimum value given by the input parameter MINBAL.

Benthic algae are assumed to grow only in riffle areas of the stream, where the hydraulic conditions are very different from the typical or average values in the stream. (Note: the fraction of the reach assumed to be composed of riffles is defined by the user with the FRRIF parameter; the default value of FRRIF is 1). The average velocity and average depth (which are computed in the HYDR section) are adjusted to reflect conditions in riffle areas. The method utilized is a step function of discharge as follows:

  Discharge                 Velocity         Depth
(m3/s or f3/s)               Factor          Factor

<  RIFCQ1                   RIFVEL(1)       RIFDEP(1)
>= RIFCQ1 & < RIFCQ2        RIFVEL(2)       RIFDEP(2)
>= RIFCQ2 & < RIFCQ3        RIFVEL(3)       RIFDEP(3)
>= RIFCQ3                   RIFVEL(4)       RIFDEP(4)

These factors are used to adjust the velocity and depth as follows:

     BALVEL = RIFVEL(I)*AVVEL                                         (53)
     BALDEP = RIFDEP(I)*AVDEP                                         (54)

where:
     BALVEL    = velocity in riffle areas (ft/s or m/s)
     BALDEP    = depth in riffle areas (ft or m)
     RIFVEL(I) = velocity factor applicable to current flow (-)
     RIFDEP(I) = depth factor applicable to current flow (-)
     AVVEL     = average velocity (ft/s or m/s)
     AVDEP     = average depth (ft or m)

NUTUP2 adjusts the concentrations of inorganic chemicals to account for net growth of benthic algae. Net growth may be either positive or negative depending on the relative magnitude of growth and respiration. The state variables which are updated by NUTUP2 are PO4, NO3, TAM, and CO2. There are two differences between this routine and subroutine NUTRUP: 1) the nitrogen growth requirements are adjusted to account for any nitrogen-fixing benthic algae, and 2) an alternative nitrogen preference function is included.

The adjustments to PO4 and CO2 are straightforward. The PO4 state variable is always updated; the CO2 state variable is only updated if pH is simulated (PHFG = 1) and carbon dioxide is considered as a limiting nutrient (DECFG = 0). Adjustment of the inorganic nitrogen state variables is more complex. If ammonia is not specified as a source of inorganic nitrogen for growth (NSFG = 0), only the NO3 state variable is updated to account for net growth. If ammonia is considered a nutrient (NSFG = 1), negative net growth is accounted for by adding the total flux of nitrogen to the TAM state variable. If net growth is positive, a portion of the nitrogen flux is subtracted from both the NO3 and TAM state variables. The relative proportions of NO3 and TAM are governed by the nitrogen preference function. The first nitrogen preference function (selected by BNPFG = 0) is governed by the value of parameter ALNPR, which is the fraction of nitrogen requirements for growth which are preferably satisfied by nitrate. An alternative method (BNPFG = 1) uses the following expression to compute the fraction of nitrogen requirements to be satisfied by nitrate:

     ALNPR2 = 1 - [(CAMPR*TAM)/(CAMPR*TAM + NO3)]                     (55)

where:
     ALNPR2 = fraction of nitrogen requirement for growth of benthic algae
              that is satisfied by nitrate under alternative method (-)
     CAMPR  = coefficient for calculating alternative nitrogen
              preference function (-)

In addition, if as a result of net growth, either the ammonia or nitrate concentration goes below a minimum value, specified by parameter NMINC, the concentration is set to 0.0.

The organic nutrients ORN, ORP, ORC, and BOD are incremented in subroutine ORGBAL to reflect benthic algae removal processes. This process is similar to the methods used for phytoplankton and for benthic algae under Method 1 in which refractory and nonrefractory fractions are used to apportion the death between refractory organics and BOD. However, a fraction (FRAVL) of the nonrefractory material (i.e., BOD) generated by the removal is assumed to be immediately decomposed and available as inorganic nutrients and ORC.


pH, Carbon Dioxide, Total Inorganic Carbon, and Alkalinity - PHCARB

 (Subroutine Group PHCARB of Module RCHRES)

Purpose

PHCARB calculates the pH of the water within a RCHRES. The primary value of pH is as an indicator of the chemical environment of the system. Under normal circumstances, pH is near neutral, that is, near seven. Most life sustaining processes are impaired at extremes of pH.

Method

Figure "Flow diagram of inorganic carbon in the PHCARB group of the RCHRES Application Module" below illustrates the fluxes and storages of constituents introduced in this section. Determination of pH requires simulation of alkalinity, carbon dioxide, and total inorganic carbon. Within PHCARB, state variables for alkalinity (ALK), carbon dioxide (CO2), and total inorganic carbon (TIC) are expressed as molar concentrations to correspond to the equilibrium expressions necessary to determine pH. The conversion from mg/l to moles/l takes place after longitudinal advection has been considered. Externally, ALK, CO2, and TIC are expressed in mg/l.

Alkalinity

Alkalinity is defined as the amount of acid required to attain a pH value equal to that of a total inorganic carbon molar solution of H2CO3. This pH value is near 4.5, which is approximately the lowest pH value tolerated by most forms of aquatic life. Alkalinity is interpreted as the acid neutralizing capacity of natural waters.

Alkalinity is simulated as a conservative constituent, in module section CONS. Parameter ALKCON, in the User's Control Input for PHCARB, specifies which conservative substance is alkalinity. For example, if ALKCON = 3 then subroutine PHCARB will assume that alkalinity is the 3rd conservative constituent.

Carbon Dioxide and Total Inorganic Carbon

HSPF assumes that changes in the TIC concentration occur only as changes in CO2 concentration. Thus, the sources of TIC are:

  1. carbon dioxide invasion (input) from the atmosphere
  2. zooplankton respiration
  3. carbon dioxide released by BOD decay
  4. net growth of algae (if negative)
  5. benthal release of carbon dioxide (if BENRFG = 1)

Flow diagram of inorganic carbon in the PHCARB group of the RCHRES Application Module

The sinks of TIC are:

  1. carbon dioxide release to the atmosphere
  2. net growth of algae (if positive)

All of these quantities except carbon dioxide invasion are calculated in other subroutines and passed into PHCARB.

Carbon Dioxide Invasion

In order to calculate carbon dioxide invasion, the saturation concentration of CO2 must be determined. First, Henry's constant for CO2, defined as the molar concentration of atmospheric CO2 divided by the partial pressure of CO2, is calculated by the equation:

     S = 10.**(2385.73/TWKELV - 14.0184 + 0.0152642*TWKELV)            (1)

where:
     S      = Henrys's constant for CO2
     TWKELV = temperature of water (deg K)

Using Henry's constant, the saturation concentration of CO2 is calculated as:

     SATCO2 = 3.16E-04*CFPRES*S                                        (2)

where:
     SATCO2 = saturation concentration of CO2 (moles CO2-C/l)
     CFPRES = correction to atmospheric pressure resulting from elevation
              difference (calculated in the Run Interpreter)
     S      = Henry's constant for CO2

The carbon dioxide invasion is then calculated by the following equation:

     ATCO2 = KCINV*(SATCO2 - CO2)                                      (3)

where:
     ATCO2  = carbon dioxide invasion expressed as moles CO2-C/l
              per interval
     KCINV  = carbon dioxide invasion coefficient (/interval)
     SATCO2 = saturation concentration of CO2 (moles CO2-C/l)
     CO2    = concentration of CO2 after longitudinal advection
              (moles CO2-C/l)

A positive value for ATCO2 indicates addition of CO2 to the water; a negative value indicates a release of CO2 from water to the atmosphere. The value of KCINV is dependent upon the value calculated for KOREA, the oxygen reaeration coefficient, in subroutine group OXRX:

     KCINV = CFCINV*KOREA                                              (4)

where:
     KCINV  = carbon dioxide invasion coefficient (/interval)
     CFCINV = parameter specifying ratio of CO2 invasion rate to O2
              reaeration rate
     KOREA  = oxygen reaeration coefficient (/interval)

Net Carbon Dioxide Flux

The net carbon dioxide flux is determined by the following equation:

     DELTCD = ATCO2 + (ZCO2 - ALGCO2 + DECCO2 + BENCO2)/12000.         (5)

where:
     DELTCD = net CO2 flux (moles CO2-C/l per interval)
     ATCO2  = CO2 invasion (moles CO2-C/l per interval)
     ZCO2   = CO2 released by zooplankton excretion and respiration
              (mg CO2-C/l per interval)
     ALGCO2 = CO2 flux due to net growth of algae (mg CO2-C/l
              per interval)
     DECCO2 = CO2 released by BOD decay (mg CO2-C/l per interval)
     BENCO2 = benthal release of CO2 (mg CO2-C/l per interval)
     12000. = conversion from mg CO2-C/l to moles CO2-C/l

If DECFG, the flag which decouples CO2 from the algal simulation, has a value of one, ALGCO2 has a value of zero in this equation. Benthal release rates for both aerobic and anaerobic conditions must be included in the User's Control Input if benthal release of CO2 is simulated. Since HSPF assumes that changes in total inorganic carbon concentration only occur as changes in carbon dioxide, the update to the TIC state variable for each simulation interval is:

     TIC = TIC + DELTCD                                                (6)

where:
     TIC = total inorganic carbon (moles C/l)

The Carbonate System

The value of pH is controlled by the carbonate system. There are three species of importance to the system: [H2CO3*], [HCO3], and [CO3]. [H2CO3*] is defined as the sum of [H2CO3] and [CO2]; for modeling purposes [H2CO3] is negligible relative to [CO2]. The carbonate system can be described by the following equations:

     [H]*[HCO3]/[H2CO3*] = K1EQU                                       (7)
     [H]*[CO3]/[HCO3] = K2EQU
     [H]*[OH] = KWEQU
     [H2CO3*] + [HCO3] + [CO3] = TIC
     [HCO3] + 2*[CO3] + [OH] - [H] = ALK

where:
     [H]      = hydrogen ion concentration (moles/l)
     [OH]     = hydroxide ion concentration (moles/l)
     [CO3]    = carbonate ion concentration (moles/l)
     [HCO3]   = bicarbonate ion concentration (moles/l)
     [H2CO3*] = carbonic acid/carbon dioxide concentration (moles/l)
     K1EQU    = first dissociation constant for carbonic acid
     K2EQU    = second dissociation constant for carbonic acid
     KWEQU    = ionization product of water

The five unknown values ([H2CO3*], [HCO3], [CO3], [H], [OH]) can be determined when K1EQU, K2EQU, KWEQU, TIC, and ALK are known. K1EQU, K2EQU, and KWEQU are all functions of water temperature and are evaluated by the following equations:

     K1EQU = 10.**(-3404.71/TWKELV + 14.8435 - 0.032786*TWKELV)        (8)
     K2EQU = 10.**(-2902.39/TWKELV + 6.4980 - 0.02379*TWKELV)
     KWEQU = 10.**(-4470.99/TWKELV + 6.0875 - 0.01706*TWKELV)

where:
     TWKELV = absolute temperature of water (deg K)

Calculation of pH and CO2

Once values have been determined for K1EQU, K2EQU, KWEQU, TIC, and ALK, an equilibrium equation can be developed for hydrogen ion concentration ([H]). The five equations representing the carbon system (Equation 7) can be reduced to a fourth order polynomial expression:

    [H]**4 + COEFF1*([H]**3) + COEFF2*([H]**2) + COEFF3*[H] + COEFF4 = 0 (9)

where:
     COEFF1 = ALK + K1EQU
     COEFF2 = -KWEQU + ALK*K1EQU + K1EQU*K2EQU - TIC*K1EQU
     COEFF3 = -2.*K1EQU*K2EQU*TIC - K1EQU*KWEQU + ALK*K1EQU*K2EQU
     COEFF4 = -K1EQU*K2EQU*KWEQU
     [H]    = hydrogen ion concentration (moles/l)

The solution of this equation is performed by subroutine PHCALC. Based on the hydrogen ion concentration calculated in PHCALC, the concentration of CO2 is recalculated as:

     CO2 = TIC/(1. + K1EQU/HPLUS + K1EQU*K2EQU/(HPLUS**2))             (10)

where:
     CO2   = carbon dioxide concentration (moles C/l)
     TIC   = total inorganic carbon concentration (moles C/l)

     K1EQU = first dissociation constant of carbonic acid
     K2EQU = second dissociation constant of carbonic acid
     HPLUS = hydrogen ion concentration (moles H/l)

Finally, the units of TIC, CO2, and ALK are converted back to mg/l for use outside of PHCARB.


Calculate pH - PHCALC

 (subroutine PHCALC)

PHCALC uses the Newton-Raphson method to solve the fourth order polynomial expression for the hydrogen ion concentration (Equation 9). The user specifies the maximum number of iterations performed by assigning a value to parameter PHCNT. PHCALC continues the iteration process until the solutions for pH concentration of two consecutive iterations differ by no more than one tenth of a pH unit. If the solution technique does not converge within the maximum allowable number of iterations, PHCALC passes this information back to PHCARB by assigning a value of zero to CONVFG. An error message is printed and then PHCALC is called again, to repeat the unsuccessful iteration process. This time, the "debug flag" (PHDBFG) is set ON so that, for each iteration, PHCALC will print information which will help the user track down the source of the problem.


Copy Time Series - COPY

 (Utility Module COPY)

This utility module is used to copy one or more time series from a source specified in the EXT SOURCES or NETWORK Block of the User's Control Input (UCI), to a target specified in the NETWORK or EXT TARGETS Block.

To operate the COPY module, the user must specify the time interval used in the internal scratch pad (INDELT) and the number of point-valued and mean-valued time series to be copied (NPT and NMN in TIMESERIES). Up to 20 point-valued and/or 20 mean-valued time series may be copied in a single operation.

Module COPY is typically used to transfer time series, such as precipitation and potential evapotranspiration data, from a sequential file (e.g., ASCII data) to a data set in the WDM file or DSS. Thereafter, when these data are used as inputs to simulation operations, they are read directly from the WDM or DSS.

COPY can also be used to change the "kind" and/or interval of one or more time series. For example, a WDM data set containing hourly precipitation data could be input to COPY and the output stored in another WDM data set with a daily time step. The data would automatically be aggregated.


Output Time Series to a List File - PLTGEN

 (Utility Module PLTGEN)

This utility module was originally designed to prepare one or more time series for simultaneous display on a plotter. Its more common usage is to simply create formatted text files containing listings of time series for transfer to other programs, such as spreadsheets, statistical packages, and other models. As with the COPY module, the user must specify the input(s) (sources), using entries in the EXT SOURCES or NETWORK Blocks in his control input (UCI) file. The internal time step and the number of point- and/or mean-valued time series to be displayed must also be specified.

TSGET transfers the time series from the source(s) to the INPAD (as in COPY). PLTGEN then outputs these data to a plot file (PLOTFL). There are three possible formats for this file, selected by the input flag TYPEFG.

TYPEFG Output description

1 Standard PLTGEN/MUTSIN file. NPT + NMN must be less than or

equal to 20.

2 FEQ Diffuse Time Series File (DTSF). NPT must be zero.

3 FEQ Point Time Series File (PTSF). NPT must be one, and NMN must be

zero.

For the default type 1, this is a sequential file; the first several records contain general information, such as the plot heading, number of curves to be plotted, the names of the time series represented by each curve, scaling information, etc. Each subsequent record contains:

Columns     Contents

 1 -  4     Identifier (first 4 characters of title)

 6 - 10     Year

11 - 13     Month

14 - 16     Day

17 - 19     Hour

20 - 22     Minute

25 - 36     Value for curve 1, for this date/time

39 - 50     Value for curve 2, for this date/time

etc         (repeats until data for all curves are supplied)

Format:   A4,1X,I5,4I3,20(2X,G12.5)

The next two types of files are used to link HSPF with the hydrodynamic model FEQ (Franz and Melching, 1997). The DTSF file is used to transfer the outflows (in inches or mm) from up to 99 pervious or impervious land segments that are tributary to an FEQ branch. The PTSF file is used to transfer the outflow (in cfs or cms) from a single RCHRES to an FEQ branch.

The time resolution of the PLOTFL is the INDELT of the run, an integer multiple of the INDELT (which must also be evenly divisible into one day), one month, or one year.

The user can also specify that a PLOTFL contain only records greater than a certain threshold value, THRESH, or that it produces output only during a certain span of time specified in the Special Actions Block.

The contents of a sample standard PLOTFL are shown below. To keep the listing short, only the first four values have been included. The DTSF and PTSF files are unformatted binary files, so no sample is shown.

A PLOTFL was originally intended to be read by a stand-alone plotting program, which would translate its contents into information used to drive a pen-plotting device. These devices are now essentially obsolete. Alternative uses of a PLOTFL are:

  1. To display one or more time series in printed form. For example: To examine the contents of a data set in the WDM file, input it to PLTGEN and list the contents of the PLOTFL.
  2. To transfer time series to some other stand-alone program, such as a spreadsheet or graphical display program. For example, one could specify the contents of a PLOTFL as input to a program which performs statistical analysis or computes cross correlations between time series.

Plot HSPF FILE FOR DRIVING SEPARATE PLOT PROGRAM
Plot Time interval:   30 mins          Last month in printout year:  9
Plot No. of curves plotted:  Point-valued:  2   Mean-valued:  0   Total:  2
Plot Label flag:  0          PIVL:    1          IDELT:   30
Plot Plot title:   Plot of reservoir flowrates
Plot Y-axis label: Flow (ft3/sec)
Plot Scale info:  Ymin:   .00000E+00
Plot              Ymax:   1000.0
Plot              Time:   48.000     intervals/inch
Plot Data for each curve (Point-valued first, then mean-valued):
Plot Label                   LINTYP     INTEQ    COLCOD      TRAN   TRANCOD
Plot Inflow                       0         0         1      SUM          1
Plot Outflow                      0         0         1      SUM          1
Plot
Plot
Plot
Plot
Plot
Plot
Plot
Plot
Plot Time series (pt-valued, then mean-valued):
Plot
Plot Date/time                      Values
Plot
Plot  1974  5 31 24  0    .00000E+00    1.0000
Plot  1974  6  1  0 30    .82838        1.0000
Plot  1974  6  1  1  0    1.5071        1.0000
Plot  1974  6  1  1 30    2.0631        1.0000

Sample PLOTFL for TYPEFG=1 (showing four time points)


Display Time Series in a Tabular Format - DISPLY

 (Utility Module DISPLY)

The purpose of this module is to permit any time series to be displayed (at a variety of time intervals) in a tabular format. Sample outputs are shown in figures below. Salient features of this module are:

  1. Any time series (input or computed) can be displayed. The user specifies the time series in the EXT SOURCES or NETWORK Block, as with any other module.
  2. As with any other module, the data are first placed in the INPAD, by module TSGET. At this point they are at the time interval specified for this operation in the OPN SEQUENCE Block (INDELT). This might have involved aggregation or disaggregation if the data were brought in from the WDM file. In general, INDELT can be any of the 19 HSPF supported time steps, ranging from 1 minute to 1 day.
  3. The user can elect to display the data in a "long-span table" or a "short-span table". The term "span" refers to the period covered by each table. A short-span table (first two figures below) covers a day or a month at a time and a long-span table (last figure below) covers a year.
  4. The user selects the time step for the individual items in a short-span display (the display interval) by specifying it as a multiple (PIVL) of INDELT. For example, the data in Figure "Short-Span Display (First Type)" are displayed at an interval of 5 minutes. This could have been achieved with the following scenarios:

    INDELT PIVL

    5 minutes 1

    1 minutes 5

    If the display interval is less than one hour, one hour's worth of data are displayed on one printed row of the table as in Figure "Short-Span Display (First Type)." The number of items in a row depends on their interval (e.g., 60 for one minute, 12 for 5 minutes, 2 for 30 minutes.). A row may actually occupy up to 5 physical lines of printout because a maximum of 12 items is placed on a line. The entire table spans one day.

    If the display interval is greater than or equal to one hour, a day's worth of data are displayed on one row as in Figure "Short-Span Display (Second Type)." Again, the number of items in a row depends on the display interval. In this case the entire table spans a month.

  5. A long-span table always covers one year; the display interval for the individual items in the table is one day as in Figure "Long-Span (Annual) Display." The user can select the month which terminates the display (December in the example) so that the data can be presented on a calendar year, water year or some other basis.
  6. For the purpose of aggregating the data from the interval time step (INDELT) to the display interval, day-value, month-value, or year-value, one of five "transformation codes" can be specified:

    Code Meaning

    SUM Sum of the data

    AVER Average of the data

    MAX Take the max of the values at the smaller time step

    MIN Take the minimum

    LAST Take the last of the values belonging to the shorter

    time step

    SUM is appropriate for displaying data like precipitation and loadings; AVER is useful for displaying data such as temperatures and concentrations.

  7. The module incorporates a feature designed to permit reduction of the quantity of printout produced when doing short-span displays. If the "row-value" ("hour-sum" in Figure "Short-Span Display (First Type)," "day-average" in Figure "Short-Span Display (Second Type)") is less than or equal to a threshold value, printout of the entire row is suppressed. The default threshold is 0.0. Thus, in Figure "Short-Span Display (First Type)" data for hours when no precipitation occurred are not printed.
  8. The user can also specify the following:
    1. The number of decimal digits to use in a display.
    2. A title for the display.
    3. A linear transformation, to be performed on the data when they are at the INDELT time interval (i.e., before module DISPLY performs any aggregation). By default, no transformation is performed.
    WDM 39 Precip. (in/100)
    Summary for DAY  1976/10/4
    Date interval:  5 mins

HOUR	SUM	Interval Number
    1	2	3	4	5	6	7	8	9	10	11	12
3: 	2.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	1.0	0.0	1.0
4:	3.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0	1.0	0.0	0.0
5:	5.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	0.0	2.0	2.0
6:	6.0	1.0	1.0	2.0	1.0	1.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
7:	3.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	0.0	1.0
8:	3.0	0.0	0.0	1.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0
9:	3.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	1.0	0.0
10:	3.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0	1.0
11:	3.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	1.0	0.0
12:	4.0	1.0	1.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0

13:	3.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0
14:	2.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	0.0	0.0	1.0	0.0
15:	4.0	0.0	0.0	1.0	0.0	1.0	0.0	0.0	1.0	0.0	0.0	1.0	0.0
16:	7.0	0.0	0.0	1.0	0.0	1.0	1.0	1.0	1.0	1.0	0.0	1.0	0.0
17:	3.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0
18:	6.0	1.0	0.0	0.0	0.0	0.0	1.0	0.0	1.0	1.0	0.0	1.0	1.0
19:	5.0	1.0	1.0	1.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	0.0
20:	3.0	0.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	1.0	0.0	1.0
21:	1.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0
22:	1.0	0.0	0.0	0.0	0.0	0.0	1.0	0.0	0.0	0.0	0.0	0.0	0.0

DAY   SUM : 7.00000E+01

Short-Span Display (First Type)

    WDM 121 Temperature (Deg. F)
    Summary for MONTH 1976/8/
Data interval:  120 mins
DAY	AVER	Interval Number
    1	2	3	4	5	6	7	8	9	10	11	12
1	67.7	58.0	61.3	55.1	61.3	69.0	75.6	79.8	81.8	77.4	71.4	65.9	61.2
2	67.2	57.5	55.2	54.2	60.8	69.1	76.1	80.7	82.8	77.6	70.4	64.0	58.4
3	66.7	54.1	51.5	50.2	57.8	67.2	75.1	80.4	82.8	78.6	72.8	67.5	62.8
4	72.8	59.3	57.2	56.2	63.5	72.7	80.3	85.4	87.8	84.4	79.6	75.4	71.6
5	73.0	68.8	67.0	66.1	69.8	74.3	78.2	80.7	81.9	78.6	74.1	69.9	66.3
6	68.3	63.6	61.9	61.1	65.4	70.8	75.4	78.4	79.9	74.9	68.2	62.2	56.9
7	65.2	52.8	50.4	49.2	57.0	66.7	74.8	80.3	82.8	77.4	70.1	63.5	57.7
8	66.0	53.2	50.5	49.2	57.2	67.1	75.6	81.1	83.8	78.6	71.4	65.0	59.4
9	71.4	55.1	52.5	51.2	59.9	70.8	79.9	85.9	88.8	85.2	80.2	75.8	71.9
10	76.5	68.9	67.1	66.1	71.2	77.4	82.7	86.2	87.9	84.4	79.6	75.4	71.6
11	75.9	68.8	67.0	66.1	70.9	76.9	81.9	85.3	86.9	83.4	78.6	74.4	70.6
12	75.5	67.8	66.0	65.1	70.4	76.9	82.4	86.2	87.9	83.7	78.1	73.1	68.6
13	70.7	65.2	63.2	62.2	66.2	71.3	75.7	78.6	79.9	77.0	73.2	69.7	66.6
14	68.6	64.2	62.8	62.1	66.0	70.8	74.9	77.6	78.9	74.6	68.8	63.5	58.8
15	63.4	55.3	53.2	52.2	57.9	64.9	71.0	74.9	76.9	72.2	65.9	60.3	55.4
16	63.3	51.6	49.3	48.2	54.8	63.0	70.1	74.7	76.8	73.7	69.4	65.5	62.1
17	71.5	59.5	57.9	57.1	63.8	72.1	79.1	83.7	85.8	82.	76.9	72.2	68.2
18	73.0	65.0	63.1	62.1	67.4	73.9	79.4	83.2	84.9	81.2	76.2	71.8	67.9
19	72.8	64.9	63.1	62.1	67.6	74.5	80.2	84.1	85.9	81.4	75.4	69.9	65.1
20	72.6	61.5	59.2	58.2	65.1	73.6	80.8	85.6	87.8	83.4	77.4	71.9	67.1
21	75.9	63.5	61.2	60.2	67.5	76.7	84.3	89.4	91.8	87.4	81.4	75.9	71.1
22	76.2	67.5	65.2	64.2	69.9	76.9	83.0	86.9	88.9	85.1	79.9	75.2	71.2
23	74.9	68.0	66.1	65.1	70.2	76.4	81.7	85.2	86.9	82.7	77.1	72.1	67.6
24	73.0	64.2	62.2	61.2	66.6	73.5	79.2	83.1	84.9	81.6	77.1	72.9	69.3
25	75.6	66.6	64.9	64.1	69.9	76.9	83.0	86.9	88.9	84.6	78.8	73.5	68.9
26	78.5	65.3	63.2	62.2	69.5	78.7	86.3	91.4	93.8	90.1	84.9	80.2	76.2
27	73.4	73.0	71.1	70.1	72.8	76.2	79.1	81.1	81.9	77.4	71.4	65.9	61.2
28	65.8	57.5	55.2	54.2	60.3	68.0	74.6	78.8	80.8	75.4	68.1	61.5	55.7
29	68.5	51.2	48.5	47.2	57.1	69.4	79.7	86.6	89.8	84.1	76.3	69.3	63.2
30	71.4	58.5	55.7	54.2	62.0	71.7	79.8	85.3	87.8	83.6	77.8	72.5	67.9
31	72.1	64.3	62.2	61.2	66.4	72.9	78.4	82.2	83.9	80.2	75.2	70.8	66.9
MONTH AVER: 7.12071E+01

Short-Span Display (Second Type)

    WDM 121 Temperature (Deg. F)
    Annual data display: Summary for period ending 1976/12

DAY	JAN	FEB	MAR	APR	MAY	JUN	JUL	AUG	SEP	OCT	NOV	DEC
1	27.6	9.4	33.1	49.2	49.4	67.5	67.0	67.7	68.3	68.2	45.7	11.8
2	18.4	17.7	33.3	48.5	45.3	66.3	67.3	67.2	68.9	66.8	42.7	9.1
3	7.0	21.9	29.8	49.3	49.7	65.1	70.5	66.7	72.7	65.9	35.3	13.4
4	13.8	12.6	28.6	48.9	59.7	68.7	73.0	72.8	67.8	58.5	33.0	16.5
5	20.3	15.9	25.0	52.0	57.3	71.0	72.7	73.0	66.1	46.5	36.7	18.0
6	18.0	24.8	25.7	50.8	49.0	71.4	72.8	68.2	71.8	42.4	32.9	4.2
7	0.5	32.5	31.1	47.8	50.6	73.1	76.1	65.2	71.8	43.4	29.1	2.5
8	5.5	36.7	32.7	46.1	55.2	74.0	77.4	66.0	65.4	45.5	34.1	17.7
9	9.9	39.0	35.1	53.6	64.2	72.6	82.0	71.4	63.2	51.5	35.5	23.1
10	16.6	36.5	38.8	54.1	60.9	75.2	84.9	76.5	62.3	56.0	25.2	9.3
11	30.4	44.2	36.4	43.6	58.8	77.2	81.9	75.9	66.3	62.6	20.3	11.3
12	26.7	46.0	32.2	48.7	57.0	78.8	77.7	75.5	68.6	59.9	20.7	11.7
13	27.5	37.1	34.0	54.8	58.5	72.2	80.9	70.7	69.0	59.5	23.9	20.4
14	30.1	41.2	33.2	64.7	63.0	72.2	81.3	68.6	68.0	57.2	27.5	29.7
15	28.5	44.0	27.5	67.6	60.1	69.6	73.8	63.4	59.1	43.5	32.8	28.4
16	13.5	34.6	30.7	71.1	58.2	68.2	68.1	63.3	60.4	39.4	36.7	35.2
17	11.6	33.6	44.1	65.7	56.2	69.8	69.9	71.5	66.9	34.8	46.0	38.9
18	21.5	39.6	55.7	59.2	58.3	65.5	72.7	73.0	62.2	32.9	40.8	36.5
19	20.7	39.6	55.8	48.4	68.3	65.8	78.9	72.8	62.5	40.1	35.5	27.7
20	18.8	34.2	48.1	48.0	71.5	66.7	76.0	72.6	58.9	37.4	29.7	9.7
21	25.5	27.7	35.7	54.9	65.3	67.1	71.8	75.9	61.9	37.8	27.6	17.1
22	25.7	29.0	43.8	50.8	58.8	69.6	78.9	76.2	58.2	35.5	23.1	17.1
23	28.6	36.3	55.2	50.6	59.2	66.5	79.8	74.9	54.4	38.8	28.8	22.3
24	27.2	40.8	55.8	47.0	58.1	71.1	74.3	73.0	51.0	42.1	41.0	23.8
25	22.6	47.5	49.3	43.4	60.1	72.5	71.9	75.6	54.3	36.9	41.7	25.1
26	10.1	44.8	45.5	43.8	62.0	73.9	75.4	78.5	56.1	37.1	28.7	30.5
27	18.1	41.2	47.3	46.3	65.9	74.1	73.8	73.4	53.7	37.3	10.3	22.3
28	22.2	39.2	45.3	48.5	62.5	72.2	73.9	65.8	57.6	40.2	6.3	3.8
29	24.3	34.3	48.1	53.2	64.1	66.7	74.9	68.5	61.7	42.2	4.8	0.3
30	26.6		41.9	54.7	65.4	66.3	75.8	71.4	64.7	45.2	9.7	-1.9
31	23.0		43.2		64.9		68.5	72.1		42.9		-5.6
AVER	20.0	33.9	39.4	52.2	59.3	70.4	75.0	71.2	63.1	46.7	29.5	17.1

AVER of monthly values 4.81461E+01

Long-Span (Annual) Display


Duration Analysis on a Time Series - DURANL

 (Utility Module DURANL)

This module examines the behavior of a time series, computing a variety of statistics relating to its excursions above and below certain specified levels. The quantity of printout produced can be regulated by the user with a print-level flag (PRFG), which has a valid range of values from 1 to 6.

The basic principles are:

  1. The module works on the time series after it has been placed in the INPAD. The data are, thus, at the internal time step of the operation (INDELT). This module operates on a mean-valued input time series. Therefore, if a point-valued time series is routed to it, TSGET will, by default, generate mean values for each time step, and these will be analyzed.
  2. When the value of the time series rises above the user-specified level, a positive excursion commences. When it next falls below the level, this excursion ends. A negative excursion is defined in the reverse way. (Figure "Definition of terms used in duration analysis module").
  3. If the time series has a value less than -10.0**10 this is considered to be an undefined event (e.g., the concentration of a constituent when there is no water). In this case the value is in a special category - it is in neither a positive nor a negative excursion.
  4. The above is true if the specified duration is one time step. In this case, the results produced include a conventional frequency analysis (e.g., flow duration) of the data. However, the user may specify up to 10 durations; each is given as a multiple (N) of the basic time step (INDELT), Then, for an excursion or undefined event to be considered, it has to endure for at least N consecutive intervals; else it is ignored.
  5. The user may specify an analysis season. This is a period (the same in each year) for which the data will be analyzed (e.g., Oct 1 through May 10). Data falling outside the analysis season will not be considered.

 Value   |                                                      Time
(of time |           .---. <====Time Series                   -------->
series or|           |   |
"level") |        .--'   |                                  .------.
   |     |        |      |                          .---.   |      |
   |     |     .--'      |                          |   |   |      '---.
   |     |     |    3+   '--.                       |   '---'  3+      |   3rd
   V  +10|-----|------------|-----------------------|------------------|--------
         |     |            |           3-          |                  |   level
         |  .--'            |                       |                  |
         |  |               |                       |                  '---.
        0|  |               |                       |                      |
         |--'               |         .---.         |                      |
         |                  |         |   |         |                      '----
         |                  |      .--'   |     .---'
         |        2+        '---.2-|  2+  |  2- |              2+
      -10|----------------------|--|------|-----|-------------------------------
         |                      |  |      |     |                      2nd level
         |             1+       '--'      |     |              1+
      -20|--------------------------------|-----|-------------------------------
         |                                |1-.--'                      1st level
         |                                |  |
         |                                '--'
         |

               Legend: 2+ excursion above second level (duration >=1)
                       2- excursion below second level (duration >=1)
                       etc.

Illustration of concepts used in duration analysis module

The analyses performed and the printout produced in DURANL are:

  1. Introductory information - Title, start and end date/time, analysis season.
  2. The next seven sets of tables are all similar in format; each contains data on positive and negative excursions, for each level and duration, and information on undefined event conditions which persisted for each of the specified durations. The value of PRFG required to generate each of these, and the table heading and the data displayed in it are:
    1. PRFG > 0. "Fraction of time spent in excursions at each level with duration greater than or equal the specified durations. The fraction is relative to the total time span." These are the fractions of total considered time that each of the above-defined conditions existed.
    2. PRFG > 1. "Fraction of time spent in excursions at each level with duration greater than or equal the specified durations. The fraction is relative to the time spent in excursions at each level." In the "Positive Excursions" table, this gives, for each specified level, the total time that an excursion of duration N existed, divided by the total time that an excursion of duration 1 existed. A similar definition holds for the numbers in the "Negative Excursions" table.
    3. PRFG > 2. "Time spent in excursions at each level with duration greater than or equal the specified durations." The tables give the total number of time steps for which the various conditions occurred.
    4. PRFG > 3. "Number of excursions at each level with duration greater than or equal the specified durations". These give the total number of events that were found (number of positive and negative excursions for each level and duration, and number of "undefined occurrences" of each duration).
    5. PRFG > 4. "Average duration of excursions at each level given that the duration is greater than or equal the specified durations". These values answer the question: "given that a specified excursion or undefined condition occurred, what was the mean number of time steps that it persisted?"
    6. PRFG > 5. "Standard deviation of duration of excursions at each level given that the duration is greater than or equal the specified durations." These tables are similar to those discussed in (e) above, except that the standard deviation, instead of the mean, is considered.
    7. PRFG > 6. "Fraction of excursions with duration N with respect to the total number of excursions (duration 1) for each level". These tables give the number of excursions at each duration divided by the number of excursions at duration 1 for each level.
  3. Summary information: Total number of time intervals analyzed, total number of time intervals for which values were "undefined", total number of days analyzed, sample size, max, min, mean, standard deviation.

Duration analysis operation no.     1
Analysis of Subb. 4 Outflow (cfs)
Start date: 1972/12/31 24: 0  End date: 1974/12/31 24: 0
Analysis season starts:  2/28 24: 0  Ends: 11/30 24: 0

PERCENT OF TIME TABLES (WITH RESPECT TO THE TOTAL SPAN OF TIME)

POSITIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  1.000      1.000      1.000
  10.00      .7308      .7259      .7235
  20.00      .5128      .5062      .5034
  50.00      .1790      .1674      .1633
  500.0      .2273E-02  .0000E+00  .0000E+00

NEGATIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .0000E+00  .0000E+00  .0000E+00
  10.00      .2692      .2655      .2645
  20.00      .4872      .4813      .4762
  50.00      .8210      .8121      .8030
  500.0      .9977      .9977      .9977

UNDEFINED EVENTS (NO WATER)
                      DURATIONS
                     1         12         24
             .0000E+00  .0000E+00  .0000E+00

PERCENT OF TIME TABLES (WITH RESPECT TO THE TIME SPENT IN EXCURSIONS)

POSITIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  1.000      1.000      1.000
  10.00      1.000      .9933      .9899
  20.00      1.000      .9871      .9817
  50.00      1.000      .9353      .9124
  500.0      1.000      .0000E+00  .0000E+00

NEGATIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .0000E+00  .0000E+00  .0000E+00
  10.00      1.000      .9862      .9828
  20.00      1.000      .9879      .9775
  50.00      1.000      .9892      .9780
  500.0      1.000      1.000      1.000

UNDEFINED EVENTS (NO WATER)
                      DURATIONS
                     1         12         24
             .0000E+00  .0000E+00  .0000E+00

TIME SPENT IN EXCURSIONS

POSITIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .1320E+05  .1320E+05  .1320E+05
  10.00      9647.      9582.      9550.
  20.00      6769.      6682.      6645.
  50.00      2363.      2210.      2156.
  500.0      30.00      .0000E+00  .0000E+00

NEGATIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .0000E+00  .0000E+00  .0000E+00
  10.00      3553.      3504.      3492.
  20.00      6431.      6353.      6286.
  50.00      .1084E+05  .1072E+05  .1060E+05
  500.0      .1317E+05  .1317E+05  .1317E+05
UNDEFINED EVENTS (NO WATER)
                      DURATIONS
                     1         12         24
             .0000E+00  .0000E+00  .0000E+00

STANDARD DEVIATION OF TIME SPENT IN EXCURSIONS

POSITIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .0000E+00  .0000E+00  .0000E+00
  10.00      922.9      2032.      2181.
  20.00      321.6      581.1      602.0
  50.00      71.65      132.1      128.7
  500.0      .7423      .0000E+00  .0000E+00

NEGATIVE EXCURSIONS
                      DURATIONS
                     1         12         24
LEVELS
  .0000E+00  .0000E+00  .0000E+00  .0000E+00
  10.00      107.2      113.8      113.3
  20.00      127.0      140.0      141.4
  50.00      167.6      188.1      191.6
  500.0      1202.      1202.      1202.

UNDEFINED EVENTS (NO WATER)
                      DURATIONS
                     1         12         24
             .0000E+00  .0000E+00  .0000E+00

    SUMMARY
    TOTAL LENGTH OF DEFINED EVENTS:    13200. INTERVALS
    TOTAL LENGTH OF UNDEFINED EVENTS:         0. INTERVALS
    TOTAL LENGTH OF ANALYSIS:   550. DAYS
    SAMPLE SIZE:    13200
    SAMPLE MAXIMUM:  .1307E+05
    SAMPLE MINIMUM:  2.290
    SAMPLE MEAN:  37.80
    SAMPLE STANDARD DEVIATION:  164.0

Sample Duration Analysis Printout

4. Lethality analysis:

The function of this section of the DURANL module is to assess the risk associated with any contaminant concentration time series generated by the HSPF application modules. The methodology links frequency data on instream contaminant levels to toxicity information resulting from both acute and chronic laboratory bioassays. The methodology is based on the Frequency Analysis of Concentration (FRANCO) program developed by Battelle, Pacific Northwest Laboratories as part of their Chemical Migration and Risk Assessment (CRMA) Methodology.

Laboratory toxicity experiments provide the main basis for developing a risk analysis for fish or other aquatic organisms. A common method of summarizing the results of these experiments is to use a lethal concentration where 50% of the fish die (LC50). Usually information for LC50 concentrations at 24, 48, and 96 hours can be derived from laboratory experiments in the form of pairs of lethal concentration and duration values. By connecting these pairs with straight line segments and extending the function in a reasonable manner at each end, a function is defined such that an event defined by a particular concentration level with a particular duration can be classified as exceeding or not exceeding the function, i.e., exceeding an LC50 value. An event exceeds the LC function when the concentration defining the event and the duration of the event results in the pair falling above and to the right of the combined LC50, or global exceedance, curve.

If LCNUM is greater than zero, a global exceedance summary table is printed which gives the fraction of time that a global exceedance curve is exceeded. Up to 5 LC curves can be analyzed at one time. It should be noted that the global exceedance summary eliminates double counting by reporting only those exceedance events with the lowest concentrations that occur in different contaminant peaks.

If LCOUT=1 and LCNUM=0, a lethal event summary is printed to supplement the global exceedance information. The table gives a summary of all lethal events including ending time, lethal curve number, number of intervals in event, and concentration level. Printout is to unit PUNIT, which should be unique to the duration analysis; otherwise, the output from the lethal event summary will be mixed with the printout from application modules.

Sample Lethal Concentration (LC) Function for Global Exceedance Calculation


Generate a Time Series from One or Two Other Time Series - GENER

 (Utility Module GENER)

This module is designed to perform any one of several possible transformations on input time series. The transformation is specified by supplying an option code (OPCODE). If A and B are the input time series and C is the computed time series, then the transformations performed for each possible value of OPCODE are:

      OPCODE                  Action

        1             C= Abs value (A)
        2             C= Square root (A)
        3             C= Truncation (A)
                         e.g., If A=4.2,  C=4.0
                                 A=-3.5, C=-3.0
        4             C= Ceiling (A). The "ceiling" is
                         the integer >= given value.
                         e.g., If A=3.5,  C=4.0
                                 A=-2.0, C=-2.0
        5             C= Floor (A). The "floor" is the
                         integer <= given value.
                         e.g., If A=3.0,  C=3.0
                                 A=-2.7, C=-3.0
        6             C= loge (A)
        7             C= log10 (A)
        8             C= K(1)+K(2)*A+K(3)*A**2 (up to 7 terms)
                         The user supplies the number of
                         terms and the values of the
                         coefficients (K).
        9             C= K**A
       10             C= A**K
       11             C= A+K
       12             C= Sin (A)
       13             C= Cos (A)
       14             C= Tan (A)
       15             C= Sum (A)
       16             C= A+B
       17             C= A-B
       18             C= A*B
       19             C= A/B
       20             C= MAX (A,B)
       21             C= MIN (A,B)
       22             C= A**B
       23             C= cumulative departure of A below B
       24             C= K
       25             C= Max (A,K)
       26             C= Min (A,K)

Note that if OPCODE is less than 15, or OPCODE equals 25 or 26, only one input time series is involved (unary operators); if OPCODE is 24, no inputs are required (constant); otherwise two inputs are required (binary operators). As with the other operating modules, the input time series are first placed in the INPAD by module TSGET (This may involve a change of time step and/or "kind"). Therefore, by the time module GENER works on them, they are mean-valued time series with a time step equal to INDELT.


Multiple Sequential Input of Time Series from an HSPF PLTGEN File - MUTSIN

 (Utility Module MUTSIN)

This utility module reads a sequential external file previously written on disk. This file has the same format as the PLOTFL produced with utility module PLTGEN. The user specifies the number of point and/or mean-valued time series to be read and the number of lines to skip at the beginning of the external file.

The missing data flag, MISSFG, is used to specify how MUTSIN reacts to missing data. A MISSFG value of 0 indicates that MUTSIN is to report an error and quit if any data are missing. Therefore, in this case, the internal time step (DELT) must equal the time step of the external file, the starting time of the run must correspond with the first entry read from the external file, and no entries may be missing. A MISSFG value of 1 indicates that MUTSIN is to fill missing sequential file entries with 0.0. A MISSFG value of 2 indicates that MUTSIN is to fill missing entries with -1.0E30. A MISSFG value of 3 indicates that MUTSIN is to fill missing values with the value of the next available entry.

Note that the date and time appearing in each record of the file must be in the same format as that used by the PLTGEN module to write a PLOTFL. That is, the full year/month/day/hour/minute string must be present and a time, e.g., midnight is coded as 74 01 02 24 00, not 75 01 03 00 00.

The EXT TARGETS and/or NETWORK blocks are used to specify where TSPUT places the time series data read in from the external file.

MUTSIN has four potential uses:

  1. It may be used to form a simple interface with other continuous models. The other model can output its results in the form of an HSPF PLOTFL (or a format conversion program can be used), and MUTSIN can be used to input this data to HSPF. (Conversely, data can be output from HSPF, using the PLTGEN module, for input to the other model.)
  2. MUTSIN may be used to transfer data in a WDM file to another WDM file. This transfer requires the use of PLTGEN to output the data from the source file and MUTSIN to input the data to the target file.
  3. MUTSIN can be used to transfer data between different types of computer hardware where WDM or DSS files are incompatible (e.g., Unix to PC and vice versa).
  4. MUTSIN may also be used to input point valued data or data with a time interval not included in the standard HSPF sequential input formats.


Best Management Practice Evaluation - BMPRAC

 (Utility Module BMPRAC)

This utility module is designed to simulate the effects of Best Management Practices by applying simple "removal" fractions to each constituent being modeled. More complex methods, which could depend on such things as amounts already removed or stored (e.g., sediment trapped in a detention pond) may be added to this module in the future. Very complex detention scenarios may be best modeled explicitly by a RCHRES.

A single instance of the BMPRAC module handles the transfer of all mass loads from any number of PERLNDs and IMPLNDs to a single RCHRES, as long as the same fractions are to be applied for each land use. If expected removal fractions are to vary by land use, then separate BMPRACs are required for each land segment to reach connection.

The general equations for a removal are as follows:

      REMOVE= FRAC * INPUT
      OUTPUT= INPUT - REMOVE

where:
      REMOVE = mass removed
      FRAC   = fraction to remove
      INPUT  = inflow mass
      OUTPUT = outflow mass

Note that the removal fraction (FRAC) is specifed independently for each constituent and may vary monthly.


Summary Report - REPORT

 (Utility Module REPORT)

The REPORT module is designed to produce time series output in a very flexible fashion. The output format may be either a standard table or it may be specified by the user in an optional input format file.

REPORT creates summaries of time series data according to three criteria: constituent, source, and time step. Each input time series is given constituent and source indices as subscripts in the time series blocks. The name and other information for each constituent and source are specified in the REPORT input block. The time series may be aggregated daily, monthly, or yearly, with the time step and transformation function specified as input parameters. Each constituent may have its own transformation function, so that, for instance, loads and concentrations may appear in the same report.

REPORT produces three standard tables. The first is a unit-area, non-point loading table. This table is used for summarizing loadings to a reach from various sources, including land segments, point sources, and atmospheric deposition. Input time series are expected to be passed directly from PERLND/IMPLND with no areal multiplier in the SCHEMATIC block (although conversion factors may still be needed in the MASS-LINK block). In this report, columns are sources. Rows are time steps, plus a summary row. The entire table is repeated for each constituent. Row headers are automatically derived date strings. The page width must be sufficient to fit the entire table. Excerpts from an example follow:

     Land Surface unit loads

  SEDIMENT(TONS)

                       P:Forest/Open  P:Agricultural    ...

  1996                   0.155           0.789          ...

  1997                   0.152           0.395          ...

  1998                   0.162           0.355          ...

  Average                0.156           0.513          ...

The second standard report table is the total/percent loading table. This report is similar to the first standard format, but the expected inputs are total loads from each source. Columns are sources, plus a total column. Excerpts from an example follow:

     Land Surface percent loads

     SEDIMENT(TONS)

                       P:Forest/Open  P:Agricultural    ...         Pct

     1996                  38.901          40.557       ...      100.00

     1997                  46.407          24.660       ...      100.00

     1998                  45.297          20.287       ...      100.00

     Average               43.283          29.058       ...      100.00

The third standard report table is a flux table. This report is used for general tables of fluxes over time, such as water balances. Columns are time steps, plus a summary column. Rows are constituents. The entire table is repeated for each source. Column headers (dates) appear only once per page. Excerpts from an example follow:

  Report test - Flux-summary format - Upper segment

  Forest/Open

                              1986        1987        1988     Average

  SEDIMENT                   0.021       0.002       0.000       0.008

  HEAT                   29072000.    4721800.     674630.   11490000.

  DISS OXYGEN               15.038       4.810       0.609       6.819

  AMMONIA                    0.172       0.042       0.004       0.073

  NITRATE                    0.652       0.156       0.018       0.275

  ORGANIC N                  0.492       0.095       0.014       0.200

  TOTAL N                    1.316       0.292       0.035       0.548

  ORTHOPHOSPHATE             0.015       0.003       0.000       0.006

  ORGANIC P                  0.024       0.005       0.001       0.010

  TOTAL P                    0.039       0.008       0.001       0.016

  TOC                        3.083       0.596       0.085       1.255

  BOD                        4.097       0.793       0.114       1.668

  FECAL COLIFORM         16786000.    2342300.     188420.    6438800.


User-Defined Format Input File

REPORT can read a file containing the desired format, with output fields where input names or results from the run may be placed. All fields are marked by the character '@', usually followed by a case-sensitive keyword, plus up to three 2-character subscripts delimited by colons. The maximum line length read from the input file is 256 characters. The following field types are currently recognized:

  • @TITLE as specified in the REPORT-TITLE table
  • @SRC:nn source name SRCID, as specified in the REPORT-SRC table, where 'nn' is the index number of the source.
  • @CON:nn constituent name CONID, as specified in the REPORT-CON table, where 'nn' is the index number of the constituent.
  • @TRAN:nn transformation string TRAN (the transformation used to aggregate data in time), as specified in the REPORT-CON table, where 'nn' is the index number of the constituent.
  • @TIM:nn time label constructed for the 'nn'-th time step, counting from the start of the run. If the run begins or ends in the middle of a print interval (PCODE) time step, then the partial time step is accounted for as if it were complete.
  • @SSUM:nn source summary header SRCHED, as specified in the REPORT-SUMM table, where 'nn' is the number of the characters to write.
  • @TSUM:nn time step summary header TIMHED, as specified in the REPORT-SUMM table, where 'nn' is the number of the characters to write.
  • @cc:ss:tt Accumulator value fields, where 'cc', 'ss' and 'tt' are replaced respectively by the constituent index, the source index, and the time step count since the beginning of the run. The maximum number of time steps is currently 32. If the run extends beyond this span, then subsequent results are ignored. If 'tt' is zero, then the time step aggregation transformation TIMTRN (SUM, AVER, MAX, MIN, LAST) is applied to determine an summary over all of the time steps.

If 'ss' is zero, then the source aggregation transformation SRCTRN (SUM, AVER, MAX, MIN, LAST, PCT) is applied to determine a summary of the accumulated values of all sources. If both are zero, then STTRFG specifies in which order to apply the transformations to get the overall summary for the constituent.

If SRCTRN is PCT, then all values are converted to percentages of the total of all sources for that constituent (by time step or over all time steps) before being written. For example, if PCODE is 5, TRAN is SUM, TIMTRN is AVER, SRCTRN is MAX, then:

  • the accumulator values are annual totals for each constituent for each source
  • the time summaries for each constituent are the average of the annual totals for each source
  • the source summaries for each constituent are the maximum of the annual totals for each time step
  • If STTRFG=1, the overall summary for each constituent is the maximum of the average annual totals for each source
  • If STTRFG=2, the overall summary is the average of the maximum annual totals for each time step.


Looping

There is a special marker @LOOP which enables the user to create implied loops, so that the number of constituents, sources, and time steps need not be known when the format is written. It must appear alone as the first line of the file.

Each column, row, or entire table (i.e., the entire contents of the file) may be repeated by associating the structure with a single loop index (constituent, source, or time step) on the @LOOP line. Once this association is made, then anytime a subscript for that index is replaced by '**', then that structure is repeated appropriately.

For example, the @LOOP line may look like one of these:

@LOOP TAB=CON ROW=TIM COL=SRC

This says that the entire contents of the file are repeated for each constituent, with one row per time step and one column per source. This is the loop structure for FORMFG=1 or 2.

@LOOP TAB=SRC ROW=CON COL=TIM

This says that the table is repeated for each source, with one row per constituent and one column per time step. This is the loop structure for FORMFG=3.

@LOOP ROW=TIM

The last says that each row is repeated for each time step. In this case, no other loops may be performed, so the number of columns is fixed in the format file, and if multiple tables are desired, then they all must appear in the format file in the desired order.

Here are the looped structures which are declared in the HSPF Message WDM file for the "canned" formats:

  FORMFG=1

       @LOOP COL=SRC ROW=TIM TAB=CON

       @TITLE

       @CON:**

                   @SRC:**

       @TIM:**     @**:**:**

       @TSUM:12    @**:**:00

  FORMFG=2

       @LOOP COL=SRC ROW=TIM TAB=CON

       @TITLE

       @CON:**

                                            @SRC:**     @SSUM:12

       @TIM:**     @**:**:**   @**:00:**

       @TSUM:12    @**:**:00   @**:00:00

  FORMFG= 3

       @LOOP COL=TIM ROW=CON TAB=SRC

       @TITLE

       @SRC:**

                              @TIM:**     @TSUM:12

       @CON:**     @**:**:**   @**:**:00


Special Format for transfer to external database or spreadsheet

If FORMFG is set to 0, then the output report presents the data in normalized fashion - each record contains source, constituent, date, and data value. An excerpt from an example is as follows:

  INPT TO 880<tab>SEDIMENT(TONS)<tab>1986<tab>6.

  INPT TO 880<tab>SEDIMENT(TONS)<tab>1987<tab>19.

  INPT TO 880<tab>SEDIMENT(TONS)<tab>1988<tab>6.

The contents of this report may be tab or comma-delimited. This report is quite appropriate to use if further analysis of HSPF output is to be made with an external spreadsheet or database program.


Module TSPUT

Module TSPUT is complementary to, and may be viewed as a mirror image of, module TSGET. TSGET obtains time series from a WDM file, DSS, sequential file, or the INPAD and places its output in the INPAD. Conversely, TSPUT obtains a time series from the INPAD and places its output in the WDM file, DSS, or back in the INPAD. It has similar capabilities to TSGET, to alter the time step, "kind" or to perform a linear transformation on the time series with which it deals.

Compared to TSGET, module TSPUT contains one complicating factor. When a time series is to be written to a WDM or DSS data set, the action taken depends on how any pre-existing data are to be treated. The possible access modes, ADD and REPL, are discussed in Time Series Linkages.


References

American Society for Testing and Materials. 1980. Annual Book of ASTM Standards: Part 31, Water, Philadelphia, PA.

Anderson, E.A. 1968. Development and Testing of Snow Pack Energy Balance Equations, Water Resources Research, 4(1):19-37.

Anderson, E.A., and N.H. Crawford. 1964. The Synthesis of Continuous Snowmelt Runoff Hydrographs on a Digital Computer, Department of Civil Engineering, Stanford University, Stanford, California, Technical Report No. 36, 103 p.

AQUA TERRA Consultants. 2000. Data Structures for HSPF Version 12, Mountain View, CA.

Beschta, R.L. and J. Weatherred. 1984. TEMP-84: A computer model for Predicting Stream Temperatures Resulting from the Management of Streamside Vegetation. WSDG Report WSDG-AD-00009, 76 pp, USDA Forest Services, Fort Collins, CO.

Caupp, C.L., J.T. Brock, and H.M. Runke. 1994. Model formulation and program description of the Dynamic Stream Simulation and Assessment Model (DSSAMt): Application to the Truckee River, Nevada for Truckee River Operating Agreement (TROA) DEIS/DEIR. Technical Report No. RCR94-1. Submitted to the U.S. Bureau of Reclamation, Carson City, NV, Rapid Creek Research, Inc., Boise, Idaho.

Chen, Y.D. 1996. Hydrologic and Water Quality Modeling for Aquatic Ecosystem Protection and Restoration in Forest Watersheds: A Case Study of Stream Temperature in the Upper Grande Ronde River, Oregon. PhD dissertation, University of Georgia, Athens, GA.

Chen, Y.D., R.F. Carsel, S.C. McCutcheon, W.L. Nutter. 1998. Stream temperature simulation of forested riparian areas: I. Watershed-scale model development. Journal of Environmental Engineering New York. 124:4, 304-315.

Chou, T.-W. 1980. Aquatic Biodegradation, Chapter 6 in Mill et al., 1980.

Churchill, M.A., H.L. Elmore, and R.A. Buckingham. 1962. The Prediction of Stream Reaeration Rates. Amer. Soc. Civil Engineers Journ. 88(SA4), p. 1-46.

Committee on Sanitary Engineering Research. 1960. Solubility of Atmospheric Oxygen in Water. Twenty-ninth Progress Report. ASCE, Journal of the Sanitation Engineering Div., 86(SA4):41.

Covar, A.P. 1976. Selecting the Proper Reaeration Coefficient for Use in Water Quality Models, Proceedings of the Conference on Environmental Modeling and Simulation, Cincinnati, OH, EPA 600/9-76-016, 861p.

Crawford, N.H., and A.S. Donigian, Jr. 1973. Pesticide Transport and Runoff Model for Agricultural Lands. Office of Research and Development, U.S. Environmental Protection Agency, Washington, DC. EPA 660/2-74-013. 211p.

Crawford, H.H. and R.K. Linsley. 1966. Digital Simulation in Hydrology: Stanford Watershed Model IV, Technical Report No. 39, Dept. of Civil Engineering, Stanford University, Stanford, CA, 210p.

Di Toro, D.M., D.T. O'Connor, and R.V. Thomann. 1970. A Dynamic Model of Phytoplankton Populations in Natural Waters, Environmental Engineering and Science Program, Manhattan College, New York.

Donigian, A.S., Jr., and N.H. Crawford. 1976a. Modeling Pesticides and Nutrients on Agricultural Lands, Environmental Research Laboratory, Athens, GA, EPA 600/2-7-76-043, 317 p.

Donigian, A.S., Jr., and N.H. Crawford. 1976b. Modeling Nonpoint Pollution From the Land Surface, Environmental Research Laboratory, Athens, GA, EPA 600/3-76-083, 280p.

Donigian, A.S, Jr., D.C. Beyerlein, H.H. Davis, Jr., and N.H. Crawford. 1977. Agricultural Runoff Management (ARM) Model Version II: Refinement and Testing, Environmental Research Laboratory, Athens, GA, EPA 600/3-77-098, 294p.

Dugdale, R.C., and J.J. Macisaac. 1971. A Computational Model for the Uptake of Nitrate in the Peru Upwelling. Prepublication Copy.

Falco, J.W., K.T. Sampson, and R.F. Carsel. 1976. Physical Modeling of Pesticide Degradation. Proceedings of Symposium on Model Ecosystem Approach to Biodegradation Studies, Society for Industrial Microbiology, pp. 193-202.

Franz, D.D., and C.S. Melching. 1997. Full Equations (FEQ) model for the solution of the full, dynamic equations of motion for one-dimensional unsteady flow in open channels and through control structures: U.S. Geological Survey Water-Resources Investigations Report 96-4240, 258p.

Harnard, H.S. and R. Davis. 1943. The Ionization Constant of Carbonic Acid in Water and the Solubility of CO2 in Water and Aqueous Salt Solution from 0 to 50 C, Journal of the American Chemical Society, 65:2030.

Hydrocomp, Inc. 1977. Hydrocomp Water Quality Operations Manual, Palo Alto, CA.

Hydrocomp, Inc. 1976. Hydrocomp Simulation Programming: Operations Manual, Palo Alto, CA, 2nd ed.

Hydrocomp, Inc. and AQUA TERRA Consultants. 1996. Modifications to HSPF for High Water Table and Wetlands Conditions in South Florida: Conceptual Analysis, Preliminary Design and Implementation, and Initial Testing. Report to South Florida Water Management District, West Palm Beach, FL, 102p.

Jobson, H.E. 1977. Bed Conduction Computation for Thermal Models, J. Hydraulics Div., ASCE, 103(HY10), 1213-1217.

Jobson, H.E. and T.N. Keefer. 1979. Modeling Highly Transient Flow, Mass, and Heat Transport in the Chattahoochee River near Atlanta, Georgia. U.S. Geological Survey Professional Paper No. 1136.

Krone, R.B. 1962. Flume Studies of the Transport of Sediment in Estuarial Shoaling Processes. Hydraulic Engineering Laboratory and Sanitary Engineering Research Laboratory, University of California, Berkeley, CA.

Loehr, R.C., T.B.S. Prakasam, E.G. Srinath, and Y.D. Joo. 1973. Development and Demonstration of Nutrient Removal from Animal Wastes, U.S. Environmental Protection Agency, Washington, D.C. EPA R2-73-095.

Mabey, W.R., T. Mill, and D.G. Hendry. 1980. Photolysis in Water, Chapter 3 in Mill et al., 1980.

Meyer, L.D., and W.H. Wischmeier. 1969. Mathematical Simulation of the Process of Soil Erosion by Water. Trans. Am. Soc. Agric. Eng. 12(6):754-758,762.

Mill, T., W.R. Mabey, D.C. Bomberger, T.-W. Chou, D.G. Hendry, and J.H. Smith. 1980. Laboratory Protocols for Evaluating the Fate of Organic Chemicals in Air and Water. SRI International, Menlo Park, CA, Environmental Research Laboratory, Athens, GA.

Negev, M. 1967. A Sediment Model on a Digital Computer, Department of Civil Engineering, Stanford University, Stanford, CA, Technical Report No. 76, 109p.

O'Connor, D.J., and D.M. Di Toro. 1970. Photosynthesis and Oxygen Balance in Streams. ASCE, Journal of Sanitation Engineering Div., 96(SA2):7240.

O'Connor, D.J., and W.E. Dobbins. 1958. Mechanism of Reaeration in Natural Streams. Trans. of the ASCE, Vol. 123, p. 641-684.

Onishi, Y. and S.E. Wise. 1979. Mathematical Model, SERATRA, for Sediment-Contaminant Transport in Rivers and its Application to Pesticide Transport in Four Mile and Wolf Creeks in Iowa. Battelle, Pacific Northwest Laboratories, Richland, WA.

Onstad, C.A., and G.R. Foster. 1975. Erosion Modeling on a Watershed, Trans. of ASAE, 18(2):288-292.

Owens, M., R.W. Edwards, and J.W. Gibbs. 1964. Some Reaearation Studies in Streams, Intl. Journal of Air and Water Pollution, Vol. 8, p. 469-486.

Partheniades, E. 1962. A Study of Erosion and Deposition of Cohesive Soils in Salt Water, Ph.D. Thesis, University of California, Berkeley, CA.

Philips, J.R. 1957. The Theory of Infiltration: The Infiltration Equation and Its Solution, Soil Science, 83:345-375.

Rango, A. and J. Martinec. 1995. Revisiting the Degree-day Method for Snowmelt Computations, Water Resources Bulletin, Vol. 31, No. 4, 657-669.

Reddy, K.R, R. Khaleel, M.R. Overcash, and P.W. Westerman. 1979. A Nonpoint Source Model for Land Areas Receiving Animal Wastes: II. Ammonia Volatilization, Trans. of ASAE, 22(6):1398-1405.

Richman, S. 1958. The Transformation of Energy by Daphnia pulex. Ecolog. Monogr. Vol. 28, p. 273-291.

Ross, M., J. Geurink, A. Aly, P. Tara, K. Trout, and T. Jobes. 2004. Integrated Hydrologic Model (IHM), Volume I: Theory Manual, Tampa Bay Water, Clearwater, FL

Schindler, D.W. 1968. Feeding, Assimilation and Respiration Rates of Daphnia magna Under Various Environmental Conditions and their Relation to Production Estimates, Journal of Animal Ecology, Vol. 37, p. 369-385.

Shaffer, M.J., A.D. Halvorson, and F.J. Pierce. 1991. Nitrate Leaching and Economic Analysis Package (NLEAP): Model Description and Application. In: Managing Nitrogen for Groundwater Quality and Farm Profitability. R.F. Follett, D.R. Keeney, and R.M. Cruse (eds.). Soil Science Society of America, Inc.

Smajstrla, A.G. 1990. Technical Manual: Agricultural Field Scale Irrigation Requirements Simulation (AFSIRS) Model, Version 5.5. Agricultural Engineering Dept., University of Florida, Gainesville, FL, 202p.

Smith, J.H., and D.C. Bomberger. 1980. Volatilization from Water, Chapter 7 in Mill et al., 1980.

Smith, J.H., W.R. Mabey, N. Bohonos, B.R. Holt, S.S. Lee, T.-W. Chou, D.C. Bomberger, and T. Mill. 1977. Environmental Pathways of Selected Chemicals in Freshwater Systems, Part I: Background and Experimental Procedures. Environmental Research Laboratory, Athens, GA, EPA 600/7-77-113.

Thomann, R.V. 1972. Systems Analysis and Water Quality Management. McGraw-Hill, Inc., New York, 286p.

Tsivoglou, E.C., and J.R. Wallace. 1972. Characterization of Stream Reaeration Capacity, U.S. Environmental Protection Agency, EPA R3-72-012.

U.S. Army Corps of Engineers. 1956. Snow Hydrology, Summary Report of the Snow Investigations, North Pacific Division. Portland, OR, 437p.

U.S. Environmental Protection Agency. 1975. Process Design Manual for Nitrogen Control, Office of Technology Transfer, Washington D.C.

Vanomi, V.A., Editor. 1975. Sedimentation Engineering. Prepared by the ASCE Task Committee for the Preparation of the Manual on Sedimentation of the Sedimentation Committee of the Hydraulics Division, New York.

Vignola, F. and D.K. McDaniels. 1984. Diffuse-Global Correlation: Seasonal Variations, Solar Energy, 33(5), 397-402.

Wezerak, C.G., and J.J. Gannon. 1968. Evaluation of Nitrification in Streams. ASCE, Journal of the Sanitation Engineering Div., 94(SA5):6159.

Wischmeier, W.H., and D.D. Smith. 1965. Predicting Rainfall Erosion Losses from Cropland East of the Rocky Mountains. U.S. Department of Agriculture, Agricultural Handbook No. 282. 47p.

Zepp, R.G. and D.M. Cline. 1977. Rates of Direct Photolysis in Aquatic Environments, Environmental Science and Technology, 11:359-366.


Users Control Input
  • GENERAL INFORMATION
    • The User's Control Input
    • General Comments on Documentation
  • FORMAT OF THE USERS CONTROL INPUT
    • GLOBAL Block
    • FILES Block
    • OPN SEQUENCE Block
      • Optimization of Operation Sequencing
    • Operation-type Block
    • PERLND Block
      • General input
        • ACTIVITY
        • PRINT-INFO
        • BINARY-INFO
        • GEN-INFO
      • ATEMP input
        • ATEMP-DAT
      • SNOW input
        • ICE-FLAG
        • SNOW-FLAGS
        • SNOW-PARM1
        • SNOW-PARM2
        • MON-MELT-FAC
        • SNOW-INIT1
        • SNOW-INIT2
      • PWATER input
        • PWAT-PARM1
        • PWAT-PARM2
        • PWAT-PARM3
        • PWAT-PARM4
        • PWAT-PARM5
        • PWAT-PARM6
        • PWAT-PARM7
        • MON-INTERCEP
        • MON-UZSN
        • MON-MANNING
        • MON-INTERFLW
        • MON-IRC
        • MON-LZETPARM
        • PWAT-STATE1
        • IRRIG-PARM1
        • IRRIG-PARM2
        • CROP-DATES
        • CROP-STAGES
        • CROP-SEASPM
        • SOIL-DATA
        • SOIL-DATA2
        • SOIL-DATA3
        • MON-IRR-CRDP
        • MON-IRR-AWD
        • IRRIG-SCHED
        • IRRIG-SOURCE
        • IRRIG-TARGET
      • SEDMNT input
        • SED-PARM1
        • SED-PARM2
        • SED-PARM3
        • MON-COVER
        • MON-NVSI
        • SED-STOR
      • PSTEMP input
        • PSTEMP-PARM1
        • PSTEMP-PARM2
        • MON-ASLT
        • MON-BSLT
        • MON-ULTP1
        • MON-ULTP2
        • MON-LGTP1
        • MON-LGTP2
        • PSTEMP-TEMPS
      • PWTGAS input
        • PWT-PARM1
        • PWT-PARM2
        • LAT-FACTOR
        • MON-IFWDOX
        • MON-IFWCO2
        • MON-GRNDDOX
        • MON-GRNDCO2
        • PWT-TEMPS
        • PWT-GASES
      • PQUAL input
        • NQUALS
        • PQL-AD-FLAGS
        • QUAL-PROPS
        • QUAL-INPUT
        • MON-POTFW
        • MON-POTFS
        • MON-ACCUM
        • MON-SQOLIM
        • MON-IFLW-CONC
        • MON-GRND-CONC
      • MSTLAY input
        • VUZFG
        • UZSN-LZSN
        • MST-PARM
        • MST-TOPSTOR
        • MST-TOPFLX
        • MST-SUBSTOR
        • MST-SUBFLX
      • PEST input
        • PEST-FLAGS
        • PEST-AD-FLAGS
        • PEST-ID
        • PEST-THETA
        • PEST-FIRSTPM
        • PEST-CMAX
        • PEST-SVALPM
        • PEST-NONSVPM
        • PEST-DEGRAD
        • PEST-STOR1
        • PEST-STOR2
      • NITR input
        • NIT-FLAGS
        • NIT-AD-FLAGS
        • NIT-FSTGEN
        • NIT-FSTPM
        • NIT-ORGPM
        • NIT-AMVOLAT
        • NIT-CMAX
        • NIT-SVALPM
        • NIT-UPTAKE
        • MON-NITUPT
        • NIT-YIELD
        • MON-NUPT-FR1
        • MON-NUPT-FR2
        • NIT-UPIMCSAT
        • NIT-UPIMKMAX
        • MON-NITUPNI
        • MON-NITUPAM
        • MON-NITIMNI
        • MON-NITIMAM
        • NIT-BGPLRET
        • MON-NPRETBG
        • MON-NPRETFBG
        • NIT-AGUTF
        • MON-NITAGUTF
        • NIT-AGPLRET
        • MON-NPRETAG
        • MON-NPRETLI
        • MON-NPRETFLI
        • NIT-STOR1
        • NIT-STOR2
      • PHOS input
        • PHOS-FLAGS
        • PHOS-AD-FLAGS
        • PHOS-FSTGEN
        • PHOS-FSTPM
        • PHOS-CMAX
        • PHOS-SVALPM
        • PHOS-UPTAKE
        • MON-PHOSUPT
        • PHOS-YIELD
        • MON-PUPT-FR1
        • MON-PUPT-FR2
        • PHOS-STOR1
        • PHOS-STOR2
      • TRACER input
        • TRAC-ID
        • TRAC-AD-FLAGS
        • TRAC-TOPSTOR
        • TRAC-SUBSTOR
    • IMPLND Block
      • General input
        • ACTIVITY
        • PRINT-INFO
        • BINARY-INFO
        • GEN-INFO
      • ATEMP input
      • SNOW input
      • IWATER input
        • IWAT-PARM1
        • IWAT-PARM2
        • IWAT-PARM3
        • MON-RETN
        • MON-MANNING
        • IWAT-STATE1
      • SOLIDS input
        • SLD-PARM1
        • SLD-PARM2
        • MON-SACCUM
        • MON-REMOV
        • SLD-STOR
      • IWTGAS input
        • IWT-PARM1
        • IWT-PARM2
        • LAT-FACTOR
        • MON-AWTF
        • MON-BWTF
        • IWT-INIT
      • IQUAL input
        • NQUALS
        • IQL-AD-FLAGS
        • QUAL-PROPS
        • QUAL-INPUT
        • MON-POTFW
        • MON-ACCUM
        • MON-SQOLIM
    • RCHRES Block
      • General input
        • ACTIVITY
        • PRINT-INFO
        • BINARY-INFO
        • GEN-INFO
      • HYDR input
        • HYDR-PARM1
        • HYDR-PARM2
        • MON-CONVF
        • HYDR-IRRIG
        • HYDR-INIT
        • HYDR-CATEGORY
        • HYDR-CINIT
        • HYDR-CPREC
        • HYDR-CEVAP
        • HYDR-CFVOL
        • HYDR-CDEMAND
      • ADCALC input
        • ADCALC-DATA
      • CONS input
        • NCONS
        • CONS-AD-FLAGS
        • CONS-DATA
      • HTRCH input
        • HT-BED-FLAGS
        • HEAT-PARM
        • HT-BED-PARM
        • MON-HT-TGRND
        • HT-BED-DELH
        • HT-BED-DELTT
        • HEAT-INIT
        • SHADE-PARM
      • SEDTRN input
        • SANDFG
        • SED-GENPARM
        • SED-HYDPARM
        • SAND-PM
        • SILT-CLAY-PM
        • SSED-INIT
        • BED-INIT
      • GQUAL input
        • GQ-GENDATA
        • GQ-AD-FLAGS
        • GQ-QALDATA
        • GQ-QALFG
        • GQ-FLG2
        • GQ-HYDPM
        • GQ-ROXPM
        • GQ-PHOTPM
        • GQ-CFGAS
        • GQ-BIOPM
        • MON-BIO
        • GQ-GENDECAY
        • GQ-SEDDECAY
        • GQ-KD
        • GQ-ADRATE
        • GQ-ADTHETA
        • GQ-SEDCONC
        • GQ-VALUES
        • MON-WATEMP
        • MON-PHVAL
        • MON-ROXYGEN
        • GQ-ALPHA
        • GQ-GAMMA
        • GQ-DELTA
        • GQ-CLDFACT
        • MON-CLOUD
        • MON-SEDCONC
        • MON-PHYTO
        • GQ-DAUGHTER
      • Input for RQUAL sections
        • BENTH-FLAG
        • SCOUR-PARMS
        • OXRX input
          • OX-FLAGS
          • OX-GENPARM
          • ELEV
          • OX-BENPARM
          • OX-CFOREA
          • OX-TSIVOGLOU
          • OX-LEN-DELTH
          • OX-TCGINV
          • OX-REAPARM
          • OX-INIT
        • NUTRX input
          • NUT-FLAGS
          • NUT-AD-FLAGS
          • CONV-VAL1
          • NUT-BENPARM
          • NUT-NITDENIT
          • NUT-NH3VOLAT
          • NUT-BEDCONC
          • NUT-ADSPARM
          • NUT-DINIT
          • NUT-ADSINIT
        • PLANK input
          • PLNK-FLAGS
          • BENAL-FLAGS
          • PLNK-AD-FLAGS
          • SURF-EXPOSED
          • PLNK-PARM1
          • PLNK-PARM2
          • PLNK-PARM3
          • PLNK-PARM4
          • PHYTO-PARM
          • ZOO-PARM1
          • ZOO-PARM2
          • BENAL-PARM
          • BENAL-GROW
          • BENAL-RESSCR
          • BENAL-GRAZE
          • BENAL-LIGHT
          • BENAL-RIFF1
          • BENAL-RIFF2
          • MON-BINV
          • PLNK-INIT
          • BENAL-INIT
        • PHCARB input
          • PH-PARM1
          • PH-PARM2
          • PH-INIT
    • COPY Block
      • TIMESERIES
    • PLTGEN Block
      • PLOTINFO
      • GEN-LABELS
      • SCALING
      • CURV-DATA
    • DISPLY Block
      • DISPLY-INFO1
      • DISPLY-INFO2
    • DURANL Block
      • GEN-DURDATA
      • SEASON
      • DURATIONS
      • LEVELS
      • LCONC
    • GENER Block
      • OPCODE
      • NTERMS
      • COEFFS
      • PARM
    • MUTSIN Block
      • MUTSINFO
    • BMPRAC Block
      • PRINT-INFO
      • GEN-INFO
      • FLOW-FLAG
      • FLOW-FRAC
      • CONS-FLAG
      • CONS-FRAC
      • HEAT-FLAG
      • HEAT-FRAC
      • SED-FLAG
      • SED-FRAC
      • GQ-FLAG
      • GQ-FRAC
      • OXY-FLAG
      • OXY-FRAC
      • NUT-FLAG
      • DNUT-FRAC
      • ADSNUT-FRAC
      • PLANK-FLAG
      • PLANK-FRAC
      • PH-FLAG
      • PH-FRAC
    • REPORT Block
      • REPORT-FLAGS
      • REPORT-TITLE
      • REPORT-SRC
      • REPORT-CON
      • REPORT-SUMM
    • FTABLES Block
    • FTABLES for PERLND
      • FTABLE for PWATER section
    • FTABLES for RCHRES
      • FTABLE for HYDR section
    • TIME SERIES LINKAGES
      • General Discussion
        • WDM File Concepts
        • DSS File Concepts
      • EXT SOURCES Block
      • NETWORK Block
      • SCHEMATIC and MASS-LINK Blocks
        • SCHEMATIC Block
        • MASS-LINK Block
      • EXT TARGETS Block
      • PATHNAMES Block
      • Time Series Transform Functions
      • Warning
    • Time Series Catalog
      • Connection of Surface and Instream
      • Connection of Two Land Segment Modules
      • Atmospheric Deposition of Water
    • Catalog for PERLND module
      • Group EXTNL
      • Group ATEMP
      • Group SNOW
      • Group PWATER
      • Group SEDMNT
      • Group PSTEMP
      • Group PWTGAS
      • Group PQUAL
      • Group MSTLAY
      • Group PEST
      • Group NITR
      • Group PHOS
      • Group TRACER
    • Catalog for IMPLND module
      • Group EXTNL
      • Group ATEMP
      • Group SNOW
      • Group IWATER
      • Group SOLIDS
      • Group IWTGAS
      • Group IQUAL
    • Catalog for RCHRES module
      • Group EXTNL
      • Group HYDR
      • Group ADCALC
      • Group CONS
      • Group HTRCH
      • Group SEDTRN
      • Group GQUAL
      • RQUAL Groups
        • Group OXRX
        • Group NUTRX
        • Group PLANK
        • Group PHCARB
      • Groups INFLOW, ROFLOW, and OFLOW
        • GROUP INFLOW
        • Group ROFLOW
        • Group OFLOW
    • Catalog for COPY module
      • Group INPUT
      • Group OUTPUT
    • Catalog for PLTGEN module
      • Group INPUT
    • Catalog for DISPLY module
      • Group INPUT
    • Catalog for DURANL module
      • Group INPUT
    • Catalog for GENER module
      • Group INPUT
      • Group OUTPUT
    • Catalog for MUTSIN module
      • Group OUTPUT
    • Catalog for BMPRAC module
      • Group INFLOW
      • Group RECEIV
      • Group ROFLOW
      • Group REMOVE
    • Catalog for REPORT module
      • Group INPUT
    • FORMATS Block
    • Sequential and PLTGEN_MUTSIN Formats
      • Format class HYDFIV - Sequential
      • Format class HYDFIF - Sequential
      • Format class HYDHR - Sequential
      • Format class HYDDAY - Sequential
      • Format class HYDSMN - Sequential
      • Format class HYDMON - Sequential
      • PLTGEN_MUTSIN File Format
      • SHADE Function Input File Formats
    • SPEC-ACTIONS Block
    • MONTH-DATA Block
    • CATEGORY Block


General Information and Conventions

Keywords:


The User's Control Input

The User's Control Input (UCI) consists of text lines limited to 80 characters. A general feature of the UCI is that the lines are collected into groups. Groups may contain subordinate groups; that is, they may be nested. In every case, a group commences with a heading (such as RUN) and ends with a delimiter (such as END RUN).

The HSPF system ignores any line in the UCI which contains three or more consecutive asterisks (***), just as a computer language compiler bypasses comments in a source program. Blank lines are also ignored. This feature can be used to insert headings and comments which make the text more intelligible to the reader, but are not required or read by the HSPF system itself.

The body of the User's Control Input consists of one or more major groups of text, called RUN input sets. A RUN input set contains all the input needed to perform a single RUN. A RUN is a set of operations with a common START date-time and END date-time.


General Comments on Method of Documentation

The documentation of each portion of the UCI is divided into three sections: Layout, Details, and Explanation.

The Layout section shows how the input is arranged. Text always appearing in the same form (e.g., RUN) is shown in upper case. Text which varies from job to job is shown by lower case symbols enclosed in angle brackets (<spa>). Lines containing illustrative text, not actually required by the system, have three consecutive asterisks, just as they might have in the UCI. Optional material, or that which is not always required, is enclosed in brackets []. The column numbers printed at the head of each Layout show the starting location of each keyword and symbol.

The Details section describes the input values required for each symbol appearing in the Layout. The Fortran identifiers used to store the value(s) in the code are given, followed by the format. The field(s) specified in this format start in the column containing the < which immediately precedes the symbol in the layout. For example, < range >, which consists of the starting and ending operations that the current line applies to, starts in column 1 and ends in column 10. Where relevant, the Details section also indicates default values and minimum and maximum values for each item in the UCI.

The Explanation section contains any necessary explanatory material which could not fit into the Details section, including definitions of each field.


Format of the Users Control Input

Summary

The User's Control Input starts with a RUN heading and ends with an END RUN delimiter. The body of the text consists of several groups, called "blocks," which may appear in any sequence:

RUN

GLOBAL Block

Contains information of a global nature. It applies to every operation in the RUN.

FILES Block

Specifies disk files to be used by the run and their file unit numbers.

OPN SEQUENCE Block

Specifies the operations to be performed in the RUN, in the sequence they will be executed. It indicates any grouping (INGROUPs).

<Operation-type> Block

Deals with data pertaining to all the operations of the same <Operation-type>, for example, parameters and initial conditions for all Pervious Land-segments in a RUN. It is not concerned with relationships between operations, or with external sources or targets for time series. There is one <Operation-type> Block for each <operation-type> involved in the RUN.

[FTABLES Block]

A collection of function tables (FTABLES). A function table is used to document, in discrete numerical form, a functional relationship between two or more variables. FTABLES are used to specify the depth-volume-discharge relationship for RCHRES operations, or in some cases to specify the surface runoff from a wetland PERLND.

[EXT SOURCES Block]

Specifies time series which are input to the operations from external sources (WDM file, DSS file, or sequential (SEQ) files).

[NETWORK Block]

Specifies any time series which are passed between operations.

[EXT TARGETS Block]

Specifies those time series which are output from operations to external destinations (WDM or DSS file).

[SCHEMATIC Block]

Specifies structure of watershed, i.e., connections of land segments and stream reaches to each other. Operates in tandem with MASS-LINK block to simplify definition of complex watersheds.

[MASS-LINK Block]

Specifies groups of time series to combine with network connections defined in the SCHEMATIC block in order to specify mass flows in the watershed.

[MONTH-DATA Block]

Specifies monthly values of atmospheric deposition fluxes and concentrations (in rain) for water quality constituents.

[CATEGORY Block]

Specifies the number of water categories to be simulated in the streams and reservoirs represented by RCHRES operations.

[PATHNAMES Block]

Associates DSS pathnames with dataset ID numbers for all DSS data sets in the EXT SOURCES and EXT TARGETS blocks.

[FORMATS Block]

Contains any user-supplied formats which may be required to read time series on external sequential (SEQ) data files.

[SPEC-ACTIONS Block]

Specifies operation, variable location, type or name, date/time and action code in order to change a variable's value during a run.

END RUN

Usually, a User's Control Input will not include all of the above blocks. Their presence will be dictated by the operations performed in the RUN and the options which are selected.


GLOBAL Block

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<run-info>     RUNINF(20)     A78     none    none    none
<s-date-time>  SYR,           I8,     none    1       32767
               SMO,           1X,I2,  1       1       12
               SDA,           1X,I2,  1       1       varies
               SHR,           1X,I2,  0       0       23
               SMI            1X,I2   0       0       59
<e-date-time>  EYR,           I8,     none    1       32767
               EMO,           1X,I2,  12      1       12
               EDA,           1X,I2,  varies  1       varies
               EHR,           1X,I2,  #24     0       24  #only if EMI is 0
               EMI            1X,I2   0       0       59
<lev>          OUTLEV         I5      0       0       10
<spa>          SPOUT          I5      2       0       10
<res>          RESMFG         I5      0       0        1
<run>          RUNFG          I5      0       0        1
<ufg>          EMFG           I5      1       1        2
<ifg>          IHMFG          I5      0       0        1
--------------------------------------------------------------------------------
Explanation

RUNINF is a title and/or comments regarding the RUN.

SYR, SMO, SDA, SHR, and SMI define the starting date/time of the simulation time span.

EYR, EMO, EDA, EHR, and EMI define the ending date/time of the simulation time span.

Users conventionally label the same point in time differently, depending whether they are looking forward or backward towards it. For example, if we say that a RUN starts on 1978/05 we mean that it commences at the start of May 1978. On the other hand, if we say it ends on 1978/05 we mean it terminates at the end of May 1978. Thus, HSPF has two separate conventions for the external labeling of time. When supplying values for a date/time field a user may omit any element in the field except the year, which must be supplied as a 4 digit figure. HSPF will substitute the defaults given above for any blank or zero values. The completed starting and ending date/time fields are translated into another format, which is the only one used to label intervals and time points internally. It has a resolution of 1 minute. Thus, time is recorded as a year/month/day/hour/minute set, to completely specify either a time interval or point. The date/time used by the internal clock uses the "contained within" principle. For example, the first minute in an hour is numbered 1 (not 0) and the last is numbered 60 (not 59). The same applies to the numbering of hours. Thus, the time conventionally labeled 11:15 is in the 12th hour of the day so is labeled 12:15 internally; the last minute of 1978 is labeled 1978/12/31 24:60. This convention is extended to the labeling of points by labeling it with the minute that immediately precedes it. Thus, midnight New Year's eve 1978/1979 is 1978/12/31 24:60, not 1979/01/01 00:00. This gives a system for uniquely labeling each point internally.

OUTLEV is a flag which governs the quantity of informative output produced by the Run Interpreter. A value of 0 results in minimal output; 10 results in very detailed output (useful primarily for locating errors in the UCI or the program). A value of 3 or 4 is appropriate for most runs. OUTLEV does not affect error or warning messages.

SPOUT is a flag that governs the quantity of output produced in the Run Interpreter Output file whenever a Special Action is performed during the simulation. A value of 0 results in minimal output, and a value of 10 results in maximum output.

RESMFG represents a feature that is not supported in this version of HSPF. It should be set to 0.

If RUNFG is 1, the program will interpret the input and then execute the RUN (if no errors are detected). If RUNFG is 0, only the interpretation will be completed.

EMFG is the UCI units system flag for all simulation operations (i.e., PERLND, IMPLND and RCHRES operations). If EMFG is 1, all input values in the UCI file will be interpreted using the English units defined in the tables in this section (User's Control Input) of this manual. If EMFG is 2, Metric units are assumed for all UCI values.

If IHMFG is 0, the program will check all input timeseries datasets to ensure they contain data for the entire simulation time span. If IHMFG is 1, the program doesn't check for adequate input data availability. This option is required for simulations where HSPF is linked with MODFLOW as part of the Integrated Hydrologic Model (IHM) (Ross et al., 2004).


FILES Block

Details
--------------------------------------------------------------------------------
Symbol        Fortran name   Format                  Comment
--------------------------------------------------------------------------------
<ftyp>          FTYPE        A6        File type; valid values are: MESSU, WDM,
                                       WDM1, WDM2, WDM3, WDM4, DSS1, DSS2, DSS3,
                                       DSS4, DSS5, FEQTSF, BINO, and blank ("  ").
<un#>           FUNIT        I5        File unit number; available values are
                                       1-4, 8, and 10-98 (10-98 recommended).
<filename>      FNAME        A64       File name; complete path name or local
                                       name if in default/current directory.
--------------------------------------------------------------------------------
Explanation

The FILES Block contains the names of input and output files used by the program during the run; this block associates the unit numbers specified in various parts of the UCI file with actual disk file names. Since the FILES Block requires that the program be able to locate the UCI file, HSPF requires that the user provide its name before execution can begin. On DOS-based or other command-line based operating systems, this can also be accomplished on the command line. When invoking HSPF, one can include the name of the UCI file using the following syntax:

hspf uci-file-name <Enter>

FTYPE is a keyword that identifies the type of file. There are twelve FTYPE's that HSPF recognizes, and FTYPE must be specified for these types of files. Note, however, that the WDM and WDM1 keywords are synonymous, and should not appear together in the same FILES block. For all other files, this field should be left blank. The FTYPE keyword should be left-justified in columns one through six. The valid FTYPE values are shown below:

DESCRIPTION FTYPE

Run interpreter output MESSU

Watershed Data Management WDM, WDM1, WDM2, WDM3, WDM4

HEC Data Storage System files DSS1, DSS2, DSS3, DSS4, DSS5

VAX (only) PLTGEN output file PLTGEN

FEQ Time Series File: Diffuse FEQTSF

(DTSF) or Point (PTSF)

Binary output Files BINO

Other input and output files (blank)

FUNIT is the file unit number of the file. This corresponds to the unit number of those files specified in other parts of the UCI file. FUNIT is an integer value that should be right-justified in columns 9 through 13; valid values are 1-99. Each value of FUNIT in the FILES Block should be unique, and the values 5-7, 9, and 99 are reserved for internal scratch files. Preferably, values of 10 to 98 should be used to avoid any conflicts with internally-generated files.

FNAME is the name of the file. If the file is not in the current (default) directory, the relative path name should be specified. FNAME should be left-justified in columns 17 through 80.

The FILES Block is usually required. In particular, if a WDM or DSS file is needed by the run, it must be specified in the FILES Block, since the program does not have a default name for these files.

Similarly, for the operating modules (PERLND, IMPLND, RCHRES, DISPLY, PLTGEN, DURANL, MUTSIN, BMPRAC, and REPORT), and sequential (SEQ) time series input, the user must specify file unit numbers as the destination for printout (or source for MUTSIN or sequential time series input). Also, it is recommended that these files be explicitly assigned names in the FILES Block. However, if the user does not include an entry in the FILES block for one of these operations, a file is automatically opened by HSPF with the default name "hspfxx.dat", where xx is the unit number, except for the MESSU file, which defaults to "hspfecho.out".


OPN SEQUENCE Block

Details
--------------------------------------------------------------------------------
   Symbol     Fortran name   Format                  Comment
--------------------------------------------------------------------------------
<idt>          HRMIN(2)      I2,1X,I2    Time interval (hour:min) used in the
                                         INPAD e.g., 00:05
<-opn-id->     OPTYP,OPTNO   A6,5X,I3    Type and number of this operation.
                                         e.g., RCHRES 100
--------------------------------------------------------------------------------
Explanation

This block specifies the various operations to be performed in the RUN and, optionally, their grouping into INGROUPs. The operations will be performed in the sequence specified in the block, apart from repetition implied by grouping. A maximum of 500 operations can be specified in one run.

Every <-opn-id-> consists of OPTYP and OPTNO. The OPTYP field must contain an identifier of up to 6 characters which corresponds to one of the operating module identifiers in the HSPF system. The OPTNO field contains an integer which distinguishes operations of the same type from one another. Every <opn-id> (OPTYP plus OPTNO) must be unique.

The time intervals (time steps) of the INGROUPs (or the RUN) are specified in this block. These appear on the INGROUP lines, except where the user has not placed an operation in an INGROUP. In that case <idt> is specified alongside <-opn-id->. Time intervals are expressed as "hour:min". Valid time intervals (in minutes) are: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60, 120, 180, 240, 360, 480, 720, and 1440.


Optimization of Operation Sequencing

The sequence of operations within the Operations Sequence block should be optimized to make most efficient use of the internal scratch pad (INPAD). Optimal use of the INPAD is accomplished by reducing the maximum number of time series (rows) on the INPAD. This increases the length of each row and the INSPAN, which reduces swapping between operations.

A time series occupies a row on the INPAD from the moment it is either read from an external source or is created by an operation until the moment it is used by the last operation requiring it. HSPF automatically optimizes the reading of data from external sources and writing of data to external targets.

Optimal sequencing of operations requires that an operation be executed as soon as all input time series produced by other operations have been created. For example, a DISPLY operation which displays outflow from a PERLND operation should immediately follow the PERLND operation. A RCHRES operation representing a section of stream should immediately follow any RCHRES operations representing reaches upstream and any PERLND operations which contribute local inflow.

For example, a watershed is represented by 4 PERLND operations, 5 RCHRES operations, 2 PLTGEN operations, 4 DISPLY operations, and 1 DURANL operation. These are defined as follows:

PERLND 1 - rain gage 1, land use of pasture

PERLND 2 - rain gage 1, land use of corn

PERLND 3 - rain gage 2, land use of pasture

PERLND 4 - rain gage 2, land use of corn

RCHRES 1 - local inflow from PERLND 1 and 2

RCHRES 2 - upstream inflow from RCHRES 1, local inflow from PERLND 1 and 2

RCHRES 3 - local inflow from PERLND 3 and 4

RCHRES 4 - upstream inflow from RCHRES 2 and 3, local inflow from

PERLND 3 and 4

RCHRES 5 - upstream inflow from RCHRES 4, local inflow from PERLND 3 and 4

DISPLY 1 - outflow from RCHRES 5

DISPLY 2 - outflow from RCHRES 3

DISPLY 3 - unit flow from PERLND 2

DISPLY 4 - unit flow from PERLND 4

PLTGEN 1 - outflow from RCHRES 5, measured flow at bottom of RCHRES 5

PLTGEN 2 - outflow from RCHRES 1, area weighted sum of unit flow from

PERLND 1 and 2

DURANL 1 - outflow from RCHRES 5

The optimum order for these operations is:

PERLND 1

PERLND 2

DISPLY 3

RCHRES 1

PLTGEN 2

RCHRES 2

PERLND 3

PERLND 4

DISPLY 4

RCHRES 3

DISPLY 2

RCHRES 4

RCHRES 5

DISPLY 1

DURANL 1

PLTGEN 1


<Operation-type> Block

Details
--------------------------------------------------------------------------------
   Symbol       Fortran name   Format                Comment
--------------------------------------------------------------------------------
<otyp>             OPTYP       A6        Type of operation covered in this
                                         block, e.g., RCHRES, PERLND
--------------------------------------------------------------------------------
Explanation

This type of block deals with data which pertain to all operations of the same <Operation-type>, e.g., the parameters and initial conditions for all the Pervious Land segments in a RUN. It is not concerned with relationships between operations or with external sources or targets for time series.

This type of block provides for general input and for input which is specific to individual sections of the operating module. The latter (sections) only apply to modules which are sectioned (PERLND, IMPLND, and RCHRES). The general input contains all of the information which simple (non-sectioned) modules require; for sectioned modules it contains input which is not specific to any one section.

The general organization of the <Operation-type> blocks is as follows:

The user supplies the input in a set of tables (e.g., ACTIVITY). Each table has a name (eg. ACTIVITY), called the "Table-type". A table starts with the heading <Table-type> and ends with the delimiter END <Table-type>. The body of the table consists of:

<range><------------values-------------------------->

where <range> is the range of operation-type numbers to which the <values> apply. If the second field in <range> is blank, the range is assumed to consist of a single operation. Thus, in the example in ACTIVITY, Pervious Land-segments (PERLNDs) 1 through 7 have the same set of active sections, while PERLND 9 has a different set.

Thus, a table lists the values given to a specified set of variables (occupying only 1 line) for all the operations of a given type. The input was designed this way to minimize the quantity of data supplied when many operations have the same values for certain sets of input.

HSPF only looks for a given Table-type if the options already specified by the user require data contained within it. Thus, Table-type MON-INTERCEP is relevant only if VCSFG in Table-type PWAT-PARM1 is set to 1 for one or more PERLNDs. The system is designed to ignore redundant information. Thus, if VCSFG is 0 and Table-type MON-INTERCEP is supplied, the table is ignored.

On the other hand, if an expected value is not supplied, the system will attempt to use a default value. This situation can arise in one of three ways:

1. The entire table may be missing from the UCI.

2. The table may be present but not contain an entry (line) for the operation in question. The example in ACTIVITY has no entry for PLS No. 8. Thus, all values in its active sections vector will have the default of 0.

3. A field may be left blank. In the example in PWAT-PARM2, KVARY will be assigned the default value 0.0 for PERLNDs 1 through 7.

When appropriate, the HSPF system also checks that a value supplied by the user falls within an allowable range. If it does not, an error message is generated.

Note that a table contains either integers or real values, but generally not both. For example, Table-type ACTIVITY contains only integer flags, while Table-type PWAT-PARM2 contains only real numbers. For tables containing real-valued data, the documentation gives separate defaults, minima and maxima for the English and Metric unit systems. The user specifies the units system for all inputs in the UCI in the GLOBAL block.


 PERLND Block

PERLND Block
Explanation

This block contains the data which pertain to all of the Pervious Land Segments in the RUN. The general input tables are always relevant; other input tables are only required if the module section concerned is active.


 General input

General input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


ACTIVITY

 Active Sections

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<a-s-vector>   ASVEC(12)      12I5    0       0       1
--------------------------------------------------------------------------------
Explanation

The PERLND module is divided into 12 sections: ATEMP, SNOW, PWATER, SEDMNT, PSTEMP, PWTGAS, PQUAL, MSTLAY, PEST, NITR, PHOS, and TRACER. The values supplied in this table specify which sections are active and which are not, for each operation involving the PERLND module. A value of 0 means the section is inactive and 1 means it is active. Any meaningful subset of sections may be active.


PRINT-INFO

 Printout information for PERLND

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<print-flags>  PFLAG(12)      12I5    4       2       6
<piv>          PIVL           I5      1       1       1440
<pyr>          PYREND         I5      9       1       12
--------------------------------------------------------------------------------
Explanation

This table allows the user to vary the printout level (maximum frequency of output) for the various active sections of an operation. The meaning of each permissible value for PFLAG() is:

2 means every PIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, output from Pervious Land-segments 1 thru 7 will occur as follows:

Section   Maximum frequency

ATEMP     10 intervals
SNOW      month
PWATER    never
SEDMNT   --
 thru      | month  (defaulted)
PEST     --
NITR      month
PHOS      day
TRACER    10 intervals

A value need only be supplied for PIVL if one or more sections have a printout level of 2. For those sections, printout will occur every PIVL intervals (i.e., every PIVL*DELT minutes, where DELT is the number of minutes in the time step of the RUN or INGROUP). PIVL must be chosen such that there are an integer number of printout periods in a day.

HSPF automatically provides printed output at all standard intervals greater than the specified interval. In the above example, output for section PHOS will be printed at the end of each day, month, and year.

PYREND is the calendar month which terminates the year for printout purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


BINARY-INFO

 Binary output information for PERLND

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<binary-flags> BFLAG(12)      12I5    4       2       6
<biv>          BIVL           I5      1       1       1440
<byr>          BYREND         I5      9       1       12
--------------------------------------------------------------------------------

Explanation

This table allows the user to produce binary output files that contain the same information generated in the printout (i.e., through the use of table PRINT-INFO). This binary output is accessible using the GenScn interface or custom scripting procedures, and it allows the display and tabulation of all output quantities produced by PERLND. Binary output is also used to transfer data between HSPF and MODFLOW in the Integrated Hydrologic Model (IHM) (Ross et al., 2004).

The user can vary the binary output level (maximum frequency of output) for the various active sections of each PERLND. The meaning of each permissible value for BFLAG() is:

2 means every BIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, binary output from Pervious Land-segments 1 thru 7 will occur as follows:

Section 	Maximum frequency

ATEMP   	10 intervals
SNOW    	month
PWATER  	never
SEDMNT  	--
  thru	  | month  (defaulted)
PEST    	--
NITR    	month
PHOS    	day
TRACER  	10 intervals

A value need only be supplied for BIVL if one or more sections have a binary output level of 2. For those sections, binary output will occur every BIVL intervals (i.e., every BIVL*DELT minutes, where DELT is the number of minutes in the time step of the RUN or INGROUP). BIVL must be chosen such that there are an integer number of binary output periods in a day. Also, if both the binary and printout options are being used for a PERLND, the values of BIVL (in this table) and PIVL (in table PRINT-INFO) must be the same.

HSPF automatically provides binary output at all standard intervals greater than the specified interval. In the above example, output for section PHOS will be written at the end of each day, month, and year.

BYREND is the calendar month which terminates the year for binary output purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


GEN-INFO

 Other general information for PERLND

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<PLS-id>       LSID(5)        5A4     none    none    none
<unit-sys>     IUNITS,OUNITS  2I5     1       1       2
<printu>       PUNIT(2)       2I5     0       0       99
<binu>         BUNIT(2)       2I5     0       0       99
--------------------------------------------------------------------------------
Explanation

LSID is a 20 character identifier for the PERLND.

The values supplied for IUNITS and OUNITS indicate the system of units for data in the input time series and output time series, respectively: 1 means English units, 2 means Metric units.

Note: All operations in the run must use the same units system for data in the UCI file; therefore, this system of units is specified by EMFG in the GLOBAL block.

The values supplied for PUNIT(1) and PUNIT(2) indicate the destinations (files) of printout in English and metric units, respectively. A value of 0 means no printout is required in that unit system. A non-zero value means printout is required in that system, and the value is the unit number of the file to which printout is to be written. The unit number is associated with a filename in the FILES BLOCK. (For additional information on printout, refer to table PRINT-INFO.)

The values supplied for BUNIT(1) and BUNIT(2) indicate the destinations (files) of binary output in English and metric units, respectively. A value of 0 means no binary output is required in that unit system. A non-zero value means binary output is required in that system, and the value is the unit number of the file to which output is to be written. The unit number is associated with a filename in the FILES BLOCK. The entry in the FILES block must include the file type (FTYP) “BINO”. (For additional information on binary output, refer to table BINARY-INFO.)

Note that printout and binary output for each Pervious Land Segment can be obtained in either the English or Metric systems, or both, irrespective of the system used to supply the inputs (specified by EMFG in the GLOBAL block).


 ATEMP input

ATEMP input
Explanation

The exact format of the table mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


ATEMP-DAT

 Elevation difference between gage and PERLND

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<el-diff>      ELDAT          F10.0   0.0     none    none    ft      Engl
                                      0.0     none    none    m       Metric
<airtmp>       AIRTMP         F10.0    60     -60     140     Deg F   Engl
                                       15     -50     60      Deg C   Metric
--------------------------------------------------------------------------------
Explanation

ELDAT is the difference in elevation between the temperature gage and the PERLND; it is used to estimate the temperature over the segment by application of a lapse rate. ELDAT is positive if the segment is higher than the gage, and vice versa.

AIRTMP is the initial (i.e., at the starting time of the RUN) air temperature over the land segment.


 SNOW input

SNOW input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


ICE-FLAG

 governs simulation of ice formation in snow

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<ice>          ICEFG          I5      0       0       1
--------------------------------------------------------------------------------
Explanation

A value of 0 means ice formation in the snow pack will not be simulated; 1 means it will.


SNOW-FLAGS

 Snow option flags

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<--snow-->     SNOPFG         I5      0       0       1
               VKMFG          I5      0       0       1
--------------------------------------------------------------------------------
Explanation

SNOPFG is a flag selecting the method for computing snowmelt. A value of 0 means use the energy balance method requiring input of air temperature, wind, dewpoint, and solar radiation; 1 means use a temperature index method that requires only air temperature.

VKMFG indicates whether or not the degree-day factor KMELT used in the temperature index method is assumed to vary through the year on a monthly basis: 1 means it varies, 0 means it does not. If this flag is on (1), monthly values for KMELT must be supplied in Table-type MON-MELT-FAC.


SNOW-PARM1

 First group of SNOW parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<snowparm1>    LAT            7F10.0  40.0    -90.0   90.0    degrees Both
               MELEV                  0.0     0.0     30000.0 ft      Engl
                                      0.0     0.0     10000.0 m       Metric
               SHADE                  0.0     0.0     1.0     none    Both
               SNOWCF                 none    1.0     100.0   none    Both
               COVIND                 none    0.01    none    in      Engl
                                      none    0.25    none    mm      Metric
               KMELT                  0.0     0.0     none   in/day.F Engl
                                      0.0     0.0     none   mm/day.C Metric
               TBASE                  32.0    0.0     60.0   F        Engl
                                      0.0     -20.0   20.0   C        Metric
--------------------------------------------------------------------------------
Explanation

LAT is the latitude of the pervious land segment (PLS). It is positive for the northern hemisphere, and negative for the southern hemisphere. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

MELEV is the mean elevation of the PLS above sea level. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

SHADE is the fraction of the PLS which is shaded from solar radiation, by trees for example. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

SNOWCF is the factor by which the input precipitation data will be multiplied, if the simulation indicates it is snowfall, to account for poor catch efficiency of the gage under snow conditions.

COVIND is the maximum snowpack (water equivalent) at which the entire PLS will be covered with snow (see SNOW section in Functional Description).

KMELT is the constant degree-day factor for the temperature index snowmelt method, to be used when SNOPFG=1 and VKMFG=0 in Table-type SNOW-FLAGS.

TBASE is the reference temperature for the temperature index method (SNOPFG=1 in Table-type SNOW-FLAGS).


SNOW-PARM2

 Second group of SNOW parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<snowparm2>    RDCSN          F10.0   0.15    0.01    1.0     none    Both
               TSNOW          F10.0   32.0    30.0    40.0    degF    Engl
                                      0.0     -1.0    5.0     degC    Metric
               SNOEVP         F10.0   0.1     0.0     1.0     none    Both
               CCFACT         F10.0   1.0     0.0    10.0     none    Both
               MWATER         F10.0   0.03    0.0     1.0     none    Both
               MGMELT         F10.0   0.01    0.0     1.0     in/day  Engl
                                      0.25    0.0     25.     mm/day  Metric
--------------------------------------------------------------------------------
Explanation

RDCSN is the density of cold, new snow relative to water. This value applies to snow falling at air temperatures lower than or equal to 0 degrees F. At higher temperatures the density of snow is adjusted.

TSNOW is the air temperature below which precipitation will be snow, under saturated conditions. Under non-saturated conditions the temperature is adjusted slightly.

SNOEVP is a parameter which adapts the snow evaporation (sublimation) equation to field conditions. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

CCFACT is a parameter which adapts the snow condensation/convection melt equation to field conditions. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

MWATER is the maximum water content of the snow pack, in depth of water per depth of water.

MGMELT is the maximum rate of snowmelt by ground heat, in depth of water per day. This is the value which applies when the pack temperature is at the freezing point.


MON-MELT-FAC

 Monthly degree-day factor

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-kmelt>    KMELTM(12)     12F5.0  0.0     0.0     none    in/d.F  Engl
                                      0.0     0.0     none    mm/d.C  Metric
--------------------------------------------------------------------------------
Explanation

Monthly values of degree-day factor. Only required if SNOPFG=1 and VKMFG=1 in Table-type SNOW-FLAGS.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


SNOW-INIT1

 First group of initial values for SNOW

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<snowinit1>    Pack-snow      F10.0   0.0     0.0     none    in      Engl
                                      0.0     0.0     none    mm      Metric
               Pack-ice       F10.0   0.0     0.0     none    in      Engl
                                      0.0     0.0     none    mm      Metric
               Pack-watr      F10.0   0.0     0.0     none    in      Engl
                                      0.0     0.0     none    mm      Metric
               RDENPF         F10.0   0.2     .01     1.0     none    Both
               DULL           F10.0   400.    0.0     800.    none    Both
               PAKTMP         F10.0   32.     none    32.     degF    Engl
                                      0.0     none    0.0     degC    Metric
--------------------------------------------------------------------------------
Explanation

Pack-snow is the quantity of snow in the pack (water equivalent).

Pack-ice is the quantity of ice in the pack (water equivalent).

Pack-watr is the quantity of liquid water in the pack.

RDENPF is the density of the frozen contents (snow and ice) of the pack, relative to water.

DULL is an index to the dullness of the snow pack surface, from which albedo is estimated. It is used only when SNOPFG=0 in Table-type SNOW-FLAGS.

PAKTMP is the mean temperature of the frozen contents of the snow pack.


SNOW-INIT2

 Second group of initial values for SNOW

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<snowinit2>    COVINX         F10.0   0.01    0.01    none    in      Engl
                                      0.25    0.25    none    mm      Metric
               XLNMLT         F10.0   0.0     0.0     none    in      Engl
                                      0.0     0.0     none    mm      Metric
               SKYCLR         F10.0   1.0     .15     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

COVINX is the current snow pack depth (water equivalent) required to obtain complete areal coverage of the land segment. If the pack is less than this amount, areal coverage is prorated (PACKF/COVINX).

XLNMLT is the current remaining possible increment to ice storage in the pack (see Functional Description). It is relevant if ice formation is simulated (ICEFG= 1).

SKYCLR is the fraction of sky which is assumed to be clear at the present time.


 PWATER input

PWATER input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


PWAT-PARM1

 First group of PWATER parameters (flags)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<pwatparm1>    CSNOFG         I5      0       0       1
               RTOPFG         I5      0       0       3
               UZFG           I5      0       0       1
               VCSFG          I5      0       0       1
               VUZFG          I5      0       0       1
               VNNFG          I5      0       0       1
               VIFWFG         I5      0       0       1
               VIRCFG         I5      0       0       1
               VLEFG          I5      0       0       1
               IFFCFG         I5      1       1       2
               HWTFG          I5      0       0       1
               IRRGFG         I5      0       0       3
               IFRDFG         I5      0       0       7 (valid values: 0, 3-7)
--------------------------------------------------------------------------------
Explanation

If CSNOFG is 1, section PWATER assumes that snow accumulation and melt is being considered. It will, therefore, expect that the time series produced by section SNOW are available, either internally (produced in this RUN) or from external sources (e.g., produced in a previous RUN). If CSNOFG is 0, no such time series are expected. See the Functional Description for further information.

RTOPFG is a flag that selects the algorithm for computing overland flow. Four optional methods are provided. If RTOPFG is 1, routing of overland flow is done in the same way as in the predecessor models HSPX, ARM and NPS. A value of 0 results in a different algorithm that is described in the Functional Description (Section E). Values of 2 and 3 are designed for use under high water table/low land gradient conditions (HWTFG = 1). A value of 2 results in use of a simple power function method. If a value of 3 is entered, the program uses a table in the FTABLES block to determine surface outflow as a function of surface storage.

UZFG selects the method for computing inflow to the upper zone. If UZFG is 1, upper zone inflow is computed in the same way as in the predecessor models HSPX, ARM and NPS. A value of 0 results in the use of a different algorithm, which is less sensitive to changes in DELT (see Functional Description).

The flags beginning with "V" indicate whether or not certain parameters will be assumed to vary through the year on a monthly basis: 1 means they do vary, 0 means they do not. The quantities which can vary on a monthly basis are:

VCSFG interception storage capacity

VUZFG upper zone nominal storage

VNNFG Manning's n for the overland flow plane

VIFWFG interflow inflow parameter

VIRCFG interflow recession constant

VLEFG lower zone evapotranspiration (E-T) parameter

If any of these flags are on (1), monthly values for the associated parameter must be supplied in the corresponding monthly table (see Table-types MON-, documented later in this section).

If IFFCFG is 1, then the effect of frozen ground on infiltration rate is computed from the amount of ice in the snow pack (PACKI). CSNOFG must be turned on, and if section SNOW does not compute PACKI (because ICEFG is off or the section is inactive) PACKI must be supplied as an input time series. If IFFCFG is 2, then the infiltration adjustment factor is determined from the soil temperature in the lower layer/groundwater layer, which is either computed in section PSTEMP or must be supplied as a time series. (See Table-type PWAT-PARM5 for more details.)

If HWTFG is 1, then high water table and low land surface gradient conditions (i.e., wetlands) are prevalent on the land segment, and different algorithms are used for some processes. See Water Budget Pervious, High Water Table, Low Gradient in Functional Description for details. Note: use of monthly values for UZSN is not recommended when using these optional methods.

If IRRGFG is greater than zero, then it selects the method used to determine demands in the irrigation module. If IRRGFG is 1, then the input time series IRRINP will be supplied in the EXT SOURCES block. If IRRGFG is 2, then the demand is calculated based on allowable water depletion in the crop root zone. If IRRGFG is 3, then irrigation occurs according to a schedule defined by the user in Table-type IRRIG-SCHED.

Valid values of IFRDFG are 0 and 3 - 7. If IFRDFG is in the range 3 to 7, the program uses an optional method for computing distribution of infiltration and percolation from the upper zone to the lower zone and active groundwater storages. In this case, the value of IFRDFG is used as the exponent in the optional infiltration redistribution equation. If IFRDFG is 0, the standard method of infiltration distribution is used. See the Functional Description for further information.


PWAT-PARM2

 Second group of PWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwatparm2>    FOREST         F10.0   0.0     0.0     1.0     none    Both
               LZSN           F10.0   none    .01     100.    in      Engl
                                      none    .25     2500.   mm      Metric
               INFILT         F10.0   none    0.0001  100.    in/hr   Engl
                                      none    0.0025  2500.   mm/hr   Metric
               LSUR           F10.0   none    1.0     none    ft      Engl
                                      none    0.3     none    m       Metric
               SLSUR          F10.0   none    .000001 10.     none    Both
               KVARY          F10.0   0.0     0.0     none    1/in    Engl
                                      0.0     0.0     none    1/mm    Metric
               AGWRC          F10.0   none    0.001   0.999   1/day   Both
--------------------------------------------------------------------------------
Explanation

FOREST is the fraction of the pervious land segment which is covered by forest, and which will therefore continue to transpire in winter. This is only relevant if snow is being considered (i.e., CSNOFG = 1).

LZSN is the lower zone nominal storage.

INFILT is an index to the infiltration capacity of the soil.

LSUR is the length of the assumed overland flow plane.

SLSUR is the slope of the overland flow plane.

KVARY is a parameter which affects the behavior of groundwater recession flow, enabling it to be non-exponential in its decay with time.

AGWRC is the basic groundwater recession rate if KVARY is zero and there is no inflow to groundwater; AGWRC is defined as the rate of flow today divided by the rate of flow yesterday.


PWAT-PARM3

 Third group of PWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwatparm3>    PETMAX         F10.0   40.     none    none    degF    Engl
                                      4.4     none    none    degC    Metric
               PETMIN         F10.0   35.     none    none    degF    Engl
                                      1.7     none    none    degC    Metric
               INFEXP         F10.0   2.0     0.0     10.0    none    Both
               INFILD         F10.0   2.0     1.0     2.0     none    Both
               DEEPFR         F10.0   0.0     0.0     1.0     none    Both
               BASETP         F10.0   0.0     0.0     1.0     none    Both
               AGWETP         F10.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

PETMAX is the air temperature below which E-T will arbitrarily be reduced below the value obtained from the input time series, and PETMIN is the temperature below which E-T will be zero regardless of the value in the input time series. These values are only used if snow is being considered (CSNOFG= 1).

INFEXP is the exponent in the infiltration equation, and INFILD is the ratio between the maximum and mean infiltration capacities over the PLS.

DEEPFR is the fraction of groundwater inflow which will enter deep (inactive) groundwater, and, thus, be lost from the system as it is defined in HSPF.

BASETP is the fraction of remaining potential E-T which can be satisfied from baseflow (groundwater outflow), if enough is available.

AGWETP is the fraction of remaining potential E-T which can be satisfied from active groundwater storage if enough is available.


PWAT-PARM4

 Fourth group of PWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwatparm4>    CEPSC          F10.0   0.0     0.0     10.0    in      Engl
                                      0.0     0.0     250.    mm      Metric
               UZSN           F10.0   none    0.01    10.0    in      Engl
                                      none    0.25    250.    mm      Metric
               NSUR           F10.0   0.1     0.001   1.0     complex Both
               INTFW          F10.0   none    0.0     none    none    Both
               IRC            F10.0   none    1.0E-30 0.999   1/day   Both
               LZETP          F10.0   0.0     0.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

Values in this table need only be supplied for those parameters which do not vary through the year. If they do vary (as specified in Table-type PWAT-PARM1), monthly values are supplied in the tables documented below (MON-xxx).

CEPSC is the interception storage capacity.

UZSN is the upper zone nominal storage.

NSUR is Manning's n for the overland flow plane.

INTFW is the interflow inflow parameter.

IRC is the interflow recession parameter. Under zero inflow, this is the ratio of today's interflow outflow rate to yesterday's rate.

LZETP is the lower zone E-T parameter. It is an index to the density of deep-rooted vegetation.


PWAT-PARM5

 Fifth group of PWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwatparm5>    FZG            F10.0   1.0   0.0001    none     /in    Engl
                              F10.0  0.0394 0.0001    none     /mm    Metr
               FZGL           F10.0   0.1   0.0001    1.0      none   Both
--------------------------------------------------------------------------------
Explanation

FZG is the parameter that adjusts for the effect of ice (in the snow pack) on infiltration when IFFCFG is 1. It is not used if IFFCFG is 2.

FZGL is the lower limit of INFFAC as adjusted by ice in the snow pack when IFFCFG is 1. If IFFCFG is 2, FZGL is the value of INFFAC when the lower layer temperature is at or below freezing.


PWAT-PARM6

 Sixth group of PWATER parameters - (parameters related to high water table/low gradient conditions)

Details
----------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit system
----------------------------------------------------------------------------------
               MELEV          F10.0   0.0     0.0  30000.0    ft      Engl
                                      0.0     0.0  10000.0    m       Metric
               BELV           F10.0   none    none    none    ft      Engl
                                      none    none    none    m       Metric
               GWDATM         F10.0   none    none    none    ft      Engl
                                      none    none    none    m       Metric
               PCW            F10.0   none    0.01    0.999   none    Both
               PGW            F10.0   none    0.01    0.999   none    Both
               UPGW           F10.0   none    0.01    0.999   none    Both
--------------------------------------------------------------------------------
Explanation

MELEV is the mean surface elevation of the land segment. If the SNOW module section is active, this value is ignored and the program uses the value for MELEV given in Table-type SNOW-PARM1.

BELV is the base elevation for active groundwater. It corresponds to the bottom elevation of nearby channels; therefore, if the groundwater elevation is above BELV, there is outflow into the channels. Groundwater below BELV is considered inactive.

GWDATM is the datum for the groundwater elevation GWEL. Storage below this elevation is considered lost from the system.

PCW is the cohesion water porosity. It is the soil pore space in micropores.

PGW is the gravitational water porosity. It is the soil pore space in macropores in the lower and groundwater layers of the soil column.

UPGW is the upper gravitational water porosity. It is the pore space in macropores in the upper layers of the soil column.


PWAT-PARM7

 Seventh group of PWATER parameters - (parameters related to high water table/low gradient conditions)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
               STABNO         I10     0       0       999     none    Both
               SRRC           F10.0   none    1.0E-10 0.999   /hr     Both
               SREXP          F10.0   1.0     0.0     none    none    Both
               IFWSC          F10.0   none    0.01    30.0    in      Engl
                                      none    0.25    750.    mm      Metric
               DELTA          F10.0   0.001   1.0E-6  0.2     in      Engl
                                      0.025   2.5E-5  5.0     mm      Metric
               UELFAC         F10.0   4.0     3.0     5.0     none    Both
               LELFAC         F10.0   2.5     2.0     3.0     none    Both
--------------------------------------------------------------------------------
Explanation

STABNO is the ID number for the FTABLE in the FTABLES block which contains the outflow properties from the surface storage. This value is used only if RTOPFG = 3 in Table-type PWAT-PARM1.

SRRC is the surface runoff recession constant. It is used to calculate surface runoff as a function of surface storage only. This value is used only if RTOPFG = 2 in Table-type PWAT-PARM1.

SREXP is the surface runoff exponent. This value is used only if RTOPFG = 2 in Table-type PWAT-PARM1.

IFWSC is the maximum interflow storage capacity when the groundwater elevation is greater than the upper influence elevation (UELV).

DELTA is the groundwater tolerance level used to determine transition between regions when high water table conditions are being simulated (HWTFG = 1). It is used to smooth out jumps in groundwater elevation due to changes in "soil region."

UELFAC is the multiplier on UZSN which is used to compute the upper zone capacity. The default value (4.0) should generally be used.

LELFAC is the multiplier on LZSN which is used to compute the lower zone capacity. The default value (2.5) should generally be used.


MON-INTERCEP

 Monthly interception storage capacity

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-icep>     CEPSCM(12)     12F5.0  0.0     0.0     10.     in      Engl
                                      0.0     0.0     250.    mm      Metric
--------------------------------------------------------------------------------
Explanation

Monthly values of interception storage. Only required if VCSFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-UZSN

 Monthly upper zone nominal storage

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-uzsn>     UZSNM(12)      12F5.0  none    .01     10.     in      Engl
                                      none    .25     250.    mm      Metric
--------------------------------------------------------------------------------
Explanation

Monthly values of upper zone nominal storage. This table is only required if VUZFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-MANNING

 Monthly Manning's n values

Details
-----------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit system
-----------------------------------------------------------------------------
<mon-Manning>  NSURM(12)      12F5.0  .10     .001    1.0     complex Both
-----------------------------------------------------------------------------
Explanation

Monthly values of Manning's constant for overland flow. This table is only required if VNNFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-INTERFLW

 monthly interflow inflow parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-interflw> INTFWM(12)     12F5.0  none    0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

Monthly values of the interflow inflow parameter. This table is only required if VIFWFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-IRC

 Monthly interflow recession constants

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-irc>      IRCM(12)       12F5.0  none    1.0E-30 0.999   /day    Both
--------------------------------------------------------------------------------
Explanation

Monthly values of the interflow recession parameter. This table is only required if VIRCFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-LZETPARM

 Monthly lower zone E-T parameter

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-lzetparm> LZETPM(12)     12F5.0  0.0     0.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

Monthly values of the lower zone ET parameter. This table is only required if VLEFG is 1 in Table-type PWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


PWAT-STATE1

 PWATER initial state variables

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwat-state1>  CEPS           7F10.0  0.0     0.0     100     inches  Engl
                                      0.0     0.0     2500    mm      Metric
               SURS                   0.0     0.0     100     inches  Engl
                                      0.0     0.0     2500    mm      Metric
               UZS                    .001    .001    100     inches  Engl
                                      .025    .025    2500    mm      Metric
               IFWS                   0.0     0.0     100     inches  Engl
                                      0.0     0.0     2500    mm      Metric
               LZS                    .001    .001    100     inches  Engl
                                      .025    .025    2500    mm      Metric
               AGWS                   0.0     0.0     100     inches  Engl
                                      0.0     0.0     2500    mm      Metric
               GWVS                   0.0     0.0     100     inches  Engl
                                      0.0     0.0     2500    mm      Metric
--------------------------------------------------------------------------------
Explanation

This table is used to specify the initial water storages in the soil.

CEPS is the initial interception storage.

SURS is the initial surface (overland flow) storage.

UZS is the initial upper zone storage.

IFWS is the initial interflow storage.

LZS is the initial lower zone storage.

AGWS is the initial active groundwater storage. If high water table/low gradient conditions are being simulated (HWTFG = 1 in table PWAT-PARM1), then AGWS is the storage above the base elevation for active groundwater (BELV). The total groundwater storage (TGWS) is given by (AGWS + BGWS). Under this option, a negative value of AGWS will be interpreted as a groundwater level below the base elevation; however, if TGWS is negative, an error condition occurs.

GWVS is the initial index to groundwater slope; it is a measure of antecedent active groundwater inflow.


IRRIG-PARM1

 First group of irrigation parameters (flags)

Layout
******

  IRRIG-PARM1
  <-range><-----irrparm1----->
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  (repeats until all operations of this type are covered)
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  END IRRIG-PARM1

*******
Example
*******

  IRRIG-PARM1
    <PLS >                          ***
    x -  x NSKD SZON VCRD VAWD IROP ***
  102              1    2    2    0
  103         3
  END IRRIG-PARM1

*******************************************************************************

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<irrparm1>     NSKED          I5      0       0       20
               SZONFG         I5      0       0       1
               VCRDFG         I5      0       0       2
               VAWDFG         I5      0       0       2
               IROPFG         I5      0       0       1
--------------------------------------------------------------------------------
Explanation

NSKED specifies the number of scheduled applications. It is required when IRRGFG=3 in Table-type PWAT-PARM1. The applications are scheduled in Table-type IRRIG-SCHED.

The remaining flags apply only when IRRGFG=2 in Table-type PWAT-PARM1.

If SZONFG is zero, then field capacity and wilting point are the same for all zones, and are input in Table-type IRRIG-PARM2. If SZONFG is 1, then they are different for each soil zone, requiring input of Table-types SOIL-DATA2 and SOIL-DATA3.

VCRDFG is used to specify how crop root depth is input/varies: 0 = constant, input in Table-type IRRIG-PARM2; 1 = monthly varying, requiring input of Table-type MON-IRR-CRDP; 2 = varying by stage of growing season, requiring input of Table-types CROP-STAGES and CROP-SEASPM.

VAWDFG is used to specify how the allowable water depletion is input/varies: 0 = constant, input in Table-type IRRIG-PARM2; 1 = monthly varying, requiring input of Table-type MON-IRR-AWD; 2 = varying by stage of growing season, requiring input of Table-types CROP-STAGES and CROP-SEASPM.

IROPFG is used to specify the irrigation method: 1 = normal method; or 2 = subirrigation (seepage) method. The latter requires that HWTFG=1 in Table-type PWAT-PARM1.


IRRIG-PARM2

 Second group of irrigation parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<irrparm2>     IRAREA         F8.0    0.0     0.0     none    ac      Engl
                                      0.0     0.0     none    ha      Metric
               IREFF          F8.0    1.0     0.0     1.0     none    Both
               ARZI           F8.0    1.0     0.0     1.0     none    Both
               WILTP          F8.0    0.0     0.0     1.0     in/in   Engl
                                      0.0     0.0     1.0     mm/mm   Metric
               FLDCAP         F8.0    0.0     0.0     1.0     in/in   Engl
                                      0.0     0.0     1.0     mm/mm   Metric
               CRDEP          F8.0    0.0     0.0     none    in      Engl
                                      0.0     0.0     none    cm      Metric
               IRAWD          F8.0    0.0     0.0     1.0     none    Both
               CAPRIS         F8.0    6.0     0.0     none    in      Engl
                                     15.25    0.0     none    cm      Metr
--------------------------------------------------------------------------------
Explanation

IRAREA is the area being covered by the depth of irrigation application. It should be equal to the total area of the PERLND, so that hydrologic response is uniform. This parameter is used only when withdrawals are made from a RCHRES, i.e., RPRIOR > 0 in Table-type IRRIG-SOURCE.

The remainder of the table is needed only when IRRGFG=2.

IREFF is the irrigation method efficiency. It is used to calculate gross irrigation demand from net irrigation demand.

ARZI is the areal fraction of the root zone that is irrigated.

WILTP and FLDCAP are the the wilting point and field capacity of the soil for all layers when SZONFG = 0 in Table-type IRRIG-PARM1.

CRDEP is the irrigated crop root depth when VAWDFG = 0 in Table-type IRRIG-PARM1.

IRAWD is the allowable water depletion when VCRDFG = 0 in Table-type IRRIG-PARM1.

CAPRIS is the maximum capillary rise when IROPFG = 1 in Table-type IRRIG-PARM1.


CROP-DATES

 Planting and harvesting dates

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<ncr>          NCRP            I5         1       1       3
<m>            CRPDAT(*)       2I3        1       1      12
<d>                                       1       1      31
------------------------------------------------------------
Explanation

NCRP is the number of crops per year.

CRPDAT is the month and day of planting and harvesting for each crop. Crop seasons cannot overlap, but a season may extend beyond the end of the calendar year.

Cropping dates are required in two cases: 1) the PWATER irrigation module when IRRGFG=2 in Table-type PWAT-PARM1, and VCRDFG and/or VAWDFG = 2 in Table-type IRRIG-PARM1; 2) the yield-based method of plant uptake is being used (NUPTFG = 1 in Table-type NIT-FLAGS and/or PUPTFG = 1 in Table-type PHOS-FLAGS).

This table should only be entered once for the PWATER, NITR, and PHOS sections.


CROP-STAGES

 Crop growth stages

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<crpstage>     CRPSTG(4,*)    4F10.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

The crop seasons established in Table-type CROP-DATES are divided into four growth stages. CRPSTG is the array of fractions of the length of each crop season which makes up each of the four stages.

This table is required only when IRRGFG = 2 in Table-type PWAT-PARM1, and VCRDFG and/or VAWDFG = 2 in Table-type IRRIG-PARM1. The table must be repeated NCRP times.


CROP-SEASPM

 Crop growth stage parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<crpseaspm>    CRPAWD(4)      4F10.0  0.0     0.0     1.0     none    Both
               CRPRDP(2)      2F10.0  0.0     0.0     none    in      Engl
                                      0.0     0.0     none    cm      Metric
--------------------------------------------------------------------------------
Explanation

CRPAWD(4) is the allowable water depletion for each of the four stages for an annual crop. It is assumed to be constant throughout each stage.

CRPRDP(2) is the initial and final crop root depth for irrigation. The depth of irrigation is assumed to be equal to the initial depth during stage 1, rising linearly during stage 2 to remain at the final level throughout stages 3 and 4.

This table is required only when IRRGFG = 2 in Table-type PWAT-PARM1, and VCRDFG and/or VAWDFG = 2 in Table-type IRRIG-PARM1. The table is repeated NCRP times.


SOIL-DATA

 Soil layer depths and bulk densities

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<depths>       none           4F8.0   none    .001    1000    in      Engl
                                      none    .0025   2500    cm      Metric
<bulkdens>     none           4F8.0   103     50      150     lb/ft3  Engl
                                      1.65    0.80    2.40    g/cm3   Metric
--------------------------------------------------------------------------------
Explanation

The first four values are the depths (thicknesses) of the surface, upper, lower and groundwater layers, respectively; the second group of four values are the corresponding bulk densities of the soil in those layers. The soil depths are used in the PWATER irrigation algorithm if IRRGFG=2 in Table-type PWAT-PARM2, and all values are used in the PEST, NITR, and PHOS sections. In the latter case, the depth and bulk density are multiplied together by the program to obtain the mass of soil in each layer in order to compute the concentrations of adsorbed chemicals.


SOIL-DATA2

 Wilting points for each soil layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<wiltpt>       WILTPT(4)      4F10.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

The wilting point is used to determine when the soil is too dry for plant uptake of water or nutrients to occur. WILTPT is input as a fraction (volume basis).

It is required in two cases: 1) the PWATER irrigation module when IRRGFG=2 in Table-type PWAT-PARM1, and SZONFG = 1 in Table-type IRRIG-PARM1; 2) the yield-based method of plant uptake is being used (NUPTFG = 1 in Table-type NIT-FLAGS and/or PUPTFG = 1 in Table-type PHOS-FLAGS).

This table should only be entered once for the PWATER, NITR, and PHOS sections.


SOIL-DATA3

 Field capacity for each soil layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<wiltpt>       FDCAP(4)       4F10.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

The field capacity is the maximum amount of water that the soil can hold after gravity drainage. It is input as a fraction (volume basis).

FDCAP is required when IRRGFG=2 in Table-type PWAT-PARM1 and SZONFG=1 in Table-type IRRIG-PARM1.


MON-IRR-CRDP

 Monthly crop root depth

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-crdep>    CRDEPM(12)     12F5.0  0.0     0.0     none    in      Engl
                                      0.0     0.0     none    cm      Metric
--------------------------------------------------------------------------------
Explanation

Monthly values of the crop root depth for irrigation. This table is only required if VCRDFG=1 in Table-type IRRIG-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-IRR-AWD

 Monthly allowable water depletion

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-awd>      IRAWDM(12)     12F5.0  0.0     0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

Monthly values of the allowable water depletion for irrigation. This table is only required if VAWDFG=1 in Table-type IRRIG-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


IRRIG-SCHED

 Scheduled irrigation applications

Layout
******

  IRRIG-SCHED
            yr  mo dy hr mn dur    rate         yr  mo dy hr mn dur    rate
  <-range> <--> <> <> <> <><---><-------->     <--> <> <> <> <><---><-------->
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  (repeats until all operations of this type are covered)
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  END IRRIG-SCHED

*******
Example
*******

  IRRIG-SCHED
          <---------Application----------> *** <---------Application---------->
    <PLS ><-----date------> IRDU    IRRATE *** <-----date------> IRDU    IRRATE
    x -  x yyyy mm dd hh mm  min     in/hr ***  yyyy mm dd hh mm  min     in/hr
  101      1989/ 6/15  4:00  240       0.3      1989/ 6/22  4:00  120       0.2
  101      1989/ 6/29  4:00  300       0.3
  END IRRIG-SCHED

*******************************************************************************

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<yr>           IRDATE(5,*)    I4      0       0       none    none    Both
<mo>                          I2      1       0       12      none    Both
<dy>                          I2      1       0       31      none    Both
<hr>                          I2      0       0       24      none    Both
<mn>                          I2      0       0       60      none    Both
<dur>          IRDURA(*)      I5      0       0       none    min     Both
<rate>         IRRATE(*)      F10.0   0.0     0.0     none    in/hr   Engl
                                      0.0     0.0     none    mm/hr   Metric
--------------------------------------------------------------------------------
Explanation

The entries for each PERLND are repeated NSKED times, two to a line. The maximum value of NSKED is 20.

IRDATE(5,*) is the start date for each irrigation event. If the year is blank or zero, the application occurs annually, but in that case, the duration may not extend across a calendar year boundary.

IRDURA(*) is the duration of application in minutes.

IRRATE(*) is the rate of water application in depth/hour.

This table is required only if IRRGFG = 3 in Table-type IRRIG-PARM1.


IRRIG-SOURCE

 Source priorities for irrigation withdrawals

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<irrsrc>       XPRIOR         I10     0       0       3       none    Both
               XFRAC          F10.0   1.0     0.0     1.0     none    Both
               GPRIOR         I10     0       0       3       none    Both
               GFRAC          F10.0   1.0     0.0     1.0     none    Both
               RPRIOR         I10     0       0       3       none    Both
               RFRAC          F10.0   1.0     0.0     1.0     none    Both
               IRCHNO         I10     0       0       999     none    Both
--------------------------------------------------------------------------------
Explanation

Irrigation withdrawals may come from any or all of three sources: external sources, active groundwater, and RCHRES. Each source is assigned a priority, 1 being the highest, and 3 the lowest. A zero priority means that the source is unused for this PERLND. Two sources, or even all three, may have the same priority, in which case fractions specify how much of the irrigation demand to take from each source.

XPRIOR, GPRIOR, and RPRIOR are the priorities associated with each source, respectively. XFRAC, GFRAC, and RFRAC are the corresponding fractions.

IRCHNO is the ID number of the source RCHRES in the OPN SEQUENCE block.


IRRIG-TARGET

 Target fractions for irrigation applications

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<irrtgt>       IRRTGT(5)      5F10.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

IRRTGT(5) is the fraction of the gross irrigation application that is applied to each of five possible targets: 1) interception storage; 2) soil surface; 3) upper soil zone; 4) lower soil zone; 5) active groundwater storage.


 SEDMNT input

SEDMNT input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.


SED-PARM1

 First group of SEDMNT parameters

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<sed-parm1>    CRVFG          3I5     0       0       1
               VSIVFG                 0       0       2
               SDOPFG                 0       0       1
-----------------------------------------------------------
Explanation

If CRVFG is 1, erosion-related cover may vary throughout the year. Values are supplied in Table-type MON-COVER.

If VSIVFG is 1, the rate of net vertical sediment input may vary throughout the year. If VSIVFG is 2, the vertical sediment input is added to the detached sediment storage only on days when no rainfall occurred during the previous day. Values are supplied in Table-type MON-NVSI.

SDOPFG is a flag that determines the algorithm used to simulate removal of sediment from the land surface. If SDOPFG is 1, sediment removal will be simulated with the algorithm used in the predecessor models ARM and NPS. If it is 0, a different algorithm will be used (see the Functional Description for details).


SED-PARM2

 Second group of SEDMNT parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sedparm2>     SMPF           6F10.0  1.0     0.001   1.0     none       Both
               KRER                   0.0     0.0     none    complex    Both
               JRER                   none    none    none    complex    Both
               AFFIX                  0.0     0.0     1.0     /day       Both
               COVER                  0.0     0.0     1.0     none       Both
               NVSI                   0.0     none    none    lb/ac/day  Engl
                                      0.0     none    none    kg/ha/day  Metric
--------------------------------------------------------------------------------
Explanation

SMPF is a "supporting management practice factor." It is used to simulate the reduction in erosion achieved by use of erosion control practices.

KRER is the coefficient in the soil detachment equation.

JRER is the exponent in the soil detachment equation.

AFFIX is the fraction by which detached sediment storage decreases each day as a result of soil compaction.

COVER is the fraction of land surface which is shielded from rainfall erosion (not considering snow cover, which is handled by the program).

NVSI is the rate at which sediment enters detached storage from the atmosphere. A negative value can be supplied, for example, to simulate removal by human activity or wind.

If monthly values for COVER and NVSI are being supplied, values supplied for these variables in this table are not relevant.


SED-PARM3

 Third group of SEDMNT parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sedparm3>     KSER           4F10.0  0.0     0.0     none    complex Both
               JSER                   none    none    none    complex Both
               KGER                   0.0     0.0     none    complex Both
               JGER                   none    none    none    complex Both
--------------------------------------------------------------------------------
Explanation

KSER and JSER are the coefficient and exponent in the detached sediment washoff equation.

KGER and JGER are the coefficient and exponent in the matrix soil scour equation, which simulates gully erosion.


MON-COVER

 Monthly erosion-related cover values

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-cover>    COVERM(12)     12F5.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

Monthly values of the COVER parameter. This table is only required if CRVFG is 1 in Table-type SED-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NVSI

 Monthly net vertical sediment input

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-nvsi>     NVSIM(12)      12F5.0  0.0     none    none    lb/ac.d Engl
                                      0.0     none    none    kg/ha.d Metric
--------------------------------------------------------------------------------
Explanation

Monthly values of the net vertical sediment input. This table is only required if VSIVFG is greater than 0 in Table-type SED-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


SED-STOR

 Initial storage of detached sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sed-stor>     DETS           F10.0   0.0     0.0     none    tons/ac    Engl
                                      0.0     0.0     none    tonnes/ha  Metric
--------------------------------------------------------------------------------
Explanation

DETS is the initial storage of detached sediment.


 PSTEMP input

PSTEMP input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.


PSTEMP-PARM1

 Flags for section PSTEMP

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<pstemp-parm1> SLTVFG         4I5     0       0       1
               ULTVFG                 0       0       1
               LGTVFG                 0       0       1
               TSOPFG                 0       0       2
----------------------------------------------------------
Explanation

If SLTVFG is 1, parameters for estimating surface layer temperature can vary throughout the year. Thus, Table-types MON-ASLT and MON-BSLT will be expected.

ULTVFG serves the same purpose for upper layer temperature calculations. Tables MON-ULTP1 and MON-ULTP2 will be expected if ULTVFG is 1. LGTVFG serves the same purpose for the lower layer and active groundwater layer temperature calculations. Table-types MON-LGTP1 and MON-LGTP2 will be expected if LGTVFG is 1.

TSOPFG governs the methods used to estimate subsurface soil temperatures. If TSOPFG is 0, they are computed using a mean departure from air temperature, together with smoothing factors. If TSOPFG is 2, the method is identical, except that the lower layer/groundwater layer temperature is calculated from the upper layer soil temperature, instead of directly from the air temperature. If TSOPFG is 1, upper layer soil temperature is estimated by regression on air temperature (like surface temperature). The lower layer/groundwater layer temperature is supplied directly by the user (a different value may be specified for each month).


PSTEMP-PARM2

 Second group of PSTEMP parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pstemp-parm2> ASLT           6F10.0  32.     0.0     100.    deg F   Engl
                                      0.      -18.    38.     deg C   Metric
               BSLT                   1.0     0.001   2.0     deg F/F Engl
                                      1.0     0.001   2.0     deg C/C Metric

Definition of the remaining quantities depends on soil temperature option flag
(TSOPFG in Table-type PSTEMP-PARM1)

TSOPFG = 0 or 2:
               ULTP1                  none    none    none    none    Both
               ULTP2                  none    none    none    F deg   Engl
                                      none    none    none    C deg   Metric
               LGTP1                  none    none    none    none    Both
               LGTP2                  none    none    none    F deg   Engl
                                      none    none    none    C deg   Metric
TSOPFG = 1:
               ULTP1                  none    none    none    Deg F   Engl
                                      none    none    none    Deg C   Metric
               ULTP2                  none    none    none    Deg F/F Engl
                                      none    none    none    Deg C/C Metric
               LGTP1                  none    none    none    Deg F   Engl
                                      none    none    none    Deg C   Metric
               LGTP2                  not used
--------------------------------------------------------------------------------
Explanation

ASLT is the surface layer temperature when the air temperature is 32 degrees F (0 degrees C). It is the intercept of the surface layer temperature regression equation.

BSLT is the slope of the surface layer temperature regression equation.

If TSOPFG = 0 then:

ULTP1 is the smoothing factor in the upper layer temperature calculation.

ULTP2 is the mean difference between upper layer soil temperature and air temperature.

LGTP1 and LGTP2 are the smoothing factor and mean departure from air temperature for calculating lower layer/groundwater soil temperature.

If TSOPFG = 1 then:

ULTP1 and ULTP2 are the intercept and slope in the upper layer soil temperature regression equation (like ASLT and BSLT for the surface layer).

LGTP1 is the lower layer/groundwater layer soil temperature.

LGTP2 is not used.

If TSOPFG = 2 then:

ULTP1 is the smoothing factor in the upper layer temperature calculation.

ULTP2 is the mean difference between upper layer soil temperature and air temperature.

LGTP1 and LGTP2 are the smoothing factor and mean departure from the upper layer soil temperature for calculating lower layer/groundwater soil temperature.

If monthly values are being supplied for any of these quantities (in Table-type MON-xxx), the value appearing in this table is not relevant.


MON-ASLT

 Monthly values for ASLT

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-aslt>     ASLTM(12)      12F5.0  32.     0.      100.    deg F   Engl
                                      0.      -18.    38.     deg C   Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if SLTVFG is 1 in Table-type PSTEMP-PARM1.

The input monthly values apply to the first day of the month; values for intermediate days are obtained by interpolating between successive monthly values.


MON-BSLT

 Monthly values for BSLT

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-bslt>     BSLTM(12)      12F5.0  1.0     0.001   2.0     deg F/F Engl
                                      1.0     0.001   2.0     deg C/C Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if SLTVFG is 1 in Table-type PSTEMP-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-ULTP1

 Monthly values for ULTP1

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-ultp1>    ULTP1M(12)     12F5.0  see notes for Table-type PSTEMP-PARM2
--------------------------------------------------------------------------------
Explanation

This table is only required if ULTVFG is 1 in Table-type PSTEMP-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-ULTP2

 Monthly values for ULTP2

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-ultp2>    ULTP2M(12)     12F5.0  see notes for Table-type PSTEMP-PARM2
--------------------------------------------------------------------------------
Explanation

This table is only required if ULTVFG is 1 in Table-type PSTEMP-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-LGTP1

 Monthly values for LGTP1

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-lgtp1>    LGTP1M(12)     12F5.0  see notes for Table-type PSTEMP-PARM2
--------------------------------------------------------------------------------
Explanation

This table is only required if LGTVFG is 1 in Table-type PSTEMP-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-LGTP2

 Monthly values for LGTP2

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-lgtp2>    LGTP2M(12)     12F5.0  none    none    none    F deg   Engl
                                      none    none    none    C deg   Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if LGTVFG is 1 in Table-type PSTEMP-PARM1, and TSOPFG is 0 or 2.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


PSTEMP-TEMPS

 Initial temperatures

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pstemp-temps> AIRTC          4F10.0  60.     -20.    120.    deg F   Engl
                                      16.     -29.    49.     deg C   Metric
               SLTMP                  60.     -20.    120.    deg F   Engl
                                      16.     -29.    49.     deg C   Metric
               ULTMP                  60.     -20.    120.    deg F   Engl
                                      16.     -29.    49.     deg C   Metric
               LGTMP                  60.     -20.    120.    deg F   Engl
                                      16.     -29.    49.     deg C   Metric
--------------------------------------------------------------------------------
Explanation

These are the initial temperatures:

AIRTC - air temperature

SLTMP - surface layer soil temperature

ULTMP - upper layer soil temperature

LGTMP - lower layer/groundwater layer soil temperature


 PWTGAS input

PWTGAS input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.


PWT-PARM1

 Flags for section PWTGAS

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<pwt-parm1>    IDVFG          4I5     0       0       1
               ICVFG                  0       0       1
               GDVFG                  0       0       1
               GCVFG                  0       0       1
----------------------------------------------------------
Explanation

Each of these flags indicate whether or not a parameter is allowed to vary throughout the year, and thus, whether or not the corresponding table of monthly values will be expected:

Flag Parameter Table For Monthly Values

IDVFG Interflow dissolved oxygen concentration MON-IFWDOX

ICVFG Interflow CO2 concentration MON-IFWCO2

GDVFG Groundwater dissolved oxygen concentration MON-GRNDDOX

GCVFG Groundwater CO2 concentration MON-GRNDCO2


PWT-PARM2

 Second group of PWTGAS parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwt-parm2>    ELEV           5F10.0  0.0     -1000.  30000.  ft      Engl
                                      0.0     -300.   9100.   m       Metric
               IDOXP                  0.0     0.0     20.     mg/l    Both
               ICO2P                  0.0     0.0     1.0     mg C/l  Both
               ADOXP                  0.0     0.0     20.     mg/l    Both
               ACO2P                  0.0     0.0     1.0     mg C/l  Both
--------------------------------------------------------------------------------
Explanation

ELEV is the elevation of the PLS above sea level; it is used to adjust the saturation concentrations of dissolved gases in surface outflow.

IDOXP is the concentration of dissolved oxygen in interflow outflow.

ICO2P is the concentration of dissolved CO2 in interflow outflow.

ADOXP is the concentration of dissolved oxygen in active groundwater outflow.

ACO2P is the concentration of dissolved CO2 in active groundwater outflow.


LAT-FACTOR

 Lateral inflow concentration factors

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<lat-factor>   SDLFAC         4F10.0  0.0     0.0     1.0     none    Both
               SLIFAC                 0.0     0.0     1.0     none    Both
               ILIFAC                 0.0     0.0     1.0     none    Both
               ALIFAC                 0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is used by Sections PWTGAS and PQUAL. The parameters in this table specify the weighting factors for the lateral inflow concentrations of non-mass-balance quality constituents; they are used in determining the outflow concentration.

SDLFAC is the weighting factor for sediment-associated constituents (QUALSD) in Section PQUAL.

SLIFAC is the weighting factor for surface outflow of temperature and dissolved gases in Section PWTGAS. It is not used for surface outflow of general quality constituents (QUALOF) in Section PQUAL, because these constituents maintain a mass-balance.

ILIFAC is the weighting factor for interflow outflow of temperature and dissolved gases in Section PWTGAS, and for interflow-associated constituents (QUALIF) in Section PQUAL.

ALIFAC is the weighting factor for baseflow outflow of temperature and dissolved gases in Section PWTGAS, and for groundwater-associated constituents (QUALGW) in Section PQUAL.


MON-IFWDOX

 Monthly interflow dissolved oxygen concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-ifwdox>   IDOXPM(12)     12F5.0  0.0     0.0     20.0    mg/l    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if IDVFG is 1 in Table-type PWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-IFWCO2

 Monthly interflow CO2 concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-ifwco2>   ICO2PM(12)     12F5.0  0.0     0.0     1.0     mg C/l  Both
--------------------------------------------------------------------------------
Explanation

This table is only required if ICVFG is 1 in Table-type PWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-GRNDDOX

 Monthly groundwater dissolved oxygen concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-grnddox>  ADOXPM(12)     12F5.0  0.0     0.0     20.0    mg/l    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if GDVFG is 1 in Table-type PWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-GRNDCO2

 Monthly groundwater CO2 concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-grndco2>  ACO2PM(12)     12F5.0  0.0     0.0     1.0     mg C/l  Both
--------------------------------------------------------------------------------
Explanation

This table is only required if GCVFG is 1 in Table-type PWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


PWT-TEMPS

 Initial water temperatures

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwt-temps>    SOTMP          3F10.0  60.     32.     100.    deg F   Engl
                                      16.     0.      38.     deg C   Metric
               IOTMP                  60.     32.     100.    deg F   Engl
                                      16.     0.      38.     deg C   Metric
               AOTMP                  60.     32.     100.    deg F   Engl
                                      16.     0.      38.     deg C   Metric
--------------------------------------------------------------------------------
Explanation

These are the initial values of outflow water temperatures:

SOTMP is surface outflow temperature.

IOTMP is interflow outflow temperature.

AOTMP is active groundwater outflow temperature.


PWT-GASES

 Initial dissolved oxygen and CO2 concentrations

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<pwt-gases>    SODOX          6F10.0  0.0     0.0     20.     mg/l    Both
               SOCO2                  0.0     0.0     1.0     mg C/l  Both
               IODOX                  0.0     0.0     20.     mg/l    Both
               IOCO2                  0.0     0.0     1.0     mg C/l  Both
               AODOX                  0.0     0.0     20.     mg/l    Both
               AOCO2                  0.0     0.0     1.0     mg C/l  Both
--------------------------------------------------------------------------------
Explanation

These are the initial concentrations of dissolved gases in outflow:

SODOX is DO concentration in surface outflow.

SOCO2 is CO2 concentration in surface outflow.

IODOX is DO concentration in interflow outflow.

IOCO2 is CO2 concentration in interflow outflow.

AODOX is DO concentration in active groundwater outflow.

AOCO2 is CO2 concentration in active groundwater outflow.


 PQUAL input

PQUAL input
Explanation

The exact format of each of the tables mentioned above, except LAT-FACTOR, is detailed in the documentation which follows. LAT-FACTOR is documented under the input for Section PWTGAS (4.4(1).7).

Tables enclosed in brackets [] are not always required; for example, because all the values can be defaulted.


NQUALS

 Total number of quality constituents simulated

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<nql>          NQUAL          I5      1       1       10
----------------------------------------------------------
Explanation

The total number of quality constituents simulated in Section PQUAL is indicated in this table. The set of tables below Table-type PQL-AD-FLAGS is repeated for each quality constituent.


PQL-AD-FLAGS

 Atmospheric deposition flags for PQUAL

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         PQADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

PQADFG is an array of flags indicating the source of atmospheric deposition data. The QUAL ID number is determined by the order in which the QUALS are input in the tables below. Each QUAL has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series PQADFX or PQADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.

It is an error to specify a non-zero flag value for a non-QUALOF.


QUAL-PROPS

 Identifiers and flags for a quality constituent

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<qualid>       QUALID         3A4     none    none    none
<qt>           QTYID          A4      none    none    none
<flags>        QSDFG          9I5     0       0       1
               VPFWFG                 0       0       2
               VPFSFG                 0       0       1
               QSOFG                  0       0       1
               VQOFG                  0       0       1
               QIFWFG                 0       0       1
               VIQCFG                 0       0       4
               QAGWFG                 0       0       1
               VAQCFG                 0       0       4
----------------------------------------------------------
Explanation

QUALID is a 10 character identifier (name) for the quality constituent.

QTYID is a 4 character identifier for the units associated with this constituent (e.g., kg, or lb). These are the units referred to as "qty" in subsequent tables (e.g., Table-type QUAL-INPUT).

If QSDFG is 1 then:

  1. This constituent is a QUALSD; it is assumed to be sediment-associated.
  2. If VPFWFG is 1 or greater, the washoff potency factor may vary throughout the year. Table-type MON-POTFW is expected. If VPFWFG is 2, the daily factors are not computed by interpolation between the monthly values.
  3. If VPFSFG is 1, the scour potency factor may vary throughout the year. Table-type MON-POTFS is expected.

If QSOFG is 1 or 2 then:

  1. This constituent is a QUALOF; it is assumed to be directly associated with overland flow. If QSOFG is 1, then accumulation and removal occur daily, independently of atmospheric deposition. If QSOFG is 2, then accumulation and removal occur every interval, and the removal rate is applied to atmospheric deposition and lateral inflows, as well as the accumulation.
  2. If VQOFG is 1 then the rate of accumulation and the limiting storage of the QUALOF may vary throughout the year. Table-types MON-ACCUM and MON-SQOLIM are expected for this QUAL.

If QIFWFG is 1 then:

  1. This constituent is a QUALIF; it is assumed to be associated with interflow.
  2. If VIQCFG 1 or greater, the concentration of this constituent in interflow outflow may vary throughout the year. Table-type MON-IFLW-CONC is expected. If VIQCFG is 2 or 4, the daily values are obtained directly from the monthly values; no interpolation between monthly values is performed. If VIQCFG is 3 or 4, the units of the input concentrations are mg/l; note: this option requires that the "qty" units be pounds (English system) or kilograms (Metric system).

If QAGWFG is 1 then:

  1. This constituent is a QUALGW (groundwater associated).
  2. If VAQCFG is 1 or greater, the concentration of this constituent in groundwater outflow may vary throughout the year. Table-type MON-GRND-CONC is expected. If VAQCFG is 2 or 4, the daily values are obtained directly from the monthly values; no interpolation between monthly values is performed. If VAQCFG is 3 or 4, the units of the input concentrations are mg/l; note: this option requires that the "qty" units be pounds (English system) or kilograms (Metric system).


QUAL-INPUT

 Nonseasonal PQUAL parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<qual-input>   SQO            8F8.0   0.0     0.0     none    qty/ac    Engl
                                      0.0     0.0     none    qty/ha    Metric
               POTFW                  0.0     0.0     none    qty/ton   Engl
                                      0.0     0.0     none    qty/tonne Metric
               POTFS                  0.0     0.0     none    qty/ton   Engl
                                      0.0     0.0     none    qty/tonne Metric
               ACQOP                  0.0     0.0     none    qty/ac.d  Engl
                                      0.0     0.0     none    qty/ha.d  Metric
               SQOLIM                 .000001 .000001 none    qty/ac    Engl
                                      .000002 .000002 none    qty/ha    Metric
               WSQOP                  1.64    0.01    none    in/hr     Engl
                                      41.7    0.25    none    mm/hr     Metric
               IOQC                   0.0     0.0     none    qty/ft3   Engl
                                      0.0     0.0     none    qty/l     Metric
               AOQC                   0.0     0.0     none    qty/ft3   Engl
                                      0.0     0.0     none    qty/l     Metric
--------------------------------------------------------------------------------
Explanation

The following variables are applicable only if the constituent is a QUALSD:

  1. POTFW is the washoff potency factor.
  2. POTFS is the scour potency factor.

A potency factor is the ratio of constituent yield to sediment (washoff or scour) outflow.

The following variables are applicable only if the constituent is a QUALOF:

  1. SQO is the initial storage of QUALOF on the surface of the PLS.
  2. ACQOP is the rate of accumulation of QUALOF.
  3. SQOLIM is the maximum storage of QUALOF.
  4. WSQOP is the rate of surface runoff which will remove 90 percent of stored QUALOF per hour.

    IOQC is the concentration of the constituent in interflow outflow; it is meaningful only if this QUAL is a QUALIF.

    AOQC is the concentration of the constituent in active groundwater outflow; it is meaningful only if this QUAL is a QUALGW.

    If monthly values are being supplied for any of these quantities, the value in this table is not relevant; instead, the system expects and uses values supplied in Table-type MON-xxx.


MON-POTFW

 Monthly washoff potency factor

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-potfw>    POTFWM(12)     12F5.0  0.0     0.0     none    qty/ton Engl
                                      0.0     0.0     none    qty     Metric
                                                              /tonne
--------------------------------------------------------------------------------
Explanation

This table is only required if VPFWFG is greater than 0 in Table-type QUAL-PROPS.

If VPFWFG is 1 or 3, the input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values. If VPFWFG is 2 or 4, the input monthly values apply directly to all days of the month.


MON-POTFS

 Monthly scour potency factor

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-potfs>    POTFSM(12)     12F5.0  0.0     0.0     none    qty/ton Engl
                                      0.0     0.0     none    qty     Metric
                                                              /tonne
--------------------------------------------------------------------------------
Explanation

This table is only required if VPFSFG is 1 in Table-type QUAL-PROPS.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-ACCUM

 Monthly accumulation rates of QUALOF

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-accum>    ACQOPM(12)     12F5.0  0.0     0.0     none    qty/ac.d Engl
                                      0.0     0.0     none    qty/ha.d Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if VQOFG is 1 in Table-type QUAL-PROPS.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-SQOLIM

 Monthly limiting storage of QUALOF

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-sqolim>   SQOLIM(12)     12F5.0 1.E-6   1.E-6    none    qty/ac  Engl
                                     2.E-6   2.E-6    none    qty/ha  Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if VQOFG is 1 in Table-type QUAL-PROPS.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-IFLW-CONC

 Monthly concentration of QUAL in interflow

Details

--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-iflw-conc>IOQCM(12)      12F5.0  0.0     0.0     none    qty/ft3 Engl
                                      0.0     0.0     none    qty/l   Metric
    If VIQCFG = 3 or 4 in
    Table-type QUAL-PROPS:            0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if VIQCFG is greater than 0 in Table QUAL-PROPS.

If VIQCFG is 1 or 3, the input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values. If VIQCFG is 2 or 4, the input monthly values apply directly to all days of the month.


MON-GRND-CONC

 Monthly concentration of QUAL in active groundwater

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-grnd-conc>AOQCM(12)      12F5.0  0.0     0.0     none    qty/ft3 Engl
                                      0.0     0.0     none    qty/l   Metric
    If VAQCFG = 3 or 4 in
    Table-type QUAL-PROPS:            0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if VAQCFG is greater than 0 in Table QUAL-PROPS.

If VAQCFG is 1 or 3, the input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values. If VAQCFG is 2 or 4, the input monthly values apply directly to all days of the month.


 MSTLAY input

MSTLAY input
Explanation

The exact format of each of the tables mentioned above, except MON-UZSN, is detailed in the documentation which follows. MON-UZSN is documented under the input for Section PWATER.

Note that if all the fields in a table have default values, the table can be omitted from the User's Control Input. Then, the defaults will be used.

Table-types MST-TOPSTOR through MST-SUBFLX should usually not be supplied. See the documentation of those tables for further details.


VUZFG

 Variable upper zone flag

Details
---------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
---------------------------------------------------------
<vuz>          VUZFG          I5      0       0       1
---------------------------------------------------------
Explanation

VUZFG is a flag which indicates whether or not the upper zone nominal storage varies throughout the year or not. A value of zero means it does not vary, a value of 1 means it does. If it does vary, the system will expect a table of type MON-UZSN in the User's Control Input.

Note that Table VUZFG is only required if Section PWATER is inactive. If that section is active VUZFG would have already been provided in the input for PWATER (Table-type PWAT-PARM1).


UZSN-LZSN

 Values of UZSN, LZSN and initial surface storage

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<uzsn>         UZSN           F8.0    none    0.01    10.0    in      Engl
                                      none    0.25    250.    mm      Metric
<lzsn>         LZSN           F8.0    none    0.01    100.    in      Engl
                                      none    0.25    2500.   mm      Metric
<surs>         SURS           F8.0    .001    .001    100.    in      Engl
                                      .025    .025    2500.   mm      Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if Section PWATER is inactive; otherwise, the data would have already been supplied in the input for Section PWATER.

UZSN is the nominal upper zone storage. The value supplied here is irrelevant if VUZFG has been set to 1; in that case monthly values for UZSN are supplied in Table-type MON-UZSN.

LZSN is the nominal lower zone storage.

SURS is the initial surface detention storage.


MST-PARM

 Factors used to adjust solute leaching rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<leach-parms>  SLMPF          3F10.0  1.0     .001    1.0     none    Both
               ULPF                   1.0     1.0     10.0    none    Both
               LLPF                   1.0     1.0     10.0    none    Both
--------------------------------------------------------------------------------
Explanation

These are the factors that are used to adjust solute percolation rates. SLMPF affects percolation from the surface layer storage to the upper layer principal storage. ULPF affects percolation from the upper layer principal storage to the lower layer storage. LLPF affects percolation from the lower layer storage to the active and inactive groundwater.


MST-TOPSTOR

 Initial moisture storage in each topsoil layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<topstor>      SMSTM          3F10.0  0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
               UMSTM                  0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
               IMSTM                  0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table is used to specify the initial moisture content in the surface, upper principal and upper transitory (interflow) storages, respectively.

Note that the values given in this table only affect the water storages for the start of the first interval in the run; there is no carry-over of the values beyond the starting instant. Therefore, in most runs, this table need not be supplied; the default zero values will not cause any problems.


MST-TOPFLX

 Initial fractional fluxes in topsoil layers

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<top-flux>     FSO,FSP,FII,   5F10.0  0.0     0.0     1.0     /ivl    Both
               FUP,FIO
--------------------------------------------------------------------------------
Explanation

These are the initial values of the fractional fluxes of soluble chemicals through the topsoil layers of a PLS.

Note that the values supplied in this table apply at the instant that the run starts. The program computes new values each time step and there is no carry-over of values from one time step to the next. Therefore, in most runs, you can omit this table; the default zero values will not cause any problems.


MST-SUBSTOR

 Initial moisture storage in subsurface layers

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<substor>      LMSTM,AMSTM    2F10.0  0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

These are the initial moisture storages in the lower layer and active groundwater layers, respectively.

Usually, this table should be omitted and the default values used. The comments made on this subject in the explanation for Table-type MST-TOPSTOR are also applicable here.


MST-SUBFLX

 Initial fractional fluxes in subsurface layers

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<subflux>      FLP,FLDP,FAO   3F10.0  0.0     0.0     1.0     /ivl    Both
--------------------------------------------------------------------------------
Explanation

These are the initial fractional fluxes of soluble chemicals through the subsoil layers.

Usually, this table should be omitted and the default values taken. The comments on this subject in the explanation for Table-type MST-TOPFLX are applicable here.


 PEST input

PEST input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows, except for SOIL-DATA, which is documented under the input for Section PWATER.

The comments given alongside the table names above indicate under what circumstances a table is expected.

Note that if all the fields in a table have default values, the table can be omitted from the User's Control Input. Then, the defaults will be adopted. However, any tables that are repeated for multiple soil layers should generally not be omitted because the "nth" occurrence of one of these tables refers to the corresponding "nth" layer. If a table for layer i is omitted, the next occurrence of the table (intended for layer i+1) will be applied to layer i, and unintended results will occur.

ADOPFG is the adsorption/desorption option flag. It is described in the documentation for Table-type PEST-FLAGS below.


PEST-FLAGS

 Flags for pesticide simulation

Details
---------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
---------------------------------------------------------
<nps>          NPST           I5      1       1       3
<itmax>        ITMXPS(*)      3I5     30      1       100
<adopt>        ADOPFG(*)      3I5     2       1       3
---------------------------------------------------------
Explanation

NPST is the number of pesticides being simulated in the PERLND. NPST is limited to 3.

ITMXPS is the maximum number of iterations that will be made in trying to solve for adsorbed and dissolved equilibrium using the Freundlich isotherm. A separate value may be supplied for each pesticide being simulated. If the Freundlich method is not being used, these values have no effect.

ADOPFG(*) are flags which indicate which method will be used to simulate adsorption/desorption for each pesticide:

1 - first-order kinetics

2 - single-value Freundlich method

3 - non-single value Freundlich method


PEST-AD-FLAGS

 Atmospheric deposition flags for pesticides

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         PEADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

PEADFG is an array of flags indicating the source of pesticide atmospheric deposition data. Each pesticide has three forms: crystalline, adsorbed, and solution. Each form has two flags. The first is for dry or total deposition flux (<f>), and the second is for wet deposition concentration (<c>). The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series PEADFX or PEADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


PEST-ID

 Name of pesticide

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<pestid>       PESTID(*)      5A4     none    none    none
----------------------------------------------------------
Explanation

This table specifies the name of the pesticide to which the data in the following tables apply.


PEST-THETA

 Pesticide first-order reaction temperature correction parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<theta>        THDSPS,THADPS  2F10.0  1.05    1.00    2.00    none    Both
--------------------------------------------------------------------------------
Explanation

These parameters are used to adjust the desorption and adsorption rate parameters (respectively), using a modified Arrhenius equation:

Rate at T = (Rate at 35 deg C) * (theta)**(T-35)

This table is only required if first-order kinetics are used to simulate adsorption/desorption (ADOPFG=1 in Table-type PEST-FLAGS).


PEST-FIRSTPM

 Pesticide first-order parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<firstparm>    KDSPS,KADPS    2F10.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

KDSPS and KADPS are the desorption and adsorption rates at 35 deg C.

This table is only required if ADOPFG=1 (first-order kinetics) for this pesticide.


PEST-CMAX

 Maximum solubility of pesticide

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cmax>         CMAX           F10.0   0.0     0.0     none    ppm     Both
--------------------------------------------------------------------------------
Explanation

CMAX is the maximum solubility of the pesticide in water.

This table is only required if ADOPFG= 2 or 3 for this pesticide (Freundlich method of simulating adsorption/desorption).


PEST-SVALPM

 Pesticide parameters for single-value Freundlich method

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<svalpm>       XFIX           3F10.0  0.0     0.0     none    ppm     Both
               K1                     0.0     0.0     none    l/kg    Both
               N1                     none    1.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

XFIX is the maximum concentration (on the soil) of pesticide which is permanently fixed to the soil. K1 and N1 are the coefficient and exponent parameters for the Freundlich adsorption/desorption equation:

X= K1*C**(1/N1) + XFIX

This table is only used if ADOPFG= 2 for this pesticide (single-value Freundlich method). Then, the system expects it to appear four times for this pesticide; first, for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer.


PEST-NONSVPM

 Pesticide parameters for non-single value Freundlich method

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nonsvpm>      XFIX           4F10.0  0.0     0.0     none    ppm     Both
               K1                     0.0     0.0     none    l/kg    Both
               N1                     none    1.0     none    none    Both
               N2                     none    1.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

XFIX is the maximum concentration (on the soil) of pesticide which is permanently fixed in the soil. K1 and N1 are the coefficient and exponent parameters for the Freundlich curve used for adsorption. N2 is the exponent parameter for the auxiliary ("desorption") curve.

This table is only used if ADOPFG= 3 for this pesticide (non-single value Freundlich method).


PEST-DEGRAD

 Pesticide degradation rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<degrad>       SDGCON,UDGCON, 4F10.0  0.0     0.0     1.0     /day    Both
               LDGCON,ADGCON
--------------------------------------------------------------------------------
Explanation

These are the degradation rates of the pesticide in the surface, upper, lower and groundwater layers, respectively. These rates are not adjusted for temperature.


PEST-STOR1

 Initial pesticide storage in surface, upper, lower or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cryst>,<ads>, PSCY,PSAD,     3F10.0  0.0     0.0     none    lb/ac   Engl
<soln>         PSSU                   0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

PSCY is the pesticide in crystalline form, PSAD is the pesticide in adsorbed form and PSSU is the pesticide in solution.

The values given in this table apply to one of the following four soil storages: surface, upper principal, lower or groundwater. The table should appear four times, once for each layer.


PEST-STOR2

 Initial pesticide stored in upper layer transitory (interflow) storage

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ips>          IPS            F10.0   0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

IPS is the initial storage of pesticide in the upper layer transitory (interflow) storage. Since only dissolved pesticide is modeled in that storage, only one value is needed (no crystalline or adsorbed material).


 NITR input

NITR input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows, except for SOIL-DATA, SOIL-DATA2, and CROP-DATES, which are documented under the input for Section PWATER.

This section is complex, and has many possible tables. Users are cautioned to carefully observe the options selected and the tables that are required. The comments given alongside the table names in the above list indicate under what circumstances a table is expected. The flags that determine the expected/required tables are described below as well as under the table where they are input (Table-type NIT-FLAGS below).

AMVOFG is the ammonia volatilization flag.

FORAFG is the ammonium adsorption/desorption method flag.

VNUTFG is the variable nitrogen plant uptake flag.

NUPTFG is the plant uptake method flag.

ALPNFG is the "above-ground plant N and litter compartment" flag.

VPRNFG is the variable plant return flag.

Note that if all the fields in a table have default values, the table can be omitted from the User's Control Input. Then, the defaults will be adopted. However, any tables that are repeated for multiple soil layers should generally not be omitted because the "nth" occurrence of one of these tables refers to the corresponding "nth" layer. If a table for layer i is omitted, the next occurrence of the table (intended for layer i+1) will be applied to layer i, and unintended results may occur.


NIT-FLAGS

 Flags for nitrogen simulation

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<nitflags>     VNUTFG         10I5    0       0       1
               FORAFG                 0       0       1
               ITMAXA                 30      1       100
               BNUMN                  none    1       1000
               CNUMN                  none    1       1000
               NUPTFG                 0      -2       2
               FIXNFG                 0       0       1
               AMVOFG                 0       0       1
               ALPNFG                 0       0       1
               VNPRFG                 0       0       1
----------------------------------------------------------
Explanation

If VNUTFG = 1, the first-order plant uptake parameters for nitrogen are allowed to vary throughout the year and four tables of type MON-NITUPT (or MON-NITUPNI and MON-NITUPAM if saturation kinetics are being simulated) are expected in the User's Control Input. The first appearance is for the surface layer, 2nd for upper layer, 3rd for the lower layer, and 4th for the groundwater layer. If VNUTFG = 0, the uptake rates do not vary through the year and a value for each layer is specified in a single table (Table-type NIT-UPTAKE if first-order kinetics are being simulated or NIT-UPIMKMAX if saturation kinetics are being simulated).

FORAFG indicates which method is to be used to simulate adsorption and desorption of ammonium:

0 - first-order kinetics

1 - single-value Freundlich method

ITMAXA is the maximum number of iterations that will be attempted in solving the Freundlich equation; applicable only if FORAFG= 1.

BNUMN is the number of time steps that will elapse between recalculation of biochemical reaction fluxes. For example, if BNUMN = 10 and the simulation time step is 5 minutes, then these fluxes will be recalculated every 50 minutes. All reactions except adsorption/desorption fall into this category. CNUMN is the corresponding number for the chemical (adsorption/desorption) reactions.

NUPTFG indicated which method is to be used to simulate plant uptake of nitrogen:

0 - first-order kinetics

1 - yield-based algorithm

2 - saturation (Michaelis-Menton) kinetics

-2 - same as for 2, but with parameters constant over all soil layers

If FIXNFG is 1, nitrogen fixation is simulated. For this option, NUPTFG must also be 1. If FIXNFG is zero, or if NUPTFG is not 1, then N fixation is turned off.

If AMVOFG is 1, ammonia volatilization is simulated.

If ALPNFG is 1, above-ground and litter compartments for plant nitrogen are simulated.

If VNPRFG is 1, then the parameters for describing the return of plant nitrogen to the soil are allowed to vary monthly.


NIT-AD-FLAGS

 Atmospheric Deposition Flags for Nitrogen Species

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         NIADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

NIADFG is an array of flags indicating the source of atmospheric deposition data. Each species can be deposited into either the surface or upper soil layers. Each species/layer combination has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series NIADFX or NIADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


NIT-FSTGEN

 Nitrogen first-order general parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<upt-fact>     NO3UTF         2F5.0   1.0     0.001   1.0     none    Both
               NH4UTF                 0.0     0.0     1.0     none    Both
<temp-parms>   THPLN          8F5.0   1.07    1.0     2.0     none    Both
               THKDSA                 1.05    1.0     2.0     none    Both
               THKADA                 1.05    1.0     2.0     none    Both
               THKIMN                 1.07    1.0     2.0     none    Both
               THKAM                  1.07    1.0     2.0     none    Both
               THKDNI                 1.07    1.0     2.0     none    Both
               THKNI                  1.05    1.0     2.0     none    Both
               THKIMA                 1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

These general parameters apply to nitrogen reactions in all the layers; thus, this table only appears once (or not at all, if defaults are used).

NO3UTF and NH4UTF designate which fraction of nitrogen uptake comes from nitrate and ammonium, respectively. Their sum must be unity; otherwise an error message is generated. They are used only if first-order or yield-based plant uptake is being used (NUPTFG = 0 or 1 in Table-type NIT-FLAGS).

The remaining fields specify the temperature coefficients (theta) for the various reactions:

THPLN Plant uptake (not relevant if NUPTFG = 1)

THKDSA Ammonium desorption (only relevant if FORAFG = 0)

THKADA Ammonium adsorption (only relevant if FORAFG = 0)

THKIMN Nitrate immobilization

THKAM Organic N ammonification

THKDNI NO3 denitrification

THKNI Nitrification

THKIMA Ammonium immobilization


NIT-FSTPM

 Nitrogen first-order reaction parameters for the surface, upper, lower or active groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<fstparms>     KDSAM,KADAM,   7F10.0  0.0     0.0     none    /day    Both
               KIMNI,KAM,KDNI,
               KNI,KIMAM
--------------------------------------------------------------------------------
Explanation

These are the first-order reaction rate parameters for a layer of soil:

KDSAM Ammonium desorption (only relevant if FORAFG = 0)

KADAM Ammonium adsorption (only relevant if FORAFG = 0)

KIMNI Nitrate immobilization (only relevant if NUPTFG = 0 or 1)

KAM Organic N ammonification

KDNI Denitrification of NO3

KNI Nitrification

KIMAM Ammonium immobilization (only relevant if NUPTFG = 0 or 1)

HSPF expects this table to appear four times in the User's Control Input; first for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer. If one or more occurrences of the table are missing, all reaction parameters for the affected layer(s) will default to zero.


NIT-ORGPM

 Organic nitrogen transformation parameters for the surface, upper, lower, or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<orgpm>          KLON         4F10.0  1.0E20  0.0     1.0E20  none    Both
                 KRON                 1.0E20  0.0     1.0E20  none    Both
                KONLR                 0.0     0.0     none    /day    Both
                THNLR                 1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is only required in order to simulate detailed organic nitrogen transformations and transport (designed primarily for forests). The table is supplied four times - once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted.

KLON is the particulate/soluble partitioning coefficient for labile organic N. KRON is the particulate/soluble partitioning coefficient for refractory organic N. KONLR is the first-order conversion rate of labile to refractory particulate organic N and THNLR is the associated temperature correction coefficient.


NIT-AMVOLAT

 Ammonia volatilization parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<amvopm>       SKVOL,UKVOL,   6F10.0  0.0     0.0     none    /day    Both
               LKVOL,AKVOL
               THVOL                  1.07    1.0     2.0     none    Both
               TRFVOL                 20.0    0.0    35.0     deg C   Both
--------------------------------------------------------------------------------
Explanation

SKVOL, UKVOL, LKVOL, and AKVOL are the ammonia volatilization rates in the surface, upper, lower, and groundwater layers, respectively. THVOL is the temperature correction coefficient. TRFVOL is the reference temperature for the correction.

This table is only used if volatilization of ammonia is simulated (AMVOFG = 1 in Table-type NIT-FLAGS).


NIT-CMAX

 Maximum solubility of ammonium

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cmax>         CMAX           F10.0   0.0     0.0     none    ppm     Both
--------------------------------------------------------------------------------
Explanation

CMAX is the maximum solubility of ammonium in water. This table only appears once, and is only required if FORAFG = 1 (adsorption/desorption is simulated using single-value Freundlich method).


NIT-SVALPM

 Nitrogen single value Freundlich adsorption/desorption parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<svalpm>       XFIX           3F10.0  0.0     0.0     none    ppm     Both
               K1                     0.0     0.0     none    l/kg    Both
               N1                     none    1.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if FORAFG = 1; that is, adsorption and desorption of ammonium is simulated using the single-value Freundlich method.

This table is exactly analogous to Table-type PEST-SVALPM.


NIT-UPTAKE

 Nitrogen plant uptake rate parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<uptake>       SKPLN,UKPLN,   4F10.0  0.0     0.0     none    /day    Both
               LKPLN,AKPLN
--------------------------------------------------------------------------------
Explanation

SKPLN, UKPLN, LKPLN and AKPLN are the plant nitrogen uptake reaction rate parameters for the surface, upper, lower, and active groundwater layers, respectively. This table is required when first-order plant uptake is being used, and uptake parameters do not vary monthly (NUPTFG = 0 and VNUTFG = 0 in Table-type NIT-FLAGS).


MON-NITUPT

 Monthly plant uptake parameters for nitrogen, for the surface, upper, lower or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-uptake>   KPLNM(*)       12F5.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

This table is required if first-order plant uptake is being used and the plant uptake parameters vary throughout the year (NUPTFG = 0 and VNUTFG = 1 in Table-type NIT-FLAGS). The entire table is supplied four times; first for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer. If omitted, default values will be supplied. For example, if the third and fourth occurrences of the table are omitted, the parameters for the lower and groundwater layers will default to zero.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


NIT-YIELD

 Yield-based nitrogen plant uptake parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<-target->     NUPTGT         F10.0   0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
<-maxrat->     NMXRAT         F10.0   1.0     1.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

NUPTGT is the total annual target for plant uptake of nitrogen for all soil layers and all crops during the calendar year.

NMXRAT is the ratio of the maximum uptake rate to the optimum (target) rate when the crop is making up a deficit in nitrogen uptake.

This table is required only when yield-based plant uptake is being used (i.e., NUPTFG = 1 in Table-type NIT-FLAGS).


MON-NUPT-FR1

 Monthly fractions for yield-based plant uptake of nitrogen

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-nuptfr>   NUPTFM(*)      12F5.0  0.0     0.0      1.0    none    Both
--------------------------------------------------------------------------------
Explanation

These are the fractions of the total annual nitrogen plant uptake target (NUPTGT in Table-type NIT-YIELD) applied to each month. The fractions across the year must sum to unity; otherwise, an error message is generated. This table is only required when yield-based plant uptake of nitrogen is being used (NUPTFG = 1 in Table-type NIT-FLAGS).


MON-NUPT-FR2

 Monthly fractions for yield-based plant uptake of nitrogen from a soil layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name     Format  Def    Min     Max    Units  Unit syst
--------------------------------------------------------------------------------
<mon-layfr> SNUPTM(*),UNUPTM(*) 12F5.0  0.0    0.0     1.0    none   Both
            LNUPTM(*),ANUPTM(*)
--------------------------------------------------------------------------------
Explanation

These are the fractions of the monthly nitrogen plant uptake target (NUPTGT in Table-type NIT-YIELD times NUPTFM in Table-type MON-NUPT-FR1) applied to each soil layer: surface, upper, lower, and active groundwater. The fractions across the four layers (NOT across the 12 months, as for MON-NUPT-FR1) must sum to unity; otherwise an error message is generated. This table is only required when yield-based plant uptake of nitrogen is being used (NUPTFG = 1 in Table-type NIT-FLAGS). Then, the system expects it to appear four times: first, for the surface layer, second for the upper layer, etc. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero.


NIT-UPIMCSAT

 Half saturation constants for nitrogen uptake and immobilization when using saturation kinetics method

(for surface, upper, lower, or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<csatpm>       CSUNI,CSUAM    4F10.0  0.0     0.0     none    ug/l    Both
               CSINI,CSIAM
--------------------------------------------------------------------------------
Explanation

CSUNI and CSUAM are the nitrate and ammonia half saturation constants for uptake. CSINI and CSIAM are the nitrate and ammonia half saturation constants for immobilization.

This table is only required if nitrogen uptake and immobilization are being simulated using the saturation kinetics method (NUPTFG = 2 or -2 in Table-type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.


NIT-UPIMKMAX

 Maximum rate constants for nitrogen uptake and immobilization when using saturation kinetics method

(for surface, upper, lower, or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<kmaxpm>       KUPNI,KUPAM    4F10.0  0.0     0.0     none    mg/l.d  Both
               KIMNI,KIMAM
--------------------------------------------------------------------------------
Explanation

KUPNI and KUPAM are the nitrate and ammonia maximum uptake rates. KIMNI and KIMAM are the nitrate and ammonia maximum immobilization rates.

This table is only required if nitrogen uptake and immobilization are being simulated using the saturation kinetics method (NUPTFG = 2 or -2 in Table-type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.


MON-NITUPNI

 Monthly nitrate uptake maximum rates when using saturation kinetics method

(for the surface, upper, lower or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-upnipm>   KUNIM(*)       12F5.0  0.0     0.0     none    mg/l.d  Both
--------------------------------------------------------------------------------
Explanation

This table contains the maximum nitrate uptake rates when using the saturation kinetics method. The table is required if saturation kinetics are being simulated for uptake and the rates vary monthly (NUPTFG = 2 or -2 and VNUTFG = 1 in Table- type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NITUPAM

 Monthly ammonia uptake maximum rates when using saturation kinetics method

(for the surface, upper, lower or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-upampm>   KUAMM(*)       12F5.0  0.0     0.0     none    mg/l.d  Both
--------------------------------------------------------------------------------
Explanation

This table contains the maximum ammonia uptake rates when using the saturation kinetics method. The table is required if saturation kinetics are being simulated for uptake and the rates vary monthly (NUPTFG = 2 or -2 and VNUTFG = 1 in Table- type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NITIMNI

 Monthly nitrate immobilization rates when using saturation kinetics method

(for the surface, upper, lower or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-imnipm>   KINIM(*)       12F5.0  0.0     0.0     none    mg/l.d  Both
--------------------------------------------------------------------------------
Explanation

This table contains the maximum nitrate immobilization rates when using the saturation kinetics method. The table is required if saturation kinetics are being simulated for immobilization, and the rates vary monthly (NUPTFG = 2 or -2 and VNUTFG = 1 in Table-type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NITIMAM

 Monthly ammonia immobilization rates when using saturation kinetics method

(for the surface, upper, lower or groundwater layer)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-imampm>   KIAMM(*)       12F5.0  0.0     0.0     none    mg/l.d  Both
--------------------------------------------------------------------------------
Explanation

This table contains the maximum ammonia immobilization rates when using the saturation kinetics method. The table is required if saturation kinetics are being simulated for immobilization, and the rates vary monthly (NUPTFG = 2 or -2 and VNUTFG = 1 in Table-type NIT-FLAGS). If NUPTFG = 2, HSPF expects this table to appear four times in the User's Control Input, once for each soil layer. If one or more occurrences of the table are missing, all parameters for the affected layer(s) will be defaulted to zero. If NUPTFG = -2, HSPF expects one occurrence of this table, and uses the same parameters for all four soil layers.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


NIT-BGPLRET

 Below-ground plant nitrogen return rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plrepm>       SKPRBN         F10.0   0.0     0.0     none    /day    Both
               UKPRBN         F10.0   0.0     0.0     none    /day    Both
               LKPRBN         F10.0   0.0     0.0     none    /day    Both
               AKPRBN         F10.0   0.0     0.0     none    /day    Both
               BGNPRF         F10.0   0.0     0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

SKPRBN, UKPRBN, LKPRBN, and AKPRBN are the first-order return rates of below-ground plant N to organic N storage in the four layers. BGNPRF is the fraction of plant N return that becomes particulate refractory organic N. (The remainder becomes particulate labile organic N.)

This table is only used when plant return rates are constant (VPRNFG = 0 in Table-type NIT-FLAGS).


MON-NPRETBG

 Monthly below-ground plant N return rates for the surface, upper, lower or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-plrepm>   KRBNM(*)       12F5.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

This table contains the first-order return rates of below-ground plant N to organic N. The table is used if the plant N return parameters vary throughout the year (VPLRFG = 1 in Table-type NIT-FLAGS). The entire table is supplied four times; first for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer. If omitted, default values will be supplied. For example, if the third and fourth occurrences of the table are omitted, the parameters for the lower and groundwater layers will default to zero.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NPRETFBG

 Monthly refractory fractions for below-ground plant N return

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-plrefr>   BNPRFM(*)      12F5.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table contains the fractions of below-ground plant N return which become particulate refractory organic N. (The rest becomes particulate labile organic N.) The table is used only if the plant N return parameters vary throughout the year (VPLRFG = 1 in Table-type NIT-FLAGS).

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


NIT-AGUTF

 Above-ground plant uptake fractions

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<agutf>        SANUTF,UANUTF, 4F10.0  0.0     0.0     1.0     none    Both
               LANUTF,AANUTF
--------------------------------------------------------------------------------
Explanation

SANUTF, UANUTF, LANUTF and AANUTF are the above-ground plant uptake fractions for the surface, upper, lower, and active groundwater layers, respectively. This table is used only when the above-ground compartment is being simulated and uptake parameters do not vary monthly (ALPNFG = 1 and VNUTFG = 0 in Table-type NIT-FLAGS).


MON-NITAGUTF

 Monthly above-ground plant uptake fractions for nitrogen, for the surface, upper, lower or

groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-agutf>    ANUFM(*)       12F5.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table contains the fractions of plant uptake which go to above-ground plant N storage. The table is used only if the above-ground compartment is being simulated and the plant uptake parameters vary throughout the year (ALPNFG = 1 and VNUTFG = 1 in Table-type NIT-FLAGS). The table is supplied four times; first for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer. If omitted, default values will be supplied. For example, if the third and fourth occurrences of the table are omitted, the parameters for the lower and groundwater layers will default to zero.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


NIT-AGPLRET

 Above-ground plant nitrogen return rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plrepm>       AGKPRN         F10.0   0.0     0.0     none    /day    Both
               SKPRLN         F10.0   0.0     0.0     none    /day    Both
               UKPRLN         F10.0   0.0     0.0     none    /day    Both
               LINPRF         F10.0   0.0     0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

AGKPRN is the first-order return rate of above-ground plant N to litter N.

SKPRLN and UKPRLN are the first-order return rates of litter N to organic N storage in the surface and upper soil layers, respectively.

LINPRF is the fraction of litter N return that becomes particulate refractory organic N. (The rest becomes particulate labile organic N.)

This table is only used when the above-ground and litter compartments are being simulated for nitrogen, and plant return rates are constant (i.e., ALPNFG = 1 and VPRNFG = 0 in Table-type NIT-FLAGS).


MON-NPRETAG

 Monthly above-ground plant N return rates to litter N

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-plrepm>   KRANM(*)       12F5.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

This table contains the first-order return rate of above-ground plant N to litter N. The table is used only when the above-ground compartment is being simulated and the plant N return parameters vary throughout the year (i.e., ALPNFG = 1 and VPLRFG = 1 in Table-type NIT-FLAGS).

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NPRETLI

 Monthly litter plant N return rates for the surface or upper layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-plrepm>   KRLNM(*)       12F5.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

This table contains the return rates of litter plant N to particulate labile organic N in the surface or upper layer. The table is required if the plant N return parameters vary throughout the year (VPLRFG = 1 in Table-type NIT-FLAGS). The entire table is supplied two times; first for the surface layer and second for the upper layer. If omitted, default values will be supplied. For example, if the second occurrence of the table is omitted, the parameters for the upper layer will default to zero.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-NPRETFLI

 Monthly refractory fractions for litter N return

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-plrefr>   LNPRFM(*)      12F5.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table contains the fractions of litter N return which become particulate refractory organic N. (The rest becomes particulate labile organic N.) The table is used only if the litter compartment is being simulated and the plant N return parameters vary throughout the year (ALPNFG = 1 and VPLRFG = 1 in Table-type NIT-FLAGS).

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


NIT-STOR1

 Initial storage of nitrogen in the surface, upper, lower, or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol       Fortran name     Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nit-stor1>  LORGN,AMAD,AMSU, 6F10.0  0.0     0.0     none    lb/ac   Engl
             NO3,PLTN,RORGN           0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table is similar in organization to Table-type PEST-STOR1. It specifies the initial storage of N in one of the four major soil layers. The values in the table are:

LORGN Labile organic nitrogen

AMAD Adsorbed ammonium

AMSU Solution ammonium

NO3 Nitrate

PLTN Nitrogen stored in plants

RORGN Refractory organic nitrogen


NIT-STOR2

 Initial storage of nitrogen in upper layer transitory (interflow) storage

Details
--------------------------------------------------------------------------------
Symbol       Fortran name     Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nit-stor2>  IAMSU,INO3,      6F10.0  0.0     0.0     none    lb/ac   Engl
             ISRON,ISRON,             0.0     0.0     none    kg/ha   Metric
             AGPLTN,LITTRN
--------------------------------------------------------------------------------
Explanation

This table specifies the initial storage of N in the upper layer transitory (interflow) storage. If the above-ground and litter compartments are being simulated (ALPNFG = 1 in Table-type NIT-FLAGS), then the initial storage for these compartments is also specified.

IAMSU Solution ammonium

INO3 Nitrate

ISLON Solution labile organic nitrogen

ISRON Solution refractory organic nitrogen

AGPLTN Above-ground plant nitrogen (only relevant if ALPNFG = 1)

LITTRN Litter nitrogen (only relevant if ALPNFG = 1)


 PHOS input

PHOS input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows, except for SOIL-DATA, SOIL-DATA2, and CROP-DATES, which are documented under the input for Section PWATER.

The comments given alongside the table names above indicate under what circumstances a table is expected. Note that if all the fields in a table have default values, the table can be omitted from the User's Control Input. Then, the defaults will be adopted. However, any tables that are repeated for multiple soil layers should generally not be omitted because the "nth" occurrence of one of these tables refers to the corresponding "nth" layer. If a table for layer i is omitted, the next occurrence of the table (intended for layer i+1) will be applied to layer i, and unintended results may occur.

NUPTFG and PUPTFG are the plant uptake method flag for nitrogen and phosphorus, respectively. VPUTFG and FORPFG are the phosphorus plant uptake flag and the phosphate adsorption/desorption method flag, respectively. NUPTFG is described under Table-type NIT-FLAGS above. The others are described under Table-type PHOS-FLAGS below.


PHOS-FLAGS

 Flags governing simulation of phosphorus

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<phosflags>    VPUTFG         5I5     0       0       1
               FORPFG                 0       0       1
               ITMAXP                 30      1       100
               BNUMP                  none    1       1000
               CNUMP                  none    1       1000
               PUPTFG                 0       0       1
----------------------------------------------------------
Explanation

If VPUTFG = 1, the first-order plant uptake parameters for phosphorus are allowed to vary throughout the year and four tables of type MON-PHOSUPT are expected in the User's Control Input. The first appearance is for the surface layer, 2nd for upper layer, 3rd for the lower layer, and 4th for the groundwater layer. If VPUTFG = 0, the uptake rates do not vary through the year and a value for each layer is specified in a single table (Table-type PHOS-UPTAKE).

FORPFG indicates which method is to be used to simulate adsorption and desorption of phosphate:

0 - first-order kinetics

1 - single-value Freundlich method

ITMAXP is the maximum number of iterations that will be attempted in solving the Freundlich equation; applicable only if FORPFG= 1.

BNUMP is the number of time steps that will elapse between recalculation of biochemical reaction fluxes. For example, if BNUMP = 10 and the simulation time step is 5 minutes, then these fluxes will be recalculated every 50 minutes. All reactions except adsorption/desorption fall into this category. CNUMP is the corresponding number for the chemical (adsorption/desorption) reactions.

PUPTFG indicated which method is to be used to simulate plant uptake of phosphorus:

0 - first-order kinetics

1 - yield-based algorithm


PHOS-AD-FLAGS

 Atmospheric deposition flags for PHOS

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         PHADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

PHADFG is an array of flags indicating the source of atmospheric deposition data. Each species can be deposited into either the surface or upper soil layers. Each species/layer combination has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series PHADFX or PHADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


PHOS-FSTGEN

 Temperature correction parameters for phosphorus reactions

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<theta>        THPLP          5F10.0  1.07    1.0     2.0     none    Both
               THKDSP                 1.05    1.0     2.0     none    Both
               THKADP                 1.05    1.0     2.0     none    Both
               THKIMP                 1.07    1.0     2.0     none    Both
               THKMP                  1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

These are the temperature correction coefficients (theta) for the various reactions:

THPLP Plant uptake (only relevant if PUPTFG=0 in Table PHOS-FLAGS)

THKDSP Phosphate desorption (only relevant if FORPFG=0 in Table PHOS-FLAGS)

THKADP Phosphate adsorption (only relevant if FORPFG=0 in Table PHOS-FLAGS)

THKIMP Phosphate immobilization

THKMP Organic P mineralization


PHOS-FSTPM

 Phosphorus first-order reaction parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<phos-fstpm>   KDSP,KADP,     4F10.0  0.0     0.0     none    /day    Both
               KIMP,KMP
--------------------------------------------------------------------------------
Explanation

This table is analogous to Table-type NIT-FSTPM. The reaction rate parameters supplied in this table are:

KDSP Phosphate desorption (only used if FORPFG=0 in Table-type PHOS-FLAGS)

KADP Phosphate adsorption (only used if FORPFG=0 in Table-type PHOS-FLAGS)

KIMP Phosphate immobilization

KMP Organic P mineralization


PHOS-CMAX

 Maximum solubility of phosphate

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cmax>         CMAX           F10.0   0.0     0.0     none    ppm     Both
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type NIT-CMAX.

CMAX is the maximum solubility of phosphate in water. This table only appears once, and is only required if FORPFG = 1 in Table-type PHOS-FLAGS (adsorption/desorption is simulated using single-value Freundlich method).


PHOS-SVALPM

 Phosphorus single value Freundlich adsorption/desorption parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<svalpm>       XFIX           3F10.0  0.0     0.0     none    ppm     Both
               K1                     0.0     0.0     none            Both
               N1                     none    1.0     none            Both
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type NIT-SVALPM. It is only used if FORPFG= 1 in Table-type PHOS-FLAGS.


PHOS-UPTAKE

 Phosphorus plant uptake parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<phos-uptake>  SKPLP,UKPLP,   4F10.0  0.0     0.0     none    /day    Both
               LKPLP,AKPLP
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type NIT-UPTAKE.

SKPLP, UKPLP, LKPLP and AKPLP are the plant phosphorus uptake reaction rate parameters for the surface, upper, lower, and active groundwater layers, respectively. This table is required when first-order plant uptake is being used, and uptake parameters do not vary monthly (PUPTFG = 0 and VPUTFG = 0 in Table-type PHOS-FLAGS).


MON-PHOSUPT

 Monthly plant uptake parameters for phosphorus, for the surface, upper, lower or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-phosupt>  KPLPM(*)       12F5.0  0.0     0.0     none    /day    Both
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type MON-NITUPT.

This table is required if first-order plant uptake is being used and the plant uptake parameters vary throughout the year (PUPTFG = 0 and VPUTFG = 1 in Table-type PHOS-FLAGS). The entire table is supplied four times; first for the surface layer, second for the upper layer, third for the lower layer, and fourth for the active groundwater layer. If omitted, default values will be supplied. For example, if the third and fourth occurrences of the table are omitted, the parameters for the lower and groundwater layers will default to zero.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


PHOS-YIELD

 Yield-based phosphorus plant uptake parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<-target->     PUPTGT         F10.0   0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
<-maxrat->     PMXRAT         F10.0   1.0     1.0      2.0    none    Both
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type NIT-YIELD.

PUPTGT is the total annual target for plant uptake of phosphorus for all soil layers and all crops during the calendar year.

PMXRAT is the ratio of the maximum uptake rate to the optimum (target) rate when the crop is making up a deficit in phosphorus uptake.

This table is required only when yield-based plant uptake is being used (i.e., PUPTFG = 1 in Table-type PHOS-FLAGS).


MON-PUPT-FR1

 Monthly fractions for yield-based plant uptake of phosphorus

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-puptfr>   PUPTFM(*)      12F5.0  0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type MON-NUPT-FR1.

These are the fractions of the total annual phosphorus plant uptake target (PUPTGT in Table-type PHOS-YIELD) applied to each month. The fractions across the year must sum to unity; otherwise, an error message is generated. This table is only required when yield-based plant uptake of phosphorus is being used (PUPTFG = 1 in Table-type PHOS-FLAGS).


MON-PUPT-FR2

 Monthly fractions for yield-based plant uptake of phosphorus from a soil layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name     Format  Def    Min    Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-layfr> SPUPTM(*),UPUPTM(*) 12F5.0  0.0    0.0    1.0     none    Both
            LPUPTM(*),APUPTM(*)
--------------------------------------------------------------------------------
Explanation

This table is exactly analogous to Table-type MON-NUPT-FR2. Refer to that table for details.


PHOS-STOR1

 Initial phosphorus storage in the surface, upper, lower or groundwater layer

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<phos-stor1>   ORGP,P4AD,     4F10.0  0.0     0.0     none    lb/ac   Engl
               P4SU,PLTP              0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table is analogous to Table-type NIT-STOR1. It specifies the initial storage of P in one of the four major soil layers. The values in the table are:

ORGP Organic phosphorus

P4AD Adsorbed phosphate

P4SU Solution phosphate

PLTP Phosphorus stored in plants


PHOS-STOR2

 Initial storage of phosphate in upper layer transitory (interflow) storage

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<phos>         IP4SU          F10.0   0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table is analogous to Table-type NIT-STOR2. It specifies the initial storage of solution phosphate in the upper layer transitory (interflow) storage.


 TRACER input

TRACER input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Note: if all the fields in a table have default values, the table can be omitted from the User's Control Input. Then, the defaults will be adopted.


TRAC-ID

 Name of conservative substance (tracer)

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<trac-id>      TRACID(*)      5A4     none    none    none
-----------------------------------------------------------
Explanation

TRACID is a 20 character identifier (name) of the tracer substance.


TRAC-AD-FLAGS

 Atmospheric deposition flags for TRACER

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         TRADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

TRADFG is an array of flags indicating the source of atmospheric deposition data. The tracer substance can be deposited into either the surface or upper soil layers. Each layer has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series TRADFX or TRADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


TRAC-TOPSTOR

 Initial quantity of tracer in topsoil storages

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<trac-topstor> STRSU,UTRSU,   3F10.0  0.0     0.0     none    lb/ac   Engl
               ITRSU                  0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table specifies the initial storage of tracer (conservative) in the surface, upper principal, and upper transitory (interflow) storages.


TRAC-SUBSTOR

 Initial quantity of tracer in lower and active groundwater storages

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<trac-substor> LTRSU,ATRSU    2F10.0  0.0     0.0     none    lb/ac   Engl
                                      0.0     0.0     none    kg/ha   Metric
--------------------------------------------------------------------------------
Explanation

This table specifies the initial storage of conservative (tracer) material in the lower and active groundwater layers.


 IMPLND Block

IMPLND Block
Explanation

This block contains the data which are domestic to all the Impervious Land segments in the RUN. The General input is always relevant: other inputs are only required if the module section concerned is active.


ACTIVITY

 Active Sections

Details
------------------------------------------------------------------------
Symbol         Fortran name                Format  Def     Min     Max
------------------------------------------------------------------------
<a-s-vector>   AIRTFG,SNOWFG,IWATFG,       6I5     0       0       1
               SLDFG,IWGFG,IQALFG
------------------------------------------------------------------------
Explanation

The IMPLND module is divided into 6 sections (ATEMP, SNOW, IWATER, SOLIDS, IWTGAS, and IQUAL). The values supplied in this table specify which sections are active and which are not, for each operation involving the IMPLND module. A value of 0 means the section is inactive and 1 means it is active. Any meaningful subset of sections may be active.


PRINT-INFO

 Printout information for IMPLND

Details
-------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-------------------------------------------------------------
<print-flags>  PFLAG(6)       6I5     4       2       6
<piv>          PIVL           I5      1       1       1440
<pyr>          PYREND         I5      9       1       12
-------------------------------------------------------------
Explanation

This table allows the user to vary the printout level (maximum frequency of output) for the various active sections of an operation. The meaning of each permissible value for PFLAG() is:

2 means every PIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, output from Impervious Land-segments 1 thru 7 will occur as follows:

Section   Maximum frequency

ATEMP     10 intervals
SNOW      month
IWATER    never
SOLIDS    --
  thru      | month  (defaulted)
IQUAL     --

A value need only be supplied for PIVL if one or more sections have a printout level of 2. For those sections, printout will occur every PIVL intervals (that is, every PDELT=PIVL*DELT minutes). PIVL must be chosen such that there are an integer number of PDELT periods in a day.

HSPF automatically provides printed output at all standard intervals greater than the specified minimum interval. In the above example, output for section ATEMP will be printed at the end of each 10 intervals, day, month and year.

PYREND is the calendar month which terminates the year for printout purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


BINARY-INFO

 Binary output information for IMPLND

Details
-------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-------------------------------------------------------------
<binary-flags> BFLAG(6)       6I5     4       2       6
<biv>          BIVL           I5      1       1       1440
<byr>          BYREND         I5      9       1       12
-------------------------------------------------------------
Explanation

This table allows the user to produce binary output files that contain the same information generated in the printout (i.e., through the use of table PRINT-INFO). This binary output is accessible using the GenScn interface or custom scripting procedures, and it allows the display and tabulation of all output quantities produced by IMPLND. Binary output is also used to transfer data between HSPF and MODFLOW in the Integrated Hydrologic Model. The user can vary the binary output level (maximum frequency of output) for the various active sections of each IMPLND. The meaning of each permissible value for BFLAG() is:

2 means every BIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, binary output from Impervious Land-segments 1 thru 7 will occur as follows:

Section   	Maximum frequency

ATEMP     	10 intervals
SNOW      	month
IWATER    	never
SOLIDS   	--
thru   	  | month  (defaulted)
IQUAL    	--

A value need only be supplied for BIVL if one or more sections have a binary output level of 2. For those sections, binary output will occur every BIVL intervals (i.e., every BIVL*DELT minutes, where DELT is the number of minutes in the time step of the RUN or INGROUP). BIVL must be chosen such that there are an integer number of binary output periods in a day. Also, if both the binary and printout options are being used for an IMPLND, the values of BIVL (in this table) and PIVL (in table PRINT-INFO) must be the same.

HSPF automatically provides binary output at all standard intervals greater than the specified minimum interval. In the above example, output for section ATEMP will be written at the end of each 10 intervals, day, month and year.

BYREND is the calendar month which terminates the year for binary output purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


GEN-INFO

 Other general information for IMPLND

Details
-------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-------------------------------------------------------------
<ILS-id>       LSID(5)        5A4     none    none    none
<unit-syst>    IUNITS,OUNITS  2I5     1       1       2
<printu>       PUNIT(2)       2I5     0       0       99
<binu>         BUNIT(2)       2I5     0       0       99
-------------------------------------------------------------
Explanation

LSID is a 20 character identifier for an IMPLND.

The values supplied for IUNITS and OUNITS indicate the system of units for input and output time series, respectively. 1 means English units, 2 means Metric units.

Note: All operations in the run must use the same units system for data in the UCI file; therefore, this system of units is specified by EMFG in the GLOBAL block.

The values supplied for PUNIT(1) and PUNIT(2) indicate the destinations (files) of printout in English and metric units, respectively. A value of 0 means no printout is required in that unit system. A non-zero value means printout is required in that system and is the unit number of the file to which printout is to be written. The unit number is associated with a filename in the FILES BLOCK. (For additional information on printout, refer to table PRINT-INFO.)

The values supplied for BUNIT(1) and BUNIT(2) indicate the destinations (files) of binary output in English and metric units, respectively. A value of 0 means no binary output is required in that unit system. A non-zero value means binary output is required in that system, and the value is the unit number of the file to which output is to be written. The unit number is associated with a filename in the FILES BLOCK. . The entry in the FILES block must include the file type (FTYP) “BINO”. (For additional information on binary output, refer to table BINARY-INFO.)

Note that printout and binary output for each Impervious Land Segment can be obtained in either the English or Metric systems, or both, irrespective of the system used to supply the inputs (specified by EMFG in the GLOBAL block).


ATEMP input

Section ATEMP is common to the PERLND and IMPLND modules. Refer to ATEMP in PERLND for documentation.


SNOW input

Section SNOW is common to the PERLND and IMPLND modules. Refer to SNOW in PERLND.


 IWATER input

IWATER input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


IWAT-PARM1

 First group of IWATER parameters (flags)

Details
------------------------------------------------------------
Symbol         Fortran name    Format  Def     Min     Max
------------------------------------------------------------
<iwatparm1>    CSNOFG,RTOPFG,  5I5     0       0       1
               VRSFG,VNNFG,
               RTLIFG
------------------------------------------------------------
Explanation

If CSNOFG is 1, section IWATER assumes that snow accumulation and melt is being considered. It will, therefore, expect that the time series produced by section SNOW are available, either internally (produced in this RUN) or from external sources (produced in a previous RUN). If CSNOFG is 0, no such time series are expected. See the Functional Description for further information.

RTOPFG is a flag that selects the algorithm for computing overland flow. Two optional methods are provided. If RTOPFG is 1, routing of overland flow is done in the same way as in the NPS Model. A value of 0 results in a different algorithm. (See the Functional Description for details).

The flags beginning with "V" indicate whether or not certain parameters are assumed to vary through the year: 1 means they do vary, 0 means they do not. The quantities concerned are:

VRSFG retention storage capacity

VNNFG Manning's n for the overland flow plane

If either of these flags are on, monthly values for the parameter concerned must be supplied (see Table-types MON-RETN and MON-MANNING).

If RTLIFG is 1, any lateral surface inflow to the ILS will be subject to retention storage; if it is 0, lateral inflow is not subject to retention storage.


IWAT-PARM2

 Second group of IWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<iwatparm2>    LSUR           F10.0   none    1.0     none    ft      Engl
                                      none    0.3     none    m       Metric
               SLSUR          F10.0   none    .000001 10.     none    Both
               NSUR           F10.0   0.1     0.001   1.0             Both
               RETSC          F10.0   0.0     0.0     10.0    in      Engl
                                      0.0     0.0     250.    mm      Metric
--------------------------------------------------------------------------------
Explanation

LSUR is the length of the assumed overland flow plane, and SLSUR is the slope.

NSUR is Manning's n for the overland flow plane.

RETSC is the retention (interception) storage capacity of the surface.


IWAT-PARM3

 Third group of IWATER parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<iwatparm3>    PETMAX         F10.0   40.     none    none    degF    Engl
                                      4.4     none    none    degC    Metric
               PETMIN         F10.0   35.     none    none    degF    Engl
                                      1.7     none    none    degC    Metric
--------------------------------------------------------------------------------
Explanation

PETMAX is the air temperature below which E-T will arbitrarily be reduced below the value obtained from the input time series.

PETMIN is the temperature below which E-T will be zero regardless of the value in the input time series. These values are only used if snow is being considered (i.e., CSNOFG= 1 in Table-type IWAT-PARM1).


MON-RETN

 Monthly retention storage capacity

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-retn>     RETSCM(12)     12F5.0  0.0     0.0     10.     in      Engl
                                      0.0     0.0     250.    mm      Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if VRSFG = 1 in Table-type IWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-MANNING

 Monthly Manning's n values

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-Manning>  NSURM(12)      12F5.0  0.1     .001    1.0     complex Both
--------------------------------------------------------------------------------
Explanation

This table is only required if VNNFG = 1 in Table-type IWAT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


IWAT-STATE1

 IWATER initial state variables

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<iwat-state1>  RETS           2F10.0  .001    .001    100     inches  Engl
                                      .025    .025    2500    mm      Metric
               SURS                   .001    .001    100     inches  Engl
                                      .025    .025    2500    mm      Metric
--------------------------------------------------------------------------------
Explanation

This table is used to specify the initial water storages.

RETS is the initial retention storage.

SURS is the initial surface (overland flow) storage.


 SOLIDS input

SOLIDS input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [] above are not always required; for example, because all the values can be defaulted.


SLD-PARM1

 First group of SOLIDS parameters

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<sld-parm1>    VASDFG         3I5     0       0       1
               VRSDFG                 0       0       1
               SDOPFG                 0       0       1
-----------------------------------------------------------
Explanation

If VASDFG is 1, the accumulation rate of solids is allowed to vary throughout the year and Table-type MON-SACCUM is expected. If the flag is zero, the accumulation rate is constant, and is specified in Table-type SLD-PARM2. The corresponding flag for the unit removal rate is VRSDFG.

SDOPFG is a flag that determines the algorithm used to simulate removal of sediment from the land surface. If SDOPFG is 1, sediment removal is simulated with the algorithm used in the NPS model. If it is 0, a different algorithm is used. (See the Functional Description for details).


SLD-PARM2

 Second group of SOLIDS parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sld-parm2>    KEIM           4F10.0  0.0     0.0     none    complex     Both
               JEIM                   none    none    none    complex     Both
               ACCSDP                 0.0     0.0     none    tons/ac.d   Engl
                                      0.0     0.0     none    tonnes/ha.d Metric
               REMSDP                 0.0     0.0     1.0     /day        Both
--------------------------------------------------------------------------------
Explanation

KEIM is the coefficient in the solids washoff equation.

JEIM is the exponent in the solids washoff equation.

ACCSDP is the rate at which solids accumulate on the land surface.

REMSDP is the fraction of solids storage which is removed each day when there is no runoff, for example, because of street sweeping.

If monthly values for the accumulation and removal rates are being supplied, values supplied for these variables in this table are not used by the program.


MON-SACCUM

 Monthly solids accumulation rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-accum>    ACCSDM(12)     12F5.0  0.0     0.0     none    tons/ac.d   Engl
                                      0.0     0.0     none    tonnes/ha.d Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if VASDFG = 1 in Table-type SLD-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-REMOV

 Monthly solids unit removal rates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-remov>    REMSDM(12)     12F5.0  0.0     0.0     1.0     /day    Both
--------------------------------------------------------------------------------
Explanation

This table is only required if VRSDFG = 1 in Table-type SLD-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


SLD-STOR

 Initial solids storage

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sld-stor>     SLDS           F10.0   0.0     0.0     none    tons/ac   Engl
                                      0.0     0.0     none    tonnes/ha Metric
--------------------------------------------------------------------------------
Explanation

SLDS is the initial storage of solids on the impervious surface.


 IWTGAS input

IWTGAS input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.


IWT-PARM1

 Flags for section IWTGAS

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<iwtparm1>     WTFVFG         2I5     0       0       1
               CSNOFG                 0       0       1
-----------------------------------------------------------
Explanation

WTFVFG indicates whether or not the water temperature regression parameters (AWTF and BWTF) are allowed to vary throughout the year, and thus, whether or not Table-types MON-AWTF and MON-BWTF are expected.

If CSNOFG=1, the effects of snow accumulation and melt are considered; if it is zero, they are not. If section IWATER is active, the value of CSNOFG supplied here is ignored because it was first supplied in the input for that section (Table-type IWAT-PARM1).


IWT-PARM2

 Second group of IWTGAS parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<iwt-parm2>    ELEV           3F10.0  0.0     -1000.  30000.  ft      Engl
                                      0.0     -300.   9100.   m       Metric
               AWTF                   32.     0.0     100.    DegF    Engl
                                      0.0     -18.    38.     DegC    Metr
               BWTF                   1.0     0.001   2.0     DegF/F  Engl
                                      1.0     0.001   2.0     DegC/C  Metr
--------------------------------------------------------------------------------
Explanation

ELEV is the elevation of the ILS above sea level; it is used to adjust saturation concentrations of dissolved gases in surface outflow.

AWTF is the surface water temperature when the air temperature is 32 deg F (0 deg C). It is the intercept of the surface water temperature regression equation.

BWTF is the slope of the surface water temperature regression equation.


LAT-FACTOR

 Lateral inflow concentration factors

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<lat-factor>   SDLFAC         2F10.0  0.0     0.0     1.0     none    Both
               SLIFAC                 0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is used by Sections IWTGAS and IQUAL. The parameters specify the weighting factors for the lateral inflow concentrations of non-mass-balance quality constituents to be used in determining the outflow concentration.

SDLFAC is the weighting factor for sediment-associated constituent outflow (QUALSD) in Section IQUAL.

SLIFAC is the weighting factor for surface outflow of temperature and dissolved gases in Section IWTGAS. It is not used for surface outflow of general quality constituents (QUALOF) in Section IQUAL, because these constituents maintain a mass-balance.


MON-AWTF

 Monthly values for AWTF

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-awtf>     AWTFM(12)      12F5.0  32.     0.      100.    deg F   Engl
                                      0.      -18.    38.     deg C   Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if WTFVFG = 1 in Table-type IWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-BWTF

 Monthly values for BWTF

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-bwtf>     BWTFM(12)      12F5.0  1.0     0.001   2.0     deg F/F Engl
                                      1.0     0.001   2.0     deg C/C Metric
--------------------------------------------------------------------------------
Explanation

This table is only required if WTFVFG = 1 in Table-type IWT-PARM1.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


IWT-INIT

 Initial conditions for section IWTGAS

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<iwt-init>     SOTMP          3F10.0  60.0    32.     100.    Deg F   Engl
                                      16.0    .01     38.0    Deg C   Metric
               SODOX                  0.0     0.0     20.0    mg/l    Both
               SOCO2                  0.0     0.0     1.0     mg C/l  Both
--------------------------------------------------------------------------------
Explanation

These are the initial values for the temperature, dissolved oxygen concentration, and CO2 concentration of the surface runoff. The values given in this table do not affect anything in the simulation beyond the start of the first interval of the run. Therefore, in most simulations, this table can be omitted.


 IQUAL input

IQUAL input
Explanation

The exact format of each of the tables mentioned above, except LAT-FACTOR, is detailed in the documentation which follows or in the documentation for the PERLND module. LAT-FACTOR is documented under the input for Section IWTGAS above.

Tables enclosed in brackets [] are not always required;for example, because all the values can be defaulted.


NQUALS

 Total number of quality constituents simulated

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<nql>          NQUAL          I5      1       1       10
----------------------------------------------------------
Explanation

The total number of quality constituents simulated in Section IQUAL is indicated in this table. The set of tables below Table-type IQL-AD-FLAGS is repeated for each quality constituent.


IQL-AD-FLAGS

 Atmospheric deposition flags for IQUAL

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         IQADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

IQADFG is an array of flags indicating the source of atmospheric deposition data for QUALs. Each QUAL has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series IQADFX or IQADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.

Note: atmospheric deposition can only be specified for QUALOF's; it is an error to specify a non-zero flag value for a non-QUALOF.


QUAL-PROPS

 Identifiers and flags for a quality constituent

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<qualid>       QUALID         3A4     none    none    none
<qt>           QTYID          A4      none    none    none
<flags>        QSDFG          4I5     0       0       1
               VPFWFG                 0       0       1
               QSOFG                  0       0       1
               VQOFG                  0       0       1
----------------------------------------------------------
Explanation

QUALID is a 10 character identifier for the quality constituent.

QTYID is a 4 character identifier for the units associated with this constituent (e.g., kg, # (for coliforms)). These are the units referred to as "qty" in subsequent tables (e.g., Table-type QUAL-INPUT).

If QSDFG is 1 then:

  1. This constituent is a QUALSD (sediment associated).
  2. If VPFWFG is 1, the washoff potency factor may vary throughout the year. Table-type MON-POTFW is expected.

If QSOFG is 1 then:

  1. This constituent is a QUALOF; it is assumed to be directly associated with overland flow. If QSOFG is 1, then accumulation and removal occur daily, independently of atmospheric deposition. If QSOFG is 2, then accumulation and removal occur every interval, and the removal rate is applied to atmospheric deposition and lateral inflows, as well as the accumulation.
  2. If VQOFG is 1, the rate of accumulation and the limiting storage of QUALOF may vary throughout the year. Table-types MON-ACCUM and MON-SQOLIM are expected.


QUAL-INPUT

 Surface storage of qual and nonseasonal parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<qual-input>   SQO            5F8.0   0.0     0.0     none    qty/ac    Engl
                                      0.0     0.0     none    qty/ha    Metric
               POTFW                  0.0     0.0     none    qty/ton   Engl
                                      0.0     0.0     none    qty/tonne Metric
               ACQOP                  0.0     0.0     none    qty/ac.d  Engl
                                      0.0     0.0     none    qty/ha.d  Metric
               SQOLIM              0.000001 0.000001  none    qty/ac    Engl
                                   0.000002 0.000002  none    qty/ha    Metric
               WSQOP                  1.64    0.01    none    in/hr     Engl
                                      41.7    0.25    none    mm/hr     Metric
--------------------------------------------------------------------------------
Explanation

The following variable is relevant only if the constituent is a QUALSD:

1. POTFW, the washoff potency factor.

POTFW (washoff potency factor) is the ratio of constituent yield to sediment outflow.

The following variables are applicable only if the constituent is a QUALOF:

1. SQO, the initial storage of QUALOF on the surface of the ILS.

2. ACQOP, the rate of accumulation of QUALOF on the surface.

3. SQOLIM, the maximum storage of QUALOF on the surface.

4. WSQOP, the rate of surface runoff that will remove 90 percent

of stored QUALOF per hour.

If monthly values are being supplied for any of these quantities, the value in this table is not relevant; instead,the system expects and uses values supplied in the corresponding monthly table (Table-types MON-POTFW, MON-ACCUM, MON-SQOLIM).


 RCHRES Block

RCHRES Block
Explanation

This block contains the data that are domestic to all RCHRES processing units in the RUN. The general input is always relevant; other input is only required if the module section concerned is active.


 General input

General input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows. Tables enclosed in brackets [], above, are not always required; for example, because all values can be defaulted.


ACTIVITY

 Active Sections

Details
---------------------------------------------------------------------------
Symbol         Fortran name                    Format  Def     Min     Max
---------------------------------------------------------------------------
<a-s-vector>   HYDRFG,ADFG,CONSFG,HTFG,SEDFG   10I5    0       0       1
               GQALFG,OXFG,NUTFG,PLKFG,PHFG
---------------------------------------------------------------------------
Explanation

The RCHRES module is divided into eleven sections. The values supplied in this table specify which sections are active and which are not, for each operation involving the RCHRES module. A value of 0 means inactive and 1 means active. Any meaningful subset of sections may be active, with the following conditions: 1) Section ADCALC must be active if any water quality sections (CONS through PHCARB) are active. 2) If any section in the RQUAL group (Section OXRX through PHCARB) is active, all preceding RQUAL sections must also be active.


PRINT-INFO

 Printout information for RCHRES

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<print-flags>  PFLAG(10)      10I5    4       2       6
<pivl>         PIVL           I5      1       1       1440
<pyr>          PYREND         I5      9       1       12
----------------------------------------------------------
Explanation

HSPF permits the user to vary the printout level (maximum frequency) for the various active sections of an operation. The meaning of each permissible value for PFLAG(*) is:

2 means every PIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, output from RCHRESs 1 through 7 will occur as follows:

Section  Maximum frequency

HYDR     10 intervals
ADCALC   10 intervals
CONS     10 intervals
HTRCH    year
SEDTRN   year
GQUAL    10 intervals
OXRX     day
NUTRX    day
PLANK    month (defaulted)
PHCARB   month (defaulted)

A value need only be supplied for PIVL if one or more sections have a printout level of 2. For those sections, printout will occur every PIVL intervals (that is, every PDELT=PIVL*DELT minutes. PIVL must be chosen such that there are an integer number of PDELT periods in a day.

HSPF will automatically provide printed output at all standard intervals greater than the specified minimum interval. In the above example, output for section NUTRX will be printed at the end of each day, month, and year.

PYREND is the calendar month which will terminate the year for printout purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


BINARY-INFO

 Binary output information for RCHRES

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<binary-flags> BFLAG(10)      10I5    4       2       6
<bivl>         BIVL           I5      1       1       1440
<byr>          BYREND         I5      9       1       12
----------------------------------------------------------

Explanation

This table allows the user to produce binary output files that contain the same information generated in the printout (i.e., through the use of table PRINT-INFO). This binary output is accessible using the GenScn interface or custom scripting procedures, and it allows the display and tabulation of all output quantities produced by RCHRES. Binary output is also used to transfer data between HSPF and MODFLOW in the Integrated Hydrologic Model.

The user can vary the binary output level (maximum frequency of output) for the various active sections of each RCHRES. The meaning of each permissible value for BFLAG() is:

2 means every BIVL intervals

3 means every day

4 means every month

5 means every year

6 means never

In the example above, binary output from RCHRESs 1 through 7 will occur as follows:

Section  	Maximum frequency

HYDR     	10 intervals
ADCALC   	10 intervals
CONS     	10 intervals
HTRCH    	year
SEDTRN   	year
GQUAL    	10 intervals
OXRX     	day
NUTRX    	day
PLANK    	month (defaulted)
PHCARB   	month (defaulted)

A value need only be supplied for BIVL if one or more sections have a binary output level of 2. For those sections, binary output will occur every BIVL intervals (i.e., every BIVL*DELT minutes, where DELT is the number of minutes in the time step of the RUN or INGROUP). BIVL must be chosen such that there are an integer number of binary output periods in a day. Also, if both the binary and printout options are being used for a PERLND, the values of BIVL (in this table) and PIVL (in table PRINT-INFO) must be the same.

HSPF will automatically provide binary output at all standard intervals greater than the specified minimum interval. In the above example, output for section NUTRX will be written at the end of each day, month, and year.

BYREND is the calendar month which will terminate the year for binary output purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


GEN-INFO

 Other general information for RCHRES

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<rchid>        RCHID(5)       5A4     none    none    none
<nex>          NEXITS         I5      1       1       5
<unit-syst>    IUNITS         5X,I5   1       1       2
               OUNITS         I5      1       1       2
<printu>       PUNIT(2)       2I5     0       0       99
<lak>          LKFG           I5      0       0       1
<binu>         BUNIT(2)       2I5     0       0       99
----------------------------------------------------------
Explanation

RCHID(1-5) is the 20 character name/identifier for the RCHRES.

NEXITS is the number of exits from the RCHRES; it is limited to 5.

The values supplied for IUNITS and OUNITS indicate the system of units for input and output time series, respectively. 1 means English units, 2 means Metric units.

Note: All operations in the run must use the same units system for data in the UCI file; therefore, this system of units is specified by EMFG in the GLOBAL block.

The values supplied for PUNIT(1) and PUNIT(2) indicate the destinations (files) of printout in English and metric units, respectively. A value of 0 means no printout is required in that unit system. A non-zero value means printout is required in that system and is the unit number of the file to which printout is to be written. The unit number is associated with a filename in the FILES BLOCK. (For additional information on printout, refer to table PRINT-INFO.)

LKFG indicates whether the RCHRES is a lake (1) or a stream/river (0). This flag affects the method of calculating bed shear stress (in Section HYDR) and the reaeration coefficient (in Section OXRX).

The values supplied for BUNIT(1) and BUNIT(2) indicate the destinations (files) of binary output in English and metric units, respectively. A value of 0 means no binary output is required in that unit system. A non-zero value means binary output is required in that system, and the value is the unit number of the file to which output is to be written. The unit number is associated with a filename in the FILES BLOCK. The entry in the FILES block must include the file type (FTYP) “BINO”. (For additional information on binary output, refer to table BINARY-INFO.)

Note that printout and binary output for each RCHRES can be obtained in either the English or Metric systems, or both, irrespective of the unit system used to supply the inputs (specified by EMFG in the GLOBAL block).


 HYDR input

HYDR input
Explanation

The exact format of each of the tables mentioned above is detailed in the documentation which follows.

Tables enclosed in brackets [], above, are not always required.


HYDR-PARM1

 Flags for HYDR section

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<v>            VCONFG         I3      0       0       1
<1>            AUX1FG         I3      0       0       2
<2>            AUX2FG         I3      0       0       1
<3>            AUX3FG         I3      0       0       1
<odfvfg>       ODFVFG(5)      5I3     0       -5      8
<odgtfg>       ODGTFG(5)      5I3     0       0       5
<funct>        FUNCT(5)       5I3     1       1       3
----------------------------------------------------------
Explanation

A value of 1 for VCONFG means that F(vol) (volume-dependent) outflow demand components are multiplied by a factor which is allowed to vary through the year. These monthly adjustment factors are input in Table-type MON-CONVF in this section.

A value of 1 for AUX1FG means a routine will be called to compute depth, stage, surface area, average depth, and top width, and values for these parameters will be reported in the printout. These are used in the calculation of precipitation and evaporation fluxes, and simulation of most water quality sections. A value of 0 suppresses the calculation and printout of this information. A value of 2 causes the program to compute the parameters even if the RCHRES volume is 0.

A value of 1 for AUX2FG means average velocity and average cross sectional area will be calculated, and values for these parameters will be reported in the printout. These are used in the simulation of oxygen. A value of 0 suppresses the calculation/printout of this information. If AUX2FG is 1, AUX1FG must also be 1.

A value of 1 for AUX3FG means the shear velocity and bed shear stress will be calculated. These are used in the calculation of deposition and scour of sediment (inorganic and organic). AUX3FG may only be turned ON (=1) if AUX1FG and AUX2FG are also 1.

The value specified for ODFVFG(I) determines the F(vol) component of the outflow demand for exit I. A value of 0 means that the outflow demand does not have a volume dependent component. A value greater than 0 indicates the column number in the FTABLE which contains the F(vol) component. If the value specified for ODFVFG is less than 0, the absolute value indicates the element of array COLIND() which defines a pair of columns in the FTABLE which are used to evaluate the F(vol) component. Further explanation of this latter option is provided in the functional description of the HYDR section in Part E. A value of ODFVFG can be specified for each exit from a RCHRES. (Note: COLIND is specified as a time series.)

The value specified for ODGTFG(I) determines the G(t) (time-dependent) component of the outflow demand for exit I. A value of 0 means that the outflow demand does not have such a component. A value greater than 0 indicates the element (index) number of the array OUTDGT() (or array COTDGT() if Categories are being simulated) which contains the G(t) component. A value of ODGTFG can be specified for each exit from a RCHRES. (Note: OUTDGT and COTDGT are specified in the form of time series.)

FUNCT determines the function used to combine the components of an outflow demand. The possible values and their meanings are:

1 means use the smaller of F(vol) and G(t)

2 means use the larger of F(vol) and G(t)

3 means use the sum of F(vol) and G(t)


HYDR-PARM2

 Parameters for HYDR section

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<hydr-parm2>   FTABNO         5X,F5.0 none    1       999     none    Both
               LEN            F10.0   none    0.01    none    miles   Engl
                                      none    0.016   none    km      Metric
               DELTH          F10.0   0.0     0.0     none    ft      Engl
                                      0.0     0.0     none    m       Metric
               STCOR          F10.0   0.0     none    none    ft      Engl
                                      0.0     none    none    m       Metric
               KS             F10.0   0.0     0.0     .99     none    Both
               DB50           F10.0   .01     .0001   100.    in      Engl
                                      .25     .0025   2500.   mm      Metric
--------------------------------------------------------------------------------
Explanation

FTABNO is the ID number for the F-Table (located in the FTABLES Block) which contains the geometric and hydraulic properties of the RCHRES.

LEN is the length of the RCHRES.

DELTH is the drop in water elevation from the upstream to the downstream extremities of the RCHRES. (It is used if section OXRX is active and reaeration is being computed using the Tsivoglou-Wallace equation; or if section SEDTRN is active and sandload transport capacity is being computed using either the Toffaleti or Colby method).

STCOR is the correction to the RCHRES depth to calculate stage. (Depth + STCOR = Stage)

KS is the weighting factor for hydraulic routing. Choice of a realistic KS value is discussed in the functional description of the HYDR section in Part E.

DB50 is the median diameter of the bed sediment (assumed constant throughout the run). This value is used to:

  1. Calculate the bed shear stress if the RCHRES is a lake.
  2. Calculate the rate of sand transport if the Colby or Toffaleti methods are used.

Note: The value input for DB50 is also used in section SEDTRN as the sand particle diameter required for sandload computations.


MON-CONVF

 Monthly F(vol) adjustment factors

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<mon-convf>    CONVFM(12)     12F5.0  0.0     0.0     none
----------------------------------------------------------

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


HYDR-IRRIG

 Irrigation withdrawal parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<hydirrig>     IREXIT         I10     0       0       5       none    Both
               IRMINV         F10.0   0.0     0.0     none    acre-ft Engl
                                      0.0     0.0     none    Mm3     Metric
--------------------------------------------------------------------------------
Explanation

IREXIT is the exit number for irrigation withdrawals.

IRMINV is the minimum volume below which irrigation withdrawals may not be made.


HYDR-INIT

 Initial conditions for HYDR section

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<vol>          VOL            F10.0   0.0     0.0     none    acre-ft Engl
                                      0.0     0.0     none    Mm3     Metric
 ct            CAT               A2   blank   none    none    none    Both
<colind>       COLIND(5)      5F5.0   4.0     4.0     8.0     none    Both
<outdgt>       OUTDGT(5)      5F5.0   0.0     0.0     none    ft3/s   Engl
                                      0.0     0.0     none    m3/s    Metric
--------------------------------------------------------------------------------
Explanation

VOL is the initial volume of water in the RCHRES.

CAT may be either an integer or a category identifier (ID tag, defined in the CATEGORY block). If it is an ID tag, all initial volume belongs to that category. If CAT is an integer value, the initial volume is divided according to Table-type HYDR-CINIT, where CAT entries are expected. If CAT is zero or blank, the initial volume is divided equally among all active categories. CAT is ignored if no CATEGORY block is present in the UCI file.

The value of COLIND(I) for exit I indicates the pair of columns in the FTABLE that are used to evaluate the initial value of the F(vol) (volume-dependent) component of outflow demand for the exit.

The array OUTDGT(I) specifies the initial value of the outflow demand for exit I, i.e., the G(t) (time-dependent) component. It is ignored if a Category block is present in the UCI file. Initial values for COTDGT are found in Table-type HYDR-CDEMAND.

A non-zero value of COLIND(I) is only meaningful if the outflow from exit I has an F(vol) component. Similarly, a non-zero value for OUTDGT(I) is only meaningful if the outflow from exit I has a G(t) component.


HYDR-CATEGORY

 Categories associated with outflows and other fluxes

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
cpr            CPREC            A2    none    none    none    none    Both
cev            CEVAP            A2    none    none    none    none    Both
cf1-cf5        CFVOL(*)         A2    none    none    none    none    Both
ncgt           NOCGT            I5    0       0       20      none    Both
--------------------------------------------------------------------------------
Explanation

CPREC, CEVAP, CFVOL(*)

This table may be used to specify the categories that are impacted by outflows and other fluxes. For the physical quantities precipitation, evaporation, and exit-specific F(vol) outflow, categories may be specified in one of two ways: 1) A single category is specified by its two-character tag, right-justified in the field. 2) If more than one category must be specified, then the number of categories is placed in the field. Then the multiple categories are fully specified in Table-types HYDR-CPREC, HYDR-CEVAP, and HYDR-CFVOL. If the field is blank or zero, or the table is omitted, then water is added to or subtracted from all categories in proportion to their current storage fraction.

NCOGT is the number of COTDGT time series specifying category-associated demands from the reach. These time series are assigned priorities and initial values in Table-type HYDR-CDEMAND. The time series are input in the time series blocks (e.g., EXT SOURCES). (See the Time Series Catalog for RCHRES).


HYDR-CINIT

 Allocation of initial volumes to categories
********************************************************************************
         1         2         3         4         5         6         7        8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
********************************************************************************
Layout
******

  HYDR-CINIT
            ct cfrac  ct cfrac  ct cfrac  ct cfrac  ct cfrac  ct cfrac  ct cfrac
  <-range>  <><---->  <><---->  <><---->  <><---->  <><---->  <><---->  <><---->
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  (repeats until all operations of this type are covered)
  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  END HYDR-CINIT

*******
Example
*******

  HYDR-CINIT
*** Initial Category Storage Fractions
*** RCHRES   c cfrac   c cfrac   c cfrac   c cfrac   c cfrac   c cfrac   c cfrac
*** # -  #  <><---->  <><---->  <><---->  <><---->  <><---->  <><---->  <><---->
    1       UN   0.2  TX   0.1  CU   0.1  FG   0.1  Z1   0.1  MI  0.05  A0   0.1
    1       BB   0.1  AA  0.05  BB   0.1
  END HYDR-CINIT

********************************************************************************

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
ct             CINIT(*)        A2     none    none    none    none    Both
cfrac          CFRAC(*)        F6.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is required when CAT in Table-type HYDR-INIT is a positive integer. CAT defines the number of pairs to be specified in this table; up to seven pairs can be specified on a line.

CINIT is a two-character category tag.

CFRAC is the fraction of the initial volume belonging to the corresponding category. The sum of all fractions must be 1.0; alternatively, if all CFRACS are blank or zero, the initial volume will be equally divided among all categories.


HYDR-CPREC

 Allocation of precipitation to categories

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
ct             CPRECC(*)       A2     none    none    none    none    Both
cfrac          CPRECF(*)       F6.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is required when CPREC in Table-type HYDR-CATEGORY is a positive integer. CPREC defines the number of pairs to be specified in this table; up to seven pairs can be specified on a line.

CPRECC is a two-character category tag.

CPRECF is the fraction of the precipitation which will be assigned to the corresponding category. The sum of all fractions must be 1.0; alternatively if all fractions are blank or zero, the precipitation will be equally divided among all the categories listed.


HYDR-CEVAP

 Allocation of evaporation to categories

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
ct             CEVAPC(*)       A2     none    none   none     none    Both
pr             CEVAPP(*)       I3       0       0    none     none    Both
cfrac          CEVAPF(*)       F6.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is required when CEVAP in Table-type HYDR-CATEGORY is a positive integer. CEVAP defines the number of categories to be specified in this table; up to 5 categories can be specified on a line.

CEVAPC is a two-character category tag.

CEVAPP is an integer signifying the priority of the corresponding category when subtracting evaporation. Water is taken from the lowest priority categories first, then from the next-lowest priority categories, and so on. Categories with zero or undefined priority are taken last.

CEVAPF is the fraction of the evaporation which will be assigned to the corresponding category at a given priority level. The sum of all fractions at a priority level must be 1.0; alternatively, if they are all blank or zero, the evaporative loss will be equally divided among all the categories listed.


HYDR-CFVOL

 Allocation of volume-dependent outflow to categories

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
ct             CFVOLC(*)       A2     none    none   none     none    Both
x              CFVOLE(*)       I2       0       0       5     none    Both
pr             CFVOLP(*)       I3       0       0    none     none    Both
cfrac          CFVOLF(*)       F6.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is required when any member of CFVOL in Table-type HYDR-CATEGORY is a positive integer. The number of categories given in this table is the sum of the integer CFVOLs in HYDR-CATEGORY; up to four can be specified on a line.

CFVOLC is a two-character category tag.

CFVOLE is the number of the exit for which the category is being specified.

CFVOLP is an integer signifying the priority of the corresponding category when subtracting F(vol) (volume-dependent) outflow. Water is taken from the lowest priority categories first, then from the next-lowest priority categories, and so on. Categories with zero or undefined priority are taken last.

CFVOLF is the fraction of the F(vol) outflow which will be assigned to the corresponding category at a given priority level. The sum of all fractions at a priority level must sum to 1.0; alternatively, if all fractions for a priority level are blank or zero, the outflow demand will be equally divided among all of those categories.


HYDR-CDEMAND

 Allocation of time-dependent outflow to categories

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
ct             COGTC(*)       A2      none    none    none    none    Both
x              COGTE(*)       I2      0       0       5       none    Both
py             COGTPY(*)      I4      0       0       none    none    Both
pm             COGTPM(*)      I2      1       1       12      none    Both
pd             COGTPD(*)      I2      1       1       31      none    Both
cotdgt         COTDGT(*)      F6.0    0.0     0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

This table is used in conjunction with the time-series COTDGT to specify outflow demands which are a function of time, and to allocate these outflow demands among categories. The table may be omitted when NCOGT in Table-type HYDR-CATEGORY is zero.

COGTC is a two-character category tag.

COGTE is the exit number for the demand being specified.

COGTPY (year), COGTPM (month), and COGTPD (day) signify the priority date of the corresponding demand timeseries. Multiple demands on the same category are satisfied from earliest to latest priority date. Unspecified (blank) priorities are satisfied last.


 ADCALC input

ADCALC input
Explanation

The exact format of this input is detailed below. Table ADCALC-DATA is not always required because its contents can be defaulted.


ADCALC-DATA

 Data for section ADCALC

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<adcalc-data>  CRRAT          2F10.0  1.5     1.0     none    none    Both
               VOL                    0.0     0.0     none    acre-ft Engl
                                      0.0     0.0     none    Mm3     Metric
--------------------------------------------------------------------------------
Explanation

Section ADCALC must be active if any of the following sections are active.

CRRAT is the ratio of maximum velocity to mean velocity in the RCHRES cross-section under typical flow conditions.

VOL is the volume of water in the RCHRES at the start of the simulation. Input of this value is not necessary if section HYDR is active. (Note: Metric units are 10**6 m3).


 CONS input

CONS input
Explanation

The exact formats of these tables are detailed below. Table-type NCONS is not required if only one conservative constituent is being simulated, since 1 is the default value of NCONS.


NCONS

 Number of conservative constituents simulated

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<ncn>          NCONS          I5      1       1       10
----------------------------------------------------------
Explanation

NCONS is the number of conservative constituents being simulated.


CONS-AD-FLAGS

 Atmospheric deposition flags for CONS

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         COADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

COADFG is an array of flags indicating the source of atmospheric deposition data for the CONS section. Each CONS has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series COADFX or COADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


CONS-DATA

 Information about one conservative substance

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<conid>        CONID(5)       5A4     blank   none    none    none    Both
<con>          CON            F10.0   0.0     0.0     none    concid  Both
<concid>       CONCID         2A4     blank   none    none    none    Both
<conv>         CONV           F10.0   none    1.0E-30 none    see below
<qtyid>        QTYID          2A4     blank   none    none    none    Both
--------------------------------------------------------------------------------
Explanation

CONID is the name/identifier of the conservative constituent, limited to 20 characters.

CON is the initial concentration of the conservative constituent.

CONCID is the 8 character identifier for the concentration units for the conservative constituent. If the constituent is the alkalinity data required for section PHCARB, CONCID must be mg/l (as CaCO3).

QTYID is the 8 character identifier for the units in which the total flow of constituent into, or out of, the RCHRES will be expressed, e.g., "kg".

CONV is the conversion factor from QTYID/VOL to the desired concentration units (CONCID): CONC = CONV*(QTYID/VOL). If English units are being used (EMFG = 1 in the GLOBAL Block), VOL units are cubic feet; if Metric units are in effect (EMFG = 2), VOL units are cubic meters. For example, if CONCID is mg/l, QTYID is kg, and VOL is cubic meters, then CONV=1000.


 HTRCH input

HTRCH input
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


HT-BED-FLAGS

 Flags for bed conduction in section HTRCH

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
--------------------------------------------------------------------------------
<bfg>          BEDFLG         I5      0       0       3
<gfg>          TGFLG          I5      2       1       3
<tst>          TSTOP          I5      55      1       100
--------------------------------------------------------------------------------
Explanation

BEDFLG is the bed conduction flag, with the following meanings:

0 - bed conduction is not simulated

1 - single interface (water-mud) heat transfer method

2 - two-interface (water-mud and mud-ground) heat transfer method

3 - Jobson method

TGFLG specifies the source of the ground temperature for the bed conduction; used when BEDFLG is 1 or 2 (TGFLG: 1=time series; 2=single value; 3=monthly values).

TSTOP is the number of time steps (prior to the current time step) that impact the heat flux at the current time step; used only when the Jobson method is in effect.


HEAT-PARM

 Parameters for section HTRCH

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<elev>         ELEV           F10.0   0.0     0.0     30000.  ft      Engl
                                      0.0     0.0     10000.  m       Metric
<eldat>        ELDAT          F10.0   0.0     none    none    ft      Engl
                                      0.0     none    none    m       Metric
<cfsx>         CFSAEX         F10.0   1.0     0.001   2.0     none    Both
<ktrd>         KATRAD         F10.0   9.37    1.00    20.     none    Both
<kcnd>         KCOND          F10.0   6.12    1.00    20.     none    Both
<kevp>         KEVAP          F10.0   2.24    1.00    10.     none    Both
--------------------------------------------------------------------------------
Explanation

ELEV is the mean RCHRES elevation.

ELDAT is the difference in elevation between the RCHRES and the air temperature gage (ELDAT is positive if the RCHRES is higher than the gage).

CFSAEX is the correction factor for solar radiation; it is the fraction of the RCHRES surface exposed to radiation.

KATRAD is the longwave radiation coefficient.

KCOND is the conduction-convection heat transport coefficient.

KEVAP is the evaporation coefficient.


HT-BED-PARM

 Bed conduction parameters for section HTRCH

Details
--------------------------------------------------------------------------------
Symbol       Fortran name   Format  Def     Min     Max     Units     Unit syst
--------------------------------------------------------------------------------
<-muddep->   MUDDEP         F10.0   0.33    0.01    none    ft           Engl
                                    0.1     0.01    none    m            Metric
<--tgrnd->   TGRND          F10.0   59.     14.     113.    deg F        Engl
                                    15.     -10.    45.     deg C        Metric
<--kmud-->   KMUD           F10.0   50.     0.0     none    kcal/m2/C/hr Both
<--kgrnd->   KGRND          F10.0   1.4     0.0     none    kcal/m2/C/hr Both
--------------------------------------------------------------------------------
Explanation

MUDDEP is the depth of the mud layer in the two-interface model (BEDFLG = 2).

TGRND is the constant (TGFLG = 2) ground temperature; it is used in the one and two-interface models (BEDFLG = 1 or 2). Optionally, the ground temperature can be input in the form of twelve monthly values or a time series.

KMUD is the heat conduction coefficient between water and the mud/ground; it is used if BEDFLG = 1 or 2. Typical values range from 3 to 100 kcal/m2/degC/hr.

KGRND is the heat conduction coefficient between ground and mud in the two-interface model (BEDFLG = 2).


MON-HT-TGRND

 Monthly ground temperatures for bed heat conduction algorithms

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    TGRNDM(1-12)   F5.0    none    14.     113.    deg F   English
                                      none   -10.      45     deg C   Metric
--------------------------------------------------------------------------------
Explanation

TGRNDM(1) through TGRNDM(12) are monthly ground temperatures for use in the bed heat conduction models. This table must be included in the UCI only if TGFLG is assigned a value of 3 and BEDFLG = 1 or 2 in Table HT-BED-FLAGS.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


HT-BED-DELH

 Heat fluxes for Jobson bed heat conduction method

Details
--------------------------------------------------------------------------------
Symbol      Fortran name   Format  Def    Min    Max     Units        Unit syst
--------------------------------------------------------------------------------
<--delhi->  DELH(100)      F10.0   0.0    none   none  btu/ft2/F/ivl  English
                                   0.0    none   none  kcal/m2/C/ivl  Metric
--------------------------------------------------------------------------------
Explanation

DELH are bed sediment-to-water heat fluxes (per one degree increase in water temperature) for the past TSTOP time intervals; used in the Jobson bed-conduction method. A maximum of 100 values of DELH are possible. (Caution: DELH values are dependent on the time step (DELT in GLOBAL Block)).

When an entry has to be continued onto more than 1 line:

  1. No blank or comment lines may be put between any of the lines for a continued entry. Put all comments ahead of the entry. (See above example).
  2. The <range> specification must be repeated for each line onto which the entry is continued.


HT-BED-DELTT

 Initial temperature changes for Jobson bed conduction method

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<-deltti->    DELTT(100)      F10.0   0.0     none    none    deg F   Engl
                                      0.0     none    none    deg C   Metric
--------------------------------------------------------------------------------
Explanation

DELTT are initial water temperature changes for the TSTOP time intervals immediately preceding the starting time of the simulation; used in the Jobson bed-conduction method. A maximum of 100 values of DELTT are possible. DELTT values are positive if the water temperature increases.

See rules for continuing an entry onto more than 1 line in Explanation for table HT-BED-DELH.


HEAT-INIT

 Initial conditions for HTRCH

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<init-temp>    TW             F10.0   60.     32.     200.    degF    Engl
                                      15.5    0.0     95.     degC    Metric
               AIRTMP         F10.0   60.     -90.    150.    degF    Engl
                                      15.5    -70.0   65.     degC    Metric
--------------------------------------------------------------------------------
Explanation

TW is the initial water temperature and AIRTMP is the initial air temperature at the RCHRES.


SHADE-PARM

 Parameters for SHADE in section HTRCH

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<shadfg>       SHADFG         F10.0    0.      0.     1.      none      Both
<topfl>        TOPFL          F10.0   41.     30.     99.     none      Both
<vegfl>        VEGFL          F10.0   42.     30.     99.     none      Both
<nssp>         NSSP           F10.0    0.      0.    250.     none      Both
<latdeg>       LATDEG         F10.0   40.    -55.     55.     degrees   Both
<londeg>       LONDEG         F10.0  -90.   -180.    180.     degrees   Both
<lonstd>       LONSTD         F10.0  -90.   -180.    180.     degrees   Both
--------------------------------------------------------------------------------

Explanation

SHADFG specifies that the SHADE module is being used for the RCHRES.

TOPFL is the unit number of the topographic data file for the RCHRES. It contains location information and topographic data for each Stream Sample Point (SSP) in the RCHRES.

VEGFL is the unit number of the vegetative data file for the RCHRES. It contains vegetation shading characteristics data for each Stream Sample Point in the RCHRES.

NSSP is the number of Stream Sample Points defined for the RCHRES. Topographic and vegetative shading characteristics are defined at each SSP.

LATDEG is the latitude of the RCHRES (degrees). LONDEG is the longitude of the RCHRES (degrees). LONSTD is the longitude of the center of the local time zone (degrees).


 SEDTRN input

SEDTRN input
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


SANDFG

 Sandload method flag

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<sfg>          SANDFG         I5      3       1       3
----------------------------------------------------------
Explanation

SANDFG indicates the method that will be used for sandload simulation:

1 = Toffaleti method

2 = Colby method

3 = user-specified power function method.


SED-GENPARM

 General sediment related parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<gen-parm>     BEDWID         F10.0   none    1.0     none    ft      Engl
                                      none    0.3     none    m       Metric
               BEDWRN         F10.0   100.    .001    none    ft      Engl
                                      30.5    .0003   none    m       Metric
               POR            F10.0   0.5     0.1     0.9     none    Both
--------------------------------------------------------------------------------
Explanation

BEDWID is the width of the cross-section over which HSPF will assume bed sediment is deposited (regardless of stage, top-width, etc); BEDWID is constant. It is used to estimate the depth of bed sediment.

BEDWRN is the bed depth which, if exceeded (e.g., through deposition) will cause a warning message to be printed in the echo file (MESSU).

POR is the porosity of the bed (volume voids/total volume). It is used to estimate bed depth.


SED-HYDPARM

 Parameters normally read in Section HYDR

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sed-hydparm>  LEN            F10.0   none    0.01    none    miles   Engl
                                      none    0.016   none    km      Metric
               DELTH          F10.0   0.0     0.0     none    ft      Engl
                                      0.0     0.0     none    m       Metric
               DB50           F10.0   .01     .0001   100.    in      Engl
                                      .25     .0025   2500.   mm      Metric
--------------------------------------------------------------------------------
Explanation

This table is only required and read if Section HYDR is not active. Normally these parameters are supplied in Table-type HYDR-PARM2; see section HYDR for definitions.


SAND-PM

 Parameters related to sand transport

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sand-parms>   D              F10.0   none    .001    100.    in      Engl
                                      none    .025    2500.   mm      Metric
               W              F10.0   none    .02     500.    in/sec  Engl
                                      none    .5      12500.  mm/sec  Metric
               RHO            F10.0   2.65    1.0     4.0     gm/cm3  Both
               KSAND          F10.0   0.0     0.0     none    complex Both
               EXPSND         F10.0   0.0     0.0     none    complex Both
--------------------------------------------------------------------------------
Explanation

D is the effective diameter of the transported sand particles, and W is the corresponding fall velocity in still water. Note: the sand transport algorithms do not actually use D; they use DB50, supplied in Table-type HYDR-PARM2. D is included here for consistency with the input data supplied for cohesive sediment.

RHO is the density of the sand particles.

KSAND and EXPSND are the coefficient and exponent in the sandload power function formula. These values should be input if SANDFG=3.


SILT-CLAY-PM

 Parameters for silt or clay

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<silt-clay-pm> D              F10.0   0.0     0.0     .003    in       Engl
                                      0.0     0.0     .07     mm       Metric
               W              F10.0   0.0     0.0     .2      in/sec   Engl
                                      0.0     0.0     5.0     mm/sec   Metric
               RHO            F10.0   2.65    2.0     4.0     gm/cm3   Both
               TAUCD          F10.0   1.0E10  1.0E-10 none    lb/ft2   Engl
                                      1.0E10  1.0E-10 none    kg/m2    Metric
               TAUCS          F10.0   1.0E10  1.0E-10 none    lb/ft2   Engl
                                      1.0E10  1.0E-10 none    kg/m2    Metric
               M              F10.0   0.0     0.0     none    lb/ft2.d Engl
                                      0.0     0.0     none    kg/m2.d  Metric
--------------------------------------------------------------------------------
Explanation

This table must be supplied twice; first for silt, then for clay.

D is the effective diameter of the particles and W is the corresponding fall velocity in still water.

RHO is the density of the particles.

TAUCD is the critical bed shear stress for deposition. Above this stress, there will be no deposition; as the stress drops below this value to zero, deposition will gradually increase to the value implied by the fall velocity in still water.

TAUCS is the critical bed shear stress for scour. Below this value, there will be no scour; above it, scour will steadily increase.

In general TAUCD should be less than or equal to TAUCS.

M is the erodibility coefficient of the sediment.

Note that the default values for W, TAUCD, TAUCS, and M have been set so that silt and clay will behave as "washload"; that is, material will settle at the rate implied by W (defaulted to zero) and there will be no scour; the material will behave like a conservative substance.


SSED-INIT

 Initial concentrations of suspended sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ssed-init>    SSED(3)        3F10.0  0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

The initial concentrations of suspended sand, silt, and clay, respectively.


BED-INIT

 Initial content of bed sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<bed-dep>      BEDDEP         F10.0   0.0     0.0     none    ft      Engl
                                      0.0     0.0     none    m       Metric
<fracsand>     ------         F10.0   1.0     .0001   1.0     none    Both
<fracsilt>                    F10.0   0.0     0.0     .9999   none    Both
<fracclay>                    F10.0   0.0     0.0     .9999   none    Both
--------------------------------------------------------------------------------
Explanation

BEDDEP is the initial total depth (thickness) of the bed.

The three values supplied under <fracsand>, <fracsilt>, and <fracclay> are the initial fractions (by weight) of sand, silt, and clay in the bed material. The default values are arranged to simulate an all-sand bed. The sum of the fractions must be 1.00.


 GQUAL input

GQUAL input
Explanation

A "qual" is a generalized quality constituent simulated using this module section.

The exact format of each of the tables above, except those "borrowed" from Sections OXRX and PLANK, is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


GQ-GENDATA

 General input for Section GQUAL

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ngq>          NGQUAL         I5      1       1       7       none    Both
<source-fgs>   TEMPFG         I5      2       1       3       none    Both
               PHFLAG         I5      2       1       3       none    Both
               ROXFG          I5      2       1       3       none    Both
               CLDFG          I5      2       1       3       none    Both
               SDFG           I5      2       1       3       none    Both
               PHYTFG         I5      2       1       3       none    Both
<lat>          LAT            I5      0     -54      54       degrees Both
--------------------------------------------------------------------------------
Explanation

NGQUAL - number of generalized constituents (quals) being simulated; a maximum of seven are allowed.

TEMPFG - source of water temperature data. 1 means a time series (either input or computed); 2 means a single user-supplied value; 3 means 12 user-supplied values (one for each month).

PHFLAG - source of pH data. Input only if any QALFG(1)=1. The source designation scheme is the same as for TEMPFG.

ROXFG - source of free radical oxygen data. Input only if any QALFG(2)=1. The source designation scheme is the same as for TEMPFG.

CLDFG - source of cloud cover data. Input only if any QALFG(3)=1. The source designation scheme is the same as for TEMPFG.

SDFG - source of total sediment concentration data. Input only if any QALFG(3)=1. The source designation scheme is the same as for TEMPFG.

PHYTFG - source of phytoplankton data. Input only if any QALFG(3)=1. The source designation scheme is the same as for TEMPFG.

LAT - latitude of the RCHRES. Input only if any QALFG(3)=1. Positive for the northern hemisphere.


GQ-AD-FLAGS

 Atmospheric deposition flags for GQUAL

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         GQADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

GQADFG is an array of flags indicating the source of atmospheric deposition data. Each GQUAL has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series GQADFX or GQADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID.


GQ-QALDATA

 Data for a generalized quality constituent

Details
--------------------------------------------------------------------------------
Symbol         Fortran        Format  Def     Min     Max     Units   Unit
               name(s)                                                system
--------------------------------------------------------------------------------
<gqid>         GQID           5A4     none    none    none    none    Both
<dqal>         DQAL           F10.0   0.0     0.0     none    concid  Both
<cu>           CONCID         A4      none    none    none    none    Both
<conv>         CONV           F10.0   none    1.0E-30 none    see below
<qtyid>        QTYID          2A4     none    none    none    none    Both
--------------------------------------------------------------------------------
Explanation

GQID - Name/identifier of constituent (qual), limited to 20 characters.

DQAL - Initial dissolved concentration of qual.

CONCID - Concentration units (implied that it is "per liter") eg."mg"(/l).

QTYID - Name of mass quantity unit for qual, limited to 8 characters.

CONV is the conversion factor from QTYID/VOL to the desired concentration units (CONCID): Conc = CONV*(QTYID/VOL). If English units are being used (EMFG = 1 in the GLOBAL Block), then VOL units are cubic feet; if Metric units are in effect (EMFG = 2), then VOL units are cubic meters. For example, if CONCID is mg/l, QTYID is kg, and VOL is cubic meters, then CONV=1000.


GQ-QALFG

 First set of flags for a qual

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<degrad-fgs>   QALFG(1)       I5      0       0       1       none    Both
               QALFG(2)       I5      0       0       1       none    Both
               QALFG(3)       I5      0       0       1       none    Both
               QALFG(4)       I5      0       0       1       none    Both
               QALFG(5)       I5      0       0       1       none    Both
               QALFG(6)       I5      0       0       1       none    Both
<sfg>          QALFG(7)       I5      0       0       1       none    Both
--------------------------------------------------------------------------------
Explanation

QALFG(1) - indicates whether hydrolysis is considered for dissolved qual.

QALFG(2) - indicates whether oxidation by free radical oxygen is considered for dissolved qual.

QALFG(3) - indicates whether photolysis is considered for dissolved qual.

QALFG(4) - indicates whether volatilization is considered for dissolved qual.

QALFG(5) - indicates whether biodegradation is considered for dissolved qual.

QALFG(6) - indicates whether general first order decay is considered for dissolved qual.

QALFG(7) - indicates whether or not qual is associated with sediment. If so, adsorption/desorption of qual is simulated.


GQ-FLG2

 Second set of flags for a qual

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<daughter proc>GQPM2(1)       I5      0       0       1       none    Both
               GQPM2(2)       I5      0       0       1       none    Both
               GQPM2(3)       I5      0       0       1       none    Both
               GQPM2(4)       I5      0       0       1       none    Both
               GQPM2(5)       I5      0       0       1       none    Both
               GQPM2(6)       I5      0       0       1       none    Both
<sbm>          GQPM2(7)       I5      2       1       3       none    Both
--------------------------------------------------------------------------------
Explanation

GQPM2(1) through GQPM2(6) indicate whether or not this qual is a daughter product through each of the six decay processes (1-hydrolysis, 2-oxidation, 3-photolysis, 4-reserved for future use, 5-biodegradation, 6-general first order decay). GQPM2(7) indicates the source of biomass data for qual. Input only if QALFG(5)=1. (1=time series, 2=single value, 3=twelve monthly values)


GQ-HYDPM

 Hydrolysis parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<hydrol-parms> KA             F10.0   none    1.0E-30 none    /M-sec  Both
               KB             F10.0   none    1.0E-30 none    /M-sec  Both
               KN             F10.0   none    1.0E-30 none    /sec    Both
               THHYD          F10.0   1.0     1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

KA - second-order acid rate constant for hydrolysis

KB - second-order base rate constant for hydrolysis

KN - first-order rate constant of neutral reaction with water

THHYD - temperature correction coefficient for hydrolysis


GQ-ROXPM

 Parameters for free radical oxidation of qual

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<rox-pm>       KOX            F10.0   none    1.0E-30 none    /M.sec  Both
               THOX           F10.0   1.0     1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

KOX - second-order rate constant for oxidation by free radical oxygen

THOX - temperature correction coefficient for oxidation by free radical oxygen


GQ-PHOTPM

 Parameters for photolysis

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<first-7>      PHOTPM(1-7)    F10.0   0.0     0.0     none    l/M.cm  Both
<second-7>     PHOTPM(8-14)   F10.0   0.0     0.0     none    l/M.cm  Both
<last-4>       PHOTPM(15-18)  F10.0   0.0     0.0     none    l/M.cm  Both
<phi>          PHOTPM(19)     F10.0   1.0     .0001   10.0    M/E     Both
<theta>        PHOTPM(20)     F10.0   1.0     1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

PHOTPM(1) through PHOTPM(18) are molar absorption coefficients for qual for 18 wavelength ranges of light (see Functional Description for subroutine DDECAY in Part E).

PHOTPM(19) is the quantum yield for the qual in air-saturated pure water.

PHOTPM(20) is the temperature correction coefficient for photolysis.

When an entry has to be continued onto more than 1 line:

  1. No blank or comment lines may be put between any of the lines for a continued entry. Put all comments ahead of the entry. (See above example).
  2. The <range> specification must be repeated for each line onto which the entry is continued.


GQ-CFGAS

 Ratio of volatilization rate to oxygen reaeration rate

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cfgas>        CFGAS          F10.0   none    1.0E-30 none    none    Both
--------------------------------------------------------------------------------
Explanation

CFGAS is the ratio of the volatilization rate to the oxygen reaeration rate.


GQ-BIOPM

 Biodegradation parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<bioparm>      BIOCON         F10.0   none    1.0E-30 none    l/mg.d  Both
               THBIO          F10.0   1.07    1.0     2.0     none    Both
               BIO            F10.0   none    0.00001 none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

BIOCON - Second order rate constant for biodegradation of qual by biomass.

THBIO - Temperature correction coefficient for biodegradation of qual.

BIO - Concentration of the biomass which causes biodegradation of qual.


MON-BIO

 Monthly values of biomass

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    BIOM(1-12)     F5.0    none    0.00001 none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

BIOM(1) through BIOM(12) are monthly concentrations of biomass that cause biodegradation of qual. This table must be included only if GQPM2(7) is assigned a value of 3 in Table-type GQ-FLG2.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


GQ-GENDECAY

 Parameters for "general" decay of qual

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<decay-pms>    FSTDEC         F10.0   none    .00001  none    /day    Both
               THFST          F10.0   1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

FSTDEC - first-order decay rate for qual.

THFST - temperature correction coefficient for first-order decay of qual.


GQ-SEDDECAY

 Parameters for decay of contaminant adsorbed to sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ads-decay>    ADDCPM(1)      F10.0   0.0     0.0     none    /day    Both
               ADDCPM(2)      F10.0   1.07    1.0     2.0     none    Both
               ADDCPM(3)      F10.0   0.0     0.0     none    /day    Both
               ADDCPM(4)      F10.0   1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

ADDCPM(1) - Decay rate for qual adsorbed to suspended sediment.

ADDCPM(2) - Temperature correction coefficient for decay of qual on suspended sediment.

ADDCPM(3) - Decay rate for qual adsorbed to bed sediment.

ADDCPM(4) - Temperature correction coefficient for decay of qual on bed sediment.


GQ-KD

 Adsorption coefficients of qual

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<k-part>       ADPM(1,1)      F10.0   none   1.0E-10  none    l/mg    Both
               ADPM(2,1)      F10.0   none   1.0E-10  none    l/mg    Both
               ADPM(3,1)      F10.0   none   1.0E-10  none    l/mg    Both
               ADPM(4,1)      F10.0   none   1.0E-10  none    l/mg    Both
               ADPM(5,1)      F10.0   none   1.0E-10  none    l/mg    Both
               ADPM(6,1)      F10.0   none   1.0E-10  none    l/mg    Both
--------------------------------------------------------------------------------
Explanation

ADPM(1,1) through ADPM(6,1) are distribution coefficients for qual with: 1-suspended sand, 2-suspended silt, 3-suspended clay, 4-bed sand, 5-bed silt, and 6-bed clay.


GQ-ADRATE

 Adsorption/desorption rate parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<k-adsdes>     ADPM(1,2)      F10.0   none    .00001  none    /day    Both
               ADPM(2,2)      F10.0   none    .00001  none    /day    Both
               ADPM(3,2)      F10.0   none    .00001  none    /day    Both
               ADPM(4,2)      F10.0   none    .00001  none    /day    Both
               ADPM(5,2)      F10.0   none    .00001  none    /day    Both
               ADPM(6,2)      F10.0   none    .00001  none    /day    Both
--------------------------------------------------------------------------------
Explanation

ADPM(1,2) through ADPM(6,2) are transfer rates between adsorbed and desorbed states of qual with: 1-suspended sand, 2-suspended silt, 3-suspended clay, 4-bed sand, 5-bed silt, and 6-bed clay.


GQ-ADTHETA

 Adsorption/desorption temperature correction parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<thet-adsdes>  ADPM(1,3)      F10.0   1.07    1.0     2.0     none    Both
               ADPM(2,3)      F10.0   1.07    1.0     2.0     none    Both
               ADPM(3,3)      F10.0   1.07    1.0     2.0     none    Both
               ADPM(4,3)      F10.0   1.07    1.0     2.0     none    Both
               ADPM(5,3)      F10.0   1.07    1.0     2.0     none    Both
               ADPM(6,3)      F10.0   1.07    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

ADPM(1,3) through ADPM(6,3) are temperature correction coefficients for adsorption/desorption on: 1-suspended sand, 2-suspended silt, 3-suspended clay, 4-bed sand, 5-bed silt, 6-bed clay.


GQ-SEDCONC

 Initial concentrations on sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<sedconc>      SQAL(1-6)      F10.0   0.0     0.0     none    concu/mg  Both
--------------------------------------------------------------------------------
Explanation

SQAL(1) through SQAL(6) are initial concentrations of qual on: 1-suspended sand, 2-suspended silt, 3-suspended clay, 4-bed sand, 5-bed silt, 6-bed clay.


GQ-VALUES

 Initial values for inputs which are constant

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<twat>         TWAT           F10.0   60.     32.     212.    deg F   Engl
                                      15.5    0.1     100.    deg C   Metric
<phval>        PHVAL          F10.0   7.0     1.0     14.     none    Both
<roc>          ROC            F10.0   0.0     0.0     none    mole/l  Both
<cld>          CLD            F10.0   0.0     0.0     10.     tenths  Both
<sdcnc>        SDCNC          F10.0   0.0     0.0     none    mg/l    Both
<phy>          PHY            F10.0   0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

In Table-type GQ-GENDATA, values for data source flags are specified. If any of the flags are assigned a value of 2, a single constant value for that data type must be provided in this table. For example, if ROXFG=2 a value for free radical oxygen concentration (ROC) must be supplied in columns 31-40 of this table.

TWAT - water temperature

PHVAL - pH

ROC - free radical oxygen concentration

CLD - cloud cover

SDCNC - total suspended sediment concentration

PHY - phytoplankton concentration (as biomass)


MON-WATEMP

 Monthly values of water temperature

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    TEMPM(1-12)    F5.0    60.     32.     212.    degF    Engl
                                      15.5    0.1     100.    degC    Metric
------------------------------------------------------------------------------
Explanation

In Table-type GQ-GENDATA, values for data source flags are specified. If TEMPFG is assigned a value of 3, 12 monthly values for water temperature must be supplied in this table.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-PHVAL

 Monthly values of pH

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    PHVALM(1-12)   F5.0    7.0     1.0     14.0    none    Both
--------------------------------------------------------------------------------
Explanation

In Table-type GQ-GENDATA, values for data source flags are specified. If PHFLAG is assigned a value of 3, 12 monthly values for pH must be supplied in this table.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-ROXYGEN

 Monthly values of free radical oxygen

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    ROCM(1-12)     F5.0    0.0     0.0     none    mole/l  Both
--------------------------------------------------------------------------------
Explanation

In Table-type GQ-GENDATA, values for data source flags are specified. If ROXFG is assigned a value of 3, 12 monthly values for free radical oxygen concentration must be supplied in this table.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


GQ-ALPHA

 Values of base absorbance coefficient

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<first-7>      ALPH(1-7)      F10.0   none    .00001  none    /cm     Both
<second-7>     ALPH(8-14)     F10.0   none    .00001  none    /cm     Both
<last-4>       ALPH(15-18)    F10.0   none    .00001  none    /cm     Both
--------------------------------------------------------------------------------
Explanation

ALPH(1) through ALPH(18) are base absorption coefficients for 18 wavelengths of light passing through clear water.

This table is necessary only when a qual undergoes photolysis; i.e., when any QALFG(3)=1 in Table-type GQ-QALFG.

When an entry has to be continued onto more than 1 line:

  1. No blank or comment lines may be put between any of the lines for a continued entry. Put all comments ahead of the entry. (See above example).
  2. The <range> specification must be repeated for each line onto which the entry is continued.


GQ-GAMMA

 Values of sediment absorbance coefficient

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<first-7>      GAMM(1-7)      F10.0   0.0     0.0     none    l/mg.cm Both
<second-7>     GAMM(8-14)     F10.0   0.0     0.0     none    l/mg.cm Both
<last-4>       GAMM(15-18)    F10.0   0.0     0.0     none    l/mg.cm Both
--------------------------------------------------------------------------------
Explanation

GAMM(1) through GAMM(18) are increments to the base absorbance coefficient (Table-type GQ-ALPHA) for light passing through sediment-laden water.

This is table necessary only when a qual undergoes photolysis; i.e., when any QALFG(3)=1 in Table-type GQ-QALFG.

See rules for continuing an entry onto more than 1 line in Explanation for Table-type GQ-ALPHA.


GQ-DELTA

 Values of phytoplankton absorbance coefficient

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<first-7>      DEL(1-7)       F10.0   0.0     0.0     none    l/mg.cm Both
<second-7>     DEL(8-14)      F10.0   0.0     0.0     none    l/mg.cm Both
<last-4>       DEL(15-18)     F10.0   0.0     0.0     none    l/mg.cm Both
--------------------------------------------------------------------------------
Explanation

DEL(1) through DEL(18) are increments to the base absorption coefficient (Table GQ-ALPHA) for light passing through plankton-laden water.

This table is necessary only when a qual undergoes photolysis; i.e., when any QALFG(3)=1 in Table GQ-QALFG.

See rules for continuing an entry onto more than 1 line in Explanation for Table-type GQ-ALPHA.


GQ-CLDFACT

 Light extinction efficiency of cloud cover

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<first-7>      KCLD(1-7)      F10.0   0.0     0.0     1.0     none    Both
<second-7>     KCLD(8-14)     F10.0   0.0     0.0     1.0     none    Both
<last-4>       KCLD(15-18)    F10.0   0.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

KCLD(1) through KCLD(18) are values of light extinction efficiency of cloud cover for each of 18 wavelengths.

This table is necessary only when a qual undergoes photolysis; i.e., when any QALFG(3)=1 in Table-type GQ-QALFG.

See rules for continuing an entry onto more than 1 line in Explanation for Table-type GQ-ALPHA.


MON-CLOUD

 Monthly values of cloud cover

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    CLDM(1-12)     F5.0    0.0     0.0     10.0    tenths  Both
--------------------------------------------------------------------------------
Explanation

CLDM(1) through CLDM(12) are monthly values of average cloud cover. This table must be included in the UCI only if CLDFG=3 in Table-type GQ-GENDATA.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-SEDCONC

 Monthly values of sediment concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    SDCNCM(1-12)   F5.0    0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

SDCNCM(1) through SDCNCM(12) are monthly average suspended sediment concentration values. This table must be included in the UCI only if SDFG=3 in Table-type GQ-GENDATA.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


MON-PHYTO

 Monthly values of phytoplankton concentration

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<12-values>    PHYM(1-12)     F5.0    0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

PHYM(1) through PHYM(12) are monthly values of phytoplankton concentration. This table must be included only if PHYTFG=3 in Table-type GQ-GENDATA.

Note: The input monthly values apply to the first day of the month, and values for intermediate days are obtained by interpolating between successive monthly values.


GQ-DAUGHTER

 Relationship between parent and daughter quals

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<zero>         0.0
<2-from-1>     C(2,1)         F10.0   0.0     0.0     none    none    Both
<3-from-1>     C(3,1)         F10.0   0.0     0.0     none    none    Both
<4-from-1>     C(4,1)         F10.0   0.0     0.0     none    none    Both
<5-from-1>     C(5,1)         F10.0   0.0     0.0     none    none    Both
<6-from-1>     C(6,1)         F10.0   0.0     0.0     none    none    Both
<7-from-1>     C(7,1)         F10.0   0.0     0.0     none    none    Both
<3-from-2>     C(3,2)         F10.0   0.0     0.0     none    none    Both
<4-from-2>     C(4,2)         F10.0   0.0     0.0     none    none    Both
<5-from-2>     C(5,2)         F10.0   0.0     0.0     none    none    Both
<6-from-2>     C(6,2)         F10.0   0.0     0.0     none    none    Both
<7-from-2>     C(7,2)         F10.0   0.0     0.0     none    none    Both
<4-from-3>     C(4,3)         F10.0   0.0     0.0     none    none    Both
<5-from-3>     C(5,3)         F10.0   0.0     0.0     none    none    Both
<6-from-3>     C(6,3)         F10.0   0.0     0.0     none    none    Both
<7-from-3>     C(7,3)         F10.0   0.0     0.0     none    none    Both
<5-from-4>     C(5,4)         F10.0   0.0     0.0     none    none    Both
<6-from-4>     C(6,4)         F10.0   0.0     0.0     none    none    Both
<7-from-4>     C(7,4)         F10.0   0.0     0.0     none    none    Both
<6-from-5>     C(6,5)         F10.0   0.0     0.0     none    none    Both
<7-from-5>     C(7,5)         F10.0   0.0     0.0     none    none    Both
<7-from-6>     C(7,6)         F10.0   0.0     0.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

This table-type specifies the relationship between parent and daughter compounds. For example, variable C(2,1) indicates the amount of qual #2 which is produced by decay of qual #1 through one of the decay processes. The table must be repeated in sequence for each decay process that produces daughter quals from decay of parent quals. The proper sequence is: 1-hydrolysis, 2-oxidation by free radical oxygen, 3-photolysis, 4-(reserved for future use), 5-biodegradation, 6-general first order decay. For example, if biodegradation is the only process of interest, five of these tables must be included, and the fifth one should contain nonzero values.


 Input for RQUAL sections

Input for RQUAL sections
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


BENTH-FLAG

 Benthic release flag

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ben>          BENRFG         I5      0       0       1       none    Both
--------------------------------------------------------------------------------
Explanation

If BENRFG is 1, benthal influences are considered in the following sections.


SCOUR-PARMS

 Benthal scour parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<scour-parms>  SCRVEL         F10.0   10.     .01     none    ft/sec  Engl
                                      3.05    .01     none    m/sec   Metric
               SCRMUL         F10.0   2.0     1.0     none    none    Both
--------------------------------------------------------------------------------
Explanation

SCRVEL is the threshold velocity above which the effect of scouring on benthal release rates is considered.

SCRMUL is the multiplier by which benthal releases are increased during scouring.


 OXRX input

OXRX input

Note:	If any of the tables marked "+" above were supplied in your input for Section GQUAL, they must not be repeated here (these are the tables used to calculate the oxygen reaeration coefficient, which, under certain conditions, is also needed in Section GQUAL).
Explanation

The conditions under which data from the various tables are needed are indicated above. REAMFG is the reaeration method flag, defined in Table-type OX-FLAGS below.

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


OX-FLAGS

 Oxygen flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<oxf>          REAMFG         I5      2       1       3
----------------------------------------------------------
Explanation

REAMFG indicates the method used to calculate the reaeration coefficient for free-flowing streams.

  1. Tsivoglou method is used.
  2. Owens, Churchill, or O'Connor-Dobbins method is used depending on velocity and depth of water.
  3. Coefficient is calculated as a power function of velocity and/or depth; user inputs exponents for velocity and depth and an empirical constant (REAK).


OX-GENPARM

 General oxygen parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-genparm>   KBOD20         F10.0   none    1.0E-30 none    /hr     Both
               TCBOD          F10.0   1.075   1.0     2.0     none    Both
               KODSET         F10.0   0.0     0.0     none    ft/hr   Engl
                                      0.0     0.0     none    m/hr    Metric
               SUPSAT         F10.0   1.15    1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

KBOD20 is the unit BOD decay rate at 20 degrees C.

TCBOD is the temperature correction coefficient for BOD decay.

KODSET is the rate of BOD settling.

SUPSAT is the maximum allowable dissolved oxygen supersaturation (expressed as a multiple of the dissolved oxygen saturation concentration).


ELEV

 RCHRES elevation above sea level

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<elev>         ELEV           F10.0   0.0     0.0   30000     ft      Engl
                                      0.0     0.0   10000     m       Metric
--------------------------------------------------------------------------------
Explanation

ELEV is the mean RCHRES elevation above sea level.


OX-BENPARM

 Oxygen benthic parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-benparm>   BENOD          F10.0   0.0     0.0     none    mg/m2.hr Both
               TCBEN          F10.0   1.074   1.0     2.0     none     Both
               EXPOD          F10.0   1.22    0.1     none    none     Both
               BRBOD(1)       F10.0   72.     .0001   none    mg/m2.hr Both
               BRBOD(2)       F10.0   100.    .0001   none    mg/m2.hr Both
               EXPREL         F10.0   2.82     0.1    none    none     Both
--------------------------------------------------------------------------------
Explanation

This table is used if BENRFG = 1 in Table-type BENTH-FLAG (see RQUAL section).

BENOD is the benthal oxygen demand at 20 degrees C (with unlimited DO concentration).

TCBEN is the temperature correction coefficient for benthal oxygen demand.

EXPOD is the exponential factor in the dissolved oxygen term of the benthal oxygen demand equation.

BRBOD(1) is the benthal release rate of BOD under aerobic conditions, and BRBOD(2) is the increment to benthal release of BOD under anaerobic conditions.

EXPREL is the exponent in the DO term of the benthal BOD release equation.


OX-CFOREA

 Lake reaeration correction coefficient

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<cforea>       CFOREA         F10.0   1.0     .001    10.     none    Both
--------------------------------------------------------------------------------
Explanation

CFOREA is a correction factor in the lake reaeration equation; it accounts for good or poor circulation characteristics.


OX-TSIVOGLOU

 Parameters for the Tsivoglou calculation of reaeration rate

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-tsivoglou> REAKT          F10.0   0.08    0.001   1.0     /ft     Both
               TCGINV         F10.0   1.047   1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is required if REAMFG is 1.

REAKT is the empirical constant in Tsivoglou's equation for reaeration (escape coefficient).

TCGINV is the temperature correction coefficient for surface gas invasion.


OX-LEN-DELTH

 Length and water elevation drop of reach

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-len-delth> LEN            F10.0   none    .01     none    miles   Engl
                                      none    .01     none    km      Metric
               DELTH          F10.0   none    0.00001 none    ft      Engl
                                      none    0.00001 none    m       Metric
--------------------------------------------------------------------------------
Explanation

This table is only relevant if HYDR is inactive and REAMFG = 1.

LEN is the length of the RCHRES.

DELTH is the (energy) drop of the RCHRES over its length.


OX-TCGINV

 Owen/Churchill/O'Connor-Dobbins data (temperature correction coefficient)

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<tcginv>       TCGINV         F10.0   1.047   1.0     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

This table is used when REAMFG = 2.

TCGINV is the temperature correction coefficient for surface gas invasion.


OX-REAPARM

 Parameters for user-supplied reaeration formula

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-reaparm>   TCGINV         F10.0   1.047   1.0     2.0     none   Both
               REAK           F10.0   none    1.0E-30 none    /hr    Both
               EXPRED         F10.0   0.0     none    0.0     none   Both
               EXPREV         F10.0   0.0     0.0     none    none   Both
--------------------------------------------------------------------------------
Explanation

This table is used when REAMFG = 3.

TCGINV is the temperature correction coefficient for surface gas invasion.

REAK is the empirical constant in the equation used to calculate the reaeration coefficient.

EXPRED is the exponent to depth and EXPREV is the exponent to velocity in the reaeration coefficient equation.


OX-INIT

 Initial concentrations for the OXRX section

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ox-init>      DOX            F10.0   0.0     0.0     20.0    mg/l    Both
               BOD            F10.0   0.0     0.0     none    mg/l    Both
               SATDO          F10.0   10.0    0.1     20.0    mg/l    Both
--------------------------------------------------------------------------------
Explanation

DOX is the initial dissolved oxygen.

BOD is the initial biochemical oxygen demand.

SATDO is the initial dissolved oxygen saturation concentration.


 NUTRX input

NUTRX input
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.

BENRFG indicates whether or not benthal influences are considered. TAMFG indicates whether or not ammonia is simulated, and ADNHFG indicates whether ammonia adsorption is considered. PO4FG indicates whether or not ortho-phosphorus is simulated, and ADPOFG indicates whether PO4 adsorption is considered.


NUT-FLAGS

 Nutrient flags

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<nut-flags>    TAMFG,NO2FG,   7I5     0       0       1
               PO4FG,AMVFG,
               DENFG,ADNHFG,
               ADPOFG
               PHFLG           I5     2       1       3
-----------------------------------------------------------
Explanation

TAMFG - Value of 1 means ammonia is simulated.

NO2FG - Value of 1 means nitrite is simulated.

PO4FG - Value of 1 means ortho-phosphorus is simulated.

AMVFG - Value of 1 means ammonia volatilization is enabled.

DENFG - Value of 1 means denitrification is enabled.

ADNHFG - Value of 1 means NH4 adsorption is simulated.

ADPOFG - Value of 1 means PO4 adsorption is simulated.

PHFLAG - Source of pH data (1=time series, 2=constant, 3=monthly values).


NUT-AD-FLAGS

 Atmospheric deposition flags for nutrients

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         NUADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

NUADFG is an array of flags indicating the source of atmospheric deposition data. Each nutrient has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series NUADFX or NUADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


CONV-VAL1

 Conversion factors for nutrients

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<conv-val1>    CVBO           F10.0   1.98    1.0     5.0     mg/mg    Both
               CVBPC          F10.0   106.    50.     200.    mols/mol Both
               CVBPN          F10.0   16.     10.     50.     mols/mol Both
               BPCNTC         F10.0   49.     10.     100.    none     Both
--------------------------------------------------------------------------------
Explanation

CVBO - Conversion from milligrams biomass to milligrams oxygen.

CVBPC - Conversion from biomass expressed as phosphorus to carbon.

CVBPN - Conversion from biomass expressed as phosphorus to nitrogen.

BPCNTC - Percentage of biomass which is carbon (by weight).


NUT-BENPARM

 Nutrient benthic parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-benparm>  BRTAM(1)       5F10.0  0.0     0.0     none    mg/m2.hr Both
               BRTAM(2)               0.0     0.0     none    mg/m2.hr Both
               BRPO4(1)               0.0     0.0     none    mg/m2.hr Both
               BRPO4(2)               0.0     0.0     none    mg/m2.hr Both
               ANAER                 .005    .0001    1.0     mg/l     Both
--------------------------------------------------------------------------------
Explanation

This table is used if BENRFG = 1 in Table-type BENTH-FLAG (see RQUAL section).

BRTAM(1) and BRTAM(2) are the benthal release rates of ammonia under aerobic and anaerobic conditions, respectively.

BRPO4(1) and BRPO4(2) are the benthal release rates of ortho-phosphorus under aerobic and anaerobic conditions, respectively.

ANAER is the concentration of dissolved oxygen below which anaerobic conditions are assumed to exist.


NUT-NITDENIT

 Nitrification and denitrification parameters.

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-nitdenit> KTAM20         6F10.0  none    0.001   none    /hr     Both
               KNO220                 none    0.001   none    /hr     Both
               TCNIT                  1.07    1.0     2.0     none    Both
               KNO320                 none    0.001   none    /hr     Both
               TCDEN                  1.07    1.0     2.0     none    Both
               DENOXT                 2.00    0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

KTAM20 and KNO220 are the nitrification rates of ammonia and nitrite at 20 degrees C.

KNO320 is the nitrate denitrification rate at 20 degrees C.

TCNIT and TCDEN are the temperature correction coefficients for nitrification and denitrification, respectively.

DENOXT is the dissolved oxygen concentration threshold for denitrification.


NUT-NH3VOLAT

 Ammonia volatilization parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-nh3volat> EXPNVG         F10.0   0.5     0.1     2.0     none    Both
               EXPNVL         F10.0   .6667   0.1     2.0     none    Both
--------------------------------------------------------------------------------
Explanation

EXPNVG is the exponent in the gas layer mass transfer coefficient equation for NH3 volatilization.

EXPNVL is the exponent in the liquid layer mass transfer coefficient equation for NH3 volatilization.


NUT-BEDCONC

 Bed concentrations of adsorbed NH3 and PO4

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-bedconc>  BNH4(3)        3F10.0  0.0     0.0     none    mg/kg   Both
               BPO4(3)        3F10.0  0.0     0.0     none    mg/kg   Both
--------------------------------------------------------------------------------
Explanation

BNH4(1-3) are the constant bed concentrations of ammonia-N adsorbed to sand, silt, and clay.

BPO4(1-3) are the constant bed concentrations of ortho-phosphorus-P adsorbed to sand, silt, and clay.


NUT-ADSPARM

 Adsorption coefficients for ammonia and ortho-phosphorus

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-adsparm>  ADNHPM(3)      3F10.0  1.E-10  1.E-10  none    cm3/g   Both
               ADPOPM(3)      3F10.0  1.E-10  1.E-10  none    cm3/g   Both
--------------------------------------------------------------------------------
Explanation

ADNHPM(1-3) are the adsorption coefficients (Kd) for ammonia-N adsorbed to sand, silt, and clay.

ADPOPM(1-3) are the adsorption coefficients for ortho-phosphorus-P adsorbed to sand, silt, and clay.


NUT-DINIT

 Initial concentrations of dissolved nutrients

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-dinit>    NO3            5F10.0  0.0     0.0     none    mg/l
               TAM                    0.0     0.0     none    mg/l
               NO2                    0.0     0.0     none    mg/l
               PO4                    0.0     0.0     none    mg/l
               PHVAL                  7.0     0.0     14.0  pH units
--------------------------------------------------------------------------------
Explanation

NO3, TAM, and NO2 are the initial concentrations of nitrate, total ammonia, and nitrite (as N).

PO4 is the initial concentration of ortho-phosphorus (as P).

PHVAL is the constant pH value if PHFLG=2, and the initial value of pH if PHFLG=1 or 3.


NUT-ADSINIT

 Initial concentrations of NH3 and PO4 adsorbed to suspended sediment

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<nut-adsinit>  SNH4(3)        3F10.0  0.0     0.0     none    mg/kg   Both
               SPO4(3)        3F10.0  0.0     0.0     none    mg/kg   Both
--------------------------------------------------------------------------------
Explanation

SNH4(1-3) are the initial concentrations of ammonia-N adsorbed to sand, silt, and clay.

SPO4(1-3) are the initial concentrations of ortho-phosphorus-P adsorbed to sand, silt, and clay.


 PLANK input

PLANK input
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.

PHYFG, ZOOFG and BALFG are flags which indicate whether or not phytoplankton, zooplankton, and benthic algae are being simulated. SDLTFG indicates how the computation of light extinction is performed. They are documented under Table-type PLNK-FLAGS below.

BINVFG indicates the source of grazing macroinvertebrate data for benthic algae; it is documented in Table-type BENAL-FLAGS

NUMBAL is the number of benthic algae species, and is documented in Table-type BENAL-FLAGS below.


PLNK-FLAGS

 Plankton flags

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<plnk-flags>   PHYFG           I5     0       0       1
               ZOOFG          15      0       0       1
               BALFG          15      0       0       2
               SDLTFG         15      0       0       2
               AMRFG          15      0       0       1
               DECFG          15      0       0       1
               NSFG           15      0       0       1
               ZFOOD          I5      2       1       3
               BNPFG          15      0       0       1
------------------------------------------------------------
Explanation

The following, except for ZFOOD, are the conditions when the flag is on (value = 1):

PHYFG - If on (value = 1), phytoplankton are simulated.

ZOOFG - If on, zooplankton are simulated.

BALFG - Value of 1 means a single species of benthic algae is simulated, with growth and respiration rates proportional to phytoplankton (PHYFG must be on). Value of 2 means multiple benthic algae species (between one and four) are simulated using different kinetics (PHYFG may be on or off). Value of 0 means no benthic algae are simulated.

SDLTFG - Value of 1 means the influence of sediment washload on light extinction is simulated based on computed or input sediment concentration. Value of 2 means it is based on linear regression on flow (requires input of Table-type BENAL-LIGHT). Value of 0 means it is not considered separately.

AMRFG - If on, ammonia retardation of nitrogen-limited growth is enabled.

DECFG - If on, linkage between carbon dioxide and phytoplankton growth is decoupled.

NSFG - If on, ammonia is included as part of available nitrogen supply in N-limited growth calculations.

ZFOOD - Indicates the quality of zooplankton food; 1=high quality, 2=medium, 3=low.

BNPFG - Value of 0 indicates that benthic algae use ALNPR in Table-type PLNK-PARM1 to determine preference between ammonia and nitrate. Value of 1 means nitrogen preference is computed with an alternative method, which is based on CAMPR in Table-type BENAL-PARM.


BENAL-FLAGS

 Benthic algae flags

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<benal-flags>  NUMBAL         I5      0       0       4
               BINVFG         I5      2       1       3
               BFIXFG(4)      4I5     0       0       1
------------------------------------------------------------

Explanation

Note: This table is only read if BALFG = 2 in Table-type PLNK-FLAGS.

NUMBAL is the number of benthic algae species simulated.

BINVFG specifies the source of benthic macroinvertebrates for the computation of grazing. 1 means a timeseries is being input as RCHRES EXTNL BINV; 2 means the constant value BINV in Table-type BENAL-GRAZE is used; and 3 means that monthly values are input in Table-type MON-BINV.

BFIXFG(4) are flags that indicate whether a species of benthic algae fixes nitrogen, so that growth is not nitrogen-limited. A value of 1 means the species fixes nitrogen.


PLNK-AD-FLAGS

 Atmospheric deposition flags for refractory organics

Details
----------------------------------------------------------
Symbol         Fortran name   Format    Def    Min    Max
----------------------------------------------------------
<f><c>         PLADFG(*)      (1X,2I3)  0      -1     none
----------------------------------------------------------
Explanation

PLADFG is an array of flags indicating the source of atmospheric deposition data. Each organic constituent has two flags. The first is for dry or total deposition flux, and the second is for wet deposition concentration. The flag values indicate:

0 No deposition of this type is simulated

-1 Deposition of this type is input as time series PLADFX or PLADCN

>0 Deposition of this type is input in the MONTH-DATA table with the corresponding table ID number.


SURF-EXPOSED

 Correction factor for solar radiation data

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<surf-exp>     CFSAEX         F10.0   1.0     0.001   1.0     none    Both
--------------------------------------------------------------------------------
Explanation

This factor is used to adjust the input solar radiation to make it applicable to the RCHRES; for example, to account for shading of the surface by trees or buildings.


PLNK-PARM1

 First group of general plankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plnk-parm1>   RATCLP         F10.0   .6      .01     none    none    Both
               NONREF         F10.0   .5      .01     1.0     none    Both
               LITSED         F10.0   0.0     0.0     none    l/mg.ft Both
               ALNPR          F10.0   1.0     .01     1.0     none    Both
               EXTB           F10.0   none    .001    none    /ft     Engl
                                      none    .001    none    /m      Metric
               MALGR          F10.0   .3      .001    none    /hr     Both
               PARADF         F10.0   1.0     0.0     1.0     none    Both
--------------------------------------------------------------------------------
Explanation

RATCLP is the ratio of chlorophyll A content of biomass to phosphorus content.

NONREF is the non-refractory fraction of algae and zooplankton biomass.

LITSED is the multiplication factor to total sediment concentration to determine sediment contribution to light extinction if SDLTFG = 1 (in Table-type PLNK-FLAGS).

ALNPR is the fraction of nitrogen requirements for phytoplankton growth that is satisfied by nitrate. It is also used for benthic algae if BALFG > 0 and BNPFG = 1 in Table-type PLNK-FLAGS. EXTB is the base extinction coefficient for light.

MALGR is the maximum unit algal growth rate for phytoplankton.

PARADF is the fraction of solar radiation that is photosynthetically active.


PLNK-PARM2

 second group of general plankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plnk-parm2>   CMMLT          F10.0   .033    1.0E-6  none    ly/min  Both
               CMMN           F10.0   .045    1.0E-6  none    mg/l    Both
               CMMNP          F10.0   .0284   1.0E-6  none    mg/l    Both
               CMMP           F10.0   .015    1.0E-6  none    mg/l    Both
               TALGRH         F10.0   95.     50.     212.    degF    Engl
                                      35.     10.     100.    degC    Metric
               TALGRL         F10.0   43.   -120.     212.    degF    Engl
                                      6.1    -84.     100.    degC    Metric
               TALGRM         F10.0   77.     32.     212.    degF    Engl
                                      25.     0.0     100.    degC    Metric
--------------------------------------------------------------------------------
Explanation

CMMLT is the Michaelis-Menten constant for light limited growth for phytoplankton.

CMMN is the nitrate Michaelis-Menten constant for nitrogen limited growth for phytoplankton.

CMMNP is the nitrate Michaelis-Menten constant for phosphorus limited growth for phytoplankton.

CMMP is the phosphate Michaelis-Menten constant for phosphorus limited growth for phytoplankton.

TALGRH is the temperature above which phytoplankton growth ceases.

TALGRL is the temperature below which phytoplankton growth ceases.

TALGRM is the temperature below which phytoplankton growth is retarded.


PLNK-PARM3

 Third group of general plankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plnk-parm3>   ALR20          F10.0   .004    1.0E-6  none    /hr     Both
               ALDH           F10.0   .01     1.0E-6  none    /hr     Both
               ALDL           F10.0   .001    1.0E-6  none    /hr     Both
               OXALD          F10.0   .03     1.0E-6  none    /hr     Both
               NALDH          F10.0   0.0     0.0     none    mg/l    Both
               PALDH          F10.0   0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

ALR20 is the phytoplankton unit respiration rate at 20 degrees C.

ALDH is the high phytoplankton unit death rate.

ALDL is the low phytoplankton unit death rate.

OXALD is the increment to phytoplankton unit death rate due to anaerobic conditions.

NALDH is the inorganic nitrogen concentration below which high phytoplankton death rate occurs (as nitrogen).

PALDH is the inorganic phosphorus concentration below which high phytoplankton death rate occurs (as phosphorus).


PLNK-PARM4

 Fourth group of general plankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plnk-parm4>   NMINGR         F10.0   .001    1.0E-6  none    mg/l    Both
               PMINGR         F10.0   .001    1.0E-6  none    mg/l    Both
               CMINGR         F10.0   .001    1.0E-6  none    mg/l    Both
               LMINGR         F10.0   .001    1.0E-6  none    ly/min  Both
               NMINC          F10.0   .001    1.0E-6  none    mg/l    Both
--------------------------------------------------------------------------------

Explanation

NMINGR is the minimum nitrate-N concentration for algal growth.

PMINGR is the minimum orthophosphate-P concentration for algal growth.

CMINGR is the minimum CO2-C concentration for algal growth.

LMINGR is the minimum light intensity for algal growth.

NMINC is the minimum concentration for inorganic N species (TAM, NO3) allowed to remain after algal uptake. Concentrations below this level are set to zero.


PHYTO-PARM

 Phytoplankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<phyto-parm>   SEED           F10.0   0.0     0.0     none    mg/l    Both
               MXSTAY         F10.0   0.0     0.0     none    mg/l    Both
               OREF           F10.0   0.0001  0.0001  none    ft3/s   Engl
                                      0.0001  0.0001  none    m3/s    Metric
               CLALDH         F10.0   50.0    .01     none    ug/l    Both
               PHYSET         F10.0   0.0     0.0     none    ft/hr   Engl
                                      0.0     0.0     none    m/hr    Metric
               REFSET         F10.0   0.0     0.0     none    ft/hr   Engl
                                      0.0     0.0     none    m/hr    Metric
--------------------------------------------------------------------------------
Explanation

SEED is the minimum concentration of plankton not subject to advection (i.e., at high flow).

MXSTAY is the concentration of plankton not subject to advection at very low flow.

OREF is the outflow at which the concentration of plankton not subject to advection is midway between SEED and MXSTAY.

CLALDH is the chlorophyll A concentration above which high algal death rate occurs.

PHYSET is the rate of phytoplankton settling.

REFSET is the rate of settling for dead refractory organics. Note that if the default of zero is not desired, this table must be input even if PHYFG = 0 in Table-type PLNK-FLAGS.


ZOO-PARM1

 First group of zooplankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<zoo-parm1>    MZOEAT         F10.0   .055    .001    none    mg phyto/   Both
                                                              mg zoo/hr
               ZFIL20         F10.0   none    0.001   none    l/mg zoo/hr Both
               ZRES20         F10.0   .0015   1.0E-6  none    /hr         Both
               ZD             F10.0   .0001   1.0E-6  none    /hr         Both
               OXZD           F10.0   .03     1.0E-6  none    /hr         Both
--------------------------------------------------------------------------------
Explanation

MZOEAT is the maximum zooplankton unit ingestion rate.

ZFIL20 is the zooplankton filtering rate at 20 degrees C.

ZRES20 is the zooplankton unit respiration rate at 20 degrees C.

ZD is the natural zooplankton unit death rate.

OXZD is the increment to unit zooplankton death rate due to anaerobic conditions.


ZOO-PARM2

 Second group of zooplankton parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<zoo-parm2>    TCZFIL         F10.0   1.17    1.0     2.0     none    Both
               TCZRES         F10.0   1.07    1.0     2.0     none    Both
               ZEXDEL         F10.0   0.7     .001    1.0     none    Both
               ZOMASS         F10.0   .0003   1.0E-6  1.0     mg/org  Both
--------------------------------------------------------------------------------
Explanation

TCZFIL and TCZRES are the temperature correction coefficients for filtering and respiration, respectively.

ZEXDEL is the fraction of non-refractory zooplankton excretion which is immediately decomposed when the ingestion rate is greater than MZOEAT.

ZOMASS is the average weight of a zooplankton organism.


BENAL-PARM

 Benthic algae parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-parm>   MBAL           F10.0   600.    .01     none    mg/m2   Both
               CFBALR         F10.0   1.0     .01     1.0     none    Both
               CFBALG         F10.0   1.0     .01     1.0     none    Both
               MINBAL         F10.0   0.001   1.0E-6  none    mg/m2   Both
               CAMPR          F10.0   0.001   1.0E-6  none    none    Both
               FRAVL          F10.0   0.0     0.0     1.0     none    Both
               NMAXFX         F10.0   10.     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

MBAL is the maximum benthic algae density (as biomass), if BALFG = 1 in Table-type PLNK-FLAGS.

CFBALR and CFBALG are the ratios of benthic algae to phytoplankton respiration and growth rates, respectively, if BALFG = 1.

MINBAL is the minimum benthic algae density (as biomass), if BALFG = 2. This minimum is applied separately to each of the benthic algal types.

CAMPR is the coefficient in the alternative nitrogen preference equation for benthic algae, if BALFG = 2 and BNPFG = 1 in Table-type PLNK-FLAGS.

FRAVL is the fraction of nonrefractory nutrients resulting from benthic algae death/removal that are assumed to be immediately available as inorganic nutrients, plus refractory organic carbon. Used if BALFG = 2.

NMAXFX is the concentration of available inorganic nitrogen in the water column (TAM + NO3 + NO2) above which nitrogen-fixation by benthic algae is suppressed. If the concentration is greater than NMAXFX, fixation does not occur. Used if BALFG = 2.


BENAL-GROW

 Benthic algae growth parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-grow>   MBALGR         F10.0   0.3     1.0E-6  none    /hr     Both
               TCBALG         F10.0   1.07    1.0     2.0     none    Both
               CMMNB          F10.0   0.045   0.0     none    mg/l    Both
               CMMPB          F10.0   0.015   1.0E-6  none    mg/l    Both
               CMMD1          F10.0   0.1     1.0E-6  none    none    Both
               CMMD2          F10.0   100.    1.0E-6  none    mg/m2   Both
               CSLIT          F10.0   250.    1.0E-6  none    ly/min  Both
--------------------------------------------------------------------------------

Explanation

Note: This table is only used when BALFG = 2 in Table-type PLNK-FLAGS. The values given here apply to one of up to four benthic algae types or species. The table should appear once for each species, i.e., NUMBAL times. NUMBAL is defined in Table-type BENAL-FLAGS.

MBALGR is the maximum benthic algae base growth rate for each benthic algae species.

TCBALG is the temperature correction coefficient for growth for each species.

CMMNB is the half-saturation constant for nitrogen-limited growth for each species. If the value is zero, then growth is not limited (i.e., this species fixes nitrogen).

CMMPB is the half-saturation constant for phosphorus-limited growth for each species.

CMMD1 is the coefficient for total benthic algae density in the density-limited growth equation for each species.

CMMD2 is the half-saturation constant for density-limited growth for each species. CSLIT is the saturation light level for each species.


BENAL-RESSCR

 Benthic algae respiration and scour parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-resscr> BALR20         F10.0   0.004   1.0E-6  none    /hr     Both
               TCBALR         F10.0   1.07    1.0     2.0     none    Both
               CSLOF1         F10.0   0.1     1.0E-6  none    /hr     Both
               CSLOF2         F10.0   1.0     1.0E-6  none    none    Both
               GRORES         F10.0   0.075   0.0     1.0     none    Both
--------------------------------------------------------------------------------

Explanation

Note: This table is only used when BALFG = 2 in Table-type PLNK-FLAGS. The values given here apply to one of up to four benthic algae species. The table should appear once for each species, i.e., NUMBAL times. NUMBAL is defined in Table-type BENAL-FLAGS.

BALR20 is the benthic algae respiration rate at 20 C for each species.

TCBALR is the temperature correction coeefficient for respiration for each species.

CSLOF1 is the rate coefficient in the benthic algae scour equation for each species.

CSLOF2 is the multiplier of velocity in the exponent in the benthic algae scour equation for each species.

GRORES is the fraction of photorespiration needed to support growth/photosynthesis for each species.


BENAL-GRAZE

 Benthic algae invertebrate grazing parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-graze>  CREMVL         F10.0   0.05    1.0E-6  none   mg/mg/yr Both
               CMMBI          F10.0   0.05    1.0E-6  none    mg/m2   Both
               BINV           F10.0   0.0     0.0     none    mg/m2   Both
               TCGRAZ         F10.0   1.0     1.0     2.0     none    Both
--------------------------------------------------------------------------------

Explanation

Note: This table is only read if BALFG = 2 in Table-type PLNK-FLAGS.

CREMVL is the annual benthic algae grazing (removal) rate by invertebrates.

CMMBI is the half-saturation constant for grazing by invertebrates.

BINV is the biomass (density) of grazing invertebrates in the reach if BINVFG = 2 in Table-type BENAL-FLAGS.

TCGRAZ is the temperature correction coefficient for macroinvertebrate grazing.


BENAL-LIGHT

Benthic algae light parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-light>  CTRBQ1         F10.0   0.0     0.0     none    NTU/cfs Engl
                                      0.0     0.0     none    NTU/cms Metr
               CTRBQ2         F10.0   1.0     none    none    none    Both
               CKTRB1         F10.0   0.0     0.0     none    /ft     Engl
                                      0.0     0.0     none    /m      Metr
               CKTRB2         F10.0   1.0     none    none    none    Both
--------------------------------------------------------------------------------

Explanation

Note: This table is only read if BALFG = 2 and SDLTFG = 2 in Table-type PLNK-FLAGS.

CTRBQ1 and CTRBQ2 are the coefficient and exponent in the turbidity estimation equation.

CKTRB1 and CKTRB2 are the coefficient and exponent in the light extinction equation.


BENAL-RIFF1

 First set of benthic algae riffle parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-riff1>  FRRIF          F10.0   1.0     0.01    1.0     none    Both
               CMMV           F10.0   5.0     1.0E-6  none    ft/s    Engl
                                      1.5     1.0E-6  none    m/s     Metr
               RIFCQ1         F10.0   0.0     0.0     none    cfs     Engl
                                      0.0     0.0     none    cms     Metr
               RIFCQ2         F10.0   0.0     0.0     none    cfs     Engl
                                      0.0     0.0     none    cms     Metr
               RIFCQ3         F10.0   0.0     0.0     none    cfs     Engl
                                      0.0     0.0     none    cms     Metr
--------------------------------------------------------------------------------

Explanation

FRRIF is the fraction of the reach that is composed of riffles where benthic algae can grow.

CMMV is the half-saturation constant for riffle velocity in the nutrient availability equation for benthic algae.

RIFCQ1, RIFCQ2, and RIFCQ3 are critical flow levels for riffle velocity and average depth.


BENAL-RIFF2

 Second set of benthic algae riffle parameters

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-parm>   RIFVEL(4)      4F8.0   1.0     1.0     none    none    Both
               RIFDEP(4)      4F8.0   1.0     1.0E-6  1.0     none    Both
--------------------------------------------------------------------------------

Explanation

RIFVEL(4) are the riffle velocity multipliers corresponding to the critical flow values (RIFCQ) in table BENAL-RIFF1.

RIFDEP(4) are the riffle depth multipliers corresponding to the critical flow values (RIFCQ) in table BENAL-RIFF1.


MON-BINV

 Monthly density values of grazing benthic macroinvertebrates

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<mon-binv>     BINVM(12)      12F5.0  0.0     0.0     none    mg/m2   Both
--------------------------------------------------------------------------------

Explanation

BINVM(12) are monthly values of the biomass (density) of grazing macroinvertebrates in the reach. This table is only used if BALFG = 2 in Table-type PLNK-FLAGS and BINVFG = 3 in Table-type BENAL-FLAGS.


PLNK-INIT

 Initial plankton conditions

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<plank-init>   PHYTO          F10.0   .96E-6  1.0E-10 none    mg/l    Both
               ZOO            F10.0   .03     1.0E-6  none    org/l   Both
               BENAL          F10.0   1.0E-8  1.0E-10 none    mg/m2   Both
               ORN            F10.0   0.0     0.0     none    mg/l    Both
               ORP            F10.0   0.0     0.0     none    mg/l    Both
               ORC            F10.0   0.0     0.0     none    mg/l    Both
--------------------------------------------------------------------------------
Explanation

PHYTO is the initial phytoplankton concentration, as biomass.

ZOO is the initial zooplankton concentration.

BENAL is the initial benthic algae density, as biomass if only one species is simulated (i.e., BALFG = 1 in Table-type PLNK-FLAGS, or if BALFG = 2 and NUMBAL = 1 in Table-type BENAL-FLAGS).

ORN is the initial dead refractory organic nitrogen concentration.

ORP is the initial dead refractory organic phosphorus concentration.

ORC is the initial dead refractory organic carbon concentration.


BENAL-INIT

 Initial benthic algae (multiple species) densities

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<benal-init>   BENAL(4)       4F10.0  0.0     0.0     none    mg/m2   Both
--------------------------------------------------------------------------------

Explanation

Note: This table is only read if BALFG = 2 in Table-type PLNK-FLAGS and NUMBAL > 1 in Table-type BENAL-FLAGS.

BENAL(4) are the initial benthic algae densities for each species.


 PHCARB input

PHCARB input
Explanation

The exact format of each of the tables above is detailed in the documentation which follows. Tables in brackets [] need not always be supplied; for example, because all of the inputs have default values.


PH-PARM1

 Flags for pH simulation

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<ph-parm1>     PHCNT          I5      25      1       100
               ALKCON         I5      1       1       10
------------------------------------------------------------
Explanation

PHCNT is the maximum number of iterations used to solve for the pH.

ALKCON is the number of the conservative substance (in section CONS) which is used to simulate alkalinity. Alkalinity must be simulated in order to obtain valid results.


PH-PARM2

 Parameters for pH simulation

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
-------------------------------------------------------------------------------
<ph-parm2>     CFCINV         F10.0   .913    .001    1.0     none     Both
               BRCO2(1)       F10.0   62.     .01     none    mg/m2.hr Both
               BRCO2(2)       F10.0   62.     .01     none    mg/m2.hr Both
--------------------------------------------------------------------------------
Explanation

CFCINV is the ratio of the carbon dioxide invasion rate to the oxygen reaeration rate (which is computed in section OXRX).

BRCO2 is the benthal release rate of CO2 (as carbon) for: (1) aerobic and (2) anaerobic conditions.


PH-INIT

 Initial conditions for pH simulation

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ph-init>      TIC            F10.0   0.0     0.0     none    mg/l    Both
               CO2            F10.0   0.0     0.0     none    mg/l    Both
               PH             F10.0   7.0     1.0     15.0    none    Both
--------------------------------------------------------------------------------
Explanation

TIC is the initial total inorganic carbon.

CO2 is the initial carbon dioxide (as carbon).

PH is the initial pH.


 COPY Block

COPY Block
Explanation

The COPY module is used to copy one or more time series from one location (source) to another (target). See COPY in Functional Description.


TIMESERIES

 Number of time series to be copied

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<npt>          NPT            I5      0       0       20
<nmn>          NMN            I5      0       0       20
----------------------------------------------------------
Explanation

NPT is the number of point-valued time series to be copied.

NMN is the number of mean-valued time series to be copied.


 PLTGEN Block

PLTGEN Block
Explanation

The PLTGEN module prepares one or more time series for display on a plotter. It writes the time series, and associated title and scaling information, to a "pltgen" file which can be input to other software packages for display and analysis. See PLTGEN in Functional Description .


PLOTINFO

 General plot information

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<fil>          PLOTFL         I5      30      30      99
<npt>          NPT            I5      0       0       20
<nmn>          NMN            I5      0       0       99
<lab>          LABLFG         I5      0       -1      1
<pyr>          PYREND         I5      9       1       12
<piv>          PIVL           I5      1       -2      1440
<typ>          TYPEFG         I5      1       1       3
----------------------------------------------------------
Explanation

PLOTFL is the file unit number of the PLTGEN file (output of this operation).

NPT is the number of point-valued time series to be written to the file.

NMN is the number of mean-valued time series to be written to the file.

LABLFG indicates how the plot will be labeled:

 -1  means no labels

  0  means standard labeling; that is, one set of X and Y axes and
     associated labels will be drawn for entire plot.

  1  means separate X and Y axes and labels will be drawn for each
     "frame" of the plot (e.g., each water year).

PYREND is the calendar month which terminates a plot frame (e.g., a water year).

PIVL is the number of basic time intervals to be aggregated to get to the interval of the data written to the PLTGEN file. There are two special cases for PIVL: a PIVL of -1 causes a monthly PLTGEN file to be written. A PIVL of -2 causes an annual PLTGEN file to be written.

TYPEFG indicates which type of output file will be produced.

  1  means a standard PLTGEN/MUTSIN file. NPT + NMN must be less
     than or equal to 20.

  2  means an FEQ Diffuse Time Series File (DTSF). NPT must be zero.

  3  means an FEQ Point Time Series File (PTSF). NPT must be one,
     and NMN must be zero.


GEN-LABELS

 General plot labels

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------

<title>        TITLE          10A4    none    none    none
<ylabl>        YLABL          5A4     none    none    none

----------------------------------------------------------
Explanation

TITLE is the general plot title. It also appears in the header of the FEQ DTSF file if TYPEFG=2 in Table-Type PLOTINFO.

YLABL is the units label to be placed on the Y-axis.


SCALING

 Scaling information

Details
--------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
--------------------------------------------------------------------------------
<ymin>         YMIN           F10.0   0.0     none    none   See Note Both
<ymax>         YMAX           F10.0   none    none    none   See Note Both
<ivlin>        IVLIN          F10.0   none    0.0     none    ivl/in  Both
<thresh>       THRESH         F10.0   -1.0E30 none    none   See Note Both
--------------------------------------------------------------------------------
Explanation

YMIN and YMAX are the minimum and maximum ordinate (Y axis) values in YLABL units.

IVLIN is the horizontal (time) scale; that is, number of intervals (in pltgen file) per inch on graph.

THRESH is the write threshold value. If the value for any time series is greater than the threshold, a full record is written to the PLTGEN file for the current PLTGEN file time interval.


CURV-DATA

 Data for each time series on pltgen file

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<label>        LABEL          4A4     none    none    none
<lin>          LINTYP         I5      0       none    none
<int>          INTEQ          I5      0       0       13
<col>          COLCOD         I5      0       0       10
<tr>           TRAN           A4      SUM     none    none
----------------------------------------------------------
Explanation

Note: This table must be repeated for each time series on the pltgen file, i.e., there must be NPT + NMN of these tables.

LABEL is a descriptive label for this particular curve (time series). It also

appears in the header of the FEQ DTSF file if TYPEFG=2 in Table-Type PLOTINFO.

LINTYP describes the type of line to be drawn for this curve. It also determines the frequency of plotted symbols:

A zero value means points are connected by straight lines; no symbols are drawn at individual data points.

A positive value means points are connected by straight lines; the magnitude determines the frequency of plotted symbols (e.g., 4 means plot a symbol at every 4th point obtained from the pltgen file).

A negative value means no connecting lines are drawn. Only symbols are plotted; the absolute value determines the frequency (as above).

INTEQ is the integer equivalent of the symbols to be plotted for this curve (i.e., indicates which symbol to use). It is only meaningful if LINTYP is not zero.

COLCOD is the color code for this curve. The meaning depends on how the stand-alone plot program is set up; e.g., 1 might mean red pen, 2 blue pen, etc.

TRAN is the transformation code used to aggregate data from the basic interval (INDELT) to the PLTGEN file interval. Valid values are: SUM, AVER, MAX, MIN, and LAST.


 DISPLY Block

DISPLY Block
Explanation

The DISPLY module summarizes a time series and presents the results in neatly formatted tables. Data can be displayed at any HSPF-supported interval. See DISPLY in Functional Description for further information.


DISPLY-INFO1

 Contains most of the information necessary to generate data displays.

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<title>        TITLE(*)       7A4     none    none    none
<tr>           TRAN           A4      SUM     none    none
<piv>          PIVL           I5      0       0       1440
d              DIGIT1         A1      0       0       7
<fil>          FILE1          I5      6       6       99
<pyr>          PYRFG          I5      0       0       1
d              DIGIT2         A1      0       0       7
<fil>          FILE2          I5      6       6       99
<ynd>          PYREND         I5      9       1       12
----------------------------------------------------------
Explanation

TITLE is the title that will be printed at the top of each page of the display.

TRAN is the transformation code, used to aggregate data from the basic interval (time step) to the various display intervals (for both short- and long-span displays). Valid values are: SUM, AVER, MAX, MIN, LAST.

PIVL is the number of basic time steps (DELT minutes each) to be aggregated to get to the interval of the data printed in a short-span display (In the above example, if DELT were 15 minutes for DISPLY operation #2, then the data in the short-span summary tables would be displayed at an interval of 1 hour (PIVL=4). If PIVL=0, a short-span display is not produced.

DIGIT1 and DIGIT2 are the number of decimal digits to be used to print data in the short-span and long-span displays, respectively. Note that it is up to the user to ensure that this value falls in the valid range 0-7. HSPF does not check this.

FILE1 and FILE2 are the file unit numbers of the files to which short-and long- span displays will be output; the file names are specified (and associated with the file unit numbers) in the FILES Block.

PYRFG indicates whether or not a long-span display (annual summary of daily values) is required. Value of 1 means it is, 0 means it is not.

PYREND is the calendar month which will appear at the right-hand extremity of an annual summary. This enables the user to decide whether the data should be displayed on a calendar year or some other (e.g., water year) basis.


DISPLY-INFO2

 Additional optional information for module DISPLY.

Details
-------------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max     Units   Unit syst
-------------------------------------------------------------------------------
<mult>         A              F10.0   1.0     none    none    none    Both
<add>          B              F10.0   0.0     none    none    none    Both
<thresh1>      THRESH1        F10.0   0.0     none    none    none    Both
<thresh2>      THRESH2        F10.0   0.0     none    none    none    Both
-------------------------------------------------------------------------------
Explanation

This table is only required if the user wants to use the conversion or threshold options.

A and B are parameters used to convert the data from internal units to display units:

Display value= A*(internal value)+B

The conversion is done before any aggregation of data to larger time steps (i.e., larger than the simulation time interval) is performed. Note that the default values of A and B result in no change.

THRSH1 and THRSH2 are threshold values for the short-span and long-span displays, respectively (THRSH2 is not presently used). THRSH1 can be used to reduce the quantity of printout produced in a short-span display; it functions as follows: When the individual values in a row of the display have been aggregated to get the "row value" (hour- or day-value, depending on the display interval), if the row-value is greater than THRSH1 the row is printed, else it is omitted. Thus, for example, the default of 0.0 will ensure that rows of data containing all zeros are omitted.


 DURANL Block

DURANL Block
Explanation

The DURANL module performs duration and excursion analysis on a time series. For example, it analyzes the frequency with which N consecutive values in the time series exceed a specified set of values, called "levels". N is the "duration" of the excursion; up to 10 durations may be used in one duration analysis operation. The user may specify that only those data falling within a specified time in each year (analysis season) be processed. See DURANL in Functional Description.


GEN-DURDATA

 General information for duration analysis

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<title>        TITLE(*)       10A4    none    none    none
<nd>           NDUR           I5      1       1       10
<nl>           NLEV           I5      1       1       20
<pr>           PRFG           I5      1       1       7
<pu>           PUNIT          I5      6       1       99
<lcn>          LCNUM          I5      0       0       5
<lco>          LCOUT          I5      0       0       1
----------------------------------------------------------
Explanation

TITLE is the 40-character title which the user assigns to the duration analysis operation; usually, something which identifies the time series being analyzed.

NDUR is the number of durations for which the time series will be analyzed.

NLEV is the number of user-specified levels which will be used in analyzing the time series.

PRFG is a flag which governs the quantity of information printed out. A value of 1 results in minimal (basic) output. Increasing the value (up to the maximum of 7) results in increased detail of output. See DURANL in Functional Description for details.

PUNIT is the file unit number to which the output of the duration analysis operation will be written; the file name is specified (and associated with the file unit number) in the FILES Block. Each duration analysis operation must have a unique file unit number.

LCNUM indicates the number of lethal concentration curves to be used in the analysis. A zero means no lethality analysis is to be performed.

LCOUT is a flag which governs the printout of intermediate lethal event information (1=on).


SEASON

 The analysis season for the durational analysis

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<start>        SESONS(2-5)    4(1X,I2)  see below
<end>          SESONE(2-5)    4(1X,I2)  see below
----------------------------------------------------------
Explanation

This table is used if one wishes to specify an analysis season; only data falling between the specified starting and ending month/day/hour/minute (in each year) will be considered in the analysis.

Note:

  1. The defaults, minima, maxima and other values for specifying the starting and ending date/times are the same as those given in the discussion of the GLOBAL Block. If any fields in the starting date/time are blank they default to the earliest meaningful value; for the ending date/time they default to the latest possible values. Thus, the analysis season in the example above includes the entire month of February.
  2. Although it is not meaningful to provide for a "year" in the fields documented above (since the analysis season applies to every year in the run), the four spaces preceding both the <start> and <end> fields should be left blank because the system does, in fact, read the year and expects it to be blank or zero.
  3. If this table is omitted, the defaults imply that the analysis season extends from January 1 through December 31.


DURATIONS

 Durations to be used in the analysis

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<d1>           DURAT(1)       I5      1       1       1
<others>       DURAT(2-10)    9I5     2       2       none
----------------------------------------------------------
Explanation

DURAT(*) is an array which contains the NDUR different durations for which the time series will be analyzed (NDUR wis specified in Table-type GEN-DURDATA). The durations are expressed in multiples of the internal time step specified in the OPN SEQUENCE Block. Thus, if DELT= 5 minutes and the duration is 3, the time series will be analyzed with a window of 15 minutes. The analysis algorithm requires that the first duration be 1 time step, but the others can have any integer value.


LEVELS

 Levels to be used in the analysis

Details
-----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
-----------------------------------------------------------
<first14>      LEVEL(2-15)    14F5.0  0.0     none    none
<last6>        LEVEL(16-21)    6F5.0  0.0     none    none
-----------------------------------------------------------
Explanation

LEVEL(2 through 21) contains the 20 possible user-specified levels for which the input time series will be analyzed. (LEVEL(1) and LEVEL(22) are reserved for system use, and this does not affect the user since only LEVEL(2) through (21) can be specified). The actual number of levels (NLEV) is specified in Table-type GEN-DURDATA. If NLEV is greater than 14, the entry for a given operation must be continued to the next line; up to 2 lines may be required to cover all the levels. In the example above, operation 1 has 16 user-specified levels and thus requires 2 lines, but operation 2 only requires 1 line because it has only 4 user-specified levels.

When an entry has to be continued onto more than 1 line:

  1. No blank or comment lines may be put between any of the lines for a continued entry. Put all comments ahead of the entry. (See operation 1 in above example).
  2. The <range> specification must be repeated for each line onto which the entry is continued.

Note that the levels must be specified in ascending order. The system checks that this requirement is not violated.


LCONC

 Lethal concentrations to be used in the analysis

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<first-7>      LCONC(1-7,I)   7F10.0  0.0     none    none
<last-3>       LCONC(8-10,I)  3F10.0  0.0     none    none
----------------------------------------------------------
Explanation

LCONC(*) is an array which contains the NDUR different lethal levels which are used in a lethal concentration analysis. If no lethality analysis is being done, this table may be omitted.

There must be one of these tables for each lethal concentration curve, i.e., there should be LCNUM of these tables.


 GENER Block

GENER Block
Explanation

The GENER module generates a time series from one or two input time series. Usually, only Table-type OPCODE is required. However, if OPCODE = 8 (power series), you need to supply the number of terms in the power series and the values of the coefficients. If OPCODE = 9, 10, 11, 24, 25, or 26, then Table-type PARM is required to input the constant required in the operation.


OPCODE

 Operation code for time series generation

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<opn>          OPCODE         I5      none    1       26
----------------------------------------------------------
Explanation

OPCODE is the operation code. If A and B are the input time series and C is the generated time series, the functions performed for the allowable range of values of OPCODE are:

OPCODE Definition

1 C= Abs(A)

2 C= Sqrt(A)

3 C= Trunc(A)

4 C= Ceil(A)

5 C= Floor(A)

6 C= loge(A)

7 C= log10(A)

8 C= K(1)+K(2)*A+K(3)*A**2+(up to 7 terms)

9 C= K**A

10 C= A**K

11 C= A+K

12 C= Sin(A)

13 C= Cos(A)

14 C= Tan(A)

15 C= Sum(A)

16 C= A+B

17 C= A-B

18 C= A*B

19 C= A/B

20 C= Max (A,B)

21 C= Min (A,B)

22 C= A**B

23 C= cumulative departure of A below B

24 C= K

25 C= Max (A,K)

26 C= Min (A,K)

If OPCODE is less than 15, or OPCODE equals 25 or 26, only one input time series is required; if OPCODE is 24, no input time series are required; otherwise two input time series are required. Note that the operation is performed on the data when they are in internal form (timestep=DELT, units= internal units). See GENER in Functional Description.


NTERMS

 Number of terms in power series

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<nt>           NTERMS         I5      2       1       7
----------------------------------------------------------
Explanation

This table is only relevant if OPCODE=8. NTERMS is the total number of terms in the power series:

C= K(1)+K(2)*A+K(3)*A**2 etc.

The default value of 2 was chosen because this option is most often used to perform a linear transformation.


COEFFS

 Coefficients in generating power function

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<coeffs>       K(*)           7F10.0  0.0     none    none
----------------------------------------------------------
Explanation

This table is only relevant if OPCODE=8. K(1 through NTERMS) are the coefficients in the power function:

C= K(1)+K(2)*A+K(3)*A**2+ etc.


PARM

 Constant for GENER operation

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<con>          K              F10.0   1.0     none    none
----------------------------------------------------------
Explanation

This table is only relevant if OPCODE is 9, 10, 11, 24, 25, or 26.

K is the constant required in the operation.


 MUTSIN Block

MUTSIN Block
Explanation

The MUTSIN module is used to copy one or more time series from a PLTGEN file or its equivalent to one or more targets. The targets may be data sets in the WDM file (specified in the EXT-TARGETS Block) or input time series in other operations (specified in the NETWORK Block). See MUTSIN in Functional Description.


MUTSINFO

 Information about time series to be copied

Details
----------------------------------------------------------
Symbol         Fortran        Format  Def     Min     Max
               name(s)
----------------------------------------------------------
<mfl>          MUTFL          I5      30      30      99
<npt>          NPT            I5      0       0       20
<nmn>          NMN            I5      0       0       20
<nli>          NLINES         I5      25      1       none
<mis>          MISSFG         I5      0       0       3
----------------------------------------------------------
Explanation

MUTFL is the file unit number of the PLTGEN-format file being input; the file name is specified (and associated with the file unit number) in the FILES Block.

NPT is the number of point-valued time series to be input.

NMN is the number of mean-valued time series to be input. NPT + NMN must be less than or equal to 20.

NLINES is the number of lines to skip at the beginning of the file.

MISSFG is the missing data action flag.

0 - stop on missing data

1 - fill missing data with 0.0

2 - fill missing data with -1.0E30

3 - fill missing data with next value


 BMPRAC Block

BMPRAC Block
Explanation

The BMPRAC module requires the user to specify removal fractions or pointers to MONTH-DATA block tables for each constituent active in the RUN.

Some general information is needed. The first two tables are parallels of the GEN-INFO and PRINT-INFO tables used by PERLND, IMPLND and RCHRES. No ACTIVITY table is needed; instead, if a member of the timeseries group INFLOW is absent, either because that constituent is unaffected by the BMP (and therefore bypasses the MASS-LINK block) or because the appropriate section of the source land use is turned off, then both the computed total outflow and the computed total removal for that constituent are computed and reported as zero.


PRINT-INFO

 Printout information for BMPRAC

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<print-flags>  PFLAG          9I5     4       2       6
<pivl>         PIVL           I5      1       1       1440
<pyr>          PYREND         I5      9       1       12
----------------------------------------------------------
Explanation

Table of printout level flags for BMPRAC. HSPF permits the user to vary the printout level (maximum frequency) for the various active sections of an operation. The meaning of each permissible value for PFLAG(*) is:

2 means every PIVL intervals

3 means every day

4 means every month

5 means every year

6 means never.

A value need only be supplied for PIVL if one or more sections have a printout level of 2. For those sections, printout will occur every PIVL intervals (that is, every PDELT=PIVL*DELT minutes). PIVL must be chosen such that there are an integer number of PDELT periods in a day.

PYREND is the calendar month which will terminate the year for printout purposes. Thus, the annual summary can reflect the situation over the past water year or the past calendar year, etc.


GEN-INFO

 General information for BMPRAC

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<bmp-id>       BMPID          5A4     none    none    none
<bmp>          BMPTYP         I5      1       1       1
<nco>          NCONS          I5      0       0       10
<ngq>          NGQUAL         I5      0       0       3
<tin>          IUNITS         I5      1       1       2
<tou>          OUNITS         I5      1       1       2
<pue>          PUNIT(1)       I5      0       0       99
<pum>          PUNIT(2)       I5      0       0       99
----------------------------------------------------------
Explanation

BMPID is the name/identifier of the BMPRAC, it is limited to 20 characters

BMPTYP is the type of BMP implementation. 1 means simple removal fractions. No other type is currently supported.

NCONS is the number of conservative constituents simulated.

NGQUAL is the number of generalized constituents (quals) being simulated.

IUNITS indicates the system of units for data in the input time series; 1 means English units, 2 means Metric units.

OUNITS indicates the system of units for data in the output time series; 1 means English units, 2 means Metric units.

PUNIT(1) indicates the destination of printout in English units. A value of 0 means no printout is required in English units. A non-zero value means printout is required in English units and the value is the file unit number of the file to which the printout is to be written. Note that printout for each BMP can be obtained in either the English or Metric systems, or both (irrespective of the system used to supply the inputs).

PUNIT(2) indicates the destination of printout in Metric units. A value of 0 means no printout is required in Metric units. A non-zero value means printout is required in Metric units and the value is the file unit number of the file to which the printout is to be written. Note that printout for each BMP can be obtained in either the English or Metric systems, or both (irrespective of the system used to supply the inputs).


FLOW-FLAG

 Flow removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<volf>         VOLFFG         I5      0       0       999
----------------------------------------------------------
Explanation

Value of 0 indicates that the BMP removal factor for flow is constant, given in table FLOW-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.


FLOW-FRAC

 Flow removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<volfrc>       VOLFRC         F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

VOLFRC is the BMP removal fraction for flow.


CONS-FLAG

 Conservative removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<cXf>          CONFFG(*)      10I5    0       0       999
----------------------------------------------------------
Explanation

Value of 0 indicates that the BMP removal factor for conservative constituent 'X' is constant, given in table CONS-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.


CONS-FRAC

 Conservative removal fractions and related information

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<conid>        CONID          5A4     none    none    none
<cunits>       CQTYID         2A4     none    none    none
<cfrac>        CONFRC         F10.0   0.0     0.0     1.0
------------------------------------------------------------
Explanation

This table must be repeated NCONS times, once for each conservative constituent.

CONID is the name/identifier of the conservative constituent, limited to 20 characters.

CQTYID is an 8 character identifier for the units in which the inflows and outflows of constituent will be expressed, e.g., "kg". The names and units should be the same as used in RCHRES for the same constituent.

CONFRC is the BMP removal fraction for each constituent.


HEAT-FLAG

 Heat removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<htf>          HTFFG          I5      0       0       999
----------------------------------------------------------
Explanation

Value of 0 indicates that the BMP removal factor for heat is constant, given in table HEAT-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.


HEAT-FRAC

 Heat removal fraction

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<htfrc>        HTFRC          F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

HTFRC is the BMP removal fraction for heat.


SED-FLAG

 Sediment removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<saf>          SEDFG(1)       I5      0       0       999
<saf>          SEDFG(2)       I5      0       0       999
<clf>          SEDFG(3)       I5      0       0       999
----------------------------------------------------------
Explanation

For SEDFG(1), a value of 0 indicates that the BMP removal factor for sand is constant, given in table SED-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.

SEDFG(2) and SEDFG(3) have the same meanings for silt and clay, respectively.


SED-FRAC

 Sediment removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<sndfrc>       SEDFRC(1)      F10.0   0.0     0.0     1.0
<sltfrc>       SEDFRC(2)      F10.0   0.0     0.0     1.0
<clyfrc>       SEDFRC(3)      F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

SEDFRC(1) is the BMP removal fraction for sand.

SEDFRC(2) is the BMP removal fraction for silt.

SEDFRC(3) is the BMP removal fraction for clay.


GQ-FLAG

 General quality constituent removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<qXd>          GQFFG(1,5,9)   I5      0       0       999
<qXs>          GQFFG(2,6,10)  I5      0       0       999
<qXl>          GQFFG(3,7,11)  I5      0       0       999
<qXc>          GQFFG(4,8,12)  I5      0       0       999
----------------------------------------------------------
Explanation

For GQFFG(1), GQFFG(5) and GQFFG(9), a value of 0 indicates that the BMP removal factor for qual 1, 2, or 3, respectively, in solution is constant, given in table GQ-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.

GQFFG(2), GQFFG(6),and GQFFG(10) have the same meanings for qual 1, 2, or 3, respectively, adsorbed to sand.

GQFFG(3), GQFFG(7),and GQFFG(11) have the same meanings for qual 1, 2, or 3, respectively, adsorbed to silt.

GQFFG(4), GQFFG(8),and GQFFG(12) have the same meanings for qual 1, 2, or 3, respectively, adsorbed to clay.


GQ-FRAC

 General quality constituent removal fractions and associated information.

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<gqid>         GQID           5A4     none    none    none
<gunits>       GQTYID         2A4     none    none    none
<gslnfrc>      GQDFRC(*)      F10.0   0.0     0.0     1.0
<gsndfrc>      GQSFRC(1,*)    F10.0   0.0     0.0     1.0
<gsltfrc>      GQSFRC(2,*)    F10.0   0.0     0.0     1.0
<gclyfrc>      GQSFRC(3,*)    F10.0   0.0     0.0     1.0
------------------------------------------------------------
Explanation

This table must be repeated NGQUAL times (see table GEN-INFO).

GQID is a 20 character identifier for the general quality constituent. The name should be consistent with the name used in RCHRES for this constituent.

GQTYID is an 8 character identifier for the units in which the inflows and outflows of the general quality constituent will be expressed, e.g., "kg". The units should be consistent with the units used in RCHRES for the comparable general quality constituent.

GQDFRC(*) is the BMP removal fraction for the dissolved form of the general quality constituent.

GQSFRC(1,*) is the BMP removal fraction for the adsorbed to sand form of the general quality constituent.

GQSFRC(2,*) is the BMP removal fraction for the adsorbed to silt form of the general quality constituent.

GQSFRC(3,*) is the BMP removal fraction for the adsorbed to clay form of the general quality constituent.


OXY-FLAG

 Dissolved Oxygen/BOD removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<dof>          OXFFG(1)       I5      0       0       999
<bof>          OXFFG(2)       I5      0       0       999
----------------------------------------------------------
Explanation

Value of 0 indicates that the BMP removal factor for dissolved oxygen is constant, given in table OXY-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.

Value of 0 indicates that the BMP removal factor for biochemical oxygen demand is constant, given in table OXY-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.


OXY-FRAC

 Dissolved Oxygen/BOD removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<dofrc>        OXYFRC(1)      F10.0   0.0     0.0     1.0
<bodfrc>       OXYFRC(2)      F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

OXYFRC(1) is the BMP removal fraction for dissolved oxygen.

OXYFRC(2) is the BMP removal fraction for biochemical oxygen demand


NUT-FLAG

 Nutrient removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<s3f>          NUTFFG(1)      I5      0       0       999
<stf>          NUTFFG(2)      I5      0       0       999
<s2f>          NUTFFG(3)      I5      0       0       999
<s4f>          NUTFFG(4)      I5      0       0       999
<asf>          NUTFFG(5)      I5      0       0       999
<alf>          NUTFFG(6)      I5      0       0       999
<acf>          NUTFFG(7)      I5      0       0       999
<psf>          NUTFFG(8)      I5      0       0       999
<plf>          NUTFFG(9)      I5      0       0       999
<pcf>          NUTFFG(10)     I5      0       0       999
----------------------------------------------------------
Explanation

NUTFFG(1 through 10) - A value of 0 indicates that the BMP removal factor for the associated constituent is constant, given in the corresponding removal fraction table. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify monthly removal factors. The constituents and their corresponding removal fraction tables are:

Flag         Constituent                   Table For Monthly Values

NUTFFG(1)    nitrate                       DNUT-FRAC
NUTFFG(2)    dissolved ammonia             DNUT-FRAC
NUTFFG(3)    nitrite                       DNUT-FRAC
NUTFFG(4)    dissolved phosphate           DNUT-FRAC
NUTFFG(5)    ammonia adsorbed to sand      ADSNUT-FRAC
NUTFFG(6)    ammonia adsorbed to silt      ADSNUT-FRAC
NUTFFG(7)    ammonia adsorbed to clay      ADSNUT-FRAC
NUTFFG(8)    phosphate adsorbed to sand    ADSNUT-FRAC
NUTFFG(9)    phosphate adsorbed to silt    ADSNUT-FRAC
NUTFFG(10)   phosphate adsorbed to clay    ADSNUT-FRAC


DNUT-FRAC

 Dissolved nutrient removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<no3frc>       DNUFRC(1)      F10.0   0.0     0.0     1.0
<tamfrc>       DNUFRC(2)      F10.0   0.0     0.0     1.0
<no2frc>       DNUFRC(3)      F10.0   0.0     0.0     1.0
<po4frc>       DNUFRC(4)      F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

DNUFRC(1) is the BMP removal fraction for dissolved nitrate.

DNUFRC(2) is the BMP removal fraction for total ammonia.

DNUFRC(3) is the BMP removal fraction for dissolved nitrite.

DNUFRC(4) is the BMP removal fraction for dissolved orthophosphate.


ADSNUT-FRAC

 Adsorbed nutrient removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<nh4sfrc>      SNUFRC(1)      F10.0   0.0     0.0     1.0
<nh4lfrc>      SNUFRC(2)      F10.0   0.0     0.0     1.0
<nh4cfrc>      SNUFRC(3)      F10.0   0.0     0.0     1.0
<po4sfrc>      SNUFRC(4)      F10.0   0.0     0.0     1.0
<po4lfrc>      SNUFRC(5)      F10.0   0.0     0.0     1.0
<po4cfrc>      SNUFRC(6)      F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

SNUFRC(1)-SNUFRC(3) are the BMP removal fractions for ammonia adsorbed to sand, silt, and clay, respectively.

SNUFRC(4)-SNUFRC(6) are the BMP removal fractions for phosphate adsorbed to sand, silt and clay, respectively.


PLANK-FLAG

 Plankton component removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<phy>          PLKFFG(1)      I5      0       0       999
<zoo>          PLKFFG(2)      I5      0       0       999
<orn>          PLKFFG(3)      I5      0       0       999
<orp>          PLKFFG(4)      I5      0       0       999
<orc>          PLKFFG(5)      I5      0       0       999
----------------------------------------------------------
Explanation

PLKFFG(1 through 5) - A value of 0 indicates that the BMP removal factor for the associated constituent is constant, given in table PLANK-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify monthly removal factors. The constituents are:

Flag         Constituent

PLKFFG(1)    phytoplankton
PLKFFG(2)    zooplankton
PLKFFG(3)    dead refractory organic nitrogen
PLKFFG(4)    dead refractory organic phosphorus
PLKFFG(5)    dead refractory organic carbon


PLANK-FRAC

 Plankton component removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<phyfrc>       PLKFRC(1)      F10.0   0.0     0.0     1.0
<zoofrc>       PLKFRC(2)      F10.0   0.0     0.0     1.0
<ornfrc>       PLKFRC(3)      F10.0   0.0     0.0     1.0
<orpfrc>       PLKFRC(4)      F10.0   0.0     0.0     1.0
<orcfrc>       PLKFRC(5)      F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

PLKFRC(1) is the BMP removal fraction for phytoplankton.

PLKFRC(2) is the BMP removal fraction for zooplankton.

PLKFRC(3) is the BMP removal fraction for dead refractory organic nitrogen.

PLKFRC(4) is the BMP removal fraction for dead refractory organic phosphorus.

PLKFRC(5) is the BMP removal fraction for dead refractory organic carbon.


PH-FLAG

 pH and Inorganic Carbon removal flags

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<tic>          PHFFG(1)       I5      0       0       999
<co2>          PHFFG(2)       I5      0       0       999
----------------------------------------------------------
Explanation

A PHFFG(1) value of 0 indicates that the BMP removal factor for total inorganic carbon is constant, given in table PH-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.

A PHFFG(2) value of 0 indicates that the BMP removal factor for dissolved carbon dioxide is constant, given in table PH-FRAC. A value greater than 0 indicates the index number of the table in the MONTH-DATA block to be used to specify the monthly removal factors.


PH-FRAC

 pH and Inorganic Carbon removal fractions

Details
----------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
----------------------------------------------------------
<ticfrc>       PHFRC(1)       F10.0   0.0     0.0     1.0
<co2frc>       PHFRC(2)       F10.0   0.0     0.0     1.0
----------------------------------------------------------
Explanation

PHFRC(1) is the BMP removal fraction for total inorganic carbon.

PHFRC(2) is the BMP removal fraction for dissolved CO2.


 REPORT Block

REPORT Block
Explanation

The REPORT module requires each of the tables referenced above if the simulation contains a REPORT. See the Functional Description for REPORT for details about the optional user-defined report format file.


REPORT-FLAGS

 General information for REPORT

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<rfl>          REPTFL         I5      30      10      99
<nco>          NCON           I5      1       1       20
<nsr>          NSRC           I5      1       1       25
<frm>          FORMFG         I5      1       0       99
<cwi>          CWID           I5      10      -2      20
<pwi>          PWID           I5      80      20      1000
<pli>          PLIN           I5      40      5       none
<pco>          PCOD           I5      5       3       5
<pyr>          PYREND         I5      9       1       12
------------------------------------------------------------
Explanation

REPTFL is the file unit number for the report output file.

NCON is the number of constituents that are reported for each source. Note that, for example, the concentration and mass loading of the same substance count as separate constituents if they occur in the same report.

NSRC is the number of sources (e.g., PERLND and IMPLND segments, point sources, atmospheric deposition to reach) to be reported.

FORMFG specifies the format for the report:

0 - database records

1 - unit-area loading table

2 - total loading table

3 - general summary table

10+ - user-defined format (this option requires input format file whose file unit number in the FILES block equals FORMFG).

See Functional Description, REPORT, Looping for complete descriptions of formats 1-3, and Special Format for a description of the database format. Formats 4-9 are reserved for future additional pre-defined formats.

CWID is the column width for the reported tables:

8-20 - actual width

-1 - write tab-delimited file

-2 - write comma-delimited file.

PWID is the page width in characters, used only for the general flux table format (FORMFG=3).

PLIN is the page length in lines. Not used for user-defined format (FORMFG >= 10).

PCODE is the print interval code for the report:

3 - daily

4 - monthly

5 - annual

PYREND is the month ending the print year for the report.


REPORT-TITLE

 Title of REPORT

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<title>        TITLE          15A4    none    none    none
------------------------------------------------------------
Explanation

TITLE is the 60 character title of the report; it appears at the top of each page.


REPORT-SRC

 Source names

Details
------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------
<source-name>  SRCID          5A4     none    none    none
------------------------------------------------------------
Explanation

SRCID is a 20-character name for each source; it appears as a header in the report.

NSRC (from REPORT-FLAGS) lines are needed for each operation.


REPORT-CON

 Constituent names and related information

Details
------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------------------
<con-name>     CONID          5A4     none    none    none
<trn>          TRAN           A4      SUM     none    none   (see below)
<sdg>          SIGD           I5      5       2       5
<dcp>          DECPLA         I5      2       0       3
------------------------------------------------------------------------
Explanation

CONID is a 20-character name for each constituent; it appears as a header in the report.

TRAN is the transformation code used to aggregate data from the run interval to the REPORT interval defined by PCODE in Table-type REPORT-FLAGS. Valid values are: SUM, AVER, MAX, MIN and LAST.

SIGD is the number of significant digits to be used for output to the report.

DECPLA is the number of decimal places to be used for output to the report.

In this table, NCON (from REPORT-FLAGS) lines are required for each REPORT operation.


REPORT-SUMM

 Summary specifications

Details
------------------------------------------------------------------------
Symbol         Fortran name   Format  Def     Min     Max
------------------------------------------------------------------------
<src-sum-head> SRCHED         5A4     none    none    none
<st>           SRCTRN         A4      SUM     none    none   (see below)
<tim-sum-head> TIMHED         5A4     none    none    none
<tt>           TIMTRN         A4      SUM     none    none   (see below)
<stt>          STTRFG         I5      2       1       2
------------------------------------------------------------------------
Explanation

These parameters describe how the reported values are summarized when aggregated across time and across sources.

SRCHED is the header used to identify the summary over all sources.

SRCTRN is the transformation code used to aggregate data across all sources. Valid values are: SUM, AVER, MAX, MIN, LAST and PCT. PCT behaves the same as SUM, except that all of the source values and the summary value are divided by the summary value and converted to a percentage.

TIMHED is the header used to identify the summary over the REPORT time intervals.

TIMTRN is the transformation code used to aggregate data from the REPORT intervals to their summary. This value is independent of TRAN in REPORT-CON, which is used to aggregate from the run interval to the REPORT interval. Valid values are: SUM, AVER, MAX, MIN, and LAST.

STTRFG indicates how to compute the double-summary value (over all sources and over all REPORT intervals). If STTRFG=1, then SRCTRN is applied to the time summaries for each source. If STTRFG=2, then TIMTRN is applied to the source summaries for each REPORT interval.

For example, in an annual report, SRCTRN is SUM (compute the sum of all sources each year) and TIMTRN is MAX (compute the maximum annual value for each source).

1994 1995 1996 MAX

Forest 25.0 35.0 20.0 35.0

Urban 100.0 50.0 85.0 100.0

Cropland 60.0 75.0 120.0 120.0

SUM 185.0 160.0 225.0 255.0 or 225.0

If STTRFG=1, then the double-summary value is the sum of the column of maximum annual values, or 255. If STTRFG=2, then it is the maximum of the row of annual totals, or 225.

If both SRCTRN and TIMTRN are linear operators (i.e. SUM or AVER), then the double summary is the same regardless of the value of STTRFG.


FTABLES Block

Details
--------------------------------------------------------------------------------
   Symbol      Fortran name   Format             Comment
--------------------------------------------------------------------------------
<t>            NUMBR          I3        User's ID number for this FTABLE.

<ftab-parms>   Fparms(4)      4I5       Up to 4 control parameters may be
                                        supplied for an Ftable, e.g., number of
                                        rows, number of columns, etc. Exact
                                        details depend on the FTABLE concerned.

<row-of-values> VAL(*)        variable  Each column is dedicated to one of the
                                        variables in the function. Each row
                                        contains a full set of corresponding
                                        values of these variables, e.g., depth,
                                        surface area, volume, and outflow for
                                        a RCHRES.
-------------------------------------------------------------------------------
Explanation

An FTABLE is used to specify, in discrete form, a functional relationship between two or more variables. For example, in the RCHRES module, it is assumed that there is a fixed relationship between depth, surface area, volume, and volume-dependent (F(vol)) discharge component. An FTABLE is used to document this non-analytic function in numerical form. Each column of the FTABLE is dedicated to one of the above variables, and each row contains corresponding values of the set. That is, each row contains the surface area, volume, and discharge for a given depth. The number of rows in the FTABLE will depend on the range of depth to be covered and the desired resolution of the function.


FTABLES for the PERLND Application Module

Keywords:


FTABLE for PWATER section

One of the optional methods for computing surface runoff from a PERLND using the High Water Table algorithms is to use a simple FTABLE to define a fraction of the surface storage which runs off in a given interval, depending on the depth of storage. This method is selected by setting RTOPFG=3 in Table-type PWAT-PARM1.

Details
--------------------------------------------------------------------------------
Symbol         Name(s)      Format            Comment
--------------------------------------------------------------------------------
<t>            see FTABLES    I3        ID No. of FTABLE

<nr>           NROWS          I5        Number of rows in FTABLE

<nc>           NCOLS          I5        Number of columns in FTABLE. Must be 2

<depth>        Depth          F10.0     Depth of surface storage;
                                        Units: English = in; Metric = mm
<frac>         Runoff frac    F10.0     Fraction of storage that runs off
                                        per hour.
--------------------------------------------------------------------------------
Explanation

This FTABLE lists depth and outflow rate expressed as a fraction of the surface storage that flows out each hour. HSPF interpolates between the specified values to obtain the flow fraction for intermediate values of depth.

The FTABLE must satisfy the following conditions:

1. (NCOLS*NROWS) must not exceed 100

2. NCOLS must be 2

3. There must be at least one row in the FTABLE

4. The first row must have depth = 0.0

5. No negative values are permitted

6. The depth field may not decrease as the row number increases


FTABLES for the RCHRES Application Module
  • FTABLE for HYDR section


FTABLE for HYDR section

The geometric and hydraulic properties of a RCHRES are summarized in a function table (FTABLE). Every RCHRES must be associated with one FTABLE; the association is done in Table-type HYDR-PARM2. Usually, every RCHRES will have its own FTABLE; however, if RCHRESs are identical they can share the same FTABLE.

Details
--------------------------------------------------------------------------------
Symbol         Name(s)      Format            Comment
--------------------------------------------------------------------------------
<t>            see FTABLES    I3        ID No. of FTABLE

<nr>           NROWS          I5        Number of rows in FTABLE

<nc>           NCOLS          I5        Number of columns in FTABLE

<depth>        Depth          F10.0     Depth of RCHRES;
                                        Units: English = ft; Metric = m
<area>         Surface area   F10.0     Surface area of RCHRES;
                                        Units: English = acres; Metric = ha
<volume>       Volume         F10.0     Volume of RCHRES; The volume in the
                                        first row must be 0.0; Units:
                                        English= acre.ft; Metric= Mm3 (10**6 m3)
<f(vol)-       F(V)        (NCOLS-3)*   Units: English = ft3/s; Metric = m3/s
 values>                      F10.0
--------------------------------------------------------------------------------
Explanation

This FTABLE lists depth, surface area and, optionally, one or more other values (typically discharge rates) as functions of volume. HSPF interpolates between the specified values to obtain the geometric and hydraulic characteristics for intermediate values of volume.

The FTABLE must satisfy the following conditions:

1. (NCOLS*NROWS) must not exceed 100

2. NCOLS must be between 3 and 8

3. There must be at least one row in the FTABLE

4. The first row must have volume = 0.0

5. No negative values are permitted

6. The depth and volume fields may not decrease as the row

number increases

In the example given above, we have a reach with two outflows, both of which are functions of volume. Thus, there are 5 columns in the FTABLE.

The values for this type of FTABLE can either be supplied directly by the user or generated by a subsidiary program from more basic information (e.g., by backwater analysis or Manning's equation for assumed uniform flow).


TIME SERIES LINKAGES
  • General Discussion
    • WDM File Concepts
    • DSS File Concepts
  • EXT SOURCES Block
  • NETWORK Block
  • SCHEMATIC and MASS-LINK Blocks
    • SCHEMATIC Block
    • MASS-LINK Block
  • EXT TARGETS Block
  • PATHNAMES Block
  • Time Series Transform Functions
  • Warning


General Discussion

In the EXTERNAL SOURCES, NETWORK, EXTERNAL TARGETS, and SCHEMATIC/MASS-LINK blocks, the user specifies those time series which are to be passed between pairs of operations in the same INGRP or between individual operations and external sources/ targets (WDM Data sets, DSS Data records, or sequential files). The blocks are arranged in the form of tables, each containing one or more entries (rows). Each entry contains source information, a multiplication factor, a transformation function, and target information.

The entries in these blocks may be in any order.

When a time series associated with a data set in a WDM file is referred to, the user supplies the data-set number and the data-set name. This information must agree with data supplied when the data set was created. WDM data sets and associated attributes are created using utility software such as WDMUtil and ANNIE. The user should refer to the documentation for these programs for additional information.

Time series may also be associated with DSS data records in up to five different DSS files. Each record, or group of records, is identified by a pathname, which is specified in the PATHNAMES block, where it is associated with a data-set number in the context of the current UCI file. No data-set name is specified.

If a DSS record is accessed as an external target, it is not necessary that the record, or even the file, exist before the run. DSS records used as external sources, however, must be already present in the specified DSS file.

The user specifies time series which are input to, or output from, an operating module by supplying a group name (<sgrp>, <tgrp>) and a member name plus one or two subscripts (<smem><m#>, <tmem><m#>). The member information must be compatible with data given in the Time Series Catalog for the applicable operating module and group.

The user may route the same source to several targets by making several separate entries in a block, each referring to the same source, or by making use of the "range" feature provided in the <tvol>< range> field. This latter feature does not apply to entries in the EXT TARGETS Block. In either case the implication is that data from the source will be used repetitively, and each time will be multiplied by the specified factor and added to whatever else has already been routed to the specified target. Conversely, several sources may be routed to a single target, except in the EXT TARGETS Block. This happens when several entries specify different sources but the same target. Here, the implication is that the data obtained from the several sources must be accumulated (added) before being used by the target.


WDM File Concepts

The WDM file is a binary, direct-access file that is organized into discrete data sets. Each data set consists of data as well as "attributes" that describe the data. Disk space for a WDM file is allocated as needed in 20-kilobyte increments. Space from deleted data sets within a WDM file is reused as new data are added to the file. Thus the WDM file needs no special maintenance processing.

HSPF accesses WDM files for both input and output time series data. HSPF requires that a data set be created in an existing WDM file prior to any run that writes to the data set. Maintenance of WDM files and creation of new data sets is accomplished using the USGS's ANNIE software or the EPA program WDMUtil.

Within the HSPF UCI file, a WDM data set is referred to by its data-set number and its name (i.e., its TSTYPE attribute), which is a four-character alpha-numeric identifier. As stated above, WDM data-set attributes are created when the data set is first created using utility software. The attributes that are associated with time series data sets can be divided into two types: 1) those that describe how the data are stored in the data set, and 2) those that are purely descriptive or provide information about the data. Examples of the second type are station name (STANAM), station ID (STAID), latitude and longitude (LATDEG, LNGDEG), and data-set description (DESCRP). Attributes of the first type are more critical, and are considered "required" attributes for time series data sets. These attributes are defined below:

TCODE - Time units code for defining the time interval of the data set (1-seconds, 2-minutes, 3-hours, 4-days, 5-months, 6-years); valid values in HSPF are 2, 3, 4, and 5.

TSSTEP - Time interval of data set in TCODE units (used in combination with TCODE)

TSFORM - Form of data; valid values in HSPF context are: (1-mean over time step, 2-total over time step, 3-instantaneous); 1 and 2 correspond to "mean" time series, and 3 corresponds to "point" time series.

TSBYR - Starting year of data set; defaults to 1900; generally should be set to a year just prior to start of data.

TGROUP - Unit for group pointers (3-hours, 4-days, 5-months, 6-years, 7-centuries); it may affect speed of data retrievals and total amount of data storage available in data set; recommended values are:

Time step Length of record Recommended

TGROUP

1 second - 1 minute <=100 days 4 (days)

5 minute - daily <=8 years 5 (months)

5 minute - daily >8 years 6 (years)

daily <=100 years 6 (years)

TSFILL - Filler value for missing data; default = 0.0.

COMPFG - Compression flag (1-data are compressed, 2-data are not compressed)

TOLR - Compression tolerance; data values within TOLR are compressed.

VBTIME - Variable time step flag; must be 1 (all data at same time step) for HSPF.


DSS File Concepts

DSS Pathnames

DSS files access time series data in a somewhat different manner than WDM files. The latter refers to a time series by a single data-set number. DSS files refer to time series by "pathnames", which follow different conventions for different kinds of data. HSPF uses only one of the allowed kinds, i.e., "Regular" Time Series. The PATHNAMES block is used to temporarily assign or associate a data-set number with each time series needed in the run.

An entire DSS time series is not necessarily stored in one logical piece in the DSS file. Data are broken up into separate records with definite sizes and starting dates, which depend on the time step of the data. For instance, hourly data are stored in records each containing one month of values and starting with the first hour of the month. Daily data, on the other hand, are stored yearly, in records starting on January 1st.

The pathname can consist of up to 80 characters; because of limitations on UCI line length, HSPF only allows 64 characters in DSS pathnames. Pathnames are separated into six parts (delimited by slashes "/"), which are referenced by the characters "A" through "F". For a "regular" time series, the conventions for the contents of the six parts are:

  A   River basin or project name
  B   Location or gage identifier
  C   Data variable, e.g., FLOW, PRECIP
  D   Starting date for block of data in the format 01JAN1980.
      This part is not used by HSPF, and should be left empty.
  E   Time interval - valid values are:
      5MIN, 10MIN, 15MIN, 30MIN, 1HOUR, 2HOUR, 3HOUR, 4HOUR, 6HOUR,
      12HOUR, 1DAY, 1WEEK, 1MON, 1YEAR
  F   Additional user-defined descriptive information, e.g., OBSERVED, PLAN A

Any single part may contain up to 32 characters, but the total including slashes must remain less than 80 for general DSS use, and less than 64 characters for HSPF (leaving the D part empty). A typical HSPF pathname might be:

/PATUXENT/BRIGHTON DAM/DIVERSION//1DAY/OBSERVED-CFS/

Note the double slash indicating the empty D part. The D part may be provided by the user, but HSPF ignores it; this allows the DSS system to generate it, as needed, based on the starting and ending dates of the run. For additional information, users should refer to the HECDSS Users Guide (US Army Corps of Engineers Hydrologic Engineering Center, April 1990).

DSS Data Types

Each DSS data record also may have a data type string and/or a units string stored with it. Units strings are ignored by HSPF. Data type strings are used to determine whether the time series is point-valued or mean-valued in the context of HSPF. Valid values of the data type string are:

INST-VAL - point-valued: instantaneous at end of interval

PER-AVER - mean-valued: average over interval

PER-CUM - mean-valued: total over interval

A fourth type, INST-CUM, which is used for mass curves, is not valid for HSPF. The data type string for each time series (input or output) must be specified in the PATHNAMES block.

The data type should not change over time (i.e., between subsequent records) for a given time series. If a data record already exists before the run, any value specified in the PATHNAMES block must match the stored value, if it exists. If a data record is created by the run, it is stored with the value given in the PATHNAMES block, if any. If neither the record itself nor the PATHNAMES block specifies a data type, the data is treated by the program as a mean-valued time series.


EXT SOURCES Block

 External Sources

In this block the user specifies those time series which are to be supplied to operations in a RUN from sources external to it; external sources are WDM data sets, DSS data sets, and sequential (SEQ) data files.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<svol>   SVOL       1    A6   External source volume. Valid values are
                              WDMn (Watershed Data Management System File,
                              where n is 1-4 or blank), DSS (Data
                              Storage System), and SEQ (sequential file).
<s#>     SVOLNO     7    I4   Data-set number if SVOL = WDMn, or DSS;
                              file unit number if SVOL = SEQ
<exsm>   SMEMN     12    A4   Data-set TSTYP attribute if SVOL = WDMn;
                              blank for SVOL = DSS
<sfmt>   SFCLAS    12    A6   SFCLAS is a string indicating the class of format
                              used in the sequential file.
qf       QLFG      18    I2   Quality-of-data flag if SVOL = WDMn; specifies
                              the minimum quality of WDM data which will be
                              accepted by HSPF; valid values = 0-31; default = 31
f#       SFNO      18    I2   SFNO identifies an object-time format supplied in
                              the FORMATS Block.  Default: standard format.
<ss>     SSYST     21    A4   Unit system of data in the source. Valid values are
                              ENGL and METR; default = ENGL
<sg>     SGAPST    25    A4   String indicating how missing lines in the
                              sequential file, missing data in a DSS file, or
                              WDM data of insufficient quality will be
                              regarded; Valid values are ZERO (assign value 0) and
                              UNDF (assign undefined value).  Defaults to UNDF.
                              See below for explanation.
<mfact>  MFACTR    29 F10.0   The factor by which data from the source will be
                              multiplied before being added to the target.
                              Default = 1.0
<tr>     TRAN      39    A4   String indicating which transformation function to
                              use in transferring time series from source to
                              target.  See Time Series Transform Functions
                              for valid values and defaults.
<tvol>   TVOL      44    A6   TVOL is the Operation-type of the target.
< range> TOPFST    51    I3   TOPFST & TOPLST specify the range of operations
         TOPLST    55    I3   which are targets (e.g., PERLND  1  5).  If TOPLST
                              field is blank, the target is a single operation.

<tgrp>   TGRPN     59    A6   Group to which the target time series belong(s).

<tmem>   TMEMN     66    A6   Target time series member name.

<m#>     TMEMSB(2) 72   2A2   Target time series member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise.  See Time Series Catalog.
--------------------------------------------------------------------------------
Explanation

If an entry specifies the source volume as SEQ, it is referring to a time series coming from a sequential data file. The entry must therefore supply the file unit number and format information for the file.

If an entry specifies the source volume as WDMn or DSS, the user is referring to a time series contained in the corresponding direct access data file: a Watershed Data Management System file, or an HEC Data Storage System file. If the "n" portion of a WDM file reference is left blank, the program (by default) looks in the first WDM file only.

When data are read from a WDM data set, the user may optionally supply a data quality flag (QLFG), which will be compared with the data quality "tag" associated with all WDM time series data. Any data having lower quality than specified (value greater than QLFG) will be rejected and assigned the value specified by the WDM attribute TSFILL (if defined for the data set), or alternatively, if TSFILL is not available, by SGAPST.

When a WDM dataset is the source of data, the Run Interpreter checks to ensure that data are present in the dataset for the entire time span of the simulation. However, if IHMFG in the Global Block is set to 1, this check is not performed.

When data are read from a sequential file the user supplies:

  1. A "format class code". It fixes the nature and sequence of data in a typical record (e.g., day and hour, followed by 12 hourly values).
  2. The number of an object-time format, situated in the FORMATS Block. It fixes the exact format of the data in a record. A default format can be selected by supplying the number 0, or leaving the field blank.

The format classes and associated default formats presently supported in the HSPF system are documented in Sequential and PLTGEN/MUTSIN File Formats.

Note: All character strings must be left-justified in their fields except WDM data set names (<exsm>) which must be justified in the same way that they were when the data-set label or WDM attribute TSTYP was created.


NETWORK Block

In this block the user specifies those time series which will be passed between operations via the internal scratch pad (INPAD). If there are no such linkages the block can be omitted. For many applications, particularly large or complex watersheds that have many entries in the NETWORK block, the alternative use of the SCHEMATIC/MASS-LINK blocks may provide a simpler and more conceptual format for specifying the linkages in the NETWORK block.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<svol>   SVOL       1    A6   SVOL is the Operation-type of the source operation

<o#>     SVOLNO     7    I4   Source Operation-type number (e.g., PERLND   5)

<sgrp>   SGRPN     12    A6   Group to which the source time series belong(s).

<smem>   SMEMN     19    A6   Source time series member name;
                              see Time Series Catalog.
<m#>     SMEMSB(2) 25   2A2   Source member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise. See Time Series Catalog
<mfact>  MFACTR    29 F10.0   The factor by which data from the source will be
                              multiplied before being added to the target.
                              Default (blank field)= 1.0
<tr>     TRAN      39    A4   String indicating which transformation function to
                              use in transferring time series from source to
                              target.  See Time Series Transform Functions for defaults, etc.
<tvol>   TVOL      44    A6   Operation-type of the target.

< range> TOPFST,   51    I3   TOPFST & TOPLST specify the range of operations
         TOPLST    55    I3   which are targets (e.g., PERLND  1  5). If TOPLST
                              field is blank, the target is a single operation.
<tgrp>   TGRPN     59    A6   Group to which the target time series belong(s).

<tmem>   TMEMN     66    A6   Target member name; see Time Series Catalog.

<m#>     TMEMSB(2) 72   2A2   Target member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise.  See Time Series Catalog.
--------------------------------------------------------------------------------
Explanation

The example above shows how this block is used to specify the connectivity of a set of reaches of stream channel (RCHRES 1 flows to RCHRES 2, RCHRES 2 and 4 flow to RCHRES 5). It can also be used to specify the flow of time series data from utility operations to simulation operations and vice versa. The network can be extremely complex, or non-existent (e.g., if the RUN involves only one operation).

Because the time series are transferred via the INPAD, each source and target pair must be in the same INGRP.


SCHEMATIC and MASS-LINK Blocks

The SCHEMATIC and MASS-LINK blocks work in tandem to allow the user to specify the watershed structure and linkages in a more efficient and conceptual manner than is possible using the NETWORK block.

The SCHEMATIC block contains global specifications of the watershed structure, i.e., connections of land segments to stream reaches and reach-reach connections. This block permits the user to input the area of a land segment that is tributary to a stream reach in a single entry, instead of including the area in multiple entries in the NETWORK block. Each entry in the SCHEMATIC block refers to a table in the MASS-LINK block where the detailed time series connections for that entry are specified.

The MASS-LINK block contains the specific time series to be transferred from one operation to another. This block also contains any required units conversion factors or other multiplication factors that may be needed in addition to the area. For example, when runoff from a land segment is transferred to a stream reach, a conversion factor of 1/12 (0.08333) is needed to convert the runoff from inches to acre-feet if the area units are acres. (The corresponding factor for metric units is 10-5 if the area units are hectares.) Each MASS-LINK table contains the set of time series transfers that are to be associated with one or more of the linkages in the SCHEMATIC block. The HSPF program combines the schematic linkages with the mass time series transfers and automatically generates all of the necessary time series connections; these time series connections are automatically included in the NETWORK block by the program.

The example shown below illustrates the use of these blocks. In this example, the watershed consists of three pervious land segments and two stream reaches. One of the land segments contributes loadings to both reaches. Loadings of flow, sediment, heat and one dissolved pesticide are being transferred from the land to the stream, and the sediment loading from the land surface is assumed to consist of 10% sand, 35% silt and 55% clay. The SCHEMATIC and MASS-LINK blocks to accomplish the required connections are shown below:

The SCHEMATIC block contains the global watershed linkages, i.e., PLS 1 provides loadings to Reach 1, PLS 2 provides loadings to Reaches 1 and 2, PLS 3 provides loadings to Reach 2, and Reach 1 is upstream of Reach 2.  The areas of PLS's 1 and 3 are 200 acres and 360 acres, respectively, and the area of PLS 2 is 355 acres, of which 120 acres are tributary to Reach 1 and 235 acres are tributary to Reach 2.

The MASS-LINK block contains details of the individual time series connections that need to be specified for each of the watershed linkages.  Each of the four PLS-to-Reach entries in the SCHEMATIC block refers to MASS-LINK Table 1, which contains six time series connections from the PLS to the Reach.  The Reach 1-to-Reach 2 entry refers to MASS-LINK Table 2; this table contains the ROFLOW-INFLOW connection, which is automatically expanded by the program to generate all necessary time series connections from one reach to another.

The time series connections in the MASS-LINK block are combined with the SCHEMATIC linkages to generate the full set of connections needed in the simulation.  In this process, the program sets up a set of connections for each [SCHEMATIC entry]/[MASS-LINK table] pair.  The multiplication factor for each connection is obtained by combining the 'area' factor from the SCHEMATIC block and the 'units/other conversion' factor from the MASS-LINK block.  The explicit time series connections generated by HSPF and included in the NETWORK Block for this example are shown below:

NETWORK

**** PLS 1 to RCH 1
PERLND   1 PWATER PERO          16.66 SAME RCHRES   1     INFLOW IVOL
PERLND   1 SEDMNT SOSED  1        20. SAME RCHRES   1     INFLOW ISED   1
PERLND   1 SEDMNT SOSED  1        70. SAME RCHRES   1     INFLOW ISED   2
PERLND   1 SEDMNT SOSED  1       110. SAME RCHRES   1     INFLOW ISED   3
PERLND   1 PWTGAS POHT           200. SAME RCHRES   1     INFLOW IHEAT
PERLND   1 PEST   TOPST          200. SAME RCHRES   1     INFLOW IDQUAL 1

**** PLS 2 to RCH 1
PERLND   2 PWATER PERO            10. SAME RCHRES   1     INFLOW IVOL
PERLND   2 SEDMNT SOSED  1        12. SAME RCHRES   1     INFLOW ISED   1
PERLND   2 SEDMNT SOSED  1        42. SAME RCHRES   1     INFLOW ISED   2
PERLND   2 SEDMNT SOSED  1        66. SAME RCHRES   1     INFLOW ISED   3
PERLND   2 PWTGAS POHT           120. SAME RCHRES   1     INFLOW IHEAT
PERLND   2 PEST   TOPST          120. SAME RCHRES   1     INFLOW IDQUAL 1

**** PLS 2 to RCH 2
PERLND   2 PWATER PERO          19.58 SAME RCHRES   2     INFLOW IVOL
PERLND   2 SEDMNT SOSED  1      23.50 SAME RCHRES   2     INFLOW ISED   1
PERLND   2 SEDMNT SOSED  1      82.25 SAME RCHRES   2     INFLOW ISED   2
PERLND   2 SEDMNT SOSED  1     129.25 SAME RCHRES   2     INFLOW ISED   3
PERLND   2 PWTGAS POHT           235. SAME RCHRES   2     INFLOW IHEAT
PERLND   2 PEST   TOPST          235. SAME RCHRES   2     INFLOW IDQUAL 1

**** PLS 3 to RCH 2
PERLND   3 PWATER PERO            30. SAME RCHRES   2     INFLOW IVOL
PERLND   3 SEDMNT SOSED  1        36. SAME RCHRES   2     INFLOW ISED   1
PERLND   3 SEDMNT SOSED  1       126. SAME RCHRES   2     INFLOW ISED   2
PERLND   3 SEDMNT SOSED  1       198. SAME RCHRES   2     INFLOW ISED   3
PERLND   3 PWTGAS POHT           360. SAME RCHRES   2     INFLOW IHEAT
PERLND   3 PEST   TOPST          360. SAME RCHRES   2     INFLOW IDQUAL 1

**** RCH 1 to RCH 2 (HYDR, HTRCH, SEDTRN, and GQUAL sections are active)
RCHRES   1 ROFLOW ROVOL           1.0 SAME RCHRES   2     INFLOW IVOL
RCHRES   1 ROFLOW ROHEAT          1.0 SAME RCHRES   2     INFLOW IHEAT
RCHRES   1 ROFLOW ROSED  1        1.0 SAME RCHRES   2     INFLOW ISED   1
RCHRES   1 ROFLOW ROSED  2        1.0 SAME RCHRES   2     INFLOW ISED   2
RCHRES   1 ROFLOW ROSED  3        1.0 SAME RCHRES   2     INFLOW ISED   3
RCHRES   1 ROFLOW RODQAL          1.0 SAME RCHRES   2     INFLOW IDQAL  1
RCHRES   1 ROFLOW ROSQAL 1 1      1.0 SAME RCHRES   2     INFLOW ISQAL  1 1
RCHRES   1 ROFLOW ROSQAL 2 1      1.0 SAME RCHRES   2     INFLOW ISQAL  2 1
RCHRES   1 ROFLOW ROSQAL 3 1      1.0 SAME RCHRES   2     INFLOW ISQAL  3 1
END NETWORK


SCHEMATIC Block

In this block the user specifies the global linkages of land segments with stream reaches and between stream reaches. Each of these linkages is combined with the detailed time series connections specified in one of the MASS-LINK tables to generate a complete set of time series connections for the linkage.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<svol>   SVOL       1    A6   SVOL is the Operation-type of the source operation.

< #>     SVOLNO     7    I4   SVOLNO is the source Operation-type number
                              (e.g., PERLND   5)
<afact>  AFACTR    29 F10.0   The area factor by which data from the source
                              will be multiplied before being added to the
                              target. This factor will be combined with the
                              factor in the MASS-LINK Block.
                              Default (blank field)= 1.0
<tvol>   TVOL      44    A6   TVOL is the Operation-type of the target.

< #>     TVOLNO    50    I4   TVOLNO is the target Operation-type number
                              (e.g., RCHRES   5)
<ml#>    MSLKNO    57    I4   MASS-LINK table number that will be used to
                              generate the NETWORK entries for this linkage.
<m#>     TMEMSB(2) 72   2A2   Target member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise.  See Time Series Catalog.
                              These optional subscripts, when present, override
                              any corresponding value(s) in the MASS-LINK block
                              referred to by MSLKNO above.
--------------------------------------------------------------------------------


MASS-LINK Block

In this block the user specifies those time series connections which will be combined with the linkages in the SCHEMATIC Block to generate a set of time series connections in the NETWORK Block.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<svol>   SVOL       1    A6   SVOL is the Operation-type of the source operation.

<sgrp>   SGRPN     12    A6   Group to which the source time series belong(s).

<smem>   SMEMN     19    A6   Source member name.

<m#>     SMEMSB(2) 25   2A2   Source member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise. See Time Series Catalog
<mfact>  MFACTR    29 F10.0   The factor by which data from the source will be
                              multiplied before being added to the target.
                              Default (blank field)= 1.0
<tvol>   TVOL      44    A6   TVOL is the Operation-type of the target.

<tgrp>   TGRPN     59    A6   Group to which the target time series belong(s).

<tmem>   TMEMN     66    A6   Target member name.

<m#>     TMEMSB(2) 72   2A2   Target member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise. See Time Series Catalog
                              These values may be overridden, or defaulted here
                              and replaced by member subscripts in the SCHEMATIC
                              block entry that refers to this MASS-LINK table.
--------------------------------------------------------------------------------


EXT TARGETS Block

 External Targets

In this block the user specifies those time series which will be output from the operations in a RUN, to data sets in the WDM or DSS Files. If there are no such transfers the block may be omitted.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<svol>   SVOL       1    A6   SVOL is the Operation-type of the source operation

<o#>     SVOLNO     7    I4   SVOLNO is the source Operation-type number
                              (e.g., PERLND   5)
<sgrp>   SGRPN     12    A6   Group to which the source time series belong(s).

<smem>   SMEMN     19    A6   Source member name.

<m#>     SMEMSB(2) 25   2A2   Source member name subscripts;
                              may be 2-character CATEGORY tag if applicable;
                              must be integer otherwise. See Time Series Catalog
<mfact>  MFACTR    29 F10.0   The factor by which data from the source will be
                              multiplied before being added to the target.
                              Default (blank field)= 1.0
<tr>     TRAN      39    A4   String indicating which transformation function to
                              use in transferring time series from source to
                              target.  See Time Series Transform Functions for defaults.
<tvol>   TVOL      44    A6   External target volume.  Valid values are WDMn
                              (Watershed Data Management System file, where n
                              is 1-4 or blank) and DSS (Data Storage System).
<t#>     TVOLNO    50    I4   Data-set Number (if TVOL = WDMn, or DSS).

<extm>   TMEMN     55    A4   Data-set TSTYP attribute (if TVOL = WDMn).
                              (Blank if TVOL = DSS.)
qf       QLFG      61    I2   Quality-of-data (if TVOL = WDM); specifies the
                              quality tag to be attached to data placed in a
                              WDM data set; valid values = 0 - 31; default = 0
<ts>     TSYST     64    A4   Unit system of data to be written to WDM or DSS
                              data set; valid values = ENGL and METR;
                              default = ENGL.
<ag>     AGGST     69    A4   String indicating whether the data should be
                              aggregated when placed in a WDM data set having
                              a time step greater than the source time step;
                              valid value is AGGR; default is no aggregation.
<am>     AMDST     74    A4   String indicating how the target data set is
                              accessed.  Valid values are: ADD or REPL for a
                              WDM or DSS file.  See below for explanation.
--------------------------------------------------------------------------------
Explanation

This block is similar to the EXT SOURCES Block, but serves the opposite purpose. Thus, the entries have similar formats (but are reversed). In addition, each entry in the EXT TARGETS Block has the <am> field, which indicates how the target data set will be accessed. The user should be aware of the differences between these options when the target data set is in a WDM or DSS file. The valid values and the meaning of each are:

ADD - For a WDM data set, this option is designed to add data when no pre-existing data are present for any period after the starting time of the run, including times after the time span of the run.

For a DSS data record, this option preserves pre-existing data before and after the beginning of the run, and requires that no data pre-exist during the time span of the run.

REPL - For a WDM data set, this option will result in the overwriting of any existing data which follows the starting time of the run, including data after the time span of the run.

For a DSS data record, pre-existing data during the time span of the run is overwritten, but pre-existing data before and after the run are preserved.

In summary, for a WDM data set, the ADD option is used to add data when no pre-existing data are present after the starting time of the run, while the REPL option results in overwriting existing data, both during and after the time span of the run.

Data placed in a WDM data set will normally have a time step equal to the time step of the run, even if the data set has a different time step than the run. However, the user may optionally specify that aggregation occur if the target data-set time step is an integer multiple (2 or greater) of the run time step. The time step of a WDM data set is specified by the TCODE and TSSTEP attributes of the data set. Disaggregation is not permitted when placing data in WDM data sets.

For a DSS data record, only data during the actual time span of the run are affected. The ADD option specifies that such data cannot pre-exist, while the REPL option allows any pre-existing data to be overwritten.

Warning: In the EXT TARGETS block, it is not permissible to route several sources to the same external target. If you want to combine several time series and write the result to an external target, first use a utility operation (e.g., COPY) to combine the data, and then use this block to route the result to the external target.


PATHNAMES Block

In this block the user associates data-set numbers with the time series to be accessed from DSS (HEC Data Storage System) files, and specifies the data types of the time series.

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<ds>     DSSDSN     1    I4   DSSDSN is the temporary data-set number assigned to
                              the DSS record(s) which make up the time series.
f#       DSSFL      5    I2   DSSFL is the index number for the DSS file
                              containing these data record(s); it is assigned
                              to each DSS file in the FILES block
<ctype-> CTYPE      8    A8   Data type string for the data record(s).  Valid
                              values are: INST-VAL, PER-AVER, PER-CUM.
pathname CPATH     17    A64  Pathname for DSS record(s).  It is recommended
                              that the D part be left empty, as it is generated
                              by HSPF as needed.
------------------------------------------------------------------------------
Explanation

This section is required if any time series data are to be accessed from DSS files. In this section, unique ID numbers are assigned to "data sets" in the DSS file(s); these ID numbers are used in the EXT-SOURCES and EXT-TARGETS blocks to specify (i.e., identify) the data sets.

See General Discussion above for further discussion of DSS concepts.


Time Series Transform Functions

Whenever time series are transferred from a source to a target, a "transformation" takes place. The user can specify the transformation function in field <tr>; if it is blank, the default function is supplied. The range of permissible functions is:

--------------------------------------------------------------------------------
Interval         Source     Target     <------- Functions --------->
relation         Type       Type          Defaults       Others
--------------------------------------------------------------------------------

SDELT = TDELT    Point  to  Point         SAME            none
                 Mean   to  Mean          SAME            none
                 Point  to  Mean          AVER            none

SDELT > TDELT    Point  to  Point         INTP/AVER (a)   none
     (b)         Mean   to  Mean          DIV             SAME
                 Point  to  Mean          AVER            none

SDELT < TDELT    Point  to  Point         LAST/AVER (a)   none
                 Mean   to  Mean          SUM             AVER,MAX,MIN
                 Point  to  Mean          AVER            SUM,MAX,MIN

--------------------------------------------------------------------------------

Key:  SDELT Time interval of source time series
      TDELT Time interval of target time series
      (a)   Second default keyword applies to WDM source time series and all DSS
            external time series.
      (b)   This interval relation is invalid for WDM target; i.e., output
            disaggregation is not permitted to WDM data sets

Notes:

  1. See below (Note 2 and next page) for explanations of the transform keywords.

  2. For WDM data sets, TDELT and SDELT refer to the time step defined by the WDM attributes TCODE and TSSTEP; however, data may be stored in the data set at other time steps.

  3. For WDM or DSS data sets, the functions AVER and SAME imply either AVER or SAME; and the functions SUM and DIV imply either SUM or DIV, whichever is appropriate for the actual time step of the data.

  4. The type of WDM data sets is determined by the attribute TSFORM.  If TSFORM = 1 or 2, the type is MEAN; if TSFORM = 3, the type is POINT.

  5. The type of sequential (SEQ) time series is not defined; consequently, these time series are assumed to have the same type as the target time series.

  6. The type of DSS data records is determined from the data type string.  (See
WDM File Concepts above for discussion.)
If none is specified, the time series is assumed to be mean-valued.

  7. Keywords less than 4 characters long must be left-justified in the field.

  8. For further information, see
Appendix II - Time Series Concepts and the
Time Series Catalog.

The time series transform functions given above are completed before the multiplication factor given in the EXTERNAL SOURCES, EXTERNAL TARGETS and NETWORK blocks are applied.  These transform functions are defined as follows:

AVER - Compute the integral of the source time series over each target time step, divide by the target time step and assign the value to the time step in the target time series. See Appendix II for the definition of the integral of a time series.

DIV - Divide each mean value of the source time series by the ratio of the source time step to the target time step and assign the results to each of the target time steps contained in the source time step.

INTP - Interpolate linearly between adjacent point values in the source time series and assign the interpolated values to each time point in the target time series.

LAST - Take the value at the last time point of the source time series which belongs to the time step of the target time series and assign the value to the time step of the target time series. See Appendix II for a definition of the meaning of "belonging".

MAX - Find the maximum value of the source time series for all points belonging to the target time step (point-value time series) or find the maximum value of the source time series for all time steps contained within the target time step (mean-value time series). Assign the maximum value to the time step of the target time series. The definition of "belonging" (given in Appendix II) was motivated by the desire to make MAX and MIN unique for point-value time series.

MIN - Find the minimum value of the source time series for all points belonging to the target time step (point-value time series) or find the minimum value of the source time series for all time steps contained within the target time series (mean-value time series). Assign the minimum value to the time step of the target time series.

SAME - Take the value at each time step or time point of the source time series and assign the value to the corresponding time point (point-value time series), the corresponding time step (mean-value time series), or all the contained time steps (mean-value time series with time step less than the source time step) of the target time series.

SUM - For point-value source time series: Compute the sum of the values for all points in the source time series belonging to the target series time step plus the value of the source time series at the initial point of the target time step and assign the sum to the target time step.  For mean- value source time series: Compute the sum of the values for all time steps in the source time series contained within the target series time step and assign the sum to the target time step.


Warning

In the EXT TARGETS block, it is not permissible to route several sources to the same external target. If you want to combine several time series and write the result to an external target, first use a utility operation (e.g., COPY) to combine the data, and then use this block to route the result to the external target.


Time Series Catalog

This section documents all the time series which are required by, and which can be output by, all of the operating modules in HSPF.

The time series are arranged in groups. Thus, to specify an operation-associated time series in the EXT SOURCES, NETWORK or EXT TARGETS Blocks, the user supplies a group name followed, optionally, by a member name and subscripts.

The time series documented in this section can be separated into three categories:

  1. Input only. Some time series can only be input to their operating module (e.g., member PREC of group EXTNL in module PERLND).
  2. Input or output. Some time series can either be input to their operating module or output from it, depending on the options in effect. For example, if snow accumulation and melt on a Pervious Land-segment (PLS) is being simulated in a given RUN, time series WYIELD in group SNOW can be output to the WDM file. Then, if section SNOW is inactive but section PWATER is active in a subsequent RUN, the same time series WYIELD may be specified as an input to the PERLND module. This feature makes it possible to calibrate an application module in an incremental manner. First, the outputs from section 1 are calibrated to the field data; then the outputs from section 2 are calibrated using outputs from section 1 as inputs, etc. Sections calibrated in earlier runs need not be re-run if the needed outputs from them have been stored.
  3. Output only. Some time series can be computed by and output from their operating module, but never serve as inputs to it (e.g., member ALBEDO of group SNOW in module PERLND).

In order to run an operating module, the user must ensure that all of the input time series which it requires are made available to it. This is done by making appropriate entries in the EXT SOURCES or NETWORK or MASS-LINK/SCHEMATIC blocks. To ascertain which time series are required, one should consult the Time Series Catalog for the appropriate module. For example, assume that sediment production and washoff/scour from a PLS are being simulated using the snow and water budget results from a previous RUN. In this scenario, section SEDMNT would be active, but sections ATEMP, SNOW and PWATER would not be active. Then, Group SEDMNT in PERLND below shows the following:

  1. member (time series) PREC of group EXTNL is a required input time series (member SLSED is optional)
  2. members RAINF and SNOCOV of group SNOW are required inputs, because section SNOW is inactive
  3. members SURO and SURS of group PWATER are required inputs, because section PWATER is inactive

The user can obtain further details on the above time series by consulting the table for the appropriate group (e.g., Table 4.7(1).1 for group EXTNL). Group SEDMNT shows which time series are computed in the SEDMNT section of the PERLND module and may therefore be output (members DETS through SOSDB).

Therefore, in the EXT SOURCES and/or NETWORK and/or MASS-LINK/SCHEMATIC blocks, entries must appear which specify members PREC, RAINF, etc., (groups EXTNL, SNOW, PWATER) as targets to which source time series are routed. Also, in the NETWORK and/or EXT TARGETS blocks, entries may appear which specify one or more of members DETS through SOSDB (of group SEDMNT) as source time series, which are routed to other operations or to the WDM file (for example).

The tables which follow are otherwise self explanatory, except for the abbreviation "ivld" which appears frequently in the "Units" fields. It means "interval of the data" (to distinguish it from the internal, or simulation interval). Thus, if a WDM or DSS data set containing 1-hour precipitation data is input to an operation with a DELT of two hours, ivld is 1 hour.


Connection of Surface and Instream Application Modules

In HSPF, the operational connection between the land surface and instream simulation modules is accomplished through the NETWORK Block and/or the SCHEMATIC/MASS-LINK Blocks. Time series of runoff, sediment, and pollutant loadings generated on the land surface are passed to the receiving stream for subsequent transport and transformation instream. This connection of the IMPLND and/or PERLND modules with the RCHRES module requires explicit definition of corresponding time series in the linked modules. A one-to-one correspondence exists between several land segment outflow time series and corresponding stream reach inflow time series (e.g., runoff, sediment, dissolved oxygen, etc.); however in order to maintain flexibility, some of the time series are more general, and no unique correspondence exists. Also, in some cases, a process or material simulated in the stream will have no corresponding land surface quantity. For example, the inflow of plankton to a stream occurs only from upstream reaches and not from a land segment.


Connection of Two Land Segment Modules

Land segment modules may also be linked together to represent an upslope land area that drains through a downslope land area before reaching a channel. Both PERLND and IMPLND operations may be linked in this way, although only the surface outflows of a PERLND can be routed normally if the receiving operation is an IMPLND.

There are two different ways that lateral flows are handled in HSPF. Some constituents, such as water and nutrients, are simulated using a mass balance approach, while others, such as heat and dissolved gases, are simulated using only an outflow concentration. The time series catalog entries for lateral inflows in group EXTNL (in both PERLND and IMPLND) indicate whether they require a concentration or a mass flux.

These connections are accomplished using the SCHEMATIC and MASS-LINK blocks in a manner similar to that outlined in Connection of Surface and Instream Application Modules above. However, separate MASS-LINK tables are recommended for the two types of constituents, in order to avoid complications. SCHEMATIC block entries for the mass-balance constituents should use the ratio of the land areas as the area factor. Entries for the concentration constituents should let the area factor default to unity. The MASS-LINK blocks link the outflow time series for each constituent to the corresponding lateral inflow time series. If the two operations are of the same type and have the same module sections active, then there is a one-to-one correspondence between output and input time series. In other cases, the user will have to determine the appropriate linkages.

Normally, surface outflows are linked to surface lateral inflows, and baseflow outflows to baseflow lateral inflows. Interflow outflows can be divided among surface, interflow, and (for mass constituents only) upper and lower zone lateral inflows. This is accomplished by using fractions in the MASS-LINK block.


Atmospheric Deposition of Water Quality Constituents

Input time series are available in HSPF to aid in the simulation of atmospheric deposition of quality constituents. Atmospheric deposition inputs can be specified in two possible ways depending on the form of the available data. If the deposition is in the form of a flux (mass per area per time), then it is considered dry deposition. If the deposition is in the form of a concentration in rainfall, then it is considered wet deposition, and the program automatically combines it with the input rainfall time series to compute the resulting flux. Either type of deposition data can be input as a time series, which covers the entire simulation period, or alternatively, as a set of monthly values that is used for each year of the simulation. The specific atmospheric deposition time series for each operational module (PERLND, IMPLND, RCHRES) are documented in the EXTNL table of the Time Series Catalog for that module.

An additional use of these atmospheric deposition time series is the specification of agricultural chemical and fertilizer inputs to the soil. These input time series thus provide an alternative to the SPEC-ACTIONS block as a means for changing soil storages of chemicals in the AGCHEM sections of the program. For this purpose, "deposition" to the upper soil layer in addition to the surface soil layer is available in PERLND sections NITR, PHOS, and TRACER. (Section PEST has time series only for the surface layer, since pesticides are not normally incorporated into the soil as are fertilizers.) Depending on the complexity of the agricultural practices being modeled, the user should decide whether the SPEC-ACTIONS or the time series inputs are simpler to construct.


Catalog for PERLND module

The time series groups associated with PERLND are shown in the figure below. The members contained within each group are documented in the following tables.

Groups of time series associated with the PERLND Module


Group EXTNL

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

The time series always external (input only) to module PERLND are shown below.  These time series are divided into three groups: meteorologic data, atmospheric deposition, and lateral inflows.

Meteorologic:

GATMP     1    1    -  Deg F     Deg C      Measured air temperature
PREC      1    1    -  in/ivld   mm/ivld    Measured precipitation
DTMPG     1    1    -  Deg F     Deg C      Measured dewpoint temperature
WINMOV    1    1    -  mi/ivld   km/ivld    Measured wind movement
SOLRAD    1    1    -  Ly/ivld   Ly/ivld    Measured solar radiation
CLOUD     1    1    -  tenths    tenths     Cloud cover (range: 0 - 10)
PETINP    1    1    -  in/ivld   mm/ivld    Input potential E-T
IRRINP    1    1    -  in/ivld   mm/ivld    Input irrigation demand

Atmospheric deposition:

PQADFX   NQ    1    -  qty/      qty/       Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of QUALOF
PQADCN   NQ    1    -  qty/ft3   qty/l      Concentration of QUALOF in rain
                                            for wet atmospheric deposition
PEADFX  NPST   3    -  lb/       kg/        Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of pesticide.  The first subscript
                                            indicates the pesticide; the second
                                            indicates the species: crystalline,
                                            adsorbed, or solution
PEADCN  NPST   3    -  mg/l      mg/l       Concentration of pesticide in rain
                                            for wet atmospheric deposition.
                                            Subscripts same as above.
NIADFX    3    2    -  lb/       kg/        Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of nitrogen.  First subscript indi-
                                            cates species: NO3, NH3, organic N;
                                            the second subscript indicates the
                                            affected soil layer: surface or
                                            upper.
NIADCN    3    2    -  mg/l      mg/l       Concentration of nitrogen in rain
                                            for wet atmospheric deposition.
                                            Subscripts as above.
PHADFX    2    2    -  lb/       kg/        Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of phosphorus.  The first subscript
                                            indicates species: PO4, organic P;
                                            the second subscript indicates the
                                            affected soil layer (see above)
PHADCN    2    2    -  mg/l      mg/l       Concentration of phosphorus in
                                            rain for wet atmospheric deposition.
                                            Subscripts as above.
TRADFX    2    1    -  lb/       kg/        Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of tracer substance.  Subscript in-
                                            dicates affected soil layer (see
                                            above)
TRADCN    2    1    -  mg/l      mg/l       Concentration of tracer in rain.
                                            Subscript as above.

Lateral inflows:

SURLI     1    1    -  in/ivld   mm/ivld    Surface lateral inflow
UZLI      1    1    -  in/ivld   mm/ivld    Upper zone lateral inflow
IFWLI     1    1    -  in/ivld   mm/ivld    Interflow lateral inflow
LZLI      1    1    -  in/ivld   mm/ivld    Lower zone lateral inflow
AGWLI     1    1    -  in/ivld   mm/ivld    Active groundwater lateral inflow
SLSED     1    1    -  tons/     tonnes/    Lateral input of sediment
                       ac.ivld   ha.ivld
SLITMP    1    1    -  deg F     deg C      Surface lateral inflow temperature
ALITMP    1    1    -  deg F     deg C      Interflow lateral inflow temperature
ILITMP    1    1    -  deg F     deg C      Baseflow lateral inflow temperature
SLIDOX    1    1    -  mg/l      mg/l       Surface lateral inflow DO conc
ILIDOX    1    1    -  mg/l      mg/l       Interflow lateral inflow DO conc
ALIDOX    1    1    -  mg/l      mg/l       Baseflow lateral inflow DO conc
SLICO2    1    1    -  mg/l      mg/l       Surface lateral inflow CO2 conc
ILICO2    1    1    -  mg/l      mg/l       Interflow lateral inflow CO2 conc
ALICO2    1    1    -  mg/l      mg/l       Baseflow lateral inflow CO2 conc
SLIQSP  NQSD   1    -  qty/ton   qty/       QUALSD potency factor on lateral
                                 tonne      inflow of sediment
SLIQO   NQOF   1    -  qty/      qty/       QUALOF lateral inflow
                       ac.ivld   ha.ivld
ILIQC   NQIF   1    -  qty/ft3   qty/l      QUALIF conc in lateral inflow
ALIQC   NQGW   1    -  qty/ft3   qty/l      QUALGW conc in lateral inflow
LIPSS     5* NPST   -  lb/       kg/        Dissolved pesticide lateral inflow
                       ac.ivld   ha.ivld
LISDPS    2  NPST   -  lb/       kg/        Sed-associated pesticide lateral
                       ac.ivld   ha.ivld       inflow: 1) crystalline
                                                       2) adsorbed
LIAMS     5*   1    -  lb/       kg/        Dissolved ammonia lateral inflow
                       ac.ivld   ha.ivld
LINO3     5*   1    -  lb/       kg/        Nitrate lateral inflow
                       ac.ivld   ha.ivld
LISLN     5*   1    -  lb/       kg/        Dissolved labile org N lateral
                       ac.ivld   ha.ivld    inflow
LISRN     5*   1    -  lb/       kg/        Dissolved refractory org N lateral
                       ac.ivld   ha.ivld    inflow
LISEDN    3    1    -  lb/       kg/        Sediment-associated N lateral inflow
                       ac.ivld   ha.ivld       1) labile organic
                                               2) adsorbed ammonia
                                               3) refractory organic
LIP4S     5*   1    -  lb/       kg/        Dissolved phosphate lateral inflow
                       ac.ivld   ha.ivld
LISEDP    2    1    -  lb/       kg/        Sediment-associated P lateral inflow
                       ac.ivld   ha.ivld       1) organic
                                               2) adsorbed phosphate
LITRS     5*   1    -  lb/       kg/        Tracer lateral inflow
-------------------------------------------------------------------------------

* The subscripts "5" indicate that inflows are added to the following storages: 1) surface; 2) upper principal; 3) interflow; 4) lower; 4) groundwater.


Group ATEMP

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section ATEMP:

AIRTMP    1    1    -  Deg F     Deg C      Estimated surface air temperature
                                            over the Land-segment

Input time series required to compute the above:

Group EXTNL                                 always required
  GATMP                                       gage air temperature
  PREC                                        precipitation
-------------------------------------------------------------------------------


Group SNOW

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section SNOW:

PACK      1    1    *  in        mm         Total contents of pack (water equiv)
PACKF     1    1    *  in        mm         Frozen contents of pack, ie. snow +
                                            ice (water equivalent)
PACKW     1    1    *  in        mm         Liquid water in pack
PACKI     1    1    *  in        mm         Ice in pack (water equivalent)
PDEPTH    1    1    *  in        mm         Pack depth
COVINX    1    1    *  in        mm         Snow cover index (water equivalent)
NEGHTS    1    1    *  in        mm         Negative heat storage (water
                                            equivalent)
XLNMLT    1    1    *  in        mm         Maximum increment to ice in pack
RDENPF    1    1    *  none      none       Relative density of frozen contents
                                            of pack (PACKF/PDEPTH)
SKYCLR    1    1    *  none      none       Fraction of sky assumed clear
SNOCOV    1    1    *  none      none       Fraction of Land-segment covered by
                                            pack
DULL      1    1    *  none      none       Dullness index of the pack (available
                                            only if SNOPFG= 0)
ALBEDO    1    1    *  none      none       Albedo of the pack (available only if
                                            SNOPFG= 0)
PAKTMP    1    1    *  Deg F     Deg C      Mean temperature of the pack
SNOTMP    1    1    *  Deg F     Deg C      Max air temperature for snowfall to
                                            occur
DEWTMP    1    1    *  Deg F     Deg C      Effective dewpoint temperature
SNOWF     1    1    -  in/ivld   mm/ivld    Snowfall, water equivalent
PRAIN     1    1    -  in/ivld   mm/ivld    Rainfall directly onto the snowpack
SNOWE     1    1    -  in/ivld   mm/ivld    Evaporation from PACKF
                                            (sublimation), water equivalent
                                            (available only if SNOPFG= 0)
WYIELD    1    1    -  in/ivld   mm/ivld    Water yielded by the pack (released
                                            to the land-surface)
MELT      1    1    -  in/ivld   mm/ivld    Quantity of melt from PACKF (water
                                            equivalent)
RAINF     1    1    -  in/ivld   mm/ivld    Rainfall

Input time series required to compute the above:

Group EXTNL
  PREC                                        always required
  DTMPG                                       required if SNOPFG= 0
                                              optional if SNOPFG= 1
  WINMOV                                      required if SNOPFG= 0
  SOLRAD                                      required if SNOPFG= 0
  CLOUD                                       optional if SNOPFG= 0

Group ATEMP                                 required if section ATEMP inactive
  AIRTMP                                      air temperature
-------------------------------------------------------------------------------


Group PWATER

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section PWATER:

PERS      1    1    *  in        mm         Total water stored in the PLS
CEPS      1    1    *  in        mm         Interception storage
SURS      1    1    *  in        mm         Surface (overland flow) storage
UZS       1    1    *  in        mm         Upper zone storage
IFWS      1    1    *  in        mm         Interflow storage
LZS       1    1    *  in        mm         Lower zone storage
AGWS      1    1    *  in        mm         Active groundwater storage
TGWS      1    1    *  in        mm         Total groundwater storage (HWTFG=1)
GWEL      1    1    *  ft        m          Groundwater elevation (HWTFG=1)
GWVS      1    1    *  in        mm         Groundwater variable storage index
INFFAC    1    1    *  none      none       Adjustment factor for infiltration
                                            index due to frozen ground (CSNOFG=1)
PETADJ    1    1    *  none      none       Adjustment factor for potential ET
RZWS      1    1    *  in        mm         Root zone water storage (IRRGFG=2)
RPARM     1    1    -  in/ivld   mm/ivld    Current value of maximum lower zone
                                            E-T opportunity
SUPY      1    1    -  in/ivld   mm/ivld    Water supply to soil surface (If CSNOFG
                                            is 0, same as precipitation.)
SURO      1    1    -  in/ivld   mm/ivld    Surface outflow
IFWO      1    1    -  in/ivld   mm/ivld    Interflow outflow
AGWO      1    1    -  in/ivld   mm/ivld    Active groundwater outflow
PERO      1    1    -  in/ivld   mm/ivld    Total outflow from PLS
IGWI      1    1    -  in/ivld   mm/ivld    Inflow to inactive (deep) GW
PET       1    1    -  in/ivld   mm/ivld    Potential E-T, adjusted for snow
                                            cover and air temperature
CEPE      1    1    -  in/ivld   mm/ivld    Evap. from interception storage
SURET     1    1    -  in/ivld   mm/ivld    Evap. from surface storage (HWTFG=1)
UZET      1    1    -  in/ivld   mm/ivld    E-T from upper zone
LZET      1    1    -  in/ivld   mm/ivld    E-T from lower zone
AGWET     1    1    -  in/ivld   mm/ivld    E-T from active groundwater storage
BASET     1    1    -  in/ivld   mm/ivld    E-T taken from active groundwater
                                            outflow (baseflow)
TAET      1    1    -  in/ivld   mm/ivld    Total simulated E-T
IFWI      1    1    -  in/ivld   mm/ivld    Interflow inflow (excluding any
                                            lateral inflow)
UZI       1    1    -  in/ivld   mm/ivld    Upper zone inflow
INFIL     1    1    -  in/ivld   mm/ivld    Infiltration to the soil
PERC      1    1    -  in/ivld   mm/ivld    Percolation from upper to lower
                                            zone
LZI       1    1    -  in/ivld   mm/ivld    Lower zone inflow
AGWI      1    1    -  in/ivld   mm/ivld    Active groundwater inflow
                                            (excluding any lateral inflow)
SURI      1    1    -  in/ivld   mm/ivld    Surface inflow (including any
                                            lateral inflow)
IRRDEM    1    1    -  in/ivld   mm/ivld    Irrigation demand (IRRGFG > 0)
IRSHRT    1    1    -  in/ivld   mm/ivld    Irrigation shortfall (IRRGFG > 0)
IRDRAW    3    1    -  in/ivld   mm/ivld    Withdrawal of irrigation water from:
                                            1) imports; 2) groundwater; 3) RCHRES
                                            (IRRGFG > 0)
IRRAPP    6    1    -  in/ivld   mm/ivld    Application of irrigation water to:
                                            1) interception storage; 2) soil
                                            surface; 3) upper zone; 4) lower zone;
                                            5) groundwater; 6) total

Input time series required to compute the above:

Group EXTNL
  PETINP
  IRRINP                                    only required when IRRGFG=1
  PREC                                      required if snow not considered
                                            (CSNOFG= 0)
  SURLI                                     optional
  UZLI                                      optional
  IFWLI                                     optional
  LZLI                                      optional
  AGWLI                                     optional

Group ATEMP
  AIRTMP                                    only required if section ATEMP
                                            is inactive and CSNOFG= 1

Group SNOW                                  only required if section SNOW is
  RAINF                                     inactive and snow is considered
  SNOCOV                                    (CSNOFG= 1)
  WYIELD
  PACKI                                     only required if ICEFG= 1

Group PSTEMP                                only required if section PSTEMP
  LGTMP                                     is inactive and IFFCFG= 2
-------------------------------------------------------------------------------


Group SEDMNT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section SEDMNT:

Land-segment-wide values:
DETS      1    1    *  tons/ac   tonnes/ha  Storage of detached sediment
STCAP     1    1    *  tons/     tonnes/    Sediment transport capacity
                       ac.ivld   ha.ivld    by surface runoff
COVER     1    1    *  none      none       Cover fraction
WSSD      1    1    -  tons/     tonnes/    Washoff of detached sediment
                       ac.ivld   ha.ivld
SCRSD     1    1    -  tons/     tonnes/    Scour of matrix (attached) soil
                       ac.ivld   ha.ivld
SOSED     1    1    -  tons/     tonnes/    Total removal of soil and sediment
                       ac.ivld   ha.ivld
DET       1    1    -  tons/     tonnes/    Quantity of sediment detached from
                       ac.ivld   ha.ivld    soil matrix by rainfall impact
NVSI      1    1    -  tons/     tonnes/    Net vertical sediment input

Input time series required to compute the above:

Group EXTNL                                 always required
  PREC
  SLSED                                     optional

Group SNOW                                  only required if section SNOW
  RAINF                                     is inactive and snow is considered
  SNOCOV                                    (CSNOFG= 1)

Group PWATER                                only required if section PWATER
  SURO                                      is inactive
  SURS
-------------------------------------------------------------------------------


Group PSTEMP

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section PSTEMP:

AIRTC     1    1    -  Deg F     Deg C      Air temperature on the PLS
SLTMP     1    1    -  Deg F     Deg C      Surface layer soil temperature
ULTMP     1    1    -  Deg F     Deg C      Upper layer soil temperature
LGTMP     1    1    -  Deg F     Deg C      Lower and groundwater layer
                                            soil temperature

Input time series required to compute the above:

Group ATEMP                                 only required if section ATEMP is
  AIRTMP                                    inactive
-------------------------------------------------------------------------------


Group PWTGAS

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section PWTGAS:

SOTMP     1    1    *  Deg F     Deg C      Temperature of surface outflow
IOTMP     1    1    *  Deg F     Deg C      Temperature of interflow outflow
AOTMP     1    1    *  Deg F     Deg C      Temperature of active groundwater
                                            outflow
SODOX     1    1    *  mg/l      mg/l       DO concentration in surface outflow
SOCO2     1    1    *  mg/l      mg/l       CO2 concentration in surface
                                            outflow
IODOX     1    1    *  mg/l      mg/l       DO concentration in interflow
                                            outflow
IOCO2     1    1    *  mg/l      mg/l       CO2 concentration in interflow
                                            outflow
AODOX     1    1    *  mg/l      mg/l       DO concentration in active
                                            groundwater outflow
AOCO2     1    1    *  mg/l      mg/l       CO2 concentration in active
                                            groundwater outflow
SOHT      1    1    -  BTU/      kcal/      Heat energy in surface outflow
                       ac.ivld   ha.ivld    (relative to freezing point)
IOHT      1    1    -  BTU/      kcal/      Heat energy in interflow outflow
                       ac.ivld   ha.ivld
AOHT      1    1    -  BTU/      kcal/      Heat energy in active groundwater
                       ac.ivld   ha.ivld    outflow
POHT      1    1    -  BTU/      kcal/      Heat energy in total outflow from
                       ac.ivld   ha.ivld    PLS
SODOXM    1    1    -  lb/       kg/        Flux of DO in surface outflow
                       ac.ivld   ha.ivld
SOCO2M    1    1    -  lb/       kg/        Flux of CO2 in surface outflow
                       ac.ivld   ha.ivld
IODOXM    1    1    -  lb/       kg/        Flux of DO in interflow outflow
                       ac.ivld   ha.ivld
IOCO2M    1    1    -  lb/       kg/        Flux of CO2 in interflow outflow
                       ac.ivld   ha.ivld
AODOXM    1    1    -  lb/       kg/        Flux of DO in active groundwater
                       ac.ivld   ha.ivld    outflow
AOCO2M    1    1    -  lb/       kg/        Flux of CO2 in active groundwater
                       ac.ivld   ha.ivld    outflow
PODOXM    1    1    -  lb/       kg/        DO in total outflow from PLS
                       ac.ivld   ha.ivld
POCO2M    1    1    -  lb/       kg/        CO2 in total outflow from PLS
                       ac.ivld   ha.ivld

Input time series required to compute the above:

Group EXTNL
  SURLI,SLITMP,SLIDOX,SLICO2                optional
  IFWLI,ILITMP,ILIDOX,ILICO2                optional
  AGWLI,ALITMP,ALIDOX,ALICO2                optional

Group SNOW                                  only required if section SNOW is
  WYIELD                                    inactive and snow is considered
                                            (CSNOFG= 1)

Group PWATER                                only required if section PWATER is
  SURO                                      inactive
  IFWO
  AGWO

Group PSTEMP                                only required if section PSTEMP
  SLTMP                                     is inactive
  ULTMP
  LGTMP
-------------------------------------------------------------------------------


Group PQUAL

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

Time series computed by module section PQUAL:

SQO     NQOF   1    *  qty/ac    qty/ha     Storage of QUALOF on the surface
IOQC    NQIF   1    -  qty/ft3   qty/l      QUALIF outflow concentration
AOQC    NQGW   1    -  qty/ft3   qty/l      QUALGW outflow concentration
SOQSP   NQSD   1    -  qty/ton   qty/       QUALSD outflow potency factor
                                 tonne
WASHQS  NQSD   1    -  qty/      qty/       Removal of QUALSD by association
                       ac.ivld   ha.ivld    with detached sediment washoff
SCRQS   NQSD   1    -  qty/      qty/       Removal of QUALSD by association
                       ac.ivld   ha.ivld    with scour of matrix soil
SOQS    NQSD   1    -  qty/      qty/       Total flux of QUALSD from surface
                       ac.ivld   ha.ivld
SOQO    NQOF   1    -  qty/      qty/       Washoff of QUALOF from surface
                       ac.ivld   ha.ivld
SOQOC   NQOF   1    -  qty/ft3   qty/l      Concentration of QUALOF in surface
                                            outflow
SOQUAL   NQ    1    -  qty/      qty/       Total outflow of QUAL from the
                       ac.ivld   ha.ivld    surface
SOQC     NQ    1    -  qty/ft3   qty/l      Concentration of QUAL (QUALSD+
                                            QUALOF) in surface outflow
IOQUAL  NQIF   1    -  qty/      qty/       Outflow of QUAL in interflow
                       ac.ivld   ha.ivld    (QUALIF)
AOQUAL  NQGW   1    -  qty/      qty/       Outflow of QUAL in active ground-
                       ac.ivld   ha.ivld    water outflow (QUALGW)
POQUAL   NQ    1    -  qty/      qty/       Total flux of QUAL from the PLS
                       ac.ivld   ha.ivld
POQC     NQ    1    -  qty/ft3   qty/l      Concentration of QUAL (total) in
                                            total outflow from PLS
PQADDR   NQ    1    -  qty/      qty/       Dry atmospheric deposition of QUAL
                       ac.ivld   ha.ivld
PQADWT   NQ    1    -  qty/      qty/       Wet atmospheric deposition of QUAL
                       ac.ivld   ha.ivld
PQADEP   NQ    1    -  qty/      qty/       Total atmospheric deposition
                       ac.ivld   ha.ivld    of QUAL
ISQO     NQ    1    -  qty/      qty/       Total inflow of QUAL
                       ac.ivld   ha.ivld

Input time series required to compute the above:

Group EXTNL
  PQADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  PQADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  SLSED,SLIQSP                              optional
  SLIQO                                     optional
  IFWLI,ILIQC                               optional
  AGWLI,ALIQC                               optional

Group PWATER                                only required if PWATER is inactive
  SURO                                      only required if one or more QUALs
                                            are QUALOFs, or if SOQC is required
                                            for one or more QUALs
  IFWO                                      only required if one or more QUALs
                                            are QUALIFs
  AGWO                                      only required if one or more QUALs
                                            are QUALGWs
  PERO                                      only required if POQC is required
                                            for one or more QUALs

Group SEDMNT                                only required if section SEDMNT
  WSSD                                      is inactive and one or more QUALs
  SCRSD                                     are QUALSD's
-------------------------------------------------------------------------------


Group MSTLAY

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------

Time series computed by module section MSTLAY:

MST       5    1    *  lb/ac     kg/ha      Water in surface, upper principal,
                                            upper auxiliary, lower, and
                                            groundwater storages
FRAC      8    1    *  /ivl      /ivl       Fractional fluxes through soil:
                                            FSO,FSP,FII,FUP,FIO,FLP,FLDP,FAO

Input time series required to compute the above:

Group PWATER:                               only required if section PWATER
  SURI,LZS,IGWI,AGWI,AGWS,AGWO,             is inactive
  SURS,SURO,INFIL,IFWI,UZI,UZS,
  PERC,IFWS,IFWO
--------------------------------------------------------------------------------


Group PEST

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------

Time series computed by module section PEST:

SPS       3  NPST   *  lb/ac     kg/ha      Amount of pesticide in
                                            surface storage
UPS       3  NPST   *  lb/ac     kg/ha      Amount of pesticide in upper
                                            principal storage
IPS       NPST 1    *  lb/ac     kg/ha      Amount of pesticide in upper
                                            auxiliary (interflow) storage
LPS       3  NPST   *  lb/ac     kg/ha      Amount of pesticide in lower
                                            layer storage
APS       3  NPST   *  lb/ac     kg/ha      Amount of pesticide in active
                                            groundwater layer storage
TPS       3  NPST   *  lb/ac     kg/ha      Total amount of pesticide in the
                                            soil
Note: SPS,UPS,LPS,APS and TPS give the storage of each pesticide by species.  The first subscript indicates the species: crystalline, adsorbed, or solution, The second indicates the pesticide.  For example, UPS(2,3) is the quantity of adsorbed pesticide in the upper layer principal storage, for the 3rd pesticide.  The second subscript for IPS has a maximum value of one because only solution pesticide is modeled in the upper layer auxiliary (interflow) layer.

TOTPST  NPST  1     *   lb/ac     kg/ha     Total amount of pesticide in the
                                            soil (sum of all species).

PEADDR  NPST   3    - lb/ac.ivld kg/ha.ivld Dry atmospheric deposition of
                                            pesticide.  The second subscript
                                            indicates the species: crystalline,
                                            adsorbed, or solution.
PEADWT  NPST   3    -     "          "      Wet deposition of pesticide form.
                                            Subscripts as above.
PEADEP  NPST   3    -     "          "      Wet deposition of pesticide form.
                                            Subscripts as above.

TSPSS     5 NPST    - lb/ac.ivld kg/ha.ivld Fluxes of solution pesticide for
                                            the topsoil layers: SOPSS,SPPSS,
                                            UPPSS,IIPSS,IOPSS
SSPSS     3 NPST    -     "          "      Fluxes of solution pesticide for
                                            the subsoil layers: LPPSS,LDPPSS,
                                            AOPSS
SDEGPS  NPST  1     - lb/ac.ivld kg/ha.ivld Amount  of degradation in surface layer
UDEGPS  NPST  1     -     "          "      Amount of degradation in upper layer
LDEGPS  NPST  1     -     "          "      Amount of degradation in lower layer
ADEGPS  NPST  1     -     "          "      Amount of degradation in groundwater
TDEGPS  NPST  1     -     "          "      Total amount of degradation in soil

SDPS      2 NPST    - lb/ac.ivld kg/ha.ivld Outflow of sediment-associated
                                            pesticide (SDPSY and SDPSA for each
                                            pesticide)
SOSDPS  NPST  1     -     "          "      Total outflow of sediment-associated
                                            pesticide (SDPSY + SDPSA)
POPST   NPST  1     -     "          "      Total outflow of solution pesticide
                                            from the PLS
TOPST   NPST  1     -     "          "      Total outflow of pesticide from
                                            the PLS

Note:  The subscript with maximum value NPST selects the particular pesticide.
       For example, POPST(2,1) is the outflow from the PLS of the second
       pesticide (in solution).

Input time series required to compute the above:

Group EXTNL
  PEADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  PEADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  LIPSS                                     optional
  LISDPS                                    optional

Group SEDMNT                                only required if section SEDMNT
  SOSED                                     is inactive

Group PSTEMP                                only required if section PSTEMP
  SLTMP                                     is inactive and ADOPFG = 1
  ULTMP
  LGTMP

Group MSTLAY                                only required if section MSTLAY
  MST                                       is inactive
  FRAC
--------------------------------------------------------------------------------


Group NITR

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section NITR:

AGPLTN    1    1    *  lb/ac     kg/ha      N in above-ground plant storage
LITTRN    1    1    *    "         "        N in litter storage

The above time series are available only if ALPNFG= 1

SN        8    1    *  lb/ac     kg/ha      N in surface layer storage
UN        8    1    *    "         "        N in upper layer principal storage
LN        8    1    *    "         "        N in lower layer storage
AN        8    1    *    "         "        N in groundwater layer storage
TN        8    1    *    "         "        Total N in soil, by species

In the above, the first subscript selects the species of N:  1 means particulate labile organic N,  2 means adsorbed ammonium, 3 means solution ammonium, 4 means nitrate, 5 means plant N, 6 means solution labile organic N, 7 means particulate refractory organic N, 8 means solution refractory organic N

IN        4    1    *  lb/ac     kg/ha      N in upper layer auxiliary
                                            (interflow) storage
In the above, the first subscript selects the species of N:  1 means solution ammonium, 2 means nitrate, 3 means solution labile organic N, 4 means solution refractory organic N (only soluble species are modelled in this storage)

TNIT      5    1    *  lb/ac     kg/ha      Total N stored in each layer (all
                                            species): 1-surface, 2-upper, 3-lower,
                                            4-active groundwater, 5-total

TOTNIT    1    1    *  lb/ac     kg/ha      Total N stored in the PLS (all
                                            species)

NDFCT     5    1    *  lb/ac     kg/ha      Deficit in yield-based plant uptake
                                            of N from the each soil layer:
                                            1-surface, 2-upper, 3-lower,
                                            4-active groundwater, 5-total

NITIF     4    1    - lb/ac.ivld kg/ha.ivld Special Action application of:
                                            1- NO3, 2- NH3, 3- Organic N, 4- Total
NIADDR    3    2    - lb/ac.ivld kg/ha.ivld Dry atmospheric deposition of
                                            nitrogen.  The first subscript
                                            indicates the species: NO3, NH3,
                                            organic N;  the second subscript
                                            indicates the affected soil layer:
                                            surface or upper.
NIADWT    3    2    -     "          "      Wet atmospheric deposition of
                                            nitrogen. Subscripts as above.
NIADEP    3    2    -     "          "      Total atmospheric deposition of
                                            nitrogen. Subscripts as above.

TSAMS     5    1    - lb/ac.ivld kg/ha.ivld Fluxes of solution ammonium in
                                            the topsoil
TSNO3     5    1    -     "          "      Fluxes of nitrate in the topsoil
TSSLN     5    1    -     "          "      Fluxes of solution labile organic N
                                            in the topsoil
TSSRN     5    1    -     "          "      Fluxes of solution refractory
                                            organic N in the topsoil

In the above, the first subscript selects the flux:
1 means outflow with surface water outflow
2 means percolation from surface to upper layer principal storage
3 means percolation from upper layer principal storage to lower layer storage
4 means flow from upper layer principal to upper layer auxiliary (interflow)
  storage
5 means outflow from PLS with water from upper layer auxiliary (interflow)
  storage

SSAMS     3    1    - lb/ac.ivld kg/ha.ivld Fluxes of solution ammonium in
                                            the subsoil
SSNO3     3    1    -     "          "      Fluxes of nitrate in the subsoil
SSSLN     3    1    -     "          "      Fluxes of solution labile organic
                                            N in the subsoil
SSSRN     3    1    -     "          "      Fluxes of solution refractory
                                            organic N in the subsoil

In the above, the first subscript selects the flux:
1 means percolation from the lower layer to the active groundwater storage
2 means deep percolation, from the lower layer to inactive groundwater
3 means outflow from the PLS with water from the active groundwater storage

NUPTG     4    1    - lb/ac.ivld kg/ha.ivld Yield-based plant uptake target for
                                            N from each soil layer: 1-surface,
                                            2-upper, 3-lower, 4-active groundwater

Reaction Fluxes by layer:

DENIF     5    1    - lb/ac.ivld kg/ha.ivld Denitrification
AMNIT     5    1    -     "          "      Ammonia nitrification
AMIMB     5    1    -     "          "      Ammonia immobilization
ORNMN     5    1    -     "          "      Organic N mineralization
NFIXFX    5    1    -     "          "      N fixation flux
AMVOL     5    1    -     "          "      Ammonia volatilization
REFRON    5    1    -     "          "      Refractory N conversion
NIIMB     5    1    -     "          "      Nitrate immobilization
NIUPA     5    1    -     "          "      NO3 uptake to above-ground plant N
AMUPA     5    1    -     "          "      NH3 uptake to above-ground plant N
NIUPB     5    1    -     "          "      NO3 uptake to below-ground plant N
AMUPB     5    1    -     "          "      NH3 uptake to below-ground plant N
RTLBN     5    1    -     "          "      Below-ground plant N return to
                                            labile organic N
RTRBN     5    1    -     "          "      Below-ground plant N return to
                                            refractory organic N

In the above, the first subscript selects soil layer: 1-surface, 2-upper, 3-lower, 4-active groundwater, 5-total

RETAGN    1    1    - lb/ac.ivld kg/ha.ivld Return of above-ground plant N to
                                            litter layer
RTLLN     3    1    -     "          "      Return of litter N to labile organic
                                            N in 1- surface layer, 2- upper layer,
                                            3- total
RTRLN     3    1    -     "          "      Return of litter N to refractory
                                            organic N in 1- surface layer,
                                            2- upper layer, 3- total
TDENIF    1    1    -     "          "      Total denitrification in the PLS
SEDN      3    1    -     "          "      Outflows of sediment-associated N:
                                            1- labile organic N, 2- adsorbed
                                            ammonium 3- refractory organic N
SOSEDN    1    1    -     "          "      Total outflow of sediment-associated
                                            N (organic N + adsorbed ammonium)
PONO3     1    1    -     "          "      Total outflow of NO3 from the PLS
PONH4     1    1    -     "          "      Total outflow of NH4 from the PLS
POORN     1    1    -     "          "      Total outflow of ORGN from the PLS
PONITR    1    1    -     "          "      Total outflow of N (NO3+NH4+ORGN)
                                            from the PLS.

Input time series required to compute the above:

Group EXTNL
  NIADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  NIADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  LIAMS                                     optional
  LINO3                                     optional
  LISLN                                     optional
  LISRN                                     optional
  LISEDN                                    optional

Group SEDMNT                                only required if section SEDMNT
  SOSED                                     is inactive

Group PSTEMP                                only required if section PSTEMP
  SLTMP                                     is inactive and ADOPFG = 1
  ULTMP
  LGTMP

Group MSTLAY                                only required if section MSTLAY
  MST                                       is inactive
  FRAC
--------------------------------------------------------------------------------


Group PHOS

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Pame      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------

Time series computed by module section PHOS:

SP        4    1    *  lb/ac     kg/ha      P in surface layer storage
UP        4    1    *    "         "        P in upper layer principal storage
LP        4    1    *    "         "        P in lower layer storage
AP        4    1    *    "         "        P in groundwater layer storage
TP        4    1    *    "         "        Total P in soil, by species

In the above, the first subscript selects the species of P:
1 means organic P, 2 means adsorbed phosphate, 3 means solution phosphate, 4 means plant P derived from this layer

IP        1    1    *  lb/ac     kg/ha      P in upper layer auxiliary storage
                                            (interflow) (solution PO4)
(only soluble species are modeled in this storage)

TPHO      5    1    *  lb/ac     kg/ha      Total P stored in each soil layer (all
                                            species): 1-surface, 2-upper, 3-lower,
                                            4-active groundwater, 5-total
TOTPHO    1    1    *  lb/ac     kg/ha      Total P stored in the PLS (all
                                            species)

PDFCT     5    1    *  lb/ac     kg/ha      Deficit in yield-based plant uptake
                                            of P from the each soil layer:
                                            1-surface, 2-upper, 3-lower,
                                            4-active groundwater, 5-total

PHOIF     3    1    - lb/ac.ivld kg/ha.ivld Special Action application of:
                                            1- PO4, 2- Organic P, 3- Total

PHADDR    2    2    - lb/ac.ivld kg/ha.ivld Dry atmospheric deposition of
                                            phosphorus.  The first subscript
                                            indicates the species: PO4 or
                                            organic P;  the second subscript
                                            indicates the affected soil layer:
                                            surface or upper.
PHADWT    2    2    -     "          "      Wet atmospheric deposition of
                                            phosphorus.  Subscripts as above.
PHADEP    2    2    -     "          "      Total atmospheric deposition of
                                            phosphorus.  Subscripts as above.

TSP4S     5    1    - lb/ac.ivld kg/ha.ivld Fluxes of solution phosphate in the
                                            in the topsoil.

In the above, the first subscript selects the flux:
1 means outflow with surface water outflow
2 means percolation from surface to upper layer principal storage
3 means percolation from upper layer principal storage to lower layer storage
4 means flow from upper layer principal to upper layer auxiliary (interflow)
  storage
5 means outflow from PLS with water from upper layer auxiliary (interflow) storage

SSP4S     3    1    - lb/ac.ivld kg/ha.ivld Fluxes of solution phosphate
                                            in the subsoil.

In the above, the first subscript selects the flux:
1 means percolation from the lower layer to the active groundwater storage
2 means deep percolation, from the lower layer to inactive groundwater
3 means outflow from the PLS with water from the active groundwater storage

PUPTG     4    1    - lb/ac.ivld kg/ha.ivld Yield-based plant uptake target for
                                            P from each soil layer: 1-surface,
                                            2-upper, 3-lower, 4-active groundwater

P4IMB     5    1    -     "          "      Phosphate immobilization: 1-surface,
                                            2-upper, 3-lower, 4-active groundwater
ORPMN     5    1    -     "          "      Organic P mineralization: 1-surface,
                                            2-upper, 3-lower, 4-active groundwater

SEDP      2    1    - lb/ac.ivld kg/ha.ivld Outflows of sediment-associated P:
                                            1- means organic P, 2- adsorbed PO4
SOSEDP    1    1    -     "          "      Total outflow of sediment-associated
                                            P (organic P + adsorbed phosphate)

POPHOS    1    1    -     "          "      Total outflow of P from the PLS.

Input time series required to compute the above:

Group EXTNL
  PHADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  PHADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  LIP4S                                     optional
  LISEDP                                    optional

Group SEDMNT                                only required if section SEDMNT
  SOSED                                     is inactive

Group PSTEMP                                only required if section PSTEMP
  SLTMP                                     is inactive and ADOPFG = 1
  ULTMP
  LGTMP

Group MSTLAY                                only required if section MSTLAY
  MST                                       is inactive
  FRAC
--------------------------------------------------------------------------------


Group TRACER

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section TRACER:

STRSU     1    1    *  lb/ac     kg/ha      Tracer in surface layer storage
UTRSU     1    1    *    "         "        Tracer in upper principal storage
ITRSU     1    1    *    "         "        Tracer in upper auxiliary storage
LTRSU     1    1    *    "         "        Tracer in lower layer storage
ATRSU     1    1    *    "         "        Tracer in groundwater layer storage
TRSU      1    1    *    "         "        Total tracer stored in the PLS

TRADDR    2    1    - lb/ac.ivld kg/ha.ivld Dry atmospheric deposition of tracer.
                                            The subscript indicates soil layer:
                                            surface or upper.
TRADWT    2    1    -     "          "      Wet atmospheric deposition of
                                            tracer. Subscripts as above.
TRADEP    2    1    -     "          "      Total atmospheric deposition of
                                            tracer. Subscripts as above.

TSTRS     5    1    - lb/ac.ivld kg/ha.ivld Fluxes of tracer in topsoil

In the above, the first subscript indicates the flux:
1 means outflow with surface water outflow
2 means percolation from surface to upper layer principal storage
3 means percolation from upper layer principal to lower layer storage
4 means flow from upper principal to upper auxiliary (interflow) storage
5 means outflow from the PLS from upper layer transitory (interflow) storage

SSTRS     3    1    - lb/ac.ivld kg/ha.ivld Fluxes of tracer in subsoil

In the above, the first subscript indicates the flux:
1 means percolation from lower layer to active groundwater storage
2 means deep percolation, from lower layer to inactive groundwater
3 means outflow from the PLS from the active groundwater storage

POTRS     1    1    - lb/ac.ivld kg/ha.ivld Total outflow of tracer from the PLS

Input time series required to compute the above:

Group EXTNL
  TRADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  TRADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  LITRS                                     optional

Group MSTLAY                                only required if MSTLAY, PEST, NITR
  MST                                       and PHOS are all inactive; else
  FRAC                                      these time series will already
                                            have been supplied
--------------------------------------------------------------------------------


Catalog for IMPLND module

The time series groups associated with this application module are shown in the figure below. The members contained within each group are documented in the tables which follow.

Groups of time series associated with the IMPLND Module


Group EXTNL

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------

The time series always external (input only) to module IMPLND are shown below.  These time series are divided into three groups: meteorologic data, atmospheric deposition, and lateral inflows.

Meteorologic:

GATMP     1    1    -  Deg F     Deg C      Measured air temperature
PREC      1    1    -  in/ivld   mm/ivld    Measured precipitation
DTMPG     1    1    -  Deg F     Deg C      Measured dewpoint temperature
WINMOV    1    1    -  mi/ivld   km/ivld    Measured wind movement
DSOLAR    1    1    -  Ly/day    Ly/day     Solar radiation: total for 1 day
SOLRAD    1    1    -  Ly/ivld   Ly/ivld    Measured solar radiation
CLOUD     1    1    -  tenths    tenths     Cloud cover (range: 0 - 10)
PETINP    1    1    -  in/ivld   mm/ivld    Input potential E-T

Atmospheric deposition:

IQADFX   10    1    -  qty/      qty/       Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of QUALOF
IQADCN   10    1    -  qty/ft3   qty/l      Concentration of QUALOF in precip
                                            for wet atmospheric deposition

Lateral inflows:

SURLI     1    1    -  in/ivld   mm/ivld    Surface lateral inflow
SLSLD     1    1    -  tons/     tonnes/    Lateral input of solids
                       ac.ivld   ha.ivld
SLITMP    1    1    -  deg F     deg C      Lateral inflow temperature
SLIDOX    1    1    -  mg/l      mg/l       Lateral inflow DO conc
SLICO2    1    1    -  mg/l      mg/l       Lateral inflow CO2 conc
SLIQSP   NQSD  1    -  qty/ton   qty/       QUALSD potency factor on lateral
                                 tonne      inflow
SLIQO    NQOF  1    -  qty/      qty/       Lateral input of QUALOF
                       ac.ivld   ha.ivld
-------------------------------------------------------------------------------


Group ATEMP

Identical to group ATEMP in module PERLND. Refer to ATEMP in PERLND.


Group SNOW

Identical to group SNOW in module PERLND. Refer to SNOW in PERLND.


Group IWATER

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section IWATER:

IMPS      1    1    *  in        mm         Total water stored in the ILS
RETS      1    1    *  in        mm         Retention storage
SURS      1    1    *  in        mm         Surface (overland flow) storage
PETADJ    1    1    *  none      none       Adjustment factor for potential ET
SUPY      1    1    -  in/ivld   mm/ivld    Water supply to soil surface (If CSNOFG
                                            is 0, same as precipitation.)
SURO      1    1    -  in/ivld   mm/ivld    Surface outflow
PET       1    1    -  in/ivld   mm/ivld    Potential E-T, adjusted for snow
                                            cover and air temperature
IMPEV     1    1    -  in/ivld   mm/ivld    Total simulated E-T
SURI      1    1    -  in/ivld   mm/ivld    Surface inflow (including any
                                            lateral inflow if RTLIFG=1)

Input time series required to compute the above:

Group EXTNL
  PETINP
  PREC                                      required if snow not considered
                                            (CSNOFG= 0)
  SURLI                                     optional

Group ATEMP
  AIRTMP                                    only required if section ATEMP
                                            is inactive and CSNOFG= 1

Group SNOW                                  only required if section SNOW is
  RAINF                                     inactive and snow is considered
  SNOCOV                                    (CSNOFG= 1)
  WYIELD
-------------------------------------------------------------------------------


Group SOLIDS

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section SOLIDS:

SLDS      1    1    *  tons/ac   tonnes/ha  Storage of solids on surface
SOSLD     1    1    -  tons/     tonnes/    Washoff of solids from surface
                       ac.ivld   ha.ivld

Input time series required to compute the above:

Group EXTNL                                 always required
  PREC
  SLSLD                                     optional

Group IWATER                                only required if section IWATER
  SURO                                      is inactive
  SURS
-------------------------------------------------------------------------------


Group IWTGAS

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section IWTGAS:

SOTMP     1    1    *  Deg F     Deg C      Temperature of surface outflow
SODOX     1    1    *  mg/l      mg/l       DO concentration in surface outflow
SOCO2     1    1    *  mg/l      mg/l       CO2 concentration in surface
                                            outflow
SOHT      1    1    -  BTU/      kcal/      Heat energy in surface outflow
                       ac.ivld   ha.ivld    (relative to freezing point)
SODOXM    1    1    -  lb/       kg/        Flux of DO in surface outflow
                       ac.ivld   ha.ivld
SOCO2M    1    1    -  lb/       kg/        Flux of CO2 in surface outflow
                       ac.ivld   ha.ivld

Input time series required to compute the above:

Group EXTNL
  SURLI,SLITMP,SLIDOX,SLICO2                optional

Group ATEMP                                 only required if section ATEMP
  AIRTMP                                    is inactive

Group SNOW                                  only required if section SNOW
  WYIELD                                    is inactive and snow is considered
                                            (CSNOFG= 1)

Group IWATER                                only required if section IWATER
  SURO                                      is inactive
-------------------------------------------------------------------------------


Group IQUAL

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section IQUAL:

SQO     NQOF   1    *  qty/ac    qty/ha     Storage of QUALOF on the surface
SOQSP   NQSD   1    -  qty/ton   qty/       QUALSD outflow potency factor
                                 tonne
SOQS    NQSD   1    -  qty/      qty/       Total flux of QUALSD from surface
                       ac.ivld   ha.ivld
SOQO    NQOF   1    -  qty/      qty/       Washoff of QUALOF from surface
                       ac.ivld   ha.ivld
SOQOC   NQOF   1    -  qty/ft3   qty/l      Concentration of QUALOF in surface
                                            outflow
SOQUAL   NQ    1    -  qty/      qty/       Total outflow of QUAL from the
                       ac.ivld   ha.ivld    surface
SOQC     NQ    1    -  qty/ft3   qty/l      Concentration of QUAL in surface
                                            outflow (QUALSD+QUALOF)
IQADDR   NQ    1    -  qty/      qty/       Dry atmospheric deposition of QUAL
                       ac.ivld   ha.ivld
IQADWT   NQ    1    -  qty/      qty/       Wet atmospheric deposition of QUAL
                       ac.ivld   ha.ivld
IQADEP   NQ    1    -  qty/      qty/       Total atmospheric deposition of QUAL
                       ac.ivld   ha.ivld

Input time series required to compute the above:

Group EXTNL
  IQADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  IQADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  SLIQSP,SLSLD                              optional
  SLIQO                                     optional

Group IWATER                                only required if section IWATER
                                            is inactive
  SURO                                      only required if one or more QUALs
                                            are QUALOFs, or if SOQC is required
                                            for one or more QUALs

Group SOLIDS                                only required if section SOLIDS
  SOSLD                                     is inactive and one or more QUALs
                                            are QUALSDs
-------------------------------------------------------------------------------


Catalog for RCHRES module

The time series groups associated with this application module are shown in the figure below.

The members contained within each group are documented in the following tables.

Note: exit-specific, output time series are computed (available) only when NEXITS is greater than 1.

Groups of time series associated with the RCHRES Module


Group EXTNL

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series external to module RCHRES (input only):

Meteorological:

PREC      1    1    -  in/ivld   mm/ivld    Precip on surface of the RCHRES
                                            (requires AUX1FG = 1)
POTEV     1    1    -  in/ivld   mm/ivld    Potential evaporation from the
                                            surface (requires AUX1FG = 1)
SOLRAD    1    1    -  Ly/ivld   Ly/ivld    Solar radiation
CLOUD     1    1    -  tenths    tenths     Cloud cover (range 0 - 10)
DEWTMP    1    1    -  DegF      DegC       Dewpoint
GATMP     1    1    -  DegF      DegC       Air temperature at met. station
WIND      1    1    -  miles/    km/        Wind movement
                       ivld      ivld

Atmospheric Deposition:

COADFX  NCONS  1    -  qty/      qty/       Dry or total atmospheric deposition
                       ac/ivld   ha/ivld    of conservative
COADCN  NCONS  1    -  conc      conc       Concentration of conservative in
                                            rain for wet atmospheric
                                            deposition
GQADFX  NGQUAL 1    -  qty/      qty/       Dry or total atmospheric deposition
                       ac/ivld   ha/ivld    of qual
GQADCN  NGQUAL 1    -  concu/l   concu/l    Concentration of qual in rain for
                                            for wet atmospheric deposition
NUADFX    3    1    -  lb/       kg/        Dry or total atmospheric deposition
                       ac.ivld   ha.ivld    of inorganic nutrient.  Subscript
                                            indicates: NO3, NH3, PO4.
NUADCN    3    1    -  mg/l      mg/l       Concentration of nutrient in rain
                                            for wet atmospheric deposition
PLADFX    3    1    -  lb/       kg/        Dry or total atmospheric deposition
                       ac/ivld   ha/ivld    of organics.  Subscript indicates:
                                            nitrogen, phosphorus, carbon
PLADCN    3    1    -  mg/l      mg/l       Concentration of organic in rain
                                            for wet atmospheric deposition.
                                            Subscript same as above.

Other:
COLIND  NEXITS 1    -  none      none       Time series indicating which
                                            (pair of) columns in RCHTAB are
                                            used to evaluate f(VOL) component
                                            of outflow demand
OUTDGT  NEXITS 1    -  ft3/s     m3/s       g(t) component of outflow demand if
                                            no CATEGORY block is present.
COTDGT  NEXITS CAT  -  ft3/s     m3/s       g(t) component of outflow demand by
                                            category if CATEGORY block is present
IVOL      1    1    -  ac.ft/    Mm3/       Inflow to the RCHRES if no CATEGORY
                       ivld      ivld       block is present (Mm3 = 10**6 m3)
CIVOL    CAT   1    -  ac.ft/    Mm3/       Inflow of water belonging to each
                       ivld      ivld       category if CATEGORY block is present
ICON    NCONS  1    -  qty/ivld  qty/ivld   Inflow of conservative constituents
TGRND     1    1    -  DegF      DegC       Temperature of ground beneath
                                            stream bed
PHVAL     1    1    -                       pH (used in Section GQUAL)
ROC       1    1    -  moles/l   moles/l    Free radical oxygen concentration
                                            (used in Section GQUAL)
BIO     NGQUAL 1    -  mg(bio)/l mg(bio)/l  Biomass active in biodegradation
                                            (used in Section GQUAL)
BINV      1    1    - mg(bio)/m2 mg(bio)/m2 Biomass of benthic macroinvertebrates
                                            actively grazing on benthic algae
                                            (used in Section PLANK)
-------------------------------------------------------------------------------
Note:   CAT = one of the two-character ID tags from the CATEGORY block


Group HYDR

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section HYDR:

VOL       1    1    *  ac.ft     Mm3        Volume of water in the RCHRES
CVOL     CAT   1    *  ac.ft     Mm3        Volume of water of each category
  AUX1FG must be 1 for next 5 members to be computed:
DEP       1    1    *  ft        m          Depth at specified location
STAGE     1    1    *  ft        m          Stage (DEP+STCOR)
AVDEP     1    1    *  ft        m          Average depth (volume/surface area)
TWID      1    1    *  ft        m          Mean topwidth (surface area/length)
HRAD      1    1    *  ft        m          Hydraulic radius
SAREA     1    1    *  ac        ha         Surface area
  AUX2FG must be 1 for next 2 members to be computed:
AVVEL     1    1    *  ft/s      m/s        Average velocity (RO/VOL)
AVSECT    1    1    *  ft2       m2         Average cross-sectional area of
                                            RCHRES (VOL/length)
  AUX3FG must be 1 for next 2 members to be computed:
USTAR     1    1    *  ft/s      m/s        Shear velocity
TAU       1    1    *  lb/ft2    kg/m2      Bed shear stress
RO        1    1    *  ft3/s     m3/s       Total rate of outflow from RCHRES
CRO      CAT   1    *  ft3/s     m3/s       Rates of outflow of each category
O       NEXITS 1    *  ft3/s     m3/s       Rates of outflow through individual
                                            exits (available only if NEXITS > 1)
CO      NEXITS CAT  *  ft3/s     m3/s       Rates of outflow through individual
                                            exits of each category (available only
                                            if NEXITS > 1)
CDFVOL  NEXITS CAT  *  ac.ft     Mm3        Current cumulative deficit of each
                                            category demand by exit
IVOL      1    1    -  ac.ft/    Mm3/       Sum of inflows to the RCHRES
                       ivld      ivld
CIVOL    CAT   1    -  ac.ft/    Mm3/       Sum of inflows of water belonging
                       ivld      ivld       to each category
PRSUPY    1    1    -  ac.ft/    Mm3/       Volume of water contributed by
                       ivld      ivld       precipitation on surface
VOLEV     1    1    -  ac.ft/    Mm3/       Volume of water lost by evaporation
                       ivld      ivld
ROVOL     1    1    -  ac.ft/    Mm3/       Total volume of outflow from RCHRES
                       ivld      ivld
CROVOL   CAT   1    -  ac.ft/    Mm3/       Total volume of outflow from RCHRES
                       ivld      ivld       of each category
OVOL    NEXITS 1    -  ac.ft/    Mm3/       Volume of outflow through individual
                       ivld      ivld       exits (available only if NEXITS > 1)
COVOL   NEXITS CAT  -  ac.ft/    Mm3/       Volume of outflow through individual
                       ivld      ivld       exits of each category (available only
                                            if NEXITS > 1)
RIRDEM    1    1    -  ac.ft/    Mm3/       Irrigation withdrawal demanded by all
                       ivld      ivld       PERLNDs from the RCHRES
RIRSHT    1    1    -  ac.ft/    Mm3/       Shortage in irrigation withdrawal,
                       ivld      ivld       i.e. total demand RIRDEM minus actual
                                            withdrawal OVOL(IREXIT)

Input time series required to compute the above:

Group EXTNL
  IVOL (also in group INFLOW)               optional - not used if CATEGORY
                                            block is present
  CIVOL (also in group INFLOW)              optional - used only if CATEGORY
                                            block is present
  PREC                                      optional
  POTEV                                     optional
  COLIND                                    required only if ODFVFG is negative
                                            for one or more outflow demands
  OUTDGT                                    required only if ODGTFG is >0 for
                                            one or more outflow demands
  COTDGT                                    required only if ODGTFG is >0 for
                                            one or more outflow demands
-------------------------------------------------------------------------------
Notes:  1. Mm3 = 10**6 m3
        2. Exit-specific time series are computed only if NEXITS > 1
        3. CAT = one of the two-character tags from the CATEGORY block

If there are any active categories, then the total inflow to a reach is the sum of all category inflows.  These inflows are input as time series CIVOL, and IVOL is calculated (by the program) as their sum instead of being input.


Group ADCALC

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section ADCALC:

None of the computed time series can be output; they are passed internally to any active "quality" sections of the RCHRES module

Input time series required to compute the above:

Group HYDR                                  only required if section HYDR
  VOL                                       is inactive
  O
-------------------------------------------------------------------------------


Group CONS

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series computed by module section CONS:

CON    NCONS   1    *  concid    concid     Concentration of conservative
                                            constituents
ICON   NCONS   1    -  qty/ivld  qty/ivld   Sum of inflows of conservative
                                            constituents
COADDR NCONS   1    -  qty/ivld  qty/ivld   Dry atmospheric deposition of
                                            conservative
COADWT NCONS   1    -  qty/ivld  qty/ivld   Wet atmospheric deposition of
                                            conservative
COADEP NCONS   1    -  qty/ivld  qty/ivld   Total atmospheric deposition of
                                            conservative
ROCON  NCONS   1    -  qty/ivld  qty/ivld   Total outflow of conservatives
OCON  NEXITS NCONS  -  qty/ivld  qty/ivld   Outflow of conservatives through
                                            individual exits (available only if
                                            NEXITS > 1)

Input time series required to compute the above:

Group EXTNL
  COADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  COADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated
  ICON (also in group INFLOW)               optional

Group HYDR                                  only required if section HYDR
  SAREA                                     is inactive and atmospheric
                                            deposition is being simulated
-------------------------------------------------------------------------------


Group HTRCH

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section HTRCH:

TW        1    1    *  DegF      DegC       Simulated water temperature
AIRTMP    1    1    *  DegF      DegC       Air temperature, adjusted for elev.
                                            difference between gage and RCHRES
IHEAT     1    1    -  BTU/ivld  kcal/ivld  Sum of inflows of heat (relative
                                            to freezing)
HTEXCH    1    1    -  BTU/ivld  kcal/ivld  Net heat exchanged with atmosphere
                                            and stream bed
ROHEAT    1    1    -     "          "      Total outflow of thermal energy
                                            through active exits
OHEAT  NEXITS  1    -     "          "      Outflow of thermal energy through
                                            individual exits (available only if
                                            NEXITS > 1)
HTCF4     7    1    - BTU/ft2/   kcal/m2/   Components of heat exchange per
                        ivld       ivld     unit area of surface: 1) total,
                                            2) solar radiation, 3) longwave
                                            radiation, 4) evaporation, 5)
                                            conduction, 6) percipitation,
                                            7) bed exchange
                                            (positive = gain of heat).
SHDFAC    1    1    *  none      none       Effective shading factor - computed
                                            by SHADE function

Input time series required to compute the above:

Group INFLOW                                optional
  IHEAT                                     optional

Group EXTNL                                 always required
  SOLRAD
  DSOLAR                                    required if SHADE function is active
  PREC                                      optional
  CLOUD
  DEWTMP
  GATMP
  WIND

Group HYDR                                  only required if section HYDR
  AVDEP                                     is inactive
--------------------------------------------------------------------------------


Group SEDTRN

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------

Time series computed by module section SEDTRN

SSED      4    1    *  mg/l      mg/l       Suspended sediment concentrations
RSED     10    1    *  ton       tonne      Sediment storages
TSED      3    1    *  ton       tonne      Total sediment storages by fraction
BEDDEP    1    1    *  ft        m          Bed depth (thickness)
ISED      4    1    -  ton/ivld  tonne/ivld Sum of inflows of sediment
DEPSCR    4    1    -  ton/ivld  tonne/ivld Deposition (positive) or
                                            scour (negative)
ROSED     4    1    -     "          "      Total outflows of sediment
                                            from the RCHRES
OSED    NEXITS 4    -     "          "      Outflows of sediment through individual
                                            exits (available only if NEXITS > 1)

Note: In the above, the subscript with maximum value =4 selects the sediment fraction - 1 for sand, 2 for silt, 3 for clay, and 4 for the sum of sand silt and clay. The subscript with maximum value =10 selects the following:  1 suspended sand, 2 suspended silt, 3 suspended clay, 4 bed sand, 5 bed silt 6 bed clay, 7 total sand, 8 total silt, 9 total clay, and 10 total of 7,8,9.

Input time series required to compute the above:

Group INFLOW
  ISED(*)                                   inflows of sand, silt, and clay
                                            to the RCHRES; optional

Group HYDR                                  only required if Section HYDR is
  TAU                                       inactive
  AVDEP
  AVVEL
  RO                                  ---
  HRAD                                  |   only required if SANDFG = 1 or 2
  TWID                                ---

Group HTRCH                                 only required if Section HTRCH is
  TW                                        inactive and SANDFG = 1 or 2
--------------------------------------------------------------------------------


Group GQUAL

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section GQUAL:

DQAL   NGQUAL  1    *  concu/l   concu/l    Dissolved concentration of qual.
SQAL      6  NGQUAL *  concu/mg  concu/mg   Concentration of qual on sediment.
                                            First subscript selects:
                                            1 susp sand  2 susp silt 3 susp clay
                                            4 bed sand   5 bed silt  6 bed clay
RDQAL  NGQUAL  1    *  qty       qty        Total storage of qual in dissolved
                                            form
RSQAL    12  NGQUAL *  qty       qty        Storage of sediment-associated qual.
                                            First subscript selects:
                                            1 susp sand  2 susp silt 3 susp clay
                                            4 susp total 5 bed sand  6 bed silt
                                            7 bed clay   8 bed total
                                            9 total on sand  10 total on silt
                                            11 total on clay 12 grand total
RRQAL  NGQUAL  1    *  qty       qty        Total storage of qual in the RCHRES

IDQAL  NGQUAL  1    -  qty/ivld  qty/ivld   Sum of inflows of dissolved qual
ISQAL    4   NGQUAL -  qty/ivld  qty/ivld   Sum of inflows of qual associated
                                            with: 1 Sand, 2 Silt, 3 Clay, 4 Total
TIQAL  NGQUAL  1    -  qty/ivld  qty/ivld   Total inflow of qual
PDQAL  NGQUAL  1    -  qty/ivld  qty/ivld   Input to this qual in this RCHRES,
                                            from decay of parent quals
GQADDR NGQUAL  1    -  qty/ivld  qty/ivld   Dry atmospheric deposition of qual
GQADWT NGQUAL  1    -  qty/ivld  qty/ivld   Wet atmospheric deposition of qual
GQADEP NGQUAL  1    -  qty/ivld  qty/ivld   Total atmospheric deposition of qual
DDQAL    7   NGQUAL -  qty/ivld  qty/ivld   Decay of dissolved qual. First
                                            subscript selects decay path:
                                            1 hydrolysis  2 oxidation
                                            3 photolysis  4 volatilization
                                            5 biodegradation  6 general (other)
                                            7 total of 1-6 .
RODQAL NGQUAL  1    -  qty/ivld  qty/ivld   Total outflow of dissolved qual
                                            from the RCHRES
DSQAL    4  NGQUAL  -  qty/ivld  qty/ivld   Deposition/scour of qual. First
                                            subscript selects carrier:
                                            1 sand  2 silt  3 clay  4 total
ROSQAL   4  NGQUAL  -  qty/ivld  qty/ivld   Total outflow of sediment-associated
                                            qual from RCHRES.
                                            First subscript selects carrier:
                                            1 sand  2 silt  3 clay  4 total
TROQAL NGQUAL  1    -  qty/ivld  qty/ivld   Total outflow of qual
SQDEC    7  NGQUAL     qty/ivld  qty/ivld   Decay of sediment-associated qual
                                            on: 1 susp sand  2 susp silt
                                            3 susp clay  4 bed sand
                                            5 bed silt  6 bed clay  7 total

ADQAL    7  NGQUAL  -  qty/ivld  qty/ivld   Adsorption/desorption between
                                            dissolved state and: 1 susp sand
                                            2 susp silt  3 susp clay  4 bed sand
                                            5 bed silt  6 bed clay  7 total
ODQAL  NEXITS NGQUAL-  qty/ivld  qty/ivld   Outflow of dissolved qual through
                                            individual exits. (available only if
                                            NEXITS > 1)
OSQAL  NEXITS  NGQ3 -  qty/ivld  qty/ivld   Outflows of sediment-associated
                                            qual through individual exits.
                                            Second subscript selects:
                                            1 sand, first qual
                                            2 silt, first qual
                                            3 clay, first qual (NGQ3=
                                            4 sand, second qual NGQUAL*3) etc.
                                            (available only if NEXITS > 1)
TOSQAL NEXITS NGQUAL-  qty/ivld  qty/ivld   Total outflows (sand+silt+clay) of
                                            sediment-associated qual through
                                            individual exits

Input time series required to compute the above:

Group INFLOW
  IDQAL                                     optional
  ISQAL(*)                                  optional

Group EXTNL
  GQADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  GQADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated

  PHVAL                                     if there is hydrolysis, PHFLAG=1,
                                            and Section PHCARB is inactive
  ROC                                       if there is free radical oxidation,
                                            and ROXFG=1
  BIO(I)                                    if qual number I undergoes
                                            biodegradation and GQPM2(7,I)=1
  CLOUD                                     if there is photolysis, and CLDFG=1
  WIND                                      if there is volatilization and water
                                            body is a lake (LKFG=1)

Group HYDR                                  only required if Section HYDR
                                            is inactive
  AVDEP                                     See below
  AVVEL                                     if volatilization is on and water
                                            body is a flowing stream (LKFG=0)
  SAREA                                     only required if atmospheric
                                            deposition is being simulated

Group HTRCH                                 only required if Section HTRCH
  TW                                        inactive and TEMPFG=1

Group PLANK                                 only required if Section PLANK is
                                            inactive
  PHYTO                                     if there is photolysis and PHYTFG=1

Group SEDTRN                                only required if Section SEDTRN is
                                            inactive
  SSED(4)                                   if there is photolysis and SDFG=1
--------------------------------------------------------------------------------
Note: AVDEP is required if Section HYDR is inactive and:
          1. There is photolysis
      or  2. There is volatilization and
              a. The water body is a lake
           or b. The water body is a free-flowing stream and REAMFG>1


RQUAL Groups

 OXRX, NUTRX, PLANK, PHCARB


Group OXRX

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section OXRX:

DOX       1    1    *  mg/l      mg/l       DO concentration
BOD       1    1    *  mg/l      mg/l       BOD concentration
SATDO     1    1    *  mg/l      mg/l       Saturation DO concentration
OXIF      2    1    -  lb/ivld   kg/ivld    Sum of inflows of: 1-DO,  2-BOD
OXCF1     2    1    -  lb/ivld   kg/ivld    Total outflows of DO (OXCF1(1,1))
                                            and BOD (OXCF1(2,1)) from the RCHRES
OXCF2  NEXITS  2    -  lb/ivld   kg/ivld    Outflows of DO and BOD through
                                            individual exits (available only if
                                            NEXITS > 1)
In the above, the first subscript selects the exit.  The second selects the
constituent: 1 means DO, 2 means BOD.

OXCF3     8    1    -  lb/ivld   kg/ivld    Dissolved oxygen process fluxes:
                                            1- reaeration (+/-)
                                            2- BOD decay (-)
                                            3- benthal demand (-)
                                            4- nitrification (-)
                                            5- phytoplankton (+/-)
                                            6- zooplankton (-)
                                            7- benthic algae (+/-)
                                            8- total (+/-)
OXCF4     8    1    -  lb/ivld   kg/ivld    BOD process fluxes:
                                            1- BOD decay (-)
                                            2- benthal release (+)
                                            3- sinking (-)
                                            4- (inactive flux)
                                            5- phytoplankton (+)
                                            6- zooplankton (+)
                                            7- benthic algae (+)
                                            8- total (+/-)
Process fluxes are reported as positive if they increase the constituent, and negative if they decrease it.

Input time series required to compute the above:

Group INFLOW
  IDOX                                      optional
  IBOD                                      optional

Group EXTNL
  WIND                                      only needed if LKFG=1 (lake)

Group HYDR                                  only required if section HYDR
  AVDEP                                     is inactive
  AVDEP

Group HTRCH                                 only required if section HTRCH
  TW                                        is inactive
--------------------------------------------------------------------------------


Group NUTRX

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section NUTRX:

DNUST     6    1    *  mg/l      mg/l       Dissolved nutrient concentrations;
                                            Subscript 1: 1=NO3, 2=TAM, 3=NO2,
                                            4=PO4, 5=NH4+, 6=NH3.
SNH4      3    1    *  mg/kg     mg/kg      Particulate NH4-N concentrations;
                                            Subscript 1: 1=sand, 2=silt, 3=clay
SPO4      3    1    *  mg/kg     mg/kg      Particulate PO4-P concentrations;
                                            Subscript 1: 1=sand, 2=silt, 3=clay
DNUST2    6    1    *  lbs       kg         Dissolved nutrient storages; same
                                            subscript values as DNUST
RSNH4    12    1    *  lbs       kg         Particulate NH4-N storages; 1-3=
                                            suspended sand, silt, clay, 4=total
                                            suspended, 5-7=bed sand, silt, clay,
                                            8=total bed, 9-11=total sand, total
                                            silt, total clay, 12=grand total
RSPO4    12    1    *  lbs       kg         Particulate PO4-P storages; same
                                            subscript values as RSNH4
NUST      4    1    *  lbs       kg         Total nutrient storages in RCHRES,
                                            (dissolved + particulate);
                                            Subscript 1: 1=NO3, 2=TAM, 3=NO2,
                                            4=PO4
NUIF1     4    1    -  lb/ivld   kg/ivld    Sum of dissolved inflows of nutrient
                                            Same subscript values as NUST
NUIF2     4    2    -  lb/ivld   kg/ivld    Sum of inflows of 1=particulate NH4,
                                            2=particulate PO4 on 1=sand, 2=silt,
                                            3=clay, 4=total
TNUIF     4    1    -  lb/ivld   kg/ivld    Sum of total inflows of nutrient:
                                            Same subscript values as NUST
NUADDR    3    1    -  lb/ivld   kg/ivld    Dry atmospheric deposition of
                                            nutrient; Subscript 1: 1=NO3, 2=TAM,
                                            3=PO4
NUADWT    3    1    -  lb/ivld   kg/ivld    Wet atmospheric deposition of
                                            nutrient; Subscript same as NUADDR
NUADEP    3    1    -  lb/ivld   kg/ivld    Total atmospheric deposition of
                                            nutrient; Subscript same as NUADDR
NUCF1     4    1    -  lb/ivld   kg/ivld    Total outflow of dissolved nutrient;
                                            Same subscript values as NUST
NUCF2     4    2    -  lb/ivld   kg/ivld    Total outflow of particulate NH4 and
                                            PO4; Subscript 1: 1=(on) sand,
                                            2=silt, 3=clay, 4=total;
                                            Subscript 2: 1 = NH4, 2 = PO4
TNUCF1    4    1    -  lb/ivld   kg/ivld    Total outflow of nutrient;
                                            Same subscript values as NUST
NUCF3     4    2    -  lb/ivld   kg/ivld    Scour/deposition fluxes of
                                            particulate NH4 and PO4;
                                            + = scour, - = deposition;
                                            same subscript values as NUCF2
NUCF4     7    1    -  lb/ivld   kg/ivld    Process fluxes for NO3;
                                            1- nitrification (+)
                                            2- denitrification (-)
                                            3- BOD decay (+)
                                            4- phytoplankton growth/respir. (+/-)
                                            5- zooplankton death/respir. (+)
                                            6- benthic algae growth/respir. (+/-)
                                            7- total (+/-)
NUCF5     8    1    -  lb/ivld   kg/ivld    Process fluxes for TAM;
                                            1- nitrification (-)
                                            2- volatilization (-)
                                            3- benthal release (+)
                                            4- BOD decay(+)
                                            5- phytoplankton growth/respir. (+/-)
                                            6- zooplankton death/respir. (+)
                                            7- benthic algae growth/respir. (+/-)
                                            8- total (+/-)
NUCF6     1    1    -  lb/ivld   kg/ivld    Process flux for NO2;
                                               Nitrification (+/-)
NUCF7     6    1    -  lb/ivld   kg/ivld    Process fluxes for PO4;
                                            1- benthal release (+)
                                            2- BOD decay (+)
                                            3- phytoplankton growth/respir. (+/-)
                                            4- zooplankton death/respir. (+)
                                            5- benthic algae growth/respir. (+/-)
                                            6- total (+/-)
Process fluxes are reported as positive if they increase the constituent, and
negative if they decrease it.

NUCF8     4    2    -  lb/ivld   kg/ivld    Adsorption (+) or desorption (-) of
                                            NH4 and PO4; Subscript 1: 1=sand,
                                            2=silt, 3=clay;
                                            Subscript 2: 1=NH4, 2=PO4
NUCF9  NEXITS  4    -  lb/ivld   kg/ivld    Outflow of dissolved nutrients
                                            through individual exits;
                                            Subscript 1 selects exit,
                                            Subscript 2: same as NUCF2
                                            (available only if NEXITS > 1)
OSNH4  NEXITS  4    -  lb/ivld   kg/ivld    Outflows of particulate NH4;
                                            Subscript 1 selects exit,
                                            Subscript 2: 1=sand, 2=silt, 3=clay,
                                            4=total
                                            (available only if NEXITS > 1)
OSPO4  NEXITS  4    -  lb/ivld   kg/ivld    Outflows of particulate PO4-P;
                                            Subscript values same as OSNH4
                                            (available only if NEXITS > 1)
TNUCF2 NEXITS  4    -  lb/ivld   kg/ivld    Total outflows of nutrients
                                            through individual exits;
                                            Subscript 1 selects exit,
                                            Subscript 2: same as NUCF2
                                            (available only if NEXITS > 1)

Input time series required to compute the above:

Group INFLOW
  INO3, ITAM, INO2,                         all optional
  IPO4, ISNH4,ISPO4

Group EXTNL
  NUADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  NUADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated

Group HYDR                                  only required if section HYDR
  SAREA                                     is inactive and atmospheric
                                            deposition is being simulated

Group HTRCH                                 only required if section HTRCH
  TW                                        is inactive

Group SEDTRN                                only required if Section SEDTRN is
  RSED, SSED, OSED,                         inactive and if particulate NH4 or
  ROSED, DEPSCR                             PO4 is simulated

NOTE: Ammonia, nitrite and ortho-phosphate may, or may not, be simulated, depending on the values the user assigns to TAMFG, NO2FG and PO4FG. If a constituent is not simulated, those time series associated with it in this list should be ignored.
--------------------------------------------------------------------------------


Group PLANK

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section PLANK:

PHYTO     1    1    *  mg/l      mg/l       Phytoplankton concentration
ZOO       1    1    * organism/l organism/l Zooplankton population
BENAL     4    1    *  mg/m2     mg/m2      Benthic algae biomass (species 1-4)
TBENAL    2    1    *  mg/m2     mg/m2      Total benthic algae (1-biomass mg/m2,
                       ug/m2     ug/m2      2-chlorophyll a ug/m2)
PHYCLA    1    1    *  ug/l      ug/l       Phytoplankton as chlorophyll a
BALCLA    4    1    *  ug/m2     ug/m2      Benthic algae as chlorophyll a

PKST3     7    1    *  mg/l      mg/l       Concentrations of organics:
                                            1- dead refractory organic N  (ORN)
                                            2- dead refractory organic P  (ORP)
                                            3- dead refractory organic C  (ORC)
                                            4- total organic N  (TORN)
                                            5- total organic P  (TORP)
                                            6- total organic C  (TORC)
                                            7- potential BOD  (POTBOD)
PKST4     2    1    *  mg/l      mg/l       Concentrations of 1=Total N and
                                            2=Total P
PKIF      5    1    -  lb/ivld   kg/ivld    Sum of inflows of: 1=Phyto, 2=Zoo,
                                            3=ORN, 4=ORP, 5=ORC
TPKIF     5    1    -  lb/ivld   kg/ivld    Sum of inflows of: 1=TORN, 2=TORP,
                                            3=TORC, 4=Total N, 5=Total P
PKCF1     5    1    -  lb/ivld   kg/ivld    Total outflows from the RCHRES of:
                                            1=Phyto, 2=Zoo, 3=ORN, 4=ORP, 5=ORC
TPKCF1    5    1    -  lb/ivld   kg/ivld    Total outflows from the RCHRES of:
                                            1=TORN, 2=TORP, 3=TORC, 4=Total N,
                                            5=Total P
PKCF2  NEXITS  5    -  lb/ivld   kg/ivld    Outflows through individual exits
                                            of: 1=Phyto, 2=Zoo, 3=ORN, 4=ORP,
                                            5=ORC
                                            (available only if NEXITS > 1)
TPKCF2 NEXITS  5    -  lb/ivld   kg/ivld    Outflows through individual exits
                                            of: 1=TORN, 2=TORP, 3=TORC,
                                            4=Total N, 5=Total P
                                            (available only if NEXITS > 1)

PLADDR    3    1    -  lb/ivld   kg/ivld    Dry atmospheric deposition of organics
PLADWT    3    1    -  lb/ivld   kg/ivld    Wet atmospheric deposition of organics
PLADEP    3    1    -  lb/ivld   kg/ivld    Total atmospheric deposition of
                                            organics
In the above, the first subscript selects the constituent:
1 for ORN, 2 for ORP, 3 for ORC

PKCF5     5    1    -  lb/ivld   kg/ivld    Process fluxes for phytoplankton
                                            1- sinking (-)
                                            2- zoolankton predation (-)
                                            3- death (-)
                                            4- growth/respiration (+/-)
                                            5- total (+/-)
PKCF6     3    1    -  lb/ivld   kg/ivld    Process fluxes for zooplankton
                                            1- growth/respiration (+/-)
                                            2- death (-)
                                            3- total (+/-)
PKCF7     3    4    -  mg/m2/    mg/m2/     Process fluxes for benthic algae
                         ivld      ivld     1- growth/respiration (+/-)
                                            2- death (-)
                                            3- total (+/-)
                                            Second subscript selects species 1-4
TPKCF7    3    1    -  mg/m2/    mg/m2/     Total process fluxes for all species
                         ivld      ivld     of benthic algae
                                            1- growth/respiration (+/-)
                                            2- death (-)
                                            3- total (+/-)
PKCF8     5    1    -  lb/ivld   kg/ivld    Process fluxes for dead refractory
                                            organic N
                                            1- sinking (-)
                                            2- phytoplankton death (+)
                                            3- zooplankton death/excretion (+)
                                            4- benthic algae death (+)
                                            5- total (+/-)
PKCF9     5    1    -  lb/ivld   kg/ivld    Process fluxes for dead refractory
                                            organic P
                                            1- sinking (-)
                                            2- phytoplankton death (+)
                                            3- zooplankton death/excretion (+)
                                            4- benthic algae death (+)
                                            5- total (+/-)
PKCF10    5    1    -  lb/ivld   kg/ivld    Process fluxes for dead refractory
                                            organic C
                                            1- sinking (-)
                                            2- phytoplankton death (+)
                                            3- zooplankton death/excretion (+)
                                            4- benthic algae death (+)
                                            5- total (+/-)
Process fluxes are reported as positive if they increase the constituent, and negative if they decrease it.

Input time series required to compute the above:

Group INFLOW
  IPHYTO, IZOO, IORN,                       all are optional
  IORP, IORC

Group EXTNL
  SOLRAD                                    required
  PLADFX                                    only required if dry atmospheric
                                        _   deposition is being simulated
  PLADCN                                 |- only required if wet atmospheric
  PREC                                  _|  deposition is being simulated

Group HYDR                                  only required if section HYDR
  SAREA                                     is inactive and atmospheric
                                            deposition is being simulated

Group HTRCH                                 only required if section HTRCH
  TW                                        is inactive

Group SEDTRN                                only required if section SEDTRN
  SSED(4)                                   is inactive and SDLTFG=1

NOTE:  Phytoplankton, zooplankton and benthic algae may, or may not, be simulated, depending on the values the user assigns to PHYFG, ZOOFG and BALFG. If a constituent is not simulated, those time series associated with it in this list should be ignored.
--------------------------------------------------------------------------------


Group PHCARB

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
Time series computed by module section PHCARB:

PHST      3    1    *                       Concentrations of:
                         mg/l    mg/l       1- Total inorganic carbon (TIC)
                         mg/l    mg/l       2- Carbon dioxide (CO2)
                          pH      pH        3- pH
SATCO2    1    1    *    mg/l    mg/l       Saturation CO2 concentration
PHIF      2    1    -  lb/ivld  kg/ivld     Sum of inflows of carbon
PHCF1     2    1    -  lb/ivld  kg/ivld     Total outflows of carbon
PHCF2  NEXITS  2    -  lb/ivld  kg/ivld     Outflows of carbon through individual
                                            exits (available only if NEXITS > 1)
The above subscripts with limit 2 mean: 1- TIC, 2- CO2

PHCF3     7    1    -  lb/ivld  kg/ivld     Process fluxes for CO2
                                            1- BOD decay (+)
                                            2- phytoplankton growth/respir. (+/-)
                                            3- zooplankton respiration (+)
                                            4- benthic algae growth/respir. (+/-)
                                            5- benthal release (+)
                                            6- CO2 invasion (+/-)
                                            7- total (+/-)

Input time series required to compute the above:

Group INFLOW
  ITIC                                      optional
  ICO2                                      optional

Group CONS                                  only required if section CONS is
                                            inactive
  CON(ALKCON)                               concentration units must be mg/l as
                                            CaCO3

Group HTRCH                                 only required if section HTRCH
  TW                                        is inactive
--------------------------------------------------------------------------------


Groups INFLOW, ROFLOW, and OFLOW

The members in these groups represent the total inflow, total outflow and outflow through individual RCHRES exits of every simulated constituent. These groups were included in the catalog to make it easier for users to specify the linkages representing time series passed from one RCHRES to another. For example, assume the RCHRES's in a run have sections HYDR, HTRCH and OXRX active, and the NETWORK Block contains:

********************************************************************************
NETWORK
<-Volume-> <-Grp> <-Member-><--Mult-->Tran <-Target vols> <-Grp> <-Member->  ***
<Name>   #        <Name> # #<-factor->strg <Name>   #   #        <Name> # #  ***

RCHRES   1 ROFLOW                          RCHRES   2     INFLOW
RCHRES   2 OFLOW         2                 RCHRES   3     INFLOW
********************************************************************************

These entries mean that the entire outflow from RCHRES 1 goes to RCHRES 2, and that the outflow through exit 2 of RCHRES 2 goes to RCHRES 3.  Because the "member name" fields have been left blank, HSPF will automatically expand the above entries, generating an entry for each member which is active in this run. In this case, there will be 4 generated entries because 4 constituents are being simulated (water, heat, DO and BOD). The second set of generated entries would be:

********************************************************************************
NETWORK
<-Volume-> <-Grp> <-Member-><--Mult-->Tran <-Target vols> <-Grp> <-Member->  ***
<Name>   #        <Name> # #<-factor->strg <Name>   #   #        <Name> # #  ***

RCHRES   2 OFLOW  OVOL   2 1     1.0       RCHRES   3     INFLOW IVOL   1 1
RCHRES   2 OFLOW  OHEAT  2 1     1.0       RCHRES   3     INFLOW IHEAT  1 1
RCHRES   2 OFLOW  OXCF2  2 1     1.0       RCHRES   3     INFLOW OXIF   1 1
RCHRES   2 OFLOW  OXCF2  2 2     1.0       RCHRES   3     INFLOW OXIF   2 1
********************************************************************************

Thus, the user can specify the linkage between two RCHRES's with a single entry, instead of having to supply an entry for every constituent passed between them.


Group INFLOW

The members in this group represent the inflows to a RCHRES. Note that each member listed below is "available" for use only if the module section to which it belongs is active.

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)       Module       Constituent
Name      values    n                     section
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
IVOL      1    1    -  ac.ft/    Mm3/     HYDR         Water
                       ivld      ivld                  (Note: Mm3=10**6 m3)

CIVOL    CAT   1    -  ac.ft/    Mm3/     HYDR         Water, by Category
                       ivld      ivld                  (Note: CAT=Category tag)

ICON    NCONS  1    -  qty/      qty/     CONS         Conservatives
                       ivld      ivld

IHEAT     1    1    -  BTU/      kcal/    HTRCH        Heat (relative to
                       ivld      ivld                  freezing)

ISED      3    1    -  ton/      tonne/   SEDTRN       Sand, silt, and clay
                       ivld      ivld

IDQAL   NGQUAL 1    -  qty/      qty/     GQUAL        Dissolved general
                       ivld      ivld                  quality constituents

ISQAL     3  NGQUAL -  qty/      qty/     GQUAL        General quality const-
                       ivld      ivld                  ituent associated with:
                                                       1 Sand, 2 Silt, 3 Clay

OXIF      2    1    -  lb/ivld   kg/ivld  OXRX         1=DO,  2=BOD

NUIF1     4    1    -  lb/       kg/      NUTRX        1=NO3, 2=TAM, 3=NO2,
                       ivld      ivld                  4=PO4

NUIF2     3    2    -  lb/       kg/      NUTRX        1=particulate NH4,
                       ivld      ivld                  2=particulate PO4 on
                                                       1=sand, 2=silt, 3=clay

PKIF      5    1    -  lb/       kg/      PLANK        1=Phyto, 2=Zoo, 3=ORN,
                       ivld      ivld                  4=ORP, 5=ORC

PHIF      2    1    -  lb/ivld   kg/ivld  PHCARB       1=TIC, 2=CO2
--------------------------------------------------------------------------------
Note: ISED, ISQAL, and NUIF2 have smaller limits than in groups SEDTRN, GQUAL, and NUTRX, respectively.  The extra slots are totals of the constituents in question (e.g., sand + silt + clay). They are not needed in group INFLOW, because the program sums the inflows automatically.


Group ROFLOW

The members in this group represent the total outflow from a RCHRES. Note that a member is "available" for use only if the module section to which it belongs is active.

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)       Module       Constituent
          values    n                     section
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------

ROVOL     1    1                                       Water

CROVOL   CAT   1                                       Water, by category
                                                       (CAT=Category ID tag)

ROCON   NCONS  1                                       Conservatives

ROHEAT    1    1                                       Heat

ROSED     3    1                                       Sand, silt, and clay
                          See data for
RODQAL  NGQUAL 1          corresponding                Dissolved general qual.
                          member in group
ROSQAL    3  NGQUAL          INFLOW                    Sediment-associated qual.

OXCF1     2    1                                       DO, BOD

NUCF1     4    1                                       NO3, TAM, NO2, PO4

NUCF2     3    2                                       Particulate NH4 and PO4
                                                       (sand, silt, clay)

PKCF1     5    1                                       Phyto, Zoo, ORN, ORP, ORC

PHCF1     2    1                                       TIC, CO2

--------------------------------------------------------------------------------
Note: ROSED, ROSQAL, and NUCF2 have smaller limits than in groups SEDTRN, GQUAL, and NUTRX, respectively.  The extra slots are totals of the constituents in question (e.g., sand + silt + clay). They are not needed in group ROFLOW, because the program sums the outflows automatically.


Group OFLOW

The members in this group represent the outflows through the individual exits of a RCHRES. Note that a member is available for use only if the module section to which it belongs is active. Also, these time series are available for use only if the number of exit gates (NEXITS) is greater than 1.

For each member, the RCHRES exit is selected by the value given to the first subscript.

--------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)       Module       Constituent
Name      values    n                     section
          1    2    d  Engl      Metr
--------------------------------------------------------------------------------
OVOL   NEXITS  1                                       Water

CROVOL NEXITS CAT                                      Water, by category
                                                       (CAT=Category ID tag)

OCON   NEXITS NCONS                                    Conservatives

OHEAT  NEXITS  1                                       Heat

OSED   NEXITS  3                                       Sand, silt, and clay

ODQAL  NEXITS NGQUAL      See data for                 Dissolved general qual.
                          corresponding
OSQAL  NEXITS NGQ3        member in group              Sediment-associated qual.
                             INFLOW
OXCF2  NEXITS  2                                       DO, BOD

NUCF9  NEXITS  4                                       NO3, NH3, NO2, PO4

OSNH4  NEXITS  3                                       Particulate NH4
                                                       (sand, silt, clay)

OSPO4  NEXITS  3                                       Particulate PO4
                                                       (sand, silt, clay)

PKCF2  NEXITS  5                                       Phyto, Zoo, ORN, ORP, ORC

PHCF2  NEXITS  2                                       TIC, CO2
--------------------------------------------------------------------------------
Note: OSED, OSNH4, and OSPO4 have smaller limits than in groups SEDTRN and NUTRX, respectively.  The extra slots are totals of the constituents in question (e.g., sand + silt + clay). They are not needed in group OFLOW, because the program sums the outflows automatically.


Catalog for COPY module

The members contained within each group are documented in the tables which follow.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module COPY:

POINT    NPT   1    *     anything          Point-valued input time series
MEAN     NMN   1    -     anything          Mean-valued input time series
-------------------------------------------------------------------------------


Group OUTPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series output by module COPY:

POINT    NPT   1    *     anything          Point-valued output time series
MEAN     NMN   1    -     anything          Mean-valued output time series

Input time series required to produce the above:

Group INPUT
  POINT                                     required if NPT> 0
  MEAN                                      required if NMN> 0
-------------------------------------------------------------------------------


Catalog for PLTGEN module

There is only one time series group associated with this module; group INPUT, which contains all point-valued and/or mean-valued members that are to be plotted. This module does not have an output group because all its output goes to the PLTGEN file, which is documented in Functional Description.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module PLTGEN:

POINT    NPT   1    *     anything          Point-valued input time series
MEAN     NMN   1    -     anything          Mean-valued input time series
-------------------------------------------------------------------------------


Catalog for DISPLY module

There is only one time series group (INPUT) with one member (TIMSER) associated with this module since the module displays only one time series at a time. This module does not have an output group because all its output goes to the output text file.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module DISPLY:

TIMSER    1    1    -     anything          A mean-valued input time series
-------------------------------------------------------------------------------


Catalog for DURANL module

There is only one time series group (INPUT) with one member (TIMSER) associated with this module since the module analyzes only one time series at a time. This module does not have an output group because all its output goes to an output text file. The format is documented in DURANL in Functional Description.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module DURANL:

TIMSER    1    1    -     anything          A mean-valued input time series
-------------------------------------------------------------------------------


Catalog for GENER module

This module has both input and output groups, like module COPY.

The members contained within each group are documented in the tables which follow.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module GENER:

ONE       1    1    -     anything          First input time series
TWO       1    1    -     anything          Second input time series
-------------------------------------------------------------------------------


Group OUTPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series output by module GENER:

TIMSER    1    1    -     anything          Output time series (mean-valued)

Input time series required to produce the above:

Group INPUT
  ONE                                       Always required, unless OPCODE=24.
  TWO                                       Only required if generation option
                                            needs two inputs.
-------------------------------------------------------------------------------


Catalog for MUTSIN module

This module has only an output group, since all its input is read from a text file.

The members contained within each group are documented in the tables which follow.


Group OUTPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series output by module MUTSIN

POINT    NPT   1    *     anything          Point-valued output time series
MEAN     NMN   1    -     anything          Mean-valued output time series
--------------------------------------------------------------------------------


Catalog for BMPRAC module

This module has both input and output groups, like module RCHRES.

The members contained within each group are documented in the tables which follow.


Group INFLOW

The members in this group represent the inflows to a BMPRAC.

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
IVOL      1    1    - ac.ft/ivld Mm3/ivld   Water
                                            (Note: Mm3=10**6 m3)

CIVOL    CAT   1    - ac.ft/ivld Mm3/ivld   Water by category

ICON    NCONS  1    - qty/ivld   qty/ivld   Conservatives

IHEAT     1    1    - BTU/ivld   kcal/ivld  Heat (relative to freezing)

ISED      3    1    - ton/ivld   tonne/ivld Sediment (sand, silt, clay)

IDQAL  NGQUAL  1    - qty/ivld   qty/ivld   Dissolved general quality
                                            constituents

ISQAL     3 NGQUAL  - qty/ivld   qty/ivld   General quality constituent
                                            assoc. with 1 Sand, 2 Silt, 3 Clay

IOX       2    1    - lb/ivld    kg/ivld    1 DO, 2 BOD

IDNUT     4    1    - lb/ivld    kg/ivld    1 NO3, 2 TAM, 3 NO2, 4 PO4

ISNUT     3    2    - lb/ivld    kg/ivld    1 particulate NH4, 2 particulate PO4
                                            on 1 Sand, 2 Silt, 3 Clay

IPLK      5    1    - lb/ivld    kg/ivld    1 Phyto, 2 Zoo, 3 ORN, 4 ORP, 5 ORC

IPH       2    1    - lb/ivld    kg/ivld    1 TIC, 2 CO2
------------------------------------------------------------------------------
Note: CAT = one of the two-character ID tags from the CATEGORY block.


Group RECEIV

The members of this group represent total inflows to the module. This group simply echoes the contents of the INFLOW group. These members are available as output for use as input to other modules. This simplifies the UCI by reducing the number of connections required.

The member names, array limits, units, and definitions are all identical to the INFLOW group.


Group ROFLOW

The members of this group represent outflows from a BMPRAC.

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
ROVOL     1    1    - ac.ft/ivld Mm3/ivld   Water
                                            (Note: Mm3=10**6 m3)

CROVOL   CAT   1    - ac.ft/ivld Mm3/ivld   Water by category

ROCON   NCONS  1    - qty/ivld   qty/ivld   Conservatives

ROHEAT    1    1    - BTU/ivld   kcal/ivld  Heat (relative to freezing)

ROSED     3    1    - ton/ivld   tonne/ivld Sediment (sand, silt, clay)

RODQAL NGQUAL  1    - qty/ivld   qty/ivld   Dissolved general quality
                                            constituents

ROSQAL    3 NGQUAL  - qty/ivld   qty/ivld   General quality constituent
                                            assoc. with 1 Sand, 2 Silt, 3 Clay

ROOX      2    1    - lb/ivld    kg/ivld    1 DO, 2 BOD

RODNUT    4    1    - lb/ivld    kg/ivld    1 NO3, 2 TAM, 3 NO2, 4 PO4

ROSNUT    3    2    - lb/ivld    kg/ivld    1 particulate NH4, 2 particulate PO4
                                            on 1 Sand, 2 Silt, 3 Clay

ROPLK     5    1    - lb/ivld    kg/ivld    1 Phyto, 2 Zoo, 3 ORN, 4 ORP, 5 ORC

ROPH      2    1    - lb/ivld    kg/ivld    1 TIC, 2 CO2
-------------------------------------------------------------------------------
Note: CAT = one of the two-character ID tags from the CATEGORY block.


Group REMOVE

The members of this group represent removals by a BMPRAC.

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
RMVOL     1    1    - ac.ft/ivld Mm3/ivld   Water
                                            (Note: Mm3=10**6 m3)

CRMVOL   CAT   1    - ac.ft/ivld Mm3/ivld   Water by category

RMCON   NCONS  1    - qty/ivld   qty/ivld   Conservatives

RMHEAT    1    1    - BTU/ivld   kcal/ivld  Heat (relative to freezing)

RMSED     3    1    - ton/ivld   tonne/ivld Sediment (sand, silt, clay)

RMDQAL NGQUAL  1    - qty/ivld   qty/ivld   Dissolved general quality
                                            constituents

RMSQAL    3 NGQUAL  - qty/ivld   qty/ivld   General quality constituent
                                            assoc. with 1 Sand, 2 Silt, 3 Clay

RMOX      2    1    - lb/ivld    kg/ivld    1 DO, 2 BOD

RMDNUT    4    1    - lb/ivld    kg/ivld    1 NO3, 2 TAM, 3 NO2, 4 PO4

RMSNUT    3    2    - lb/ivld    kg/ivld    1 particulate NH4, 2 particulate PO4
                                            on 1 Sand, 2 Silt, 3 Clay

RMPLK     5    1    - lb/ivld    kg/ivld    1 Phyto, 2 Zoo, 3 ORN, 4 ORP, 5 ORC

RMPH      2    1    - lb/ivld    kg/ivld    1 TIC, 2 CO2
-------------------------------------------------------------------------------
Note: CAT = one of the two-character ID tags from the CATEGORY block.


Catalog for REPORT module

This module has only one time series group (INPUT) with one member (TIMSER). This module does not have an output group because all its output goes to a text file.


Group INPUT

-------------------------------------------------------------------------------
<---- Member ---->  K      Units
        Max subscr  i    (external)         Description/comment
Name      values    n
          1    2    d  Engl      Metr
-------------------------------------------------------------------------------
Time series input to module REPORT:

TIMSER   50   99    -     anything          A mean-valued input time series
-------------------------------------------------------------------------------


FORMATS Block

Details

--------------------------------------------------------------------------------
   Symbol       FORTRAN     Format                Comment
                Name(s)
--------------------------------------------------------------------------------
<ft>            FMTCOD        I4        Identifying number which corresponds to
                                        format number in EXT SOURCES or TARGETS
                                        Blocks.
<obj-fmt>       FORM(19)      19A4      Standard FORTRAN object-time format.
--------------------------------------------------------------------------------
Explanation

This block is only required if a user wishes to override the default format for reading data on a sequential file.


Sequential and PLTGEN/MUTSIN File Formats

Two types of ASCII file formats are available for transfer of time series data into/out of HSPF. "Sequential" files allow transfer into HSPF, and PLTGEN/MUTSIN files allow transfer into and out of HSPF. These file formats are documented below.

Sequential (SEQ) files

Six different format classes are available for different time intervals: five-minute, fifteen-minute, hourly, daily, semimonthly, and monthly. The user can override the default formats listed below by supplying replacements in the FORMATS BLOCK. However, the sequence of information within each record cannot be altered.

Sequential files may use either two- or four-digit years. However, if using the default format, the first two classes listed below accept only two-digit years. If a two-digit year is used, then the century of the start of the data is assumed to match the century of the start of the run, unless the data starts just before a century boundary (90 <= year <= 99) and the run starts just after it (mod(year,100) < 10). The century is tracked appropriately as the year passes from 99 to 00.


Format class HYDFIV - Sequential

This file format is used for the input of 5-minute data. The sequence of information is:

  1. Alpha-numeric station number or identifier (this field is not read)
  2. Year (four-digit year or two-digit year)
  3. Month
  4. Day
  5. Card number 1 is for midnight to 3 am., 2 is for 3 am to 6 am., 3 is for 6 am to 9 am., 4 is for 9 am to noon., 5 is for noon to 3 pm., 6 is for 3 pm to 6 pm., 7 is for 6 pm to 9 pm., 8 is for 9 pm to midnight.
  6. 36 fields for 5-minute data.

The default format is: (1X,3I2,I1,36F2.0) Note that only a two-digit year is used, but a user-specified format (see FORMATS block) may use either two- or four-digit years.


Format class HYDFIF - Sequential

This file format is used for the input of 15-minute data. The sequence of information is:

  1. Alpha-numeric station number or identifier (this field is not read).
  2. Last two digits of calendar year (four-digit year allowed in user-specified format)
  3. Month
  4. Day
  5. Card number (same as for HYDFIV above)
  6. 12 fields for 15-minute data

The default format is: (1X,3I2,I1,12F6.0) Note that only a two-digit year is used, but a user-specified format (see FORMATS block) may use either two- or four-digit years.


Format class HYDHR - Sequential

This file format is used for input of hourly observations. The sequence of information is:

  1. Alpha-numeric station number or identifier. (This field is not read)
  2. Year (four-digit year or two-digit year)
  3. Month
  4. Day
  5. Card no: 1 is for a.m. hours, 2 is for p.m. hours
  6. Twelve fields for hourly data

The default format is: (8X,I4,1X,I2,1X,I2,1X,I1,12F5.0)


Format class HYDDAY - Sequential

This file format is used for input of daily observations. The sequence of information is:

  1. Alpha-numeric station number or identifier. (This field is not read)
  2. Year (four-digit year or two-digit year)
  3. Month
  4. Card no: 1 is for days 1-10, 2 is for days 11-20, 3 is for days 21-
  5. Ten fields, for the daily data (11 fields for card number 3)

The default format is: (5X,I4,I2,I1,11F6.0).


Format class HYDSMN - Sequential

This file format is used for input of semi-monthly observations. The sequence of information is:

  1. Alpha-numeric station number or identifier. (This field is not read)
  2. Year (four-digit year or two-digit year)
  3. Card no: 1 for January through June, 2 for July through December
  4. Twelve semi-monthly fields

The default format is: (5X,I4,I1,12F5.0)

Semi-monthly values are distributed to daily values with a transformation function of SAME.


Format class HYDMON - Sequential

This file format is used for input of monthly observations. The sequence of information is:

  1. Alpha-numeric station number or identifier. (This field is not read)
  2. Last two digits of calendar year, or full calendar year
  3. Twelve monthly fields

The default format is: (4X,I4,12F6.0)

Monthly values are distributed to daily values with a transformation function of SAME.


PLTGEN/MUTSIN File Format

Time series data can be transferred to or from ASCII/text files having the PLTGEN/MUTSIN format, i.e., the format of files created by the PLTGEN module and readable by the MUTSIN module. This file contains a header, which is 25 or more lines for PLTGEN and at least one line for MUTSIN. Each line of data contains a date-time and between one and twenty data values (curves). The sequence of information for each data line is as follows:

  1. Identifier (four characters)
  2. Year
  3. Month
  4. Day
  5. Hour
  6. Minute
  7. Value for curve 1, for this date/time
  8. Value for curve 2, for this date/time, etc. (repeats until data for all curves are supplied)

Format: A4,1X,I5,4I3,20(2X,G12.5)


SHADE Function Input File Formats

The SHADE function in the RCHRES operation module requires two types of input files. Theses files contain the stream orientation, topographic, and vegetation characteristics that determine the amount of shading the stream channel experiences. These files are arranged and formatted in the same manner as the stand-alone SHADE module developed by Chen (1996). Each RCHRES requires one topographic and one vegetative characteristics file. The file unit numbers for these files are specified in the SHADE-PARM table (RCHRES block), and these unit numbers are associated with file names in the FILES block.

The topographic characteristics data file for each RCHRES contains one line for each SSP, which contains the following information: (Note: the SSPs are ordered in the file from downstream to upstream and are numbered from 1 to NSSP.)

* RCHRES ID number
* SSP ID number
* UTM Cartesian X coordinates of SSP
* UTM Cartesian Y coordinates of SSP
* Topographic shade angles (degrees) in 12 directions whose azimuth angles are 0o, 30o, 60o, ...330o (clockwise from due north) at each SSP. These are measured from the stream surface up to topographic features that obstruct the sun beam.
   Format: (2I4,2I8,12I3)
   Sample:
  24   1  393385 5013384  8  5  9 15 14 10  6 15 10  7 15 19
  24   2  393436 5013299  4  2 13 19 17 13  5 13 18 14  9 15
  24   3  393417 5013209  4  2 14 17 17 12  5 15 24 24 18 12
  24   4  393376 5013120  4  1 10 13 13  4  5 18 29 33 27 13
  24   5  393383 5013022  5  4 12 16 15  1  7 11 17 25 27 20

The vegetative characteristics data file for each RCHRES contains one line for each vegetation polygon at each SSP. The SSPs are ordered in the file from downstream to upstream and are numbered from 1 to NSSP. There are a maximum of 10 polygons on each side of the stream at each SSP. The vegetation shading characteristics are measured perpendicular to the stream channel. Each line contains the following information:

* RCHRES ID number
* SSP ID number
* Bank code of vegetation polygon (looking upstream) (L-left, R-right)
* Type code of vegetation polygon (F-forest/shrub, G-gap)
* Classification code of vegetation polygon (this is not read by the program)
* Distance from edge of the stream to the near-stream polygon boundary (meters)
* Width of vegetation polygon (meters)
* Average height of vegetation polygon (meters)
* Average height of vegetation polygon in reference to stream surface (meters)
* Average canopy density of vegetation polygon (-)
   Formats:
    (2I4,2A2,8X,5I6) for a Forest (F) polygon
    (2I4,2A2,8X,2I6," 9.99", " 9.99", " 9.99") for a Gap (G) polygon
   Sample (first 2 SSPs):
  24   1 R F             0    30     3     3    60
  24   1 R F            30    30     3     4    60
  24   1 R G            60   120 -9.99 -9.99 -9.99
  24   1 R G           180    60 -9.99 -9.99 -9.99
  24   1 R G           240    60 -9.99 -9.99 -9.99
  24   1 L F             0   120     3     3    60
  24   1 L G           120    30 -9.99 -9.99 -9.99
  24   1 L F           150    90    27    37    95
  24   1 L G           240    60 -9.99 -9.99 -9.99
  24   2 R F             0    60     3     3    60
  24   2 R F            60    60    27    41    60
  24   2 R G           120    30 -9.99 -9.99 -9.99
  24   2 R F           150   150    27    65    60
  24   2 L F             0    30     3     3    60
  24   2 L F            30    30     3     3    60
  24   2 L G            60    60 -9.99 -9.99 -9.99
  24   2 L F           120    30    27    56    95
  24   2 L G           150    60 -9.99 -9.99 -9.99
  24   2 L F           210    60    27    93    95
  24   2 L F           270    30    21   106    15

Overview Of Procedures For Computing Topographic And Vegetative Shading Characteristics Required For SHADE Function

The following is an overview of the procedures described by Chen et al., (1998) to develop the detailed topographic and vegetative shading characteristics required by the SHADE function. These characteristics are the UTM Cartesian coordinates of stream sample points (SSPs), topographic shade angles (TSA), and a number of vegetation parameters for each RCHRES. These parameters must be generated using GIS procedures involving: (1) the development of a GIS database and (2) the extraction of shading characteristics.

The database should consist of three data layers, i.e., topography, hydrography, and riparian vegetation. The topography can be obtained from a digital elevation model (DEM) (e.g., 1:24000 scale) of the basin. The hydrography data is typically a river reach file derived from USGS digital line graphs (e.g., 1:100,000 scale). The riparian vegetation coverage will generally be developed using a two step procedure. First, all vegetation buffers within 300 meters on both sides of the stream channel should be identified and measured on color infrared aerial photographs (e.g., 1:40,000 scale). The locations and attributes of the buffers must be transferred to USGS (e.g., 1:24000) topographic quadrangles. Second, the vegetation maps must be digitized to produce the vegetation data layer.

A GIS procedure should be developed to extract the stream and vegetation data from the GIS database. Starting at the downstream-most point in the basin, the procedure can be designed to extract and compile stream and riparian data at each SSP upstream along the mainstem and tributaries of the basin. A constant distance (e.g., 100-300m) between SSPs can be programmed into the procedure. At each SSP, the UTM coordinates must be determined and recorded. Next, the topographic shade angles for the 12 compass directions are computed at the SSP using the DEM data. Third, the vegetation parameters (distance from side of stream, height, width, and density) for vegetation buffers on each side of the stream (at the SSP) are determined from the vegetation data layer.


SPEC-ACTIONS Block
Explanation

In the SPEC-ACTIONS block, the user can change the values of program variables at specified dates and times. This permits one to model such things as: 1) human intervention, i.e., plowing or application of fertilizer and pesticide; 2) changes to parameters in ways not possible with the standard inputs; and 3) conditional actions, i.e., those that are dependent on the value of another program variable.

Special Actions can be performed on variables in the PERLND, IMPLND, RCHRES, COPY, PLTGEN, and GENER modules. An additional type of Special Action can be performed on the Multiplication factors in the time series blocks. The user's input is contained in the SPEC-ACTIONS block of the UCI file. It is specified in the different types of lines shown above and described fully in the following sections. Output is printed in the Run Interpreter Output (echo) file, and consists of two types: 1) a listing of all Special Actions as interpreted by the program, and 2) a summary of each Special Action (value of affected variable before and after the action) as it is implemented during the run.

Details of Action line (including REPEAT function)

--------------------------------------------------------------------------------
Symbol         Fortran        Format  Comment
               name(s)
--------------------------------------------------------------------------------
<oper>         OPTYP          A6      operation type - valid values are
                                      PERLND, IMPLND, RCHRES, or PLTGEN
<f>            TOPFST         I3      first operation to act upon
<-l>           TOPLST         I4      last operation to act upon, 0 or blank
                                      means use first operation only
dc             CTCODE(1)      A2      code specifying time units of deferral of
                                      action when an applicable logic condition
                                      fails - (MI,HR,DY,MO,YR)
ds             TSTEP(1)       I3      number of CTCODE(1) intervals to defer
                                      the action
<yr>           DATIM(1)       I4      year (see starting date field in GLOBAL
                                      block for more information) if the date
                                      is left blank, then the action is
                                      performed every interval of the run
<m>            DATIM(2)       1X,I2   month
<d>            DATIM(3)       1X,I2   day
<h>            DATIM(4)       1X,I2   hour
<m>            DATIM(5)       1X,I2   minute
d              DSIND          I2      ID number of "DISTRB" line, blank if none
t              TYPCOD         I2      2-INTEGER, 3-REAL, 4-DOUBLE PRECISION
<vari>         VNAME          A6      variable to act upon, left-justified
<1><2><3>      CSUB(1-3)      3A3     subscripts for VNAME, blank if none
                                      may be 2-character CATEGORY tag if
                                      applicable; must be integer otherwise
<addrss>       ADDR           I8      memory location (in the OSV) of variable
                                      (optional method to specify variable)
<a>            ACTCOD         A3      action code: id number (#) or character
                                      (ch). T= target variable, A=action value:
                                         #  ch  effect       #  ch  effect
                                         1   =  T= A         2  +=  T= T+ A
                                         3  -=  T= T- A      4  *=  T= T*A
                                         5  /=  T= T/A       6 MIN  T= Min(T,A)
                                         7 MAX  T= Max(T,A)  8 ABS  T= Abs(A)
                                         9 INT  T= Int(A)   10  ^=  T= T^A
                                        11 LN   T= Ln(A)    12 LOG  T= Log10(A)
                                        13 MOD  T= Mod(T,A)
<value>        RVAL or        F10.0   "value" of the action to be taken -
               IVAL           I10         see notes below
<uvqn>         UVQNAM         A6      name of User-defined variable quantity
                                      containing the "value" of the action
tc             CTCODE(2)      A2      code specifying time units of "repeat"
                                      action - (MI,HR,DY,MO,YR)
ts             TSTEP(2)       I3      number of CTCODE(2) intervals to skip
                                      before repeating the action
num            NUMINC         I3      number of times to repeat action
-------------------------------------------------------------------------------

Details of Distribution line

--------------------------------------------------------------------------------
Symbol         Fortran      Format    Comment
               name(s)
--------------------------------------------------------------------------------
<kwrd>           -            A6      keyword (DISTRB) - specifies current line
                                      as a "Distribution" line
ds             DSIND          I3      index number - corresponds to the value
                                      specified on the standard line
ct             CNT            I3      number of separate actions or applications
                                      to divide the total application into
tc             CTCODE         A2      code specifying time units of the interval
                                      between separate applications or actions -
                                      (valid values: MI,HR,DY,MO,YR)
ts             TSTEP          I3      number of CTCODE intervals between
                                      separate applications (see CTCODE below)
<dff>          CDEFFG         A5      deferral flag - indicates how to treat
                                      deferral of the action under a conditional
                                      situation - (valid values: SKIP, SHIFT,
                                      ACCUM; default = SKIP)
<frc>          FRACT(CNT)     10F5    fractions for each of the separate
                                      applications
--------------------------------------------------------------------------------

Details of User-defined Variable Name line

--------------------------------------------------------------------------------
Symbol         Fortran      Format    Comment
               name(s)
--------------------------------------------------------------------------------
<kwrd>           -            A6      keyword (UVNAME) - specifies current line
                                      as a "User-defined variable name" line
<unam>         UNAME          A6      user-defined variable name
cnt            CNT            I3      number of actual variables included in
                                      aggregate group

Following inputs repeat CNT times (continuation lines if CNT>2)
<vari>         VNAME          A6      actual variable name
<1><2><3>      CSUB(1-3)      3A3     subscripts for VNAME, blank if none
                                      may be 2-character CATEGORY tag if
                                      applicable; must be integer otherwise
<addrss>       ADDR           I4      address of actual variable

<frc>          FRAC           F5.2    fraction of total application allocated
                                      to each of the actual variables
act            ACTCD          A4      action code - QUAN, MOVT, MOV1, MOV2
                                      (see notes on UVNAME action code options)
--------------------------------------------------------------------------------

Details of User-defined Variable Quantity line

--------------------------------------------------------------------------------
Symbol         Fortran      Format    Comment
               name(s)
--------------------------------------------------------------------------------
<kwrd>           -            A6      keyword (UVQUAN) - specifies current line
                                      as a "User-defined variable quantity" line

<uqnm>         UVQNAM         A6      user-defined variable quantity name

<oper>         OPTYP          A6      operation type of base variable

<#>            OPTNO          I3      operation type number of variable

<vari>         VNAME          A6      actual variable name of variable

<1><2><3>      CSUB(1-3)      3A3     subscripts for VNAME, blank if none
                                      may be 2-character CATEGORY tag if
                                      applicable; must be integer otherwise

<addrss>       ADDR           I4      address of actual variable

<t>            TYPCOD         I2      2-INTEGER, 3-REAL, 4-DOUBLE PRECISION

<multfact>     UVQMUL         F10.0   multiplier to apply to base variable

lc             CTCODE(1)      A2      code specifying time units of the period
                                      to lag base variable
                                      (valid values: MI,HR,DY,MO,YR)
ls             TSTEP(1)       I3      number of CTCODE intervals to lag
                                      base variable
ac             CTCODE(2)      A2      code specifying time units of the period
                                      to aggregate base variable
                                      (valid values: MI,HR,DY,MO,YR)
as             TSTEP(1)       I3      number of CTCODE intervals to aggregate
                                      base variable
agfn           CTRAN          A4      transformation function to use for
                                      aggregation of base variable
                                      (valid values: SUM, AVER, MAX, MIN.)
--------------------------------------------------------------------------------

Details of Free-Format Conditional lines

--------------------------------------------------------------------------------
Symbol         Fortran      Format    Comment
               name(s)
--------------------------------------------------------------------------------
IF               -              -     Keyword specifying the beginning of a
                                      logical condition
<quan>         CITEM         free(10) May be either a UVQUAN name (format A6)
                                      or a numeric value (format up to F10.0)
<comp>         CCODE         free(2)  Numerical comparison operator.  Valid
                                      values are:
                                        = equal
                                       /= not equal
                                        > greater than
                                       >= greater than or equal
                                        > less than
                                       >= less than or equal
<logop>        CLOGOP        free(3)  Logical operator: AND or OR
THEN             -              -     Keyword specifying the end of a logical
                                      condition
ELSE             -              -     Keyword specifying that following special
                                      actions are an alternative to previous IFs
                                      and ELSE IFs
ELSE IF          -              -     Keyword specifying that following special
                                      actions are an alternative to previous IFs
                                      and ELSE IFs, provided that the additional
                                      condition is also satisfied.  Exactly one
                                      space must occur between the two words.
END IF           -              -     Keyword specifying the end of a logical
                                      block.  Exactly one space must occur
                                      between the two words.
--------------------------------------------------------------------------------

*** free(N) denotes that the field may be any length up to N characters, and may appear in any column, subject to a maximum line length of 80 characters.

Details of Time Series Multiplication Factor Change Lines

--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<kw>      -         1    A4   keyword (MULT) - specifies current line
                              as a “Multiplication factor change” line
<svol>   SVOL       6    A6   SVOL is the Operation-type of the source operation

<s#>     SVOLNO    12    I4   SVOLNO is the source Operation-type number
                              (e.g., PERLND   5)
<sgrp>   SGRPN     16    A6   Group to which the source time series belong(s).

<smem>  SMEMN     22    A6   Source member name.

<m#>     SMEMSB(2) 28   2I2   Source member name subscripts.

<mfact>  MFACTR    32 F10.0   The factor by which data from the source will be
                              multiplied before being added to the target.
o        OPER      42    A1   String indicating the mathematical operator which
                              will be applied to this multiplication factor.
<tvol>   TVOL      44    A6   TVOL is the Operation-type of the target operation

<t#>     TVOLNO    50    I4   TVOLNO is the target Operation-type number
                              (e.g., PERLND   5)
<tgrp>   TGRPN     54    A6   Group to which the target time series belong(s).

<tmem>   TMEMN     60    A6   Target member name.

<m#>     TMEMSB(2) 66   2I2   Target member name subscripts.

<yr>     DATIM(1)  70    I4   year for the change to take place
mo       DATIM(2)  74    I2   month
dy       DATIM(3)  76    I2   day
hr       DATIM(4)  78    I2   hour
--------------------------------------------------------------------------------

Other Notes:

The <value> field contains quantitative data for the action to be taken. If the variable or array element to be acted on is an integer (TYPCOD=2) <value> is read as an integer (IVAL); If it is REAL or DOUBLE PRECISION (TYPCOD=3 or 4), <value> is read as a real number (RVAL). Note that the value must be given in the units used internally for the quantity concerned, because no conversion is performed when it is read in. You can find the internal units by looking up the quantity in the Operations Status Vector (for the module concerned), contained in the supplementary document "Data Structures for HSPF Version 12" (AQUA TERRA, 2000). For example:

  1. Pesticide storage (in module PERLND) has units of lb/ac (English) and kg/ha (Metric); the same units are used internally and externally.
  2. Sediment storage (in module PERLND) has internal units of tons/acre (in both English and Metric systems) but the external units (English and Metric) are tons/acre and tonnes/ha respectively.

Repeat definition

This feature allows a single Special Action to be repeated at regular intervals. The input that defines the repetition is contained entirely on the standard action line. The date-time specified on the line is the starting date-time. The repetition is specified by: 1) CTCODE(2), which defines the time units of the interval between repetitions, 2) TSTEP(2), which defines the number of CTCODE(2) time steps between repetitions, and 3) NUMINC, which is the number of times to perform the action (for example: if NUMINC is 3, the action will be performed three times, i.e., on the specified date-time and two repetitions).

Distribute definition

This option allows a single Special Action to be split into multiple actions. The primary purpose is to distribute a chemical application over time so that it is not all applied to the land segment at once. The additional information needed to define the distribution is specified on an associated line in the Special Actions block. An ID number (DSIND) is included on the standard Special Actions line which points to the associated line. This line contains: 1) the keyword "DISTRB", which identifies the line as a "distribution" definition line, 2) DSIND, the ID number corresponding to the value on the standard line, 3) CNT, the number of separate applications to divide the total application into, 4) CTCODE and TSTEP, which define the time interval between applications (see discussion of REPEAT definition above), and 5) FRACT(CNT), the fraction of the total application represented by each of the separate applications. Note, the total application is given by <value> (or RVAL), which is specified on the standard Special Action line.

User-defined variable (UVNAME)

This option allows the user to define a single name (UVNAME) for one or more standard variables to be used as the target of a Special Action. If a UVNAME is applied to multiple standard variables, then any action line referring to that UVNAME as a target will cause multiple Special Actions to occur. This line contains: 1) a user defined name (UNAME), limited to six characters; 2) the number (count) of standard variables that are included in the set; 3) the variable names; 4) the fractions of the total Special Action quantity that will be applied to each variable; and 5) and an optional action code. (See below.)

UVNAME action code options

QUAN - Specify multiple Special Action variables in one line. Each quantity specified in the UVNAME line is multiplied by the quantity in the corresponding standard line to generate the final quantity applied to each of the variables specified in the UVNAME line. This option is designed primarily to allow a total chemical amount to be applied to multiple soil layers with a single line. This is the default.

MOVT - Redistribute current total quantity contained in multiple variables using predetermined factors. Each quantity specified in the UVNAME line is multiplied by the total quantity obtained by summing the current values of the individual variables specified in the UVNAME line. This option is designed to simulate a plowing operation that completely mixes all material in two or more zones. This would be accomplished by using quantities that are the fractions of soil or depth in the individual layers. (This option does not use the "quantity" or Action Code specified in standard line.)

MOV1, MOV2 - Redistribute two quantities in following manner: Variable No. 1 is computed by multiplying current value of variable No. 2 by quantity associated with Variable 1 in the UVNAME line. Variable No. 2 is computed by multiplying current value of Variable No. 2 by quantity associated with Variable No. 2 in the UVNAME line plus the current value of Variable No. 1. This option is designed to simulate a plowing operation that transfers the material in the surface zone to the upper zone, and results in the new surface zone having the original concentration of the upper zone. This would be accomplished by using the following two quantities: 1) ratio of amount of soil (or depth) in surface layer to amount in upper layer, and 2) subtract surface layer soil amount from upper layer soil amount and divide the result by the upper layer soil amount. (This option does not use the "quantity" or Action Code specified in standard line.)

User-defined variable quantity (UVQUAN)

This option creates a variable quantity which can be used either as an action value for a Special Action or as a value to be compared in a condition. A UVQUAN refers to a single "base variable" in a single operation. By default, the UVQUAN contains the last-calculated value of that base variable. Optionally, it may contain a lagged value (e.g., 5 hours ago); an aggregated value (e.g., the average over the previous day); or a combination (e.g., the sum over three days ending 24 hours ago). The resulting value can also be multiplied by a constant factor. It is important to note the difference between a UVQUAN and a UVNAME. A UVQUAN is a value, just like a constant. A UVNAME is a target address for a special action.

Logical conditions

Special Actions may depend on whether a user-specified logical condition is true or false, and can be either skipped or deferred if it is false. They can be grouped into logical blocks by placing IF, ELSE IF, ELSE, and END IF lines appropriately among the action lines. For example, actions placed between an IF line and the next logical delimiter are executed only if the condition specified on the IF line is true on the date and time of the each action.

A simple logical condition is defined as a comparison between two numerical values. Either or both of these values may be UVQUANs. For example:

      month <= 2
      6226.0 <= tstage
      tfish < faradj
are all simple logical conditions. Complex conditions are built by connecting simple conditions together with the logical operators AND and OR:
  [month = 10  OR (tstage >= 6226.0 AND {month >= 11 OR month <= 2} )]

Parentheses are used to specify the order of evaluation, just as in a programming language. By default, the logical operators are evaluated from right to left, but it is good practice to use them in all cases to ensure clarity. There are three types: round (), square [], and curly {}. They are equivalent, but the program requires that matching left-right pairs must be of the same type, in order to help the user prevent unintended effects in complicated conditions.

IF lines consist of the keyword IF, a logical condition, and the keyword THEN. The IF keyword may appear anywhere on the line, as long as it is the first non-blank. The condition may be simple or complex, and may span multiple physical lines. When an IF line is found, HSPF keeps reading lines until the THEN keyword is found. ELSE IF lines are processed in the same manner. ELSE and END IF are expected to appear alone on a line, and anything after the keyword is ignored. Note that the "ELSE IF" and "END IF" keywords must contain exactly one space between the two words.

The following example illustrates how HSPF decides whether to perform a special action. Each condition may be simple or complex. Note the effect of nesting IF-END IF blocks. They may be nested up to ten levels deep.

*** Condition A
IF month >= 9 THEN
 *** Action 1
  RCHRES130                            4  CVOL   pw      +=     TAVLQ
 *** Action 2
  RCHRES130                            4  CVOL   tx      -=     TAVLQ

 *** Condition B
 IF (tstage > 6226.0) THEN
  *** Action 3
  RCHRES100                            4  CVOL   tx      +=     PUNCOM

 *** Condition C
 ELSE IF (tstage > 6225.0) THEN
  *** Action 4
  RCHRES100                            4  CVOL   pw      +=     PUNCOM

 ELSE
  *** Action5
  RCHRES130                            4  CVOL   na      -=     PUNCOM
  *** Action6
  RCHRES130                            4  CVOL   ac      +=     PUNCOM
 END IF

 *** Action7
  RCHRES130                            4  CVOL   sp      +=     TAVLQ

*** Condition D
ELSE IF month >= 6 THEN
 *** Action8
  RCHRES130                            4  CVOL   tc      +=     TAVLQ

*** Condition E
ELSE IF (tfish <= 0.0) THEN
 *** Action9
  RCHRES130         1991/04/29 12:00   4  CVOL   pw      +=     PUNCOM
 *** Action10
  RCHRES130         1991/05/01 12:00   4  CVOL   tx      -=     PUNCOM

ELSE
 *** Action11
  RCHRES130                            4  CVOL   na      -=     TAVLQ
END IF

*** Action12
  RCHRES130                            4  CVOL   ac      +=     TAVLQ

In this example:

Actions 1, 2, and 7 are performed only if Condition A is true.

Action 3 is performed only if Conditions A and B are both true.

Action 4 is performed only if Conditions A and C are true and Condition B is false.

Actions 5 and 6 are performed only if Condition A is true and Conditions B and C are false.

Action 8 is performed only if Condition A is false and Condition D is true.

Actions 9 and 10 are performed only if Conditions A and D are false and Condition E is true.

Action 11 is performed only if Conditions A, D, and E are false.

Action 12 is always performed.

Evaluation Order

Each IF or ELSE IF line is evaluated a maximum of once per interval, at the time of execution of the first Special Action that depends on it in that interval. The UVQUAN values used for the numerical comparisons are computed from the base variables at the point of evaluation, taking into account Special Actions appearing before the Condition line, but not those after it.

Assume that in the example above, month = 10, tstage = 6224.5, and tfish = 0. HSPF will:

  1. Fetch the value of month.
  2. Evaluate Condition A as true.
  3. Perform Action 1, since A is true.
  4. Perform Action 2, since A is true.
  5. Fetch the value of tstage.
  6. Evaluate Condition B as false.
  7. Skip Action 3, since B is false.
  8. Re-fetch the value of tstage.
  9. Evaluate Condition C as false.
  10. Skip Action 4, since C is false.
  11. Perform Actions 5 and 6, since A is true, while B and C are both false.
  12. Perform Action 7, since A is true.
  13. Skip Action 8, since A is true. Note that Condition D does not need to be evaluated because the action is skipped regardless of D's value.
  14. Ignore Actions 9 and 10, since they do not occur on this date.
  15. Skip Action 11, since A is true. Conditions D and E can be ignored.
  16. Perform Action 12, which is unconditional.

The use of dated special actions within logical blocks requires caution. For instance, for Actions 9 and 10 above, it is possible that the value of tfish changes between April 29 and May 1 such that one of the Actions is performed while the other is not, even though they have the same logical conditions. The user must make sure that this is the intended result.

Another situation requiring care is a Special Action that alters one of the variables which define the logical conditions upon which that Action depends. For instance, if Action 4 above changed the value of the UVQUAN tstage to 6224.0 by altering its base variable, then Actions 5 and 6 will still not be executed that interval, since Condition C is not re-evaluated until the following interval.

Time Series Blocks Multiplication Factor Change Lines

Multiplication factor changes can be performed on the multiplication factors in the EXT SOURCES, EXT TARGETS, NETWORK, and SCHEMATIC blocks. The user's input is contained in the SPEC-ACTIONS block of the UCI file, where a multiplication factor change instruction is denoted by the four-character keyword 'MULT' at the beginning of the record. This type of action is described fully below.

The 'MULT' keyword is followed by the values of the following variables:

  1. source volume name (WDM1, PERLND, etc.)
  2. source volume number
  3. source group name (optional)
  4. source member name (optional)
  5. source member subscripts (optional)
  6. new multiplication factor
  7. mathematical operation indicator
  8. target volume name (RCHRES, WDM1, etc.)
  9. target volume number
  10. target group name (optional)
  11. target member name (optional)
  12. target member subscripts (optional)
  13. year of action
  14. month of action
  15. day of action
  16. hour of action

The mathematical operation indicator dictates how the new multiplication factor will be applied. The valid values for this indicator are =, +, -, and *. = indicates that the value specified in the instruction will be the new value used as the multiplication factor, and will be the default for this instruction. + indicates that the new value will be added to the current multiplication factor, - indicates that the new value will be subtracted from the existing multiplication factor, and * indicates that the new value will be multiplied by the existing multiplication factor.

These actions always take place at the specified date and time; i.e., there is no type of deferral, repeat, or conditional action available for this type of SPECIAL ACTION.

Several examples of these are listed below:

MULT WDM1   105      HPCP             0.9= PERLND 101EXTNL PREC      1990010100
MULT WDM1  7011      FLOW             1.1* RCHRES   4INFLOWIVOL      1990010100
MULT PERLND 101PQUAL POQUAL 1         120+ RCHRES   1INFLOWIDQAL  1  1990010100
MULT PERLND 101                       120- RCHRES   1                1990010100

In the first example, the factor adjusting the input precipitation from WDM1 in data set number 105, which is being directed to PERLND 101 EXTNL PREC, will be set to the value of 0.9. In the second example, the factor adjusting the input flow (e.g., from a treatment plant discharge) from WDM1 in data set number 7011, which is being directed to RCHRES 4 INFLOW IVOL will be multiplied by 1.1. The third and fourth examples demonstrate the use of the + and - indicators to specify that the multiplication factor should be increased or decreased the specified amount.

Notice that some of the variables in the examples are not assigned values. Whenever a variable is not assigned a value, any timeseries instruction that meets the specified variables will be modified. For instance, the fourth example will subtract 120 from all timeseries connections with a source of PERLND 101 and a target of RCHRES 1, such as might be the case if the user wishes to subtract 120 acres of one PERLND operation contributing to one RCHRES operation.


MONTH-DATA Block

Details
--------------------------------------------------------------------------------
   Symbol      FORTRAN     Format                Comment
               Name(s)
--------------------------------------------------------------------------------
<t>            NUMBR          I3        Users identifying number for this
                                        MONTH-DATA table

<val->         MTHVAL(12)   12F6.0      Monthly values
-------------------------------------------------------------------------------
Explanation

A MONTH-DATA table is used to specify monthly-varying values for parameters that do not have specific input tables for that purpose.


CATEGORY Block

Details
--------------------------------------------------------------------------------
Symbol   FORTRAN  Start  Format       Comment
         Name(s)  Column
--------------------------------------------------------------------------------
<cat>    CAT           4     A2       Category tag: a two-character identifier
                                      used wherever a subscript is called for.
                                      First character must be a letter. Tags are
                                      case-sensitive, and must be unique.
<catnam> CATNAM        7    A16       Category name
--------------------------------------------------------------------------------
Explanation

In this block the user declares and names active water categories.

The CATEGORY block is used to facilitate the modeling of water rights in the HYDR section of RCHRES. Each RCHRES in the run tracks the categories of all inflows, storages, demands, and outflows. Up to 100 categories may be specified. (See the discussion of Water Rights Categories in Section HYDR of Module RCHRES in Functional Description).


Appendix I - Glossary of Terms

 The glossary which follows is not exhaustive. Its function is to introduce terms which may be new and to assign definite meanings to ambiguous terms. It is not a dictionary. The goal is not to provide formally correct definitions but to supply explanations adequate for practical purposes. Thus in some cases, the definition of a term is followed by a further explanatory note.

The list that follows is arranged alphabetically. Any word enclosed in parentheses may optionally be omitted from a term in everyday use, provided that the context ensures that its use is implied.

ANNIE: An interactive program designed for management of WDM files and their data. ANNIE functions include file creation, data set management, and data analysis, modification, and display.

APPLICATION MODULE: A module which simulates processes which occur in the real world (e.g., PERLND, IMPLND, RCHRES).

BUFFER: A portion of machine memory space used for the temporary storage of input or output-bound data.

COMPUTATIONAL ELEMENT: See "element."

CONCEPTUAL DATA STREAM: A stream of related data that are independent of any physical input-output device.

COPY: A utility module used to copy time series data. COPY is typically used to transfer data from a sequential file to the WDM file or DSS file.

DATA SET (TIME SERIES): A data set in the WDM or DSS file.

DATA STORAGE SYSTEM (DSS) FILE: A direct-access, binary file containing multiple time series data sets. This file supports interfacing of HSPF with U.S. Army Hydrologic Engineering Center (HEC) software and data formatted for HEC programs. DSS files are created and maintained by the DSSUTIL program and related software from HEC.

DIRECT ACCESS FILE: A disk file whose records are read from or written to a specific location within the file. Any record in the file may be accessed at any time. Contrast with sequential file.

DIRECTED GRAPH: A group of processing units arranged with unidirectional paths between them. No bi-directional paths or cycles are allowed.

DISPLY: A utility module used to print time series data in a tabular format and summaries of the data.

DSS : see DATA STORAGE SYSTEM

DURANL: A utility module used to examine the behavior of a time series, computing a variety of statistics related to it's excursions above and below certain specified levels.

ELEMENT : A collection of nodes and/or zones, e.g., segment no. 1, reach no. 20.

ELEMENT TYPE: A name which describes elements having a common set of attributes, for example, Pervious Land-segment, Reach/Mixed Reservoir.

EXECUTABLE PROGRAM: A self contained computing procedure. It consists of a main program and its required subprograms.

FEEDBACK ELEMENT: An element which is situated in a loop in a network or which is connected to another element by one or more bi-directional flux linkages.

FEEDBACK REGION : A group of connected feedback elements. Information and constituent transfers across the boundaries of a feedback region are uni-directional, but internal fluxes can be bi-directional.

FLOWCHART : A schematic two-dimensional representation of the logic in a program or program unit. The level of detail in a flowchart depends on its purpose.

FLUX: The rate of transfer of fluid, particles or energy across a given surface.

FUNCTION (as used in program design, not in Fortran language): A transformation which receives input and returns output in a predictable manner. Most functions within a program can be classified into one of three types: input, process, or output. Usually, there is a hierarchy of functions--high level functions contain subordinate functions.

GENER : A utility module used to perform any one of several transformations on one or more input time series.

IMPLND: An application module which simulates the water quantity and quality processes which occur on an impervious land segment.

INGRP : A group of HSPF operations which share the same internal scratch pad (INPAD), and which can therefore be connected by transferring time series between operations.

INPAD : see INTERNAL SCRATCH PAD

INPAD AREA: The space available in memory for the storage of time series data in the INPAD. It is the difference between the area of the common block SCRTCH and the longest OSV in the INGRP.

INPAD WIDTH : The number of time intervals which are present in the INPAD during a run. This is the INPAD area divided by the maximum number of rows of the time series data.

INPUT TIME SERIES : Time series which are read in a given simulation run.

INSPAN: see INTERNAL SCRATCH PAD SPAN

INTERNAL SCRATCH PAD (INPAD): The space in memory where time series data are accessed by modules. It functions as a large buffer for this data.

INTERNAL SCRATCH PAD SPAN (INSPAN): The real world time which corresponds to the INPAD width.

IVL : See SIMULATION INTERVAL

JOB : The work performed by HSPF in response to the instructions found in a complete set of User's Control Input.

KIND: A descriptor which implies either point or mean with regard to a time series.

MEAN-VALUED DATA: Data which represents the behavior of a time series over time intervals rather than at specific points in time.

MIXED RESERVOIR : A water body which is assumed to be completely mixed.

MODEL : A set of algorithms, set in a logical structure, which represents a process. A model is implemented using modules of code.

MODULE: A set of program units which performs a clearly defined function.

MODULE SECTION: A part of an Application Module which can be executed independently of the other parts, e.g., SEDMNT in module PERLND.

MUTSIN: A utility module used to read a sequential external file which has the same format as the file produced by the PLTGEN module. MUTSIN makes the time series data on the external file available for use by other modules.

NETWORK : A group of connected processing units. Information and/or constituents flow between processing units through uni-directional linkages. That is, no processing unit may pass output which indirectly influences itself (no feedback loops). These constraints make it possible to operate on each processing unit separately, considering them in an "upstream" to "downstream" order.

NODE: A point in space where the value of a spatially variable function can be determined.

OPERATING MODULE (OM) : A set of HSPF program units which perform a series of process functions for a specified time on a given set of input time series and produce a specified set of output time series.

OPERATION : In HSPF: execution of code which transforms a set of input time series into a set of output time series, for example, execution of an application module or a utility module. See "simulation operation," "utility operation."

OPERATIONS STATUS VECTOR (OSV): The data structure for an operating module. The OSV contains all the information (parameters, state variables) needed to describe the status of an operation and to restart it after an interruption.

OPERATIONS SUPERVISOR (OSUPER): The HSPF program section which oversees the execution of operating modules and related time series movement.

OSV : see OPERATIONS STATUS VECTOR

OUTPUT TIME SERIES: Time series which are generated during a simulation run. They do not have to be stored in the WDM or DSS.

PARAMETER : A variable used in a function which determines the transformation of the input to the function to the output of the function.

PERLND: An application module which simulates the water quantity and quality processes which occur on a pervious land segment.

PERVIOUS LAND SEGMENT (PLS) : A segment of land with a pervious surface.

PHYSICAL PROCESS: A process occurring in the real world.

PLS : see PERVIOUS LAND SEGMENT

PLTGEN: A utility module used to write a sequential external file containing up to 10 time series and related commands for a stand-alone plotting program.

POINT-VALUED DATA : Data which represents the behavior of a time series at specific points in time rather than over time intervals.

PROCESS : In the real world: A continuing activity, for example, percolation, chemical reaction. See "physical process."

PROCESSING UNIT (PU): An element or group of related elements which is simulated for a period of time. Input comes from external sources or Processing Units which have completed simulating for the given period of time. Output goes to other processing units or external files.

PROGRAM : A complete set of code, consisting of one or more program units, the first of which is the "main" program unit.

PU: see PROCESSING UNIT

RCHRES: An application module which simulates the water quantity and quality processes which occur in a reach of open or closed channel or a completely mixed lake.

REACH : A free-flowing portion of a stream, simulated in HSPF using storage routing.

RUN : A set of operations which are performed serially and cover the same period of time.

RUN INTERPRETER : The HSPF section which reads and interprets the User's Control Input. It sets up internal information that instructs the system regarding the sequence of operations to be performed, stores parameters and state variables for each operation in the OSV, writes instructions related to the movement of time series data and performs other minor functions.

SECTION : see MODULE SECTION

SEGMENT : A portion of the land assured to have areally uniform properties.

SEQUENTIAL FILE : A file whose records are organized on the basis of their successive physical positions. A record may be accessed only after the previous record has been accessed.

SIMPLE ELEMENT: An element which is not a feedback element.

SIMULATION: Imitation of the behavior of a prototype, using a model. We implement the model on a computer using an application module.

SIMULATION INTERVAL : The internal time step used in an operation.

SIMULATION MODULE : See APPLICATION MODULE

SIMULATION (OPERATION): Simulation of a specified prototype for a specified period.

STATE VARIABLE: A variable containing the current value of a storage or other measurable quantity. It may change through time.

STRUCTURE CHART : A diagram which documents the result of structured (program) design. It indicates the program units, their relationships (including hierarchy) and, optionally, the data passed between them.

TIME SERIES : A series of chronologically ordered values giving a discrete representation of the variation in time of a given quantity.

(TIME SERIES) DATA SET : A data set in the WDM or DSS file.

TIME SERIES MANAGEMENT SYSTEM (TSMS): The code sections of HSPF which are concerned with manipulation of time series or the files used to store time series. It includes TSGET and TSPUT.

TIME SERIES STORE (TSS) : An obsolete direct access file that was used for medium/long term storage of time series. Support for the TSS system has ceased, and it has been removed from the program. It has been replaced by the WDM (or DSS) file.

TIME SERIES STORE MANAGEMENT (TSSM) : The HSPF module which (in previous versions) maintained a User's Time Series Store (TSS) and performed maintenance tasks associated with the data sets in it. TSSM has been removed from the program.

TSPUT : The HSPF module which moves time series data from the INPAD to a WDM file or DSS file.

TSGET : The HSPF module which moves time series data from a WDM file, DSS file, or sequential file to the INPAD.

TSS : see TIME SERIES STORE

TSSM or TSSMGR: see TIME SERIES STORE MANAGEMENT

UCI : see USER's CONTROL INPUT

USER'S CONTROL INPUT: The file in which the user specifies the operations to be performed in a run, the parameters and initial conditions for each operation, and the time series to be passed between them. HSPF reads this from an ASCII file.

UTILITY MODULE: A module which performs operations on time series which are peripheral to the simulation of physical processes, for example, data input, plot generation, statistical analysis.

UTILITY OPERATION : Execution of a utility module.

VOLUME: A source (WDM, DSS, sequential file or INPAD) or target (WDM or DSS) for time series data.

WATERSHED DATA MANAGEMENT (WDM) FILE: A direct-access, binary file containing multiple time series data sets. This file is the primary storage file for HSPF time series data. WDM files are created and maintained by the WDMUtil and ANNIE programs and related-software.


Appendix II - Time Series Concepts

A time series is a sequence of values ordered in time. The interval of time between successive values is called the time step or the time increment or the time interval of the time series. The time step for a time series is often a constant value but may also be variable. The implementation in HSPF restricts the variability in a manner discussed below. The values in the time series may represent the behavior of a process at a point in time or an average over the time step of the time series. A time series whose values represent behavior at points in time is called a point-valued time series and is represented symbolically by "*". Linear interpolation is used to define intermediate values in a point-valued time series. A time series whose values represent average or aggregated behavior over the time step is called a mean-valued time series and is represented symbolically as "-". The meaning of "average" and "mean" is taken in a wide sense and includes any value assumed to be representative of behavior of the time series over the time step, rather than at a specific point in time.

The following figure shows the difference between the point and mean value time series in graphic form. It is important to note that only one value is needed to represent the behavior of a mean-valued time series for one time step. We visualize the value as being assigned to a time step in this case. On the other hand, two values are needed to represent the behavior of a point-valued time series over the same interval. We visualize the values as being assigned to the time points in this case. Each time point at which a value of the series is given in a point-valued time series is viewed as "belonging" to the time step which it ends. Time points belonging to all time steps contained within a larger time step are viewed as belonging to the larger time step also. For example, all time points in a point-valued time series except the first time point belong to the time interval spanning the time series duration. The first time point of a point-valued time series is viewed as belonging to the time step immediately preceding the first time step of the time series. This precise definition of belongingness for a time point is needed to avoid confusion in defining operations on the time series.

A number of operations on time series, discussed in the Time Series Linkages section, preserve the integral of the time series between any two time points which end time steps in the time series. The integral may be visualized as the area under the broken line graph formed by connecting adjacent values in the point-valued time series or the area under the histogram representing the mean-valued time series. The trapezoidal rule applied to the point-valued time series yields the exact value of the integral whereas the simple rectangular rule yields the exact value for the mean-valued time series.

Time is given as year/month/day/hour/minute to completely specify either a time interval or a time point. The date/time given by the internal clock uses the "contained within" principle for all levels of the date/time. That is, each smaller interval is contained within the next larger interval. This is the conventional usage for year/month/day but is not conventional for the hour/ minute. For example, the date string 1977/01/02 labels the second day of the first month of the 1977th year. On the other hand, in conventional usage the time string 10:15 refers to the end of the l5th minute after (not within) the 10th hour of the day. This change in meaning is eliminated in the internal date/ time clock for HSPF. In the internal system, time string 10/15 labels the 15th minute of (ie. within) the 10th hour of the day. A comparable time to 10:15 in the conventional sense would be 11/15; that is, the 15th minute of the 11th hour of the day.

In summary, the internal clock convention labels time intervals at all levels of date/time whereas conventional usage labels time intervals for year/month/day but labels time points for hour/minute. In HSPF, time points are then referenced uniquely by the minute which ends at the time point in question.

                              Point-valued time series

                   |
                   |
                   |
                   |
                   |
                   |
            X      |
                   o
                   |
                   |      o                    o
                   |
                   |                    o
                   |             o                    o      o
                   |
                   |
                   |
                   |------|------|------|------|------|------|------
                   0      1      2      3      4      5      6

                                 Time point numbers

                               Mean-valued time series

                   |
                   |
                   |
                   |
                   |
            X      |                    .------.
                   |                    |      |
                   |------.      .------'      |
                   |      |      |             |
                   |      '------'             |
                   |                           '-------------.
                   |                                         |
                   |                                         |
                   |------|------|------|------|------|------|-----
  Time point # --> 0      1      2      3      4      5      6
  Time step #  -->     1      2      3      4      5      6
                       -      -      -      -      -      -
Comparison between point- and mean-valued time series

Time is given as year/month/day/hour/minute to completely specify either a time interval or a time point. The date/time given by the internal clock uses the "contained within" principle for all levels of the date/time. That is, each smaller interval is contained within the next larger interval. This is the conventional usage for year/month/day but is not conventional for the hour/ minute. For example, the date string 1977/01/02 labels the second day of the first month of the 1977th year. On the other hand, in conventional usage the time string 10:15 refers to the end of the l5th minute after (not within) the 10th hour of the day. This change in meaning is eliminated in the internal date/ time clock for HSPF. In the internal system, time string 10/15 labels the 15th minute of (ie. within) the 10th hour of the day. A comparable time to 10:15 in the conventional sense would be 11/15; that is, the 15th minute of the 11th hour of the day.

In summary, the internal clock convention labels time intervals at all levels of date/time whereas conventional usage labels time intervals for year/month/day but labels time points for hour/minute. In HSPF, time points are then referenced uniquely by the minute which ends at the time point in question.

The time steps in a time series are labelled with the minute which ends the time step. Thus, the values in a mean-valued time series are treated logically as having occurred at the end time point of the time step. Note that for purposes of the internal clock and for description of internal concepts each time point has one and only one label. This means that we refer to the instant in time forming the boundary between two days using the label associated with the first day even though our interest is centered on the second day. This convention is called the ending time convention.

A starting time convention is used externally for some purposes because traditional usage requires both conventions depending on the context of the statement about time. Users are more comfortable using the traditional clock and both a starting time and an ending time convention. The starting time convention is used when the start of some time span is in mind and the ending time convention is used when the end of some time span is in mind.

The time span associated with a time series must be defined. Logically, a time series is of infinite length. Realistically, every time series has a finite length and may be broken into short segments for convenience in recording the values on some medium such as the printed page, a magnetic tape, a data card or a magnetic disk. These shorter segments are made necessary by various software and hardware constraints. Therefore, a time span is associated with each medium used to record or store the time series.

A further practical complication is created by the variety of representations used for time series. The user's most likely mental image is a line drawn in some coordinate system on the printed page. This method of representing time series is most convenient for the user but a series of discrete numbers is most convenient for the digital computer. The time series of indefinite length must be subdivided into shorter time spans to fit the card images or the records on the tape or disk. In some cases data for the time series may be incomplete (some values not present) or, in some cases, many of the values are zero so that not all values for the time series are stored on the medium. In such cases a date/time indicator is given on the record. As an example, consider the format used for data records produced by the National Weather Service. The date/time information on each record of the medium permits the reconstruction of the complete time series (except for the missing values) even though not all values are recorded on the medium. However, conventions must be established so that missing records on a given recording medium are properly interpreted. For example, are the missing data merely zeros or did they occur because of instrument malfunction? If the data are missing, a "filler" should be inserted when the data are placed on the WDM or DSS so that it can be changed at a later time or so that such missing periods can be properly handled by other parts of the HSPF system. The filler value is called the TSFILL attribute in the WDM system.


Benthic Algae Death - BALDTH

 Up to: Benthic Algae - BALRX, Plankton Populations and Associated Reactions - PLANK, Constituents Involved in Biochemical Transformations - RQUAL, Free-flowing Reach or Mixed Reservoir - RCHRES, Supervise and Perform Operations, Functional Description

(subroutine BALDTH)

Purpose

BALDTH calculates algal death each interval by using one of two unit death rates specified in the User's Control Input. ALDL, the low unit death rate, is used when environmental conditions encourage sustained life; in situations where nutrients are scarce or the benthic algae population becomes excessive, ALDH, the high algal death rate, is used.

Method

The high algal death rate, which has a default value of 0.01/hr, is used if any one of three conditions exists:

  1. the concentration of PO4 is less than the value of parameter PALDH
  2. the concentration of inorganic nitrogen is less than the value of parameter NALDH
  3. the areal density of benthic algae is greater than the value of parameter MBAL

Regardless of whether these tests indicate that ALDH or ALDL (default equals 0.001/hr) should be used, an additional increment to death occurs if anaerobic conditions are prevalent during the interval. The increment to death rate due to anaerobic conditions is determined by the value of parameter OXALD. When the benthic algae population grows to a size greater than that which may be supported on the bottom surface, algae begin to break away from the bottom, a phenomenon known as sloughing. Whenever the population calculated exceeds the maximum allowable bottom density (MBAL), the sloughing process removes the excess algae. The amount of benthic algae death which occurs during the interval is calculated as:

     DTHBAL = (ALD*BAL) + SLOF                                        (35)

where:
     DTHBAL = amount of benthic algae death (micromoles P/l per interval)
     ALD    = unit algal death rate determined by environmental conditions
              (/interval)
     BAL    = concentration of benthic algae (micromoles P/l)
     SLOF   = amount of benthic algae sloughed (micromoles P/l per interval)