ADAPT - A MODEL TO SIMULATE PESTICIDE MOVEMENT INTO DRAIN TILES

A Thesis Presented in Partial Fulfillment of the Requirements for the degree Master of Science in the Graduate School of the Ohio State University

by Cathy Ann Alexander, B.S. *****

The Ohio State University

1988

Master's Examination Committee: Approved by

Andrew D. Ward

E. Scott Bair jvisor Norman R. Fausey Department/of Agricultural Engineering Acknowledgements

I express sincere appreciation to my advisor Dr. Andy Ward for his guidance and assistance in this research. Thanks also go to the other members of my committee, Dr. Norm Fausey and Dr. Scott Bair, for their input into this project. For providing me with the background information on the GLEAMS model, and for their ever helpful attitudes, I thank Dr. Walt Knisel, Dr. Ralph Leonard, and Frank Davis of the USDA-ARS in Tifton, Georgia. The technical assistance of Eric Desmond and the helpful suggestions of the other graduate students, especially Lou Seich and Leonard Ndlovu1, is much appreciated. Thank you. And to my husband, Walter, I offer a sincere thank you for the love and support you've given me, and the patience you've had in seeing me through this endeavor. VITA

July 30, 1963 Born - Mt. Vernon, Ohio 1985-1986 Laboratory Technician, Dept. of Ag. Eng., Ohio State University 1986 B.S.Ag.Eng., Ohio State University

FIELDS OF STUDY Major Field: Agricultural Engineering Studies in: Agronomy - Dr. Ed McCoy, Dr. Norm Fausey, Dr. Terry Logan Civil Engineering - Dr. Vincent Ricca, Dr. Alan Rubin, Dr. Charles Moore, Dr. Robert Sykes, Dr. Robert Steiffel Geology and Minerology - Dr. E. Scott Bciir Natural Resources - Dr. William Mitsch

iii TABLE OF CONTENTS

ACKNOWLEDGEMENTS 11 VITA lii LIST OF TABLES vi LIST OF FIGURES vii CHAPTER PAGE I. INTROOUCTION 1 II. LITERATURE REVIEW 3 INFILTRATION 3 RUNOFF 8 EROSION 13 EVAPOTRANSPIRATION 15 17 PESTICIDE TRANSPORT , 20 MODELS CURRENTLY IN USE 24 III. THE THEORY OF GLEAMS AND DRAINMOD 27 GLEAMS 28 DRAINMOD 34 DISCUSSION 38 IV. DESCRIPTION OF THE ADAPT MODEL 40 INTRODUCTION 40 BASIC CONCEPTS 43 MATHEMATICS AND LOGIC 48 EVAPOTRANSPIRATION 48 INFILTRATION 50 DRAINAGE..... 52 WATER CONTENT 54 INPUT REQUIREMENTS 56 MODEL OUTPUT 57

V. VERIFICATION STUDY 58

iv VI. CONCLUSIONS AND RECOMMENDATIONS 65

APPENDICES

A. USER'S GUIDE TO ADAPT. 68

B. GLOSSARY OF TERMS 88

C. PROGRAM SOURCE CODE , 96

D. INPUT AND OUTPUT FILES 223

LIST OF REFERENCES 237

BIBLIOGRAPHY 240 LIST OF TABLES

Table Page 1. Fate of pesticides in an agricultural field 21 2. A comparison of GLEAMS, DRAINMOD, and ADAPT 42 modeling methods. 3. Hydraulic conductivities for a soil profile 59 in north-central Ohio. 4. Summary of drainage system input parameters for a 59 soil profile in north-central Ohio. 5. Direct runoff for varying curve numbers and 59 rainfall amounts. 6. Average simulated values of runoff and drainage 61 from 1962 to 1971 using ADAPT. 7. Simulated runoff and drainage values for 1970 61 using ADAPT.

VI LIST OF FIGURES

Figure Page 1. Soil moisture profiles during infiltration 5 (a) at the moment of surface saturation, and (b) at a later time. 2. Parameters used in estimating flux to subsurface drains ....18 3. Equivalent lateral 38 determination for five layers. 4. Hydrologic processes simulated by ADAPT 41 5. Volume relations of a soil 43 6. Water content relations by volume for a soil layer ,...45 7. Soil moisture profile (a) for an actual soil profile, 46 and (b) as modeled by ADAPT. 8. Soil profile zones for ADAPT 47 9. Daily calculations performed by ADAPT 49 10. Soil moisture profile when infiltration causes 53 a rise in . 11. Example soil profile when infiltration has occurred 55 12. Simulated and observed values plotted for: (a) runoff, ....63 (b) drainage, and (c) combined drainage and runoff.

vn CHAPTER I INTRODUCTION

Over the past several years, pesticide migration into has become a major environmental concern. Studies done in various states have shown persistent appearances of pesticides such as atrazine and aldicarb in groundwater. Studies done in Iowa in the past five years by Hallberg and others (1985) suggest that although levels are now generally less than 5 percent of that applied, they are likely increasing. The presence of pesticides in groundwater is a health concern as well as an economic concern. Although the low levels being found at present will likely not cause acute toxicity problems, there is the potential for long-term chronic problems such as cancer. And although losses to groundwater are usually 5 percent or less, certain soils and tillage conditions may cause losses of 10-15 percent. This is an economic inefficiency that, combined with environmental and health concerns, is a clear incentive to investigate more into the matter of pesticide migration to groundwater. To reduce chemical losses through management practices requires that enough data be available to base management strategies upon. The least time-consuming and costly method of providing these data is through computer simulations, rather than spending years in the field 1 2 collecting data for various soil and crop types. Hallberg (1985) found that pesticide concentrations in drain tile effluent is indicative of the amount reaching the local groundwater system. A model, then, that estimates pesticide concentration in drainage water would be a useful tool in determining what constitutes a best management practice. Although there are several computer models available to simulate pesticide transport in runoff or through the plant root zone» there are no models to estimate pesticide concentrations in subsurface tile effluent. The objective o* this study was to develop such a model, using two previously tested models as the building blocks. To this end, the GLEAMS (Groundwater Loading Effects on Agricultural Management Systems) (Leonard et.al. 1986) model and the DRAINMOD (Skaggs, 1978) model were combined and given a new infiltration model to predict pesticide concentrations in subsurface drainage as well as in runoff. The resulting model, ADAPT (Agricultural Drainage And Pesticide Transport) requires input very similar to the GLEAMS model. Calculations are done on a daily basis and are based primarily on a physically-based conceptual model. A review of the factors considered in modeling water and pesticide movement through the soil profile is included in this report, as well as a description of the new model. The appendices provide a listing of the program along with a guide for its use. CHAPTER II Literature Review

Infiltration Infiltration is the process of water entering through the soil, generally through downward flow. The rate of infiltration that can occur, or the infiltrability, depends on the following (Hillel, 1982): - Time from start of rainfall or - Soil hydraulic conductivity - Initial soil-water content - Soil surface conditions - Presence of impeding layers within the profile In general, infiltrability in the early stages of infiltration is high, decreasing and eventually approaching asymptotically a "steady-state infiltrability" as the precipitation event continues. Several methods of predicting infiltration have been developed, both empirically and from solutions of physically-based theories. One of the first equations introduced was the Green-Ampt equation:

f = Ks[I+(es-8i)S/F] (1) where f is steady-state infiltrability, Ks is saturated hydraulic conductivity, 6S is saturated soil-water content, 9j is initial soil water content, S is capillary suction at the wetting front, and F is cumulative infiltration from the beginning of the event. This equation was derived from Darcy's Law with the following assumptions: 1) an excess of surface-water supply existed from time zero; 2) the soil 3 4 profile is homogeneous; 3) infiltration is one dimensional; and 4) rainfall intensity is constant. Mein and Larson (1978) modified the Green-Ampt equation to consider infiltration before surface ponding occurs. Figure la illustrates the soil-moisture profile at the moment of soil saturation. At this time, by definition,

Fs - (9S - 9i)Ls (2) Using Darcy's Law in finite-difference form we can derive,

I = Ks(Sav + Ls)/Ls (3)

where I is the rainfall intansity, Sav is the average capillary suction at the wetting front, and the other parameters are as previously defined. Combining (2) and (3) results in:

which can predict the amount of infiltration prior to runoff and the

time (Fs/I) to beginning of runoff. Figure lb represents the soil - moisture profile after the soil surface has become saturated. Applying Darcy's Law again for an infiltration rate equal to the steady-state rate results in:

fp = Ks[l + Sav(6s - 9i)/F] (5)

which is identical to the Green-Ampt equation except that Sav is more easily defined than the S in the Green-Ampt equation. Philips (1957) derived another physically-based equation that commonly is used. A solution to Richards Equation was found to be the infinite series:

x =0tl/2 + jit + ^3/2 + ujt2 +...fm(Q)tni/2 + (6) where

F - F

W Pi i

(a)

Figure 1: Soil moisture profiles during infiltration (a) at the moment of surface saturation, and (b) at a later time. From Mein and Larson, 1973. 6 which are solutions to a series of ordinary differential equations. For the range of t and D- and K-functions of interest for the infiltration process, equation (6) converges rapidly so that generally the first two terms are considered sufficient. The equation for infiltration capacity then may be written in the form: f = St!/2/2 + C (7) where C and S are dependent on the initial soil-water content. For very large time spans, this equation fails because C is not equal to hydraulic conductivity, which f should approach. Two empirical infiltration eouations often used in modeling are the Horton and Holtan equations (Ward, 1981). The Horton (1939) equation can be written as:

+ f fit f = fc ( o " fc)e- (8) where f is infiltration capacity at time t, f0 is infiltration capacity at time zero, fc is final infiltration capacity, or steady- state infiltration capacity, and /J is a best-fit empirical parameter. This equation is fairly simple and usually gives good results, but there is no real physical basis to it and field data are required for calibration. The Holtan (1961) equation can be written as:

f = fc + a(st - F)b (9) where fc is steady-state infiltration rate, S^ is storage potential in the root zone, F is accumulative infiltration volume, and a,b are determined as the intercept and slope of a log-log plot of (f - fc) vs. (St - F). Although there is a difficulty in choosing a control depth for St, this equation offers the advantages of: 1) being more 7 physically significant than the Horton equation, 2) relating the infiltration capacity directly to soil moisture by use of F instead of t as the independent variable, and 3) eliminating the problem of determining infiltration capacity at any time during the event. The United States Soil Conservation Service (SCS) concept of soil cover complex curve number (CN) can be used to predict infiltration. The curve numbers are used to compute the soil-water storage capacity, S, in inches, by the empirical equation (Aron et.al, 1977): S = 1OOO/CN - 10 (10) Then, runoff, Q, in inches, can be represented as: 2 Q = Pe /(Pe + S) (11) in which Pe is cumulative rainfall excess (inches) defined as:

Pe = P - IA (12) where P is the umuiative rainfall and IA is the initial abstraction consisting of detention and depression storages that must be filled for runoff to occur. By assuming that the quantity (P - Q) represents initial abstraction plus infiltration, and differentiating that result with respect to P, the incremental infiltration AF, over time At can be written as:

F = [S/(Pe + S)]2APe (13) Infiltration then can be estimated based on readily available soil data and a recorded or synthesized design rainfall. An evaluation done by Skaggs and others (1969) of the Green-Ampt, Philips, Holtan, and Horton equations concluded that all gave good results if the parameters were correctly defined. The Green-Ampt and Philips equations tended to give values lower than observed for times 8 greater than the length of the tests to estimate the parameters. However, it should be kept in mind that these equations were derived with the assumption that water is ponded on the surface. The Holtan and Horton equations agreed well with experimental values as long as a reliable estimate of the control depth could be made for Holtan1s equation. The study concluded that in general, the equation for which the most reliable estimate of its parameters could be made should be the equation used for making predictions.

Runoff In modeling runoff, two processes are usually considered - overland flow and channel routing. Channel routing models can be classified further as either hydraulic or hydrologic models. Only physically based models will be reviewed here for overland flow or channel routing. Overland flow is predicted by the continuity equation plus a flow- rate function (Wilson et.al. 1980). The conservation of force- momentum is commonly used to determine the flow-rate function. However, because solving equations for this method is difficult, the flow-rate function often is approximated by a uniform flow equation. The general form of a uniform flow equation can be written as: q = ayb ....(14) where q is discharge per unit width, y is flow depth, and a,b are coefficients depending on the choice of uniform flow equation. If Manning's equation is used for wide rectangular channels, then

q» (1.49/n)Sol/2y5/3 9

means b = 5/3 and a = 1.49/n(S0)l/2. This method of coupling a uniform flow equation with the continuity equation is known as the kinematic wave solution. If the continuity equation is coupled with conservation of force-momentum, the method is called the dynamic wave solution. Channel routing is used to convert an inflow hydrograph at the beginning of a channel reach to an outflow hydrograph the outlet of the channel. Hydraulic models account for both spatial and temporal variation within a reach by the use of the continuity equation. Therefore, partial differential equations are needed to describe the system. In hydroicnic models, ordinary differential equations can be used, as only temporal variations are accounted for. Flow-rate functions in hydrololgic models are usually defined conceptually with respect to storage. Hydraulic models are based on the continuity equation in conjunction with conservation of momentum in an irregularly shaped channel. The continuity equation can be written as:

3X 3>t where Q is discharge (L^/T), A is cross-sectional area (L.2), and q] is the lateral inflow per unit channel length (L^/T). The force-momentum equation can be used as:

a v ,r 3 v (17) I 1 I I | I | | inertia pressure gravity friction where V is mean velocity, g is acceleration due to gravity, Sf is friction slope, So is bed slope and the components are broken down as 10 shown. There are three ways of using hydraulic routing techniques: 1). Dynamic wave - no terms neglected, 2). Diffusion wave - inertia term neglected, and 3). Kinematic wave - inertia and pressure terms neglected. The most common method of solving these equations is with numerical finite-difference techniques. Hydrologic models use the continuity equation based on a mass balance applied to the entire stream reach. This mass balance can be written as:

I - 0 = dSt/dt (18) and in the finite difference form as:

ST2 + 02At/2 = (I2 + Ii)At/2 + ST1 - Oidt/2 (19) where Sj is storage within the reach, I is inflow discharge, 0 is outflow discharge, and At is the time increment. Subscripts 1 and 2 refer to the beginning and end of the time step, respectively. To solve this equation another relationship between storage and outflow must be defined. Three methods commonly used to do this are discussed in the following paragraphs. Reservoir routing applies the concepts for routing a runoff hydrograph through ponds to a channel reach. Outflow discharge is found as a function of storage and a depth-discharge relationship commonly is obtained from observed rating curves or Manning's equation. Once these relationships have been defined, an iterative technique is commonly used to solve equation (19). Rice and Larson's (1974) method of hydrologic modeling is similar to reservoir routing in that it uses the continuity equation defined by (19) and uses relationships between depth-storage and depth-discharge 11 to solve the equation (Wilson et.al. 1980). In their model, a trapezoid channel is assumed in deriving the equations. Solving for Stg and O2 yields:

+ St2 " (A2I A2o)(Ax)/2 (20) and

5 3 1 2 1.49 A20 / (Sf20) / 02 --57= (21) n PZ/3 where A21 is cross-sectional area at the inflow section, A20 is cross-sectional area at the outflow section,Ax is reach length, P20 is wetted perimeter at the outlet, and Sf2o is energy slope at that point. This allows the continuity equation to be solved directly. The Muskir.gham routing method uses a relationship between storage and outflow discharge that is obtained by dividing storage in the channel reach into two components: prism and wedge storage. Prism storage is conceptualized as a function of outflow discharge and wedge storage is assumed to be a function of inflow minus outflow discharge. Total storage is then the sum of the prism and wedge storages. If storage and discharge are assumed to have a linear relationship (St = KQ) then the total storage can be defined as: ST - K0 + KO(I-O) (22) where Sy, I, and 0 are defined previously, K is a constant with the dimension of time, and 0 is a constant that weights importance of inflow and outflow dicharges. If K and 0 are known, equations (15) and (18) can be used in the form:

02 - C1I1 +C2I2 + C3O1 (23) 12

where: cl = KO + A t/2 (24) KU-U)+ At/2

C2 = -K0 + At/2 (25) KU-0)+At/2

C3 = K(l-O) -At/2 (26) K(l-O) +At/2

aand q + C2 + C3 = 1 (27) For gaged watersheds, K and 0 are determined by: a) least square

method, b) graphical method, c) method of moments, d) direct method,

or e) method of cumulents. The graphical method is the most common.

For ungaged watersheds, K and 0 are estimated by manipulating the

Muskingham equation into a form similar to the diffusion model.

Parameters K and 0 can then be defined by hydraulic properties as:

K= (3/5)(Ax/v) (28)

and

0 = 1/2- KQ/[2wS0(dx)2] (29) where v is velocity, Ax is reach length, Q is discharge, w is flow

width, and So is bed slope. The assumptions required for arriving at this equation are that the bed slope is equal to the energy slope and the channel is a wide, rectangular one. The choice of a hydraulic model or a hydrologic model depends on the usage. Hydraulic models have the advantage of measurable parameters that can easily incorporate the effects of lateral flow, but they often require large amounts of input and are difficult to solve. Hydrologic models are much simpler to use but usually require fitting the parameters to observed data. 13 Erosion Sediment models can be classified into two groups: those appropriate for upland areas and those appropriate for watershed size areas. Only models developed for watershed size areas will be reviewed here, although it should be noted that in many cases models for upland areas also are suitable for watershed modeling. Among the most common sediment models is the Universal Soil Loss Equation (USLE) (Wischmeier and Smith, 1960), written as: Y = R K LS C P (30) in which Y is annual soil loss, R is a rainfall erosion factor, K is a soil erodibility factor, LS is a combined slope and plot length factor, C is a cropping management factor, and P is an erosion control practice factor. This is an empirical equation that does not account for deposition within the watershed. The William's (1975) model or Modified USLE was developed using a runoff-erosivity factor in place of the rainfall erosivity factor, R (Wilson et.al., 1980). On watersheds ranging from 2.7 to 4380 acres with slopes of 0.94 to 5.9 percent the best relationship turned out to be:

Y = 95(Qqp)0.56K LS c P (31) where Y is sediment yield in tons, Q is runoff volume in acre-feet, qp is peak runoff rate in ft^/s, and the rest of the parameters are as defined for the USLE. Williams suggested that area weighted factors be used for non-homogeneous watersheds as: WF = V"1 WFj DAi (32) / . Dfi in which WF is the weighted factor for K, LS, C, or P, WF-j is the value 14 of the factor covering drainage area DAj, DA is the total drainage area, and n is the number of subwatersheds. This method is an improvement over the USLE for calculating soil loss for a storm event. However, care should be taken if the watershed under consideration varies greatly from those used to optimize the equation. The Onstad and Foster (1975) model predicts soil detachment using the Foster and Wischmeier variable slope modification of 'he USLE (Wilson et.al, 1980). The rainfall erosivity factor was replaced by a combined rainfall and runoff erosivity factor. An erosion energy term is introduced in estimating detachment and transport capacity of the flow. In their model, the transport capacity of flow is compared at the bottom of each slope segment. If the detachment volume exceeds the transport capacity, deposition is assumed to occur. The amount of sediment that is transported to the next segment is equal to the transport capacity. If the the detachment volume is less than the transport capacity, all detached sediment is assumed to reach the next segment. When compared to observed data, the model was more accurate for the large watershed than for the small one. Other sediment transport models include the Kuh, Reddell and Hiler model (1976), the Overton and Crosby model (1979), and empirical models (Wilson et.al., 1980). The Kuh, Reddell and Hiler model offers better predictions of sediment yield than either the USLE or modified USLE, but was developed for use on small watersheds. The Overton and Crosby model was developed for surface-mined watersheds and so is not appropriate for general models. The empirical models reviewed typically had no physical significance and are only applicable to the 15 type of watershed used in the equation development. The most general method of estimating sediment transport then seems to be the USLE or modified USLE.

1-vapotranspi rati on Soil evaporation and plant transpiration are usually combined and estimated as evapotranspiration (ET). The most common approach in modeling is to predict potential ET (PET) and use a crop coefficient to estimate annual ET. Methods of estimating PET include the Blaney- Criddle (1950) and Thornthwaite (1948) empirical relations as well as the physically-based Penman (1948) equation. The Blaney-Criddle method of estimating PET computes monthly values as: u = 25.4 Ktp/100 (33) where u is monthly PET in millimeters, K is monthly ET coefficient (a function of crop and temperature), t is mean monthly temperature in degrees F, and p is monthly percent of total daytime hours of the year (Schwab et.al., 1981). The Thornthwaite method is similar to this in that it also relies only on temperature and day length as climatic input (Rosenburg, 1974). The relation to estimate PET is: PET = 1.6(10t/I)a (34) in which t is monthly mean temperature. The superscript a is defined as: a = 6.75xlO"7l3 - 7.71xlO-5l2 + 1.79xlO"2I + 0.49 (35) where I is a heat index derived from 12 monthly heat indexes which are a function of the monthly mean temperature. Both the Blaney-Criddle 16 and the Thornthwaite method require calibration for various regions, but they have the advantage of being easy to use and requiring easily accessible input. The Penman equation was derived from an energy balance at the soil surface (Schwab et.al, 1981). Combining Dalton's Law with a condensed energy balance equation resulted in:

PET = _AjRn-G)+jT_( 15.36) (1+0.0062v2)(es-ed) (36) where A is the slope of saturation vapor pressure curve in mb/3C at mean air temperature, If is the psychrometric constant in mb/ 2 °C, Rn is net radiant energy available at the surface in cal/cm day, v2 is average wind velocity at two meters height in km/day, es is mean saturated vapor pressure in mb, and e^ is saturated vapor pressure at mean dew-point temperature in mb. To arrive at this equation it is assumed that the surface is completely covered with a short, well watered grass and the soil heat flux is negligible over a 24-hour period (Butts and Mishoe, 1987). The Penman Equation also assumes that the evaporating surface is at ambient air temperature. The Penman method is called a combination model because both mass and energy balances are used. The main advantage of this model over empirical ones is that daily net radiation, temperature, wind speed, and vapor-pressure deficit are required instead of conditions at the soil surface. However, a major difficulty arises in estimating boundary resistances to heat and mass flux. 17 Drainage. The rate of water movement into subsurface drains depends on the hydraulic conductivity of the soil, the shape and height of the water table (hydraulic gradient), the drain spacing and depth, drain diameters, and the rate water is added by infiltration, redistribution or lateral flow (Hillel, 1971). For the most accurate results, flow rates can be estimated by solving the Richards equation for two- dimensional flow. For computer modeling however, numerical solutions to this equation require too much input and computer time, so other methods commonly are chosen. These other methods include Hooghourit's (see Bouwer and van Schilfgaarde, 1963) equation, Kirkham's (1950) equation, or a one-dimensional form of the Richards equation. The Hooghoudt equation can be written as: 2 q = 8KPdPm + 4Mi (37)

in which q is flux into the drains in cm/hr, Kg is effective lateral

hydraulic conductivity, de is equivalent depth from the drains to the impermeable layer, m is midpoint height of the water table above the drains, and L is drain spacing, as illustrated in Figure 2 (Skaggs,

1978). The equivalent depth de is used in place of d to correct for convergence near the drain tubes. The assumptions used in deriving this equation are (Hillel, 1971): - the soil is homogeneous with constant hydraulic conductivity, - the drains are parallel and equally spaced, - the hydraulic gradient at each point beneath the water table is equal to the slope of the water table above that point, - Darcy's law applies, - an impervious layer exists at some depth below the drain, and - the supply of water from above is at a constant flux q. Other assumptions are that the water table has an elliptical shape and 18

Figure 2: Parameters used in estimating flux to subsurface drains.

is below the soil surface except at the midpoint, where it may reach the surface. For cases where the water table is not completely below the soil surface, an equation was derived by Kirkham to quantify the flux q as: q = JMeil + LzLeL (38) where t is depth of water on the surface, b is depth to the drain, re is effective drain tube radius, and G is a factor dependent on the water-table elevation, profile depth, drain depth and spacing, and drain tube radius. Kg and L are as defined for Hooghoudt's equation. A model developed by Bottcher, Monke, and Huggins (1980) uses a one-dimensional form of the Richards equation and a tile-flow formula derived by Toksoz and,Kirkham. Water movement is expressed in this 19

tile-flow formula as:

qt = KSH/(SF + H) (39)

in which qt is flow velocity into the drain per unit length, Ks is saturated hydraulic conductivity of the lower profile, H is midpoint height of the water table above the drains, S is drain spacing, and F is a factor dependent upon drain spacing, drain radius, and depth to impeding layer. This method assumes a rectangular water-table shape, uniform soil profile, and a hydraulic conductivity that is isotropic and a linear function of the water content. The method of estimating water table elevation used by Bottcher et.al uses a one dimensional form of the Richards equation. The profile is divided into n layers, of which only the ones above the water table are considered. The change in water content, 0, in the itn layer is then determined by a finite-difference form of the Richards equation in the vertical dimension. The boundary conditions used to solve the set of finite-difference equations are determined at the surface layer by a moisture balance that considers ET, rainfall and soil-moisture deficit. The lower boundary is established by setting the outflow of the lowest unsaturated layer equal to the tile outflow predicted by Toksoz and Kirkham's formula. The water-table position is then adjusted to maintain continuity between the two flow regimes. Skaggs (1978) used the soil-water characteristic curve to determine water-table height. The water volume drained per unit area, V(j> when the water table drops to a depth y\ is expressed as an integral depending on the soil-water content prior to drainage and the equilibrium water content distribution which is obtained from the soil- 20 water characteristic curve for a water-table depth yj. The soil-water characteristic is required as input to the model and the water volume drained is determined using Hooghoudt's or Kirkham's drainage equation, which then makes it possible to solve the integral for water-table height y\. In utilizing this method, it is assumed that the vertical hydraulic gradient above the water table is zero, and the unsaturated zone is "drained to equilibrium" with the water table at all times.

Pesticide Transport. The potential for loss of pesticides to groundwater varies with the chemical nature of the pesticide, soil properties, application rates and methods, climatic factors, and ground cover. These factors influence the four general processes that determine pesticide transport: 1) volatilization, 2) decomposition, 3) retention, and 4) transport by water. Table 1 outlines the fate of pesticides in each of the five zones of interest in an agricultural field. It should be noted that pesticide retention by soil also can occur in any of the soil zones. Volatilization of a pesticide is a function of the vapor pressure of the pesticide, pesticide concentration, soil-water content, adsorptivity of the soil, diffusion rate in soil, temperature, and air movement (Cheng and Koskinen, 1985). The volatilized quantity is usually determined by first considering water- solubility and sorption (Wagenet, 1985). Excess pesticide beyond what will dissolve in the soil water or what can be sorbed by the soil is considered available for diffusion across the soil surface and into the atmosphere. 21

Table 1: Fate of Pesticides in an Agricultural Field

ZONE ADDITIONS LOSSES ATMOSPHERE APPLICATION,VOLATILI- DEPOSITION ON PLANTS AND ZATION FROM PLANTS AND SOILS, TRANSPORT BY AIR SOILS, TRANSPORT BY AIR MOVEMENT, DECOMPOSITION MOVEMENT. BY SUNLIGHT. CROP ZONE APPLICATION TO FOLIAGE, VOLATILIZATIONJHROUGHFALL, TRANSPORT BY AIR MOVE- WASH-OFF, DECOMPOSITION BY MENT. SUNLIGHT AND PLANT METABOLISM. SOIL SURFACE APPLICATION TO SOIL, VOLATILIZATION, LATERAL TRANSPORT BY AIR MOVE- TRANSPORT ON THE SURFACE, MENT, THROUGHFALL AND TRANSPORT INTO THE ZONES WASH-OFF FROM PLANTS, BENEATH, DECOMPOSITION BY LATERAL TRANSPORT ON THE CHEMICAL AND BIOLOGICAL SURFACE, UPWARD MOVEMENT MEANS. FROM ZONES BELOW. UNSATURATED SUBSURFACE APPLICATION, DECOMPOSITION BY CHEMICAL ZONE TRANSPORT FROM THE SOIL AND BIOLOGICAL MEANS, SURFACE AND ZONES BELOW. UPTAKE BY ROOTS,TRANSPORT TO SOIL SURFACE AND ZONES BELOW. SATURATED TRANSPORT FROM THE ZONES TRANSPORT INTO ZONES ABOVE, ZONE ABOVE, LATERAL AND LATERAL AND VERTICAL VERTICAL TRANSPORT IN TRANSPORT WITHIN THE GROUNDWATER. SATURATED ZONE, DISCHARGE TO SURFACE WATERS, DECOMPO- SITION BY CHEMICAL AND BIOLOGICAL MEANS. 22 Although volatilization commonly is not explicitly modeled, those models that do consider it usually require as input water solubility and saturated vapor density. More commonly, models consider degradation to include losses by volatilization. Transformation, or degradation, of a pesticide can be by chemical, photochemical, or biochemical means. The predominant method is biochemical breakdown, which is affected by: a) the quantity and availability of the pesticide, b) the presence of micro-organisms or enzymes capable of degrading the pesticide, and c) the activity level of the micro-organisms, as affected by nutrient availability and environmental conditions such as temperature, moisture, oxygen supply, and various soil parameters (Cheng and Koskinen, 1985). To simplify the modeling of this, a first order exponential decay with time is commonly assumed. Persistance, or resistance to degradation, then can be expressed in terms of the half-life of the pesticide. Some studies have shown a first-order function to be greatly in error (Cheng and Koskinen, 1985) whereas others (Rao et.al., 1983) maintain that for temperature ranges of 15-35°C and soil-water tensions of 0.1-1.0 bar, the half life may be estimated within a factor of 2. Some inaccuracy may be caused by other influences on degradation rate, such as pesticide availability and the presence of a plant root, which affects microbial energy and nutrient supply as well as soil-water potential. One of the most important mechanisms to consider once the pesticide reaches the soil is the sorpticn phenomena. Pesticide retention or adsorption depends on the pesticide and soil properties as 23 well as their interactions. The subsurface solids primarily responsible for adsorption are solid organic matter, clay minerals, and amorphous hydroxides. From experimental data, an adsorption isotherm can be plotted as material adsorbed per gram of adsorbant versus the concentration of adsorbant in solution (Pettyjohn and Hounslow, 1983) The results may be linear or an exponential curve. Many models assume a linear isotherm in the form of:

Cs = Cw Kd (40) where Cs is the concentration of the adsorbed phase, Cw is the concentration of pesticide in solution at equilibrium, and Kj is referred to as the partitioning coefficient (Leonard et.al., 1986). Because soil organic matter primarily is responsible for adsorbing pesticides, the partitioning coefficient can be expressed as:

Koc = Kd/OC (41) in which 0C is the fraction of organic carbon in the soil. As Koc increases, the pesticide mobility decreases. The sorption coefficient determined in this manner essentially is independent of soil type and soil particle size (Rao et.al., 1983). However, some authors hold that a linear assumption is not accurate because observed data usually fit better to a curvilinear equation such as the Freundlich equation (Cheng and Koskinen, 1985). The last, and perhaps the most significant mechanism is transport of pesticides by water. How much of the pesticide is transported depends on the water solubility and adsorption ability of the pesticide. Soluble and weakly adsorbed pesticides will commonly move 24 downward into the profile, whereas strongly adsorbed pesticides primarily will be transported on eroded sediment (Lcehr, 1984). The distribution of the pesticide throughout the profile as a function of time represents a combination of mass flow, diffusion, sorption, degradation, runoff, and plant uptake processes (Helling and Gish, 1985). When mass flow (convection) and dispersion are considered simultaneously, they can be summarized by the convection-dispersion equation as: 3C/3t + 3S/at = D92C/3z2 - v 3C/3z - 0 (42) where C is solute concentration (m/L3), D is the dispersion coefficient (L2/T), v is pore-water velocity (L/T), z and t are depth and time, respectively, S is adsorbed concentration, and 0 is degradation (Wagenet, 1985). However, many models determine pesticide movement by performing mass balances on each of several small soil layers, while considering mass changes due to degradation and adsorption. Although this may not be as accurate, it requires less input -2nd less computer time than solving an equation such as (42).

Models Currently in Use. There are many computer models in use that consider pesticide movement in agricultural systems. There are fewer that simulate both runoff and leaching. Some of the more commonly used models in the latter group are: - ACTM (Agricultural Chemical Transport Model) is basically a lumped parameter modef using a modified version of USOAHL-70 for the component (Novotny, 1986). Infiltration capacity is expressed by the Holtan equation and ET is estimated from 25 crop stage, pan evaporation, and soil-moisture characteristics. Erosion-deposition segment predicts soil loss by the modified USLE. Chemical submodel traces movement of single application of a chemical through and over a watershed, simulating sorption by a linear isotherm. Extensive calibration is not required for this model. - ANSWERS (Areal Nonpoint Source Watershed Environment Response Simufation7 is an event-onented model based on the concept of continuity (Beasley et.al., 1980). It consists of a hydrologic model, a sediment-detachment/transport model, and several routing components necessary to describe water movement in overland, subsurface, and channel flow. Distributed parameters are used to model spatially varying processes of runoff, infiltration, subsurface drainage, and erosion. Land use, managment schemes, and conservation practice effects are considered. Extensive calibration is not required for use. - ARM (Agricultural Runoff Management) simulates processes on a time step rather tfian by event (Lorber and Mulkey, 1982). Pesticide transport between vertical zones modeled by a simple mass balance on each zone. Interflow and a^cociated pesticide transport is explicitly simulated by this model. Sediment deposition and foliar washoff are not considered. Extensive calibration is required for this model to be useful (Novotny, 1986). - CPS (Continuous Pesticide Simulation) is also an event-oriented model that simulates pesticide movement through the plant root zone (Lorber and Mulkey, 1982). A pesticide mass balance is maintained in the surface zone and downward movement is by plug flow. Detachment, transport, and deposition of sediment is not considered in this model. Degradation processes are assumed to obey first-order kinetics. Less calibration is required for this model than for others. - PRZM (Pesticide Root Zone Model) simulates pesticide transport tFTrough the vadose zone. It contains hydrology and chemistry components to model runoff, erosion, plant uptake, leaching, decay, foliar washoff, and volatilization (Ritter, 1986). Input requirements are reduced by using simplified expressions of water flow and solute displacement. It has only been tested with field data in a few cases (Wagenet and Hutson, 1986). There are several other useful models available to simulate either runoff or leaching processes with pesticides. For instance LEACHMP (Leaching Estimation And CHemistry Model- Pesticides) models pesticide movement through the vadose zone, but does not account for runoff and 26 erosion (Wagenet and Hutson, 1986). PLIERS (Pesticide Losses In Erosion and Runoff Simulator) accounts for pesticide losses by degradation, volatilization, washoff, adsorption/desorption, and transport of both dissolved and adsorbed pesticides (Kenimer et.al., 1987). However, these processes are considered only at the soil surface. Of the models reviewed, only the ARM model simulates interflow expressly. None of the models consider the effect of a high water table (i.e. within the root zone) on pesticide transport. Only one model, DRAINMOD, was found to simulate subsurface drainage, and it contains no chemistry or erosion component. CHAPTER III THE THEORY OF GLEAMS AND DRAINMOD

The GLEAMS model is a physically based, mathematical model intended for use on field-size areas (Leonard et.al., 1986). It was developed to evaluate the effects of agricultural management systems on the movement of agricultural chemicals throughout the plant root zone. The hydrology, erosion, and pesticide components of the CREAMS (Chemicals, Runoff, and Erosion from Agricultural Management Systems) model were linked and changed slightly to form the GLEAMS model. DRAINMOD is a field-scale mathematical model developed to evaluate the effectiveness of selected water-management designs (Skaggs, 1978). The model describes water movement in artificially drained soils and estimates the following parameters: -number of working days -SEW: sum of excess water (provides a measure of excess water that may be detrimental to plant growth) -number of dry days during the growing season -irrigation volume: allowable irrigation for specified time interval, used for land application of waste. Both DRAINMOD and GLEAMS are conceptual models based on water balances for several layers in a soil profile. The following discussion is based on information found in Skaggs (1978), Knisel (1980), and Leondard et.al., (1986). 27 28 GLEAMS The GLEAMS model is based on mass balances for up to seven layers of soil in the plant root zone. The hydrologic processes modeled include runoff, erosion, evapotranspiration, and percolation. Pesticide transport in runoff and percolation are modeled as well. Rainfall is input on a daily basis, whereas monthly values of temperature and radiation are read in. Other inputs include soil properties, leaf-area index, drainage-area size, field and channel slope, pesticide properties, and pesticide application information. All calculations are done on a daily time step.

Infiltration and Runoff. The model uses the SCS curve-number technique to predict runoff from daily rainfall data (Knisel, 1980).

The maximum retention parameter, sm, is estimated with the moisture condition (I) or dry curve number using the equation:

smx = 1000/CNI - 10 (43) where CNI is related by a polynomial to CNII which may be obtained from

the SCS Hydrology Handbook. This value of smx is then used in the equation:

s = smx (UL - SM)/UL (44) where UL is the upper limit of soil-water storage in the root zone, and SM is soil-water content. The amount of runoff then can be predicted as: Q = (P - 0.2s)2/(P + 0.8s) (45) where P is daily precipitation and Q is daily runoff. The peak rate of 29 runoff then can be computed using the drainage area, mainstream channel slope, and the watershed length-to-width ratio. Infiltration is not actually modeled by GLEAMS. The difference between precipitation and runoff is used as the accumulative infiltration into the first layer, which may then seep into the lower levels of the profile if conditions permit it.

ET and Soil-Mater Routing. The evapotranspiration component of the model estimates both soil and plant evaporation losses. Potential ET is calculated as:

E0 = 1.28AHn (46) A+ JT where A is the c.lope of the saturation vapor pressure curve at the mean air temperature, HQ is the net solar radiation and /is a psychometric constant required as input. A is calculated using the daily temperature in degrees Kelvin and HQ is calculated with the daily solar-radiation values. Potential daily soil evaporation is then estimated as: Eso " Eo e-0-4LAI (47) where LAI is the leaf-area index interpolated from the input table. Actual plant evaporation is computed by

Ep = En * LAI ,01 LAI < 3 .....(48)

Ep = Eo - Es ,LAI > 3 (49) If the amount of moisture in the soil is limiting, Ep is reduced to what soil moisture is available. When soil moisture is depleted to 30 less than the 15-bar or wiKing-point water content, the LAI is held constant until water becomes available. A for the soil profile is calculated by the equation: SMj = SMi_i + Fi - ETi - Oi + Mi (50) where Fj = infiltration on day i, ET-j = evapotranspiration on day i, 0-| = seepage below the root zone on day i, M-j = snowmelt on day i, and SM = soil-water storage in the root zone. Snow is considered to be stored whenever precipitation occurs on a day when the temperature falls beiow zero degrees Celcius. When storage exists and the temperature (T) rises above 0"C, snowmelt is calculated as Mi » 0.18T. Flow of water through the root zone is predicted based on the infiltration or inflow. If the inflow is greater than field capacity of the soil, percolation rate (0) is predicted to occur as: 0 » tf(F + ST/At) (51) where F is infiltration or inflow rate, ST is storage volume, 4t is the routing interval, and d is a storage coefficient that depends on soil-water storage and saturated hydraulic conductivity. ET losses in the root zone are distributed using a simple root-growth simulation model that calculates water use rate as a function of rooting depth.

Sediment Yield. The model estimates sediment yield from overland flow, channel flow or impoundment, in any order of occurrence chosen by 31 the user. Hydrologic input to this component consists of rainfall amount, rainfall erosivity, runoff volume, and peak runoff rate. Computations begin with the uppermost element (always overland flow) and proceed downstream. Sediment load is assumed to be limited by either the transport capacity or by the amount of sediment available for detachment. The initial potential sediment load is calculated by combining the sediment load from the immediate upslope segment with that added by lateral inflow. If this initial potential sediment load is estimated to exceed the flow's transport capacity, deposition is assumed to occur. If the initial potential sediment load is less than the transport capacity, detachment occurs. When deposition is predicted, a new distribution of sediment is calculated. An enrichment ratio also is calculated using specific surface areas of organic matter, sand, silt, and clay. For the overland flow segment, detachment is described by a modified version of the Universal Soil Loss Equation. Transport capacity is described by Yalin's sediment transport equation modified to distribute the capacity among the various particle types. This equation determines transport capacity as a function of shear velocity, shear stress, acceleration of gravity, fluid mass density, hydraulic radius, energy gradeline slope, particle specific gravity, particle diameter, and critical lift force. When excesses or deficits of particle types occur, steps are taken to redistribute the transport capacity. The channel element segment represents flow in terrace channels, diversions, row middles, and other small channels. It is not suitable 32 for gulley or large stream erosion predictions. Many of the same concepts and equations used for overland flow apply in channel flow, excluding methods of calculating shear stress and detachment by flow. As with overland flow, changes in controlling variables along the channel are permitted. Flow in the channels is estimated using spatially varied flow equations. The energy grade!ine is approximated using a set of normalized curves and assuming steady-state flow at peak discharge. Concentrated flow detachment caused by spring rains after planting also is accounted for in this model. Deposition behind impoundments (including parallel tile outlets) is described in the pond segment of the model. The amount of trapped sediment is basically a function of the time available for sediment to settle to the bottom before the flow leaves. The equations used in the pond segment were developed from a regression analysis that fit relationships to output from a more complex model.

Pesticides. The pesticide component of the model accounts for application, dissipation, washoff, degradation, runoff, and redistribution in the root zone. Application can be aerially applied, surface applied, or injected. If injected, the initial distribution of pesticides in the soil layers is estimated by reading pesticide placement by depth. A surface active layer of 1 cm then is used as a source zone for further computations. At the time of runoff, the surface active layer contains pesticide residue determined by degradation, addition from foliar washoff, and vertical translocation. 33 Pesticide degradation occurs both on the plant and within the soil. Degradation on plant foliage is a function of pesticide mass at time zero, foliar half life, and time in days since application. Similarly, degradation in the soil is dependent upon the concentration of pesticides in the soil at time zero, time since application, and a soil half life that is assumed to be constant with depth. Pesticide distribution between the solution and soil phase is estimated as a simple linear adsorption isotherm: Kj = Cs/Cw, where Cs is the concentration in the solid phase, Cw is the concentration in solution, and K

Kd = KQC *_0C (52) 105 where 0C is percent organic carbon expressed as percent of soil mass. The mass of pesticides in layer one is computed by the function:

Z = Zo exp - f P - Q - AWS 1 (53) L(SSG)Ke(( 1-PORJ+POR J where Zo = pesticide mass per unit volume of soil layer at beginning of storm, P = rainfall depth, Q = depth, AWS = soil-water storage capacity to saturation, SSG = specific gravity of the soil, and POR = soil porosity. The concentration in solution calculated from this mass is the concentration available for percolation into layer two. Using a simple accounting procedure, the mass of pesticides percolated from layer one is subtracted from the residue in layer one and added to the residue 34 remaining in layer two after degradation. The water mass percolated from layer one is the infiltration volume minus the field capacity of that layer. For layers 2-7, water mass percolated is: Perc-j = Percj_i + SW-j - FC-j (54) where SW-f is the initial soil-water content of layer i before redistribution of rainfall. Plant uptake and upward movement of pesticides is estimated by layer. Upward movement by evaporation only occurs from one layer to the next, not all the way to and out of the soil surface layer. If evaporation occurs in layer one, pesticides are not moved out because volatilization is already accounted for in the degradation coefficient estimation. The solution concentration for a layer is multiplied by the evaporation mass to calculate pesticide mass evaporated from that layer; this is then subtracted from the mass in layer i and added to the residue in layer i-1. The same process is used in determining the amount taken up by plants.

DRAINMOD The DRAINMOD model is based on a water balance for a thin vertical section of soil profile from the soil surface to an impermeable layer at a point midway between two drain tiles. The water balance is written as:

AVa = D + ET + DS - F (55) where AVa is change in air volume, D is drainage, ET is evapotranspiration, DS is deep seepage, and F is infiltration, all over on increment of time t. For each of these time increments, storage 35 and runoff are computed from the relationship: P=F+ S + RO (56) where P is precipitation, F is infiltration, RO is runoff, and S is the change in the volume of water stored on the soil surface.

Infiltration and Runoff. The model uses the Green-Ampt method of predicting infiltration. The form of the equation used is: f = A/F + B (57) where f is infiltration rate, F is accumulative infiltration, and A and B are parameters that depend on the soil-water content and surface conditions. A and B versus water-table depth are required as input to the model. When it rains, A and B are interpolated from the input table for the water-table depth at the start of the rain. Rainfall exceeding the infiltration capacity of the profile is accumulated as surface storage. When this storage exceeds the maximum storage specified by the user, the excess is designated as runoff. The same A and B values are used through the entire rainfall event unless the water table rises to the surface, whereupon A is set to zero, and B is set to the sum of the drainage, El, and deep seepage rates.

Rooting Depth. The effective rooting depth for this model defines the zone from which water can be taken to supply ET requirements. This depth varies over time, and is input in tabular form as rooting depth versus the date. If the soil is fallow, the effective rooting depth is defined as the depth of the thin layer that will dry out at the surface. 36 Soil-Water Distribution. The soil-water distribution above the water table is distributed into two layers. The wet zone extends from the water table up to the root zone, and possibly up to the surface. It is assumed to have a water content equal to that of a soil column drained to equilibrium by gravity. Assuming the distribution to be independent of the means of water removal, the air volume is related to water-table depth through the scil-water characteristic curwe. Assuming also that hysteresis can be neglected, the change in water- table depth then can be determined simply from the volume of water that enters or is removed over some arbitrary time period. When the maximum upward movement of water (read in as upflux vs. water-table depth) is less than the ET, water is removed from the root zone in layers from the surface downward, creating a dry zone.

ET^ The evaporation component accounts for water loss both by soil evaporation and plant transpiration. The first step is to calculate the daily PET and distribute it on an hourly basis. Daily PET is calculated by Thornthwaite's empirical method, using daily maximum and minimum temperatures, a heat index, and the site latitude. A check then is done to determine whether ET is limited by soil-water condition. If it is not, ET equals PET, otherwise ET is set to the smaller amount that the system can supply.

Subsurface Drainage. The rate of water movement to subsurface drains depends on soil hydraulic conductivity, drain depth and spacing, profile depth, and water-table depth. The method used in DRAINMOD to 37 calculate the flux of water assumes lateral movement occurs mainly in the saturated region (two-dimensional flow). The effective horizontal saturated conductivity and flux are evaluated in terms of water-table elevation midway between the drains and the water level in the drains. If the water table is below the surface, Hooghoudt's steady-state equation is used to determine the flux: 9 = 8 Kp dp m + ^ Kp m2 (58)

where q is flux, m is midpoint water table height above the drains, Ke is equivalent lateral hydraulic conductivity, de is equivalent depth from drains to impermeable layer, and L is the distance between drains. If the water table is at the surface, Kirkham's (1950) equation is used:

q = 4 KP(t + b - rP) (59)

G is a factor dependent on system geometry that is required as input.

For both of the above equations, Ke is determined by: Ke " Hldl +j2d2Jti3i3_LM4_±K5d5 (60) di + D2 + D3 + D4 + D5 where Figure 3 illustrates the values to be used for d and D. Once the drainage flux is calculated, it is checked against the drainage capacity of the system. The drainage coefficient, DC, depends on the size and slope of the drain tubes and is required as input. If the Hux is greater than DC, it is set equal to DC. The outlet capacity is assumed to be sufficient to remove drainage and runoff from the fields. 38

_ aaa »Y ~~ ~™ •"* "~" "•""» r™ """ ~~* "~ "~~ """ "™" "™" ™~ """ ^

?/// M77/a/// a ///a /// J5 ///s/y/^3 /// SK /// si /// s /// ^ /// 53 ///. t///

Figurp 3: Equivalent lateral hydraulic conductivity detennination for five layers.

Subirrigation/Controlied Drainage. DRAINMOD determines water movement in the case cf a subirrigation system using a modified Hooghoudt's equation, and for controlled drainage system using a set weir elevation. Details on these subjects will not be discussed here, as they are not included in ADAPT.

DISCUSSION One important process that GLEAMS and DRAINMOD do not model in detail is infiltration. GLEAMS does not model the process at all, only considering it to occur in the surface active layer of 1 cm. The DRAINMOD version of the Green-Ampt equation does not consider the time required for water to infiltrate, which may effect ET. No 'perfect' model has been developed to predict infiltration, but it is such an important part of the hydrologic cycle that perhaps it should be looked at a little more carefully for a water-management model. 39 Runoff and erosion are calculated using detailed equations in the GLEAMS model, whereas they are not included in DRAINMOD. Erosion seems to be less important in DPAINMOD because it was not developed to model chemical transport, whereas in GLEAMS it was necessary to predict pesticide loss by sediment transport. However, runoff is a key factor in predicting how much water will enter the soil profile and the effect it will have on drainage volume and water-table elevation. It also would be useful to model subsurface drainage with runoff and erosion in the same program to evaluate the effect of subsurface drains on soil loss. Both GLEAMS and DRAINMOD do a thorough job of modeling evapotranspiration. Plant and soil evaporation are both considered in the two models, as well as limiting factors to plant transpiration. GLEAMS may have an advantage in that it considers leaf area of the crop whereas DRAINMOD does not. However, DRAINMOD allows for varying root depth input by the user, which may be more realistic than the root- growth model used in GLEAMS to predict ET. As with all computer models, GLEAMS and DRAINMOD have shortcomings as well as strong points. It is interesting to note however, that the shortcomings of these two models seem to compliment each other. For instance, DRAINMOD has no erosion component whereas GLEAMS has one that produces good results. And although GLEAMS predicts pesticide movements but does not account for subsurface drainage, DRAINMOD does just the opposite. Together the two models could form a comprehensive model useful for a variety of management systems. CHAPTER IV Description of the ADAPT Model

Introduction The ADAPT model has been developed as a research tool to estimate pesticide concentrations in subsurface drain ;iles. It is primarily an extension of the GLEAMS model, modified for use on soils with high water tables. At the completion of this report, the hydrology component has been fully modified, but the pesticide sub-model has not been co-ordinated with the hydrology. The hydrology component of the ADAPT model considers the processes shown in Figure 4. Evapotranspiration, snowmelt, and runoff are modeled as they were in GLEAMS, whereas drainage is modified using the drainage flux equations used in DRAINMOO. Infiltration now is modeled by the Green-Ampt equation and water-table depth is determined by using the concept of drainable porosity. Table 2 lists the processes considered by each model and how they are represented. The erosion and pesticide components of ADAPT remain as they were developed for GLEAMS. The pesticide component will require changes to work with the new hydrology component, but the erosion component needs no modification. The discussion here will center on the hydrology component and how it was developed.

40 41

VJ.TRANSPIRATION RAIN. IRRIGATION & SNOWMELT

RUNOFF EVAPORATION

V

INFILTRATION

Figure A: Hydrologic processes simulated by ADAPT. 42 TABLE 2: A Comparison of DRAINMOD, GLEAMS, and ADAPT modeling methods.

MODEL DRAINMOD GLEAMS ADAPT ZONES MODELED 5 LAYERS EXTEND- 7 LAYERS EXTEND- 7 LAYERS EXTEND- ING TO IMPERM- ING TO BOTTOM OF ING TO IMPERM- EABLE LAYER ROOT ZONE EABLE LAYER "HTPE OF INPUT HOURLY RAIN, DAILY RAIN, DAILY RAIH, DAILY RADIATION MONTHLY RADIA- RADIATION AND AND TEMPERATURE TION AND TEMP. TEMPERATURE RUNOFF COMPUTED FROM SCS CURVE NO. SCS CURVE NO. BALANCE AT SOIL SURFACE INFILTRATION GREEN-AMPT EQTN. DIFFERENCE OF GREEN-AMPT EQTN RAIN AND RUNOFF ET PET FOUND WITH PET IS FUNCTION PET IS FUNCTION THORNEWAITE'S OF MONTHLY AVER- OF MONTHLY AVER- METHOD-FUNCTION AGE TEMPERATURE AGE TEMPERATURE OF LOCATION AND AND SOLAR RAD. AND SOLAR RAD. MEAN DAILY TEMP. DIVIDED INTO DIVIDED INTO SOIL EVAP. AND SOIL EVAP AND PLANT TRANSP. PLANT TRANSP. SNOWMELT NA* DEGREE-DAY FORM- DEGREE-DAY FORM- ULA FOR SNOW ULA FOR SNOW ACCUMULATION AND ACCUMULATION AND MELT MELT DRAINAGE KIRKHAM'S OR NA KIRKHAM'S OR HOOGHOUDT'S HOOGHOUDTS EQTN. EQUATION. WATER WATER TABLE TABLE DEFINED BY CHANGE DEFINED SOIL-WATER CURVE. BY DRAINABLE POROSITY FILLING OR EMPTYING. EROSION NA 6 OPTIONS FOR 6 OPTIONS FOR SEQUENCE OF SEQUENCE OF DETACHMENT AND DETACHMENT AND TRANSPORT OF TRANSPORT OF SEDIMENT SEDIMENT PESTICIDES NA MASS BALANCE OF MASS BALANCE OF EACH VERITCAL EACH VERTICAL LAYER WITH SUR- LAYER WITH SUR- FACE ZONE ACTING FACE ZONE ACTING AS DISTRIBUTION AS DISTRIBUTION CENTER. CENTER.

NA is not applicable, model does not consider that process. 43 Basic Concepts. The moisture content of a soil layer can be expressed as the volume wetness, or the percentage of the total soil volume as:

9 = VW/(VS + Vv) (61) where Vw is the water volume, Vs is the volume of the soil particles, and Vv is the total void volume. Each soil layer then can be represented by a diagram such as Figure 5. The relationships shown in Figure 5 can be broken down further if the availability of soil water is considered. Water held to soil particles at a tension higher than 15 bars is not considered available to plants. Therefore, if only water at this tension is in the soil

Air

Water V w

Figure 5: Volume relations of a soil layer. 44 layer, the moisture content is said to be at the wilting point. The field capacity of a soil layer is considered to be that water content at which the water will no longer drain due to gravity alone. Based on this, "drainable water" can then be considered anything above the field capacity. Figure 6 illustrates the partitioning of a soil layer when these ideas are considered. The ADAPT model assumes that the volume of trapped air is negligible, defining drainable porosity as the difference between total porosity and field capacity.

When water infiltrates into a soil profiles three zones develop: 1) a saturated zone at the surface, 2) a transmission zone that is less than saturation with uniform wetness, and 3) a wetting zone, where the moisture decreases with depth to a point referred to as the wetting front. The wetting front has a moisture gradient so steep there appears to be a sharp boundary between the wetted soil and the dry soil below. Figure 7a shows the relationship between depth and moisture content for an actual soil profile. In the ADAPT model, the profile is assumed to behave as shown in Figure 7b. The hashed areas of the two diagrams represent equal volumes of water. Regardless of whether the water is allowed to be stored in the soil profile or is ponded on the surface, the wetting front can be considered to be the same. The soil profile can be divided into a maximum of eight soil layers in the model to allow for differences in soil properties such as porosity, hydraulic conductivity, and field capacity5 as shown in Figure 8. The rooting depth is divided into seven layers and the eighth layer is regarded as the distance to the impermeable layer from the bottom of the rooting depth. The top layer is used as an active 45

' trapped .air

drainable water

- field capacity plant available total — water porosity

matrix moisture

Figure 6: Water content relations by volume for a soil layer. 46

MOISTURE CONTENT (9)

FC 100%

DEPTH

(a)

MOISTURE CONTENT (9)

-•/• DAY 2 DAY 3 100% —+•

DEPTH DAY 1

DAY 2

DAY 3 -k a *- FC (b) Figure 7: Soil moisture profile (a) for an actual soil profile, and (b) as modeled bv ADAPT. soil snrfarp I ! .' ' f 1 cm 1/6RD - 1 err,

1/6RD

1/6RD RD 1/6RD

1/6RD ADEPTH

1/6RD

DE^TH - RD

impervious laver

Figure 8: Soil profile zones for ADAPT. layer for pesticide simulation in GLEAMS, so it was left as 1-cm thick in ADAPT. The second layer is then the difference between one-sixth the rooting depth and the one centimeter. The drain tiles can be located anywhere in layers two through eight to be correctly interpreted by the model. £T can occur in any of the first seven layers, but is considered to be negligible in the eighth layer. It is assumed that the layering of the soil does not cause any significant changes in the resulting moisture profile.

Mathematics and Logic. The general order in which daily calculations are done in the model is shown in Figure 9. Snowmelt or snow accumulation is calculated first, followed by ET, After adjusting the water content in each layer to reflect ET, infiltration is calculated, along with the corresponding change in water-table height if one occurs. The drainage flux for the day is then calculated, and the final water-table height determined. Using these parameters, the new soil-water storage (total water content minus wilting-point water content) for the profile can be found.

ET. ET for each soil layer and for the profile is determined by the method used in GLEAMS. However, in GLEAMS the entire soil-water storage profile was considered available to supply water for ET. In ADAPT, if there is no plant, only the water above wilting point in layer one is considered available for ET. If a plant is present, only storage in the layers that have a root in them, plus the one below, is YES

CALCULATE SNOWMELT OR SNOW ACCUMULATION , CALCULATE RUNOFF USING SCS CURVE NO. METHOD

CALCULATE ET BY LAYER,LIMITING TO SOIL WATER STORAGE IN EACH LAYER

1 ADJUST SNOW ACCUMULATION OR WATER TABLE DEPTH TO REFLECT ET IF NEEDED

1 CALCULATE WATER CONTENT FOR EACH LAYER AFTER ET

1 DETERMINE INFILTRATION AND WETTING FRONT DEPTH

WETTING FRONT REACH WATER TABLE?

CALCULATE DRAINAGE VOLUME

DETERMINE NEW WATER CONTENT FOR EACH LAYER

SEND VALUES TO REST OF PROGRAM

Figure 9: Daily calculations performed by ADAPT. 50 considered available for ET. No ET can occur in the eighth layer, only in the seven layers of the specified rooting depth. If ET is calculated when tie ground is frozen, the water is considered to come from snowmeH. This quantity of water is then regarded as precipitation, and subtracted from the accumulated snov* if it exists. If no snow is accumulated, ET is reset to zero. Once ET for each layer is determined, U(I), a check is made to see if it occurs in the layer with the water table or in any layers below it. If it does, the water table must be adjusted. Because the water table is considered to be the point where the profile becomes saturated, water removed to cause the water content to decrease to field capacity is considered to lower the water table. The depth to the water table (DTWT) then becomes: DTWT = DTWT + U(I)/(POROSITY(I)-FIELD CAPACITY(I)) (62) where porosity and field capacity are both dimensionless, expressed as inches per inch. The soil-water content of each layer must be adjusted by the amount of water used by ET. The initial water content for layer I then becomes: BWC(I) = BWC(I) - U(I)/THICK(I) (63) where BWC(I) is expressed in inches per inch. This establishes the pore space available for infiltration.

Infiltration. To begin infiltration calculations, a cumulative infiltration, CF, equal to the difference between rainfall and runoff is considered the water supply. A "potential" infiltration for each 51 layer (F(I)) is determined as: F(I) = (SWC(I) - BWC(I))*THICK(I) (64) where SWC(I) is field saturated water content of layer I, and THICK(I) is the thickness of layer I, in inches. The time, t, required for F(I) to infiltrate is calculated using the Green-Ampt equation (Ward, 1981), which can be written as:

t = F - S(9fs - -9i)ln(l + F/[S(8fs - 9j)]) (65) Kfs in which F is cumulative infiltration in inches, S is soil suction at

the wetting front, KfS is field saturated hydraulic conductivity, and

GfS and 0j are the same as SCW(I) and BWC(I), respectively. If the sum of the times for each layer is less than 24 hours, the entire amount of water is considered to infiltrate, and a wetting front depth (WFD) is calculated as: WFD = BOT(I-l) + F(I)/(SWC(I) - BWC(I)) (66) where I is the last layer that water infiltrates into. If the sum of the times required for each layer at any point exceeds 24 hours, the potential infiltration into the last layer must be adjusted. The time for infiltration into that last layer is limited to 24 hours minus the previous sum of times, and equation 47 is solved for F. This adjusted F is then used to calculate the wetting-front depth fcr the day. The supply of water to the profile the following day is adjusted to include carryover if this situation arises. The potential infiltration is defined by the soil-moisture deficit below field capacity, but infiltration will still occur when the profile is at field capacity. In this situation, infiltration will occur at a rate equal to the field saturated hydraulic conductivity. 52 Because the profile is layered, the lowest hydraulic conductivity above the water table is considered the controlling rate and used to calculate "excess" infiltration for the 24-hour period. This "excess" infiltration is considered to be water available to raise the water table. The hashed area in Figure 10 represents the volume of water causing a change in the water-table depth (CWT). The change can be determined as: CWT = XSIN/(POR(I) - SWC(I)) (67) where XSIN is "excess" infiltration, POR(I) is the porosity of layer I, and SWC is as defined previously. Only that pore volume exceeding the field capacity water content needs to be filled to raise the water table because the entire profile must be at field capacity for this situation to arise.

Drainage. As long as the water table is above the drains, a flux value will be determined using Hooghoudt's or Kirkham's drainage equation. If no "excess" infiltration occurs, the water-table depth value from the previous day is used to find a drainage volume for the present day. This volume is considered to come from drainable porosity only, so the new water-table depth (WTD2) can be determined as: WTD2 = WTD1 + DVOL/(POR(I)-SWC(I)) (68) where WTD1 is the previous water-table depth, and DVOL is the volume of drainage for the day. If drainage causes the water table to drop out of one layer and into the next, adjustments are made in porosity and field capacity if necessary. 53

MOISTURE CONTENT (9)

DEPTH

Figure 10: Soil moisture profile when infiltration causes a rise in water table. 54 In the event of excess infiltration, water-table depth calculations are slightly more complex. The new water-table depth determined from equation (49) will give false high values of drainage flux, because drainage will be occurring at the same time as infiltration. An average water-table depth for the day is desirable for drainage calculations in this situation. To simulate this, water- table depth from (49) is first used to determine drainage volume, DVOL1, and the resulting water-table depth (WTD2). An average water- table depth ((WTDl+WTD2)/2) is used to determine DV0L2, which is compared to DVOL1. If the two values are within eight percent of one another, the final water-table depth for the day is found by subtracting DVOL1 from WTD1. If they are not within eight percent, DV0L1 is set as- the value of DVOL2, and a new, average water-table depth and DV0L2 are calculated. This is repeated until the two drainage volumes are within eight percent.

Mater Content. The average water content for each layer at the end of the day is determined as a function of water-table depth, previous water-table depth, and wetting-front depth. Figure 11 demonstrates one possible profile that could arise at the end of a day. Any soil layer below the water table will have a water content equal to its porosity, because air entrapment is considered negligible. Soil between the previous water table and the new water table will have a water content of field capacity content due to the interpretation of drainable water that ADAPT uses. The soil behind the wetting front also will be at field capacity, based on the inethod of describing infiltration. If a 55

soil surface Layer "win Wetting front

mm

_ ~. jirevious water ^l_e

y water ..—. _. . _t able (

impervious layer

Figure 11: Example soil profile when infiltration has occurred. 56 gap exists between the wetting front and the previous day's water table, the water content for that soil will be the initial water content minus the ET value for the day. The soil-water storage (SW1) for the profile in Figure 11 would be determined as: BWC(l) = SWC(l) BWC(2) = SWC(2) BWC(3) = [SWC(3)*(WFD-B0T(2))+BWC(3)*(B0T(3)-WFD)]/ THICK(3) BWC(4) = [BWC(4)*(ODTWT-BOT(3))+SWC(4)*(BOT(4)-0DTWT)]/ THICK(4) BWC(5) = [SWC(5)*(DTWT-BOT(4))+POR(5)*(B0T(5)-0TWT)]/ THICK(5) BWC(6) = P0R(6) BWC(7) = P0R(7) BWC(8) = P0R(8) DO 10 1=1,8 ST(I) = (BWC(I)-WP(I)))*THICK(I) SW1 = SW1 + ST(I) 10 CONTINUE where BOT(I) is the depth to the bottom of layer I, ODTWT is the previous days depth to water table (DTWT), and WP(I) is the wilting- point water content of layer I. These values are used in determining runoff and ET for the following day.

Input Requirements. The User's Guide in Appendix A gives a description of required input. Climatological data such as rainfall and temperature can be obtained from the nearest weather station, but several of the soil properties have to be measured for the field under consideration. Some of the properties, such as porosity, are not directly measurable. However, porosity can be estimated using dry bulk density (BO) and the mean particle density (PD) by: f = 1 - BD/PD (69) Bulk density, also required as input, can be measured using a core 57 sampler to extract an "undisturbed" soil sample of known volume to be weighed. Other parameters, including the SCS curve number for antecedent moisture condition II and the soil evaporation parameter will have to be estimated from published data. For example, values of the SCS curve numbers can be found in the SCS National Engineering Handbook, in Section 4, Hydrology. The soil evaporation parameter ranges from about 3.3 to 5.5 mm/dl/2 with suggested values of 4.5 for loamy soils, 3.5 for clayey soils, and 3.3 for sands (Knisel, 1980).

Model Output. The hydrology output contains both input and calculated values. Tiidi user can specify monthly or annual output, which includes averages for the simulation period. Example output listings can be found in Appendix D. CHAPTER V VERIFICATION STUDY

A brief verification study was performed on the ADAPT model using data from a location in north-central Ohio. Studies conducted by Schwab et.al. (1975) and Skaggs et.al. (1981) provided most of the Jata required for input. Soil porosity and hydraulic conductivities were taken from the original field data for the study, which covered the years 1962-1972. Data for the years 1962-1971 was used for making trial runs of ADAPT. The trial runs used information for a 0.55-acre plot with both surface and . The plot was graded to a slope of 0.2 percent. Corn was planted on the field for most of the years, so rooting depth was considered the same for all years. Table 3 lists the different hydraulic conductivities measured for the soil profile, and Table 4 lists the subsurface drainage system design parameters used by Skaggs et.al. (1981) in an evaluation of DRAINMOD. Leaf area index values were interpolated from a graph presented by Knisel (1980) for corn in Ohio. A soil suction term was estimated from the literature, and assumed constant for the entire profile. For the test simulations lateral and vertical hydraulic conductivity were assumed to be the same, as were saturated conductivity and field-saturated conductivity. An entire input file can be found in Appendix D. 58 59

TABLE 3: Hydraulic conductivities for a soil profile in north-central Ohio.

SOIL DEPTH HYDRAULIC CONDUCTIVITY (IN) (IN/HR) 0-8 0.54 8-20 0.38 20 - 40 0.04 40 - 65 0.03

TABLE 4: Summary of drainage system input parameters for a soil profile in north-central Ohio.

PARAMETER MEASUREMENT, IN. DRAIN SPACING 480.0 DRAIN DEPTH 35.5 EQUIVALENT DEPTH FROM DRAIN 29,5 TO IMPERMEABLE LAYER EQUIVALENT PROFILE DEPTH 65.0 DEPTH OF SURFACE STORAGE 0.4 DRAIN DIAMETER 4.0

TABLE 5: Direct runoff for varying curve numbers and rainfall amounts. RUNOFF (IN) CURVE NO. RAIN=1.0" RAIN*3.0" RAIN=7.5" 65 0.0 0.5 3.5 75 0.1 1.0 4.6 85 0.2 1.6 5.8 60 A sensitivity analysis was performed using three values of curve numbers and three values of hydraulic conductivity. Chosen curve numbers for antecedent moisture condition II were 65, 75, and 85, with 75 being the best estimate from the literature. Table 5 illustrates the effect of curve number on runoff for three rainfall events (runoff calculated using equation 45). For rainfall amounts of under 0.75 inches, runoff was insignificant for all curve numbers. A rainfall amount of 7.5 inches was used as a maximum in the comparison because it was the maximum single rainfall event in the data for the test simulation, occurring in July of 1966. The hydraulic conductivity for the first layer was measured as 0.54 in/hr. For the test simulation, one order of magnitude greater and less than this number were chosen as input. Table 6 summarizes the results, showing average annual values for the 10 year period. In general, the trends seen seem reasonable. Runoff is increasing with increasing curve numbers, whereas drainage is deceasing. Lower hydraulic conductivities also result in lower drainage volumes and higher runoff, which is to be expected. The ET values do not always change as expected. This could be the cause of the error in the water balance, since total losses (runoff+drainage+ET) vary as the error varies. For instance, when hydraulic conductivity is 0.054 - 0.003 in/hr and the error is the highest, total losses range from 37.84 (CN = 85) to 39.41 inches (CN = 65). However, when the hydraulic conductivity is 0.54 - 0.03 and the absolute errors are the lowest, total losses for the three curve numbers only range from 37.39 inches to 37.82 inches, a difference of less than half an inch. 61

Table 6: Average annual losses from 1962 to 1971 simulated by ADAPT.

HYDRAULIC CONDUCTIVITY CURVE NUMBER LOSSES (IN/HR)* 65 75 85 (IN) 13.24 13.35 13.38 RUNOFF 0.054 - 0.003 1.50 1.07 0.18 DRAINAGE 24.67 24.74 24.28 ET 2.08 1.77 0.05 ERROR+ 8.41 10.19 13.15 RUNOFF 0.54 ~ 0.03 4.02 2.46 0.46 DRAINAGE 24.96 24.94 24.21 ET 0.18 0.02 0.04 ERROR+ 7.74 9.85 13.11 RUNOFF 5.40 - 0.30 3.77 2.47 0.22 DRAINAGE 24.96 24.95 24.17 ET 1.12 0.38 0.36 ERROR+ "Range of conductivities from layer one (0.54) to layer eight (0.03) +Averaae absolute error in the water balance over the simulation period.

Table 7: Annual losses for 1970 simulated by ADAPT.

HYDRAULIC CONDUCTIVITY CURVE NUMBER LOSSES (IN/HR)* 65 75 85 (IN) 11.30 11.63 12.21 RUNOFF 0.054 - 0.003 0.81 0.59 0.00 DRAINAGE 25.44 25.21 23.74 ET 2.76 2.05 0.04 ERROR+ 7.83 9.17 12.20 RUNOFF 0.54 - 0.03 2.40 1.00 0.00 DRAINAGE 25.10 25.07 23.61 ET 0.02 0.02 0.03 ERROR+ 7.06 9.04 12.20 RUNOFF 5.40 - 0.30 1.97 1.00 0.00 DRAINAGE 25.11 25.07 23.61 ET 0.09 0.03 0.04 ERROR+ "Range of conductivities from layer one ID.54~pto~layer eight (0.03). +Average absolute error in the water balance over the simulation period. 62 The lack of sensitivity of ET to changes in curve number and hydraulic conductivity is surprising. It might be expected that high curve numbers, and hence high runoff, would result in reduced ET. This trend is observed in the results for 1970, which are listed in Table 7, but is not significant over the ten-year period. For both the ten-year average values in Table 6, and the one-year values in Table 7, there is a decrease in drainage and total loss when the curve number is 65 and the hydraulic conductivity increases from 0.54 to 5.40. This would not be expected to occur, since of the conditions evaluated, this would produce the highest infiltration and lowest runoff. Although this might produce some additional increase in soil moisture, drainage would also be expected to increase. This error could be a result of other interactions that are not considered when only one parameter is changed, or in estimating the best curve number range. The water balance error cannot totally account for this since total loss decreases by more than an inch in 1970, when the error is less than 0.1 inches. It should be noted that the average precipitation over the ten-year period was 37.06 and in 1970 there was 37.39 inches of precipitation. To compare the ADAPT simulated values with observed data, monthly values from March to September were summed and averaged over the 10- year period. For the observed data an average value for the four replicates was calculated. The results are shown graphically in Figure 12. The ADAPT simulated runoff values are high, but generally follow the same trends as the observed data, as seen in Figure 12a. Figure 12a also contains a plot of the results obtained from the original 63

O — O ADAPT # — ft Qbrnar A — A GLEAMS

o

(a) a 3 L

1978

O—O «imul«tod

(b)

(c)

1962 1970

Figure 12: Simulated and observed values plotted for: (a) runoff, (b) drainage, and (c) combined drainage and runoff. 64 GLEAMS model, using the input for the north-central Ohio location. It is very similar to the ADAPT plot, indicating that much of the error in the ADAPT runoff results is due to the method of estimating runoff used in GLEAMS. The simulated drainage values do not follow observed trends as well, but are of about the same magnitude. Skaggs et.al. (1981) found that DRAINMOD tended to over-predict subsurface drainage slightly for the plots used in testing ADAPT. As seen in Figure 12b, ADAPT tends to under-predict the subsurface drainage amounts, indicating that the problem probably lies in the method of determining water-table height used in ADAPT, and not in the drainage flux equations. The combined drainage and runoff in Figure 12c agree better with the observed data than do the individual values. This is to be expected since runoff is over-predicted and drainage is under-predicted by ADAPT. This also indicates that if a better runoff value can be estimated, the rest of the simulated losses will become much closer to the observed values. Since runoff is very much a function of curve number, a recommended step in continuing the testing of ADAPT would be to evaluate the way that the SCS curve number is used in ADAPT and to consider using curve numbers calibrated from observed rainfall-runoff relationships. However, a first step would be to correct the problem which is producing an error in the water balance. CHAPTER VI CONCLUSIONS AND RECOMMENDATIONS

Conclusions. After reviewing the agricultural pesticide-transport models available, it is obvious that none properly consider soils with high water tables. Because subsurface drainage is a common practice for this type of soil, tile drainage should also be considered. The ADAPT model can now simulate the hydrology of such a field, taking into consideration snowmelt or snow accumulation, ET, runoff, infiltration, and drainage on a daily basis. Comparing the values of runoff and drainage simulated by ADAPT to observed data makes it obvious that the model will require further modification to be genuinely useful. The annual water balances (see sample output in appendix D) do not come out to be zero, due to an undetected error in the program. However, these errors are small (<0.01 inches on a daily basis) and cannot account for the discrepencies found between observed and simulated values. The runoff component of ADAPT is that used in GLEAMS, which could be causing the high simulated runoff values. GLEAMS was developed for soils in the southeastern United States, and does not properly consider a wet antecedent moisture condition when calculating runoff. In soils with shallow water tables, this could be an important consideration. 65 66 Simulated drainage values correspond more closely with observed data in magnitude, with five of ten years being respectably close. The error in simulated trends may in part be due to inaccuracies in the input. For instance, the default field capacity of 90 percent of porosity was used because there was no value estimated or measured in the original study. Also, lateral hydraulic conductivity was assumed to be the same as vertical hydraulic conductivity, which may not be true at all.

Recommendations. The first step in making ADAPT more complete is to determine the cause of the water balance error. Once this is done, a more comprehensive data set should be input into the model to evaluate its performance accurately. . To make the infiltration model more complete, a subroutine should be added to determine soil suction at the wetting front and field- saturated hydraulic conductivity. This could be done using Campbell's equation or some similar method (Ward, 1981). Currently, the model uses saturated hydraulic conductivity and constant soil-suction values regardless of soil moisture. A more complete method of predicting runoff needs to be incorporated into the model. For the heavy, clay soils commonly associated with a high water table, the method used by GLEAMS may not be appropriate. Throughflow and deep seepage also need to be included in the model to account for local groundwater movement. The logic of the program 67 should make this a fairly easy task. Throughflow could be user defined in any, all, or none of the soil layers, and deep seepage loss from the eighth layer could be included in the input file. Once the hydrology component has been fine-tuned, the pesticide component should be made compatible. Detailed data from a pesticide study that includes climatic data and soil-property information then would be needed to verify the complete modsl. APPENDIX A USERS' GUIDE TO ADAPT

68 User's Guide to ADAPT

General This user's guide has been created to aid in using the ADAPT model. Many of the variables used in GLEAMS or DRAINMOD have been given the same names to avoid confusion. An outline of each data card, with variable names and definitions, is given in this section. Sample input files can be found in Appendix D. Variables marked by an * are the same as in DRAINMOD, while those marked by a + are new variables. All others are the same as in GLEAMS. Precipitation Daily precipitation values are required for ADAPT, with the same format as GLEAMS and CREAMS: 37 cards per year with 10 values per card. The first 10 columns are reserved for identification data for the user, as well as the last 20 columns (61-80). Any information in these fields will not be read by the model. The READ format for the precipitation file is: lOx.lOfS.Z^Ox. It is not necessary to enter the decimal places, but it is suggested to make data entering easier. Rainfall values are in inches. Hydrology Cards 1-3: TITLE Three eighty-character lines of alphanumeric information identifying the run. Card 4: HBDATE, HYDOUT, IROPT, FLGNUT, FLGPST, FLGGEN HBDATE The beginning date (year and Julian day) for hydrology simulation. Must be less than the first stem date. HYDOUT 0 for annual summary of hydrology output, 1 for storm-by-storm hydrology output. IROPT 0 if no irrigation applied by the model, 1 if irrigation to be applied. FLGNUT 0 if nutrients are not to be run, 1 if nutrients are to be simulated.

69 70 FLGPST 0 if pesticides are not to be simulated, 1 if pesticides are to be simulated. FLGGEN 0 if climatic data are to read in, 1 if climate generator is used. Card 5: DACRE, RC, FCP, CONA, CN2, CHS, WLW, RD, BASEI, TOPI DACRE Total drainage area of the field, in acres. RC Effective vertical saturated conductivity of the soil, in/hour. FCP +Percentage of porosity filled when water content is at field capacity. Defaults to 0.90. CONA Soil evaporation parameter. CN2 SCS curve number for moisture condition II. CHS Hydraulic slope for the field, ft/ft. May be calculated as: CHS = Maximum difference in field elevation Length of longest flow path in field WLW Ratio of watershed length to width. Can be computed as: WLW = (length of longest flow path in field)2 DACRE (acres) * 43560 (sq.ft./acrej RD Effective rooting depth of the crop, inches. BASEI Fraction of plant available water content in the root zone when irrigation is to be applied. Leave blank if IROPT=O on card 4. TOPI Fraction of plant available water content in the root zone desired after irrigation. Leave blank if IR0PT=0 on card 4. Card 6: NOSOHZ, BOTHOR(I) for 1=1 to NOSOHZ NOSOHZ +Number of soil horizons in the profile. Maximum number is eight, used to distinguish differences in POR, BR15, etc. B0TH0R() +Bottom of each soil horizon, in. The seventh value must equal RD on card 5. 71 Card 7: POR(I) for 1=1 to NOSOHZ Soil porosity for each of the horizons,in/in. Card 8: +BWC(I) for 1=1 to NOSOHZ Beginning water content for each horizon, in/in. Card 9: BR15(I) for 1=1 to NOSOHZ Wilting point for each horizon, in/in. Card 10: 0M(I) for 1= 1 to NOSOHZ Organic matter content for each horizon, e.g. 0.40 Card 11; +S(I) for 1=1 to NOSOHZ Soil suction term for each horizon. Card 12: +RKS(I) for 1=1 to NOSOHZ Saturated hydraulic conductivity, in/hr. Card 13: +CONK(I) for 1=1 to NOSOHZ Lateral saturated hydrauK: conductivity for each horizon, in/hr. Card 14: ADEPTH, DDEPTH, HDRAIN, SDRAIN, DDRAIN, DC, GEE, STOR *ADEPTH Actual depth from surface to impermeable layer, in. *DDEPTH Depth to impermeable layer, in. •HDRAIN Distance between water surface in drain to impermeable layer, in. *SDRAIN Drain spacing, in. •DDRAIN Depth of drains, in. *DC Drainage coefficient.

*GEE Factor 'G' for Kirkham's drainage equation.

*ST0R Surface storage. Card 15-16: TEMP(1-12) Mean monthly temperature for each of twelve months, degrees F. Ten values on card 15. Card 17-18: RAD(1-12) Mean monthly solar radiation for each of 12 months, langleys/day. Ten values on card 17. 72 Card 19: GR Winter cover factor to reflect soil evaporation: values range from 0.5-1.0. Use 1.0 for bare soil with little or no residue, 0.5 for soil with winter cover crop or pasture or winter small grain. Card 20: LDATE, AREA, NOIRR LDATE Date (Julian day) AREA Leaf area index (square meter of leaf area per square meter of soil). NOIRR 0 for days when irrigation not considered, 1 for days when irrigation is simulated. Leave blank in IROPT=O on card 4. Note: A minimum of two cards are needed, one for day 1 and one for day 366. As many Cards 20 can be used as necessary to describe the shape of the LAI curve. Card 21: NEWT, NEWR, NEWL NEWT 0 use the same temperature values from previous year 1 read a new set of 12 monthly values -1 stop the program NEWR 0 use the same radiation values from previous year 1 read a new set of 12 monthly values NEWL 0 use the same LAI data from previous year 1 read a new set of Cards 20 NOTE: Temperature, radiation, and leaf area index can all be updated at the end of each year. If this is desired, they will be read in in the same order and format as the original inputs. A card 21 will be followed by another card 15 or card 17, followed by another card 21, etc. If leaf area index is to be updated, a winter cover factor is required.

The rest of the User's Guide is taken directly from the GLEAMS User Manual, since at the time of the writing of this thesis no other input had been altered. 73 Erosion and Sediment Yields. The erosion/sediment yield component of CREAMS was changed very little to make it consistent with hydrology and pesticides in the linked version of GLEAMS. Most of this manual is reproduced directly from the USDA-SCS user manual, TR-72. The GLEAMS user is referred to TR-72 and to the USDA-SEA publication, Conservation Research Report No. 26 for selection of parameter values. TR-72 contains several sample overland flow profile shapes and the associated data for parameter input. This material is not repeated here, so the GLEAMS user must refer to that publication for needed help. The erosion component uses two types of parameters: those parameters that remain constant throughout a simulation - initial parameters (Cards 1 to 15) - and those parameters that change during a year as a function of tillage (Manning's n, depth to non-erodible layer, etc.) or plant growth (Manning's n, soil loss ratio, etc.) - updatable parameters (Cards 16 to 27). The input sequence of updatable parameters was designed to avoid unnessecary repetition of values for different parts of a crop rotation. The updatable parameters are input on an annual basis (January to December) for each year of the rotation until parameters for one full rotation are entered. The values can then be reused for as many as 50 years of simulation. For example, suppose a farmer uses a 2-year rotation of cotton- winter wheat-soybeans for 6 years. This rotation is described by updatable parameters for 2 years. In year 1, cotton is planted and harvested and winter wheat is planted. In year 2, winter wheat is harvested and soybeans are planted and harvested. The updatable parameters for years 3 and 5 would be exactly the same as those for year 1, and years 4 and 6 would be the same as year 2. If the entire simulation is for a single crop grown year after year, only 1 year of updatable parameters are needed. These can be reused for the entire 50 year simulation. If crops are not systematically rotated but conditions vary considerably from year to year, a different set of updatable parameters can be used for each year. Cards 1 - 3: TITLE TITLE Three 80-character lines of alphanumeric information thct identifies the particular computer run. For example, the soil type, the crop rotation, the tillage practices, may be useful in identifying the file. This title will be reproduced in the printed output.

* Card 4: BYEAR, EYEAR, EROOUT, FLGUPD, FLGSEQ, FLGPRT, NPART * * * ******PARAMETER 'FLGPAS' DELETED FROM CREAMS LIST AND REFORMATTED****** 74 BYEAR Last two digits of the year when simulation begins, e.g. 73. EYEAR Last two digits of the year whon simulation ends, e.g. 75. EROOUT 0 for abbreviated annual summary output, 1 for detailed annual summary output, 2 for abbreviated monthly and annual summary output, 3 for detailed monthly and annual summary output, 4 for abbreviated storm-by-storm and summary output, 5 for detailed storm-by-storm and summary output, 6 for very detailed storm-by-storm output by segments and the detailed summary output. CAUTION: If ER00UT=6, the program can generate very excessive output. Generally recommended only for a single storm. FLGUPD 0 if the initial annual parameter inputs are to be reused after the period of rotation is completed, 1 if a new set of annual paramter inputs is to be read after the initial period of rotation is completed. FLGSEQ This flag indicated the execution sequence of erosion/sediment submodels as follows: 1 overland, 2 overland-impoundment, 3 overland-channel, 4 overland-channel-channel, 5 overland-channel-impoundment, c overland-channel-channel-impoundment. FLGSEQ determines whether certain groups of cards are read. Card 8 and 9 are always read once. Cards 10 to 13 are read only if FLGSEQ is 3 or greater; they are repeated for a second channel if FLGSEQ is 4 or 6. Cards 14 and 15 are read only if FLGSEQ is 2, 5, or 6, and they are only read once. FL6PRT 0 if the particle specifications (sediment) are to be computed by the model using default values, 1 if the particle specifications (sediment) are to be read in; NPART must be specified. The number of particle types (sediment) to be read in, e.g. the maximum number of particle types is 20. KIWIS, NBAROV, WTDSOI, KCH, NBARCH, YALCON Parameters on this card can be defaulted to the model. That is, default values, as given below, can be used by leaving the field for the parameter blank. All default values can be used by inserting a blank card. 75 KIWIS Kinematic viscosity (ft2/sec), default 1.21E-05 for 60 degrees F water. NBAROV Manning's "n" for bare soil in the overland flow, default value, 0.01. This must be equal to or less than the minimum updatable values during simulation. WTDSOI Weight density of soil (lb/ft3). default 96.0 (equal to bulk density of 1.54). KCH Soil erodibilitv for erosion by concentrated flow in a channel ((Ib/ft<7sec)(ft2/lb) 1.05), default 0.135; estimate by multiplying 0.39 times K (soil erodibility from soils 5 sheet or USLE Handbook 537). NBARCH Manning's "n" for bare soil in channel flow, default 0.03; this must be equal to or less than the minimum updatable value for channel during simulation. YALCON Yalon constant for sediment transport, default 0.635. Card 6: SOLCLY, SOLSLT, SOLSND, SOLORG, SSCLY, SSSLT, SSSND, SSORG The fractions of clay (SOLCLY), silt (SOLSLT), and sand (SOLSND) should total 1.0. Organic .natter (SOLORG) is a fraction of the soil mass. Complete the entire card. SOLCLY Fraction of clay in the surface soil layer exposed to erosion, e.g. 0.14. SOLSLT Fraction of silt in the surface soil layer exposed to erosion, e.g. 0.20. SOLSND Fraction of sand in the surface soil layer exposed to erosion, e.g. 0.66. SOLORG Fraction of organic matter in the surface soil leyer exposed to erosion, e.g. 0.01. If organic cerbor is known, multiply by 1.73 to obtain SOLORG. SSCLY Specific surface area of clay particles (m2/g). Suggested value of 20.0 for kaolinite and 800.0 for montmorillonite. SSSLT Specific surface area of silt particles (m2/g). Suggested value, 4.0. SSSND Specific surface area of sand particles (m2/g). Suggested value, 0.05. 76 SSORG Specific surface area of organic matter (m^/g). Suggested value, 1000.0. Card 7: DIAM, SPG, FRAC, FRCLY, FRSLT, FRSND, FRORG If FLGPRT = 0 on Card 4, a Card 7 is not needed. Do not leave a blank line. If FLGPRT = 1 on Card 4, as many Card 7's are needed as the value of NPART on Card 4. The sum of the fractions for clay, silt, and sand for each particle size must equal 1.0: organic matter is a fraction of the total sediment mass. DIAM Particle diameter (mm), e.g. 0.030. SPG Specific gravity (g/cm3) of particle, e.g. 2.65. FRAC Fraction of detached sediment that has the specified DIAM and SPG values, e.g. 0.50. FRCLY Clay fraction of sediment particle, e.g. 0.3. FRSLT Silt fraction of sediment particle, e.g. 0.5. FRSND Sand fraction of sediment particle, e.g. 0.2. FRORG Organic matter ft action of sediment particle, e.g. 0.02. Cards 8 and 9 contain the initial overland flow parameters. Card 8: DAOVR, SLNGTH, AVGSLP, SB, SM, SE, XIN(3), YIN(3), XIN(4), YIN(4) Develop contour maps of the field and typical overland flow profile before completing Cards 8 and 9. DAOVR Drainage area (acres) represented by overland flow profile, e.g. 3.2. SLNGTH Slope length (ft) of representative overland flow profile, e.g. 206.0; this is a horizontal measurement, not a measurement made along the sloping ground surface. AVGSLP Average slope (ft/ft) of representative overland flow profile, e.g. 0.0267. SB Slope (ft/ft) at the upper end of the profile, e.g. 0.02. SM Slope (ft/ft) of mid-section, e.g. 0.038. SE Slope (ft/ft) of lower end of the profile, e.g. 0.02. 77 XIN(3) Horizontal distance (ft) from top of slope to the point where the uphill end of the mid-uniform section begins, e.g. 98.0. YIN(3) Elevation (ft) of. the point at the uphill end of the mid-uniform section, e.g. 3.5. XJN(4) Horizontal distance (ft) from top of slope to the point where the downhill end of the mid-uniform section ends, e.g. 156.0. YIN(4) Elevation (ft) of the point at the downhill end of the mid-uniform section, e.g. 1.3. NOTE: The bottom end of the overland flow profile should be 0.0 ft. elevation, and YIN(3) and YIN(4) should be referenced to zero. Detailed descriptions of slope shapes and associated parameters are given in TR-72. Card 9: NXK, XSOIL(I), KSOIL(I), for 1=1 to NXK NXK Number (1 to 5) of slope segments differentiated by changes in soil erodibility factor, e.g. 1. XSOIL(I) Relative horizontal distance (ft) from the top of the slope to the bottom of the segment I, e.g. 1.0. KSOIL(I) Soil erodibility factor (tons/acre per English El) for slope segment just above XSOIL(I), e.g. 0.23 from soils- 5 sheet or USLE Handbook 537. Example: Assume a horizontal slope length of 200 ft, K=0.4 ton/acre per El for the first 150 ft (measuring from the top of the slope), and K=0.2 ton/acre per El for the last 50 ft. The Card 9 would be: 2 0.75 0.4 1.0 0.2 The last relative distance on Card 9 should be 1.0. Cards 10 to 13 contain the initial channel parameters. If FLGSEQ = 1 or 2 on Card 4, no Cards 10 to 13 are needed. If FLGSEQ - 4 or 6, two sets of Cards 10 to 13 are required for the two channels indicated. Channel profile and cross-section plots should be developed before completing Cards 10 to 13.

Card 10: NSC, FLAGC, FLGGS, CTLO 78 NSC Number of channel segments differentiated by changes in slope, e.g. 3 (maximum of 5). FLAGC This flag indicated channel shape: 1 triangular channel; 2 rectangular channel; 3 naturally eroded channel. FLAGS 1 if the program is to calculate the slope of the energy gradeline (friction slope); 2 if the program is to assume that the friction slope equals the channel slope. CTLO 1 if critical depth controls depth at the end of the field channel; 2 if uniform flow controls depth at the end of the field channel; 3 same as 2, except Manning's "n" for the outlet channel is the same as that for the lower segment of the field channel (field channel continues beyond the edge of the field); 4 if a rating curve controls depth at the end of the field channel. Critical discharge (Q) is computed as follows: Q = RA X (Y - YBASE)RN where Q = critical flow discharge, ft^/sec; RA = coefficient (Card 11) Y = flow depth, ft. YBASE= minimum depth (ft) for flow to begin (Card 11) RN = exponent (Card 11) Card 11: CTLZ, CTLN, CTLSL, RA, RN, YBASE Card 11 refers to the outlet control channel (you stand at the field outlet looking downstream). CTLZ Side slope of a cross-section of the outlet control channel, expressed as a ratio of horizontal to vertical e.g. 20.0. CTLN Manning's "n" for the outlet control channel, e.g. 0.03. CTLSL Slope (ft/ft) of the outlet control channel, e.g. 0.002. RA Coefficient in the rating equation, e.g. 2.4. RN Exponent in the rating equation, e.g. 2.25. 79 YBASE Minimum depth (ft) for flow to begin, e.g. 0.0. NOTE: If CTLO (Card 10)=l, 2, or 3, leave parameters RA, RN, and YBASE blank. Card 12: LNGTH, DACHL, DACHU, Z LNGTH Field channel length (ft), e.g. 371.0. DACHL Total drainage area (acres) at the lower end of channel, e.g. 0.2. DACHU Drainage area (acres) above upper end of channel, e.g. 0.2. Z Side slope (ft/ft) of field channel cross-section, expressed as horizontal to vertical distance, e.g. 20.0. NOTE: If FLAGC = 2 or 3 (Card 10), enter the value for Z that most closely approximates the channel shape. Card 13: XSLP(I), SSLP(I), for I - 1 to NSC (Card 10) XSLP(I) Distance (ft) from upper end of the channel to the bottom of the segment I, e.g. 46.0. SSLP(I) Slope (ft/ft) of segment directly above XSLP(I), e.g. 0.021. Cards 14 and 15 are impoundment parameters. If FLGSEQ = 1, 3, or 4 (Card 4) skip Cards 14 and 15 - do not leave blank lines. Card 14: CTL, PAC CTL 1 if the pipe outlet control is typical of impoundment-type terraces; 2 if an orifice coefficient (C, Card 15) is to be entered. PAC 1 if the program is to calculate coefficients for the surface area-depth relationship on the basis of user-supplied parameters for the impoundment basin slopes; 2 if the FS and B values (Card 15) are known for the following equation:

SA = FS (Y)B where SA = surface area (ft2), and Y = depth (ft). Card 15: DAPND, INTAKE, FRONT, DRAW, SIDE, FS, B, DIAO, C 80 DAPND Total drainage area (acres) above the impoundment, generally the drainage area of the field, same as DACRE in hydrology, e.g. 3.2. INTAKE Saturated soil water intake rate (in/hr) or saturated conductivity within the impoundment, e.g. 0.20. FRONT Embankment front slope (vertical to horizontal, ft/ft) e.g. 0.2; Front value is needed only if PAC = 1 (Card 14). DRAW Slope (vertical to horizontal, ft/ft) along channel draining into the impoundment, e.g. 0.024; DRAW value is needed only if PAC = 1 (Card 14). SIDE Slope (vertical to horizontal, ft/ft) of land at impoundment toward DRAW, e.g. 0.01; SIDE value is needed only if PAC = 1 (Card 14). FS Coefficient in the surface area-depth relationship, e.g. 9500.0; needed only if PAC = 2 (Card 14). B Exponent in the surface area-depth relationship, e.g. 1.73; needed only if PAC = 2 (Card 14). DIAO Diameter (in) of pipe orifice, e.g. 3.0; needed only if CTL = 1 (Card 14). C Orifice coefficient, e.g. 3000.0; needed only if CTL = 2 (Card 14). The equation for C is: C = 3600 Q/Yl/2 where Q = peak discharge of pipe at outlet, (ft-tysec), and Y = depth (ft) of water above control orifice. The remaining input, Cards 16 to 27, are updatable parameters that are date dependent. The program checks FLGUPD (Card 4) to determine whether to read a new set of updatable parameters or to reuse the original se«. after a period of rotation (NYEARS, Card 16) is completed. The execution sequence flag (FLGSEQ, Card 4) determines the sequence in which Cards 16 to 27 are read. There are no updatable parameters for an impoundment. The updatable overland flow parameters are on Cards 18 to 21, and the updatable channel parameters are on Cards 22 to 27. An overland-channel-channel sequence (FLGSEQ = 4, Card 4) will have Cards 16 and 17 followed by Cards 18 to 21 for the overland flow, followed by Cards 22 to 27 for the first channel, followed by another set of Cards 22 to 27 for the second channel. 81 Card 16: NYEARS NYEARS The number of years in this rotation, e.g. 1. Card 17: CDATE(J) for J « 1 to 10 CDATE The days (Julian) on which sets of parameters take effect, e.g. 001, 105, etc. The first CDATE must be 001 for the first year of a rotation or simulation in order to have parameters for model operation to begin at the start of a year. The beginning CDATE of subsequent years does not have to be 001. NOTE: The computer reads all 10 data fields on Card 17 but uses only values greater than zero. If, for example, only five CDATEs are to be used in a year (J = 5), enter them in the first five fields of the card and leave the last five fields blank. Use on Card 17 for each year of updatable parameter inputs (NYEARS, Card 16). Each card can have up to 10 dates. The maximum number of CDATEs possible in a rotation is 30. They may be spread out, such as 3 per year for a 10-year rotation (10 Card 17's); 10 per year for a 3- year rotation (3 Card 17's); or any combination between these. Each year does not require the same number of dates. Card 16 and an appropriate number of Card 17's must always be the first cards in a set of updatable parameters. Cards 18 to 21 contain the updatable parameters for the overland flow. Card 18 is read on the initial pass through the program, but not in subsequent reads of updatable parameters. This means that the XFACT's initially entered on Card 15 will remain the same for every year of the rotation. Card 18: NXF, XFACT(I) for I - 1 to NXF NXF Number (1 to 9) of overland flow profile segments differentiated by changes in the overland flow updatable (annual) parameters, e.g. 1. XFACT(I) Relative horizontal distance (ratio of distance over total distance - SLNGTH, Card 8) from top of overland flow profile to the bottom of segment I, e.g. 1.0. 82 NOTE: The last XFACT on Card 18 must be 1.0 in order to account for the entire overland flow profile. NOTE: A set of Cards 19 to 21 are needed for each overland flow segment (NXF on Card 18) for each year of rotation. For example, if NXF = 3, and NYEARS = 3 (Card 16) 9 sets of Cards 19 to 21 are needed. Card 19: CFACT(I.J) for J = 1 to the number of dates per year CFACT(I.J) Soil loss ratio for overland flow profile segment just above XFACT(I), e.g. 0.26. Card 20: PFACT(I.J) for J = 1 to the number of dates per year PFACT(I.J) Contouring factor for overland flow profile segment just above XFACT(I), e.g. 1.0. Card 21: NFACT(I,J) for J = 1 to the number of dates per year NFACT(I.J) Manning's "n" for overland flow profile segment just above XFACT(J), e.g. 0.03; CAUTION: NFACT(I.J) must be no less than NBAROV on Card 5. Cards 22 to 27 contain the updatable channel parameters. Card 22 is read on the initial pass through the program, but not in subsequent reads of annual channel parameters. This means that the XCHAN's entered initially will remain the same for every year in the rotation. Card 22: NXC, XCKAN(I) for I = 1 to NXC NXC Number (1 to 9) of channel profile segments differentiated by changes in the channel parameters, e.g. 1 XCHAN(I) Relative horizontal distance from top of channel to the bottom of the segment, e.g. 1.0 NOTE: The last value of XCHAN on Card 22 must be 1.0 in order to account for the entire channel length. Card 23: NCHAN(I.J) for J = 1 to the number of dates per year NCHAN(I,J) Manning's "n" for channel profile segment just obave XCHAN(J), e.g. 0.065 CAUTION: NCHAN(I.J) must not be less than NBARCH on Card 5. Card 24: CCHAN(I.J) for J = 1 to the number of dates per year 83 CCHAN(I.J) Critical shear stress (lb/ft2) for channel profile segment just above XCHAN(I), e.g. 0.4 Card 25: SCHAN(I.J) for J = 1 to the number of dates per year SCHAN(I,J) Depth (ft) to the nonerodible layer along the channel side in the channel profile segment just above XCHAN(I), e.g. 0.33 Card 26: DCHAN(I,J) for J = 1 to the number of dates per year DCHAN(I.O) Depth (ft) to the nonerodible layer in the channel middle, for the channel profile segment just above XCHAN(I), e.g. 0.33 Card 27: WCHAN(I,J) for J = 1 to the number of dates per year WCHAN(I.O) Top width (ft) of the channel for the channel profile segment just above XCHAN(I), e.g. 10.0; If FLAGC = 1 or 3 (Card 10), enter the WCHAN value that most closely approximates the channel shape. NOTE: A set of Cards 23 to 27 is repeated for each channel segment (XCHAN, Card 22). Similary, a group of sets are repeated for each year of the rotation. If FLGSEQ = 4 or 6 (Card 4), a similar set of Cards 23 to 27 for each segment and year are repeated for the second channel. The parameters on Cards 26 and 27 have a feature none of the other parameters has: if negative values are assigned to any parameter - with one important exception described below - the computer program will use the computed value for DCHAN or WCHAN. For example, a -99.0 value on Card 26 tells the computer program to use the simulated values for DCHAN rather than be constrained to 0.33 foot. Where a positive 0.33 is shown, it informs the program that cultivation has occurred and depth to nonerodible layer or plowpan is 0.33 foot. The -99.0 was selected to give its negative status more prominence; a -1.0 would serve just as well. With one exception, negative numbers on Cards 26 and 27 have no computational value. The exception occurs in the first pass through the annual values; the program reads the first DCHAN and WCHAN values as absolute values whether or not a minus sign is present. In the second pass and subsequent reuses of annual values, if a minus sign is present and the annual values are to be reused (CLGUPD = 0, Card 4), the model uses computed value rather than the absolute parameter value. 84 PESTICIDES. The chemistry component of CREAMS was broken up into two separately programmed components: pesticides and plant nutrients. The pesticide component follows the same general scheme as that for pesticides in CREAMS with a few exceptions. For example, use of soil layers and the calculation of pesticide movement into, within, and throuqh the rootzone makes it necessary to distinguish among surface application, incorporation, and injection. Also, when it is desired to simulate pesticide residue in the soil when simulation begins, then provisions are needed to account for possible residue by layer. Some parameters have changed in the GLEAMS pesticide component compared with the pesticide component of CREAMS. For example, pesticide partitioning coefficient based on organic carbon (KOC) is more descriptive of pesticide characteristic than KD which is computed internally in the model. Thus, KOC replaces KD in the GLEAMS pesticide parameter file. In order to use KOC, and not have to input KD for every pesticide and every soil layer, the organic natter content of all soil horizons was input into GLEAMS in the hydrology component. Most people are accustomed to thinking of pesticide persistence in terms of half life rather than a decay function. Therefore, the DECAY parameter in CREAMS has been changed to soil half life (SHLIF) in GLEAMS. Cards 1 to 8 contain the initial pesticide parameters, i.e. those parameters that do not change during a simulation. Updatable parameters are included on Cards 9 and 10. Cards 1 to 3; TITLE TITLE Three 80-character lines of alphanumeric information that identifies the particular computer run. For example, the soil type, the crop rotation, the tillage practices, may be useful in identifying the file. This title will be reproduced in the printed output, t***********************************************^ BDATE, PSTOUT, PSTPAS, IROT * * **********CARD DOES NOT CONTAIN INFORMATION ON NUTRIENTS************** BDATE The date (Julian) for beginning simulation, e.g. 73138; should be the same as HFJDATE (Card 4 of hydrology parameters). PSTOUT 0 for annual summary output; 1 for monthly and annual summary output; 2 for individual storm and all siaanary output. CAUTION: FLGOUT = 2 generates a large amount of output. 85 PSTPAS 0 if a pass file is not desired; 1 if a pesticide mass pass file is to be created; 2 if a pesticide concentration pass file is to be created; 3 if both types of pesticide pass files are to be created. IROT Number of years in a rotation cycle, as follows; 0 if pesticide application dates change each year of and input is for each year of simulation; 1 if the same crop is grown each year and the same pesticide parameters are to be reused each year of the simulation; 2 for the number of years in the rotation - the to pesticide parameters are reused each rotation 50 cycle of the simulation. Card 5: NPEST, PBDATE, PEDATE NPEST Number of different pesticides considered in the simulation (maximum of 10), e.g. 7 PBDATE Date (Julian) on which the modle begins to consider pesticides, e.g. 73175; if soil residue is to be represented when simulation begins, PBDATE must be the same as BDATE (Card 4). PEDATE Date (Julian) on which the model stops considering pesticides, e.g. 75365; generally the end of the sirmPation period.

*Card 6: NOPEST, PSTNAM, H20S0L, HAFLIF, SOLLIF, KOC, FOLRES, * * FLGRES, WSHFRC * **********SOLLIF, KOC, AND FLGRES ARE DIFFERENT FROM CREAMS***********

NOPEST Pesticide identification number, form 1 to 10, e.g. 1

PSTNAM Pesticide name, as many as 16 characters, e.g. ATRAZINE

H20S0L Water solubility (pprn), e.g. 33.0

HAFLIF Foliar residue half-life (days), e.g. 2.0

SOLLIF Soil half-life (days), e.g. 3

If DECAY is given, SOLLIF can be determined as:

SOLLIF = 0.693/DECAY 86 KOC Partitioning coefficient, ratio of the concentration of pesticide in organic matter to concentration of pesticide in water, e.g. 200.0 If KD is known, KOC can be estimated as follows: KOC = KD x 100 which assumes 1% soil organic carbon. FOLRES Amount of pesticide residue on the foliage (ug/g or ppm) when the simulation begins, e.g. 0.0 FLGRES Flag to indicate whether pesticide residue exists in the soil when simulation begins, e.g. 0 0 no pesticide residue when simulation begins; 1 pesticide residue when simulation begins. NOTE: If FLGRES = 0, no Card 7 is read. If FLGRES = 1, a Card 7 is read right after Card 6. WSHFRC Fraction of pesticide on the foliage available for rainfall washoff, e.g. 0.0

RESIDU(I) for I = 1 to 7 * *******SAME AS SOLRES IN CREAMS EXCEPT RESIDU IS FOR 7 SOIL LAYERS**** RESIDU(I) Pesticide residue in the soil layers (ug/g or ppm) when simulation begins, e.g. 0.50 NOTE: As many Card 6's are needed as NPEST on Card 5. Updatable pesticide parameters are contained on Cards 8 and 9. Card 8: PDATE, CDATE, IPST PDATE First date on which the pesticide parameters on Card 9 are valid. PDATE is the date of application of the pesticide identified by NOPEST on Card 9, e.g. 1121; the first digit in PDATE is the numerical sequence of the year in the rotation cycle and the last three digits are the Julian day. CDATE Last date on which the pesticide parameters on Card 9 are valid, for example, the day before the next pesticide application. As in PDATE, the first digit in CDATE is the numerical sequence of the year in the rotation cycle and the last three digits are the Julian day, e.g. 1131 87 IPST The number of pesticides applied on PDATE, e.g. 1

*Card 9: NOPEST, APRATE, DEPINC, FOLFRC, SOLFRC, THRWSH, METH * * * **********METH IS A NEW PARAMETER NOT USED IN CREAMS****************** NOPEST Pesticide identification number, e.g. 1 APRATE Rate of application (kg/ha) of active ingredient, e.g. 3.36 DEPINC Depth of incorporation (cm), e.g. 1.0; use 1.0 for surface application. FOLFRC Fraction of pesticide applied to the foliage, e.g. 0.0 SOLFRC Fraction of pesticide applied to the soil, e.g. 1.0 THRWSH Rainfall threshold (cm) for foliage washoff, e.g. 0.0 METH Code for method of application: 0 for surface application; 1 for incorporation; 2 for injected (placed in bottom of furrow). NOTE: When METH = 2, DEPINC is the depth of injection. The amount of pesticide that reaches a target field (foliage and soil) is not necessarily the rate applied depending upon the method of application. FOLFRC and SOLFRC allows the user to adjust for volatization, drift, etc. Card 9 is repeated as many times as IPST on Card 8 for each application. The end of the parameter set is established by entering a zero in PDATE on Card 8. APPENDIX B GLOSSARY OF TERMS

88 GLOSSARY OF TERMS

A(I) Mean monthly temperature, degrees F. ABWC Average beginning water content for the profile, in/in. ACCPEV Actual plant evaporation. ACCSEV Actual soil evaporation. ADD Total potential evapo-transpiration for the year, in. ADEPTH Actual depth from surface to impermeable layer, in. AIRR Irrigation applied over last year, in. ALAI,ALONE,ALAMX Value of the leaf area index. APOR Average porosity of the profile, in/in. AQ Annual average runoff, in. AR Annual average rainfall, in.' AST(I) Amount of water in layer I available for ET that will cause the water content to decrease to field capacity. ATDVOL Total annual drainage volume, in. AVACON Concentration of pesticides in layer 1, available to move to layers 2-7. AVAMSS Mass of pesticides in layer 1, available to move to layers 2-7. AVDST(I) Amount of water that must be drained from layer I to lower the water content from saturation to field capacity. AVGSWC Average soil water content for profile. AVGTMP Average temperature, degrees C. AVIST(I) Amount of pore space available in layer I for infiltration, raising the water content to saturation. 89 90 AWU Annual average ET, in. B(I) Mean montly radiation, Langleys/day. B15 Average wilting point for the profile, in. BD(I) Soil bulk density of layer I. BOT(I),BOTD(I),NBOT(I) Bottom depth of layer I. BR15(I),BRR15(I) Wilting point water content of layer I, in/in. BWC{I),BWCC(I) Beginning water content of layer I, in/in. CF Accumulative infiltration for the profile, in. Cr'STW(I) Concentration of pesticides in the soil water in layer I. CONE Effective saturated lateral hydraulic conductivity, in/hr. CONK(I) Saturated lateral hydraulic conductivity, in/hr. CW Pesticide concentration in soil water for the profile. CWT Change in water table depth from infiltration, in. CWT2 Change in water table depth from drainage, in. D Slope of the saturation vapor pressure curve. DC Drainage coefficient. DDEPTH Depth to impermeable layer, in. DDRAIN Depth to drains, in. DLAI(I) Change in leaf area index to day I. DLAY(I),THICK(I),HEIGHT(I) Thickness of layer I, in. DRGCON Pesticide concentration in drainage volume from tiles. DRNCON Pesticide concentration in draining water throughout the profile. DRNG,DVOL Volume of water drained in one day, in. DRNMSS Mass of pesticides in the drainage water. DRNPST(I) Mass of pesticide I lost in the drainage water. 91 DTWT Depth to water table, in. DV0L1 Drainage volume calculated using the water table depth after infiltration, or the maximum for the day, in. DV0L2 Drainage volume calculated using the average water-table depth for the day, in. EM Distance of water level in drains to water level at midpoint between drains, in. ENRICH Soil loss enrichment ratio. EOS Potential evaporation at the soil surface. EP Daily plant evaporation, in. EPP(I) Sum of potential plant evaporation to day I. ES Daily stage two soil evaporation, in. ESI Sum of EOS to date. ETE(I) ET from layer I greater than that required to lower the water table to the bottom of layer I, in. EVPPST Mass of pesticide evaporated (moved up one layer) by soil evaporation. F(I) Accumulative infiltration into layer I, in. Fl Infiltration estimate to start iterative solution for F(I), in. F2 Infiltration estimate, in. FCC(I) Field capacity for layer I, in. FDCPMM(I) Field capacity in millimeters. FLCAP Average field capacity for the profile. GEE Factor 'G' for Kirkham's drainage equation. GMLOSS Monthly total pesticide loss from profile, g/ha. GR Winter cover factor. HDRAIN Distance between water surface in drain to impermeable layer, in. HO Net solar radiation. 92 HYDOM(I),OM(I) Percent organic matter in layer I. H2OCON Pesticide concentration in soil water. H2OSOL Pesticide water solubility. ISNOW Flag to print snow notice in output. TWT Number of layer in which water table appears. IY Year being simulated. KD(I,J) Pesticide I partitioning coefficient for layer J. KE First date that leaf area index exceeds zero. L(I) Depth wetting front extends into layer I, in. MDRN Monthly drainage volume, cm. MPRECP Monthly rainfall, cm. MRUNFF Monthly runoff, cm. MSOLOS Monthly soil loss, T/ha of sediment. NDRNM Number of storms producing drainage. NFZDAY Number of days of frozen soil during snowmelt. NPEST.NUMP Number of pesticides simulated (0-10). NRNFFM Number of storms producing runoff. NS Number of soil layers. NSED Number of storms producing sediment loss. NSTRMM Total number of storms. OCF Accumulative infiltration left over from previous day. OLDST(I) Soil water storage in layer I at the end of the previous day, in. OSW(I) Previous days soil water content in layer I, in/in. OTSW Yearly total of beginning water content, in/in. PI Constant portion of the peak runoff rate equation. PCTDRN Percentage of applied pesticides lost in drainage. 93 PCTLOS Percentage of applied pesticides lost from the profile. PCTSED Percentage of applied pesticides lost with sediments. PCTWAT Percentage of applied pesticides lost in runoff. PERC Water available to percolate from layer 1 to layer 2. PIN Daily precipitation, in. PMASS Total mass of pesticides in the profile. PMASSD Pesticide mass in drainage water. PMASSS Pesticide mass in soil, by layer. PMO(I),PRE(I) Rainfall amount for month I. PORIN(I) Porosity value read in for layer I. POTET(I) Potential ET for day I. POTPEV Potential plant evaporation. PCTSEV Potential soil evaporation. PREPST(I.K) Pesticide concentration in layer K before washoff is added. PSW Annual final soil water storage for the profile, in. PWU Total potential plant evaporation for the year. QP(I),RUN(I) Runoff for month I. RAD(I) Radiation on day I, langleys/day. RKS(I) Saturated hydraulic conductivity for layer I, in/hr. RINF(I) Net infiltration into layer I, in. S(I) Soil suction term for layer I, inches of water. SAT(I) Saturated soil water content for layer I, in, SDRAIN Drain spacing, in. SMI Constant used in estimating daily runoff. SMD(I) Soil moisture deficit, difference between field saturation and field capacity. 94 SMR Yearly sum of rainfall. SMX Maximum retention parameter for SCS equation of daily runoff. SNO Amount of snow accumulated, in. SOLLOS Pesticide amount lost with sediment, g/ha. SOLOSS Average soil loss for the area, t/acre. SOLPOR(I) Soil porosity for layer I, mm/mm. S0LPST(I,K) Pesticide concentration in layer K after degradation. SP1 Constant used in estimating daily runoff from SCS equation. SPG Simulates root growth. ST(I) Soil water storage aboye the wilting point, in. SUMF Sum of infiltration that has occured, in. SUMT Time required for SUMF to occur, hrs. SW1.TSW Soil water storage for the profile, in. SW2 Soil water storage for the root zone only, in. SWC(I) Field capacity water content for layer I, in/in. SWMAX Annual maximum soil water content, in. SWMIN Annual minimum soil water content, in. SYQ Total annual runoff. SYR Total annual rainfall. T Number of days since stage two soil evaporation began. TABWC Total beginning water content for the profile, in. TAPOR Total porosity for the profile, in. TB15 Total wilting point water content for the profile, in. TDVOL Total annual drainage volume, in. TFLCAP Total field capacity for the profile, in. TM(I) Time for infiltration to occur in layer I, hr. 95 TOST Total storage available for ET. TSWC Beginning water content for the profile, in. TST(I) Beginning water content for layer I, in. TU Stage one upper limit of soil evaporation. TUL Total upper limit of storage above the wilting point for the root zone. TYWU Total annual ET. U(I) Water used in ET for layer I, in. UF(I) Field capacity for layer I, iron/mm. UL(I) Upper limit of soil water storage above the wilting point, in. UW Total daily ET from the root zone. V Final available soil water storage, in. VT Average available soil water storage, in. W(I) Thickness of the saturated zone in layer I, in. WATL.OS Amount of pesticides lost with runoff. WATVOL Volume of water in the layer, ran. WF Weighting factor used in determining runoff with SCS equation. WFD Total wetting front depth, in. WP(I) Wilting point for layer I, in. WTD1,2 Depth to water table for drainage calculations, in. WTLAY Soil layer nuraber in which water table appears. WU(I),USE(I) Evapotranspiration for month I. XSIN Infiltration exceeding that required to bring the profile to field capacity, in. APPENDIX C ADAPT SOURCE CODE

96 ***********************************************VH^ CIO IOC CIO ADAPT - Agricultural Drainage And Pesticide Transport , IOC CIO an extension of the (3LEAMS model IOC CIO by IOC CIO Cathy A. Alexander and IAndrew D. Ward IOC CIO at IOC CIO the Ohio State University,, Columbus. Ohio IOC CIO December, 1988 IOC CIO IOC CIO IOC CIO SYSTEM DEPENDENT I/O UNIT AND FILE SELECTION IOC CIO PRECIPITATION FILE - READ FROM UNIT 01 IOC CIO HYDROLOGY PARAMETERS FILE •• READ FROM UNIT 02 IOC CIO EROSION PARAMETERS FILE • READ FROM UNIT 03 IOC CIO NUTRIENT PARAMETERS FILE •- READ FROM UNIT 04 IOC CIO PESTICIDE PARAMETERS FILE -• READ FROM UNIT 05 IOC CIO DUMMY DATA FILE • WRITE/READ UNIT 06 IOC CIO HYDROLOGY OUTPUT FILE • WRITE TO UNIT 07 IOC CIO EROSION OUTPUT FILE • WRITE TO UNIT 08 IOC CIO NUTRIENT OUTPUT FILE • WRITE TO UNIT 09 IOC CIO PESTICIDE OUTPUT FILE • WRITE TO UNIT 10 IOC CIO PASS-MASS OUTPUT FILE • WRITE TO UNIT 11 IOC CIO PASS-CONC OUTPUT FILE • WRITE TO UNIT 12 IOC CIO IOC CIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIC COMMON /HEAD1/ TITLE COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON /HYDROL/HBDATE,HYDOUT,IROPT, FLGNUT,FLGPST,FLGGEN INTEGER HBDATE.HYDOUT,IROPT.FLGGEN,FLGNUT,FL6PST CHARACTER *80 TITLE(3) C **** THIS IS THE TOP OF THE MAIN PROGRAM LOOP **** C C * * LOGICAL UNIT DEFINITIONS FOR THE FILE UNITS C LUN01 = 01 LUN02 = 02 LUN03 = 03 LUN04 = 04 LUN05 = 15 LUN06 = 16 LUN07 = 07 LUN08 = 08 LUN09 = 10 LUN10 = 09 97 98 LUNU = 11 LUN12 = 12 C C CALL THE SUBS THAT SET UP THE FILES FOR THE PC CALL FILES C * * C * * WRITE (*,5) 5 FORMAT (1111111111*™% 'DATA FILES OPENED.PROGRAM IS RUNNING1) DO 10 J=l,3 READ (LUN02.2001) TITLE(J) 10 CONTINUE READ (LUN02.2000) HBDATE,HYDOUT,IROPT,FLGNUT,FLGPST,FLGGEN WRITE(LUN07,7000) DO 30 J=l,3 WRITE (LUN07.7002) TITLE(J) 30 CONTINUE CALL HYDONE STOP 2000 FORMAT(10I8) 2001 F0RMAT(A80) 7000 FORMAT(1H1,22X,22HADAPT HYDROLOGY OUTPUT,/, 1 22X.24H ,//) 7002 FORMAT(1X,A72) END SUBROUTINE HYDONE COMMON /ERYPST/PSTPAS,PSTOUT,NBDATE,PBDATE,PEDATE,NPEST, & APRATE(10),H20SOL(10),DECAY(10),KOC(10), & F0LFRC(10),S0LFRC(10),F0LRES(10),S0LRES(10,8), & WSHFRC(IO).THRWSH(IO).TOTPST(IO),FOLRSV(IO), & DEPINC(IO) COMMON /HYDROL/HBDATE,HYDOUT,IROPT,FLGNUT,FLGPST,FLGGEN COMMON /HYDVAR/ ADD,SUM,T0T,P0TET(366),EPP(366),PWU,SPG COMMON /IRRIG/IDAY,N0IRR(366) COMMON /HONE/ RD,DACRE,RC,SIA,CHS,WLW,CN2,BHC(8),FCP,UL(8),NS, & P0R(8) COMMON /SUm/ PMO(600),QP(600),WU(600),DVOLM(600),SWM(600) 1 ,TIRR(600),ISN0W COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(8),REFF COMMON /BLK1/ EOS,SW2,RAIN,TUL,TU,CONA,ES,EP,MO,IDA,IYR, & NT,UW,JE,J COMMON /PASS/ JDATE,DRAIN, QL, QPEAK.DEI COMMON /PRCP/ SOLOSS,ENRICH,DP,DVOL, 1 AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,TST(8), 1 F(8),UP(8) COMMON /NUTPST/BD(8),FCC(8),C0NV(8),BWCC(8),P0RIN(8),BRR15(8), & 0SW(8),SAT(8),B0TD(8),DLAY(8),0M(8),KD(10,8),NB0T(8),HEIGHT(8), & S0ILMS(8),SWC(8),WTLAY COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON /FLAG / FLGRES(10),NFLG COMMON /ANBUDG/ SYR,SYQ,SDVOL,TYWU,OTSW,PSK,AIRR 99 COMMON /0RGMAT/HYD0M(8) COMMON /DRNS/THICK(8),HDRAIN,DDEPTH,C0NK(8),SDRAIN,DDRAIN,DC, 1 ADEPTH.GEE.STOR COMMON /FLDCAP/FDCPMM(8) COMMON /PINF/RINF(8),U(8) COMMON /INFIL/S(8),RKS(8) C * * INTEGERS FOR HYDONE INTEGER HBDATE,BEGYR,BEGDAY,HYD0l'T,DP5,WTLAY, 1 FLGUPD,FLGSEQ,WCHMON,DP,ELEM,FLGTMP,FLGPST C * * REALS FOR SUBROUTINE HYDONE REAL T(8),WF(7),TM(8),L(8),INF,SMD(8),AVIST(8),AVDST(8) REAL KD,0LDST(8),WP(8),ST(8),UF(8),W(20),B0T(8),AST(8),ETE(8) C * * CHARACTER FOR SUBROUTINE HYDONE DATA MO1.NBMO /2*1/ DATA U1,UB,VL /O.4,3.065,15.0/ DATA WF/0.045,0.463,0.254,0.127,0.063,0.032,0.016/ PASS5 =0.0 BEGYR =HBDATE/1000 BEGDAY =HBDATE-BEGYR*1000 IDA =BEGDAY ISNOW =0 DO 2 1=1,600 PMO(I) =0.0 QP(I) =0.0 WU(I) =0.0 DVOLM(I) =0.0 T;RR(I) =0.0 2 SWM(I) =0.0 SW1 =0.0 TWV =0.0 SNO =0.0 TUL =0.0 DP5 =0 OCF =0 NDIV =0 NS =8 WTLAY =1 C * * INITIALIZE THE 366 ARRAYS * * DO 3 I = 1, 366 TC(I) = 0.0 3 CONTINUE CALL HYDRIN(NFRZ.NFZDAY) CALL SETONE(NFRZ.NFZDAY) ALAI =ALONE IF(BEGDAY.LE.l) GO TO 6 NBDAY = BEGDAY-1 DO 4 1=1,BEGDAY CALL UPDATE(I,ALAI,1.0,0.0) 4 CONTINUE 6 CONTINUE TU c9.0*(C0NA-3.0)**0.42 IYR =BEGYR-1 JYR =M0D(IYR,100)*1000 100 PI =200.0*((DACRE/640)**0.7)*((CHS*5280.0)**0.159) *(WLW**(-0.187)) P2 =0.824*DACRE**0.0166 SPl =1.O+SIA SMI =1.O-SIA THICK(l) =0.3937 THICK(2) =(0.1667*RD)-0.3937 DO 7 1=3,7 THICK(I) = 0.1667 * RD CONTINUE THICK(NS)=ADEPTH-RD DO 8 I=1,NS UL(I) = (POR(I) - BR15(I)) * THICK(I) HEIGHT(I) = THICK(I) CONTINUE TB15 =0.0 TAFUL =0.0 TAPOR =0.0 TFLCAP =0.0 DO 10 1=1,NS BWCC(I) =BWC(I) PORIN(I) =POR(I) BRR15(I) =BR15(I) OM(I) =HYDOM(I) T(D =48.0/(2.0*UL(I)/RKS(I)+24.0) (()) T(I)=1.0 ULE =ULE+UL(I) UF(I)=FCP*POR(I)*THICK(I) IF (FCP.EQ.O) UF(I)=0.90*P0R(I)*THICK(I) C SWC IS THE SATURATED WATER CONTENT FOR EACH LAYER (IN/IN) SWC(I) =UF(I)/THICK(I) C convert uf from in to mm and pass to inipst for printing FDCPMM(IHF(I)*25.4 TB15 =TB15 + (BR15{I) * THICK(I)) TABWC =TABWC + (BWC(I) * THICK(I)) TAPOR =TAPOR + (POR(I) * THICK(I)) TFLCAP =TFLCAP + UF(I) 10 CONTINUE ULE2=ULE-UL(8) B0T(l)=0.3937 B0T(2)*RD/6.0 DO 15 J=3,NS-1 B0T(J)=(J-l)*RD/6.0 15 CONTINUE BOT(NS)=ADEPTH B15 =TB15/adepth ABWC =TABWC/adepth APOR =TAPOR/adepth FLCAP =TFLCAP/adepth RD2 =RD*25.4 C2 =CN2*CN2 C3 =CN2*C2 CN1 =-16.911+1.3481*CN2-0.013793*C2+C.00011772*03 101 SMX =(1000.0/CNl-10.0)*1.2 VRT1 =SMX/ULE2 CN22 =95.0 IF(CN2 .GE. 80.) CN22=98.0 C22 =CN22*CN22 C33 =CN22*C22 CN11 =-16.911+1.3481*CN22-0.013793*C22+0.00011772*C33 VRT2 =((1000.0/CNll-10.0)*1.2)/ULE2 CRITS =0.1*ULE2 DO 17 1=1,7 TUL=TUL+UF(I) 17 CONTINUE DO 20 1=1,NS ST(I) =(BWC(I)-BR15(I))*THICK(I) SW1 =SW1+ST(I) OLDST(I) -ST(I) WP(I) -THICK(I) * BR15(I) 20 CONTINUE SW2=SW1-ST(8) V =ULE-SW1 OTSW =SW1 SWMIN -SW1 SWMAX »SW1 MINDAT =JYR+1 MAXDAT =JYR+1 WRITE(LUN07,3001) DACRE,RD,RC,ABWC,FLCAP,C0NA,AP0R,CN2, 1 CHS,WLW,Pl,P2,ULE,B15,0TSW,BASEIJ0PI WRITE(LUN07,3002) (UL(I),I=1,NS) WRITE(LUN07,3003) (ST(I),I=1,NS) WRITE(LUN07,3014) (BWC(I),I=1,NS) WRITE(LUN07,3013) (PORIN(I),I=1,NS) WRITE(LUN07,3011) (UF(I), 1=1,NS) WRITE(LUN07,3012) (BR15(I), 1=1,NS) WRITE(LUN07,3015) (WP(I), 1=1,NS) WRITE(LUN07,3016) (RKS(I), 1=1,NS) C///////////////////////////////////////////////////////////////////// C READ THE INITIAL EROSION PARAMETERS / vi ii inn i III ill inn i ii i mi ii i ii 11 ii illinium III i nun i III i ill! i CALL EROSA IF(FLGPST .GE. 1) CALL INIPST(RD2,FC1,ADEPTH) MOO = 0 WTLAY=1 C C ****** YEARLY L0GP,50 YEAR MAXIMUM ******* C DO 340 IY-1,50 WRITE (*, 21)IY 21 F0RMA7(20X,'BEGINNING YEAR ',12,' OF SIMULATION1) AIRR =0. IF(HYDOlfl.EQ.l) WRITE (LUN07,3000) IYR =IYR+1 JYR =JYR+1000 102 MO =1 ND =LEAP(IYR) IF(FLGGEN .EQ. 1) GO TO 22 READ (LUN01.1000) (R(I),I=1,ND) c DAILY LOOP ******** Q ***** DO 300 1=1,ND IDAY=I ODATE =JYR+I IF (BEGDA' .GT. 10000) BEGDAY = 0 IF(IYR.LE.BEGYR.AND.I.LT.BEGDAY) GO TO 270 NN =M0+M00 RAIN = 0.0 REFF -R(D QL =0.0 UWL =0.0 QD =0.0 CALL SNOW(SNO,I,TC(I),PIN) IF(SNO .GT. 0.0) ISNOW =1 IF(NFRZ .LT. 1) GO TO 25 IF(TC(I) .GE. 0.0 .AND. TC(I-l) .LT. 0.01 IFREZ=I+NFZDAY 25 CONTINUE IF(REFF ,LE. 0.0) GO TO 40 JJ =JO+1 SMR =SMR+REFF PMO(NN) =PMO(NN)+REFF QD =0.0 SUM =0.0 DO 30 K=l.7 SUM=SUM+WF(K)*ST(K)/UL(K) •.'0 CONTINUE IF(IFREZ .LE. 0) GO TO 35 IF(I .GT. IFREZ) GO TO 35 VRTUSE •=VRT2 GO TO 36 35 CONTINUE IFREZ >=0 VRTUSE »=VRT1 36 CONTINUE WV •ULE2*(1.0-SUM) WV =WV*VRTUSE TWV =TWV+WV Rl =WV/SP1 VT =VT+V BB =SIA*R1 IF(NFRZ ..EQ.l .AND. I .LE. IFREZ .AND. I .GE.flFREZ- 1 NFZDAY+1)) BB=0.005*Rl PB =REFF-BB IF(PB.LE.,0.0) GO TO 40 QD =PB*PB/(REFF+SM1*R1) IF(QD.LT.,0.01) QD=0.0 QL =QL+QD 103 40 CONTINUE IF(V.LT.VL) GO TO 50 IF(V.LT.VB) GO TO 60 VB =V GO TO 60 50 CONTINUE VL -V 60 CONTINUE RAIN =(REFF-QD)*25.4 IDA =1 CALL UPDATE(I,ALAI,5W1,CRITS) CALL EVAP(POTET,ALAI,ATRN,PTRN,PIRR,IRFLG,IROPT) RIRR =PIRR/25.4 C IRRIGATION LAYER-BY-LAYER, IF APPLIED IN EVAP 65 UW =UW/25.4 C ******************* BEGIN ADAPT CHANGES ********************* C C IF ET OCCURS WHILE SOIL IS FROZEN, WATER COMES FROM SNOWMELT C IF (TC(I).GT.O.O) GOTO 67 IF (UW.LT.SNO) THEN PIN=UW SNO=SNO-PIN ELSE UW=SNO PIN=UW SN0=0.0 END IF REFF=PJN SMR=SMR+REFF PMO(NN)=PMO(NN)+REFF 67 DO 70 K=1,NS U(K) =0.0 ETE(K) =0.0 70 CONTINUE INF =REFF-QD IF (INF.LE.0.0) INF=0.0 IF(IRFLG .EQ. 1) INF=RIRR IF(ALAI.GT.O.O) GO TO 80 SPG =0.0 GO TO 90 80 CONTINUE SPG =SPG+EPP(I)/PWU UOB »UW/(1.0-EXP(-UB*SPG)) IF(SPG.GT.O.02778) GO TO 100 90 CONTINUE IF (UW.GT.ST(l)) UW-ST(l) U(1)-UW SUM-U(l) GO TO 140 100 CONTINUE 104 IF(SPG.GT.0.1667) GO TO 110 U(l) =0.08161*U0B IF (U(l).GT.ST(l)) U(1)=ST(1) U(2)=UW-U(1) SUM=U(1)+U(2) IF (SUM.LE.(ST(1)+ST(2))) GOTO 140 U(1)-ST(1) U(2)=ST(2) U(3)=UW-(ST(1)-ST(2)) IF (U(3).GT.ST(3)) THEN SUM=ST(1)+ST(2)+ST(3) U(3)-ST(3) UW=SUM END IF SUM=U(1)+U(2)+U(3) GO TO 140 110 CONTINUE II =SPG*6.0+2.0 IF(II.GT.7) 11=7 U(l) =0.08161*U0B IF(U(1).GT.ST(1)) U(1)=ST(1) U{2) =0.31839*U0B IF (U(2).GT.ST(2)) U(2)»ST(2) SUM =U(1)+U(2) II =11-1 IF(I1.LT.3) GO TO 120 UU =UOB*U1 DO 115 K=3,I1 U(K) =UU*0.6**(K-2)+ETE(K) IF (U(K).GT.ST(K)) U(K)=ST(K) C C IF ET OCCURS IN LAYERS AT OR BELOW WATER TABLE, ADJUST WATER TABLE C IF (WTLAY.LE.K) THEN AST(K)=(POR(K)-SWC(K))*(BOT(K)-DTWT) IF (U(K).GT.AST(K)) THEN ETE(K+1)=U(K)-AST(K) U(K)=AST(K) END IF DTWT=DTWT+U(K)/(POR(K)-SWC(K)) END IF SUM =SUM+U(K) 115 CONTINUE 120 CONTINUE U(II) =UW-SUM DO 125 K-1,11 TOST=TOST+ST(K) 125 CONTINUE IF (UW.GT.TOST) THEN UW=TOST U(II)=UW-SUM END IF IF (WTLAY.LE.II) THEN 105 A SI(II)=(POR(II)-SWC(II))*(BOT(II)-DTWTt —.,.-,, jOTflD-DTWT)) IF (U(II).GT.AST(II)()() ) THEN U(II)=AST(II) DTWT=BOT(II)+U(II+1)/(POR(II+1)-SWC(II+1)) GOTO 140 END IF DTWT=DTWT+U(II)/(POR(II)-SWC(II)) END IF 140 CONTINUE UWL=UWL+UW Q ******************************************************************* C ESTIMATE INFILTRATION USING THE GREEN-AMPT EQUATION C VARIABLE DEFINITIONS: CF = CUMULATIVE INFILTRATION C F(IX)= CUMULATIVE INFILTRATION INTO LAYER IX C TM(IX)= TIME REQUIRED FOR F(IX) TO OCCUR C S(IX)= SOIL SUCVION TERM C RKS(IX)= SATURATED HYDRAULIC CONDUCTIVITY C WFD = WETTING FRONT DEPTH C WTD1.2 = WATER TABLE DEPTHS Q ******************************************************************** c C IF SOIL IS FROZEN, NO DRAINAGE OR INFILTRATION WILL OCCUR C IF (TC(I).LT.O.O) THEN CF=0.0 DVOL=0.0 SUMF=0.0 DO 142 KO=1,NS F(KO)=0.0 142 CONTINUE GOTO 219 END IF C C BEGIN INFILTRATION CALCULATIONS C DO 144 JI=1,NS BWC(JI}=BWC(JI)-U(JI)/THICK(JI) 144 CONTINUE SUMT=0.0 SUMF=0.0 XSIN=0.0 CF=INF+OCF IF (CF.LE.O) THEN DO 148 JI=1,NS WFD=0.() 0 148 CONTINUE GOTO 180 END IF DO 175 IX*1,NS C C CALCULATE POTENTIAL INFILTRATION INTO EACH LAYER, THEN ADJUST IF 106 C NECESSARY. C IF (ABS(SUMF-CF).LE.O.OOOl) THEN 0CF=0.0 GOTO 180 END IF SMD(IX)=SWC(IX)-BWC(IX) F(IX)=SMD(IX)*THICK(IX) IF (F(IX).LE.O.O) THEN F(IX)=0.0 GOTO 175 END IF OSUMF=SUMF IF ((SUMF+F(IX)).GT.CF) F(IX)=CF-SUMF TM(IX)=(F(IX)-S(IX)*SMD(IX)*LOG(1+F(IX)/ & (S(IX)*SMD(IX))))/RKS(IX) OSUMT=SUMT C C CHECK RATE OF OVERLYING LAYER TO SEE IF IT IS CONTROLLING C INFILTRATION C IF (IX.EQ.l) GOTO 155 IF (RKS(IX).LE.RKS(IX-l)) GOTO 155 TM(IXHF(IX)-S(IX)*SMD(IX)*LOG(1+F(IX)/ & (S(IX)*SMD(IX))))/RKS(IX-1) SUMT=SUMT+TM(IX) IF (SUMT.LE.24.0) GOTO 150 RKS(IX)-RKS(IX-1) GOTO 157 150 SUMF=SUMF+F(IX) L(IX)-F(IX)/SMD(IX) IF (IX.EQ.l) THEN WFD=L(IX) ELSE WFD=BOT(IX-1)+L(IX) END IF GOTO 175 155 SUMT=SUMT+TM(IX) IF (SUMT.LE.24.0) GOTO 150 C C IF END OF DAY IS REACHED BEFORE WATER IS COMPLETELY INFILTRATED, C ADJUST TIME INCREMENT AND SOLVE FOR F ITERATIVELY. C 157 TM(IX)=24.0-0SUMT F1=RKS(IX-1)*TM(IX) 160 F2=RKS(IX)*TM(IX)+S(IX)*SMD(IX)*LOG(1+F1/ & (S(IX)*SMD(IX))) RATIO-ABS((F1-F2)/F2) IF (RATIO.LT.0.1) GOTO 165 F1=F2 GOTO 160 165 F(IX)=F2 L(IX)-F(IX)/SHD(IX) 107 SUMF=SUMF+F(IX) IF (IX.GT.1J THEN WFD=BOT(IX-1)+L(IX) ELSE WF>L(IX) END IF GOTO 180 175 CONTINUE C C IF PROFILE IS AT FIELD CAPACITY, FIND CONTROLLING FIELD SATURATED C CONDUCTIVITY C IF (SUMF.LT.CF) THEN XSIN=CF-SUMF RATE=RKS(1) IF (WTLAY.GT.l) THEN DO 177 J=2,WTLAY IF(RKS(J).LT.RKS(J-1)) RATE=RKS(J) 177 CONTINUE END IF TXSIN=XSIN/RATE IF(TXSIN.LE.(24.0-SUMT)) GOTO 180 XSIN=RATE*(24.0-SUMT) OCF=CF-SUMF-XSIN END IF 180 CONTINUE TINF=XSIN+SUMF IF (TINF.GE.CF) 0CF=0.0 K=l C C DETERMINE WHICH LAYER WATER TABLE IS IN C 182 IF (DTWT.GT.BOT(K)) THEN K=K+1 GOTO 182 END IF WTLAY=K 0DTWT=WTD2 C IF THE WETTING FRONT REACHES THE WATER TABLE, DETERMINE WATER TABLE C HEIGHT CHANGE DUE TO INFILTRATION, OTHERWISE JUST CALCULATE THE C CHANGE IN WATER TABLE HEIGHT DUE TO DRAINAGE. Is IF (XSIN.GT.O.O) WFD=DTWT IF (WFD.LT.DTWT) THEN WTD1=DTWT GOTO 187 END IF C C CHANGE IN WATER TABLE HEIGHT COMES FROM DRAINABLE POROSITY FILLING C OR EMPTYING. C 108 IF (K.EQ.l) AVIST(K)=DTWT*(POR(K)-SWC(K)) IF (K.GT.l) AVIST(K)=(DTWT-BOT(K-1))*(POR(K)-SWC(K)) IF (XSIN.GT.AVIST(K)) GOTO 189 CWT=XSIN/(POR(K)-SWC(K)) WTD1=DTWT-CWT IF (WTD1.GT.DDRAIN) THEN DV0L=0.0 DTWT=WTD1 WTLAY=K GOTO 210 END IF 187 CALL DRAINS(WTD1,DFLUX,BOT) DV0Ll=DFLUX*24.0 188 AVDST(K)=(POR(K)-SWC(K))*(BOT(K)-WTD1) IF(DVOL1.GT.AVDST(K)) GOTO 193 CWT2=DVOL1/(POR(K)-SWC(K)) WTD2=r01+CWT2 GOTO 200 189 CONTINUE IF(K.EQ.l) THEN WTD1=O.O GOTO 187 END IF LI=1 190 XXSIN=XSIN-AVIST(K) AVIST(K-LI)=THICK(K-LI)*(POR(K-LI)-SWC(K-LI)) IF (XXSIN.GT.AVIST(K-LI)j THEN XSIN=XSIN-AVIST(K-LI) LI-LI+1 IF ((K-LI).LE.O) THEN WTD1=O.O GOTO 187 END IF GOTO 190 END IF WTD1=BOT(K-LI)-XXSIN/(POR(K-LI)-SWC(K-LI)) K=K-LI GOTO 187 193 CONTINUE LI=1 ADVOL1=DVOL1 195 IF ((K+LI).GT.NS) THEN DTWT=ADEPTH GOTO 210 END IF XDVOL=ADVOL1-AVDST(K) AVDST(K+LI)=THICK(K+LI)*(POR(K+LI)-SWC(K+LI)) IF (XDVOL.GT.AVDST(K+LI)) THEN ADVOL1=DVOL1-AVDST(K+LI) LKI+1 GOTO 195 END IF WTD2=B0T(K+LI-l)+XDV0L/(P0R(K+LI)-SWC(K+LI)) 109 K=K+LI 200 CONTINUE IF ((WFD.LT.DTWT). OR .(WFD.EQ.O.O)) THEN DVOL=DVOL1 DTWT=WTD2 WTLAY=K GOTO 210 END IF AVER=(WTD1+WTD2)/2.O CALL DRAINS(AVER.DFLUX.BOT) DV0L2=DFLUX*24.0 IF (DV0L2.LT.0.0001) GOTO 203 IF (ABS(DVOL1-DVOL?.)/DVOL2.GE.O.O8) THEN DV0Ll=DV0L2 GOTO 188 END IF 203 DTWT=WTD2 DVOL=DVOL1 K-l 204 IF (WTDl.GT.BOT(K)) THEN GOTO 204 END IF 210 CONTINUE C C DETERMINE WATER CONTENT OF EACH LAYER BASED ON POSITION OF WATER C TABLE, DEPTH OF WETTING FRONT, AND PREVIOUS WATER TABLE DEPTH. C IF (BOT(l).LE.WFD) THEN IF (BOT(l).LT.DTWT) THEN BWC(1)»SWC(1) ELSE BWC(1)»(SWC(1)*DTWT+POR(1)*(BOT(1)-DTWT))/THICK{1) END IF GOTO 211 END IF IF (BOT(l).LE.ODTWT) THEN BWC(1)-(BWC(1)*(BOT(1)-WFD)+SWC(1)*WFD)/THICK(1) GOTO 211 END IF IF (WFD.EQ.O.O) THEN IF (BOT(l).LT.DTWT) THEN BWC(1)=SWC(1)-U(1)/THICK(1) ELSE BWC(1)*(SWC(1)*DTWT+POR(1)*(BOT(1)-DTWT)-U(1))/THICK(1) END IF GOTO 211 END IF IF (BOT(l).LT.DTWT) THEN BWC(1)=(SWC(1)*WFD+BWC(1)*(BOT(1)-WFD))/THICK(1) ELSE BWC(1)=(POR(1)*(BOT(1)-DTWT)+SWC(1)*(DTWT-ODTWT+WFD)+ & BWC(1)*(ODTWT-WFD))/THICK(1) 110 END IF 211 DO 217 JL=2,NS IF (WFD.LT.ODTWT) GOTO 213 IF (BOT(JL).LE.DTWT) THEN BWC(JL)=SWC(JL) GOTO 217 END IF IF (BOT(JL-l).LT.DTWT) THEN BWC(JL)=(POR(JL)*(BOT(JL)-DTWT)+ & SWC(JL)*(DTWT-BOT(JL-1)))/THICK(JL) ELSE BWC(JL)=POR(JL) END IF GOTO 217 213 IF (BOT(JL).LE.WFD) THEN BWC(JL)=SWC(JL) GOTO 217 END IF IF (BOT(JL-l).LT.ODTWT. AND .BWC(JL).GT.SWC(JL)) + BWC(JL)=SWC(JL) IF (BOT(JL).LT.DTWT) GOTO 215 IF (BOT(JL-l).GT.ODTWT) THEN IF (BOT(JL-l).LT.DTWT) THEN BWC(JL)=(POR(JL)*(BOT(JL)-DTWT)+SWC(JL)*(DTWT- & BOT(JL-1)))/THICK(JL) ELSE BWC(JL)=POR(JL) END IF ELSE IF (BOT(JL-l).GE.WFD) THEN BWC(JL)=(POR(JL)*(BOT(JL)-DTWT)+SWC(JL)*(DTWT- & ODTWT)+BWC(JL)*(ODTWT-BOT(JL-1)))/THICK(JL) ELSE BWC(JL)=(P0R(JL)*(BOT(JL)-DTWT)+SWC(JL)*(DTWT- & ODTWT+WFD-BOT(JL-1))+BWC(JL)*(ODTWT-WFD)) & /THICK(JL) END IF END IF GOTO 217 215 IF(B0T(JL).GE.ODTWT) THEN IF (BOT(JL-l).GE.WFD) THEN 8WC(JL)=(SWC(0L)*(B0T(JL)-0DTWT) & +BWC(JL)*(ODTWT-BOT(JL-1)))/THICK(JL) ELSE BWC(JL)=(SWC(JL)*(BOT(JL)-ODTWT)+BWC(JL)*(ODTWT- & WFD)+SWC(JL)*(WFD-BOT(JL-1)))/THICK(JL) END IF GOTO 217 END IF IF (BOT(JL-l).LE.WFD) BWC(JL)=(BWC(JL)*(BOT(JL)-WFD)+ & SWC(JL)*(WFD-BOT(JL-1)))/THICK(JL) IF (BOT(JL-l).GT.WFD) BWC(JL)=BWC(JL) 217 CONTINUE Ill 219 CONTINUE Q ********************* END FIRST ADAPT CHANGES ********************** C C DETERMINE AVAILABLE STORAGE IN EACH LAYER AND FOR PROFILE C SW1=O.O DO 221 J-l.NS ST(J)=(BWC(J)-BR15(J))*THICK(J) IF (ST(J).LE.O.O) ST(J)=O.0 SW1 =SW1+ST(J) 221 CONTINUE SW2=SW1-ST(8) IF(REFF .LE. 0.0 .AND. RIRR .LE. 0.0) GO TO 223 UP(1) =OLDST(1)-ST(1)+F(1) IF(UP(1) .LE. 0.0) UP(l)=0.0 GO TO 225 223 UP(1) =OLDST(1)-ST(1) 225 CONTINUE DO 230 K=2,NS-1 IF(REFF .GT. 0.0 .OR. RIRR .GT. 0.0) GO TO 235 UP(K) =OLDST(K)-ST(K) GO TO 230 235 UP(K) =OLDST(K)-ST(K)+F(K)-F(K+1) IF(UP(K) .LE. 0.0) UP(K)=0.0 230 CONTINUE UP(8)=0.0 DO 240 K=1,NS OLDST(K) = ST(K) 240 CONTINUE SDVOL =SDVOL+DVOL IF(SWl.GE.SWMIN) GO TO 242 SWMIN =SW1 MINDAT =JYR+I 242 CONTINUE IF(SWl.LE.SWMAX) GO TO 245 SWMAX =SW1 MAXDAT =JYR+I 245 CONTINUE V =ULE-SW1 IF(QL.LT.O.Ol) GO TO 247 PR =P1*QL**P2 SPR =SPR+PR SSPR =SSPR+PR*PR NPR =NPR+1 C PASS2 IS THE RUNOFF COMPONENT IN THE HYDROLOGY MODEL PASS2 =QL C PASS3 = PEAK DISCHARGE VARIABLE (HYDROLOGY) EXRAIN = (EROSION MODEL) PASS3 =0.991*PR/DACRE C QPEAK = FASS3 IF(PASS3.GE.0.01) GO TO ?50 247 CONTINUE QL =0.0 PASS2 =0.0 112 PASS3 =0.0 250 CONTINUE TIRR(NN) =TIRR{NN)+RIRR SMQ =SMQ+QL QP(NN) =QP(NN)+QL WU(NN) =WU(NN)+UWL DVOLM(NN) =DVOLM(NN)+DVOL SWM(NN) =SWM(NN)+SW1 NDIV =NDIV+1 TMWU =TMWU+UWL IDA =1+1 NORAIN =NORAIN+1 QPEAK = PASS3 C PASS5 IS THE DRAINAGE FROM THE WATER TABLE , DVOL PASS5 =PASS5+DV0L C CONVERT TEMP C INTO TEMP F FOR THE OUTPUT ONLY. PASS6 =PASS6 + (TC(I) * 1.8 + 32.) PASS7 =PASS7+(SW1+B15)/RD2 PASS8 =PASS8+ATRN ACCPEV =ATRN PASS8B =PASS8B+ATRN PASS9 =PASS9+PTRN PASS9B =PASS9B+PTRN PASS10 =ES/25.4 ACCSEV =PASS10 PASS11 =E0S/25.4 PAS10B =PAS10B+PASS10 PAS11B =PAS11B+PASS11 PAS12B =PASS8B+PAS!0B PAS13B =PASS9B+PAS11B C NO RAIN AND NO IRRIGATION...BY-PASS TO 270 C IF(REFF.LE.0.0 .AND. IRFLG.LT.l) GO TO 270 C IRRIGATION...ADD TO SUM, ZERO El IF(IRFLG.NE.l) GO TO 255 AIRR =AIRR + RIRR PASS4 =0. DEI =0. 255 PASS1 -REFF+RIRR DRAIN =PASS1 IF{REFF.GT.O.) GO TO 256 PASS4 =0. DEI =0. GO TO 257 256 PASS4 =7.87*REFF**1.51 DEI =PASS4 257 CONTINUE C * * CALCULATE THE AVE.TEMP FOR THE PERIOD BETWEEN EVENTS IF (REFF .GT. 0. .OR. PASS1 .GT. 0.0) THEN PASS6 =PASS6/FLOAT(NORAIN) PASS7 =PASS7/FL0AT(N0RAIN) ENDIF TSWC=0.0 DO 258 KI=1,NS 113 TST(KI)=BWC(KI)*THICK(KI) TSWC=TSWC+TST(KI) 258 CONTINUE C PRECIP, IRR, OR BOTH..WRITE PASS P7=TSWC/RD IF(REFF.LE.O.O .AND. IRFLG.LT.l) GO TO 270 C NO OUTPUT NEEDED...BY-PASS TO 269 IF(HYDOUT.NE.l) GO TO 269 C BY-PASS TO 262 IF BOTH PRECIP AND IRR OCCUR IF(REFF.GT.O. .AND. IRFLG.EQ.l) GO TO 262 C * * IRRIGATION ONLY IF(IRFLG.NE.l) GO TO 268 WRITE(LUN07,3009)JDATE,PASS2,PASS5JEMPF,AVESLW,PASS8B, 1 PASS9B ,PAS10B,PAS11B,PAS12B.PAS13B.RIRR 3009 FORMAT(1H ,4X,I7,1OX,11F9.2) GO TO 269 C * * RAIN ONLY 268 WRITE (LUN07.3008) JDATE,PASS1,PASS2,PAS$5,PASS6,PASS7, 1 PASS8B, PASS9B,PAS10B,PASilB,PAS12B,PAS13B GO TO 269 C * * BOTH RAIN AND IRR 262 WRITE (LUN07,3010)JDATE,REFF,PASS2,PASS5,PASS6fPASS7, 1 PASS8B,PASS9B,PAS1OB,PAS11B, & PAS12B, PAS13B.RIRR 3010 FORMAT(1H t4X,I7,lX,12F9.2) IF( REFF .LE. 0.0 .AND. IRFLG .LT. 1) GO TO 270 269 CONTINUE NORAIN =0 DP5 =0 PASS5 =0.0 PASS6 =0.0 TEMPF =0.0 PASS7 =0.0 AVESLW =0.0 PASS8 =0.0 ACCPEV =0.0 PASS9 =0.0 PASS10 =0.0 ACCSEV =0.0 PASS11 =0.0 270 CONTINUE MO =WCHMON(JDATE+1) IF(MO.EQ.MOl) GO TO 290 NBMO =NBKO+1 IF(NDIV.EQ.O) GO TO 280 SWM(NN) =SWM(NN)/FLOAT(NDIV) NDIV =0 280 CONTINUE SYR =SYR+SMR SYQ •SYQ+SMQ TYWU =TYWU+TMWU TMWU =0.0 SMR =0.0 114 SMQ =0.0 290 CONTINUE M01 =M0 NBDATE =HBDATE + 1 C C SUB EROSB IS THE DAILY EROSION CALCULATION MODEL c CALL EROSB(SOLOSS,ENRICH) IF(FLGPST.EQ.l) CALL PSTCAL 300 CONTINUE SR =SR+SYR SQ =SQ+SYQ TWU =TWU+TYWU ATDVOL =ATDVOL+SDVOL PSW =SW1 ALAI =ALONE CALL ANNBUD(IYR) READ (LUN02.2000) NEWT.NEWR.NEWL C * * CHECK FOR THE END OF THE HMULATION, IF IT IS SET JDATE TO 0 AND C * * GO TO THE END OF THE PROGRAM IF(NEWT.LT.O) THEN JDATE = 0 GO TO 350 ENDIF IF(NEWT.EQ.O) GO TO 310 C IF(FLGGEN .EQ. 1) GO TO 305 CALL GETTMP(NFRZ) 310 CONTINUE IF(NEWR.EQ.O) GO TO 320 C IF(FLGGEN .EQ. 1) GO TO 315 CALL GETRAD(NFZDAY.NFRZ) 320 CONTINUE IF(NEWL.EQ.O) GO TO 330 CALL GETLAI ALAI =ALONE 330 CONTINUE IF(NEWT.GT.O.OR.NEWR.GT.O.OR.NEWL.GT.O) 1 CALL SETONE(NFRZ.NFZDAY) PASS8B =0.0 PASS9B =0.0 PAS10B =0.0 PAS11B =0.0 PAS12B =0.0 PAS13B =0.0 TYWU =0.0 SDVOL =0.0 SYR =0.0 SYQ =0.0 MOO =M00+12 OTSW *PSW 340 CONTINUE 350 CONTINUE SWMIN =SWMIN 115 SWMAX =SWMAX XN =FLOAT(IY) XJ =FLOAT(JJ) AR =SR/XN AQ =SQ/XN ATDVOL =ATDVOL/XN AWU =TWU/XN VT =VT/XJ WRITE (LUN07.3004) AR.AQ,ATDVOL,AWU WRITE (LUN07.3006) (ST(1I),1I=1,NS) WRITE (LUN07.3007) SWMIN,MINDAT,SWMAX.MAXDAT CALL SUMTAB(BEGYR,NBMO,IY) C * * LOOP BACK TO THE CALL TO EROSB TO GET THE LAST OUTPUT C * * FIX HERE TO PRINT THE LAST OUTPUT BY LOOPING BACK INTO EROSION, C PST IF (JDATE .LE. 0) THEN CALL EROSB (SOLOSS,ENRICH) IF(FLGPST .EQ. 1)CALL PSTCAL ENDIF RETURN 1000 F0RMAT(10X,10F5.2) 2000 F0RMAT(10I8) 3000 FORMAT(1H ,/, 5X.44H DATE RAINFALL RUNOFF DRAING. AVERAGE, 1 46H AVERAGE ACTUAL POTENT. ACTUAL POTENT., 1 28H ACTUAL POTENT. IRRIGAT.,/, 1 5X.44H TEMP. , 1 44H SOIL W. EP EP ES ES , 1 6X.25HET ET APPLIED ,/, 1 5X.44H JULIAN INCHES INCHES INCHES DEG. F., 1 44H IN./IN. INCHES INCHES INCHES INCHES, 1 3X.25H INCHES INCHES INCHES,/, 5X.9H , 1 36H , 1 36H , 1 36H - ) 3001 FORMAT(1H ,/,19X,29HFIELD AREA =,F9.3,6H ACRES, 1 /.19X.29HR00TING DEPTH =,F9.3,3H IN,/, 1 19X.29HSATURATED CONDUCTIVITY =,F9.3,6H IN/HR,/, 1 19X.29HAVG. WATER CONTENT =,F9.3,/, 1 19X.29HAVG. FIELD CAPACITY =,F9.3,6H IN/IN,/, 1 19X.29HEVAP0RATI0N COEFFICIENT =,F9.3,/, 1 19X.29HAVERAGE POROSITY =,F9.3,6H CC/CC,/, 1 19X.29HSCS CURVE NUMBER =,F9.3,/, 1 19X.29HCHANNEL SLOPE =,F9.3,/, 1 19X.29HWATERSHED LEN/WIDTH RATIO =,F9.3,/, 1 19X.29HPEAK FLOW RATE COEFFICIENT =,F9.3,/, 1 19X.29HPEAK FLOW RATE EXPONENT =,F9.3,/, 1 19X.29HUPPER LIMIT OF STORAGE =,F9.3,3H IN,/, 1 19X.29HAVG. 15-BAR WATER CONTENT =,F9.3,6H IN/IN,/, 1 19X.29HINITIAL SOIL WATER STORAGE =,F9.3,3H IN,/, 1 19X.29HFRAC. P.A.W. TO B£GIN IRR. =,F9.3,/, 1 19X.29HFRAC. P.A.W. TO END IRR. =,F9.3) 3002 FORMAT(1H ,/,29X,23HUPPER LIMIT OF STORAGES,/, 2X.8F9.3) 3003 FORMAT(1H ,/,33X,15HINITIAL STORAGE,/, 2X,8F9.3) 116 3004 FORMAT(1H ,////,31X.21HAVERAGE ANNUAL VALUES,/, 1 27X.19HPRECIPITATI0N =,F8.3,/, 1 27X.19HPREDICTED RUNOFF =,F8.3,/, 1 27X.19HDRAINAGE VOLUME =,F8.3,/, 1 27X.19HT0TAL ET =,F3.3) 3006 FORMAT(1H ,/,25X,31HFINAL STORAGE FOR EACH FRACTION,/, 4X.8F9.3) 3007 FORMAT(1H , /,19X,26HMINIMUM TOTAL STORAGE WAS ,F7.3,4H ON,16,/, 1 19X.26HMAXIMUM TOTAL STORAGE WAS ,F7.3,4H ON ,16) 3008 FORMAT(1H ,4X,I7,lX,i:c9.2) 3011 FORMAT(1H ,/,24X,31HFlELD CAPACITY BY LAYER (IN) ,/,2X,8F9.3) 3012 FORMAT(1H ,/,21X,37H15-BAR WATER CONTENT BY LAYER (IN/IN) ,/,2X, 1 8F9.3) 3013 FORMAT(1H ,/,28X,25HP0R0SITY BY LAYER (CC/CC),/,2X,8F9.3) 3015 FORMAT(1H ,/,22X,40HWATER CONTENT AT WILT. PT. BY LAYER (IN),/, 1 2X.8F9.3) 3014 FORMAT(1H ,/,20X,38HINITIAL WATER CONTENT BY LAYER (IN/IN),/,2X, 1 8F9.3) 3016 FORMAT(1H ,/,20X,39HHYDRAULIC CONDUCTIVITY BY LAYER(IN/HR),/,2X, 1 8F9.3) 4000 F0RMAT(I6,F6.2,F6.2,F6.2,F6.2,I2,F6.2,F6.2,5F6.3/7F6.3,2X, 1 6F6.3/F6.3,2X,7F6.3) END C SUBROUTINE RICHET(GR,T,U,E0,EP,ET,ES,ESl,ES2,ESX,E0S,PIN, & CONA.ALAI) IF (ALAI.EQ.O) THEN EAJ*1.0 GO TO 3 END IF EAJ =1.0*EXP(-0.4*ALAI) 3 IF(EAJ.GT.GR) EAJ=GR EOS =EO*EAJ IF(ESl.GE.U) GO TO 40 IF(PIN.GE.ESl) GO TO 10 ESI -ES1-PIN GO TO 20 10 CONTINUE ESI =0.0 20 CONTINUE ESI =ES1+EOS IF(ESl.GT.U) GO TO 30 ES =EOS GO TO 80 30 CONTINUE ES =E0S-0.4*(ESl-U) ES2 -O.6*(ES1-U) T =(ES2/C0NA)**2 GO TO 80 40 CONTINUE IF(PIN.LT.ES2) GO TO 50 ESI =U-PIN+ES2 PIN1 =PIN-ES2 T =0.0 117 IF(PINl.GT.U) GO TO 10 GO TO 20 50 CONTINUE T =T+1.0 ES =C0NA*SQRT(T)-ES2 IF(PIN.GT.O.O) GO TO 60 IF(ES.GT.EOS) ES=EOS GO TO 70 60 CONTINUE ESX =0.8*PIN IF(ESX.LE.ES) ESX=ES+PIN IK(ESX.GT.EOS) ESX=EOS ES =ESX 70 CONTINUE ES2 =ES2+ES-PIN T -^(ES2/C0NA)**2 80 CONTINUE IF(ES.LT.O.O) ES=0.0 IF(ALAI.GT.3.0) GO TO 90 EP =0.333*ALAI*E0 GO TO 100 90 CONTINUE EP =E0 100 CONTINUE ET =ES+EP IF(EO.GE.ET) GO TO 110 ET =E0 ES =ET-EP 110 CONTINUE RETURN END SUBROUTINE SNOW(SNO,I,TC1,PIN) Q ******************************************************************** C VARIABLE DESCRIPTION FOR THE SUBROUTINE SNOW: 9/02/86 * C SNO * C XMELT SNOWMELT (INCHES/DAY) * C TCI TEMPERATURE (C),FROM TC(I) ARRAY * C PIN PRECIPITATION (INCHES) * C REFF EFFECTIVE PRECIPITATION (INCHES),RAINFALL AT THIS PT. * C * C * COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 PRE(366),AL0NE,bR15(8),REFF PIN =0.0 IF(TCl.GE.O.OO) GO TO 10 SNO =SNO+PRE(I) REFF =0.0 RETURN 10 CONTINUE R:FF =PRE(I) IF(SNO.LE.0.00001) RETURN XMELT =O.18*TC1 118 IF(XMELT.GT.SNO) XMELT=SNO REFF =PRE(I)+XMELT PIN =XMELT SNO =SN0-XMELT RETURN END INTEGER FUNCTION LEAP(YEAR) INTEGER YEAR IF(MOD(YEAR,4).EQ.O) GO TO 10 LEAP =365 RETURN 10 CONTINUE LEAP =366 RETURN END SUBROUTINE UPDATE(K,ALAI,TSW,CRITS) COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(8),REFF IF(DLAI(K).EQ.O.O) GO TO 20 IF(DLAI(K).LT.O.O) GO TO 10 IF(TSW.LE.CRITS) GO TO 20 10 CONTINUE ALAI =ALAI+DLAI(K) 20 CONTINUE IF(ALA:(.LT.O.O) ALAI=O.O RETURN END SUBROUTINE HYDRIN(NFRZ.NFZDAY) C ////////////////////////////////////////////////////////////////// C READ IN VALUES FROM CARDS 5-13 FOR HYDROLOGY, CALCULATE THE VALUES C OF THE LAYERS, AND CALL THE SUBS FOR TEMPERATURE AND RADIATION. C ////////////////////////////////////////////////////////////////// COMMON /IRR/ BASEI,TOPI COMMON /HONE/ RD,DACRE,RC,SIA,CHS,WLW,CN2,BWC(8),FCP,UL(8),NS, & P0R(8) COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(8),REFF COMMON /BIK1/ EOS,SW1,RAIN,TUL,TU,CONA,ES,EP,MO,IDA,IYR, & NT,UW,JE,J COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON /0NEVAR/TMP1,TMP2,TMP3,RAD1,RAD2,RAD3 COMMON /0RGMAT/0M(8) COMMON /DRNS/THICK(8),HDRAIN,DDEPTH,C0NK(8),SDRAIN,DDRAIN,DC, & ADEPTH.GEE.STOR COMMON /INFIL/S(8),RKS(8) C * * DECLARE VARIABLES REAL BR15RD(8),P0RRD(8),BWCRD(8),0MRD(8),B0T(8),B0TH0Z(8), & SRD(8),RKSRD(8),C0NKRD(8) C * * READ CARD #5 IN HYDROLOGY READ (LUN02.2010) DACRE,RC,FCP,C0NA,CN2,CHS,WLW,RD,BASEI,T0PI SIA = 0.2 C * * READ CARD #6 THE NUMBER OF HORIZONS (NOSOHZ) AND 119 C * * THE THICKNESS OF EACH OF THE HORIZON; INCHES (THICK) READ (LUN02,2000) NOSOHZ,(BOTHOZ(I),I=1,NOSOHZ) C * * READ CARD #7 THE POROSITY OF EACH OF THE HORIZON (PORRD) READ (LUN02.2010) (PORRD(I),I=1,NOSOHZ) C * * READ CARD #8 BWC FOR EACH HORIZON (BWCRD) READ (LUN02,2010) (BWCRD(I),I=1,NOSOHZ) C * * READ CARD #9 BR15 FOR EACH HORIZON (BR15RD) READ (LUNO2.2O1O) (BR15RD(I),I=1,NOSOHZ) C * * READ CARD #10 ORGANIC MATTER FOR EACH HORIZON (OM) READ (LUNO2.2O1O) (OMRD(I),I=1,NOSOHZ) C * * READ CARD #11 SUCTION TERM FOR EACH HORIZON (SRD) READ (LUN02.2010) (SRD(I),I=1,NOSOHZ) C * * READ CARD #12 SATURATED HYDRAULIC CONDUCTIVITY (K5RD) READ (LUN02.2010) (RKSRD(I),I=1,NOSOHZ) C * * READ CARD #13 LATERAL HYDRAULIC CONDUCTIVITY (CONKRD) READ (LUN02.2010) (CONKRD(I),I=1,NOSOHZ) Q********************************************^ C READ IN AND OUTPUT DRAINAGE SYSTEM DESIGN PARAMETERS READ (LUN02.2010) ADEPTH,DDEPTH,HDRAIN,SDRAIN,DDRAIN,DC, & GEE, STOR WRITE (LUN07.3050) ADEPTH,DDEPTH,HDRAIN,SDRAIN,DDRAIN,DC, & GEE,STOR C C * * CHECK NOSOHZ;IF=1;SET ALL SOIL VALUES EQUAL TO THE FIRST VALUE IF (NOSOHZ .EQ. 1) THEN DO 40 I = 1,8 POR (I) = PORRD (1) BWC (I) = BWCRD (1) BR15(I) = BR15RD(1) S(I) = SRD(l) RKS(I) = RKSRD(l) CONK(I) • CONKRD(l) OM (I) = OMRD(l) 40 CONTINUE ELSE C * * DIVIDE THE ROOT DEPTH INTO SIX (6) LAYERS DEPTH = RD / 6.0 C * * ADJUST THE FIRST LAYER TO 1 CM. BOT(l) = 1.0/2.54 BOT(l) = 0.3937 C * * CALCULATE SECOND LAYER THICKNESS- RD/6.0 B0T(2) = DEPTH - 0.3937 C * * CALCULATE REMAINING VALUES OF THE BOTHOZNESS DO 50 1=3,7 BOT(I) = BOT(I-l) + DEPTH 50 CONTINUE B0T(8)=ADEPTH C * * SET POR.FUL & BR15 IN THE FIRST LAYER = TO C * * THE FIRST VALUE READ IN (P0RRD1) POR(l) = PORRD{1) BWC(l) = BWCRD(l) BR15(1) = BR15RD(1) S(l) = SRD(l) 120 RKS(l) = RKSRD(l) CONK{1) = CONKRD(l) OM (1) = OMRD(l) C * * SET THE LOOP COUNTER FOR M(HORZ) M = 1 C * * LOOP FOR LAYERS 2-8; DO 80, I = 2,8 IF (BOT(I) .LE. BOTHOZ(M)) THEN POR(I) = PORRD (M) BWC(I) = BWCRD (M) BR15(1)= BR15RD(M) S(I) • SRD(M) RKS(I) = RKSRD(M) CONK(I)« CONKRD(M) OM (I)= OMRD(M) ELSE C * INCREMENT THE HORIZON M = M + 1 C * DOES THE LAYER EXIST IN TWO HORZIONS? IF CHECK IS § DEPTH; YES CHECK = ABS (BOT(I) - BOTHOZ(M-l)) IF (CHECK .LT. DEPTH) THEN C * * CALCULATE WHICH FRACTION OF THE LAYER IS ABOVE AND BELOW TOP = (BOTHOZ(M-1)-BOT(I-1))/DEPTH B0TM= (BOT(I)-BOTHOZ(M-l))/DEPTH POR(I) = TOP*PORRD(M-1) + BOTM*PORRD(M) BWC(I) - TOP*BWCRD(M-1) + BOTM*BWCRD(M) BR15(I)= T0P*BR15RD(M-l)+ B0TM*BR15RD(M) S(I) - TOP*SRD(M-1)+BOTM*SRD(M) RKS(I)= TOP*RKSRD(M-1)+BOTM*RKSRD(M) CONK(I)=TOP*CONKRD(M-1)+BOTM*CONKRD(M) OM (I)- TOP*OMRD (M-l)+ BOTM*OMRD(M) ELSE C * SET VALUES OF P0R.BR15.FUL TO THE VALUE IN THE HORIZON POR(I) • PORRD(M) BWC(I) * BWCRD(M) BR15(I) = BR15RD(M) S(I) • SRD(M) RKS(I)= RKSRD(M) CONK(I)=CONKRD(M) OM (I) • OMRD(M) ENDIF ENDIF 80 CONTINUE ENDIF C IF (CONA .LE. 3.0) THEN WRITE (LUN07.3000) CONA CONA =3.5 ENDIF C C * * GET TEMPERATURE VALUES CALL GETTMP(NFRZ) C * * GET RADIATION VALU"S 121 CALL GETRAD(NFZDAY.NFRZ) CALL GETLAI RETURN 2000 F0RMAT(I8,8(F8.2)) 2010 F0RMAT(10F8.0) 3000 F0RMAT(3X,31H********** NOTE: CONA READ WAS ,F8.2, 8H DEFAULT , 1 37H VALUE OF 3.5 SUBSTITUTED ********** ) 3050 F0RMAT(//18X,39H****DRAINAGE DESIGN PARAMETERS (IN)****,/, & 12X.43HACTUAL DEPTH TO IMPERMEABLE LAYER =,F8.2,/, & 12X,43HEQUIV. DEPTH TO IMPERMEABLE LAYER =,F8.2,/, & 12X.43HEQUIV. DEPTH FROM DRAIN TO IMPERM. LAYER =,F8.2,/S & 12X.43HDRAIN SPACING =,F8.2S/, & 12X.43HDEPTH TO DRAINS =,F8.2,/, & 12X.43HDRAINAGE COEFFICIENT =,F8.2,/, & 12X,43H'G' FACTOR FOR KIRKHAM'S DRAINAGE =,F8.2,/, & 12X.43HSURFACE STORAGE =,F8.2) END SUBROUTINE GETRAD(NFZDAY.NFRZ) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUNOS.LUNO^LUNlO.LUNll.LUN^ COMMON /0NEVAR/A0,Al,A2,ACR,AR,BR REAL B(12),RADI(12) READ (LUN02.2000) (RADI(I),1=1,12) CALL F0RFIT(12,RADI,ACR,AR,BR) DO 10 1=1,12 B(I) =F0RFUN(ACR,AR,BR,I,12) 10 CONTINUE WRITE(LUN07,3001) WRITE(LUN07,3000) (B(I),1=1,12) NFZDAY=O IF (NFRZ .EQ. 0 ) RETURN FZDAY =35.4-0.154*RADI(12) IF(RADI(12) .LT. 230.) NFZDAY=INT(FZDAY) WRITE(LUN07,2222) NFZDAY 2222 FORMAT(1H ,/,21X,40HN0. DAYS OF FROZEN SOIL DURING SNOWMELT:,14) RETURN 2000 F0RMAT(10F8.0) 3000 FORMAT(1H , 2X.6F12.2) 3001 FORMAT(1H ,/,21X,40HM0NTHLY MEAN RADIATION, LANGLEYS PER DAY) END SUBROUTINE GETTMP(NFRZ) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,LUN12 COMMON /ONEVAR/ACT,AT,BT,BO,B1,B2 REAL A(12),TEMP(12) NFRZ =0 READ (LUN02.2000) (TEMP(I),1=1,12) DO 10 1-1,12 TEMP(I) -(TEMP(I)-32.0)*5.0/9.0 10 CONTINUE CALL F0RFIT(12,TEMP,ACT,AT,BT) DO 20 1-1,12 () -32.0+F0RFUN(ACT,AT,BTtI,12)*9.0/5.0 122 20 CONTINUE DO 30 1=1,12 IF(A(I) .GE. 32.0) GO TO 30 NFRZ =1 GO TO 40 30 CONTINUE 40 CONTINUE WRITE(LUN07,3001) WRITE(LUN07 ,3000) (A(I),I=1,12) RETURN 2000 F0RMAT(10F8 .0) 3000 FORMAT(1H , 2X.6F12.2) 3001 FORMAT(1H ,/.18X.34HM0NTHLY MEAN TEMPERATURES, DEGREES 1 ,11H FAHRENHEIT ) END SUBROUTINE FORFIT(M,D,AC,A,B) REAL D(12) PI =3.1415926536 SUMD =0.0 AM «M DO 10 I=1,M SUMD =SUMD+D(I) 10 CONTINUE AC =SUMD/AM AN =1.0 SUMA =0.0 SUfiB =0.0 DO 20 1=1,M TI =FL0AT(I)-0.5 TH =2.0*PI*AN*TI FCOS =COS(TH/AM) FSIN =SIN(TH/AM) SUMA =SUMA+D(I)*FCOS SUMB =SUMB+D I *FSIN 20 CONTINUE A =2.0/AM*SUMA B =2.0/AM*SUMB RETURN END Q ****************** BEGIN ADAPT CHANGES ***************************** SUBROUTINE DRAINS(WTDl.DFLUX.BOT) COMMON /DRNS/THICK(8),HDRAIN,DDEPTH,C0NK(8),SDRAIN,DDRAIN,DC, & ADEPTH.GEE.STOR REAL B0T(8) C C FIND EFFECTIVE LATERAL HYDRAULIC CONDUCTIVITY C DIMENSION W(20) IF (WTD1.GT.ADEPTH) THEN WTD1=ADEPTH C0NE=0.0 GOTO 35 123 END IF c c FIND HEIGHT OF SATURATED LAYER IN EACH SOIL LAYER <•> L DO 5 1=1,8 IF (WTDl.LE.BOT(I)) GOTO 10 W(I)=0.0 5 CONTINUE 10 W(I)=BOT(I)-WTD1 IF(I.EQ.8) GOTC 20 DO 15 L=I+1,8 W(LKHICK(L) /*15 CONTINUE L CALCULATE EFFECTIVE LATERAL CONDUCTIVITY FOR THE PROFILE c L SUM=0.0 20 DEEP=0.0 DO 25 1=1,8 SUM=SUM+W(I)*CONK(I) 25 OEEP=DEEP+W(I) IF (DEEP.LE.0.0001) GOTO 30 CONE=SUM/DEEP GOTO 35 30 C0NE=0.0 35 CONTINUE L c BECIN DRAINAGE FLUX CALCULATIONS c HDMIN=DDEPTH-DDRAIN IF(HDRAIN.LT.HDMIN) HDRAIN=HDMIN IF (WTD1.LT.0.2) GO TO 50 EM=DDEPTH-WTD1-HDRAIN C C HOOGHOUDT'S DRAINAGE C DFLUX=4.0*C0NE*EM*(2.0*HDRAIN+EM)/SDRAIN**2 IF (DFLUX.GT.DC) DFLUX=DC IF (DFLUX.LT.O) DFLUX=0.0 IF (EM.LT.O) DFLUX=0.0 RETURN C C KIRKHAM'S DRAINAGE C 50 DFLUX=12.5663*C0NE*(DDEPTH-HDRAIN+ST0R)/(GEE*S0RAIN) IF (DFLUX.GT.DC} DFLUX=DC RETURN END Q ******************** £NJ) /\[)APT CHANGES *************************** 124 FUNCTION FORFUN(AC,A,B,I,N) AI =FL0AT(I)-0.5 AN =FLOAT(N) ANG =6.283185*AI/AN FORFUN =AC+A*COS(ANG)+B*SIN(ANG) RETURN END SUBROUTINE GETLAI COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(7),REFF COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,!.UN12 READ (LUN02,2000) GR CALL LAIONE(NTA,NTB,NTMAX) WRITE (LUN07.3000) GR.TLA RETURN 2000 F0RMAT(F8.0) 3000 FORMAT(1H ,/,28X,19HWINTER C FACTOR = ,F6.2,/, 1 28X.19HLAI-DAYS = ,F6.2) END SUBROUTINE LAIONE(NTA,NTB,NTMAX) INTEGER FLAG COMMON /IRRIG/IDAY,N0IRR(366) COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(7),REFF COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNU,LUN12 WRITE(LUN07,3000) FLAG =0 NTA =1 NTB =366 TLA =0.0 READ (LUN02.2000) LDATE1.AREA1.IFLG1 WRITE(LUN07,3001)IFLGl, LDATE1.AREA1 NTMAX =LDATE1 ALAMX =AREA1 ALONE =AREA1 DLAI(l) =0.0 10 CONTINUE READ (LUN02.2000) LDATE2.AREA2.IFLG2 WRITE(LUN07,3001)IFLG2, LDATE2.AREA2 IF(AREAl.GT.0.0.0R.AREA2.EQ.0.O.0R.FLAG.EQ.l) GO TO 20 NTA =LDATE1 FLAG =1 20 CONTINUE IF(AREA2.LE.ALAMX) GO TO 30 NTMAX =LDATE2 ALAMX =AREA2 30 CONTINUE IF(AREA2.GE.AREA1.0R.AREA2.GT.0.0) GO TO 40 NTB =LDATE2 40 CONTINUE RDATE1 =FLOAT(LDATE1) 125 RDATE2 =FL0AT(LDATE2) TLA =TLA+(RDATE2-RDATE1)*(AREA1+AREA2) DELY =RDATE2-RDATE1 DELA =AREA2-AREA1 DLA =DELA/DELY DO 60 I-LDATE1.LDATE2 NOIRR(I) = IFLG1 IF(AREA1.EQ.AREA2) GO TO 50 DLAI(I) =DLA GO TO 60 50 CONTINUE DLAI(I) =0.0 60 CONTINUE IF(LDATE2.EQ.366) GO TO 70 LDATE1 =LDATE2 AREA1 =AREA2 IFLG1 =IFLG2 GO TO 10 70 CONTINUE N0IRR(S66) = IFLG2 TLA =TLA/2.0 KE =NTB RETURN 2000 F0RMAT(I8,F8.0,I8) 3000 FORMAT(1H ,/,30X,21HLEAF AREA INDEX TABLE,//, 1 9X,'IRFLG',16X,18H DATE LAI,/, 1 9X,1 M6X.21H —- ) 3001 FORMAT(1H ,10X,Ilf22X,I3,6X,F5.2) END SUBROUTINE SETONE(NFRZ.NFZDAY) COMMON /0NEVAR/A0,Al,A2,B0,Bl,B2 COMMON /HYDVAR/ ADD,SUM,T0T,P0TET(366),EPP(366),PWU,SPG COMMON /BOTH/ ALAMX,TLA,GR,KE,DLAI(366),TC(366),RAD(366), 1 R(366),ALONE,BR15(7),REFF DATA GMA.ALB.CST/O.68,0.23,0.017167/ PWU =0.0 SUM =0.0 TOT =0.0 ADD =0.0 SPG =0.0 ALA I =ALONE DO 40 1=1,366 XI =FLOAT(I)*CST CX =COS(XI) SX =SIN(XI) TC(I) =(AO+A1*CX+A2*SX) TT =TC(I)+273.0 RAD(I) =BO+B1*CX+B2*SX IF(RAD(I).LT.1.0) RADOH.O D =EXP(21.255-5304.0/TT)*5304.0/(T7*TT) HO =(1.0-ALB)*RAD(I)/58.3 POTET(I) =1.?8*D*HO/(D*GMA) ALAI =ALAHDLAI{I) 126 IF(ALAI.GT.O.O) GO TO 10 EPP(I) =0.0 GO TO 30 10 CONTINUE IF(ALAI.GT.3.0) GO TO 20 EPP(I) =ALAI*P0TET(I)/3.0 GO TO :>0 20 CONTINUE EPP(I) =POTET(I) 30 CONTINUE PWU =PWU+EPP(I) SUM =SUM+TC(I) TOT =TOT+RAD(I) ADD =ADD+POTET(I) IF(I.GT.KE) SPG=SPG+EPP(I) 40 CONTINUE SU1 =SUM/366.0 T01 =T0T/366.0 ADI =ADD/25.4 SPG =SPG/PWU RETURN END SUBROUTINE SUMTAB(IYER.NBMO.NBYl) CHARACTER *3 CAL (12) CHARACTER *80 TITLE(3) COMMON /HEAD1/ TITLE COMMON /SUMT/ PRE(600),RUN(600),USE(600),DRN(600),ASW(600) 1 ,TIRR(600),ISN0W COMMON /UNDEF/LUN01,LUN02,L!JN03,LUN04,LUN05,LUN06(LUN07, & LUN08,LUN03,LUN10,LUNll,LUN12 CAL(l) = 'JAN' CAL(2) = 'FEB' CAL(3) = 'MAR' CAL(4) = 'APR' CAL(5) • 'MAY' CAL(6) = 'JUN' CAL(7) = 'JUL' CAL(8) = 'AUG' CAL(9) = 'SEP1 CAL(IO) « 'OCT' CAL(ll) = "N0V CAL(12) = 'DEC NBYR =NBY1 NBMO =NBMO-1 WRITE(LUN07,3000) (TITLE(J),J=1,3) XN *FLOAT(NBYR) K =0 N =1 M =12 IYR *IYER DO 20 J=1,NBYR YIRR =0. PYR =0.0 127 QYP =0.0 YWU =0.0 YDV =0.0 YSW =0.0 WRITE(LUN07,3004) IYR WRITE(LUN07,3001) DO 10 1=1,12 K SK+1 PYR =PYR+PRE(K) QYP =QYP+RUN(K) YWU =YWU+USE(K) YDV =YDV+DRN(K) YSW =YSW+A."W(K) YIRR =YIRR+TIRR(K) WRITE(LUN07,3002) CAL(I),PRE(K),RUN(K),USE(K),DRN(K), 1 ASW(K),TIRR(K) 10 CONTINUE YSW =YSW/12.0 WRITE(LUN07,3003) PYR,QYP,YWU,YDV,YSW,YIRR IYR -IYR+1 N =N+12 M =M+12 20 CONTINUE AR =0. 0 AQ =0. 0 AU =0. 0 AD =0. 0 AS =0. 0 AI =0. 0 DO 40 1=1,12 TOT =0.0 SUM =0.0 WUS =0.0 TDV =0.0 TSW =0.0 TTIRR =0. DO 30 J=I.NBM0.12 TTIRR =TTIRR+TIRR(J) TOT =TOT+PRE(J) SUM =SUM+RUN(J) WUS =WUS+USE(J) TDV =TDV+DRN(J) TSW =TSW+ASW(J) 30 CONTINUE PRE(I) =TOT/XN RUN(I) =SUM/XN USE(I) =WUS/XN DRN(I) =TDV/XN ASW(I) =TSW/XN TIRR(I) =TTIRR/XN AR =AR+TOT AQ =AQ+SUM AU =AU+WUS 128 AD =AD+TDV AS =AS+TSW AI =AI+TTIRR 40 CONTINUE AR =AR/XN AQ =AQ/XN AU =AU/XN AD =AD/XN AS =AS/XN/12.0 AI -AI/XN WRITE(LUN07,3005) WRITE(LUN07,3001) DO 50 1=1,12 WRITE(LUN07,3002) CAL(I),PRE(I),RUN(I),USE(I),DRN(I),ASW(I), 1 TIRR(I) 50 CONTINUE WRITE (LUN07.3003) AR,AQ,AU ,AD,AS,AI IF(ISNOW .NE. 0) WRITE(LUN07,3999) RETURN 3000 FORMAT(1H1,25X,3OHG LEAMS HYDROLOGY SUMMARY,//, 1 19X,45HVERSI0N 1.8.5.2 SOIL-WATER DEFICIT MANAGEMENT,//, 1 (/,1X,A8O)) 3001 FORMAT(1H ,/,8X,46HM0NTH RAIN RUNOFF ET 1 ,30H DRNG AVG SW IRRIGAT,/, 1 8X.46H 1 ,30H ) 3002 FORMAT(1H ,8X,A3,6F12.3) 3003 FORMAT(1H ,/,9X,3HT0T,6F12.3,/) 3004 FORMAT(1H ,/,39X,2H19,I2,/,39X,4H ) 3005 FORMAT(1H ,////,33X.15HANNUAL AVERAGES,/.33X.15H ) 3999 F0RMAT(//15X,30H******************************,/, 1 15X.30H SNOW NOTICE ,/, 2 15X 30H****************************** / 5X 3 60HDUE TO BELOW FREEZING TEMPERATURES, THIS RUN INCLUDED SNOW. , 4 /.5X.56H THE RAINFALL REGIMEN WAS CHANGED DUE TO PACK AND THAW.) END SUBROUTINE ANNBUD(YEAR) COMMON /ANBUDG/ RAIN,RUN,DRAN.ET.OLCSW.NEWSW.AIRR COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,LUN12 REAL NEWSW INTEGER YEAR BAL =RAIN-RUN-DRAN-ET-NEWSW+OLDSW+AIRR IF(ABS(BAL).LT.0.001) BAL=0.0 WRITE(LUN07,3000) YEAR,RAIN,RUN,DRAN.ET.OLDSW.NEWSW.AIRR,BAL RETURN 3000 FORMATdH ,////,30X.20HANNUAL TOTALS FOR 19,12,/, 1 27X.19HPRECIPITATI0N =,F8.3,/, 1 27X.19HPREDICTED RUNOFF =,F8.3,/, 1 27X,19HDRAINAGE VOLUME =,F8.3,/, 1 27X.19HT0TAL ET -,F8.3,/t 1 27X.19HBEGIN SOIL WATER =,F8.3,/, 1 27X.19HFINAL SOIL WATER =,F8.3,/, 129 1 27X.19HIRRIGATI0N APPLIED=,F8.3,/, 1 27X.19HWATER BUDGET BAL. =,F8.3,/) END SUBROUTINE EVAP(POTE1,ALAI,ATRN,PTRN,PIRR,IRFLG,IROPT) REAL POTE1(366) COMMON /BOTH/ ALAMX,TLA,GR,KE,DLA1(366),TC(366),RAD(366), 1 R(366),AL0NE,BR15(7),REFF COMMON /BLK1/ EOS,SW1,PIN,UL,U,CONA,ES,EP,MO,J,IYR,NT,ET,JC,OE C0MM0N/IRRIG/IDAY,N0IRR(366) COMMON /IRR/ BASEI.TOPI IRFLG =0 PIRR =0. POTET =POTE1(J) PP »PIN EO =POTET CALL RICHET(GR,T,U,E0,EP,ET,ES,ESl,ES2,ESX,E0S,PIN,C0NA,ALAI) PTRN =EP/25.4 U5 = BASEI*UL IF(IROPT .LE. 0 .OR. NOIRR(IDAY) .EQ. 0) U5=0.25*UL SW1 =SW1+PP IF(SW1.GT.U5 )G0 TO 10 IF(IROPT.EQ.O) GO TO 11 C BY-PASS IRRIGATION IF FLAG FOR DAY IS 0 IF(NOIRR(IDAY).EQ.O) GO TO 11 9 CONTINUE C IRRIGATE IRFLG = 1 PIRR =(UL*TOPI)-SW1 SW1 =SW1+PIRR GO TO 10 11 EP =EP*SW1/U5 ET =EP+ES IF(SWl.GT.ET) GO TO 10 C SOIL MOISTURE LIMITING ET »SW1 ES =SW1 SW1 =0.0 IF(ALAI.LE.O.O) GO TO 20 C IF THERE IS A PLANT, REMAINING SOIL MOISTURE GOES TO PLANT ES =0.0 EP =ET GO TO 20 C SOIL MOISTURE NOT LIMITING 10 CONTINUE SW1 =SW1-ET 20 CONTINUE ATRN =EP/25.4 RETURN END SUBROUTINE EROSA COMMON /EROS1/BYEAR,EYEAR,CDATE,NDATES,NYEARS,EROOUT, & FLGUPD,FLGSEQ,NPTSO,XPOVR,SPOVR,NPTSC1,XPCHN1, & SPCHN1,NPTSC2,XPCHN2,SPCHN2,DAREA,ELEM 130 COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DA0VR,SLNGTH, 1 NXCl,XCHNl(4),NCHNl(4,30),CCHNl(4,30),SCHNl(4,30), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /CHAN/ XSTAR(2,30),DEPA(2,30),DEPB(2,30),WIDA(2,30), 1 WIDB(2,30),WERA(2,30),WERB(2,30) COMMON /FALL/ RE(9) ,CDRE2(9),CDDRE(9) REAL REB(9),CDRB(9),CDDB(9),XP0VR(30),SP0VR(30),XPCHN1(3O), 1 SPCHN1(3O),XPCHN2(30),SPCHN2(30) ,TGST(4,10),TGSY(4,10), 1 TGSM(4,10),GS(10),C0NC(10),DAREA(4),LNGTHl,LEFFl,LNGTH2, 1 LEFF2 INTEGER BYEAR,EYEAR,SDATE,CDATE(31),DNYEAR(30).EROOUT, 1 FLGUPD,FLGSEQ.WCHMON,DP ,ELEM,FLGTMP DATA REB /O.001,0.01,0.1,1.0,10.0,100.0,1000.0, 1 10000.0,100000.0/ DATA CDRB /O.Oil,0.22,2.2,22.8,420.0,11000.0, 1 480000.0,4.0E+07,4.8E+09/ DATA CDDB /2.05E+07,2.05E+05,2.05E+03,24.0,0.41, 1.05E-02,4.3E-04,4.0E-05,4.4E-06/ DO 1CC RE(J) = ALOG(REB(J)) CDRE2(J) = ALOG(CDRB(J)) CDDRE(J) = ALOG(CDDB(J)} 10 CONTINUE C C INIPAR READS THE FILE CONTAINING THE PARAMETERS FOR THE C SIMULATION RUN. IT ALSO PRINTS AN INITIAL OUTPUT THAT PRESENTS C THOSE PARAMETERS IN A MORE UNDERSTANDABLE FORM.

CALL INIPAR(BYEAR,EYEAR,CDATE,NDATES,NYEARS,EROOUT, & FL..UPD, FLGSEQ, NPTSO,XPOVR,SPOVR,NPTSC1,XPCHN1, & SPCHN1,NPTSC2,XPCHN2,SPCHN2,DAREA,ELEM) ELEM=O FLGTMP = M0D(ER00UT,2) IF(ER00UT.EQ.6) FLGTMP = 1 C C THE INITIAL WIDTH AND DEPTH VALUES FOR EACH SEGMENT OF THE C CHANNELS MODELED IN THIS SIMU^TION ARE SET UP HERE WITH U THE CALLS TO SPREAD. INDXD IS THE INDEX FOR THE ARRAY OF C DATES (CDATE) THAT CONTROLS THE PARAMETERS SELECTION. C LINDXD = 1 INDXD = 1 INDXND = 2 IF(FLGSEQ.LE.2) GO TO 30 CALL SPREAD(O,1,INDXD,1,NXC1,XCHN1,DCHN1,NPTSC1,XPCHN1,DEPA) 131 CALL SPREAD(O,2,INDXD,1,NXC1,XCHN1,DCHN1,NPTSC1,XPCHN1,DEPB) CALL SPREAD(O,1,INDXD,1,NXC1,XCHN1,WCHN1,NPTSC1,XPCHN1,WIDA) . CALL SPREAD(O,2,INDXD,1,NXC1,XCHN1,WCHN1,NPTSC1,XPCHN1,WIDB) IF(FLGSEQ.EQ.3.0R.FLGSEQ.EQ.5) GO TO 30 CALL SPREAD(0,l,INDXD,2,NXC2,XCHN2,DCHN2,NPTSC2,XPCHN2,DEPA) CALL SPREAD(0,2,INDXD,2,NXC2,XCHN2,DCHN2,NPTSC2,XPCHN2,DEPB) CALL SPREAD(0,l,INDXD,2,NXC2,XCHN2,WCHN2,NPTSC2,XPCHN2,WIDA) CALL SPREAD(0,2,INDXD,2,NXC2,XCHN2,WCHN2,NPTSC2,XPCHN2,WIDB) 30 CONTINUE C C THE BEGINNING YEAR AND DATE ARE USED TO INITIALIZE THE TIME C KEEPING VARIABLES LYEAR AND LMONTH. INDXY IS THE INDEX FOR C THE CURRENT YEAR OF THC CROP ROTATION. C INDXY = 1 LYEAR = BYEAR C LDATE = 1000*BYEAR LMONTH = 1 RETURN END SUBROUTINE EROSB (SOLOSS,ENRICH) COMMON /EROS1/BYEAR,EYEAR,CDATE,NDATES,NYEARS,EROOUT, & FLGUPD,FLGSEQ,NPTSO,XPOVR,SPOVR,NPTSC1,XPCHN1, & SPCHN1,NPTSC2,XPCHN2,SPCHN2,DAREA,ELEM COMMON /PASS/SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(IO) ,DCL(11) ,DDCL(10) .FI.GPRT COMMON /R0UT/NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DAOVR,SLNGTH, 1 NXC1,XCHN1(4)5NCHN1(4,3O),CCHN1(4,3O),SCHN1(4,3O), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /CHAN/XSTAR(2,30),DEPA(2,30),DEPB(2,30),WIDA(2,30), 1 WIDB(2,30),WERA(2,30),WERB(2,30) COMMON /POND/CTL,PAC,DAPND,INTAKE,FRONT.DRAW,SIDE,FS,B,DIAO,C REAL REB(9),CDRB(9),CDDB(9),XP0VR(30),SPOVR(30),XPCHN1(3O), 1 SPCHN1(3O),XPCHN2(3O),SPCHN2(3O),TGST(4,1O),TGSY(4,1O), 1 TGSM(4,10),GS(10),C0NC(10),DAREA(4),LNGTH1,LEFF1,LNGTH2, 1 LEFF2 INTEGER BYEAR,EYEAR,SDATE,CDATE(31),DNYEAR(30).EROOUT, 1 FLGUPD.FLGSEQ.WCHMON.DP.ELEM.FLGTMP C C C THE VARIABLES NYEAR AND NMONTH ARE COMPARED WITH LYEAR AND 132

C LMONTH TO DETERMINE WHETHER OR NOT A ANNUAL OR MONTHLY C OUTPUT IS DUE. RUNOFF = RUNOFF / 12.0 EXRAIN = EXRAIN / 43200. NYEAR = SDATE/1000 IF(NYEAR .GT. 0 .AND. NYEAR .LT. BYEAR) CONTINUE IF(NYEAR .GT. EYEAR) SDATE = 0 IF(SDATE .LE. 0 .AND. NRAINT .LE. 1) GO TO 240 NMONTH = WCHMON(SDATE) IF(LMONTH.EQ.NMONTH.AND.LYEAR.EQ.NYEAR) GO TO 70 IF(ER00UT.LT.2) GO TO 50 CALL MONOUT(ELEM,FLGSEQ,EROOUT,NPART,LMONTH,LYEAR,NRAINM,NRUNOM, 1 TRAINM,TRUNOM,TGSM,DAREA) 50 CONTINUE LMONTH = NMONTH IF(LYEAR.EQ.NYEAR) GO TO 70 CALL ANNOUT(ELEM,FLGSEQ,EROOUT,NPART,LYEAR,NRAINY,NRUNOY,TRAINY, 1 TRUNOY.TGSY.DAREA) IF(SDATE.LE.O) GO TO 240 INDXY = INDXY+(NYEAR-LYEAR) LYEAR = NYEAR IF(INDXY.LE.NYEARS) GO TO 80 INDXY = INDXY-NYEARS INDXD = NDATES INDXND = 1 IF(FLGUPD.LT.l) GO TO 60 LINDXD = 0 INDXD = 1 INDXND = 2 CALL UPDPAR(1,FLGSEQ,NDATES,CDATE,NYEARS,DNYEAR.NPTSO.XPOVR, 1 SPOVR,NPTSC1,XPCHN1,SPCHN1,NPTSC2,XPCHN2,SPCHN2) IF(NYEARS.LE.O) GO TO 240 IF(FLGTMP.EQ.O) GO TO 60 CALL 0UT0V2(NDATES,CDATE,NYEARS,DNYEAR) IF(FLGSEQ.LE.2) GO TO 60 CALL 0UTCH2(l,NDATES,CDATE.NYEARS.DNYEAR) IF(FLGSEQ.EQ.3.0R.FLGSEQ.EQ.5) GO TO 60 CALL 0UTCH2(2,NDATES,CDATE.NYEARS.DNYEAR) 60 CONTINUE IF(INDXY.GT.NYEARS) INDXY = MOD(INDXY,NYEARS) IF(INDXY.EQ.O) INDXY = NYEARS GO TO 80 70 CONTINUE C C CHECK TO SEE IF THE PASS FILE CONTAINED A VALID STORM EVENT C IF(SDATE.LE.O) GO TO 240 80 CONTINUE C C NDATE IS USED TO COMPARE AGAINST THE NEXT VALUE OF CDATE C FOR DECIDING WHETHER OR NOT TO UPDATE INDXD. INDXND iS THE C INDEX FOR THE NEXT VALUES OF CDATE. 133 C IF(NDATES.LE.l) GO TO 100 NDATE = M0D(SDATE,1000)+1000*INDXY 90 CONTINUE IF(NDATE.LE.CDATE(INDXND)) GO TO 100 INDXD = INDXND INDXND = INDXND+1 GO TO 90 100 CONTINUE C C INCREMENT THE COUNTERS FOR THE NUMBER OF RAINFALL EVENTS AND C THE RAINFALL TOTALS FOR FINAL ANNUAL AND MONTHLY SUMMARIES. C PASOUT PRINT A SUMMARY OUTPUT FOR THE STORM. C IF(ER00UT.GT.3) CALL PASOUT IF (RNFALL .GT. 0.0) THEN NRAINT = NRAINT+1 NRAINY = NRAINY+1 NRAINM = NRAINM+1 TRAINT = TRAINT+RNFALL TRAINY = TRAINY+RNFALL TRAINM = TRAINM+RNFALL ENDIF C C CHECK TO SEE WHETHER OR NOT ANY RUNOFF OCCURED AND INCREMENT THE C COUNTERS FOR THE NUMBER OF RUNOFF EVENTS AND THE RUNOFF TOTALS C BEFORE STARTING THE ROUTING CALCULATIONS C IF(RUNOFF.LE.O.O.OR.EXRAIN.LE.O.O) GO TO 220 NRUNOT = NRUNOT+1 NRUNOY = NRUNOY+1 NRUNOM = NRUNOM+1 TRUNOT = TRUNOT+RUNOFF TRUNOY = TRUNOY+RUNOFF TRUNOM = TRUNOM+RUNOFF C C CALL THE ROUTING PROCEDURE FOR THE OVERLAND FLOW SECTION C BEING MODELED. C ELEM = 1 CALL ROUTE(EROOUT,INDXD,NPTSO,ELEM,XPOVR,SPOVR,GS,CONC,SOLOSS) CALL STROUT(ELEM,ERO0UT,NPART,GS,C0NC,DAOVR,ENRICH) IF(SOLOSS.LE.O.O) GO TO 120 DO 110 K=1,NPART TGST(ELEM.K) = TGST(ELEM,K)+GS(K) TGSY(ELEM.K) = TGSY(ELEM,K)+GS(K) TGSM(ELEM.K) = TGSM(ELEM,K)+GS(K) 110 CONTINUE 120 CONTINUE IF(FLGSEQ.EQ.l) GO TO 210 IF(FLGSEQ.EQ.2) GO TO 190 C C IF INDXD HAS CHANGED THEN THE DEPTH AND WIDTH PARAMETERS MUST 134 C BE REASSIGNED WITH SPREAD. C IF(INDXD.EQ.LINDXD) GO TO 130 CALL SPREAD(1,1,INDXD,1,NXC1,XCHN1,DCHN1,NPTSC1,XPCHN1,DEPA) CALL SPREAD(1,2}INDXD,1,NXC1,XCHN1,DCHN1,NPTSC1,XPCHN1,DEPB) CALL 5PREAD(1,1,INDXD,1,NXC1,XCHN1,WCHN1,NPTSC1,XPCHN1,WIDA) CALL SPREAD(l,2,INDXD,l,NXCl,XCHNl,WCHNl,NPTSCl,XPCHNl,WIDB) 130 CONTINUE C C CALL THE ROUTING PROCEDURE FOR THE FIRST CHANNEL BEING MODELED C ELEM = 2 CALL ROUTE(EROOUT,INDXD,NPTSC1,ELEM,XPCHN1,SPCHN1,GS,CONC,SOLOSS) CALL STROUT(ELEM,EROOUT,NPART,GS,CONC,DACHL1,ENRICH) IF(SOLOSS.LE.O.O) GO TO 150 DO 140 K-l.NPART TGST(ELEM.K) = TGST(ELEM,K)+GS(K) TGSY(ELEM.K) = TGSY(ELEM,K)+GS(K) TGSM(ELEM,K) = TGSM(ELEM,K)+GS(K) 140 CONTINUE 150 CONTINUE IF(FLGSEQ.EQ.3) GO TO 210 IF(FLGSEQ.EQ.5) GO TO 190 C C IF INDXD HAS CHANGED THEN THE DEPTH AND WIDTH PARAMETERS MUST C BE REASSIGNED WITH SPREAD. C IF(INDXD.EQ.LINDXD) GO TO 160 CALL SPREAD(1,1,INDXD,2,NXC2,XCHN2,DCHN2,NPTSC2,XPCHN2,DEPA) CALL SPREAD(l,2,INDXD,2,NXC2,XCHN2,DCHN2,NPTSC2,XPCHN2,DEPB) CALL SPREAD 1.1,INDXD,2,NXC2,XCHN2,WCHN2,NPTSC2,XPCHN2,WIDA) CALL SPREAD(1,2,INDXD,2,NXC2,XCHN2,WCHN2,NPTSC2,XPCHN2,WIDB) 160 CONTINUE C C CALL THE ROUTING PROCEDURE FOR THE SECOND CHANNEL BEING MODELED C ELEM • 3 CALL R0UTE(ER00UT,INDXD,NPTSC2,ELEM,XPCHN2,SPCHN2,GS,C0NC,S0L0SS) CALL STR0UT(ELEM,ER00UT,NPART,GS,C0NC,DACHL2,ENRICH) IF(SOLOSS.LE.O.O) GO TO 180 DO 170 K=1,NPART TGST(ELEM.K) = TGST(ELEM,K)+GS(K) TGSY(ELEM,K) = TGSY(ELEM,K)+GS(K) TGSM(ELEM.K) = TGSM(ELEM,K)+GS(K) 170 CONTINUE 180 CONTINUE IF(FLGSEQ.LT.6) GO TO 210 190 CONTINUE C C CALL THE IMPOUNDMENT ROUTING PROCEDURE IF AN IMPOUNDMENT IS C BEING MODELED. 135 C ELEM = 4 CALL IMPOND(GS,CONC,SOLOSS) CALL STROUT(ELEM,EROOUT,NPART,GS,CONC,DAPND,ENRICH) IF(SOLOSS.LE.O.O) GO TO 220 DO 200 K=1,NPART TGST(ELEM.K) = TGST(ELEM,K)+GS(K) TGSY(ELEM.K) = TGSY(ELEM,K)+GS(K) TGSM(ELEM.K) = TGSM{ELEM,K)+GS(K) 200 CONTINUE GO TO 230 210 CONTINUE C C CHECK FOR SOIL LOSS AND IF NONE OCCURED SET THE SEDIMENT C ENRICHMENT RATIO TO ZERO. C IF(SOLOSS.GT.O.O) GO TO 230 220 CONTINUE SOLOSS =0.0 ENRICH = 0.0 230 CONTINUE C LINDXD = INDXD C C IF THIS SIMULATION IS FOR MORE THAN ONE STORM LOOP BACK UP AND C READ IN ANOTHER STORM EVENT. C RETURN 240 CONTINUE 300 CONTINUE CALL ENDOUT(ELEM,FLGSEQ,NPART,NRAINT,NRUNOT,TRAINT,TRUNOT,TGST, 1 DAREA) RETURN END SUBROUTINE PASOUT COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER SDATE IF (RNFALL .LE. 0.0 ) RETURN RUNTMP = 12. * RUNOFF EXRTMP = 43200.O*EXRAIN WRITE(LUN08,4000) SDATE.RNFALL,RUNTMP,EXRTMP,El IF(RUNOFF.LE.O.O) WRITE(LUN08,4001) RETURN 4000 FORMATC • ,//,llX,600S'),//, 1 35X,'STORM INPUTS1,/, 1 35X,1 ',//, 1 23X,'DATE1,10X.I7.3X,1JULIAN DATE1,/, 1 23X,'RAINFALL',7X,F6.2S3X,'INCHES',/, 1 23X,'RUNOFF VOLUME1,2X,F6.2,3X,'INCHES',/, 1 23X,'EXCESS RAINFALL',F6.2,3X,'INCHES/HR',/, 1 23X,'EI',13X,F6.2,3X,'WISCHMEIER ENGL. UNITS1,/) 136 4001 FORMATC ',/,24X,'*** NO RUNOFF - NO SOIL LOSS ***') END SUBROUTINE ADDPTS(NIN,XIN,NOUT,XOUT,YOUT) REAL INTRPL,XIN(NIN),X0UT(30),Y0UT(30) UN = 1 IOUT = 1 10 CONTINUE DIF = (XOUT(IOUT)-XIN(IIN)) /XIN(NIN) IF(ABS(DIF).LT.0.001)G0 TO 30 IF(XOUT(IOUT).LT.XIN(IIN)) GO TO 40 NOUT = NOUT+1 IDWN = NOUT 20 CONTINUE XOUT(IDWN) = XOUT(IDWN-l) YOUT(IDWN) = YOUT(iDWN-l) IDWN = IDWN-1 IF(IDWN.GT.IOUT) GO TO 20 YOUT(IOUT) = INTRPL(XOUT(IOUT-1),YOUT(IOUT-1),XOUT(IOUT+1), 1 YOUT(IOUT+1),XOUT(IOUT)) 30 CONTINUE XOUT(IOUT)=XIN(IIN) UN • IIN+1 IF(IIN.GT.NIN) RETURN 40 CONTINUE IOUT - IOUT+1 IF(IOUT.LE.NOUT) GO TO 10 RETURN END SUBROUTINE ANNOUTtELEM.FLGSEQ.EROOUT.NPART.LYEAR.NRAINY^RUNOY, 1 TRAINY,TRUNOY,TGSY,DAREA) COMMON /CONS/ AGRAV,MSDH2O,WTDH2O,WTDS0I,KINVIS,KCH,YALCON,BETA, 1 NBAROV.NBARCH COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL C0NC(10),TGSY(4,10),DAREA(4) INTEGER ELEM.FLGSEQ.EROOUT,FLGTMP IF(NRAINY.EQ.O) GO TO 60 RUNVOL = TRUNOY*DAREA(ELEM) TRUNOY - 12.0*TRUN0Y WRITE (LUN08.4000) LYEAR.NRAINYJRAINY.NRUNOY,TRUNOY IF(NRUNOY.EQ.O) GO TO 60 FLGTMP = M0D(ER00UT,2) IF(ER00UT.EQ.6) FLGTMP = 1 DO 50 J=1,ELEM IF(J.EQ.2.AND.FLGSEQ.EQ.2) GO TO 50 IF(J.EQ.3.AND.FLGSEQ.EQ.2) GO TO 50 IF J.EQ.3.AND.FLGSEQ.EQ.5) GO TO 50 IF J.EQ.l) WRITE (LUN08.4004) IF J.EQ.2) WRITE (LUN08.4005) IF(J.EQ.3J WRITE (LUN08,4006) IF(J.EQ.4) WRITE (LUN08.4007) TGS = 0.0 137 DO 10 K=1,NPART TGS = TGS+TGSY(J,K) 10 CONTINUE IF(TGS.LE.O.O) GO TO 40 IF(FLGTMP.EQ.l) WRITE (LUN08.4001) TCONC =0.0 TCNCPC = 0.0 TPPM =0.0 DO 20 K-l.NPART CONC(K) = TGSY(J,K)/RUNVOL CONCPC = C0NC(K)/WTDH20 PPM = C0NCPC*1.0E+06 FRAC = TGSY(J,K)/TGS IF(FLGTMP.EQ.l) WRITE (LUN08.4002) K,FRAC,TGSY(J,K), 1 CONC(K),CONCPC,PPM TCONC = TCONC+CONC(K) TCNCPC = TCNCPC+CONCPC TPPM = TPPM+PPM 20 CONTINUE DACRE = DAREA(J)/43560.0 SOLOSS = TGS/(2000.O*DACRE) IF(FLGTMP.EQ.O) GO TO 30 WRITE (LUN08.4003) TGS,TCONC,TCNCPC,TPPM,SOLOSS,DACRE CALL ENRCMP(2,C0NC,ENRICH) WRITE (LUN08.4009) GO TO 50 30 CONTINUE CALL ENRCMP(1,CONC,ENRICH) WRITE (LUNC8.4008) SOLOSS,ENRICH GO TO 50 40 CONTINUE WRITE (LUN08,4010) 50 CONTINUE 60 CONTINUE NRAINY • 0 NRUNOY • 0 TRAINY = 0.0 TRUNOY =0.0 DO 80 J=1,ELEM DO 70 K=1,NPART TGSY(J.K) - 0.0 70 CONTINUE 80 CONTINUE RETURN 4000 FORMATC ' ,//,HX,60('Y'),//, 1 29X,'ANNUAL SUMMARY FOR 19',12,/, 1 29X,' ',//, 1 18X,I4,' STORMS PRODUCED \F8.2,1 IN. OF RAINFALL1,/, 1 18X.I4,1 STORMS PRODUCED ',F8.2,' IN. OF RUNOFF1,/) 4001 FORMATC ',/,21X,'THE QUANTITY OF ERODED SEDIMENT IN RUNOFF1,//, 1 6X,'PART. FRAC. IN SOIL LOSS ', 1 ' CONCENTRATIONS (SOIL/WATER) ',/, 1 6X,'TYPE SED. LOAD LBS. 138

1 ' LBSF/FT**3 LBSF/LBSF PPM (WT)',/, 1 6X,1 ', 1 ' ') 4002 FORMATC ',6X,I2,6X,F5.2,4X,F9.0,4X,F9.4,4X,F9.4,4X,F10.0) 4003 FORMATC ',/,10X,'TOTAL',9X5F9.0,4X,F9.4,4X,F9.4,4X,F10.0,//, 1 19X,'ANNUAL SOIL LOSS FOR AREA ',F6.2, 1 ' TONS/ACRE1,/, 1 29X '(AREA = ' F8.4 ' ACRES)1) 4004 FORMATC ',/,28X,'VALUES FROM OVERLAND FLOW',/, 1 28X,' ') 4005 FORMATC ' ,/,29X,'VALUES FROM CHANNEL ONE1,/, 1 29X,' ') 4006 FORMATC ',/,29X,'VALUES FROM CHANNEL TWO1,/, 1 29X,' ') 4007 FORMATC ',/,29X,'VALUES FROM IMPOUNDMENT1,/, 1 29X,1 ') 4008 FORMATC ',23X,'ANNUAL SOIL LOSS ',F6.2,' TONS/ACRE',/, 1 24X,1ENRICHMENT RATIO ',F7.3) 4009 FORMATC ',//) 4010 FORMATC './.31X,1*** NO SOIL LOSS ***') END REAL FUNCTION CRIT(Z.Q) COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVISJKCH,YALC0N,BETA, 1 NBAROV.NBARCH CRIT = (2.0*BETA*Q**2/(AGRAV*Z**2))**0.2 RETURN END SUBROUTINE CURFIT(XU,YU,SU,XL,YL,SL,NPT,XC,YC,SC) REAL XC(NPT),YC(NPT),SC(NPT) SA = (SU+SL)/2.0 Al = -SU/SA A2 = ((-SL/SA)-A1)/2.O DO 10 I=1,NPT XS = FLOAT(I)/FLOAT(NPT+1) XC(I) = XU+XS*(XL-XU) YS = 1.0+Al*XS+A2*XS**2 YC(I) = YL+YS*(YU-YL) SS = A1+2*A2*XS SC(I) = ABS(SA*SS) 10 CONTINUE RETURN END SUBROUTINE DCAP(FLAGM,FLAGT,Q,SF,C1,Z,EFFSH,DEPSID,DEPMID,WEROD) 1 WFLOW,N,CRSH,COVSH,MAXE,EXCESS,TB,DF) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,EI COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH COMMON /PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 S0LCLY,S0LSLT,S0LSND,S0LORG,SSCLY,SSSLT,SSSND, 1 SSORG,SSSOIL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(10),DCL(11),DDCL(10),FLGPRT 139 REAL N,NBARCH,KCH,DF(10),LEFF,MAXE,NBAR0V,XXCF(17),FFXCF(17), 1 XXB(27),FHXB(27) INTEGER FLAGT,FLAGM DATA XXCF /O.0,0.02,0.04,0.06,0.08,0.10,0.12,0.14,0.16, 1 0.18,0.20,0.22,0.24,0.26,0.28,0.30,0.32/ DATA FFXCF/1000.0,33.872,12.571,7.3030,5.1102, 1 3.9575,3.2659,2.8419,2.5040,2.2818, 1 2.1194,1.9997,1.9118,1.8489,1.8068, 1 1.7829,1.7758/ DATA XXB /O.0,0.01,0.02,0.04,0.06,0.08,0.1, 1 0.12,0.14,0.16,0.18,0.2,0.22,0.24,0.26, 1 0.28,0.3,0.32,0.34,0.36,0.38,0.4,0.42, 1 0.44,0.46,0.48,0.5/ DATA FHXB /O.0,0.000474,0.00154,0.00509,0.0104,0.0177, 1 0.0269,0.0384,0.0524,0.0693,0.0897,0.114,0.1432, 1 0.1782,0.2207,0.2724,0.3361,0.4159,0.5176,0.6506, 1 0.8307,1.0858,1.4722,2.1212,3.4264,7.3566,10000.0/ TIMPOT =0.0 ADJSH = 1.35*EFFSK IF(ADJSH.GT.CRSH) GO TO 30 10 CONTINUE DO 20 K=1,NPART DF(K) = 0.0 20 CONTINUE DCT = 0.0 RETURN 30 CONTINUE TIMSH = TB*(1.0-(CRSH/(1.35*EFFSH))) IF(DEPMID.EQ.O.O) GO TO 90 IF(FLAGT.EQ.3) GO TO 40 CALL HYDCHN(4,Q,SF,Cl,Z,WFL0W,WER0D,N,CRSH,C0VSH,EFFSH) GO TO 50 40 CONTINUE WEROD = WFLOW 50 CONTINUE DIFSH = 1.35*EFFSH-CRSH IF(DIFSH.LE.O.O) GO TO 10 DI = EXCESS*(KCH*((1.35*EFFSH-CRSH)**1.05)) TIMPOT «= DEPMID*WTDS.I/DI IF(TIMPOT.LT.TIMSH) GO TO 90 60 CONTINUE DCT = DI*TIMSH*WEROD/(TB*WFLOW) IF(FLAGM.EQ.l) GO TO 70 IF(DCT.LT.MAXE) GO TO 70 DI = DI*MAXE/DCT DCT « MAXE 70 .CONTINUE DO 80 K=1,NPART DF(K) » DCT*FRAC(K) 80 CONTINUE DEPMID = DEPMID-DI*TIMSH/WTDSOI IF(DEPMID.LT.0.005) DEPMID= 0.0 140 RETURN 90 CONTINUE TIMEX = TIMSH-TIMPOT AB = (Q*NBARCH/(1.49*SQRT(SF))) IF(WEROD.EQ.O.O) CALL HYDCHN(4,Q,SF,Cl,Z,WFL0W,WER0D,N,CRSH, 1 COVSH.EFFSH) HXB = AB/(WER0D**(8.0/3.0)) CALL TABLE(4,27,XXB,FHXB,HXB,XB) DIFSH = EFFSH*SHDIST(XB)-CRSH IF(DIFSH.GT.O.O) GO TO 100 IF(DEPMID.LE.O.O) GO TO 10 TIMSH = TIMPOT GO TO 60 100 CONTINUE DWDTI = EXCESS*2.0*KCH*(DIFSH**1.05)/WTDS0I AD = (AB**0.375)*WTDH20*SF/CRSH IF(AD.LE.1.7758)G0 TO 10 CALL TABLE(3,17,XXCF,FFXCF,AD,XCF) WFIN = (AB**0.375)*((XCF*(1.0-2.0*XCF)/XCF**(8.0/3.0))**0.375) IF(WFIN.LE.WEROD) GO TO 10 TSTAR = TIMEX*DWDTI/(WFIN-WEROD) WSTAR * (1.0-EXP(-1.0176*TSTAR))/1.0176 WE = WSTAR*(WFIN-WEROD)+WER0D EROS = (WE-WEROD)*DEPSID+DEPMID*WEROD DCT * EROS*WTDSOI/(TB*WFL0W) IF(FLAGM.EQ.l) GO TO 110 IF(DCT.LT.MAXE) GO TO 110 DCT = MAXE EROS = DCT*TB*WFLOW/WTDSOI 110 CONTINUE DO 120 K=1,NPART DF(K) = DCT*FRAC(K) 120 CONTINUE IF(EROS.LT.DEPMID*WEROD) GO TO 130 EROSL • EROS-DEPMID*WEROD WEROD - EROSL/DEPSID+WEROD DEPMID = 0.0 RETURN 130 CONTINUE DEPMID = DEPMID-EROS/WEROD RETURN END SUBROUTINE ENDOUT(ELEM,FLGSEQ,NPART,NRAINT,NRUNOT,TRAINT,TRUNOT, 1 TGST.DAREA) COMMON /HEAD2/ TITLE2 COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL CONC(10),TGST(4,10),DAREA(4) INTEGER ELEM,FLGSEQ CHARACTER *80 TITLE2 (3) IF(NRAINT.EQ.O) GO TO 50 141 kdNVOL = TRUNOT*DAREA(ELEM) TRUNOT = 12.0*TRUN0T WRITE (LUN08.4000) (TITLE2(J),J=1,3),NRAINT,TRAINT, 1 NRUNOT.TRUNOT IF(NRUNOT.EQ.O) GO TO 50 DO 40 J=1,ELEM IF(J.EQ.2.AND.FLGSEQ.EQ.2) GO TO 40 IF(J.EQ.3.AND.FLGSEQ.EQ.2) GO TO 40 IF(J.EQ.3.AND.FLGSEQ.EQ.5) GO TO 40 IF(J.EQ.l) WRITE (LUN08.4004) IF(J.EQ.2) WRITE (LUN08.4005) IF(J.EQ.3) WRITE (LUN08.4006) IF(J.EQ.4) WRITE (LUN08.4007) TGS = 0.0 DO 10 K=1,NPART TGS = TGS+TGST(J,K) 10 CONTINUE IF(TGS.LE.O.O) GO TO 30 WRITE (LUN08.4001) TCONC =0.0 TCNCPC = 0.0 TPPM = 0.0 DO 20 K=1,NPART CONC(K) = TGST(J,K)/RUNVOL CONCPC = C0NC(K)/WTDH20 PPM = C0NCPC*1.0E+06 FRAC = TGST(J,K)/TGS WRITE (LUN08.4002) K,FRAC,TGST(J,K),CONC(K),CONCPC,PPM TCONC = TCONC+CONC(K) TCNCPC = TCNCPC+CONCPC TPPM = TPPM+PPM 20 CONTINUE DACRE = DAREA(J)/43560.0 SOLOSS = TGS/(2000.O*DACRE) WRITE (LUN08.4003) TGS,TCONC,TCNCPC,TPPM.SOLOSS,DACRE CALL ENRCMP(2,C0NC,ENRICH) GO TO 40 30 CONTINUE WRITE (LUN08.4008) 40 CONTINUE 50 CONTINUE RETURN 4000 FORMATCl1, 6X,'G L E A M S N0NP0IW SOURCE POLLUTION MODEL', 1 ' (EROSION/SEDIMENT flELD)',//, 1 23X,1 VERSION 1.8.5.2, JAN 12, 1987 TIFTON GA\//, 1 3(1X,A8O,/),/, 1 34X,'STORM SUMMARY1,/, 1 34X,1 ',//, 1 18X.I4,' STORMS PRODUCED ',F8.2,' IN. OF RAINFALL1,/, 1 18X.I4,1 STORMS PRODUCED '.F8.2,1 IN. OF RUNOFF') 4001 FORMATC ',/,21X,'THE QUANTITY OF ERODED SEDIMENT IN RUNOFF',//, 1 6X,'PART. FRAC. IN SOIL LOSS ', 1 ' CONCENTRATIONS (SOIL/WATER) ',/, 142 1 6X,'TYPE SED. LOAD LBS. ', 1 '. LBSF/FT**3 LBSF/LBSF PPM (WT)1,/, 1 6XS' ', 1 ' ') 4002 FORMATC ' ,6X,I216X,F5.2,4X,F?.0,4X,F9.4,4X,F9.4,4X,F10.0) 4003 FORMATC ',/,10X,'TOTAL',9X,F9.0,4X,F9.4,4X,F9.4,4X,F10.0,//, 1 20X,'TOTAL SOIL LOSS FOR AREA '.F6.2, 1 ' TONS/ACRE',/, 1 29X,'(AREA = '.F8.4,' ACRES)') 4004 FORMATC ' ,///,28X,' VALUES FROM OVERLAND FLOW ,/, 1 28X,1 ') 4005 FORMATC ',///,29X,'VALUES FROM CHANNEL ONE1,/, 1 29X,' ') 4006 FORMATC ' ,///,29X,'VALUES FROM CHANNEL TWO',/, 1 29X,' ') 4007 FORMATC ' ,///,29X,'VALUES FROM IMPOUNDMENT',/, 1 29X,1 ') 4008 FORMATC ',/,31X,'*** NO SOIL LOSS ***•) END SUBROUTINE ENRCMP(FLAG,CONC,ENRICH) COMMON /PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 SOLCLY,SOLSLT,SOLSKD,SOLORG,SSCLY,SSSLT,SSSND, 1 SSORG,SSSOIL,FRCLY(10),FRSLT(10),FRSND(10), 1 FR0RG(10),DCL(ll),DDCL(10),FLGPRT COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL CONC(IO) INTEGER FLAG.FLGPRT SUMSED =0.0 SUMCLY = 0.0 SUMSLT =0.0 SUMSND =0.0 SUMORG =0.0 DO 10 K=1,NPART SUMSED = SUMSED+CONC(K) SUMCLY = SUMCLY+CONC(K)*FRCLY(K) SUMSLT = SUMSLT+CONC(K)*FRSLT(K) SUMSND = SUMSND+CONC(K)*FRSND(K) IF(FLGPRT.EQ.O) GO TO 10 SUMORG = SUM0RG+C0NC(K)*FR0R6(K) 10 CONTINUE SEDCLY = SUMCLY/SUMSED SEDSLT = SUMSLT/SUMSED SEDSND = SUMSND/SUMSED IF(FLGPRT.EQ.O) GO TO 20 SEDORG = SUMORG/SUMSED GO TO 30 20 CONTINUE SEDORG = SOLORG*SEDCLY/SOLCLY 30 CONTINUE TOTAL = 1.0+SEDORG SSSED = SS0RG*SED0RG/1.73+(SSCLY*SEDCLY+SSSLT*SEDSLT+SSSND* 143 1 SEDSND)/TOTAL ENRICH = SSSED/SSSOIL IF(FLAG.GT.l) WRITE(LUN08,4000) SEDCLY.SEDSLT.SEDSND.SEDORG, 1 SSSED, ENRICH RETURN 1 4000 FORMATC ',///S24X,'DISTRIBUTION OF PRIMARY PARTICLES ,/, 1 20X,'AND ORGANIC MATTER IN THE ERODED SEDIMENT',/, 1 20X,' ',/, 1 29X,'TYPE FRACTION1,/, 1 25X,' ',7X,' ',/, 1 29X,'CLAY '.F6.3,/, 1 29X,'SILT ',F6.3,/, 1 29X,ISAND ',F6.3,/, 1 25X,'ORGANIC MATTER ',F6.3,//, 1 11X,'INDEX OF SPECIFIC SURFACE '.F7.2, 1 ' M**2/G OF TOTAL SEDIMENT',//, 1 19X,'ENRICHMENT RATIO OF SPECIFIC SURFACE '.F6.3) END 144 SUBROUTINE FRICHN(Q,N,Z,C1,C3,I,FLAG1,SLOPE,XSTAR,LEFF,YE, 1 XBEG,IBEG,SSFB,SSFE,SF) COMMON /CONS/AGRAV.MSDH2O,WTDH20,VITDSOI,KINVIS,KCH,YALCON,BETA, 1 NBAROV.NBARCH REAL LEFF,INTRPL,N INTEGER FLAG1 YCRCH = CRIT(Z.Q) SC * FSLQJQ.NsCl.YCRCH) IF(SLOPE.LT.SC) GO TO 10 SF = SLOPE RETURN 10 CONTINUE SSTAR = SLOPE*LEFF/YE IF(FLAGl.EQ.l) GO TO 20 IF FLAG1.EQ.2.2)) GO TO 50 IF FLAG1.EQ.31.3)) GO TO 90 IF FLAG1.EQ.4J.4) GO TO 120 IF(C3.LT.0.3) GO TO 40 20 CONTINUE FLAG1 = 1 IF(XSTAR.LE.0.90001) GO TO 30 SSF = INTRPL(XBEG,SSFB,1.0,SSFE.XSTAR) GO TO 150 30 CONTINUE IF(SSTAR.GE.0.0.AND.SSTAR.LE.1.2) 1 SSF = 0.2777-3.3110*XSTAR+9.1683*XSTAR**2- 1 8.9551*XSTAR**3 IF(SSTAR.GT.1.2.AND.SSTAR.LE.4.8) 1 SSF - 2.6002-8.0678*XSTAR+15.6502*XSTAR**2- 1 11.7998*XSTAR**3 IF(SSTAR.GT.4.8.AND.SSTAR.LE.20.0) 1 SSF = 3.8532-12.950?*XSTAR+21.1788*XSTAR**2- 1 12.1143*XSTAR**3 IF(SSTAR.GT.20.0) SSF = 0.0 IBEG = I SSFB » SSF GO TO 150 40 CONTINUE FLAG1 = 2 IF(.NOT.(C3.LT.0.3.AND.C3.GE.0.03)) GO TO 80 50 CONTINUE IF(SSTAR.EQ.O.O) GO TO 70 IF(XSTAR.LE.0.80001) GO TO 60 SSF = INTRPL(XBEG,SSFB,1.0,SSFE,XSTAR) GO TO 150 60 CONTINUE SSF = 2.0553-6.9875*XSTAR+11.4184*XSTAR**2- 1 6.4588*XSTAR**3 IBEG • I SSFB = SSF GO TO 150 70 CONTINUE 145 SSF 0.0392-0.4774*XSTAR+1.0775*XSTAR**2- 1.3694*XSTAR**3 IBEG = I SSFB = SSF GO TO 150 80 CONTINUE FLAG1 = 3 IF(.NOT.i(C3.LT.0.03.AND.C3.GE.0.007)) GO TO 120 90 CONTINUE IF(SSTAR,.EQ.O.O) GO TO 110 IF(XSTAR .LE.0.80001) GO TO 100 SSF INTRPL(XBEG,SSFB,1.0,SSFE,XSTAR) GO TO 15C 100 CONTINUE SSF 1.5386-5.2042*XSTAR+8.4477*XSTAR**2- 4.7401*XSTAR**3 IBEG = I SSFB = SSF GO TO 150 110 CONTINUE SSF 0.0014-0.0162*XSTAR-0.0926*XSTAR**2- 0.0377*XSTAR**3 IBEG = I SSFB • SSF GO TO 15C) 120 CONTINUE FLAG1 = 4 IFfSSTAR.EQ.O.O) GO TO 140 IF(XSTAR.LE.0.70001) GO TO 130 SSF - INTRPL(XBEG,SSFB,1.0,SSFE,XSTAR) GO TO 150 130 CONTINUE SSF = 1.2742-4.7020*XSTAR+8.4755*XSTAR**2- 1 5.3332*XSTAR**3 IBEG - I SSFB = SSF GO TO 150 140 CONTINUE SSF = -0.0363*XSTAR**2 IBEG = I SSFB - SSF 150 CONTINUE SFSTAR = SSTAR-SSF SF = SFSTAR*YE/LEFF RETURN END SUBROUTINE FSLPAR(CTLO,CTLZ,CTLN,CTLSL,RA,RN, 1 YBASE,Z,ENDMAN,LEFF,IBEG,FLAG1, 1 Cl C3 ENDSLP SSFE) COMMON /FLOW/ FLAGS,QB,QE,YCR,YNOR,YE,SFE,RUNPND COMMON /CONS/ AGRAV,MSDH20,WT0H20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH REAL NBARCH,NSFE,LEFF 146 INTEGER FLAGS,FLAG1.CTL0 IBEG = 1 Cl = (Z**2.5/(2.0*SQRT(Z**2.0+1.0)))**(2.O/3.0) YNOR = UNIFOR(ENDSLP,Z,ENDMAN,QE) YCR = CRIT(Z.QE) YE = YNOR IF(FLAGS.EQ.2) RETURN IF(CTLO.EQ.l) YTR = YCR IF(CTL0.EQ.2) YTR = UNIFOR(CTLSL,CTLZ,CTLN,QE) IF(CTLO.EQ.3) YTR = UNIFOR(CTLSL,CTLZ,ENDMAN,QE) IF(CTL0.EQ.4) YTR = YBASE+(QE/RA)**(1.O/RN) IF(YNOR.GT.YCR) GO TO 20 FLAGS = 2 IF(CTLO.GT.l.AND.YTR.GT.YNOR) GO TO 10 YE = YNOR SFE = ENDSLP RETURN 10 CONTINUE YE = YTR SFE = FSLQ(QE,EKuMAN,CltYE) RETURN 20 CONTINUE FLAGS = 1 IF(CTLO.EQ.l) GO TO 30 IF(YTR.LT.YNOR) YTR = YNOR NSFE = ENDMAN GO TO 40 30 CONTINUE NSFE = NBARCH 40 CONTINUE FLAG1 = 5 YE = YTR SFE = FSLQ(QE,NSFE,C1,YE) SSFE = (ENDSLP-SFE)*LEFF/YE C3 = 2.0*BETA*QE**2.0/(AGRAV*Z**2.0*YE**5.0) RETURN END REAL FUNCTION FSLQ(Q,N,C1,Y) REAL N FSLQ = (Q*N/(1.49*Cl*Y**(8.0/3.0)))**2.0 RETURN END SUBROUTINE HYDCHN(FLAGC,Q,SF,C1,Z,WB>W,N,CRSHJCOVSH,EFFSH) C C COMPUTE HYDRAULICS IN CHANNELS C COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV,NBARCH REAL N,NT,LC,MULSH,NBAR0V,NBARCH,XLC(16),FGLC(16),XXB(27), 1 FHXB(27) INTEGER FLAGC DATA XLC /O.0,0.01,0.02,0.04,0.06,0.08,0.1,0.12, 1 0.14,0.16,0.18,0.2,0.22,0.24,0.26,0.28/ 147 DATA FGLC /100000.0,32.91,15.487,7.307,4.849,3.713, 1 3.075,2.676,2.408,2.222,2.089,1.994,1.928, 1 1.884,1.858,1.84866/ DATA XXB /O.0,0.01,0.02,0.04,0.06,0.08,0.1, 1 0.12,0.14,0.16,0.18,0.2,0.22,0.24,0.26, 1 0.28,0.3,0.32,0.34,0.36,0.38,0.4,0.42, 1 0.44,0.46,0.48,0.5/ DATA FHXB /O.O..000474,.00154,.00509,.0104,.0177, 1 .0269,.0384,.0524,.0693,.0897,.114,.1432, 1 .1782,.c207,.2724,.3361,.4159,.5176,.6506, 1 .8307,1.0858s1.4722,2.1212,3.4264,7.3566, 1 10000.0/ IF(FLAGC.EQ.2) GO TO 20 IF(FLAGC.GE.3) GO TO 30 10 CONTINUE C C TRIANGULAR SECTION C AP = (Q*N/(1.49*SQRT(SF)))**0.375 Y = AP/(Cl**0.375) W = 2.0*Y*Z A = Z*(Y**2) NT = N GO TO 40 20 CONTINUE C C RECTANGULAR SECTION C IF(WB.EQ.O.O) GO TO 10 AP = (Q*N/(1.49*SQRT(SF)))**0.375 W = WB HXB = (AP/W)**(8.0/3.0) IF(HXB.GT.0.114) GO TO 25 XBO = 0.2 DO 23 M=l,25 XBN -((1.0-2.0*XB0)*HXB)**0.6 DIF =ABS((XBN-XBO)/XBN) IF(DIF.LE. 0.001) GO TO 24 XBO =XBN 23 CONTINUE IF(M.LT.25) GO TO 24 WRITE (LUN08.4999) 4999 F0RMAT(47H *****DID NOT CONVERGE IN RECTANGULAR SECTION, 1 37H CALL GEORGE FOSTER FOR HELP.****** ) 24 CONTINUE XB =XBN GO TO 27 25 CONTINUE CALL TABLE(4,27,XXB,FHXB,HXB,XB) 27 CONTINUE Y = W*XB/(1.0-2.0*XB) A = Y*W NT = N 148 GO TO 40 30 CONTINUE C C NATURALLY ERODED SECTION C AP = (Q*NBARCH/(1.49*SQRT(SF)))**0.375 GLC = AP*WTDH20*SF/CRSH IF(GLC.LT.1.84866) GO TO 50 CALL TABLE(3,16,XLC,FGLC,GLC,LC) RSTAR = (-0.34707*(0.5-LC)**3)-(0.54213*(0.5-LC)**2)+ 1 (0.66383*(0.5-LC)) W = (AP/RSTAR**0.625)*(0.73-i.46*LC) IF(FLAGC.EQ.4) GO TO 60 HXB = (AP/W)**(8.0/3.0) CALL TABLE(4,27,XXB,FHXB,HXB,XB) V = W*XB/(1.0-2.0*XB) A = Y*W NT = NBARCH 40 CONTINUE C C COMPUTATION OF SHEAR STRESS COMPONENTS C V = Q/A RSH = (V*NBARCH/(1.49*SQRT(SF)))**(1.5) RCOV = (V*(NT-NBARCH)/(1.49*SQRT(SF)))**(1.5) EFFSH = WTDH20*RSH*SF MULSH = tfTDH20*RC0V*SF IF(MULSH.LT.COVSH) GO TO 60 N = NBARCH NT = N IF(FLAGC.EQ.2) GO TO 20 IF(FLAGC.GE.3) GO TO 30 GO TO 10 50 CONTINUE IF(WB.EQ.O.O) GO TO 10 GO TO 20 60 CONTINUE RETURN END SUBROUTINE IMPOND(GS,CONC,SOLOSS) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,El COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH C0MM0N/PART/NPART,DIA(10),SPGR(10),FRAC(10),IrALL(10),EQSAND(10), 1 30LCLY,S0LSLT,S0LSND,S0L0RG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(1O),DCL(11),DDCL(1O),FLGPRT COMMON /POND/ CTL.PAC.DAPND,INTAKE,FRONT.DRAW,SIDE,FS.B.DIAO.C COMMON /FLOW/ FLAGS,QB,QE,YCR,YNOR,YE,SFE,RUNPND REAL GS(10),C0NC(10),INTAKE,KINVIS,MSDH20,NBAR0V INTEGER CTL.PAC V = DAPND*RUNOFF 149

ZS = -6.68E-06*FS-0.0903*B+1.19E-04*C-3.42E-06*V-20400.0* 1 INTAKE YS =3.28E-05*FS+0.123*B-2.40E-04*C+8.10E-06*V-11880.0*INTAKE Al = 113.6*EXP(ZS) Bl = -0.152*cXP(YS) IF(INTAKE.EQ.O.O) GO TO 10 ZOUT = -9.29E-06*FS+0.0282*B+1.25E-04*C-3.08E-06*V-33359.0* 1 INTAKE FCRO = 0.95*EXP(Z0UT) IF(FCRO.GT.l.O) FCRO = 1.0 IF(FCRO.GT.O.O) GO TO 20 WRITE (LUN08.4C00) RUNOFF = 0.0 RUNPND = 0.0 SOLOSS =0.0 RETURN 10 CONTINUE FCRO = 1.0 20 CONTINUE RUNPND = FCRO*RUNOFF CONFCT = 3.048E+05 SOLOSS =0.0 DO 30 K=1,NPART PCT = (A1/(B1*CONFCT*DDCL(K)))*(EXP(B1*CONFCT* 1 DCL(K+1))-EXP(B1*CONFCT*DCL(K))) IF(PCT.GT.IOO.O) PCT = 100.0 CONC(K) = C0NC(K)*(PCT/100.O)/FCR0 GS(K) = RUNPND*DAPND*CONC(K) SOLOSS = SOLOSS+GS(K)/DAPND 30 CONTINUE RETURN 4000 FORMATC ',/,24X,'*** NO RUNOFF - NO SOIL LOSS «*',//, 1 24X,1(IMPOUNDMENT CONTAINED ALL RUNOFF)1) END SUBROUTINE INIPAR(BYEAR,EYEAR,CDATE,NDATES,NYEARS,EROOUT, & FLGUPD,FLGSEQ,NPTSO,XPOVR,SPOVR,NPTSC1,XPCHN1, & SPCHN1,NPTSC2,XPCHN2,SPCHN2,DAREA,ELEM) COMMON /HEAD2/ TITLE2 COMMON /CONS/ AGRAV,MSDH20JWTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETAi 1 NBAROV.NBARCH COMMON/PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(1C), 1 SOLCLY.SOLSLT.SOLSND.SOLORG.SSCLY.SSSLT.SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(1O),DCL(11),DDCL(1O),FLGPPT COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30).DAOVR.SLNGTH, 1 NXCl,XCHNl(4),NCHNl(4,30),CCHNl(4,30),SCHNl(4,30), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 150 1 CTLZ2>CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /POND/ CTL.PAC.DAPND,INTAKE,FRONT,DKAW,SIDE,FS,B,DIAO,C COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUr<05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LlH12 REAL KINVIS,KCH,NBAR0V,NBARCH,MSDH20,KS01L,NFACT,NCHNl,NCHN2, 1 XSLPl(lO),SSLP1(1O) ,XPCHN1(3O) ,SPCHN1(3O).LNGTH1.LEFF1, 1 XSLP2(10) ,SSLP2(10) ,XPCHN2(30) ,SPCM2(30) ,LNGTH2,LEFF2, 1 XP0VR(30),SP0VR(30),XIN(6),YIN(6),DAREA(4),MAXELV,INTAKE INTEGER BYEAR,EYEAR,CDATE(31),DNYEAR(30),DATBEG, 1 DATEND,EROOUT,FLGSEQ,FLGPRT, FLGUPD,FLAGC1,FLAGS1, 1 CTL01, FLAGC2, FLAGS2 .CTL02, FLAGP.CTL, PAC, FLGTMP CHARACTER*80 TITLE2 (3) C C INITIALIZE OUTPUT WITH HEADING INFORMATION C WRITE(LUN08,4100) C C READ AND ECHO THE 3 TITLE LINES C NCARD = 0 DO 10 J-1,3 READ (LUN03.2003) TITLE2 (J) NCARD = NCARD+1 WRITE (LUNGS,4003) NCARD,TITLE2 (J) 10 CONTINUE C C RcAD AND ECHO THE PROGRAM CONTROL VARIABLES AND FLAGS C NCARD = 4 KEAD (LUN03.2000) BYEAR.EYEAR.EROOUT, FLGUPD.FLGSEQ, 1 FLGPRT.NPART WRITE (LUN08.4000) NCARD.BYEAR.EYEAR.EROOUT, FLGUPD, 1 FLGSEQ,FLGPRT.NPART C C READ AND ECHO THE CONSTANT VALUES C NCARD = 5 READ (LUN03.2001) KINVIS,NBAROV,WTDSOI,KCH,NBARCH,YALCON WRITE (LUN08.4001) NCARD.KINVIS.NBAROV.tfTDSOI.KCH.NBARCH.YALCON IF KINVIS.LE.O.O) KINVIS = 1.21E-05 IF NBAROV.LE.0.0) NBAROV = 0.010 IF NBARCH.LE.O.O) NBARCH = 0.030 IF(WTDSOI.LE.O.O) WTDSOI = 96.0 IF(KCH.LE.O.O) KCH = 0.135 IF(YALCON.LE.O.O) YALCON = 0.635 WTDH20 = 62.4 MSDH20 = 1.94 AGRP.V = 32.2 BETA =1.56 C C READ AND ECHO THE SOIL COMPOSITION VALUES C 151 NCARD = 6 READ (LUN03.2001) SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT, & SSSND.SSORG WRITE(LUN08,4001) NCARD,SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT, 1 SSSND.SSORG IF(SSCLY.GT.O.O) GO TO 20 SSCLY = 20.0 SSSLT =4.0 SSSND = 0.05 SSORG = 1000.0 20 CONTINUE TOTAL = SOLORG+1.0 SSSOIL = SS0RG*S0L0RG/1.73+(SSCLY*S0LCLY+SSSLT*S0LSLT+SSSND* 1 SOLSND)/TOTAL IF(FLGPRT.EQ.l) GO TO 30 NPART = 5 CALL PRTCMP GO TO 50 30 CONTINUE C C READ AND ECHO INFORMATION FOR EACH USER DEFINED PARTICLE TYPE C NCARD = 7 DO 40 K=l,NPART READ (LUN03.2001) DIA(K),SPGR(K),FRAC(K),FRCLY(K),FRSLT(K), 1 FRSND(K),FRORG(K) WRITE (LUN08.4001) NCARD,DIA(K),SPGR(K),FRAC(K),FRCLY(K), 1 FRSLT(K),FRSND(K),FRORG(K) 40 CONTINUE 50 CONTINUE DO 60 K=l,NPART DIA(K) = DIA(K)/304.8 FALL(K) = FALVEL(SPGR(K),DIA(K),KINVIS,AGRAV) EQSAND(K) = SEDDIA(2.65,FALL(K),KINVIS,AGRAV) 60 CONTINUE IF(EQSAND(NPART).GE.EQSAND(NPART-1)) GO TO 70 TMP • EQSAND(NPART-l) EQSAND(NPART-l) = EQSAND(NPART) EQSAND(NPART) • TMP TMP = SPGR(NPART-l) SPGR(NPART-l) = SPGR(NPART) SPGR(NPART) « TMP 70 CONTINUE DCL(l) = 0.0 DO 80 K=l,NPART DCL(K+1) = EQSAND(K) DDCL(K) = DCL(K+1)-DCL(K) 80 CONTINUE IF(SPGR(NPART).GE.SPGR(NPART-1)) GO TO 90 TMP = EQSAND(NPART-l) EQSAND(NPART-l) = EQSAND(NPART) EQSAND(NPART) = TMP TMP = SPGR(NPART-l) 152 SPGR(NPART-l) = SPGR(NPART) SPGR(NPART) = TMP 90 CONTINUE C C READ AND ECHO THE VALUES FOR OVERLAND FLOW THAT WILL REMAIN C CONSTANT WITH RESPECT TO TIME C NCARD = 8 READ (LUN03.2001) DAOVR.SLNGTH.AVGSLP.SB.SM.SE.XINOhYINCS), 1 XIN(4),Y1N(4) WRITE (LUN08.4001) NCARD,DA0VR,SLNGTH,AVGSLP,SB,SM,SE,XIN(3), 1 YIN(3),XIN(4),YIN(4) NCARD = NCARD+1 READ (LUN03.2002) NXK,(XSOIL(I),KSOIL(I),I=1,NXK) WRITE (LUN08.4002) NCARD,NXK,(XSOIL(I),KSQIL{I),1=1,NXK) DAOVR = DA0VR*43560.0 DAREA(l) = DAOVR XIN(l) = 0.0 YIN(6) = 0.0 XIN(6) = SLNGTH YIN(l) = AVGSLP*SLNGTH MAXELV - YIN(l) CALL PROFIL(XIN,YIN,XPOVR,SPOVR,NPTSO,SB,SM,SE,SLNGTH,MAXELV, 1 FLAGP) DO 100 1=1,NXK XSOIL(I) » SLNGTH*XSOIL(I) 100 CONTINUE CALL ADDPTS(NXK,XSOIL,NPTSO,XPOVR,SPOVR) IF(FLGSEQ.FQ.l) GO TO 190 IF(FLGSEQ.EQ.2) GO TO 170 C C READ AND ECHO THE VALUES FOR CHANNEL ONE THAT WILL REMAIN C CONSTANT WITH RESPECT TO TIME C NCARD = 10 READ (LUN03,2000) NSC1,FLAGC1,FLAGS1,CTLO1 WRITE (LUN08.4000) NCARD,NSC1,FLAGC1,FLAGS1,CTLO1 NCARD = NCARD+1 READ (LUN03.2001) CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1 WRITE (LUN08.4001) NCARD,CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1 NCARD * NCARD+1 READ (LUN03.2001) LNGTH1,DACHL1,DACHU1,Z1 WRITE (LUN08.4001) NCARD,LNGTH1,DACHL1,DACHU1,Z1 NCARD = NCARD+1 READ (LUN03.2001) (XSLP1(I),SSLP1(I),I=1,NSC1) WRITE (LUN08.4001) NCARD,(XSLP1(I),SSLP1(I),1=1,NSC1) CTLSL1 = SIN(ATAN(CTLSL1)) DACHU1 = DACHUl*43560.0 DACHL1 = DACHLl*43560.0 DAREA(2) = DACHL1 LEFF1 • LNGTH1/(1.O-DACHU1/DACHL1) T0PL1 - LEFF1-LNGTH1 DELTL1 » LEFF1/10.0 153 IDWN = NSC1+1 DO 110 I=1,NSC1 XSLPl(IDWN) - XSLP1(IDWN-1)+TOPL1 SSLPl(IDWN) = SSLPl(IDWN-l) IDWN = IDWN-1 110 CONTINUE NSC1 = NSC1+1 XSLPl(l) - T0PL1 SSLPl(l) = SSLP1(2) XPCHNl(l) = T0PL1 SPCHNl(l) = SSLPl(l) XPCHN1(2) = TOPL1+DELTL1-AMOD(TOPL1,DELTL1) DIFF =(XPCHN1(2)-TOPL1)/LEFF1 IF(ABS(DIFF).LT.0.0010) XPCHN1(2)=XPCHN1(2)+DELTL1 C IF(ABS(XPCHN1(2)-TOPL1).LT.0.0010) XPCHN1(2)=XPCHN1(2)+DELTL1 XCHECK = XPCHN1(2)+O.1*DELTL1 I = 2 120 CONTINUE IF(XCHECK,GE.LEFF1) GO TO 130 CALL TABLE(2,NSC1,XSLP1,SSLP1,XPCHN1(I),SPCHN1(I)) I = 1+1 XPCHNl(I) = XPCHN1(I-1)+DELTL1 XCHECK = XCHECK+DELTL1 GO TO 120 130 CONTINUE XPCHNl(I) = LEFF1 SPCHNl(I) = SSLPl(NSCl) NPTSC1 = I IF(FLGSEQ.EQ.3) GO TO 190 IF(FLGSEQ.EQ.5) GO TO 170 C C READ AND ECHO THE VALUES FOR CHANNEL TWO THAT WILL REMAIN C CONSTANT WITH RESPECT TO TIME C NCARD = 10 READ (LUN03.2000) NSC2,FLAGC2,FLAGS2,CTL02 WRITE (LUN08.4000) NCARD,NSC2,FLAGC2,FLAGS2,CTL02 NCARD = NCARD+1 READ (LUN03,2001) CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2 WRITE (LUN08.4001) NCARD,CTLZ2,CTLN2tCTLSL2,RA2,RN2,YBASE2 NCARD = NCARD+1 READ (LUN03.2001) LNGTH2,DACHL2,DACHU2,Z2 WRITE (LUN08.4001) NCARD,LNGTH2,DACHL2,DACH!J2,Z2 NCARD = NCARD+1 READ (LUN03.2001) (XSLP2(I),SSLP2(I),I=1,NSC2) WRITE (LUN08.4001) NCARD,(XSLP2(I),SSLP2(I),1=1,NSC2) CTLSL2 = SIN(ATAN(CTLSL2)) DACHU2 = DACHU2*43560.0 DACHL2 = DACHL2*43560.0 DAREA(3) = DACHL2 LEFF2 = LNGTH2/(1.0-DACHU2/DACHL2) T0PL2 = LEFF2-LNGTH2 DELTL2 - LEFF2/10.0 154 IDWN = NSC2+1 DO 140 I=1,NSC2 XSLP2(IDWN) = XSLP2(IDWN-l)+T0PL2 SSLP2(IDWN) = SSLP2(IDWN-1) IDWN = IDWN-1 140 CONTINUE NSC2 = NSC2+1 XSLP2(1) = T0PL2 SSLP2(1) = SSLP2(2) XPCHN2(1) = T0PL2 SPCHN2(1) = SSLP2(1) XPCHN2(2) = T0PL2+DELTL2-AM0D(T0PL2,DELTL2) DIFF =(XPCHN2(2)-T0PL2)/LEFF2 IF(ABS(DIFF).LT.0.001) XPCHN2(2)=XPCHN2(2)+DELTL2 C IF(ABS(XPCHN2(2)-T0PL2).LT.0.0010) XPCHN2(2)=XPCHN2(2)+DELTL2 XCHECK = XPCHN2(2)+0.1*DELTL2 I = 2 150 CONTINUE IF(XCHECK.GE.LEFF2) GO TO 160 CALL TABLE(2,NSC2,XSLP2,SSLP2,XPCHN2(I),SPCHN2(I)) I = 1+1 XPCHN2(I) = XPCHN2(I-1)+DELTL2 XCHECK = XCHECK+DELTL2 GO TO 150 160 CONTINUE XPCHN2(I) = LEFF2 SPCHN2(I) = SSLP2(NSC2) NPTSC2 = I IF(FLGSEQ.LT.6) GO TO 190 170 CONTINUE C C READ AND ECHO THE VALUES FOR THE IMPOUNDMENT THAT WILL REMAIN C CONSTANT WITH RESPECT TO TIME C NCARD = 14 READ (LUN03.2000) CTL.PAC WRITE (LUN08.4000) NCARD.CTL.PAC NCARD = NCARD+1 READ (LUN03,2001) DAPND,INTAKE,FRONT,DRAW,SIDE,FS,B,DIAO,C WRITE (LUN08,4001)NCARD,DAPND,INTAKE,FRONT,DRAW,SIDE,FS,B,DIAO,C DAPND = DAPNC*43560.0 DAREA(4) = DAPND DIAO = DIAO/12.0 IF(CTL.EQ.l) C = 11968.0*DIAO**2 INTAKE = INTAKE/43200.0 IF(PAC.GT.l) GO TO 180 FS = (((FR0NT+DRAW)/FR0NT)**2)/(SIDE*DRAW) B = 2.0 180 CONTINUE 190 CONTINUE C C CALL THE SUBROUTINE FOR READING THE MANAGEMENT PARAMETERS THAT C CAN CHANGE WITH RESPECT TO TIME AND BE UPDATED IF DESIRED 155 CALL UPDPAR(0,FLGSEQ,NDATES,CDATE,NYEARS,DNYEAR,NPTSO,XP0VR, 1 SPOVR,NPTSC1,XPCHN1,SPCHN1,NPTSC2,XPCHN2,SPCHN2) C C PRINT THE INITIAL OUTPUT ASSOCIATED WITH PHYSICAL CONSTANTS C AND THE SOIL AND ERODED SEDIMENT PARAMETERS C FLGTMP = M0D(ER00UT,2) IF(ER00UT.EQ.6) FLGTMP = 1 CALL OUTBEG{BYEAR,FLGTMP) IF(FLGTMP.EQ.O) GO TO 210 C C PRINT THE INITIAL OUTPUT ASSOCIATED WITH THE OVERLAND FLOW C PARAMETERS C CALL OUTOV1(FLAGP,AVGSLP,SB,SM,SE,XIN(4),YIN(4),XIN(3),YIN(3), 1 NPTSO.XPOVR.SPOVR) CALL 0UT0V2(NDATES,CDATE,NYEARS,DNYEAR) IF(FLGSEQ.EQ.l) GO TO 210 IF(FLGSEQ.EQ.2) GO TO 200 C C PRINT THE INITIAL OUTPUT ASSOCIATED WITH THE CHANNEL 1 PARAMETERS C CALL OUTCH1(1,LNGTH1,NPTSC1,XPCHN1,SPCHN1) CALL 0UTCH2(l,NDATES,CDATE,NYEARS,DNYEAR) IF(FLGSEQ.EQ.3) GO TO 210 IF(FLGSEQ.EQ.5) GO TO 200 C C PRINT THE INITIAL OUTPUT ASSOCIATED WITH THE CHANNEL 2 PARAMETERS C CALL OUTCH1(2,LNGTH2,NPTSC2,XPCHN2,SPCHN2) CALL 0UTCH2(2,NDATES,CDATE,NYEARS,DNYEAR) IF(FLGSEQ.LT.6) GO TO 210 200 CONTINUE C C PRINT THE INITIAL OUTPUT ASSOCIATED WITH THE IMPOUNDMENT C PARAMETERS C CALL OUTPND 210 CONTINUE RETURN 2000 F0RMAT(10I8) 2001 F0RMAT(10F8.0) 2002 F0RMAT(I8,8F8.0) 2003 F0RMAT(A80) 1 4000 FORMAT(' ,'CARD ,14 ',1018,/,10X,1018) 4001 FORMATS ,'CARD',14 1 MOF8.3,/,10X,10F8.3) 4002 FORMAT(' ,'CARD ,14 ',I8,8F8.3) 4003 FORMAT(' ,'CARD1,14,' \A80) 4100 FORMATS11 6X,'G L E A M S NONPOINT SOURCE POLLUTION MODEL1, 1 ' (EROSION/SEDIMENT YIELD)1,//, 1 23X,'VERSION 1.8.5.2, JAN 12, 1987 TIFTCN GA1,//) END 156 SUBROUTINE INRILL(SLOPE,KEROD,CROP,PRACT,DLAT) COMMON /PASS/ SDATE.RNFALL.RUNOFF.EXRAIN.EI COMMON/PART/NPART,DIA(1O),SPGR(1O)SFRAC(1O),FALL(1O),EQSAND(1O), 1 SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SSORG,SSSOIL,FRCLY(1O),FRSLT(1O),FRSND(1O), 1 FRORG(1O),DCL(11),DDCL(1O),FLGPRT REAL KEROD.DLAT(IO) DETINR = (0.04597/6.574)*(EI*(30.0*SL0PE+0.43))*EXRAIN*KER0D* 1 CROP*PRACT/RUNOFF DO 10 K=1,NPART DLAT(K) * DETINR*FRAC(K) 10 CONTINUE RETURN END REAL FUNCTION INTRPL(X1,Y1,X2,Y2,X) INTRPL = ((Y2-Y1)*(X-X1)/(X2-X1))+Y1 RETURN END SUBROUTINE INTSC1(XA,YA,SA,XB,YB,SB,XINT,YINT) C C LOCATES INTERSECTION OF TWO STRAIGHT LINES GIVER ONE POINT AND C THE SLOPE FOR EACH LINE C XTMP « (YA-YB-SA*XA+SB*XB)/(SB-SA) YINT = SA*(XTMP-XA)+YA XINT « XTMP RETURN END SUBROUTINE INTSC2(XA1,YA1,XA2,YA2,XB1,YB1,XB2,TB2,XINT,YINT) C LOCATES INTERSECTION OF TWO STRAIGHT LINES GIVER THE END POINTS C FOR EACH LINE C C CHECK FOR VERTICAL LINES TO AVOID INFINITE SLOPE C IF(XA1.EQ.XA2) GO TO 10 IF(XB1.EQ.XB2) GO TO 20 SA = (YA2-YA1)/(XAZ-XA1) SB = (YB2-YB1)/(XB2-XB1) XTMP = (YB1-YA1-SB*XB1+SA*XA1)/(SA-SB) YINT « SB*(XTMP-XB1)+YB1 XI NT = XTMP RETURN 10 CONTINUE SB » (YB2-YB1)/(XB2-XB1) XTMP = XA1 YINT = SB*(XTMP-XB1)+YB1 XINT = XTMP RETURN 20 CONTINUE SA - (YA2-YA1)/(XA2-XA1) XTMP = XB1 YINT = SA*(XTMP-XA1)+YA1 157 XINT = XTMP RETURN END SUBROUTINE MONOUT(ELEM,FLGSEQ,EROOUT,NPART,LMONTH,LYEAR,NRAINM, NRUNOM,TRA1NMJRUNOM,TGSM,DAREA) COMMON /CONS/ AGRAV,MSDH20JWTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, NBAROV.NBARCH COMMON /UNDEF/LUN01,LUN02,LUN03.LUN04,LUN05,LUN06,LUN07, LUN08sLUN09,LUN10,LUNll,LUN12 REAL C0NC(10),TGSM(4,10),DAREA(4) INTEGER ELEM,FLGSEQ,EROOUT,FLGTMP CHARACTER *3 MONTHS(12) MONTHS (1) = 'JAN' MONTHS ( 2) = 'FEB' MONTHS (3) «= 'MAR' MONTHS ( 4) = 'APR' MONTHS (5) = 'MAY1 MONTHS ( 6) = 'JUN' MONTHS (7) = 'JUL' MONTHS (8) = 'AUG1 MONTHS (9) = !SEP' MONTHS (10) = 'OCT' MONTHS (11) = 'NOV MONTHS (12) * 'DEC IF(NRAINM.EQ.O) GO TO 60 RUNVOL = TRUNOM*DAREA(ELEM) TRUNOM = 12.0*TRUN0M WRITE (LUN08.4000) M0NTHS(LMONTH),LYEAR,NRAINM,TRAINM,NRUNOM, TRUNOM IF(NRUNOM.EQ.O) GO TO 60 FLGTMP = M0D(ER00UT,2) IF(ER00UT.EQ.6) FLGTMP = 1 DO 50 J=1,ELEM IF(J.EQ.2.AND.FLGSEQ.EQ.2) GO TO 50 IF(J.EQ.3.AND.FLGSEQ.EQ.2) GO TO 50 IF(J.EQ.3.AND.FLGSEQ.EQ.5) GO TO 50 IF(J.EQ.l) WRITE (LUN08.4004) IF(J.EQ.2) WRITE LUN08,4005) IF(J.EQ.3) WRITE LUN08.4006) IF(J.EQ.4) WRITE LUN08.4007) TGS =0.0 DO 10 K=1,NPART TGS = TGS+TGSn(J,K) 10 CONTINUE IF(TGS.LE.O.O) GO TO 40 IF(FLGTMP.EQ.l) WRITE (LUN08.4001) TCONC = 0.0 TCNCPC = 0.0 TPPM =0.0 DO 20 K=1,NPART CONC(K) = TGSM(J,K)/RUNVOL CONCPC = C0NC(K)/WTDH20 PPM * CONCPC*!.OE+06 158 FRAC = TGSM(J,K)/TGS IF(FLGTMP.EQ.l) WRITE (LUN08.4002) K,FRAC,TGSM(J,K),CONC(K), 1 CONCPC.PPM TCONC = TCONC+CONC(K) TCNCPC = TCNCPC+CONCPC TPPM = TPPM+PPM 20 CONTINUE DACRE = DAREA(J)/43560.0 SOLOSS = TGS/(2000.0*DACRE) IF(FLGTMP.EQ.O) GO TO 30 WRITE (LUN08.4003) TGS,TCONC,TCNCPC,TPPM,SOLOSS,DACRE CALL ENRCMP(2,C0NC,ENRICH) WRITE (LUN08.4009) GO TO 50 30 CONTINUE CALL ENRCMP(1,CONC,ENRICH) WRITE (LUN08.4008) SOLOSS,ENRICH GO TO 50 40 CONTINUE WRITE (LUN08.4010) 50 CONTINUE 60 CONTINUE NRAINM = 0 NRUNOM = 0 TRAINM =0.0 TRUNOM =0.0 DO 80 J=1,ELEM DO 70 K-l.NPART TGSM(J,K) = 0.0 70 CONTINUE 80 CONTINUE RETURN 4000 FORMATC ' ,//,llX,60CM'),//, 1 26X.'MONTHLY SUMMARY FOR ',A3,', 19',12,/, 1 26X,' —-',//, 1 18X.I4,1 STORMS PRODUCED ',F8.2,' IN. OF RAINFALL1,/, 1 18X.I4,' STORMS PRODUCED '.F8.2,1 IN. OF RUNOFF1,/) 4001 FORMATC ',/,21X,'THE QUANTITY OF ERODED SEDIMENT IN RUNOFF1,//, 1 6X,'PART. FRAC. IN SOIL LOSS ', 1 ' CONCENTRATIONS (SOIL/WATER) ',/, 1 6X,'TYPE SED. LOAD LBS. 1 ' LBSF/FT**3 LBSF/LBSF PPM (OT)1,/, 1 6X,1 ', 1 ' ') 4002 FORMATC ',6X,I2,6X,F5.2,4X,F9.0,4X,F9.4,4X,F9.4,4X,F10.0) 4003 FORMATC ',/,10X,'TOTAL',9X,F9.0,4X,F9.4,4X,F9.4,4X,F10.0,//, 1 19X,'MONTHLY SOIL LOSS FOR AREA !,F6.2, 1 ' TONS/ACRE',/, 1 29X,'(AREA= '.F8.4,' ACRES)1) 4004 FORMATC ' ,/,28X,'VALUES FROM OVERLAND FLOW ,/, 1 28X,' ') 4005 FORMATC !,/,29X,'VALUES FROM CHANNEL ONE1,/, 1 29X,' - ') 159 4006 FORMATC \/,29X,'VALUES FROM CHANNEL TWO',/, 1 29XJ ') 4007 FORMATC ' ,/,29X,'VALUES FROM IMPOUNDMENT1,/, 1 29X,' ') 4008 FORMATC ',23X,'MONTHLY SOIL LOSS ',F6.2,' TONS/ACRE1,/, 1 24X,1 ENRICHMENT RATIO \F7.3) 4009 FORMATC ',//) 4010 FORMATC './^lX,1*** NO SOIL LOSS ***') END SUBROUTINE OUTBEG(BYEAR,FLAG) COMMON /HEAD2/ TITLE2 COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALCON,BETA. 1 NBAROV.NBARCH COMMON/PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10).EQSAND(10), 1 SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(IO),DCL(11),DDCL(10).FLGPRT COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUNO8,LUNO9,LUN1O,LUN11,LUN12 REAL KINVIS,KCH,MSDH20,NBAROV.NBARCH INTEGER BYEAR.FLAG CHARACTER *80 TITLE2 (3) WRITE (LUN08.4001) (TITLE2 (J),J=1,3) IF(FLAG.EQ.O) GO TO 10 WRITE (LUN08.4002) BYEAR,WTDS0I,WTDH20,MSDH20,AGRAV,KINVIS, 1 NBAROV,NBARCH,KCH,YALCOH,BETA WRITE (LUNOS^OOSJSOLCLY.SSCLY.SOLSLT.SSSLT.SOLSND.SSSND.SOLORG, 1 SSORG.SSSOIL 10 CONTINUE WRITE (LUN08,4004) DO 20 K=1,NPART DIAMM = 304.8*DIA(K) EQSMM = 304.8*EQSAND(K) WRITE (LUN08.4005) K,DIAMM,EQSMM,FALL(K),SPGR(K),FRAC(K) 20 CONTINUE IF(FLAG.EQ.O) RETURN WRITE (LUN0894006) DO 30 K=l,NPA!Tr WRITE (LUN08,4007) K,FRCLY(K),FRSLT(K),FRSND(K),FRO!?G(K) 30 CONTINUE RETURN 4001 FQRMATCl1, 6X,'G L E A M S NONPOINT SOURCE POLLUTION MODEL1, 1 ' (EROSION/SEDIMENT YIELD)1,//, 1 23X,'VERSION 1.8.5.2, JAN 12, 1987 TIFTON GA',///, 1 3(1X,A8O,/)) 4002 FORMATC ',/,32X,'INITIAL CONSTANTS',/, 1 32X,' ',//, 1 16X,'BEGINNING YEAR FOR THIS RUN ',15,/, 1 16X,'WT. DENSITY SOIL (IN PLACE) \F5.1,4X, 1 'LBSF/FT**3 ',/, 1 16X,'WT. DENSITY WATER ',10X,F5.1,4X,'LBSF/FT**3',/, 1 16X/MASS DENSITY WATER ' ,9X,F6.2,3X,'SLUGS/FT**3',/, 1 16X,'ACC. DUE TO GRAVITY ',8X,F5.1,4X,'FT/SEC**2',/, 160 1 16X,'KINEMATIC VISCOSITY ',5X,E1O.3,' FT**2/SEC,/, 1 16X,'MANNING N BARE SOIL (OVER) ',1X,F7.3,/, 1 16X,'MANNING N BARE SOIL (CHAN) ',1X,F7.3,/, 1 16X,'CHANNEL ERODIBILITY FACTOR ',1X,F7.3,/, 1 30X,'(LBS/FT**2 SEC)/(LBS/FT**2)**1.05't/, 1 16X,'YALIN CONSTANT (ALL PART.) ',1X,F7.3,/, 1 16X,'MOMENTUM COEFF. FOR ',/, 1 16X,'N0NUNIFORM VELOCITY ',/, 1 16X,'IN CROSS SECTION ',11X,F6.2,3X,'(NO UNITS)',//) 4003 FORMATC ',/,24X,'DISTRIBUTION OF PRIMARY PARTICLES',/, 1 19X,'AND ORGANIC MATTER IN THE ORIGINAL SOIL MASS1,/, 1 19X,1 ',/, 1 19X,' TYPE FRACTION SPECIFIC SURFACE1,/, 1 19X,1 • 1 47X,'(M**2/G OF SOIL)',/, 1 22X,'CLAY',9X,F5.3,11X,F8.3,/, 1 22X,'SILT',9X,F5.3,11X,F8.3,/, 1 22X,'SAND',9X,F5.3,11X,F8.3,/, 1 42X,'(M**2/G OF ORGANIC CARBON)1,/, 1 17X,'ORGANIC MATTER1,4X,F5.3,11X,F8.3,//, 1 22X,'(ORGANIC CARBON = ORGANIC MATTER/1.73)1,//, 1 13X,'INDEX OF SPECIFIC SURFACE ',F7.2, 1 1 M**2/G OF TOTAL SOIL',//) 4004 F0RMAT(• ',/,29X,'PARTICLE SPECIFICATIONS1,/, 1 29X,' ',//, 1 9X,'TYPF. DIA. EQSAND DIA. FALL VEL. ', 1 SPGRAV. FRAC. IN1,/, 1 9X, NO. MM MM FT/SEC ', 1 GM/CM**3 DETACH. SED.',/, 1 9X, 1 4005 FORMAT(' 1, 9X,I2,8X,F5.3,6X,F5.3,4X,E10.3,4X,F4.2,7X,F4.2) 4006 FORMAT(' ',/,31X,'PARTICLE COMPOSITION1,/, 31X,' ',//, 12X,'TYPE'.15X,1PRIMARY PARTICLE FRACTIONS',/, 12X,1 NO. CLAY SILT SAND1 5X,'ORGANIC MATTER',/, ,,(,),,( ) 4007 FORMATC ',12X,I2,1X,3(5X,F6.3),8X,F6.3) END SUBROUTINE OUTCH1(INDXC,LNGTHL,NPTSC,XPCHN,SPCHN) COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DAOVR,SLNGTH, 1 NXC1,XCHN1(4),NCHN1(4,3O),CCHN1(4,3O),SCHN1(4,3O), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30)sFLAGC2,FLAGS2,CTL02, 1 CTLZ2.CTLN2.CTLSL2,RA2,RN2,YBASE2.DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /CHAN/ XSTAR(2,30),DEPA(2,30),DEPB(2,30),MIDA(2,30), 161 1 WIDB(2,30),WERA(2,30),WERB(2,30) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUNO8,LUNO9,LUN1O,LUN11,UM2 REAL LEFF,LNGTHU,LNGTHL,LEFF1,LEFF2,XPCHN(NPTSC),SPCHN(NPTSC) INTEGER FLAGC,FLAGS,CTLO,FLAGC1,FLAGS1,CTLO1, 1 FLAGC2.FLAGS2.CTL02 IF(INDXC.EQ.2) GO TO 10 FI.AGC = FLAGC1 FLAGS = FLAGS1 CTLO = CTL01 CTLZ « CTLZ1 CTLN = CTLN1 CTLSL = CTLSL1 RA RA1 RN RN1 YBASE = YBASE1 Z Zl LEFF = LEFF1 DACREU = DACHU1/43560 .0 OACREL = DACHL1/43560 .0 GO TO 20 10 CONTINUE FLAGC = FLAGC2 FLAGS = FLAGS2 CTLO = CTL02 CTLZ. = CTLZ2 CTLN = CTLN2 CTLSL = CTLSL2 RA RA2 RN RN2 YBASE = YBASE2 Z Z2 LEFF = LEFF2 DACREU = DACHU2/43560 .0 DACREL = DACHL2/43560 .0 20 CONTINUE LNGTHU =LEFF-ILNI WRITE (LUN08.4000) INDXC,LNGTHL,DACREU,LNGTHU,DACRELtLEFF IF(FLAGC.EQ.l) WRITE (LUN08.4001) Z IF(FLAGC.EQ.2) WRITE (LUN08,4002) Z IF(FLAGC.EQ.3) WRITE (LUN08.4003) Z IF(FLAGS.EQ.l) GO TO 30 WRITE (LUN0854004) GO TO 70 30 CONTINUE WRITE (LUN08.4005) IF(CTL0.EQ.2) GO TO 40 IF(CTL0.EQ.3) GO TO 50 IF(CTL0.EQ.4) GO TO 60 WRITE (LUN08.4006) WRITE (LUN08,4007) CTLZ GO TO 70 40 CONTINUE 162 WRITE (LUN08.4008) CTLSL.CTLZ.CTLN GO TO 70 50 CONTINUE WRITE (LUN08.4009) CTLSL9CTLZ GO TO 70 60 CONTINUE WRITE (LUN08,4010) RA.RN.YBASE CONTINUE 70 WRITE (LUN08.4011) INDXC DO 80 I=1,NPTSC XSTAR(INDXC,I) = XPCHN(I)/LEFF WRITE (LUN08.4012) XPCHN(I),XSTAR(INDXC,I),SPCHN(I) 80 CONTINUE RETURN 4000 FORMATC ,///,28X,'CHANNEL ',11,' CHARACTERISTICS',/, 28X ' -',//, 1 23X 'CHANNEL LENGTH '.F8.2,1 FT ,/, 23X,'DRAINAGE AREA UPPER END',F10<4, ACRES1,/, 1 23XS'EFFCT. LENGTH UPPER END',F8.2,' FT ,/, 23X,'DRAINAGE AREA LOWER END',F10.4, ACRES1,/, 23X,'EFFCT. LENGTH LOWER END\F8.2,' FT1,/) 4001 FORMATC ,26X,'A TRIANGULAR SHAPED CHANNEL',/, 32X,'SIDE SLOPE = '.F5.2) 4002 FORMATC ,25X,'A RECTANGULAR SHAPED CHANNEL1,/, 27X,'BEST FIT SIDE SLOPE = ',F6.2) 4003 FORMATC ,27X,'A NATURALLY ERODED CHANNEL1,/, 32X,'SIDE SLOPE - ',F5.2) 4004 FORMATC ,/,33X,'ENERGY GRADELINE1,/, 19X,'SLOPE OF ENERGY GRADELINE = SLOPE OF CHANNEL') 4005 FORMATC \/,33X,'ENERGY GRADELINE1,/, 25X,'USES THE ENERGY GRADELINE CURVES') 4006 FORMAT(' ',/,30X,'CRITICAL DEPTH CONTROL1) 4007 FORMATC1 ',27X,'TRIANGULAR CONTROL CHANNEL1,//, 32X,'SIDE SLOPE = \F5.2) 4008 FORMAT( \/,31X,"UNIFORM FLOW CONTROL1,/, 1 28X,'TRIANGULAR CONTROL CHANNEL1,//, 1 30X,'BOTTOM SLOPE « '.F7.4,/, 1 30X,'SIDE SLOPE = '9F5.2,/, 1 30X,'MANNINGS N = ',F6.3) 4009 FORMAT( ',/,31X,'UNI FORM FLOW CONTROL',/, 1 28X,'TRIANGULAR CONTROL CHANNEL1,//, 1 SOX,'BOTTOM SLOPE = '.F7.4,/, 1 30X,'SIDE SLOPE = ',F5.2,/, 1 25X,'MANNINGS N = N AT END OF CHANNEL') 4010 FORMAT( ',/,31X,'RATING CURVE CONTROL',//, 1 31X,'Q = RA*(Y-YBASE)**RN',/, 1 33X,'RA = ',F8.3,/, 1 33X,'RN * '.F8.3,/, 1 33X,'YBASE » '.F7.2) 4011 FORMAT( ',//,25X,'SLOPE STEEPNESS ALONG CHANNEL ',11,/, 1 25X.31C-1),//, 1 25X,'DISTANCE DISTANCE SLOPE',/, 1 25X,1 FEET NONDIK.',/, 163 1 25X,1 ') 4012 FORMATC ', 24X,F7.1,2(4X,F8.3)) END C C C REAL FUNCTION FALVEL(SPG,DIA,KINVIS,AGRAV) COMMON /FALL/ RE(9),CDRE2(9),CDDRE(9) REAL KINVIS RTSID = ((SPG-1.0)*AGRAV*(DIA**3)/(KINVIS**2))*(8.0/6.0) IF(RTSID.LT.0.024) GO TO 10 RTSID = ALOG(RTSID) CALL TABLE(4,9,RE,CDRE2,RTSID,REY) REY = EXP(REY) FALVEL = REY*KINVIS/DIA RETURN 10 CONTINUE FALVEL * (DIA**2)*(SPG-1.0)*AGRAV/(KINVIS*18.0) RETURN END 164 $debug $nof1oatcalls SUBROUTINE OUTCH2(INDXC,NDATES,CDATE,NYEARS,DNYEAR) COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30).DAOVR.SLNGTH, 1 NXC1,XCHN1(4),NCHN1(4,30),CCHN1(4,30),SCHN1(4,30), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /CHAN/ XSTAR(2,30),DEPA(2,30),DEPB(2,30),WIDA(2,30), 1 WIDB(2,30MERA(2,30),WERB(2,30) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL NCHN1.NCHN2 INTEGER CDATE(NDATES),DNYEAR(NYEARS),DATBEG,DATEND WRITE (LUN08.4000) INDXC.NYEARS DATBEG = 1 DO 50 NYEAR=1,NYEARS DATEND = DATBEG+DNYEAR(NYEAR)-1 WRITE (LUN08.4001) NYEAR,(CDATE(IDATE),IDATE=DATBEG,DATEND) IF(INDXC.EQ.2) GO TO 20 DO 10 I=1,NXC1 WRITE (LUN08.4002) XCHNl(I) WRITE (LUN08.4003) (NCHN1(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4004) (CCHN1(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4005) (SCHNl(I.IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4006) (DCHN1(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4007) (WCHN1(I,IDATE),IDATE=DATBEG,DATEND) 10 CONTINUE GO TO 40 20 CONTINUE DO 30 I=1,NXC2 WRITE (LUN08,4002) XCHN2{I) WRITE (LUN08.4003) (NCHN2(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4004) (CCHN2(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4005) (SCHN2(IJDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4006) (DCHN2(I,IDATE)SIDATE=DATBEG,DATEND) WRITE (LUN08.4007) (WCHN2(I,IDATE),IDATE=DATBEGtDATEND) 30 CONTINUE 40 CONTINUE DATBEG » DATBEG+DNYEAR(NYEAR) 50 CONTINUE RETURN 4000 FORMATC ',//,20X,'CHANNEL ' ,11,' COVER AND MANAGEMENT1, 1 ' PARAMETERS1,/, ,(),/, 1 16X,'(0NE TABLE FOR EACH YEAR OF THE ',12, 1 ' YEAR ROTATION)1) 4001 FORMATC ',//,36X,'YEAR ',12,//,IX,'DATES:',12X,1018) 165 4002 FORMAT(C ',/,lX,'X = '.F6.1,1 FT1) 4003 FORMAT(' ,'MANNINGS N ',iO(F8.3}) 4004 FORMAT(' •CR SHEAR (/),()(LB/FT**2)',10(F8.3)) ) 4005 FORMAT(' 'DEPTH SIDE (FT) ' ,1O(F7.2,1X)) 4006 FORMAT(' 'DEPTH MIDDLE (FT) ' ,1O(F7.2,1X)) 4007 FORMAT(' 'WIDTH (FT) . ',10(F5.0,3X)) END SUBROUTINE OUTOVl(FLAGP,AVGSLP,SB,SM,SE,X4,Y4,X3,Y3,NPTS0,XP0VR, SPOVR) COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DA0VR,SLNGTH, 1 NXC1,XCHN1(4),NCHN1(4,3O),CCHN1(4,3O),SCHN1(4,3O), 1 DCHN1(4,3O),WCHN1(4J3O),FLAGC1,FLAGS!.,CTL01, 1 CTLZl,CTLNl,CTLSLl,RAl,RNl,YBASEl,DAtHUl, 1 DACHL1,Z1,LNGTH1,LEFF1, NXC2,XCHN2(4), 1 NCHN2(4,30),CCHN2(4,30),SCHN2(4,30),DCHN2(4,30), 1 WCHN2(4,30),FLAGC2,FLAGS2,CTL02,CTLZ2,CTLN2,CTLSL2, 1 RA2,RN2,YBASE2,DACHU2,DACHL2,Z2,LNGTH2,LEFF2 COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & REAL XPOVR(NPTSO).SPOVR(NPTSO)SKSOIL INTEGER FLAGP DACRES = DAOVR/43560.0 WRITE (LUN08.4000) DACRES,SLNGTH,AVGSLP,SB,SM,SE IF(FLAGP.EQ.l) WRITE (LUN08.4001) IF(FLAGP.EQ.2) WRITE (LUN08.4002) IF(FLAGP.EQ.3) WRITE (LUN08.4003) IF(FLAGP.E0.4) WRITE (LUN08.4004) IF(FLAGP.EQ.S) WRITE (LUN08.4005) IF(X3,NE.X4) WRITE (LUN08.4006) X3,Y3,X4,Y4 WRITE (LUN08.4007) DO 10 I=1,NPTSO XSTAR = XPOVR(I)/SLNGTH WRITE (LUN08.4009) XPOVR(I),XSTAR,SPOVR(I) 10 CONTINUE WRITE (LUN08,4008) DO 20 1=1,NXK XSTAR = XSOIL(I)/SLNGTH WRITE (LUN08,4009) XSOIL(I),XSTAR,KSOIL(I) 20 CONTINUE RETURN 4000 FORMATC ',////,28X,'OVERLAND FLOW TOPOGRAPHY',/, 28X,' ',//, 24X,'OVERLAND AREA ,F10.4,' ACRES1,/, 24X,'SLOPE LENGTH ,F8.2,' FT',/, 24X,'AVERAGE SLOPE 24X,'SLOPE OF UPPER END 24X,'SLOPE OF MID SECTION .F10.4,/, 24X,'SLOPE OF LOWER END .F10.4) 4001 FORMAT(' ',/,26X,'THE SLOPE IS UNIFORM THROUGHOUT') 4002 FORMAT(' ,/,27X,'TKE SLOPE IS A SIMPLE CONVEX') 4003 FORMAT(' ',/,27X,'THE SLOPE IS A CONVEX CONCAVE') 4004 FORMAT(' ,/,27X,'THE SLOPE IS A SIMPLE CONCAVE') 166 4005 FORMATC ',/,27X,'THE SLOPE IS A CONCAVE CONVEX1) 4006 FORMATS ',/,28X,'LOCATION OF UNIFORM SECTION1,/, 1 26X,'DISTANCE,ELEVATION ',F6.1,',',F4.1,/, 1 26X,1DISTANCE,ELEVATION ',F6.1,",',F4.1,/, 1 23X,'DISTANCE MEASURED FROM THE UPPER END1,/, 1 23X,'ELEVATION MEASURED ABOVE LOWEST POINT1) 4007 FORMATC ',//,17X,!SLOPE STEEPNESS ALONG THE1, 1 ' OVERLAND FLOW PROFILE1,/, 1 17X AW-'),//, 1 25X,'DISTANCE DISTANCE SLOPE1,/, 1 25X,1 FEET NONDIM.1,/, 1 25X,1 ') 4008 FORMATC ',//,17X,'SOIL ERODIBILITY ALONG THE1, 1 ' OVERLAND FLOW PROFILE',/, i 17X.48C-1),//, 1 25X,'DISTANCE DISTANCE SOIL1,/, 1 25X,' FEET NONDIM. EROD1,/, 1 25X,' - ') 4009 FORMATC ', 24X,F7.1,2(4X,F8.3)) END SUBROUTINE 0UT0V2(NDATES,CDATE,NYEARS,DNYEAR) COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DA0VR,SLNGTH, 1 NXC1 ,XCHN1(4),NCHN1(4,3O),CCHN1(4,3O),SCHN1(4,3O), 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,U,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2.CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL NFACT INTEGER DATBEG,DATEND,CDATE(NDATES),DNYEAR(NYEARS) WRITE (LUN08.4000) NYEARS DATBEG = 1 DO 20 NYEAR=I,NYEARS DATEND = DATDEG+DNYEAR(NYEAR)-1 WRITE (LUN08,4001) NYEAR,(CDATE(IDATE),IDATE=DATBEG,DATEND) DO 10 1=1,NXF WRITE (LUN08.4002) XFACT(I) WRITE (LUN08,4003) (CFACT{I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4004) (PFACT(I,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4005) (NFACT(I,IDATE),IDATE=DATBEG,DATEND) 10 CONTINUE DATBEG = DATBEG+DNYEAR(NYEAR) 20 CONTINUE RETURN 4000 FORMATC ',//,18X,"OVERLAND FLOW COVER AND MANAGEMENT1, 1 ' PARAMETERS',/, 1 18X.45C-'),//, 1 16X,'(ONE TABLE FOR EACH YEAR OF THE ',12, 167 1 • YEAR ROTATION)1} 4001 FORMATC ',//,36X,'YEAR ' ,12,//,IX,'DATES:',12X,1018) 4002 FORMATC ',/,lX,'X= '.F6.1,1 FT1) 4003 FORMATC ','SOIL LOSS RATIO ',10(F8.3)) 4004 FORMATC ','CONTOURING FACTOR ' ,1O(F7.2,1X)) 4005 FOR SUBROUTINE PROFIL(X1,Y1,X2,S2,NPTS,SB,SM,SE,MAXX,MAXY,FLAGP) REAL Xi(6),Yl(6),X2(30),S2(3C),X3(2),Y3(2),S3(2),X4(9),Y4(9), 1 S4(9),MAXX,MAXY INTEGER FLAGP AVGS = MAXY/MAXX IF(X1(3).LE.X1(4)) GO TO 10 WRITE (LUN08.4000) X1(3),X1(4) STOP 10 CONTINUE IF(SB.NE.SM.OR.SM.NE.SE) GO TO 20 Xl(2) = Xl(6) Xl(5) = Xl(6) Yl(2) = Yl(6) Yl(5) = Yl(6) FLAGP = 1 ASM = SM GO TO 120 20 CONTINUE ASM = ABS(SM) IF(AVGS.GT.ASM) GO TO 70 SU = -SB SL = -SM SA = (SU+SL)/2.0 SP ((()())/ IF(SP.NE.ABS(SA)) GO TO 30 SU = 1.005*SU SA = (SU+SL)/2.0 30 CONTINUE CALL INTSC1(X1(1),Y1(1),SU,X1(3),Y1(3),SA,X1(2),Y1(2)) IF(X1(2).GE.XI(1)) GO TO 40 Xl(2) () Yl(2) () CALL INTSC1(X1(2),Y1(2),SA,X1(3),Y1(3),SLSX1(3),Y1(3)) 40 CONTINUE CALL CURFIT(X1(2),Y1(2),SU,X1(3),Y1(3),SL,2,X3,Y3,S3) FLAGP * 2 IF(X1(4).EQ.X1(6)) GO TO 120 SU = -SM SL = -SE SA = (SU+SL)/2.0 SP = ABS((Y1(6)-Y1(4))/(X1(6)-X1(4))) IF(SP.NE.ABS(SA)) GO TO 50 SU • 1.005*SU SA «= (SU+SL)/2.0 50 CONTINUE CALL INTSC1(X1(4),Y1(4),SA,X1(6),YI(6),SL,X1(5),Y1(5)) IF(X1(5).LE.X1(6)) GO TO 60 168 Xl(5) = Xl(6) Yl(5) = Yl(6) CALL INTSC1(X1(4),Y1(4),SU,X1(5),Y1(5),SA,X1(4),Y1(4)) 60 CONTINUE CALL CURFIT(X1(4),Y1(4),SU,X1(5),Y1(5),SL,9,X4,Y4,S4) FLAGP = 3 GO TO 120 70 CONTINUE SU = -SB SL = -SM SA = (SU+SL)/2.0 SP = ABS((Y1(3)-Y1(1))/(X1(3)-X1(1))) IF(SP.NE.ABS(SA)) GO TO 80 SU = 1.005*SU SA = (SU+Si.)/2.0 80 CONTINUE CALL INTSC1(X1{1),Y1(1),SU4X1(3),Y1(3),SA,X1(2),Y1(2)) IF(X1(2).GE.X1(1)) GO TO 90 Xl(2) = Xl(l) Yl(2) = Yl(l) CALL INTSC1(X1(2),Y1(2),SA,X1(3)JY1(3),SL,X1(3),Y1(3)) 90 CONTINUE CALL CURFIT(X1(2),Y1(2),SU,X1(3),Y1(3),SL,9,X4,Y4,S4) FLAGP = 4 IF(X1(4).EQ.X1(6)) GO TO 120 SU = -SM SL = -SE SA = (SU+SL)/2.0 SP - ABS((Y1(6)-Y1(4))/(X1(6)-X1(4))) IF(SP.NE.ABS(SA)) GO TO 100 SL = 1.005*SL SA = (SU+SL)/2.0 100 CONTINUE CALL INTSC1(X1(4),Y1(4)>SA,X1(6),Y1(6),SL,X1(5),Y1(5)) IF(X1(5).LE.X1(6)) GO TO 110 Xl(5) « Xl(6) Yl(5) = Yl(6) CALL INTSC1(X1(4),Y1(4),SU,X1(5),Y1(5),SA,X1(4),Y1(4)) 110 CONTINUE CALL CURFIT(X1(4),Y1(4),SU,X1(5),Y1(5),SL,2,X3,Y3,S3) FLAGP = 5 120 CONTINUE NPTS = 1 X2(NPTS) = S2(NPTS) = SB IF(FLAGP.EQ.l) GO TO 190 DO 180 1=2,6 IF(I.EQ.3.AND.AVGS.LT.ASM) GO TO 140 IF(I.EQ.3.AND.AVGS.GT.ASM) GO TO 160 IF(I.EQ.5.AND.AVGS.LT.ASM) GO TO 160 IF(I.EQ.5.AND.AVGS.GT.ASM) GO TO 140 130 CONTINUE DIFF = X2(NPTS)-X1(I) 169 IF(DIFF.GE.(-.001*X2(NPTS)))G0 TO 180 NPTS = NPTS+1 X2(NPTS) = X1(I) IF(I.EQ.2) S2(NPTS) = SB IF(I.EQ.3.0R.I.EQ.4) S2(NPTS) = SM IF(I.EQ.5.0R.I.EQ.6) S2(NPTS) = SE GO TO 180 140 CONTINUE DO 150 K=l,2 DIFF = X2(NPTS)-X3(K) IF(DIFF.GE.(-.001*X2(NPTS)))G0 TO 150 NPTS = NPTS+1 X2(NPTS) = X3(K) S2(NPTS) = S3(K) 150 CONTINUE GO TO 130 160 CONTINUE DO 170 K=l,9 DIFF = X2(NPTS)-X4(K) IF(DIFF.GE.(-.001*X2(NPTS)))G0 TO 170 NPTS = NPTS+1 X2(NPTS) = X4(K) S2(NPTS) = S4(K) 170 CONTINUE GO TO 130 180 CONTINUE RETURN 190 CONTINUE NPTS = 2 X2(NPTS) = Xl(6) S2(NPTS) = SE RETURN 4000 FORMATC ',/,28X,'RUN STOPPED : INPUT ERROR1,/, 1 27X,'XIN(3) MUST BE .LE. XIN(4)',//, 1 22X,'XIN(3) = ',F8.2,\ XIN(4) =',F8.2) END SUBROUTINE PRTCMP COMMON/PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 S0LCLY,S0LSLT,50LSND,S0L0RG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(1O),DCL(11),DDCL(1C),FLGPRT DIA(l) = 0.002 DIA(2) = 0.010 DIA(4) = 0.300 IF(SOLCLY .GT. 0.15) DIA(4) =2.0*S0LCLY DIA(5) = 0.200 SPGR(l) = 2.50 SPGR(2) = 2.65 SPGR(3) = 1.80 SPGR(4) = 1.60 SPGR(5) = 2.65 FRAC(l) = 0.26*S0LCLY FRAC(5) = S0LSND*(1.0-S0LCLY)**5. 170 IFfSOLCLY.GT.0.25) GO TO 10 DIA(3) = 0.030 FRAC(3) = 1.8*S0LCLY GO TO 40 10 CONTINUE If {SOLCLY.GE.0.60) GO TO 20 DIA(3) = 0.20*(S0LCLY-0.25)+0.030 IF(SOLCLY.GE.0.50) GO TO 30 FRAC(3) = 0.45-0.6*(S0LCLY - 0.25) GO TO 40 20 CONTINUE DIA(3) = 0.1 30 CONTINUE FRAC(3) = 0.60 * SOLCLY 40 CONTINUE FRAC(2) = SOLSLT - FRAC(3) IF (FRAC(2) .GT. 0.0 ) GO TO 45 FRAC(2) = 0.0001 FRAC(3) = SOLSLT - FRAC(2) 45 CONTINUE FRAC(4) = 1.0-FRAC(l)-FRAC(2)-FRAC(3)-FRAC(5) IF(FRAC(4).GT.0.0) GO TO 60 CRCT 1.0/(1.0+ABS(FRAC(4))+0.0001) FRAC(4) = 0.0001 DO 50 K=l,lNPART FRAC(K) = FRAC(K)*CRCT 50 CONTINUE 60 CONTINUE RATIOM = SOLORG/SOLCLY FRCLY(l) = 1.0 FRSLT(l) = 0.0 FRSND(l) = O.C FRORG(l) = FRCLY(1)*RATIOM FRCLY(2) = 0.0 FRSLT(2) = 1.0 FRSND(2) = 0.0 FR0RG(2) = FRCLY(2)*RATI0M FRCLY(3) = SOLCLY/(SOLCLY+SOLSLT) FRSLT(3) = SOLSLT/(SOLCLY+SOLSLT) FRSND(3) = 0.0 FR0RG(3) = FRCLY(3)*RATI0M FRCLY(4) = (S0LCLY-FRAC(l)-(FRCLY(3)*FRAC(3)))/FRAC(4) FRSLT(4) = (S0LSLT-FRAC(2)-(FRSLT(3)*FRAC(3)))/FRAC(4) FRSND(4) = (S0LSND-FRAC(5))/FRAC(4) FR0RG(4 = FRCLY(4)*RATI0M FRCLY(5) = 0.0 FRSLT(5) = 0.0 FRSND(5) - 1.0 FR0RG(5) = FRCLY(5)*RATI0M FRCLYT = 0.5*S0LCLY FRCLY1 = 0.95*FRCLYT IF(FRCLY{4]I.GE.FRCLY1) RETURN F1F2F5 = FRAC(1)+FRAC(2)+FRAC(5) 171 FRCLY(4) = FRCLYT FRAC(3) = (SOLCLY-FRCLY(4)-FRAC(1)+FRCLY(4)*F1F2F5)/ 1 (FRCLY(3)-FRCLY(4)) GO TO 40 70 CONTINUE END SUBROUTINE RILL(X,SLOPE,KEROD,CROP,PRACT,MAXE,EXCESS,DF) COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRA1N.EI C0MM0N/PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(IO),DCL(11),DDCL(10).FLGPRT REAL KEROD,MAXE,DF(10) EXPO =2.0 IF(X.GT.75.0) EXPO = 1.0+1.0245*EXP(-0.0002595*X) DETRIL =(0.04597*EXPO/6.574)*(12632.0*RUNOFF*EXRAIN**(1.0/3.0))* 1 (430.0*SL0PE**2)*((X/72.6)**(EXP0-1.0))*EXRAIN*KER0D* 1 CROP*PRACT/RUNOFF IF(DETRIL.GT.MAXE) DETRIL = MAXE DETRIL " EXCESS*DETRIL DO 10 K=1,NPART DF(K) = DETRIL*FRAC(K) 10 CONTINUE RETURN END SUBROUTINE OUTPND COMMON /POND/ CTL,PAC,DAPND,INTAKE,FRONT,DRAW,SIDE,FS,B,DIAO,C REAL INTAKE,INTAKI INTEGER CTL.PAC DACRE = DAPND/43560.0 INTAKI = INTAKE*43200.0 WRITE (LUN08,4000) DACRE,INTAKI,FS,B IF(PAC.GT.l) GO TO 10 WRITE (LUN08.4001) FRONT,DRAW,SIDE GO TO 20 10 CONTINUE WRITE (LUN04.4002) 20 CONTINUE WRITE (LUN08.4003) IF(CTL.GT.l) GO TO 30 WRITE (LUN08.4004) DIAO,C RETURN 30 CONTINUE WRITE (LUN08.4005) C RETURN 4000 FORMATC ',////,32X,'IMPOUNDMENT INPUTS1,/, 1 32X () 1 26X 'DRAINAGE AREA ',F10.4,' ACRES1,/, 1 26X 'INTAKE RA7E '.F8.2,' IN/HR1,//, 1 31X IMPOUNDMENT GEOMETRY1,/, 1 26X '(SURFACE AREA = FS * DEPTH**B)',/, 1 34X 'FS = ',F9.1,/, 1 34X 'B = '.F10.2) 172 4001 FORMATC ',/,31X,"COMPUTED FROM SLOPES:',/, 1 35X,1FRONT = i,F5.3,/, 1 35X,'DRAW = ',F5.3,/, 1 35X/SIDE = '.F5.3) 4002 FORMATC ',/,33X,'SUPPLIED BY USER1) 4003 FORMATS ',/,33X,'IMPOUNDMENT EXIT',/, 1 31X,'(Q = C *SQRT(DEPTH))') 4004 FORMATC ',23X,'WATER EXITS THROUGH A PIPE OUTLET1,/, 1 24X,'ORIFICE DIAMETER = '.F9.2,' FT',/, 1 24X,'ORIFICE COEFICIENT = \F8.1) 4005 FORMATC ',27X,'ORIFICE COEFICIENT READ IN',/,35X,'C = '.F8.1) END C THIS SUBROUTINE IS USED TO ROUTE SEDIMENT THROUGH THE OVERLAND C FLOW AND CHANNEL SECTION OF THE MODEL C SUBROUTINE ROUTE(EROOUT,DATE,NPTS,ELEM,X,SLOPE,GS.CONC.SOLOSS) COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDSOI,KINVIS,KCH,YALCON,BETA, 1 NBAROV.NBARCH COMMON /PART/NPART,DIA(10),SPG(10),FRAC(10),FALL(10),EQSAND(10), 1 SOLCLY,S0LSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SSORG,SSSOIL,FRCLY(10),FRSLT(10),FRSND(10), 1 PRORG(1O),DCL(11),DDCL(1O),FLGPRT COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30),DAOVR,SLNGTH, 1 NXCl,XCHNl{4),NCHNl(4,30),CCHNl(4,30),SCHNl(4,30), 1 DCHN1(4,30),WCHN1(4,30),FLAGCI,FLAGS1,CTL01, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,ZI,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /CHAN/ XSTAR(2,30),DEPA(2,30),DEPB(2,30),WIDA(2,30), 1 WIDB(2,30),WERA(2,30),WERB(2,30) COMMON /FLOW/ FLAGS,QB,QE,YCR,YNOR,YE,SFE,RUNPND REAL X(30),SL0PE(30),GS(10),C0NC(10), 1 DLAT(10),PHI(10),POTLD(10),DTCDX(10),XDE(10), 1 DDE(IO),GSDE(10),GSTDE(10),EXDET(10),XDBEG(10),GSTDB(10), 1 TCM(10),DU(10),TCU(10),GSU(10),GSTU(10),DL(10),TCL(10), 1 GSL(10),GSTL(10),DF(10),LEFF,LEFFl,LEFF2,KER0D,NMAN0V, 1 NMANCH,MAXE,KSOIL,NFACT,NCHN1,NCHN2,INTRPL INTEGER EROOUT,DATE,ELEM,FLAG1,FLAGC,FLAGS,CTLO, 1 FLAGC1,FLAGS1,CTL01,FLAGC2,FLAGS2,CTL02,FLAGCT DATA COVSH /1000.0/ IF(ELEM.EQ.2) GO TO 10 IF(ELEM.EQ.3) GO TO 20 DAL = DAOVR LEFF = SLNGTH ISOIL = 1 KEROD * KSOILfISOIL) I FACT = 1 173 CROP = CFACT(IFACT.DATE) PRACT = PFACT(IFACT.DATE) NMANOV = NFACT(IFACT.DATE) EATA =0.5 GO TO 30 10 CONTINUE FLAGCT = FLAGC1 FLAGS = FLAGS1 CTLO » CTL01 CTLZ = CTLZ1 CTLN = CTLN1 CTLSL = CTLSL1 RA = RA1 RN = RN1 YBASE = YBASE1 DAU = DACHU1 DAL = DACHL1 Z = Zl LEFF = LEFF1 ENDMAN = NCHNl(NXCl.DATE) ICHAN = 1 CRSH = CCHNl(ICHAN.DATE) DEPSID = SCHNl(ICHAN.DATE) NMANCH = NCHNl(ICHAN.DATE) EATA = 1.0 INDXC = 1 GO TO 30 20 CONTINUE FLAGCT = FLAGC2 FLAGS = FLAGS2 CTLO = CTL02 CTLZ = CTLZ2 CTLN = CTLN2 CTLSL = CTLSL2 RA = RA2 RN = RN2 YBASE = YBASE2 DAU = DACHU2 DAL = DACHL2 Z = Z2 LEFF = LEFF2 ENDMAN = NCHN2(NXC2,DATE) ICHAN = 1 CRSH = CCHN2(ICHAN,DATE) DEPSID = SCHN2(ICHAN,DATE) NMANCH = NCHN2(ICHAN,DATE) EATA = 1.0 INDXC = 2 30 CONTINUE SFE = SLOPE(NPTS) DO 740 I=2,NPTS IF(I.GT.2) GO TO 90 174 C INITIALIZE VARIABLES FOR TOP SEGMENT C NEWP = 1 IF(ELEM.GT.l) GO TO 50 C C INITIALIZE OVERLAND FLOW VARIABLES FOR TOP SEGMENT C EFFSHU = 0.0 WFU = 1.0 SFU = SLOPE(l) QU = 0.0 OE = EXRAIN*LEFF QLAT = EXRAIN DO 40 K=1,NPART DU(K) = 0.0 TCU(K) = 0.0 GSU(K) = 0.0 GSTU(K) =0.0 40 CONTINUE GO TO 110 C C INITIALIZE CHANNEL VARIABLES FOR TOP SEGMENT C 50 CONTINUE QB = EXRAIN*DAU QE = EXRAIN*DAL QU = EXRAIN*DAU QLAT = QE/LEFF DO 60 K=1,NPART GSTU(K) = QU*CONC(K) DLAT(K) = QLAT*CONC(K) 60 CONTINUE CALL FSLPAR(CTLO,CTLZ,CTLN,CTLSL,RA,RN, 1 YBASE,Z,ENDMAN,LEFF,IBEG, 1 FLAG1,C1,C3,SLOPE(NPTS),SSFE) TB = 2.0*RUN0FF*DAL/QE IF(QU.GT.O.O) GO TO 80 WFU = 0.0 FLAGC = FLAGCT IF(FLAGC.EQ.2) WFU = WIDB(INDXC.l) EFFSHU = 0.0 SFU = 0.0 DO 70 K=1,NPART DU(K) * 0.0 TCU(K) = 0.0 GSU(K) = 0.0 1STU(K) = 0.0 70 CONTINUE GO TO 110 80 CONTINUE XBEG « XSTAR(INDXC,1) IF(FLAGS.EQ.l) CALL FRICHN(QU,NMANCH,Z,C1,C3, 1 1,FLAG1,SLOPE(1),XSTAR(INDXC,1), 175 1 LEFF,YE,XBEG,IBEG,SSFB,SSFE,SFU) IF(FLAGS.EQ.2) SFU = SLOPE(l) IF(SFU.LE.O.O) SFU « O.OOOOO1 GO TO 110 90 CONTINUE NEWP = 0 SFU = SFL QU = QLE WFU = WFL EFFSHU = EFFSHL DO 100 K=1,NPART DU(K) = DL(K) TCU(K) = TCL(K) GSU(K) = GSL(K) GSTU(K) = GSTL(K) 100 CONTINUE 110 CONTINUE QLE = QE*X(I)/LEFF DX = X(I)-X(I-1) IF(ELEM.EQ.2) GO TO 140 IF(ELEM.EQ.3) GO TO 150 SFL » SLOPE(I) SFA = (SFL+SFU)/2 WFL = 1.0 C C TEST WHETHER THE X DEPENDANT VARIABLES NEED TO BE UPDATED IF(X(I).LE.XSOIL(ISOIL)) GO TO 120 NEWP = 1 ISOIL = ISOIL+1 KEROD = !POTLD) NT =0 NK =0 DO 300 K-l.NPART DTCDX(K) = (TCL(K)*WFL-TCU(K)*WFU)/DX IF(I.EQ.2.AND.X(l).EQ.0.0.AND.DTCDX(K).LT.DLAT(K)) 1 DU(K) = (PHI(K)/(1.0+PHI(K)))*(DTCDX(K)-DLAT(K)) IF(DU(K).GT.O.O) NT = NT+1 CHECKU = TCU(K)*WFU IF(CHECKU.GT.GSTU(K)) NK = NK+1 300 CONTINUE IF(NK.EQ.NPART) GO TO 540 IF(NT.EQ.NPART) GO TO 540 NZ =0 DO 330 K=1,NPART COEFF -1.0 XRAT = X(I-1)/X(I) EXPON = PHI(K)+1.0 CALL UNDFLO(COEFF,XRAT,EXPON) DL(K) = (PHI(K)/(1.0+PHI(K)))*(DTCDX(K)-DLAT(K))* 1 (1.0-XRAT**EXP0N) COEFF = ABS(DU(K)) CALL UNDFLO(COEFF,XRAT,EXPON) DL(K) = DL(K)+(DU(K)*XRAT**EXPON) IF(DL(K).GT.O.O) GO TO 310 NZ = NZ+1 XDE(K) = X(I) DDE(K) = DL(K) GSDE(K) = TCL(K)-(DL(K)*X(I)/PHI(K))/WFL GSTDE(K) = GSDE(K)*WFL GSL(K) = GSDE(K) GO TO 330 310 CONTINUE 178 IF(DU(K).EQ.O.O) GO TO 320 XDE(K) = X(I-1)*(1.O-((1.O+PHI(K))/PHI(K))* (DU(K)/(DTCDX(K)-DLAT(K))))** ((())(/(()))) 6STDE(K) = DTCDX(K)*(XDE(K)-X(I-1))+TCU(K)*WFU DDE(K) = 0.0 GO TO 330 320 CONT!NUh XDE(<) = X(I-l) GSDE(K) = GSU(K) GSTDE(K) = GSDE(K)*WFU DDE(K) = 0.0 330 CONTINUE IF(NZ.EQ.NPART) GO TO 720 XDEMAX = X(I-l) DO 340 K=1SNPART XDEMAX = AMAX1(XDEMAX,XDE(K)) 340 CONTINUE IF(XDEMAX.LT.X(I)) GO TO 360 DO 350 K=1,NPART IF(XDE(K).EQ.X(I)) GO TO 350 DL(K) = 0.0 GSL(K) = (GSTDE(K)+DLAT(K)*(X(I)-XDE(K)))/WFL 350 CONTINUE GO TO 720 360 CONTINUE DO 370 K-l.NPART DDE(K) = 0.0 GSTDE(K) = GSTDE(K)+DLAT(K)*(XDEMAX-XDE(K)) 370 CONTINUE 380 CONTINUE MAXE = 1000.0 EXCESS = 1.0 IF(ELEM.GT.l) GO TO 390 CALL RILL(X(I),SLOPE(I),KEROD,CROP,PRACT,MAXE,EXCESS,DF) GO TO 400 390 CONTINUE TEMDEP = DEPA(INDXCJ) TEMWER = WERA(INDXC.I) FLAGC = FLAGCT IF(FLAGC.EQ.3.AND.DEPA(INDXC,I).EQ.0.0) FLAGC = 2 CALL DCAP(1,FLAGC,QLE,SFL,C1,Z,EFFSHL,DEPSID,TEMDEP,TEMWER, 1 WFL.NMANCH.CRSH.COVSH.MAXE.EXCESS.TB.DF) 400 CONTINUE 00 410 K-l.NPART DL(K) = DF(K)*WFL POTLD(K) = (GSTDE(K)+DLAT(K)*(X(I)-XDEMAX)+ 1 ((DL(K)+DDE(K))*(X(I)-XDEMAX)/2.0))/WFL 410 CONTINUE CALL TRNCAP(EFFSH1,TCL,POTLD) NT2 = 0 DO 420 K=1,NPART IF(TCL(K).GE.POTLD(K)) NT2 = NT2+1 179 420 CONTINUE IF(NT2.EQ.NPART) GO TO 500 SUMTCL = 0.0 SUMPLD = 0.0 DO 430 K=1,NPART SUMTCL = SUMTCL + TCL(K) SUMPLD = SUMPLD + POTLD(K) 430 CONTINUE DO 440 K=1,NPART EXDET(K) = ((TCL(K)*WFL-GSTDE(K)-DLAT(K)*(X(I)-XDEMAX))* 1 (2.0/(X(I)-XDEMAX))-DDE(K))/WFL 440 CONTINUE SUMDF=0.0 SUMEXD=0.0 DO 442 K-l.NPART SUMDF=SUMDF+DF(K) SUMEXD=SUMEXD+EXDET(K) 442 CONTINUE MAXE = 1000.0 EXCESS = SUMTCL/SUMPLD EXCOLD=EXCESS NEXCES=O 452 CONTINUE NEXCES=NEXCES+1 IF(NEXCES.GT.20)G0 TO 494 453 CONTINUE IF(EXCESS.LT.O.O) EXCESS = 0.0 IF(ELEM.ST.l) GO TO 460 CALL RILL(X(I),SLOPE(I),KEROD,CROP,PRACT,MAXE,EXCESS,DF) GO TO 470 460 CONTINUE TEMDEP = DEPA(INDXC.I) TEMWER = WERA(INDXC,I) CALL DCAP(2,FLAGC,QLE,SFL,C1,Z,EFFSHL,DEPSID,TEMDEP, 1 TEMWER,WFL,NMANCH,CRSH,COVSH,MAXE, 1 EXCESS.TB.DF) 470 CONTINUE EXCESS = 1.0 MAXE = 1000.0 DO 480 K-l.NPART DL(K) = DF(K)*WFL GSL(K) = (GSTDE(K)+DLAT(K)*(X(I)-XDEMAX)+((DL(K)+ 1 DDE(K))*(X(I)-XDEMAX)/2.0))/WFL POTLD(K) = GSL(K) 480 CONTINUE CALL TRNCAP(EFFSHL,TCL,POTLD) SUMTCL=0.0 SUMPLD=0.0 SUMDF=0.0 SUMEXD=0.0 DO 490 K-l.NPART SUMTCL=SUMTCL+TCL(K) SUMPLD=SUMPLD+POTLD(K) 160 EXDET(K) = ((TCL(K)*WFL-GSTDE(K)-DLAT(K)*(X(I)-XDEMAX))* 1 (2.0/(X(I)-XDEMAX))-DDE(K))/WFL SUMEXD=SUMEXD+EXDET(K) SUMDF=SUMDF+DF(K) 490 CONTINUE IF(ABS(SUMTCL-SUMPLD)/SUMTCL.LT.0.01)G0 TO 494 RATEX=SUMEXD/SUMDF IF(RATEX.LE.0.O)RATEX=SUMTCL/SUMPLD EXCESS=EXCOLD*RATEX EXCOLD=EXCESS GO TO 452 494 CONTINUE DO 495 K=1,NPART GSL(K) = TCL(K) 495 CONTINUE GO TO 530 500 CONTINUE DO 520 K=l NPART GSL(K) S = POTLD(K) 520 CONTINUE 530 CONTINUE IF(ELEM.EQ.l) GO TO 720 DEPA(INDXC,I) = TEMDEP WERA(INDXCJ) = TEMWER FLAGC = FLAGCT IF(FLAGC.EQ.3.AND.DEPA(INDXC,I).EQ.0.0) FLAGC = 2 IF(FLAGC.EQ.2.AND.WERA(INDXC,I).GT.WFL) 1 WIDA(INDXC.I) = WERA(INDXC.I) GO TO 720 540 CONTINUE NT=O DO 542 K=1,NPART IF(TCL(K).LE.POTLD(K))NT=NT+1 542 CONTINUE IF(NT.E().NPART)GO TO 630 DO 550 K=1,NPART POTLD(K) * (GSTU(K)+DLAT(K)*DX+DU(K)*DX/2.0)/WFL 550 CONTINUE CALL TRNCAP(EFFSHL,TCL,POTLD) NT =0 DO 560 K=1,NPART DTCDX(K) = (TCL(K)*WFL-TCU(K)*WFU)/DX IF(TCL(K).LE.POTLD(K))NT=NT+1 560 CONTINUE IF(NT.EQ.NPART) GO TO 590 570 CONTINUE DO 580 K=1,NPART DDE(K) = DU(K) XDEMAX = X(I-l) GSDE(K) = GSU(K) GSTDE(K) = GSDE(K)*WFU 580 CONTINUE GO TO 380 181 590 CONTINUE XDSMAL=X(I-1) XDBIG=X(I) NDEP=O 599 CONTINUE DO 610 K=1,NPART IF(POTLD(K).LE.TCL(K)) GO TO 600 XDBEG(K)=(2.O*(TCL(K)*WFL-GSTU(K)-DLAT(K)*DX)/DU(K))+X(I-1) GO TO 610 600 CONTINUE XDBEG(K) = X(I) 610 CONTINUE XDBMIN = X(I) DO 620 K=1,NPART XDBMIN = AMIN1(XDBMIN,XDBEG(K)) 620 CONTINUE IF(XDBMIN.LE.XDSMAL)XDBMIN=XDSMAL 624 CONTINUE DO 625 K=1,NPART P0TLD(K)=(GSTU(K)+DLAT(K)*DX+DU(K)*(XDBMIN-X(I-l))/2.0)/WFL 625 CONTINUE CALL TRNCAP(EFFSHL,TCL,POTLD) NT=O SUMTC=0.0 SUMPL=0.0 NDEP=NDEP+1 IF(NDEP.EQ.4)G0 TO 6291 DO 627 K=1,NPART SUMTC=SUMTC+TCL(K) SUMPL=SUMPL+POTLD(K) IF(TCL(K).LE.POTLD(K))NT=NT+1 627 CONTINUE IF(ABS((SUMTC-SUMPL)/SUMTC).LT.0.01)G0 TO 629 IF(NT.EQ.NPART)GO TO 628 XDSMAL=XDBMIN XDBMIN=(XDSMAL+XDBIG)/2.0 GO TO 624 628 CONTINUE XDBIG=XDBMIN GO TO 599 629 CONTINUE 6292 CONTINUE DO 6290 K=1,NPART DL.(K)=0.0 GSL(K)=TCL(K) 6290 CONTINUE GO TO 720 6291 CONTINUE GO TO 6292 630 CONTINUE N2=0 NK=O DO 632 K=1,NPART 182 IF(DU(K).GT.O.O)NZ=NZ+1 IF(GSU(K).EQ.TCU(K))NK=NK+1 632 CONTINUE IF(NZ.EQ.NPART.AND.NK.EQ.NPART)GO TO 640 DO 635 K=l,iNPART IF(TCL(K).G.t.:.POTLD(K))GO TO 635 XDBEG(K)=((TCLI{K)*WFU-GSTU(K))/(DU(K)/2.0+DLAT(K)-DTCDX(K)))+ 2 X(I-l) 635 CONTINUE GO TO 690 640 CONTINUE DO 645 K=1,NPART IF(TCL(K).GE.POTLD(K))GO TO 645 XDBEG(K)=DX*DU(K)/(2.O*DLAT(K)+DU(K))+X(I-1) 645 CONTINUE 690 CONTINUE DO 710 K=1,NPART IF(POTLD(K).LE.TCL{K)) GO TO 700 COEFF = 1.0 XRAT = XDBEG(K)/X(I) EXPON = PHI(K)+1.0 CALL UNDFLO(COEFF,XRAT,EXPON) DL(K) = (PHI(K)/(1.0+PHI(K)))*(DTCDX(K)-DLAT(K))* 1 (1.0-XRAT**EXP0N) GSL(K) = TCL(K)-DL(K)*X(I)/(PHI(K)*WFL) GO TO 710 700 CONTINUE GSL(K) = POTLD(K) DL(K) = 0.0 710 CONTINUE 720 CONTINUE DO 730 K«1,NPART GSTL(K) = GSL(K)*WFL 730 CONTINUE IF(ER00UT.EQ.6) CALL SEGOUT(ELEM,NPART,GSTU,GSTL,X(I),DX, 1 DLAT) 740 CONTINUE SOLOSS =0.0 DO 750 K=1,NPART CONC(K) = GSTL(K)/QE GS(K) * RUNOFF*DAL*CONC(K) SOLOSS = SOLOSS+GS(K)/DAL 750 CONTINUE RETURN END SUBROUTINE UPDPAR(FLGINI,FLGSEQ,NDATES,CDATE,NYEARS,DNYEAR, 1 NPTSO,XPOVR,SPOVR,NPTSC1,XPCHN1,SPCHN1, 1 NPTSC2,XPCHN2,SPCHN2) COMMON /CONS/ AGRAV,MSDH2OtWTDH2O,WTDSOIiKINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH COMMON /ROUT/ NXK,XS0IL(4),KS0IL(4),NXF,XFACT(4),CFACT(4,30), 1 PFACT(4,30),NFACT(4,30).DAOVR.SLNGTH, 1 NXC1,XCHN1(4),NCHN1(4,3O),CCHN1(4,3O),SCHN1(4,3O), 183 1 DCHN1(4,3O),WCHN1(4,3O),FLAGC1,FLAGS1,CTLO1, 1 CTLZ1,CTLN1,CTLSL1,RA1,RN1,YBASE1,DACHU1, 1 DACHL1,Z1,LNGTH1,LEFF1, 1 NXC2,XCHN2(4),NCHN2(4,30),CCHN2(4,30),SCHN2(4,30), 1 DCHN2(4,30),WCHN2(4,30),FLAGC2,FLAGS2,CTL02, 1 CTLZ2,CTLN2,CTLSL2,RA2,RN2,YBASE2,DACHU2, 1 DACHL2,Z2,LNGTH2,LEFF2 COMMON /UNDEF/LUNO1,LUNO2,LUN03,LUN04,LUNO5.LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,LUN12 REAL NFACT,NCHNl,NCHN2,XPUVR(30),SP0VR(30),XPCHNl(30), 1 SPCHN1(3O),XPCHN2(30),SPCHN2(30),LNGTH1,LEFF1,LNGTH2,LEFF2 INTEGER FLGINI,FLGSEQ,CDATE(31),DNYEAR(30),DATBEG,DATEND CHARACTER SPACE*4,STARS*4 CHARACTER *4 MARKER(20) SPACE = ' STARS = '****' IF(FLGINI.GT.O) WRITE(LUN08,4003) C C READ AND ECHO THE NUMBER OF YEARS IN A CROP ROTATION C NCARD = 16 READ (LUN03.2000) NYEARS IF(NYEARS.LE.O) RETURN WRITE (LUN08.4000) NCARD,NYEARS NDATES = 0 DO 20 NYEAR=1,NYEARS DNYEAR(NYEAR) = 0 DATBEG = NDATES+1 DATEND = DATBEG+9 IF(DATEND.GT.3O) DATEND = 30 C C READ AND ECHO THE DATES FOR ONE YEAR C NCARD = 17 READ (LUN03.2000) (CDATE(IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4000) NCARD,(CDATE(IDATE),IDATE=DATBEG,DATEND) DO 10 IDATE=DATBEG,DATEND IF(CDATE(IDATE).LE.O) GO TO 20 CDATE(IDATE) = CDATE(IDATE)+1000*NYEAR NDATES = NDATES+1 DNYEAR(NYEAR) = DNYEAR(NYEAR)+1 10 CONTINUE 20 CONTINUE CDATE(NDATES+1) = 400+1000*NYEARS IF(FLGINI.GT.O) GO TO 50 C C READ AND ECHO THE DISTANCE VALUES FOR OVERLAND FLOW PARAMETERS C THAT WILL CHANGE WITH RESPECT TO TIME C NCARD = 18 READ (LUN03.2002) NXF,(XFACT(l),I=l,NXF) WRITE (LUN08.4002) NCARD,NXF,(XFACT(I),I*1,NXF) 184 C ADJUST THE DIMENS10NLESS X VALUES WITH THE OVERLAND SLOPE LENGTH, C SET UP THE X ARRAY FOR EACH POINT ALONG THE OVERLAND PROFILE AND C THEN ADJUST THE SLOPE AT EACH POINT C DO 30 1-1,NXF XFACT(I) = SLNGTH*XFACT(I) 30 CONTINUE CALL ADDPTS(NXF,XFACT,NPTSO,XPOVR,SPOVR) DO 40 I=1,NPTSO SPOVR(I) = SIN(ATAN(SPOVR(I))) 40 CONTINUE 50 CONTINUE C C READ AND ECHO THE OVERLAND FLOW PARAMETERS THAT WILL C CHANGE WITH RESPECT TO TIME C DATBEG = 1 DO 70 NYEAR=1,NYEARS DATEND • DATBEG+DNYEAR(NYEAR)-1 DO 60 IXF=1,NXF NCARD = 19 READ (LUN03,2001) (CFACT(IXF.IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(CFACT(IXF,IDATE),IDATE=DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUN03.2001) (PFACT(IXF,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(PFACT(IXF,IDATE),IDATE=DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUN03.2001) (NFACT(IXF,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(NFACT(IXF,IDATE),IDATE=DATBEG, 1 DATEND) 60 CONTINUE DATBEG = DATBEG+DNYEAR(NYEAR) 70 CONTINUE IF(FLGSEQ.LE.2) RETURN IF(FLGINI.GT.O) GO TO 100 C C READ AND ECHO THE DISTANCE VALUES FOR CHANNEL ONE PARAMETERS C THAT WILL CHANGE WITH RESPECT TO TIME C NCARD = 22 READ (LUN03.2002) NXC1,(XCHN1(I),I=1,NXC1) WRITE (LUN08.4002) NCARD,NXC1,(XCHN1(I),1=1,NXC1) C C ADJUST THE DiMENSIONLESS X VALUES WITH THE EFFECTIVE CHANNEL C LENGTH, SIT UP THE X ARRAY FOR EACH POINT ALONG THE CHANNEL AND C THFH ADJUST THE SLOPE AT EACH POINT C DO 80 I=1,NXC1 XCHNl(I) = LNGTH1*XCHN1(I)+LEFF1-LNGTH1 80 CONTINUE 185 CALL ADDPTS(NXC1,XCHN1,NPTSC1,XPCHN1,SPCHN1) DO 90 >1,NPTSC1 SPCHNl(I) = SIN(ATAN(SPCHN1(I))) 90 CONTINUE 100 CONTINUE C C READ AND ECHO THE CHANNEL ONE PARAMETERS THAT WILL C CHANGE WITH RESPECT TO TIME C DATBEG = 1 DO 150 NYEAR=1,NYEARS DATEND = DAT8EG+DNYEAR(NYEAR)-1 DO 140 IXC1-1.NXC1 NCARD = 23 READ (LUN03.2001) (NCHNl(IXCl,IDATE),IDATE=DArBEG,DATEND) WRITE (LUN08,40Gi) NCARD,(NCHN1(IXC1,IDATE),IDATE=DATBEG, 1 DATEND) IF(FLAGCl.LT.S) GO TO 130 NBAD = 0 DO 120 IDATE=DATBEG,DATEND MARK = 2*(IDATE-DATBEG+1) IF(NCHN1(IXC1,IDATE).EQ.NBARCH) GO TO 110 NBAD = NBAD+1 NCHNI(IXCIJDATE) « NBARCH MARKER(MARK-l) = STARS MARKER(MARK) = STARS GO TO 120 110 CONTINUE MARKER(MARK-l) = SPACE MARKER(MARK) = SPACE 120 CONTINUE IF(NBAD.EQ.O) GO TO 130 WRITE (LUN08.4333) (MARKER(I),1=1.MARK) WRITE (LUN08.4334) 130 CONTINUE NCARD • NCARD+1 READ (LUN03.2001) (CCHN1(IXC1,IDATE),,IDATE=DATBEG,DATEND) WRITE (LUN08,4001)NCARD,(CCHNl(IXCl,IDATE),IDATE=DATBEG, 1 DATEND) NCARD * NCARP+] READ (LUN03.2001) (i>CHNl(IXCl,IDATE),IDATE«DATBEG,DATEND) WRITE (LUN08,4001)NCARD,(SCHNl(IXClfIDATE),IDATE»DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUN03.2001) (DCHNl(IXCl.IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08,4001) NCARD,(DCHN1(IXC1,IDATE),IDATE=DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUN03.2001) (WCHN1(IXC1,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(WCHN1(IXC1,IDATE),IDATE=DATBEG, 1 DATEND) 140 CONTINUE DATBEG • DATBEG+DNYEAR(NYEAR) 186 150 CONTINUE IF(FLGSEQ.EQ.3.0R.FLGSEQ.EQ.5) RETURN IF(FLGINI.GT.O) GO TO 180 C C READ AND ECHO THE DISTANCE VALUES FOR CHANNEL TWO PARAMETERS C THAT WILL CHANGE WITH RESPECT TO TIME C NCARD = 22 READ (LUN03.2002) NXC2,(XCHN2(I),I=1,NXC2) WRITE(LUN08,4002) NCARD,NXC2,(XCHN2(I),I=1,NXC2) C C ADJUST THE DIMENSIONLESS X VALUES WITH THE EFFECTIVE CHANNEL C LENGTH, SET UP THE X ARRAY FOR EACH POINT ALONG THE CHANNEL AND C THEN ADJUST THE SLOPE AT EACH POINT C DO 160 I=1,NXC2 XCHN2(I) = LNGTH2*XCHN2(I)+LEFF2-LNGTH2 160 CONTINUE CALL ADDPTS(NXC2,XCHN2,NPTSC2,XPCHN2,SPCHN2) DO 170 I=1,NPTSC2 SPCHN2(I) = SIN(ATAN(SPCHN2(I))) 170 CONTINUE 180 CONTINUE C C READ AND ECHO THE CHANNEL TWO PARAMETERS THAT WILL C CHANGE WITH RESPECT TO TIME C DATBEG = 1 DO 230 NYEAR=1,NYEARS DATEND = DATBEG+DNYEAR(NYEAR)-1 DO 220 IXC2=1,NXC2 NCARD = 23 READ (LUN03,2001) (NCHN2(IXC2,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(NCHN2(IXC2,IDATE),IDATE=DATBEG, 1 DATEND) IF(FLAGC2.LT.3) GO TO 210 NBAD = 0 DO 200 IDATE=DATBEG,DATEND MARK = 2*(IDATE-DATBEG+1) IF(NCHN2(IXC2,IDATE).EQ.NBARCH) GO TO 190 NBAD = NBAD+1 NCHN2(IXC2,IDATE) = NBARCH MARKER(MARK-l) = STARS MARKER(MARK) = STARS GO TO 200 190 CONTINUE MARKER(MARK-l) = SPACE MARKER(MARK) = SPACE 200 CONTINUE IF(NBAD.EQ.O) GO TO 210 WRITE (LUN08.4333) (MARKER(I),I=1,MARK) WRITE (LUN08.4334) 187 210 CONTINUE NCARD » NCARD+1 READ (LUN03.2001) (CCHN2(IXC2,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(CCHN2(IXC2.IDATE),IDATE=DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUN03.2001) (SCHN2(IXC2,IDATE), IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(SCHN2(IXC2,IDATE),IDATE=DATBEG, 1 DATEND) NCARD » NCARD+1 READ (LUN03.2001) (DCHN2(IXC2,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(DCHN2(IXC2,IDATE),IDATE=DATBEG, 1 DATEND) NCARD = NCARD+1 READ (LUNO3.2O01) (WCHN2(IXC2,IDATE),IDATE=DATBEG,DATEND) WRITE (LUN08.4001) NCARD,(WCHN2(IXC2,IDATE),IDATE=DATBEG, 1 DATEND) 220 CONTINUE DATBEG = DATBEG+DNYEAR(NYEAR) 230 CONTINUE RETURN 2000 FORMAT(10I8) 2001 FORMAT(10F8.0) 2002 F0RMAT(I8,8F8.0) 4000 FORMAT(' '.'CARD'.H, ,1018,/,10X,1018) 4001 FORMAT(' VCARD1,14, ,10F8.3,/,10X,10F8.3) 4002 FORMATC '.'CARD'.H, ,I8,8F8.3) 4003 FORMAT(' ','CARD1,14, END 188 INTEGER FUNCTION WCHMON(DATE) INTEGER CAL(12),DATE,DAY,YEAR DATA CAL /31.6O.91,121,152,182,213,244,274,305,335,366/ IF(DATE.LE.O) GO TO 30 DAY =MOD(DATE,1000) YEAR =DATE/1000 IF(DAY.GT.CAL(1).AND.MOD(YEAR,4).GT.O) DAY=DAY+1 DO 10 WCHM0N=l,12 IF(DAY.LE.CAL(WCHMON)) GO TO 20 10 CONTINUE WCHMON =1 20 CONTINUE RETURN 30 CONTINUE WCHMON =13 RETURN END REAL FUNCTION SEDDIA(SPG,VS,KINVIS,AGRAV) COMMON /FALL/ RE{9),CDRE2(9),CDDRE(9) REAL KINVIS RTSID = 1.3333*AGRAV*(SPG-1.0)*KINVIS/(VS**3) IF(RTSID.GT.2.0E+06) GO TO 10 RTSID = ALOG(RTSID) CALL TABLE(3,9,RE,CDDRE,RTSID,REY) REY = EXP(REY) SEDDIA = REY*KINVIS/VS RETURN 10 CONTINUE SEDDIA = SQRT(18.0*VS*KINVIS/((SPG-1.0)*AGRAV)) RETURN END SUBROUTINE SEGOUT(ELEM,NPART,GTOP,GBOT,X,DX,DLAT) COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL NET,GTQP(20),GB0T(20),DLAT(20) INTEGER ELEM CON = RUNOFF/EXRAIN IF(ELEM.EQ.l) CON = (43560.0/2000.O)*CON IF(ELEM.EQ.l) WRITE (LUN08.4000) X IF(ELEM.GT.l) WRITE (LUN08.4001) X STOT = 0.0 DTOT = 0.0 DO 10 K=1,NPART NET (GBOT(K)-GTOP(K))*CON/DX STOT = STOT+NET DETFLO * (GBOT(K)-GTOP(K))*CON/DX-DLAT(K)*CON DTOT = DTOT+DETFLO WRITE (LUN08.4002) K,NET,DETFLO 10 CONTINUE WRITE (LUN08,4003) STOT,DTOT RETURN 4000 FORMATC ',//,12X',//,12X,'S0I, 'SOIL LOSS FORR THEE SEGMENTT \F6.1,11 FTFT.. FROM1, 189 1 'THE PROFILE TOP1,/, 1 19X,1PARTICLE NET SOIL LOSS RILL SOIL LOSS1,/, 1 19X,1 TYPE (TONS/ACRE OF SEGMENT)1/, 1 19X,1 ') 4001 FORMATC ' ,//,12X,'SOIL LOSS FOR THE SEGMENT \F6.1,' FT. FROM1, 1 'THE CHANNEL TOP1,/, 1 19X,'PARTICLE NET SOIL LOSS CHAN SOIL LOSS1,/, 1 19X,' TYPE (LBS/FT OF CHANNEL SEGMENT)1/, 1 19X,1 ') 4002 FORMATC ',21X,I2,9X,F9.2,9X,F9.2) 4003 FORMATC ',/,21X,'TOTAL',7X,F9.2,9X,F9.2) END REAL FUNCTION SHDIST(X) IF(X.LT.0.02) GO TO 10 SHDIST = EXP(O.12692-0,51634*AL0G(X)- 1 0.40825*ALOG(X)**2-0.03442* 1 AL0G(X)**3) RETURN 10 CONTINUE SHDIST = 0.13*X/0.02 RETURN END REAL FUNCTION SHIELD(REYN) REAL Y(8),R(8) DATA Y /O.0772,0.0579,0.04,0.035,0.034,0.045,0.055,0.057/ DATA R /I.0,2.0,4.0,8.0,12.0,100.0,400.0,1000.0/ IF(REYN.LT.R(1)) GO TO 30 IF(REYN.GT.R(8)) GO TO 40 DO 10 1=2,8 IF(R(I-1).LE.REYN.AND.R(I).GE.REYN) GO TO 20 10 CONTINUE 20 CONTINUE SLOPE = (ALOG(Y(I))-ALOG(Y(I-l)))/(ALOG(R(I))- 1 ALOG(R(I-1))) YCR = ALOG(Y(I-1))+SLOPE*(ALOG(REYN)-ALOG(R(I-1))) GO TO 50 30 CONTINUE I «= 2 SLOPE = (ALOG(Y(I))-ALOG(Y(I-1)))/(ALOG(R(I))- 1 ALOG(R(I-1))) YCR = ALOG(Y(1))-SLOPE*(ALOG(R(1))-ALOG(REYN)) GO TO 50 40 CONTINUE I = 8 SLOPE = (ALOG(Y(I))-ALOG(Y(I-1)))/(ALOG(R(I))- 1 ALOG(R(I-1))) YCR = Y(8)+SL0PE*(AL0G(REYN)-AL0G(R(8))) 50 CONTINUE SHIELD = EXP(YCR) RETURN END SUBROUTINE SHOVR(Q,SF,NMANOV,EFFSH) 190 COMMON /CONS/ AGRAV,MSDH20,WTDH20,NTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV.NBARCH REAL NMANOV,NBAROV R = (Q*NBAR0V/(1.49*SQRT(SF)))**0.6 EFFSH = WTDH20*R*SF*((NBAROV/NMANOV)**0.9) RETURN END SUBROUTINE SPREAD(INIT,FLAG,ND,NC,NIN,XIN,YIN,NOUT.XOUT.YOUT) REAL XIN(4),YIN(4,30),X0UT(30),Y0UT(2,30) INTEGER FLAG UN = 1 Y = YIN(IIN.ND) IF(INIT.EQ.O) Y = ABS(Y) DO 20 IOUT=1,NOUT IF(IIN.EQ.NIN) GO TO 10 IF(XOUT(IOUT).LT.XIN(IIN)) GO TO 10 IF(FLAG.EQ.l.AND.Y.GT.O) YOUT(NC,IOUT) = Y UN = IIN+1 ' = YIN(IIN,ND) IF(INIT.EQ.O) Y = ABS(Y) IF(FLAG.EQ.2.AND.Y.GT.O) YOUT(NC.IOUT) = Y GO TO 20 10 CONTINUE IF(Y.GT.O) YOUT(NC.IOUT) = Y 20 CONTINUE RETURN END SUBROUTINE STROUT(ELEM,EROOUT,NPART,GS,CONC,DAREA,ENRICH) COMMON /FLOW/ FLAGS.QB.QE.YCR.YNOR.YE.SFE.RUNPND COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH>YALC0N,BETA, 1 NBAROV,NBARCH COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL GS(NPART),CONC(NPART) INTEGER ELEM.EROOUT,FLAGS IF(ER00UT.LT.4) GO TO 10 IF(ELEM.EQ.l) WRITE (LUN08.4003) 1F(ELEM.EQ.2) WRITE (LUN08.4004) IF(ELEM.EQ.3) WRITE (LUN08.4005) IF(ELEM.EQ.4) WRITE (LUN08,4006) IF(ER00UT.EQ.4) GO TO 10 IF(ELEM.EQ.4) RUNPND = 12.0*RUNPRD IF(ELEM.EQ.4) WRITE (LUN08.4007) RUNPND IF(ELEM.EQ.1.0R.ELEM.EQ.4) GO TO 10 IF(FLAGS.EQ.l) WRITE (LUN08.4008) IF(FLAGS.EQ.2.AND.YE.LE.YN0R) WRITE (LUN08.4009) IF(FLAGS.EQ.2.AND.YE.GT.YN0R) WRITE (LUN08.4010) WRITE (LUN08.4011) QB,QE,YCR,YNOR,YE,SFE 10 CONTINUE TGS =0.0 DO 20 K=1,NPART TGS = TGS+GS(K) 191 20 CONTINUE IF(TGS.LE.O.O) GO TO 50 IF(ER00UT.U.4) GO TO 60 IF(ER00UT.EQ.4) GO TO 40 WRITE (LUN08,4000) TCONC =0.0 TCNCPC = 0.0 TPPM = 0.0 DO 30 K=1,NPART CONCPC = C0NC(K)/WTDH20 PPM = CONCPC*!.OE+06 FRAC = GS(K)/TGS WRITE (LUN08.4001) K,FRAC,GS(K) ,CONC(K),CONCPC,PPM TCONC = TCONC+CONC(K) TCNCPC = TCNCPC+CONCPC TPPM = TPPM+PPM 30 CONTINUE 40 CONTINUE SOLOSS = 43560.0/2000.O*TGS/DAREA IF(ER00UT.EQ.4) GO TO 60 WRITE (LUN08.4002) TGS,TCONC,TCNCPC,TPPM,SOLOSS CALL ENRCMP(2,C0NC,ENRICH) WRITE (LUN08.4013) RETURN 50 CONTINUE IF(ER00UT.LT.4) RETURN WRITE (LUN08.4014) RETURN 60 CONTINUE CALL ENRCMP(1,CONC,ENRICH) IF(ER00UT.LT.4) RETURN WRITE (LUN08,4012) SOLOSS,ENRICH RETURN 4000 FORMATC ' ,/,21X,'THE QUANTITY OF ERODED SEDIMENT IN RUNOFF',//, 1 6X, PART. FRAC. IN SOIL LOSS 1 CONCENTRATIONS (SOIL/WATER) ',/, 1 6X, TYPE SED. LOAD LBS. 1 LBSF/FT**3 LBSF/LBSF PPM (WT)',/, 1 6X, 1 ••) 4001 FORMATC ',6X,I2,6X,F5.2,4X,F9.0,4X,F9.4,4X,F9.4,4X,F10.0) 4002 FORMAT(' ' / 10X 'TOTAL' 9X F9.0 4X F9.4 4X F9 4 4X F10 0 j 1 *19X,'AVERAGE SOIL LOSS FOR AREA ?,F6.2, 1 ' TONS/ACRE') 4003 FORMATC ' ./.28X/VALUES FROM OVERLAND FLOW1,/, 1 28X,' ') 4004 FORMATC ',/,29X,'VALUES FROM CHANNEL ONE1,/, 1 29X,' ') 4005 FORMATC ' ,/,29X,'VALUES FROM CHANNEL TWO',/, 1 29X,' ') 4006 FORMATC ' ,/,29X,'VALUES FROM IMPOUNDMENT',/, 1 29X,' ') 4007 FORMATC ' ,/,24X,'RUNOFF FROM IMPOUNDMENT',F8.2,' IN') 192 4008 FORMAT(' ,19X, 'FRICTION SLOPE FROM ENERGY GRADLINE CURVES1,/) 4009 FORMATC ,25X,'FRICTION SLOPE = CHANNEL SLOPE1,/) 4010 FORMAT(' ,18X, FRICTION SLOPE CHANNEL SLOPE EXCEPT AT END1,/) 4011 FORMAT(' ,19X, PEAK DISCHARGE UPPER END F8.3,' FT**3/SEC',/, 1 20X, PEAK DISCHARGE LOWER END ,F8.3,' FT**3/SEC',/, 1 20X, CRITICAL DEPTH ,F8.3,' FT1,/, 1 20X, NORMAL DEPTH .F8.3,1 FT1,/, 1 20X, CONTROL DEPTH ,F8.3,' FT',/, 1 20X, FRICTION SLOPE AT END ,F9.4) 4012 FORMAT( ,23X, AVERAGE SOIL LOSS ',F6.2, 1 TONS/ACRE1,/, 24X, ENRICHMENT RATIO ",F7.3) 4013 FORMAT( 4014 FORMAT( ',/,31X,'*** NO SOIL LOSS ***') END SUBROUTINE TABLE(FLAG,LENGTH,C0LMNl,C0LMN2,GIVEN,FOUND) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL INTRPL,COLMN1(LENGTH),C0LMN2(LENGTH) INTEGER FLAG IF(FLAG.EQ.2) GO TO 20 IF(FLAG.EQ.3) GO TO 40 IF(FLAG.EQ.4) GO TO 60 DO 10 1=1,LENGTH NPOS = I IF(COLMN1(I).LT.GIVEN) GO TO 80 10 CONTINUE GO TO 100 20 CONTINUE DO 30 1=1,LENGTH NPOS = I IF(COLMN1(I).GT.GIVEN) GO TO 80 30 CONTINUE GO TO 100 40 CONTINUE DO 50 1=1,LENGTH NPOS = I IF(C0LMN2(I).LT.GIVEN) GO TO 90 50 CONTINUE GO TO 100 60 CONTINUE DO 70 1=1,LENGTH NPOS = I IF(C0LMN2(I).GT.GIVEN) GO TO 90 70 CONTINUE GO TO 100 80 CONTINUE IF(NPOS.EQ.l) GO TO 100 FOUND = INTRPL(C0LMNl(NP0S-l),C0LMN2(NP0S-l),C0LMNl(NP0S), C0LMN2(NP0S),GIVEN) RETURN 90 CONTINUE IF(NPOS.EQ.l) GO TO 100 193 FOUND = INTRPL(C0LMN2(NP0S-l),C0LMNl(NP0S-l),C0LMN2(NP0S), 1 COLMNl(NPOS),GIVEN) RETURN 100 CONTINUE WRITE (LUN08.4000) FLAG,GIVEN,COLMN1(3),C0LMN2(3) STOP 4000 FORMATC ',/,12X,'GIVEN IS OUTSIDE THE RANGE OF THE TABLE1,//, 1 1 IX ,'USE THIS INFO TO IDENTIFY THE FUNCTION WHERE , 1 1 THE PROBLEM OCCURED',//, 1 4X ,'FLAG: 1 - GIVEN COLUMN 1 FIND COLUMN 2 ', 1 '(COLUMN 1 DECREASES)',/, 1 4X 2 - GIVEN COLUMN 1 FIND COLUMN 2 ', 1 '(COLUMN 1 INCREASES)1,//, 1 4X 3 - GIVEN COLUMN 2 FIND COLUMN 1 ', 1 '(COLUMN 2 DECREASES)',/, 1 4X ' 4 - GIVEN COLUMN 2 FIND COLUMN 1 ', 1 '(COLUMN 2 INCREASES)1,//, 1 12X 'THE FLAG = ',12,/, 1 12X 'GIVEN VALUE = '.E10.3,/, 1 12X 'THIRD VALUE FROM COLUMN 1 = ',E10.3,/, 1 12X 'THIRD VALUE FROM COLUMN 2 = '.E10.3) END SUBROUTINE TRNCAP(EFFSH,TC,QS) COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /CONS/ AGRAV,MSDH20,WTDH20,WTDS0I,KINVIS,KCH,YALC0N,BETA, 1 NBAROV,NBARCH COMMON/PART/NPART,DIA(10),SPGR(10),FRAC(10),FALL(10),EQSAND(10), 1 SOLCLY,SOLSLT,SOLSND,SOLORG,SSCLY,SSSLT,SSSND, 1 SS0RG,SSS0IL,FRCLY(10),FRSLT(10),FRSND(10), 1 FRORG(1O),DCL(11),DDCL(1O),FLGPRT REAL QS(10),NBAR0V,WS(10),WSQRAT(10),KINVIS,MSDH20,TC(10), 1 COEF(IO),YCRIT(10),DELTA(10),SIGMA(10),P(10),DLTRAT(10) INTEGER SNDX,FLAGD1,FLAGD2,FLAGD3 VSTAR = SQRT(EFFSH/MSDH20) COEF(NPART) = VSTAR*AGRAV*MSDH20 T = 0.0 DO 10 K=1,NPART COEF(K) = COEF(NPART)*DIA(K)*SPGR(K) 10 CONTINUE DO 40 K=1,NPART IF(QS(K).EQ.C.O) QS(K) = 1.0E-20 REYN = VSTAR*DIA(K)/KINVIS YCRIT(K) = SHIELD(REYN) DELTA(K) = (VSTAR**2/(SPGR(K)-1.0)/AGRAV/ 1 DIA(K)/YCRIT(K))-1.0 IF(DELTA(K).GT.O.O) GO TO 20 DELTA(K) = 0.0 P(K) = 0.0 GO TO 30 20 CONTINUE SIGMA(K) = DELTA(K)*2.45*SPGR(K)**(-0.4)* 1 SQRT(YCRIT(K)) P(K) = YALCON*DELTA(K)*(1.0-1.0/ 194 1 SIGMA(K)*AL0G(1.0+SIGMA(K))) 30 CONTINUE T = T+DELTA(K) 40 CONTINUE IF(T.EQ.O.O) T = 1000.0 DO 50 K=1,NPART DLTRAT(K) - DELTA(K)/T WS(K) = P(K)*DLTRAT(K)*COEF(K) 50 CONTINUE 60 CONTINUE FLAGD1 = 0 FLAGD2 = 0 FLAGD3 = 0 DO 70 K=1,NPART WSQRA.T(K) = WS(K)/QS(K) IF(WSQRAT(K).GT.1.0) FLAGD3 = FLAGD3+1 IF(WSQRAT(K).GE.1.0) FLAGD1 = FLAGD1+1 IF(WSQRAT(K).LE.1.0) FLAGD2 = FLAGD2+1 70 CONTINUE IF(FLAGD2.EQ.NPART) GO TO 80 IF(FLAGD3.EQ.NPART) GO TO 80 IF(FLAGDl.EQ.NPART) GO TO 140 GO TO 100 80 CONTINUE DO 90 K=1,NPART TC(K) = WS(K) 90 CONTINUE RETURN 100 CONTINUE SMDRQT =0.0 SMDRAT =0.0 DO 120 K=1,NPART IF(WSQRAT(K).LT.1.0) GO TO 110 SMDRQT = SMDRQT+QS(K)/COEF(K)/P(K) WS(K) = QS(K) GO TO 120 110 CONTINUE IF(WSQRAT(K).LT,1.0) SMDRAT = SMDRAT+DLTRAT(K) 120 CONTINUE EXCAP = 1.0-SMDRQT DO 130 K=1,NPART IF(SMDRAT.EQ.O.O) SMDRAT = 1000000.0 IF(WSQRAT(K).LT.1.0) WS(K) • DLTRAT(K)/SMDRAT*EXCAP*P(K)* 1 COEF(K) 130 CONTINUE GO TO 60 140 CONTINUE SMDRAT =0.0 DO 150 K=1,NPART SMDRAT = SMDRAT+QS(K)/(COEF(K)*P(K)) 150 CONTINUE A = 1.0/SMDRAT DO 160 K=1,NPART 195 TC(K) = A*QS(K) 160 CONTINUE RETURN END SUBROUTINE UNDFLO(COEFF,FACTOR,EXPON) DATA POWER /30.0/ IF(FACTOR.EQ.O.O) RETURN EXP10 = EXP0N*AL0G10(FACTOR) IF(ABS(EXP10).GT.P0WER) GO TO 10 IF(COEFF.EQ.O.O) RETURN EXPROD = EXP10+AL0G10(C0EFF) IF(ABS(EXPROD).GT.POWER) GO TO 10 RETURN 10 CONTINUE FACTOR =0.0 RETURN END REAL FUNCTION UNIFOR(SLOPE,Z,N,Q) REAL N Cl = (Z**2.5/(2.0*SQRT(Z**2+1.0)))**(2.0/3.0) UNIFOR = (Q*N/(Cl*1.49*SQRT(SL0PE)))**0.375 RETURN END £********************************************************************£ 0 ***********£ L E A M S PESTICIDE CHEMISTRY*************************C Q ******************** PROGRAM **************************************c SUBROUTINE INIPST (RD,FC1) COMMON /ERYPST/PSTPAS,PSTOUT,NBDATE,PBDATE,PEDATESNPEST5 & APRATEllOj.HZOSOLdOJ.DECAYdOj.KOCClO), & F0LFRC(10),S0LFRC(10),F0LRES(10),S0LRES(10,7), & WSHFRC(10)JHRWSH(10)J0TPST(10),F0LRSV(10), & DEPINC(10),BETA(10) COMMON /PASS1/PAS(6O),IFAP(1O) COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, 1 AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), 1 F(7),SWUP(7) COMMON /PEST/ H20L0S(10),SEDL0S(10),DRGL0S(10) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,EI COMMON /PPST/ ACCLOS(IO) COMMON /PST1/CONSP(7),SOLPST(1O,7),DRGPST(1O),APRPST(1O), 1 PREPST(10,7),DRC0N(10) COMMON /NUTPST/BD(7),UF(7),C0NV(7),IWC(7),S0LP0R(7),BR15(7), & 0SW(7},SAT(7),B0TD(7),DLAY(7)J0M(7),KD(10s7),NB0T(7),THICK(7), & S0ILMS(7),SWC(7),WTLAY COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON /PSTVAR/ APDATE,HAFLIF,PSTNAM COMMON /FLAG / FLGRES(10),NFLG COMMON /DATES/ LDATE(IO) COMMON /RESDUE/RES1,RES2,RES3,RES4,RES5,RES6,RES7 COMMON /0RGMAT/HYD0M(7) REAL HAFLIF(IO),RES1(1O),RES2(10),RES3(10), 196 & RES4(10),RES5(10),RES6(10),RES7(10) REAL KD.KOC INTEGER NEWPST(1O),APDATE(1O), 1 FLAGSK,PSTOUT,PBDATE,PEDATE,PDATE,CEDATE,SDATE, 1 DP,WCHMON,PSTPAS,METH(1O),EYEAR,FLGRES CHARACTER *8 IDASH (2) CHARACTER *4 IHEAD (2) CHARACTER *16 PSTNAM (10) IDASH(l) = ' ' IDASH(2) = ' ' IHEAD(l) = ' G/H1 IHEAD(2) = ' PPM1 DO 5 1= 1, 7 OM(I) = HYDOM(I) 5 CONTINUE DO 10 1=1,10 DRGPST(I) =0.0 APRPST(I) =0.0 ACCLOS(I) =0.0 TOTPST(I) =0.0 FOLRSV(I) =0.0 APDATE(I) =0 IFAP(I) =0 H20L0S(I) =0.0 SEDLOS(I) =0.0 DRGLOS(I) =0.0 KOC (I) =0.0 DECAY (I) =0.0 WSHFRC(I) =0.0 10 CONTINUE CALL INITCH(CEDATE,PSTOUT,PSTPAS,IROT,RD,FC1) RD=RD/10.0 DLAY(l) = 1.0 BOTD(l) = 1.0 THIK = RD / 6.0 DLAY (2) = THIK - 1.0 IF(DLAY(2) .LE. 0.0) THEN DLAY(l) = 0.5 * THIK DLAY(2) = DLAY(l) ENDIF BOTD(l) = DLAY(l) B0TD(2) = BOTD(l) + DLAY(2) DO 13 K=3,7 DLAY(K) = (1.0/6.0) * RD BOTD(K) = BOTD(K-l) + DLAY(K) 13 CONTINUE DO 14 K=2,7 NBOT(K)=INT(BOTD(K)) 14 CONTINUE C RD, DLAY, AND BOTD ARE NOW IN CM. DO 15 K-1,7 BD(K) = 2.65 * (1.0 - SOLPOR(K)) C0NSP(K)=BD(K)*DLAY(K)*100.0 197 CONV(K) =1O.O/(BD(K)*DLAY(K)) SAT(K) = SOLPOR(K) * DLAY(K) SOILMS( K)=lO0.O*BD( K)*DI.AY( K) C * * 1OO*BD*DLAY = SOILMS IN MEGAGRAMS/HA 15 CONTINUE CALL INITPS(NPEST,PBDATE,PEDATE) DO 16 I-l.NPEST RES1 (I) = 0. RES2 (I) = 0. RES3 (I) = 0. RES4 (I) = 0. RES5 (I) = 0. RES6 (I) = 0. RES7 (I) = 0. 16 CONTINUE DO 20 I=1,NPEST DO 20 K=l,7 SOLPST(I.K) * 0.0 PREPST(I.K) = 0.0 SOLRES(I.K) - 0.0 20 CONTINUE NFLG «• 0 DO 40 I=1,NPEST CALL ALLPST (I,PSTNAM)H2OSOL(I),HAFI.IF(I),DECAY(I),KOC(I), & FOLRESfI),FL6RES(I),RES1(I),RES2(I),RES3(I), & RES4(I),RES5(I),RES6(I),RES7(I),WSHFRC(I)) SOLPST(I,1) = RES1(I) S0LPST(I,2) = RES2(I) S0LPST(I,3) = RES3(I) S0LPST(I,4) = RES4(I) S0LPST(I,5) = RES5(I) S0LPST(I,6) = RES6(I) S0LPST(I,7) = RES7(I) DO 30 K=l,7 KD(I,KH0C(I)*0M(K)*0.01 PREPST(I.K) = SOLPST(I,K) 30 CONTINUE CCCCCC CALCULATE BETA COEFFICIENTS IF(KD(I,1) .LE. 1.0) THEN BETA(I)- 0.500 ELSE IF (KD(I,1) .GT. 1.0 .AND. KD(I,1) .LT. 3.0) THEN BETA(I)- 0.7 - 0.2 * KD(I,1) ELSE BETA(I)= 0.1 ENDIF IF (FLGRES(I) .NE. 0 ) THEN LDATE (I) = PBDATE + 1 APDATE(I) = PBDATE + 1 NFLG = 1 ENDIF 40 CONTINUE 198 CALL PESTIN(CEDATE,PBDATE,PEDATE,IROT) NORAIN « 0 C C PESTS C IF(NPEST .GT. 5) THEN MPEST = 5 ELSE MPEST = NPEST END IF IF(PSTPAS .EQ. 1) THEN WRITE (LUN11.4000) (PSTNAM(M2), M2=l,NPEST) WRITE (LUN11.4001) ((IDASH(M2),M2=1,1),M1=1,MPEST) WRITE (LUNll,4002) ((IHEAD(M2),M2=1,1) ,M1=1,MPEST) ELSEIF(PSTPAS .EQ. 2) THEN WRITE (LUN12.4000) (PSTNAM(M2), M2-1,NPEST) WRITE (LUN12.4001) ((IDASH(M2),M2=1,1) ,M1«1,MPEST) WRITE (LUN1254002) ((IHEAD(M2),M2=2,2) ,MM,MPEST) ELSEIF(PSTPAS .EP. 3) THEN WRITE LUN11.4000) (PSTNAM(M2), M2=l,NPEST) WRITE LUNli,4001) ((IDASH(M2),M2=1,1), M1=1,MPE?T) WRITE LUN11.4002) ((IHEAD(M2),M2=1,1), Ml-l.MPEST) WRITE LUN12.4000) (PSTNAM(M2), M2=l,NPEST) WRITE (LUN12.4001) ((IDASH(M2),M2=1,1) ,M1=1,MPEST) WRITE (LUN12.4002) ((IHEAD(M2),M2=2,2) ,M1=1,MPEST) ENDIF 4000 F0RMAT(35H DATE RAIN RUN DRNG SDMT , 5(A8,1X) / 1 35X, 5( A8.1X) ) 4001 F0RMAT(35H , 5( A851X) ) 4002 FQRMAT(35H CM CM CM T/H , 5(3X,A4S2X) ) RETURN END SUBROUTINE INITCH(BDATE,PSTOUT,PSTPAS,IROT,RD,FC1) COMMON /NUTPST/BD(7),FCC(7),C0NV(7),IWC{7),S0LP0R(7),BR15(7), & 0SW(7),SAT(7),B0TD{7),DLAY(7),0M(7) ,KD(10,7),NB0T(7),THICK(7), & S0ILMS(7),SWC(7),WTLAY COW-ION /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON /FLDCAP/UF(7) COMMON /HEAD3/ TITLE3 REAL KD INTEGER BDATE.PSTOUT.PSTPAS CHARACTER *80 TITLE3(3) WRITE(LUN10,3001) DO 10 J=1S3 READ (LUN05.2002) TITLE3(J) WRITE(LUN10,3002) TITLE3(J) 10 CONTINUE READ (LUNO5.2OOO) BDATE.PSTOUT.PSTPAS,IROT IF(PSTPAS.EQ.l) WRITE(LUNll,2002)(TITLE3(JJ),JJ=l,3) IF(PSTPAS.EQ.2) WRITE(LUN12,2002)(TITLE3(JJ),JJ=l,3) IF(PSTPAS.EQ.3) THEN 199 WRITE(LUNll,2002)(TITLE3(JJ),JJ=l,3) WRITE(LUN12,2002)(TITLE3(JJ),JJ=l,3) ENDIF DO 55 K = 1,7 C CONVERT FIELD CAPACITY FROM INCHES TO MILLIMETERS. UF(K) = FCC(K) * 25.4 C AFUL(K) =(FUL(K)*(SOLPOR(K)-BR15(K)))+BR15(K) 55 CONTINUE WRITE(LUN10,3000) BDATE.RD WRITE(LUN1O,3006) (M.SOLPOR(M),M=1,7) WRITE(LUN10,3008) (M,UF(M), M-1,7) C WRITE(LUN10,3008) (M.AFUL(M), M=l,7 WRITE(LUN10,3009) (M,BR15(M), M=l,7 WRITE(LUN10,3004) (KK,OM(KK), KK=1,7 C * * CONVERT FROM ORGANIC MATTER TO ORGANIC CARBON DO 60 K = 1, 7 OM(K) = OM(K) / 1.732 60 CONTINUE RETURN 2000 F0RMAT(10I8) 2001 F0RMAT(10F8.0) 2002 F0RMAT(A80) 3000 FORMAT(1H ,/,18X,28HSTARTING DATE FOR SIMULATION,IX,15,IX, 1 11HJULIAN DATE,//, 1 30X.16HR00TING DEPTH ,F6.2,3H MM ,//) 3001 FORMAT(1H1,//,12X,39HG L E A M S NONPOINT SOURCE POLLUTION , 1 18HM0DEL (PESTICIDES),/, 1 23X,'VERSION 1.8.5.2 JAN 12, 1987 TIFTON GA ',//) 3002 FORMAT(1X,A8O) 3004 FORMAT(1H ,/,29X,27H0RGANIC MATTER (%) BY 1 LAYER,/,12X,7(I3,F6.2)) 3006 FORMAT(1H ,/,31X,'POROSITY (G/CC) BY LAYER \/,12X,7(I3,F6.3)) 3008 FORMAT(1H ,/,27X,"FIELD CAPACITY (MM/MM) BY LAYER',/,12X, 1 7(13,F6.3)) 3009 FORMAT(1H ,/,27X,'WILTING POINT (MM/MM) BY LAYER1,/,12X,7(13, & F6.3)) END , SUBROUTINE STRMIN (OSW) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,EI COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, & AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), & F(7),SWUP(7) COMMON /PINF/RINF(7),U(7) INTEGER SDATE.DP REAL 0SW(7) IF(SDATE.LE.O) RETURN RNFALL =RNFALL*2.54 RUNOFF =RUN0FF*2.54*12.0 C SOLOSS IS IN LBS/FT**2 CONVERT USING 43560./2000.*2241 TO KG/HA SOLOSS *S0L0SS*48808.98 DRNG =DRNG*2.54 C AVGTMP =(AVGTMP-32.0)*5.0/9.0 200 ACCPEV =ACCPEV*2.54 POTPEV =P0TPEV*2.54 ACCSEV =ACCSEV*2.54 POTSEV =P0TSEV*2.54 DO 10 1-1,7 C FIX FOR COMPATIBILITY BETWEEN CREAMS AND GLEAMS DUE TO FORMAT IN THE C PASS FILE. IF (SW(I) .LT. 0.001) SVI(I) = 0.0 SW(I) = SW(I) * 2.54 IF (F(I) .LT. 0.001) F(I) » 0.0 F(I) = F(I) * 2.54 IF (U(I) .LT.0.001) U(I)-0.0 U(I) = U(I) * 2.54 IF (SWUP(I) .LT. 0.001) SWUP(I) - 0.0 SWUP(I) « SWUP(I) * 2.54 10 CONTINUE C IF (ACCPEV .LT. 0.001) ACCPEV - 0.0 C IF (ACCSEV .LT. 0.001) ACCSEV = 0.0 IF (POTPEV .LT. 0.001) POTPEV = 0.0 IF (POTSEV .LT. 0.001) POTSEV = 0.0 DO 20 KI-1,7 OSW(KI)-SW(KI) 20 CONTINUE RETURN END C * * PRODUCES A STORM SUMMARY IN PESTICIDES FOR EVENTS SUBROUTINE STMSUM(PSTOUT) COMMON /PSTTOT/ NSTRMS,NRNFFS,NDRNGS,TPRECP,TRUNFF,TDRNGL, & NSEDS,TSEDS COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, & AVGTMP.AVGSWC.ACCPEV,POTPEV,ACCSEV,P0TSEV,SW(7), & F(7),SWUP(7) COMMON /UNDEF/LUN01,I.UN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER SDATE.PSTOUT IF(PSTOUT.LE.l) GO TO 10 WRITE (LUN10.3001) WRITE (LUN10.300C) SDATE.RNFALL.RUNOFF.SOLOSS,ENRICH,DRNG 10 CONTINUE NSTRMS =NSTRMS+1 TPRECP =TPRECP+RNFALL IF (SOLOSS .GT. 0.0) THEN NSEDS = NSEDS + 1 TSEDS = TSEDS + (SOLOSS / 1000.) END IF IF(RUNOFF .LE. 0.0) GO TO 15 NRNFFS =NRNFFS+1 TRUNFF =TRUNFF+RUNOFF 15 IF(DRNG .LE. 0.0) RETURN NDRNGS =NDRNGS+1 TDRNGL =TDRNGL+DRNG 3000 FORMAT(1H ,/,23X,4HDATE,10X,I7,3X,llHJULIAN DATE,/, 201 1 23X,8HRAINFALL,7X,F6.2,3X,3HCM.,/, 1 23X.13HRUN0FF VOLUME,2X,F6.2,3X,3HCM.,/, 1 23X.9HS0IL L0SS,4X,F8.2,3X,5HKG/HA,/, 1 23X,13HENRICH. RATI0,F8.2,3X,/, 1 23X,8HDRAINAGE,4X,F6.2,3X,3HCM.,/) 3001 FORMAT(1H , /,35X,12HST0RM INPUTS,/, 1 33X.12H ) RETURN END SUBROUTINE DATEIN(PDATE,CEDATE,IPST) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER CEDATE.PDATE READ (LUN06.2000) PDATE.CEDATE.IPST RETURN 2000 F0RMAT(3I8) END SUBROUTINE INITPS(NPEST,PBDATE,PEDATE) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER PBDATE.PEDATE READ (LUN05.2000) NPEST,PBDATE.PEDATE WRITE (LUN10.3000) PBDATE,PEDATE,NPEST RETURN 2000 F0RMAT(10I8) 3000 FORMAT(1H ,/,33Xs16HPESTICIDE INPUTS,/, 1 33X.16H ,//, 1 21X,25HSIMULATI0N FOR THE PERIOD,I6.3H TO,16,/, 1 21X.15HSIMULATI0N FOR ,I3,12H PESTICIDES.,//) END SUBROUTINE MONPCP(MONTH,DATE) INTEGER DATE,YEAR COMMON /PSTTOT/ NSTRMS,NRNFFS,NDRNGS,TPRECP,TRUNFF,TDRNGL, & NSEDS.TSEDS COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUNOS.LUNOg.LUNlO CHARACTER *3 MONTHS (12) REAL MPRECP,MRUNFF,MDRNG,MSOLOS MONTHS( 1) = 'JAN' MONTHS( 2) * 'FEB' MONTHS( 3) = 'MAR' MONTHS( 4) = 'APR' MONTHS( 5) = 'MAY' MONTHS( 6) = 'JUN' MONTHS( 7) = 'JUL1 MONTHS( 8) = 'AUG1 MONTHS( 9) = 'SEP' MONTHS(IO) = 'OCT1 MONTHS(ll) = 'N0V M0NTHS(12) = 'DEC YEAR =DATE/1000 NSTRMM =NSTRMS-NSTRMM NRNFFM =NRNFFS-NRNFFM 202 NDRNGM =NDRNGS-NDRNGM MPRECP =TPRECP-MPRECP MRUNFF =TRUNFF-MRUNFF MDRNG =TDRNGL-MDRNG MS0L0S =TSEDS-MSOLOS NSED =NSEDS-NSED WRITE (LUN10.3000) MONTHS(MONTH),YEAR,NSTRMM,MPRECP,NRNFFM, 1 MRUNFF,NDRNGM,MDRNG,NSED,MSOLOS NSTRMM =NSTRMS NRNFFM =NRNFFS NDRNGM =NDRNGS NSED =NSEDS MPRECP =TPRECP MRUNFF =TRUNFF MDRNG =TDRNGL MSOLOS =TSEDS RETURN 3000 FORMAT(1H ,////,26X.20HM0NTHLY SUMMARY FOR ,A3,3H 19,12,/, 1 26X,29H ,//, 1 18X,I4,17H STORMS PRODUCED ,F8.2,16H CM. OF RAINFALL, 1 /,18X,I4,17H STORMS PRODUCED ,F8.2,14H CM. OF RUNOFF,/, 1 18X,I4,17H STORMS PRODUCED ,F8.2,16H CM. OF DRAINAGE, 1 /, & 18X.I4,1 STORMS PRODUCED ',F8.2,' T/HA OF SEDIMENT ', & /) END SUBROUTINE MONPST(ACCL0S,T0TPST,APDATE,PSTNAM,NPEST,DATE) COMMON /PEST/ H20L0S(10),SEDL0S(10),DRGL0S(10) COMMON /UNDEF/LUN01,LUN02,LUN03>LUN04,LUN05,LUN06,LUN07, & LUN08,lUN09,LUN10,LUNll,LUN12 INTEGER DATE.APDATE(IO) REAL ODRG(10),0WAT(10),0SED(10) REAL ACCL0S(10},T0TPST(10),MCCL0S(10)>M0TPST(10) CHARACTER *16 PSTNA.M (10) DO 10 M.NPEST IF(APDATE(I).LT.1OOO) GO TO 10 IF(APDATE(I).LE.DATE) GO TO 20 10 CONTINUE RETURN 20 CONTINUE WRITE (L.UN10.3000) DO 50 I=1,NPEST IF(APDATE(I).LT.1OOO) GO TO 50 IF(APDATE(I).GT.DATE) GO TO 50 MCCLOS(I)=ACCLOS(I)-MCCLOS(I) MOTPST(I)=TOTPST(I)-MOTPST(I) WATLOS =H20L0S(I)-0WAT(I SOLLOS =SEDLOS(I)-OSED(I DRLOS =DRGLOS(I)-ODRG([D- I GMLOSS «WATLOi+SOLLOS+DRLOS IF(MOTPST(I).GT.O.O) GO TO 30 WRITE (LUN10,3002) PSTNAM(I),WATLOS,SOLLOS,DRLOS,GMLOSS GO TO 40 203 30 CONTINUE PCTWAT =WATL0S/(M0TPST(I)*10.0) PCTSED =SOLLOS/(MOTPST(I)*10.0) PCTDRG =DRLOS/(MOTPST(I)*1O.O) PCTLOS =PCTWAT+PCTSED+PCTDRG WRITE (LUN10.3001) PSTNAM(I),WATLOS,PCTWAT,SOLLOS, 1 PCTSED,DRLOS,PCTDRG,GMLOSS,PCTLOS CONTINUE MCCLOS(I)=ACCLOS(I) MOTPST(I)=TOTPST{I) ODRG(I) =DRGLOS(I) OWAT(I) =H20LQS(I) OSED(I) =SEDLOS(I) 50 CONTINUE RETURN 3000 FORMAT(1H ,//,34X,16HPESTICIDE LOSSES,//, 7X,9HPESTICIDE,12X,6HRUN0FF,10X,8HSEDIMENT,8X, 8HDRAINAGE,9X.5HT0TAL/22X, 4{17H G/HA % APP.)) 3001 FORMAT(1H ,4X,A16,4(F10.4,F7.2)) 3002 FORMAT(1H ,4X,A16,3(F10.4,7X),F10.4,9H RESIDUE) END SUBROUTINE ANNPCP(DATE) COMMON /PSTTOT/ NSTRMS,NRNFFS,NDRNGS,TPRECP,TRUNFF,TDRNGL, NSEDSJSEDS COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER DATE,YEAR YEAR =DATE/1000 NSTRMY =NSTRMS-NSTRMY NRNFFY =NRNFFS-NRNFFY NYDRN =NDRNGS-NYDRN NSED =NSEDS -NSED YPRECP =TPRECP-YPRECP YRUNFF =TRUNFF-YRUNFF YDRNG =TDRNGL-YDRNG YSED =TSEDS -YSED WRITE (LUN10,3000) YEAR,NSTRMY,YPRECP,NRNFFY,YRUNFF,NYDRN,YDRNG, NSED,YSED NSTRMY *NSTRMS NRNFFY =NRNFFS NYDRN =NDRNGS NSED =NSEDS YPRECP =TPRECP YRUNFF 'TRUNFF YDRNG =TDRNGL YSED =TSEDS RETURN 3000 FORMAT(1H , /,29X,21HANNUAL SUMMARY FOR 19,12,/, 29X.23H ---,//, 18X,I4,17H STORMS PRODUCED .F8.2.16H CM. OF RAINFALL, /,18X,I4,17H STORMS PRODUCED ,F8.2,14H CM. OF RUNOFF,/, 18X,I4,17H STORMS PRODUCED ,F8.2,16H CM. OF DRAINAGE, 204 1 /, & 18X.I4,' STORMS PRODUCED '.F8.2,1 T/HA OF SEDIMENT ',/) END SUBROUTINE ANNPST(ACCLOS,TOTPST,APDATE,PSTNAM,NPEST,DATE) INTEGER DATE.APDATE(IO) CHARACTER *16 PSTNAM (10) COMMON /PEST/ H20L0S(10),SEDL0S(10),DRGL0S(10) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL ACCLOS(10),TOTPST(10),YCCLOS(10),YOTPST(10) REAL ANSED(IO),ANWAT(10),ANDRG(10) DO 10 I-l.NPEST IF(APDATE(I).LT.1OOO) GO TO 10 IF(APDATE(I).LE.DATE) GO TO 20 10 CONTINUE RETURN 20 CONTINUE WRITE (LUN10.3000) DO 50 I=1,NPEST IF(APDATE(I).LT.1OOO) GO TO 50 IF(APDATE(I).GT.DATE) GO TO 50 YCCLOS(I)=ACCLOS(I)-YCCLOS(I) YOTPST(I)=TOTPST(I)-YOTPST(I) ANWAT(I) =H20L0S(I)-ANWAT(I) ANSED(I) =SEDLOS(I)-ANSED(I) ANDRG(I) =DRGLOS(I)-ANDRG(I) GMLOSS =ANWAT(I)+ANSED(I)+ANDRG(I) IF(YOTPST(I).GT.O.O) GO TO 30 WRITE (LUN10.3002) PSTNAM(I),ANWAT(I),ANSED(I),ANDRG(I), 1 GMLOSS GO TO 40 30 CONTINUE PCTWAT=ANWAT(I)/(YOTPST(I)*10.0) PCTSED=ANSEDd)/(Y0TPST(I)*10.0) PCTDRG=ANDRG(I)/(Y0TPST(I)*10.0) PCTLOS =PCTWAT+PCTSED+PCTDRG WRITE (LUN10.3001) PSTNAM(I),ANWAT(I),PCTWAT, 1 ANSED(I),PCTSED,ANDRG(I),PCTDRG,GMLOSS,PCTLOS 40 CONTINUE YCCLOS(I)=ACCLOS(I) YOTPST(I)=TOTPST(I) ANWAT(I) =H20L0S(I) ANSED(I) =SEDLOS(I) ANDRG(I) =DRGLOS(I) 50 CONTINUE RETURN 3000 FORMAT(1K ,//,34X,16HPESTICIDE LOSSES,//, 1 1X,9HPESTICIDE,9X,6HRUNOFF,9X,8HSEDIMENT,8X, 1 8HDRAINAGE,9X,5HTOTAL/11X, 1 4(17H G/HA % APP.)) 3001 FORMAT(1X,A10,4(F9.4,F7.2)) 3002 F0RMAT(lX,A12,3(F10.4,7X),F10.4,9H RESIDUE) END 205 SUBROUTINE PCPEND COMMON /PSTTOT/ NSTRMS,NRNFFS,NDRNGS,TPRECP,TRUNFF,TDRNGL, & NSEDS.TSEDS COMMON /HEAD3/ TITLE3 COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 CHARACTER *80 TITLE3 (3) WRITE (LUN10,3000) NSTRMS,TPRECP,NRNFFS, 1 TRUNFF.NDRNGS.TDRNGL,NSEDS.TSEDS RETURN 3000 FORMAT(1H1,34X,13HSTORM SUMMARY,/.34X.13H ,//, 1 18X,I4,17H STORMS PRODUCED ,F8.2,16H CM. OF RAINFALL, 1 /,18X,I4,17H STORMS PRODUCED ,F8.2,14H CM. OF RUNOFF,/, 1 18X.I4.17H STORMS PRODUCED .F8.2.16H CM. OF DRAINAGE, 1 /, 1 18X.I4,' STORMS PRODUCED ',F8.2r' T/HA OF SEDIMENT ',//) END SUBROUTINE PSTEND(ACCLOS,TOTPST,PSTNAM,NPEST) CHARACTER *16 PSTNAM (10) COMMON /PEST/ H20L0S(10),SEDL0S(10),DRGL0S(10) COMMON /UNDEF/LUNO1,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL ACCLOS(10),TOTPST(10) IF(NPEST .EQ. 0) RETURN WRITE (LUN10,3000) DO 20 I=1,NPEST GMLOSS =H2OLOS(I)+SEDLOS(I)+DRGLOS(I) IF(TOTPST(I).GT.O.O) GO TO 10 WRITE (LUN10.3002) PSTNAM(I),GMLOSS GO TO 20 10 CONTINUE PCTWAT =H20LOS(I)/(TOTPST(I)*10.0) PCTSED =SEDL0S(I)/(TOTPST(I)*10.0) PCTDRG =DRGL0S(I)/(T0TPST(I)*10.0) PCTLOS =GMLOSS/(TOTPST(I)*10.0) WRITE (LUN10.3001) PSTNAM(I),H20L0S(I),PCTWAT, 1 SEDLOS(I),PCTSED,DRGLOS(I),PCTDRG,GMLOSS,PCTLOS 20 CONTINUE RETURN 3000 FORMAT(1H ,//,32X,16HPESTICIDE LOSSES,//, 1 IX .9HPESTICIDE,9X.6HRUN0FF.9X,8HSEDIMENT,8X, 1 8HDRAINAGE,9X,5HTOTAL/11X, 1 4(17H G/HA %APP.)) 3001 F0RMAT(lX,A10,2(F9.4,F7.2),2(F9.4,F7.2)) 3002 FORMAT(1X,A12,53X,9H RESIDUE) END SUBROUTINE ALLPST(I,PSTNAM,H20S0L,HAFLIF,DECAY,K0C, 1 F0LRES,FLGRES,RESl,RES2,RES3,RES4,RES5,RES6,RES7, & WSHFRC) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 CHARACTER *16 PSTNAM(IO) INTEGER FLGRES 206 REAL KOC IF(I .GT. 1) GO TO 10 WRITE(LUN10,200) 200 FORMAT(1X,16HPEST. PESTICIDE.8X.22HWATER FOLIAR S0IL,4x, & 30HK0C FOLIAR SOIL WSH0FF,/,2X,13H NO. NAME.lOx, & 14hS0L. HAFLIF,3X,6HHAFLIF,12x,12hRES. RES.,3x, & 5hFRAC.,/,25X,15H(PPM) (DAYS),3X,6H(DAYS),11X,6H(UG/G), & 3x,4hFLAG) 10 CONTINUE READ (LUN05.100) PSTNAM(I),H20S0L,HAFLIF,SHFLIF, 1 KOC,FOLRES,FLGRES,WSHFRC DECAY = 0.693 / SHFLIF IF (FLGRES .EQ. 1) READ (LUN05.101) RES1,RES2,RES3,RES4,RES5, & RES6.RES7 101 FORMAT (10F8.0) 100 F0RMAT(8X,A16,5F8.0,I8,F8.0) WRITE (LUN10.201) I,PSTNAM(I),H20S0L,HAFLIF,SHFLIF, 1 KOC.FOLRES,FLGRES,WSHFRC IF(FLGRES .EQ. 1) WRITE(LUN10,202) RES1,RES2,RES3,RES4, & RES5,RES6,RES7 201 F0RMAT(I4,A16,F10.2,F9.1,F8.4,F9.1,F8.2,I8,F8.2) 202 F0RMAT(6X,49KS0IL RESIDUE: LAYER 1 LAYER 2 LAYER 3 LAYER 4, 1 27H LAYER 5 LAYER 6 LAYER 7,/,19X,7F9.4) C fix for division by 0 in sub pstet, kd is related directly to koc. IF(KOC .LE. 0.0) K0C=0.01 RETURN END SUBROUTINE UPPEST(IPST,APDATE,APRATE,DEPINC,FOLFRC,SOLFRC, 1 THRWSK,METH,TOTPST,NEWPST,NPEST,PDATE) INTEGER PDATE,APDATE(10),NEWPST(10),METH(10) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 REAL APRATE(10),DEPINC(10),F0LFRC(10),S0LFRC(10) REAL THRWSH(10),T0TPST(10) DO 20 J=1,IPST READ (LUN06.100) NUMP,APRATE(NUMP),DEPINC(NUMP), 1 FOLFRC(NUMP),SOLFRC(NUMP),THRWSH(NUMP),METH(NUMP) APDATE(NUMP) = PDATE NEWPST(NUMP) = 1 TOTPST(NUMP) = TOTPST(NUMP) + APRATE(NUMP) WRITE (LUN10.200) NUMP,APDATE(NUMP),APRATE(NUMP),DEPINC(NUMP), 1 FOLFRC(NUMP),SOLFRC(NUMP),THRWSH(NUMP),METH(NUMP) 20 CONTINUE 100 FORMAT(I8,5F8.O,I8) 200 F0RMAT(/4H NO.,13,18,5H RATE,F5.2,8H DEPTH,F5.1, 1 8H F0LFRC,F5.2,/,16X,6HS0LFRC,F5.2,7H THRWSH,F5.2,7H METHOD,13) RETURN END 207 SUBROUTINE PESTPS(N,PSTPAS,PBDATE,PEDATE) COMMON /PASS1/PAS(6O),IFAP(1O) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,EI COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, 1 AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), 1 F(7),SWUP(7) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,LUN12 INTEGER PSTPAo,SDATE,DP,PBDATE,PEDATE CHARACTER *1 ISTAR, IBLANK CHARACTER *1 J(10) IF(SDATE.LT.PBDATE.OR.SDATE.GT.PEDATE) RETURN ISTAR = '*' IBLANK = ' ' DO 1 1=1, N 1 J(I) = IBLANK IF(RNFALL .LE. 0.) GO TO 3 SOLOSS = SOLOSS / 1000. C SOLOSS IN EROSION IS IN KG/HA AND THIS IS TONS/HA, DIVISOR IS C 2000/2.21 C SOLOSS = SOLOSS / 905. BUT WGK SAID METRIC TONS IN PESTICIDES DO 2 1=1,N IF(IFAP(I).GT.O) J(I) = ISTAR IFAP(I) = 0 2 CONTINUE 3 NC = 2*N NN = 20 + NC NNN = 20 + NN P = RNFALL Q = RUNOFF IF(PSTPAS .EQ. 1) THEN WRITE (LUN11.400) SDATE,P,Q,DRNG,SOLOSS,(PAS(I), & J((I+1)/2),I=1,NC,2) IF (N .LE. 5) THEN WRITE (LUN11.410) (PAS(I),I=21,NN,2) ELSE WRITE (LUN11.410) (PAS(I),I=21,3O,2) WRITE (LUN11.410) (PAS(I),I=31,NN,2) ENDIF IF (N .LE. 5) THEN WRITE (LUN11.430) (PAS(I),I=41,NNN,2) ELSE WRITE (LUN11.430) (PAS(I),1=41,50,2) WRITE (LUN11.430) (PAS(I),I=51,NNN,2) ENDIF ELSEIF (PSTPAS .EQ. 2) THEN WRITE (LUN12.400) SDATE,P,Q,DRNG,SOLOSS,(PAS(I), & J((I)/2),I=2,NC,2) IF (N .LE. 5) THEN WRITE (LUN12.410) (PAS(I),I=22,NN,2) ELSE WRITE (LUN12.410) (PAS(I),1=22,30,2) WRITE (LUN12.410) (PAS(I),I=32,NN,2) 208 ENDIF IF (N .LE. 5) THEN WRITE (LUN12.430) (PAS(I),I«42,NNN,2) ELSE WRITE (LUN12.430) (PAS(I),1-42,50,2) WRITE (LUN12.430) (PAS(I),I-52,NNN,2) ENDIF ELSE IF (PSTPAS .EQ. 3) THEN WRITE (LUN11.400) SDATE,P,Q,DRNG,S0L0SS,(PAS(I), & J((I+1)/2),I-1,NC,2) IF (N .LE. 5) THEN WRITE (LUN11.410) (PAS(I),I=21,NN,2) ELSE WRITE (LUN11.410) (PAS(I),1=21,30,2) WRITE (LUN11.410) (PAS(I),I-31,NN,2) ENDIF IF (N .LE. 5) THEN WRITE (LUN11,43O) (PAS(I),I=41,NNN,2) ELSE WRITE (LUN11.430) (PAS(I),1-41,50,2) WRITE (LUN11,43O) (PAS(I),I»51,NNN,2) ENDIF WRITE (LUN12.400) SDATE,P,Q,DRNG,S0L0SS,(PAS(I), & J((I)/2),I«2,NC,2) IF (N .LE. 5) THEN WRITE (LUN12.410) (PAS(I),I-22,NN,2) ELSE WRITE (LUN12.410) (PAS(I)1I»22,30,2) WRITE (LUN12.410) (PAS(I),I«32,NN,2) ENDIF IF (N .LE. 5) THEN WRITE (LUN12.430) (PAS(I),I-42,NNN,2) ELSE WRITE (LUN12.430) (PAS(I),1-42,50,2) WRITE (LUN12.430) (PAS(I),I=52,NNN,2) ENDIF ENDIF 5 CONTINUE C ALL THE VALUES OF PAS(60) NEED TO BE RESET TO ZERO AS THEY CARRY C FORWARD DUE TO STRUCTURE OF PST208 P = 0.0 Q = 0.0 100 CONTINUE RETURN 400 FORMAT(/,I6,1X,F6.2,3F7.2,1X,5(F8.4,A1),/, 1 35H (RUNOFF ) ,5(F8.4,A1)) 410 F0RMAT(35H (SEDIMENT) ,5(F8.4,lX)j 420 F0RMAT(35H (SEDIMENT) ,5(F8.4,1X)) 430 F0RMAT(35H (DRAINAGE) ,5(F8.4,1X)) 440 F0RMAT(35H (DRAINAGE) ,5(F8.4,1X)) END SUBROUTINE PESTIN(BDATE,PBDATE,PEDATE,IROT) DIMENSION NUM(10),TDATA(10,20,5),NDATA(10) 209 INTEGER BYR,PEDATE,PBDATE,BDATE,DATE1,DATE2 COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN1.1,LUN12 REWIND LUN06 NSAVE = 0 NFLAG = 0 IF(IROT .LE. 0) THEN NCY » 1 ELSE NYR = (PEDATE/1000)-(BDATE/1000) + 1 LDATE = 0 ICT = 0 IF(MOD(NYR,IROT) .GT. 0) THEN NCY = (NYR/IROT) + 1 ELSE NCY • NYR/IROT ENDIF END IF BYR = BDATE/1000 LYR » BYR-IROT-1 ICARD = 0 DO 25 J=1,NCY LYR = LYR+IROT 26 CONTINUE READ (LUN05,100) IYR1,IDAY1,IYR2,IDAY2,IPST ICARD = ICARD + 1 IF (ICARD .EQ. 1 ) IFLAG = (IYR1*1OOO) + IDAY1 100 F0RMAT(2(15,13),18) ICT = ICT + 1 IF(IYR2 .EQ. 0) THEN IF(IROT .LE. 0) GO TO 31 IF(NFLAG .NE. IFLAG) THEN NTEMP=IFLAG+(IROT*1OOO)-1 WRITE(LUN10,334) IFLAG, NFLAG WRITE(LUN10.303) WRITE(LUN10,333) IFLAG, NSAVE, NTEMP STOP ENDIF DO 70 1=1,ICT BACKSPACE LUN05 70 CONTINUE ICT = 0 ELSE NFLAG -((IYR2 - IROT) * 1000) + IDAY2 + 1 NSAVE =( IYR2 * 1000) + IDAY2 DATE1 « IDAY1 + ((IYR1+LYR)*1000) IF(IYR2 .EQ. IYR1) THEN DATE2 = IDAY2 + ((IYR2+LYR)*1000) ELSE DATE2 = IDAY2 + (LYR+IYR2)*1000 ENDIF IF(IROT .LE. 0 .OR. DATE1 .GT. LDATE) THEN LDATE = DATE2 210 DO 40 M-l.IPST READ (LUN05,101)L,(TDATA(M,L,I),I=l,5),NDATA(M) 101 FORMAT(I8,5F8.0,I8) NUM(M) * L ICT = ICT + 1 40 CONTINUE IF(DATE2 .GT. PEDATE) DATE2 = PEDATE IF(DATE1 .GT. PEDATE) GO TO 31 WRITE (LUN06.200) DATE1.DATE2.IPST DO 80 M-l.IPST L = NUM(M) WRITE (LUN06,201)NUM(M),(TDATA(M,L,N),N*l,5),NDATA(M) 80 CONTINUE ELSE ICT - ICT - 1 DO 37 ISKIP-l.IPST READ (LUN05.101) L,(TDATA(M,L,I),1-1,5),NDATA(M) 37 CONTINUE ENDIF GO TO 26 ENDIF 25 CONTINUE 31 CONTINUE LCARD = 0 WRITE(LUN06,202) LCARD REWIND LUN06 202 F0RMAT(I16) 200 F0RMAT(3I8) 201 F0RMAT(I8,5F8.2,,181 ) 303 FORMAT(1M /7X, ' N N 000 TTTTT EEEEE & 7X, * NN N 0 0 T E & 7X, ' N N N 0 0 T EEEEE & 7X, ' N NN 0 0 T E & 7X, ' N N 000 T EEEEE & 7X, ' YOUR LAST CDATE IN THE PESTICIDE & 7X, ' PARAMETER FILE IS NOT CORRECT. & 7X, ' WHEN I ROT IS GREATER THAN 0, THE & 7X, ' CDATE ON THE LAST CARD 8 MUST BE & 7X, ' IROT+1 PLUS ONE DAY BEFORE THE & 7X, ' JULIAN DAY OF PDATE ON THE FIRST & 7X, ' CARD 8. & 7X, ' FOR EXAMPLE, IF IROT=1 AND THE & 7X, ' PDATE=1115 ON THE FIRST CARD 8, & 7X, ' THEN CDATE ON THE LAST CARD 8 & 7X, ' SHOULD BE 2114. 333 FORMAT( 7X, ' YOUR FIRST PDATE IS: 8,/, & 43X, ' & 7X, ' AND YOUR LAST CDATE IS: •18,/, & 43X, ' & 7X, ' IF YOUR'FIRST PDATE IS CORRECT, ,/, & 7X. ' THEN YOUR LAST CDATE SHOULD BE: ,18 /, & 43X, ' & 7X, ' SETTBUR USER GUIDE FOR HELP. ',/) 211 334 FORMAT( /, /,7X, ' IFLAG',16,1 NFLAG',16/, /, /) RETURN END SUBROUTINE RTPST(I,DRGCON,WATSOL,DRGMSS,RINCON) COMMON /PSTl/C0NSP(7),S0LPST(10,7),DRGPST(10),APRPST(10), 1 PREPST(10,7),DRCON(10) COMMON /NUTPST/BD(7),FCC(7),C0NV(7),BWC(7),S0LP0R(7),BR15(7), & OSW(7),SAT(7),B0TD(7),DLAY(7),0M(7),KD{10,7),NB0T(7),THICK(7), & S0ILMS(7),SWC(7),WTLAY COMMON /PRCP/ S0L0SS,ENRICH,DP,DRNG9 1 AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), 1 F(7),SWUP(7) COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,EI COMMON /PINF/RINF(7),U(7) REAL KD INTEGER SDATE.DP IWT=INT(WTLAY) DO 30 K=2,IWT WATV0L=(QSW(K)+RINF(K))*100.0 PMASSS=SOLPST(I,K)*SOILMS(K) PMASSD=RINC0N*RINF(K)*100.0 PMASS=PMASSS+PMASSD PMASS IS IN GRAMS IF(RINF(K+1) .LE. 0.0) GO TO 20 CWARG = KD(I,K) * SOILMS(K) + WATVOL IF (CWARG .LE. O.O)STOP 10000 CW=PMASS/CWARG IF(CW .GT. WATSOL) CW=WATSOL RINCON=CW PMASSD=CW*RINF(K+l)*100.0 IF(PMASSD .LE. PMASS) GO TO 10 RINCON=PMASS/(RINF(K+1)*1OO.O) S0LPST(I,K)=0.0 GO TO 30 10 PMASS =PMASS-PMASSD SOLPST(I,K)=PMASS/SOILMS(K) GO TO 30 20 CONTINUE SOLPST(I,K)=PMASS/SOILMS(K) DRCON(I)=0.0 RINC0N=0.0 DRGMSS=0.0 DRGPST(I)=0.0 RETURN 30 CONTINUE IF(DRNG .LE. 0.0) THEN DRGPST(I)=0.0 DRC0N(I)=0.0 DRGMSS=0.0 DRGCON=0.0 RETURN ENDIF 40 DRGPST(I) =RINC0N*DRNG*100.0 212 DRGMSS=DRGPST(I) DRCON(I)=RINCON RETURN END SUBROUTINE PSTRES (I,NDATE,H20C0N,SEDC0N,H20MSS,SEDMSS, 1 DRGCON,DRGMSS,SDATE,LUN1O,NBOT,NFLAG) COMMON /PST1/CONSP(7),SOLPST(1O,7),DRGPST(1O),APRPST(1O), 1 PSEPST(10,7),DRCON(10) INTEGER SDATE,HEADER,NB0T(7) NOT = 0 HEADER = 0 IF (I .EQ. 1) HEADER = 1 IF(NDATE.LT.IOOO) RETURN IF(SDATE.LT.NDATE) RETURN DO 20 K = 1, 7 IF (PREPST (I,K) .GT. 0.0) THEN NOT = 1 ENDIF 20 CONTINUE IF (NOT .EQ. 0) RETURN IF (HEADER .EQ. 1) THEN WRITE (LUN10.3000) NB0T(2) ,NB0T(2),NB0T(3),NB0T(3),NB0T(4), & NB0T(4),NB0T(5),NB0T(5),NB0T(6),NB0T(6),NB0T(7) HEADER =0 ENDIF WRITE (LUN10.3001) (PREPST(I,K),K=1,7) WRITE (LUN10.3002) I,H20C0N,H20MSS,SEDC0N,SEDMSS,DRGC0N,DRGMSS WRITE (LUN10.3003) (S0LPST(I,K),K=l,7) RETURN 3000 FORMAT(1H /49X.14H STORM SUMMARY / 1 1H /6H PEST.,4X,7H RUN0FF,8X,9H SEDIMENT.6X, 1 12HDRAINAGE .16X.29H PESTICIDE CONCENTRATION IN 7, 1 35H SOIL LAYERS BEFORE AND AFTER STORM ,/ 1 6H NO. ,3(16H CONC MASS ),14X, 9H LAYER 1 , 1 44H LAYER 2 LAYER 3 LAYER 4 LAYER 5 LAYER 6> 1 9H LAYER 7/5X.16H MG/L G/HA ,16H UG/G G/HA , 1 16H MG/L G/HA ,3X,11H DEPTH, CM , 1 14H 0 - 1 1 -,I3,5(I5,1H-,I3)/6H ,6(8H ), 1 15X,6(5H ) ,5HUG/G-,6(4H ) ,2H~) 3001 FORMAT(1H /60X.9H BEFORE ,3F8.4,4F9.4) 3002 F0RMAT(I4,2Xs5F8.4,F9.4) 3003 F0RMAT(60X,9H AFTER ,3F8.4,4F9.4) END SUBROUTINE PST208(I,PST0UT,APDATE,APRATE,H20SOL, 1 DECAY,HAFLIF,FOLRES,METH, 1 NFLG,FOLFRC,SOLFRC,WSHFRC,THRWSH,THRDWN, 1 FOLRSV,DEPINC,NEWPST,LDATE,CF,PBDATE,PEDATE, 1 NDATE,NFLAG,PDATE,CEDATE,BETA) COMMON /NUTPST/BD(7),FCC(7),C0NV(7),BWC(7),S0LP0R(7),BR15(7), & 0SW(7),SAT(7),B0TD(7),DLAY(7),0M(7),KD(10,7),NB0T(7),THICK1(7), & S0ILMS(7),SWC(7),WTLAY COMMON /PASS/ SDATE,RNFALL,RUNOFF,EXRAIN,El COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, 213 1 AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), 1 F(7),SWUP(7) COMMON /PSTl/C0NSP(7),S0LPST(10,7),DRSPST(10),APRPST(10), 1 PREPST(10,7),DRC0N(10) COMMON /PEST/ H2OLOS(1O),SEDLOS(1O),DRGLOS(1O) COMMON /PPST/ ACCLOS(IO) COMMON /PASSi/PAS(60),IFAP(10) COMMON /PINF/RINF(7),U(7) COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUN11,LUN12 REAL KD FRACT(7) PERC INTEGER'APDATESSDATE,PSTOUT,PBDATE,PEDATE,PDATE,CEDATE AVSTO=SAT(1)-OSW(1) IF(SDATE.GE.APDATE) GO TO 10 IF(PSTOUT .GT. 1) CALL PSTRES(I,NDATE,H20C0N,SEDC0N,H20MSS, 1 SEDMSS,DRGC0N,DRGMSS,SDATE,LUN10,NB0T,NFLAG) RETURN 10 CONTINUE IF(NEWPST.EQ.O) GO TO 20 FOLRES =FOLRES+FOLRSV FOLRES =F0LRES+APRATE*F0LFRC*10.0 SOLAPP =APRATE * SOLFRC c CCCC METH: 0 = SURFACE APPLICATION CCCC 1 = INCORPORATED CCCC 2 = INJECTED c IF (METH .EQ. 0) THEN SOLPST(I.l) = SOLPST(I.l) + SOLAPP * CONV(l) C METH=1 IS INCORPORATED ELSEIF (METH .EQ. 1) THEN FRACT(l) = 1.0 / DEPINC DO 12 K = 2, 7 IF (DEPINC .GT. BOTD(K)) THEN FRACT(K) = DLAY(K) / DEPINC ELSE FRACT(K) = (DEPINC - BOTD(K-l)) / DEPINC NO = K GO TO 14 ENDIF 12 CONTINUE 14 DO 15 N = 1, NO SOLPST(I,N) = SOLPST(I.N) + SOLAPP * CONV(N) * FRACT(N) 15 CONTINUE C METH=2 IS INJECTED ELSEIF (METH .EQ. 2) THEN DO 16 K = 1, 7 IF (DEPINC .LE. BOTD(K)) THEN NO = K GO TO 17 ENDIF 16 CONTINUE 214 17 SOLPST(I.NO) = SOLPST(I.NO) + SOLAPP * CONV(NO) ENDIF LDATE =APDATE NDATE -APDATE IFAP(I) =1 NEWPST =0 GO TO 21 20 CONTINUE IF (NFLG .EQ. 1) NDATE = LDATE 21 CONTINUE IYS =INT(SDATE/1000.) IYL =INT(LDATE/1000.) IDAYS =SDATE-(IYS*1000) IDAYL =LDATE-(IY;.*1000) DPAST =FL0AT(IYS-IYL)*365.+FL0AT(IDAYS-IDAYL) LDATE =SDATE IF(FOLFRC.GT.O.O) GO TO 30 FOLRES =0.0 WSHOFF =0.0 GO TO 60 30 CONTINUE IF(DPAST .LE. 0.0 .OR. HAFLIF .LE. 0.0) GO TO 40 FOLRES =F0LRES*EXP(-0.693/(HAFLIF*DPAST)) 40 CONTINUE IF(RNFALL.LT.THRWSH) GO TO 50 WSHOFF -F0LRES*WSHFRC/1.5 FOLRES =0.0 GO TO 60 50 CONTINUE WSHOFF =0.0 60 CONTINUE DEGRAD «DECAY*DPAST EXPDEG ' EXP(-DEGRAD) SOLPST(I,1)=SOLPST(I,1)*EXPDEG+WSHOFF PREPST(I,1)=SOLPST(I,1)-WSHOFF IF(PREPST(I,1) .LE. 0.0001) PREPST(I,l)=0.0 IF(SOLPST(I,1) .LE. 0.0001) SOLPST(I J)=0.0 C * * NEW PROCEDURE TO MOVE PSTS UP WITH EVAP NCODE = 0 zi i ii III nun Him iiiiiiin 11 III ii nit i III i nun ii 11 ii III urn nun C IF SOLPST .GT. 10 PPB, EVAP IT AND UPTAKE IT FOR EACH LAYER, SET/ C THE CODE TO CALL PSTET FIRST. / Ctltltlttllllltltlltlttllltllltltltllllltltltlllllltltttttllttlllltlllt DO 6010 K = 1,7 IF (SOLPST(I.K) .GT. 0.01) NCODE = 1 6010 CONTINUE IF (NCODE .EQ. 1) CALL PSTET(I,SDATE,LUN10) DO 65 K=2,7 IF(SOLPST(I,K) .LE. 0.001) THEN SOLPST(I.K) =0.0 ELSE SOLPST(I.K) =SOLPST(I,K)*EXPDEG ENDIF 215 PREPSTfI,K)=SOLPST(I,K) 65 CONTINUE PERC=CF-F(1)-U(1) IWT=INT(WTLAY) DO 70 J=2,IWT RINF(J)=F(J)-U(J) 70 CONTINUE IF (RNFALL .LE. 0.0 ) RETURN IF(RUNOFF .LE. 0.0 .AND. PERC .LE. 0.0) GO TO 130 ABST =0.2*AVST0 IF(RUNOFF .LE. 0.0) ABST=0.0 CHECK=(CF-ABST)/((KD(I,1)*BD(1))+AVSTO) AVACON =SOLPST(I,1)*EXP(-CHECK) AVAMSS =SOLPST(I,1)*CONSP(1) IF(AVACON .GT. SOLPST(I.l)) AVACON=SOLPST(I,1) SOLPST(I,1)=AVACON C IF(RUNOFF.LE.O.O .AND. PERC .LE. 0.0) GO TO 130 H20C0N =AVACON*BETA/(1.+BETA*KD(1,1)) IF(PERC .GT. 0.0) GO TO 85 DRGCON =0.0 85 IF(H20C0N.LT.H20S0L) GO TO 90 H20C0N =H20S0L SOLCON =AVACON IF(PERC .LE. 0.0) GO TO 90 RINCON =H20S0L GO TO 100 90 CONTINUE SOLCON =KD(I,l)*H20C0N 100 CONTINUE IF(PERC .LE. 0.0) THEN RINCON =0.0 RINMSS =0.0 DRCON(I) =0.0 DRGCON =0.0 ELSE RINMSS =AVAMSS-(AVACON * SOILMS(l)) RINCON =RINMSS/(PERC*100.0) TMASS =AVAMSS-RINMSS-H20MSS-SEDMSS ENDIF IF ( RUNOFF .LE. 0.0) THEN H20MSS =0.0 5EDMSS =0.0 H20CON =0.0 SEDCON =0.0 ELSE H20MSS =H20CON*RUNOFF*100.0 SEDCON =SOLCON*ENRICH SEDMSS =SEDCON*SOLOSS/1000.0 ENDIF* TEST=TMASS/SOILMS(1) IF(TEST .LE. PREPST(I,1)) SOLPST(I.l) = TEST TOTMAS =H20MSS+SEDMSS+RINMSS IF(TOTMAS.LT.AVAMSS) GO TO 120 216 IF(TOTMAS.EQ.O.O) GO TO 110 IF(PERC(1).EQ. 0.0) GO TO 110 H20MSS =H20MSS*AVAMSS/T0TMAS SEDMSS =SEDMSS*AVAMSS/TOTMAS RINMSS =RINMSS*AVAMSS/TOTMAS RINCON =RINMSS/(PERC*100.0) TOTMAS =AVAMSS SOLPST(I,l)=0.0 GO TO 140i 110 CONTINUE H20C0N =0.0 H20MSS =0.0 SEDCON =0.0 SEDMSS =0.0 DRGCON =0.0 RINCON =0.0 RINMSS =0.0 TOTMAS =0.0 SOLPST(I,l)=0.0 GO TO 140 120 CONTINUE SOLPST(I,1)«(AVAMSS-TOTMAS)/CONSP(1) IF(SOLPST(I,1) .LE. 0.0) S0LPST(I,l)»0.0 GO TO 140 130 CONTINUE H20C0N =0.0 H20MSS =0.0 SEDCON =0.0 SEDMSS =0.0 DRGCON =0.0 RINCON •=0.0 RINMSS =0.0 TOTMAS =0.0 DRCON(I) =0.0 IF(PSTOUT-l) 141,141,142 140 CONTINUE ACAl IF(PERC .GT. 0.0) CALL RTPST(I,DRGCON,WATSOL,DRGMSS,RINCON) IF (DRNG .LE. 0.0 ) THEN DRGCON =0.0 ELSE DRGCON = RINMSS / (100.0 * DRNG) ENDIF TOTMAS -H20MSS+SEDMSS+DRGMSS H20L0S(I)=H20L0S(I)+H20MSS SEDLOS(I)=SEDLOS(I)+SEDMSS DRGLOS(I)=DRGLOS(I)+DRGMSS IF(PSTOUT .LE. 1) GO TO 141 IF(RUNOFF .GT. 0.0) GO TO 142 H20C0N =0.0 SEDCON =0.0 H20MSS =0.0 217 SEDMSS =0.0 142 IF(SDATE.LT.PBDATE.OR.SDATE.GT.PEDATE) NFLAG = 0 CALL PSTRES (I,NDATE,H20C0N,SEDC0N,H20MSS,SEDMSS, 1 DRGC0N,DRGMSS,SDATE,LUN10,NB0T,NFLAG) 141 CONTINUE Kl = 2*1-1 K1P1 = Kl+1 K2 = Kl + 20 K2P1 = K2 + 1 K3 =K2+20 K3P1 =K3+1 IF(RUNOFF.LE.O.) THEN PAS(Kl) = 0. PAS(KIPI) *= 0. PAS(K2) = 0. PAS(K2P1) = 0. END IF IF (DRNG .LE. 0.0) THEN PAS(K3) = 0. PAS(K3P1) = 0. ELSE PAS(Kl) = H20MSS PAS(KIPI) = H20C0N PAS(K2) = SEDMSS PAS(K2P1) = SEDCON PAS(K3) = DRGMSS PAS(K3P1) = DRGCON ENDIF 160 ACCLOS(I)=ACCLOS(I)+TOTMAS/1000.0 FOLRSV =FOLRES RETURN END SUBROUTINE PSTCAL COMMON /ERYPST/PSTPAS,PSTOUT,NBDATE,PBDATE,PEDATE,NPEST, & APRATE(10),H20S0L(10),DECAY(10),K0C(10), & F0LFRC(10),S0LFRC(10),F0LRES(10),S0LRES(10,7), & WSHFRC(IO),THRWSH(10),T0TPST(10),FOLRSV(IO), & DEPINC(10),BETA(10) COMMON /PASS/ SDATE.RNFALL,RUNOFF,EXRAIN,El COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, & AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,SW(7), & F(7),SWUP(7) COMMON /PPST/ ACCLOS(IO) COMMON /NUTPST/BD(7),FCC(7),C0NV(7),BWC(7),S0LP0R(7),BR15(7), & 0SW(7),SAT(7),B0TD(7),DLAY(7),0M(7),KD(10,7),NB0T(7),DEPTH(7), & S0ILMS(7),SWC(7),WTLAY COMMON /PSTVAR/ APDATE.HAFLIF.PSTNAM COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 COMMON / FLAG / FLGRES(10),NFLG COMMON /DATES/ LDATE(IO) COMMON /RESDUE/RES1,RES2,RES3,RES4,RES5,RES6,RES7 COMMON /PSTTOT/ NSTRMS,NRNFFS,NDRNGS,TPRECP,TRUNFF,TDRNGL, 218 & NSEDS.TSEDS REAL HAFLIF(10),RES:(10),RES2(10),RES3(10),RES4(10), & RES5(10),RES6(10),RES7(10) REAL KD.KOC INTEGER NEWPST(1O),APDATE(1O), & FLAGSK,PSTOUT,PBDATE,PEDATE,PDATE,CEDATE,SDATE, & DP.WCHMON.PSTPAS,METH(10),FLGRES CHARACTER *16 PSTNAM (10) NFLAG = 1 IF (SDATE.GE.85000) THEN ENDIF CALL STRMIN (OSW) C ALL WATER DATA ARE IN CM AND SOIL LOSS IS IN KG/HA IF (SDATE .EQ. 0) GO TO 14 IF (SDATE .GT. NBDATE) GO TO 10 LMONTH = WCHMON(SDATE) LYEAR = SDATE/1000 LSTORM = SDATE 10 CONTINUE NMONTH =WCHMON(SDATE) NYEAR =SDATE/1000 C * * PRINT MONTHLY SUMMARY C IF(LMONTH .EQ. NMONTH .AND. LYEAR UEQ. NYEAR) GO TO 130 IF(LMONTH .EQ. NMONTH) GO TO 15 IF(PSTOUT.LE.O) GO TO 15 14 CONTINUE IF (PSTOUT.LE.O) G0T015 CALL MONPCP(LMONTH,LSTORM) CALL MONPST(ACCLOS,TOTPST,APDATE,PSTNAM,NPEST,LSTORM) 15 CONTINUE LMONTH =NMONTH C * * PRINT ANNUAL SUMMARY IF (SDATE .LE. 0) GO TO 16 IF(LYEAR.EQ.NYEAR) GO TO 17 16 CALL ANNPCP(LSTORM) CALL ANNPST(ACCLOS,TOTPST,APDATE,PSTNAM,NPEST.LSTORM) LYEAR = NYEAR 17 CONTINUE IF(SDATE.LE.O) GO TO 130 20 CONTINUE IF(CEDATE.GE.SDATE) GO TO 60 CALL DATEIN(PDATE,CEDATE,IPST) CALL UPPEST(IPST,APDATE,APRATE,DEPINC, 1 FOLFRC,SOLFRC,THRWSH,METH, 1 TOTPST.NEWPST.NPEST.PDATE) 60 CONTINUE IF(RNFALL .LE. 0.0) GO TO 62 CALL STMSUM(PSTOUT) IF(SDATE.LT.PBDATE.OR.SDATE.GT.PEDATE) NFLAG = 0 IF(RNFALL .GT. 0.0) GO TO 65 62 NORAIN = NORAIN + 1 C GO TO 90 65 CONTINUE 219 CF = RNFALL - RUNOFF THRDWN -FCC(1)-OSW(1) C THIS POINT OCCURS EVERY DAY DO 70 I-l.NPEST IF(APDATE(I) .LE. 0 .AND. FLGRES(I) .EQ. 0) GO TO 70 CALL PST208(I,PST0UT,APDATE(I),APRATE(l),H20S0L(I), 1 DECAY(I),HAFLIF(I),FOLRES(I),METH(I), 1 NFLG, FOLFRC(I),SOLFRC(I),WSHFRC(I), 1 THRWSH(I),THRDWN,FOLRSV(I),DEPINC(I), 1 NEWPST(I),LDATE(I),CF,PBDATE,PEDATE, 1 NDATE,NFLAG,PDATE.CEDATE,BETA(I)) 70 CONTINUE NFLG = 0 NORAIN = 0 IF(PSTPAS.GE.l .AND. RNFALL .GT. 0.0) CALL PESTPS( NPEST.PSTPAS, & PBDATE.PEDATE) 80 CONTINUE LSTORM =SDATE 90 CONTINUE 100 CONTINUE C * * I CHANGED THE GO TO 20 TO GO TO 140 IF(SDATE.GT.O) GO TO 140 130 CONTINUE CALL PCPEND CALL PSTEND(ACCLOS,TOTPST,PSTNAM,NPEST) 140 RETURN END Q*****************************«r*********************************** C SUBROUTINE USED TO OPEN ALL PC TYPE FILES C******************************************************************** SUBROUTINE FILES CHARACTER*14 PREFIL,HYDIN,EROIN,PSTIN,OUTHYD,OUTERO,OUTPST, & PSTCON.PSTMAS COMMON /FILE/ PREFIL,HYDIN,EROIN,PSTIN,OUTHYD,OUTERO,OUTPST. & PSTCON.PSTMAS COMMON /UNDEF/LUN01,LUN02,LUN03,LUN04,LUN05,LUN06,LUN07, & LUN08,LUN09,LUN10,LUNll,LUN12 INTEGER HBDATE,HYDOUT,IROPT,FLGNUT,FLGPST,PSTPAS WRITE (MOO) 100 FORMAT (' INSERT INPUT/OUTPUT DATA DISK INTO DEFAULT DRIVE :7) WRITE (*,2O2) 102 FORMAT (/1X,'INPUT PRECIPITATION FILENAME §D:FN.FT1[ :') READ (*,104) PREFIL OPEN (LUN01,FILE=PREFIL,STATUS='OLD',ACCESS='SEQUENTIAL') 104 FORMAT (A14) WRITE (*,106) 106 FORMAT (/1X,'HYDROLOGY INPUT PARAMETER FILENAME §D:FN.FTtf :') READ (*,104) HYDIN OPEN (LUN02,FILE=HYDIN,STATUS='0LD',ACCESS=ISEQUENTIAL1) C * * READ CARD FOUR IN HYDROLOGY FOR PESTICIDES READ (LUN02,2005)HBDATE,HYD0UT,IR0PT,FLGNUT,FLGPST 220 WRITE (*,108) 108 FORMAT (/1X,'EROSION INPUT PARAMETER FILENAME §D:FN.FT1 :') READ (*,104) EROIN OPEN (LUN03,FILE=ER0IN,STATUS='OLD',ACCESS='SEQUENTIAL') WRITE (*,110) 110 FORMAT (/1X,1PESTICIDE INPUT PARAMETER FILENAME §D:FN.FTfl :') READ (*,104) PSTIN OPEN (LUN05,FILE=PSTIN,STATUS='0LD',ACCESS='SEQUENTIAL') WRITE (*,112) 112 FORMAT (/1X,1HYDROLOGY OUTPUT REPORT FILENAME §D:FN.FTH :') READ (*,104) OUTHYD 0PEN(LUN07,FILE=0UTHYD,STATUS='UNKNOWN') WRITE (*,114) 114 FORMAT (/1X,'EROSION OUTPUT REPORT FILENAME §D:FN.FTH :') READ (*,104) OUTERO OPEN(LUN08,FILE=OUTERO,STATUS*'UNKNOWN') C * * CHECK FLGPST; IF = 1; THEN OPEN FILES FOR PESTICIDES IF (FLGPST .EQ. 1) THEN WRITE (*,116) 116 FORMAT (/1X,1PESTICIDE OUTPUT REPORT FILENAME §D:FN.FTK :') READ (*,104) OUTPST OPEN (LUN10,FILE=0UTPST,STATUS*'UNKNOWN') OPEN (LUN06.FILE*1DUMMY1,STATUS='UNKNOWN') C * * READ CARD 4 IN PESTICIDE TO OPEN UP A PASS FILE READ (LUN05.2010) PSTPAS IF (PSTPAS .EQ. 3) PSTPAS = 1 IF (PSTPAS .EQ. 1) THEN WRITE (*,118) 118 FORMAT (/1X,1PESTICIDE MASS REPORT FILENAME §D:.FN.FTH :') READ (*,104) PSTCON OPEN (LUN11,FILE=PSTCON,STATUS='UNKNOWN') ELSE IF (PSTPAS .EQ. 2) THEN WRITE (*,120) 120 FORMAT (/1X,'PESTICIDE CONCNT REPORT FILENAME §D:.FN.FTH :') READ (*,104) PSTMAS OPEN (LUri12,FILE=PSTMAS,STATUS='UNKN0WNl) END IF ENDIF 300 CONTINUE REWIND LUN02 REWIND LU.N05 2000 FORMAT (A80) 2005 FORMAT (///,6I8) 2010 FORMAT (///,16X,I8) RETURN END SUBROUTINE PSTET (I.SDATE.LUN10) C//////////////////////////////////////////////////////////////////// C THRESHOLD CONCENTRATION FOR EVAPORATION AND TRANPIRATION IS / C TEN (10) PPB. (PARTS/BILLION) AS PER RAL / C//////////////7///////////////////////////////////////////////////// COMMON /PRCP/ SOLOSS,ENRICH,DP,DRNG, & AVGTMP,AVGSWC,ACCPEV,P0TPEV,ACCSEV,P0TSEV,TST(7), 221 & SWPER(7),UP(7) COMMON /PST1/CONSP(7),SOLPST(1O,7).DRNPST(IO),APRPST(1O), & PREPST(10,7),PEC0N(10) COMMON /NUTPST/BD(7),FCC(7),C0NV(7),IWCC(7),P0RIN(7),BRR15(7)J & 0TST(7),SAT(7),B0TD(7),DLAY(7),0M(7),KD(10,7),NB0T(7),THICK(7), & S0ILMS(7),SWC(7),WTLAY REAL WUP(7),EVP(7),PSTMAS(7),CPSTW(7),SWC2(7),KD,SUMTRN(10) INTEGER SDATE DATA SUMTRN /1O * 0.0/ ADDTRN =0.0 SUMWAT=0.0 C * * CALCULATE THE SUM OF THE WATER IN THE LAYER DO 5 K=l,7 SUMWAT=SUMWAT+UP(K) 5 CONTINUE C * * ADD ACTUAL PLANT EVAP AND ACTUAL SOIL EVAP: CALL IT ET ET=ACCP£V+ACCSEV KODTRN = 1 IF (ACCPEV .LE. CO) KODTRN = 0 IF(SUMWAT .EQ. ET .OR. SUMWAT .LE. 0.0) GO TO 7 RWAT=ET/SUMWAT DO 6 K-1,7 UP(K)=UP(!C)*RWAT 6 CONTINUE 7 CONTINUE EVREM=ACCSEV DO 30 K-1,7 IF (UP(K) .LE. 0.0) THEN EVP(K) = 0.0 WUP(K) = 0.0 ELSEIF (EVREM .LE. 0.0) THEN WUP(K) = 0.0 ELSEIF (UP(K) .GT. EVREM) THEN WUP(K)=UP(K)-EyREM EVP(K) = EVREM EVREM = 0.0 ENDIF 30 CONTINUE KODEVP=0 DO 31 K-1,7 SWC2(K) *TST(K)+UP(K) PSTMAS(K)=SOLPST(I,K)*SOILMS(K) CPSTW(K)-PSTMAS(K)/((KD(I,K)*S0ILMS(K))+(SWC2(K)*100.)) IF(CPSTW(K) .GT. 0.01) KODEVP=1 31 CONTINUE IF(KODEVP .EQ. 0) RETURN DO 60 K=2,7 M=K-1 EVPPST=0.0 IF(EVP(K) .LE. 0.0) GO TO 60 IF(CPSTW(K) .LE. 0.01) GO TO 60 EVPPST=EVP(K)*CPSTW(K)*100.0 PSTMAS(K)=PSTMAS(K)-EVPPST 222 PS7MAS(M)=PSTMAS(M)+iIVPPST SOLPST(I,K)=PSTMAS(K)/SOILMS(K) IF(SOLPST(I,K) .LE. 0.0) S0LPST(I,K)=0.0 S0LPST(I,M)-P3TMAS(M)/S0ILHS(M) IF(S0LPST(I,M) .LE. 0.0) SOLPST(I,M)-0.0 60 CONTINUE IF (ACCPEV .LE. 0.0 ) RETURN IF (KODEVP .EQ. 0 )RETURN KODEVP = 0 DO 70 K - 1, 7 PSTMAS (K) = SOLPST(I,K) * SOILMS(K) IF (CPSTW(K) .GT. 0.01) KODEVP - 1 70 CONTINUE IF (KODEVP .EQ. 0 .OR. KODTRN .EQ. 0) RETURN DO 80 K = 1,7 TRNPST =0.0 IF (WUP(K) .EQ. 0.0) GO TO 80 IF (CPSTW(K) .LE. 0.01) GO TO 80 TRNPST = WUP(K) * CPSTW(K) * 100.0 ADDTRN = ADDTRN + TRNPST PSTMAS(K) = PSTMAS(K) - TRNPST IF (PSTMAS(K) .LE. 0.0) PSTMAS(K) = 0.0 SOLPST(I.K) = PSTMAS(K) / SOILMS(K) 80 CONTINUE RETURN END APPENDIX D INPUT AND OUTPUT FILES

223 PRECIPITATION INPUT FILE

62-NC0KI0- • • • • 0.25 0.,10 • m • 1 62-NC0HI0- • • 0.05 0.80 • i • • 0.10 2 62-NC0HI0- • 0.03 • • • 0.75 • • 0.20 • 3 62-NC0HI0- • 0.20 • 0.15 • • • • • • 4 62-NC0HI0- • 0.20 • • • • • • • 0.30 5 62-NC0HI0- • • 0.24 • 0.25 • • 0.10 • 6 62-NCOHIO- • • • 0.40 • • • • • 7 62-NCOHIO- • 0.40 • • • • • 0.27 • 0.39 8 62-NCOHIO- • • • • • a • • 0.12 9 62-NC0HI0- 0.11 • • • 0.08 • • • 0.09 • 10 62-NC0HI0- • • 0.13 • • • a 0.15 0.06 0.10 11 62-NC0HI0- • 0.26 0.15 • m • a • • 0.40 12 62-NCOHIO- • 0.26 • m 0.69 • 0.20 • • 13 62-NC0HI0- • 0.05 • • • • • • 0.11 • 14 62-NC0HI0- • • 0.32 • • 0.36 0. 28 0.14 • 0.22 15 62-NC0HI0- • • • • 0.20 0.10 0. 10 • • • 16 62-NC0HI0- 0.51 0.70 1.02 2.23 • • • • • • 17 62-NCOHIO- • • 0 0.30 • * • 1.55 1.30 18 62-NC0HI0- 0.15 0.20 0.20 1.20 • • • • 0.22 • 19 62-NCOHIO- • • • * 0.22 • • • • • 20 62-NC0HI0- 1.44 0.70 • 0.10 • 0.12 • • • 21 62-NCOHIO- • • 0.02 • • 0.02 0.75 • 0.20 22 62-NCOHIO- • • • • • 0.03 • • • » 23 62-NC0HI0- • • • • • 0. 35 0.10 « • 24 62-NC0HI0- • • • 0.85 • * • • 0.70 • 25 62-NCOHIO- • • 0.22 • 0.20 1.35 0. 30 • * • 26 62-NC0HI0- • • • • • • • 0.10 0.30 0.70 27 62-NCOHIO- • • • • 0.12 0.45 • • • 1.25 28 62-NCOHIO- 0.10 • • • • • 0. 25 • • • 29 62-NCOHIO- • • 0.23 • • • • 0.16 • • 30 62-NCOHIO- • • • • • • • 0.23 0.15 • 31 62-NC0HI0- 0.11 • • 2.10 • • • • • 0.23 32 62-NC0HI0- 0.26 0.01 • • 0.03 • • • • • 33 62-NCOHIO- • • • • • • • • 0.13 0.71 34 62-NCOHIO- 0.75 • • 0.30 0.11 • 0. 04 • • • 35 62-NCOHIO- • • « • • 0.46 • • 0.01 36 62-NCOHIO- • • 0.10 • • • • • • 37

224 225

HYDROLOGY INPUT FILE

ADAPT HYDROLOGY PARAMETER FILE; NORTH CENTRAL OHIO CORN ON NO-TILL PLOTS;TOLEDO SII1Y CLAY; EXCESS IRRIGAT; IRRIGATION ADDED IN RAINFALL FILE 62000 0 0 C 0 0 0.55 0.180 0.00 3.50 75.0 0.002 2.27 36.0 1.0 4 8.0 20.0 40.0 65.0 0.53 0.53 0.48 0.48 0.53 0.53 0.48 0.48 0,03 0.03 0.03 0.03 0.50 0.50 0.40 0.30 11.0 11.0 11.0 11.0 0.54 0.38 0.04 0.03 . 0.54 0.38 0.04 0.03 65.0 65.0 2*.5 480.0 35.5 0.40 7.09 0.40 24.6 27.2 35.4 50.7 66.5 70.9 71.9 72.0 63.4 55.7 38.6 25.6 125. 183. 303. 286. 502. 562. 562. 494. 278. 289. 141. 115. 0.7 1 0.0 130 0.0 150 0.15 175 0.25 200 2.50 212 2.80 225 2.40 250 0.40 255 0.00 366 0.00 1 0 0 -1 0 0 226 EROSION INPUT FILE SAMPLE GLEAMS EROSION PARAMETER FILE SIMPLE OVERLAND FLOW, GOPHER RIDGE USING EROSION DATA FROM BH OF PREVIOUS RUNS OF CREAMS 83 85 0 0 1 0 0 1.67E-05 85.0 0.04 0.08 0.88 0.007 800.0 4.0 0.05 1000.0 10.0 660.0 0.004 0.004 O."O4 0.004 660.0 0.0 660.0 1 1.0 0.35 i 001 068 075 136 15C 220 250 300 1 1.0 0.55 0.70 0.70 0.55 0.30 0.20 0.35 0.50 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.015 0.020 0.010 0.010 0.020 0.030 0.025 0.015

PESTICIDE INPUT FILC

SAMPLE GLEAMS PESTICIDE PARAMETER FILE EXCESS IRRIGATION;! YEAR ROTATION BONIFAY :SAND AS PERRAL; 83000 0 1 1 4 83077 {35365 1 ALDICARB 6000,0 0.0 14.0 20 0.0 0 0.0 2 FENAMIPHOS 400.0 0.0 14.0 300. 0 0.0 0 0.0 3 BUTYLATE 45.0 0.0 3.0 300. 0 0.0 0 0.

4 ATRAZINE 33.0 0.0 8.0 130• . 0.0 0 0.0 1078 2077 4 1 6.60 15.0 0,0 1.0 0.1 1 2 6.60 15.0 0.0 1.0 0.1 1 3 4.40 15.0 0.0 1.0 0.1 1 4 1.S5 15.0 0.0 1.0 0.1 1 0 227 ADAPT HYDROLOGY OUTPUT

ADAPT HYDROLOGY PARAMETER FILE; NORTH CENTRAL OHIO CORN ON NO-TILL PLOTS;TOLEDO SILTY CLAY; EXCESS IRRIGAT; IRRIGATION ADDED IN RAINFALL FILE ****DRAINAGE DESIGN PARAMETERS (IN)**** ACTUAL DEPTH TO IMPERMEABLE LAYER = 65.00 EQUIV. DEPTH TO IMPERMEABLE LAYER = 65.00 EQUIV. DEPTH FROM DRAIN TO IMPERM. LAYER = 29.50 DRAIN SPACING = 480.00 DEPTH TO DRAINS = 35.50 DRAINAGE COEFFICIENT = .40 •G1 FACTOR FOR KIRKHAM'S DRAINAGE = 7.09 SURFACE STORAGE = .40 MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 24.66 27.68 36.74 49.40 62.28 71.93 75.75 72.74 63.68 51.01 38.13 34.49 MONTHLY MEAN RADIATION, LANGLEYS PER DAY 109.76 171.20 272.51 386.55 482.75 535.35 530.24 468.80 367.49 253.45 157.25 104.65 NO. DAYS OF FROZEN SOIL DURING SNOWMELT: 17 LEAF AREA INDEX TABLE IRFLG DATE LAI 0 1 .00 0 130 .00 0 150 .15 0 175 .25 0 200 2.50 0 212 2.80 0 225 2.40 0 250 .40 0 255 .00 0 366 .00 WINTER C FACTOR « .70 LAI-DAYS = 142.48 FIELD AREA = .550 ACRES ROOTING DEPTH = 36.000 IN SATURATED CONDUCTIVITY = .180 IN/HR AVG. WATER CONTENT = .496 AVG. FIELD CAPACITY = .446 IN/IN EVAPORATION COEFFICIENT - 3.500 228 AVERAGE POROSITY .496 CC/CC SCS CURVE NUMBER = 75.000 CHANNEL SLOPE .002 WATERSHED LEN/WIDTH RATIO 2.270 PEAK FLOW RATE COEFFICIENT 1.783 PEAK FLOW RATE EXPONENT .816 UPPER LIMIT OF STORAGE = 30.273 IN AVG. 15-BAR WATER CONTENT .030 IN/IN INITIAL SOIL WATER STORAGE = 30.273 IN FRAC. P.A.W. TO BEGIN IRR. .000 FRAC. P.A.W. TO END IRR. .000 UPPER LIMIT OF STORAGES .197 2.804 3.001 3.001 2.820 2.701 2.701 13.050 INITIAL STORAGE .197 2.804 3.001 3.001 2.820 2.701 2.701 13.050

INITIAL WATER CONTENT BY LAYER (IN/IN)1 .530 .530 .530 .530 .500 .480 480 .480 POROSITY BY LAYER (CC/CC) .530 .530 .530 .530 .500 .480 480 .480 FIELD CAPACITY BY LAYER (IN) .188 2.675 2.863 2.863 2.700 2.593 2.593 12.528 15-BAR WATER CONTENT BY LAYER (IN/IN) .030 .030 .030 .030 .030 .030 030 .030 WATER CONTENT AT WILT. PT. BY LAYER (IN) .012 .168 .180 .180 .180 .180 180 .870 HYDRAULIC CONDUCTIVITY BY LAYER (IN/HR) .540 .540 .444 .380 .176 .040 .040 .030

ANNUAL TOTALS FOR 1962 PRECIPITATION 34.452 PREDICTED RUNOFF = 8.667 DRAINAGE VOLUME = 4.884 TOTAL ET 26.558 BEGIN SOIL WATER = 30.273 FINAL SOIL WATER = 24.611 IRRIGATION APPLIED* .000 BALANCE .006

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 23.06 24.70 32.96 45.63 59.30 70.33 75.74 74.10 65.84 53.17 39.50 28.47 229 ANNUAL TOTALS FOR 1963 PRECIPIT/TION 24.357 PREDICTED RUNOFF = 7.227 DRAINAGE VOLUME = .453 TOTAL ET 21.477 BEGIN SOIL WATER = 24.611 FINAL SOIL WATER = 19.790 IRRIGATION APPLIED= .000 BALANCE .020

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 28.01 29.94 37.57 48.87 60.80 70.18 74.47 72.55 64.91 53.61 41.68 32.31

ANNUAL TOTALS FOR 1964 PRECIPITATION 31.481 PREDICTED RUNOFF = 5.812 DRAINAGE VOLUME = .107 TOTAL ET 24.093 BEGIN SOIL WATER = 19.790 FINAL SOIL WATER • 21.233 IRRIGATION APPLIED" .000 BALANCE .024

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 27.37 28.51 35.47 46.38 58.31 68.08 73.06 71.92 64.96 54.06 42.12 32.36

ANNUAL TOTALS FOR 1965 PRECIPITATION = 45.208 PREDICTED RUNOFF - 9.222 DRAINAGE VOLUME 1.910 TOTAL ET 27.453 BEGIN SOIL WATER 21.233 FINAL SOIL WATER 27.815 IRRIGATION APPLIED .000 BALANCE «= .041

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 27.14 28.77 36.12 47.20 59.05 68.49 73.00 71.36 64.02 52.94 41.09 31.64 230 ANNUAL TOTALS FOR 1966 PRECIPITATION 46.792 PREDICTED RUNOFF = 16.114 DRAINAGE VOLUME = 5.467 TOTAL ET 25.554 BEGIN SOIL WATER = 27.815 FINAL SOIL WATER = 27.471 IRRIGATION APPLIED= .000 BALANCE .000

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 27.33 29.12 36.28 46.90 58.13 66.96 71.02 69.23 62.07 51.45 40.22 31.39

ANNUAL TOTALS FOR 1967 PRECIPITATION 34.913 PREDICTED RUNOFF = 8.650 DRAINAGE VOLUME = 4.902 TOTAL ET 24.251 BEGIN SOIL WATER = 27.471 FINAL SOIL WATER = 24.556 IRRIGATION APPLIED= .000 BALANCE .026

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 25.33 26.52 34.01 45.78 58.68 69.26 74.68 73.49 66.01 54.24 41.33 30.75

ANNUAL TOTALS FOR 1968 PRECIPITATION 36.118 PREDICTED RUNOFF = 8.673 DRAINAGE VOLUME = 1.426 TOTAL ET 25.718 BEGIN SOIL WATER = 24.556 FINAL SOIL WATER = 24.829 IRRIGATION APPLIED= .000 BALANCE .028

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 24.12 25.94 33.60 45.04 57.19 66.81 71.31 69.49 61.83 50.40 38.24 28.63 231 ANNUAL TOTALS FOR 1969 PRECIPITATION 46.633 PREDICTED RUNOFF = 20.009 DRAINAGE VOLUME = 3.251 "TOTAL ET 25.063 BEGIN SOIL WATER = 24.829 FINAL SOIL WATER = 23.113 IRRIGATION APPLIED* .000 BALANCE .027

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 22.89 24.69 32.90 45.31 58.61 69.23 74.32 72.52 64.32 51.90 38.61 27.99

ANNUAL TOTALS FOR 1970 PRECIPITATION = 37.387 PREDICTED RUNOFF = 9.174 DRAINAGE VOLUME .992 TOTAL ET = 25.068 BEGIN SOIL WATER = 23.113 FINAL SOIL WATER = 25.242 IRRIGATION APPLIED .000 BALANCE .023

MONTHLY MEAN TEMPERATURES, DEGREES FAHRENHEIT 25.49 26.06 32.83 43.99 56.55 67.14 72.92 72.35 65.58 54.42 41.87 31.28

ANNUAL TOTALS FOR 1971 PRECIPITATION 33.290 PREDICTED RUNOFF = 8.330 DRAINAGE VOLUME = 1.173 TOTAL ET 24.203 BEGIN SOIL WATER * 25.242 FINAL SOIL WATER = 24.796 IRRIGATION APPLIED- .000 BALANCE .029

AVERAGE ANNUAL VALUES PRECIPITATION = 37.063 PREDICTED RUNOFF = 10.188 DRAINAGE VOLUME = 2.457 TOTAL ET = 24.944 232 FINAL STORAGE FOR EACH FRACTION ,176 2.507 2.683 2.111 1.403 1.463 1.442 13.012 MINIMUM TOTAL STORAGE WAS 18.950 ON 63304 MAXIMUM TOTAL STORAGE WAS 30.273 ON 61001

1 ADAPT HYDROLOGY SUMMARY ADAPT HYDROLOGY PARAMETER FILE; NORTH CENTRAL OHIO CORN ON NO-TILL PLOTS;TOLEDO SILTY CLAY; EXCESS IRRIGAT; IRRIGATION ADDED IN RAINFALL FILE 1962

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .463 .000 .463 .000 30.273 .000 FEB .490 .000 .490 .000 30.273 .000 MAR 4.427 3.256 .955 1.490 29.387 .000 APR 1.530 .034 1.062 .304 28.902 .000 MAY 2.630 .242 1.572 .771 29.131 .000 JUN 8.160 3.671 2.860 1.464 29.112 .000 JUL 4.400 .559 7.302 .723 27.358 .000 AUG 1.470 .000 5.721 .133 22.603 .000 SEP 4.720 .031 2.807 .000 21.925 .000 OCT 2.560 .132 1.827 .000 23.354 .000 NOV 3.120 .741 .948 .000 24.357 .000 DEC .482 .000 .550 .000 24.613 .000 TOT 34.452 8.667 26.558 4.884 26.774 .000

1963

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .355 .000 .355 .000 24.611 .000 FEB .236 .000 .236 .000 24.611 .000 MAR 5.847 3.812 1.050 .000 24.841 .000 APR 1.880 .292 .900 .000 25.739 .000 MAY 1.720 .119 1.014 .000 26.441 .000 JUN 7.520 3.004 2.742 .109 27.902 .000 JUL 2.740 .000 6.592 .264 26.121 .000 AUG 1.370 .000 5.874 .080 21.758 .000 SEP .500 .000 1.040 .000 19.404 .000 OCT .030 .000 .358 .000 19.090 .000 NOV 1.360 .000 .812 .000 19.515 .000 DEC .798 .000 .504 .000 19.771 ,000 TOT 24.357 7.227 21.477 .453 23.317 .000 233

1964

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .362 .000 .362 .000 19.790 .000 FEB .526 .000 .365 .000 19.805 .000 MAR 6.765 2.434 1.308 .000 21.655 .000 APR 5.100 .210 1.578 .000 24.666 .000 MAY 1.050 .014 .729 .000 26.448 .000 JUN 5.200 1.777 2.532 .000 26.869 .000 JUL 4.060 1.377 7.113 .081 25.937 .000 AUG 3.880 .000 6.460 .026 21.618 ,000 SEP 1.450 .000 1.521 .000 20.135 .000 OCT .940 .000 .921 .000 20.206 .000 NOV .680 .000 .638 .000 20.144 .000 DEC 1.469 .000 .566 .000 21.675 .000 TOT 31.481 5.812 24.093 .107 22.361 .000

1965

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .555 .000 .555 .000 21.233 .000 FEB .341 .000 .341 .000 21.233 .000 MAR 8.204 2.456 1.526 .000 22.753 .000 APR 2.26Q .038 1.408 .000 25.951 .000 MAY 4.520 1.382 1.018 .008 27.525 .000 JUN 6.680 2.327 2.455 .723 28.921 .000 JUL 7.940 2.414 7.625 .985 28.165 .000 AUG 4.000 .000 6.531 .179 24.745 .000 SEP 3.390 .011 2.746 .016 24.256 .000 CCT 3.620 .394 1.777 .000 25.062 .000 HOV 2.250 .030 1.031 .000 26.168 .000 DCC 1.447 .172 .441 .000 27.649 .000 TOT 45.208 9.222 27.453 1.910 25.305 .000

1066

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .551 .000 .551 .000 27.815 .000 FEB .340 .000 .340 .000 27.815 .000 MAR 3.111 1.575 .942 .000 28.039 .000 APR 3.670 .713 1.424 .321 28.653 .000 234 MAY 5.810 2.482 1.675 1.933 29.385 .000 JUN 9.120 5.206 2.792 2.206 29.220 .000 JUL 10.790 5.283 7.222 .837 27.586 .000 AUG 2.540 .000 6.078 .170 23.769 .000 SEP 1.660 .000 1.430 .000 21.851 .000 OCT 1.360 .000 1.516 .000 22.251 .000 NOV 5.250 .506 1.045 .000 24.806 .000 DEC 2.589 .350 .539 .000 27.083 .000 TOT 46.792 16.114 25.554 5.467 26.523 .000

1967

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .496 .000 .4r/6 .000 27.471 .000 FEB .319 .000 .C19 .000 27.471 .000 MAR 4.746 2.336 1.188 .029 27.935 .000 APR 2.750 .239 1.288 .772 29.090 .000 MAY 5.840 2.361 1.387 1.705 29.332 .000 JUN 7.110 3.395 2.748 1.842 29.267 .000 JUL 2.970 .182 6.992 .438 26.724 .000 AUG 3.610 .043 5.687 .116 22.946 .000 SEP .130 .000 1.114 .000 21.010 .000 OCT 2.530 .000 1.436 .000 21.469 .000 NOV 2.620 .039 1.044 .000 23.170 .000 DEC 1.792 .054 .549 .000 24.358 .000 TOT 34.913 8.650 24.251 4.902 25.854 .000

1968

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .531 .000 o531 .000 24.556 .000 FEB .345 .000 .345 .000 24.556 .000 MAR 6.112 3.756 1.129 .000 24.973 .000 APR 1.620 .060 .843 .000 26.274 .000 MAY 7.550 2.746 2.127 .104 27.579 .000 JUN 4.700 1.940 2.381 .812 28.986 .000 JUL 2.710 .012 6.908 .449 26.256 .000 AUG 3.760 .038 6.098 .061 22.771 .000 SE? 1.960 .000 2.168 .000 21.522 .000 OCT 1.830 .000 1.689 .000 21.690 .000 NOV 4.280 .121 .925 .000 23.117 .000 DEC .720 .000 .573 .000 24.838 .000 TOT 36.118 8.673 25.718 1.426 24.760 .000 235 1969

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .487 .000 .487 .000 24.829 .000 FEB .301 .000 .301 .000 24.829 .000 MAR 5.772 3.997 1.035 .000 25.064 .000 APR 5.300 1.696 1.523 .000 26.639 .000 MAY 5.000 2.416 .888 .410 28.564 .000 JUN 6.910 2.963 3.168 1.495 29.152 .000 JUL 13.720 8.788 7.023 1.238 27.531 .000 AUG .460 .000 5.152 .108 21.947 .000 SEP 3.620 .000 2.227 .000 20.790 .000 OCT 1.490 .000 1.725 .000 21.459 .000 NOV 3.100 .150 1.009 .000 22.355 .000 DEC .473 .000 .524 .000 23.115 .000 TOT 46.633 20.009 25.063 3.251 24.690 .000

1970

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .402 .000 .402 .000 23.113 .000 FEB .254 .000 .254 .000 23.113 .000 MAR 4.472 2.681 .915 .000 23.387 .000 APR 3.430 .404 1.458 .000 25.036 .000 MAY 1.700 .148 .973 .000 25.904 .000 JUN 12.140 5.714 3.355 ,450 ?8.150 .000 JUL 5.250 .191 6.812 .447 27.038 .000 AUG .790 .000 5.650 .095 23.390 .000 SEP 3.410 .000 2.236 .000 21.935 .000 OCT 2.690 .015 1.592 .000 23.457 .000 NOV 2.100 .022 .952 .000 24.044 .000 DEC .749 .000 .468 .000 25.221 .000 TOT 37.387 9.174 25.068 .992 24.482 .000

1971

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .493 .000 .493 .000 25.242 .000 FEB .297 .000 .297 000 25.242 .000 MAR 4.240 2.585 .991 .000 25.412 .000 APR .910 .129 .507 .000 26.026 .000 MAY 3.800 1.085 1.075 .000 26.966 .000 236 JUN 8.820 3.846 2.985 .472 28.639 .000 JUL 2.670 .000 6.643 .617 26.868 .000 AUG 3.810 .425 5.991 .085 22.551 .000 SEP 2.870 .085 2.083 .000 21.996 .000 OCT 1.780 .044 1.593 .000 22.943 .000 NOV 1.320 .000 .937 .000 22.907 .000 DEC 2.279 .131 .609 .000 24.367 .000 TOT 33.290 8.330 24.203 1.173 24.930 .000

ANNUAL AVERAGES

MONTH RAIN RUNOFF ET DRNG AVG SW IRRIGAT JAN .469 .000 .469 .000 24.893 .000 FEB .345 .000 .329 .000 24.895 .000 MAR 5.370 2.889 1.104 .152 25.345 .000 APR 2.845 .381 1.199 .140 26.698 .000 MAY 3.962 1.300 1.246 .493 27.728 .000 JUN 7.636 3.384 2.802 .957 28.622 .000 JUL 5.725 1.881 7.023 .608 26.958 .000 AUG 2.569 .051 5.924 .105 22.810 .000 SEP 2.371 .013 1.937 .002 21.482 .000 OCT 1.883 .058 1.443 .000 22.098 .000 NOV 2.608 .161 .934 .000 23.058 .000 DEC 1.280 .071 .532 .000 24.208 .000 TOT 37.063 10.188 24.944 2.457 24.900 .000

****************************** SNOW NOTICE DUE TO BELOW FREEZING TEMPERATURES, THIS RUN INCLUDEn SNOW. THE RAINFALL REGIMEN WAS CHANGED DUE TO PACK AND THAW. REFERENCES

Aron, G., A.C. Miller Jr. and D.F. Lakatos. 1977. Infiltration Formula Based on SCS Curve Numbers. Jour, of Irrigation and Drainage Division, ASCE. pp.419-426. Baker, J.L., and H.P. Johnson. 1977. Impact of Subsurface Drainage on Water Quality. Proc. 3rd National Drainage Symposium, pp.91-98. Beasley, D.B., L.F. Huggins and E.J. Monke. 1980. ANSWERS: A Model for Watershed Planning. In Transactions of the ASAE 23(4): 938-944. Bottcher, A.B., E.O. Monke and L.F. Huggins. 1980. Subsurface Drainage and Sediment Transport Model. In Transactions of the ASAE 23(4): 870-876. Butt, C.L. and J.W. Mishoe. 1987. Modeling Evaporation and Soil Temperature for Sandy Soils. ASAE Paper No. 87-2065. Cheng, H.H. and W.C. Koskinen. 1985. Processes and Factors Affecting Transport of Pesticides to Ground Water. In: Evaluation of Pesticides in Ground Water. 1986. W.Y. Garner, R.C. Honeycutt, and H.N. Nigg, eds. American Chemical Society, Washington D.C. pp.2-14. Hallberg, G.R. 1985. Groundwater Quality and Agricultural Chemicals: A Perspective from Iowa. North Central Weed Control Conference Proceedings, vol.40. Helling, C.S. and T.J. Gish. 1985. Soil Characteristics Affecting Pesticide Movement Into Ground Water. In: Evaluation of Pesticides in Ground Water. 1986. W.Y. Garner, R.C. Honeycutt, and H.N. Nigg, eds. American Chemical Society, Washington D.C. pp.14-38. Hillel, D. 1982. Introduction To Soil Physics. Academic Press, Inc. Kenimer, A.L., S. Mostaghimi, T.A. Dillaha and V.O. Shanholtz. 1987. A Computer Simulation Model for Predicting Pesticide Losses from Agricultural Lands. ASAE Paper No. 87-2067. Kn.sel, W.G., editor. 1980. CREAMS: A Field-Scale Model for Chemicals, Runoff, and Erosion from Agricultural Management Systems. ITS. Department of Agriculture, Conservation Report No.26, 640 pp. 237 238 Leonard, R.A., W.G. Knisel, and D.A. Still. 1986. GLEAMS: Groundwater Loading Effects on Agricultural Management Systems. Proceedings of ASAE 1986 Winter Meetings. ASAE Paper No. 86- 2511. Leonard, R.A., A. Shirmohanmadii A.W. Johnson, and L.R. Marti. 1986. Pesticide Transport in Shallow Groundwater. ASAE Paper No.86- 2503. Proc. 1986 Winter Meetings, Chicago, Illinois.

Loehr; R.C. 1984. Pollution Control for Agriculture. Academic Press, Inc., New York. Lorber, M.N., and L.A. Mulkey. 1982. An Evaluation of Three Pesticide Runoff Loading Models. J. Environ. Qual. 11(3): 519-529. Mein, R.G. and C.L. Larson. 1973. Modeling Infiltration During a Steady Rain. Water Resources Res. (9)2:384-394. Novotny, V. 1986. A Review of Hydrologic and Water Quality Models used for Simulation of Agricultural Pollution. In: Agricultural Nonpoint Source Pollution: Model Selection and Development. A. Giorgini and F. Zingales, eds. Elsevier, 1986. pp.9-35. Philip, J.R. 1957. The Theory of Infiltration: 1. The Infiltration Equations and its Solutions, p.345-356. Rao, P.S.C., P. Nkedi-Kizza, O.M. Davidson, and L.T. Ou. 1983. Retention and Transformations of Pesticides in Relation to Nonpoint Source Pollution from Croplands. In: Agricultural Management and Water Quality. F.W. Schaller and G.W. Bailey, eds. Iowa State University Press, pp,126-140. Ritter, W.F. 1986. Pesticide Contaminations of Groundwater - A Review. ASAE Paper No. 86-2028. Rosenberg, N.J. 1974. Microclimate: The Biological Environment. John Wiley and Sons, Inc.. p. 187-188. Schwab, G.O., N.R. Fausey, and C.R. Weaver. 1975. Tile and Surface Drainage of Clay Soils. USDA-ARS Research Bulletin No. 1081, Wooster, Ohio. Schwab, G.O., R.K. Frevert, T.W. Edminster, and K.K. Barnes. 1981. Soil and Water Conservation Engineering. John Wiley and Sons, Inc. Skaggs, R.W. 1978. Methods for Design and Evaluation of Drainage-Water Management Systems for Soils with High Water Tables. USDA-SCS unpublished report. Skaggs, R.W., N.R. Fausey, and B.H. Nolte. 1981. Water Management Model Evaluation for North Central Ohio. In Transactions of the ASAE 24(4):922-928. 239 Skaggs, R.W., L.E. Huggins, E.J. Monke, and G.R. Foster. 1969. Experimental Evaluation of Infiltration Equations. In the Transactions of the ASAE 12(6):822-828. U.S. Department of Agriculture, Soil Conservation Service. 1972. National Engineering Handbook: Section 4, Hydrology. Washington, D.C. 548 pp. U.S. Department of Agriculture, Soil Conservation Service. 1984. User's Guide for the CREAMS Computer Model, Washington Computer Center Version. U.S. Department of Agriculture, Soil Conservation Service, Engineering Division, Washington D.C. Technical Release 72. 160 pp. Wagenet, R.J. 1985. Principles of Modeling Pesticide Movement in the Unsattirated Zone. In: Evaluation of Pesticides in Ground Water. 1986. W.Y. Garner, R.C. Honeycutt, and H.N. Nigg, eds. American Chemical Society, Washington, D.C. pp.330-341. Wagenet, R.J. and J.L. Hutson. 1986. Predicting the fate of Nonvolatile Pestides in the Unsaturoted Zone. J. Environ. Qua!. 15(4):315-322. Ward, A.D. 1981. Characterizing Infiltration Through Reconstructed Surface Mine Profiles. Ph.D. Dissertation, University of Kentucky, Lexington. 536 p. Wilson, B.N..B.J. Barfield and I.D. Moore. 1980. A Hydrology and Sedimentology Watershed Model. Part 1: Modeling Techniques. SEDIMOT II Design Manual, the University of Kentucky. BIBLIOGRAPHY

Blaney, H.F. and W.D. Criddle. 1950. Determining Water Requirements in Irrigated Areas from Climatological and Irrigation Data. U.S. Soil Conservation Service Tech. Publ. 96. Bouwer, H. and J. vanSchilfgaarde. 1963. Simplified Method of Predicting Fall of Water Table in Drained Land. In Transactions of the ASAE 6(4): 288-291. Holtan, H.N. 1961. A Concept for Infiltration Estimates in Watershed Engineering. USDA-ARS Paper No. 41-51. Horton, R.E. 1939. Analysis of Runoff-Plot Experiments with Varying Infiltration Capacity. Trans. Am. Geophysical Union, Hydrology Papers: 693-711. Kirkham, D. 1950. Potential Flow into Circumferential Openings ir. Drain Tubes. Journal of Applied Physics, pp 665-670. Kuh, H.C., D.L. Reddell, and E.A. Hiler. 1976. Two-Dimensional Model of Erosion from a Watershed. ASAE Paper No. 76-2539. Onstad, C.A. and G.R. Foster. 1975. Erosion Modeling on a Watershed. In Transactions of the ASAE 19(2): 288-292. Overton, D.E. and E.C. Crosby. 1979. Effects of Contour Coal Strip- Mining on Stormwater Kunoff and Quality. Report to U.S. Dept. of Energy, Dept. of Civil Engineering, University of Tennessee, Knoxville, Tennessee. Penman, H.L. 1948. Natural Evaporation from Open Water, Bare Soil, and Grass. Proc. R. Soc. London Ser. A 193, 120-146. Rice, C.E. and C.L. Larson. 1974. Storage Routing Methods without Fitted Coefficients. In Transactions of the ASAE 17(1): 152-156. Thornthwaite, C.W. 1948. An Approach Toward a Rational Classification of Climate. Geograph. Rev. 38, 55-94. Williams, J.R. 1975. Sediment-yield Prediction with Universal Equation using Runoff Energy Factor. In Present and Prospective Technology for Predicting Sediment Yields and Sources, ARS-S 40: 244-251. 240 241

Wischmeier, W.H. eind D.D. Smith. 1960. A Universal Soil-loss Equation to Guide Conservation Farm Planning. Seventh International Congress of Soil Science, Madison, Wisconsin, pp. 418-425.