United States
             Environmental Protection
             Agency
             Environmental Research
             Laboratory
             Athens GA 306O5
EPA 600 3-79-028
March 1979
             Research and Development
SEPA
Watershed
Erosion and
Sediment
Transport  Model

-------
                RESEARCH REPORTING SERIES

Research reports of the Office of Research and Development, U.S. Environmental
Protection Agency, have been grouped into nine series. These nine broad cate-
gories were established to facilitate further development and application of en-
vironmental technology.  Elimination  of traditional grouping was consciously
planned to foster technology transfer and a maximum interface in related fields.
The nine series are:

      1.   Environmental  Health Effects Research
      2.   Environmental  Protection Technology
      3.   Ecological Research
      4.   Environmental  Monitoring
      5.   Socioeconomic Environmental Studies
      6.   Scientific and Technical  Assessment Reports (STAR)
      7.   Interagency  Energy-Environment Research and Development
      8.   "Special" Reports
      9.   Miscellaneous  Reports

This report has been assigned to the ECOLOGICAL RESEARCH series. This series
describes  research on  the effects of pollution on humans, plant and animal spe-
cies, and materials. Problems are assessed  for their long- and short-term influ-
ences. Investigations include formation, transport, and pathway studies to deter-
mine the fate of pollutants and their effects. This work provides the technical basis
for setting  standards to minimize undesirable changes in living organisms in the
aquatic, terrestrial, and atmospheric environments.
This document is available to the public through the National Technical Informa-
tion Service, Springfield, Virginia  22161.

-------
                                              EPA-600/3-79-028
                                              March 1979
WATERSHED EROSION AND SEDIMENT TRANSPORT MODEL
                       by

                 K. M. Leytham
                 R. C. Johanson
                 Hydrocomp Inc.
               1502 Page Mill Road
          Palo Alto, California 94304
            Grant No. R803726-01-0
                Project Officer

                 Lee A. Mulkey
Technology Development and Applications Branch
       Environmental Research Laboratory
            Athens, Georgia  30605
       ENVIRONMENTAL RESEARCH LABORATORY
       OFFICE OF  RESEARCH AND DEVELOPMENT
      U.S.  ENVIRONMENTAL PROTECTION AGENCY
            ATHENS, GEORGIA 30605

-------
                              DISCLAIMER

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

-------
                                  FOREWORD

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

     The development of mathematical models for simulating the effects of
nonpoint source pollutants on water quality has increased dramatically in
recent years.  Research sponsored by this Laboratory has included techniques
to estimate water, sediment, pesticide, and nutrient inputs to a stream
from small areas having uniform land use.  This report extends these earlier
studies by describing a method for simulating instream water quality and
sediment movement and determining the ultimate fate of nonpoint source
pollutants.
                                   David W. Duttweiler
                                   Director
                                   Environmental Research Laboratory
                                   Athens, Georgia
                                    iii

-------
                                 ABSTRACT
This report describes the development and initial testing of the
Watershed Erosion and Sediment Transport (WEST)  Model.   It is a
deterministic conceptual model which operates  in two  phases.   In the
first one, hydrological and erosion processes  associated with the land
surfaces of a watershed are simulated,  using the Agricultural Runoff
Management (ARM) Model.  The research work in  this project centered on
the second phase, in which the movement of water and  sediment through
a channel system is simulated using the CHANL  Model.   In the CHANL
model the channels of a watershed are represented by  a network of
reaches.  Hydraulic routing is performed using the kinematic wave
approximation.  The results are fed to the sediment algorithms which
explicitly  represent the processes of deposition,  scour, armoring,
and advection.  The model is designed to handle any mixture of
cohesive and cohesionless sediment.

The model has been tested on laboratory data and on data from the East
Fork River, Wyoming.  Results from these tests were satisfactory. The
model was also tested on data recorded on Four Mile Creek, Iowa.  In
this test, inadequate data made it impossible  to draw any definite
conclusions regarding model performance.  Recommendations are made for
further data collection and development and testing of the model.

The work is part of the effort by the U.S. Environmental Protection
Agency to develop tools for predicting the movement of agricultural
chemicals through the hydrological cycle.  This report was submitted
to the EPA in fulfillment of Grant No.  R803726-01-0 by Hydrocomp, Inc.
This report dovers the period July 1975 to August 1977,  and work was
completed as of August 1977.
                                    iv

-------
                                  CONTENTS

                                                                        Page

 Foreword	   ill
Abstract	     iv
Acknowledgments 	     xi
Symbols	    xii

Section
 1   Introduction  	      1
     1.1  Basin Scale Modeling  	      1
     1.2  Use of This Report	      2

 2   Conclusions  	  	      3

 3   Recommendations  	      5

 4   Sediment and Its Role in Pollutant Transport 	      7
     4.1  The Nature of Sediment	      7
     4.2  Sediment Transport Processes  	      9
     4.3  Influences of Chemical Pollutants on Sediment  Modeling   ...     12

 5   The Watershed Erosion and Sediment Transport (WEST)  Model   ....     14
     5.1  Modeling Philosophy	     14
     5.2  Modeling Approach 	     16
     5.3  Land Phase Simulation	     i6
     5.4  Channel Phase Simulation  .	     I8
          5.4.1  Basic Procedure	     i8
          5.4.2  Basic Assumptions	     i9
    5.5  Data Communication   	     20


 6  CHANL Model:  Theoretical Foundations  	      22
    6.1  Introduction	      22
    6.2  Hydraulic Routing Algorithms	'.	      22
    6.3  Sediment Transport Algorithms 	      27
         6.3.1  General Approach 	      27
         6.3.2  Representation of the  Physical System   	      28
         6.3.3  Derivation of the Continuity Equation   	      32
         6.3.4  Bed-Flow Interactions   .	      34
         6.3.5  Transport Concentrations for Cohesionless Material  .  .      42
         6.3.6  Armoring	      44
         6.3.7  Deposition and Scour of Cohesive Material  	      ^5
         6.3-8  Solutions of the Continuity Equation	      49
         6.3.9  Concluding Remarks	      49

-------
 7   CHANL  Model:   Computational  Aspects  and  Computer Code   	   50
    7.1  Software  and  Hardware Requirements   	   50
    7.2  Simulation Management  	   52
    7.3  Computer  Code	   54
        7.3.1   Overview	   54
        7.3.2   MA-IN Program	   61
        7.3.3   Subroutines:  Principal  Functions  and Features  ...   68
    7.4  Data Files	   82

 8   Ancillary Programs 	   86

 9   CHANL  Model  Users  Guide   	   88
    9.1  Introduction	   88
    9.2  System  Limits	   88
    9.3  Modes of  Operation	   90
    9.4  Preparation of the Input  Sequence	•   91
        9.4.1   Example Input Sequence  	   91
        9.4.2   Units	   91
        9.4.3   File Numbering and Input/Output  Considerations  ...   92
        9.4.4   Choice of Modeling Interval   	   92
        9.4.5   Channel Characteristics   	   92
        9.4.6   Sediment Characteristics 	   95
        9.4.7   Choice of Parameter Values  	   95
    9.5  Interpretation and Control of Output   	  114
    9.6  Model Application 	  115

10   Model  Testing	128
    10.1 Armoring  Study, Georgia Institute of  Technology  	  130
         10.1.1  Run 4-1	132
         10.1.2  Run 5-4	    133
         10.1.3  Run 6-1	133
         10.1.4  Sensitivity  Tests 	  136
    10.2 East Fork River, Wyoming	142
         10.2.1   Introduction  	  142
         10.2.2  Data  Preparation  	  145
         10.2.3  Results 	  146
    10.3 Four Mile Creek, Iowa	157
         10.3.1  General Description 	  157
         10.3-2  Topography  	  159
         10.3.3  Soils 	  159
         10.3.4  Groundwater  Flow Systems  	  159
         10.3.5  Land  Use and Sediment  Regime	159
         10.3.6  Hydrometeorological Data  	  162
         10.3.7  Documents	  163
         10.3.8  Hydrologic Calibration   	  164
         10.3.9  Calibration  of  Land Surface Soil  Loss	174
         10.3.10  Application of the CHANL Model 	  ...  174
                                   vi

-------
11  Discussion and Conclusions 	  180
    11.1 Advantages and Shortcomings of Deterministic  Modeling  .  .  .  180
         11.1.1  Advantages  	  180
         11.1.2  Shortcomings  	  180
    11.2 Discussion of Results	182
    11.3 Recommendations .  ,	183
         11.3.1  Land Process Simulation:   ARM Model  	  183
         11.3-2  Channel Process Simulation:  CHANL  Model  	  184

12  References	187

Appendix A:  Subdivision of Total Land Surface Erosion
             into Particle Size Fractions    	191

Appendix B:  Catalog of Watersheds with Data  on Sediment  Yield   .  .  . 194

Appendix C:  Glossary of Principal Variables   	 215

Appendix D:  Source Code	233
                                  vii

-------
                                  FIGURES
Figure                                                                   Page
 1.  WEST Model Organization	     15
 2.  Division of Watershed into Land Segments and Channel Reaches  .  •     17
 3.  Organization of CHANL Model	     23
 U.  Grid for Finite Difference Scheme	     24
 5,  Graphical Representation of the Equations Used in
     Kinematic Routing ..... 	 	     26
 6.  Processes Simulated in a Reach	     28
 7.  Sequence of Sediment Transport Calculations 	     29
 8.  Finite Difference Grid for Sediment Modeling  	  .....     33
 9.  Bed Form Chart for RG = 1.5 .........	     35
10.  Bed Form Chart for RG = 10.0	T     35
11.  Bed Form Chart for RG = 16.0	.......     36
12.  Bed Form Chart for RG = 25.0  .	     36
13.  Bed Form Chart for RG = 10.0	     37
11.  Bed Form Chart for RG = 80.0  . . .	,     37
15.  Relative Roughness vs. Slope from Jopling (1965)  	     39
16.  Relative Roughness vs. Froude Number  	  	     39
17.  Section Through Cohesionless Bed  .... 	     41
18.  Section Through Mixed Cohesionless/Cohesive Bed  	     42
19.  Reduction of Scour by Armoring	     45
20.  Deposition Curves for Clay and Silt	     46
21.  Correction Factors for Scour of Cohesive Materials  .......     48
22.  Reduction of Scour of Cohesive Materials by an Overlying
     Cohesionless Layer  .....  	     48
23.  Organization of CHANL Model 	     51
24.  Representation of the Watercourses in a Watershed	     52
25.  Subroutine Structure of the CHANL Model 	     56
26.  Flowchart of MAIN Program	     62
27.  Typical Column of Array TVEC	,  .     67
28.  Simplified Flowchart for Subroutine ACTIV 	     69
29.  Structure of Vector BEDMAP	  .     71
30.  Use of Directories to Access BEDMAP	, ,	     71
31.  Storage of Diffuse Loading Information  	  ...     73
32.  Association of Segment Number  with Diffuse Loading Data  	     73
33-  Sketch Showing how Properties  of a Reach Are Represented
     in the Program. .	     75
34.  Structure of Vector TABLE 	     77
35.  Structure of Vector STORP	,	     78
36.  Storage of Point Load Information 	  .....     79
37.  Structure of Vector STOR  .	     80
38.  Format of Compressed Record	f	,	     34
39.  Use of the CHANL Model as a Stand Alone Program  	  ....     90

                                   viii

-------
40.  Example of Reach Corss Section Description  	  .....     94
41.  Example Input Sequence  	    110
42.  Printout of Hydraulic Routing Results 	  ,  	    126
43.  Printout of Sediment Transport Results  	    127
44.  Cumulative Sediment Transport for Georgia Institute
     of Technology, Run 4-1	    132
45.  Effect of Manning's n on Sediment Transport for
     Georgia Institute of Technology, Run 4-1   	    133
46.  Cumulative Sediment Transport for Georgia Institute
     of Technology, Run 5-4	    134
47.  Cumulative Sediment Transport for Georgia Institute
     of Technology, Run 6-1 for First 1800 Minutes	    135
48.  Cumulative Sediment Transport for Georgia Institute
     of Technology, Run 6-1	•    135
49.  Sensitivity of Sediment Transport to Channel Roughness  	    137
50.  Sensitivity of Sediment Transport to Flow Rate	    138
51.  Sensitivity of Sediment Transport to Water Temperature  	    140
52.  Effect of Parameter ARMF on Sediment Transport  	    141
53-  Effect of Parameter PROTCT on Sediment Transport  ... 	    141
54.  East  Fork River Watershed and Study  Reach	    143
55.  Study Reach Showing Location of Gaging Stations and
     Reach Numbers Used  in Simulation  ......,....,••••    144
56.  Comparison of Simulated and Recorded Flows, East Fork River ...    147
57.  Comparison of Simulated and Recorded Sediment Transport
     Rates for 0.125 mm  Size Fraction, East Fork River	    149
58.  Comparison of Simulated and Recorded Sediment Transport
     Rates for 0.25 mm Size Fraction, East Fork River	    150
59.  Comparison of Simulated and Recorded Sediment Transport
     Rates for 0.5 mm Size Fraction, East Fork River ,	    151
60.  Comparison of Simulated and Recorded Sediment Transport
     Rates for  1.00 mm Size Fraction, East Fork River,	•    152
61.  Comparison of Simulated and Recorded Sediment Transport
     Rates for 2.0 mm Size Fraction, East Fork  River	    152
62.  Comparison of Simulated and Recorded Sediment Transport
     Rates for 4.0 mm Size Fraction, East Fork  River	    154
63,  Comparison of Simulated and  Recorded Sediment Transport
     Rates for 8.0 mm Size Fraction, East Fork  River .........    155
6^.  Comparison of simulated and  Recorded Total Sediment
     Transport  Rates. East Fork River.  .  .  .  .  .	 .....    155
65.  Hydrometeorological Stations  in and Near Four Mile Creek,  Iowa. .   155
66.  Topography of Four  Mile Creek Basin	» •   160
67.  Geology of Four Mile Creek Basin -,Frora  Knunkle (1968)	   161
68.  Segment and  Channel Reach Layout  for Four  Mile Creek,  Iowa. ,  . .   165
69.  Comparison of Recorded and Simulated Daily Flows for
     Water Year  1969	   169
70.  Comparison of Recorded and Simulated Daily Flows For
     Water Year  1971	  . .  ...  . ..	   171
71.  Comparison of Recorded and Simulated Daily Sediment Loads  ....   175
 72.   Recorded and Simulated  Yield  for  Four  Mile Creek, Iowa. ,  . .  . .   178
 73.   Sediment Transport in Four Mile Creek,  Iowa  - May  1970. ,  . .  , .   179
                                      ix

-------
                                   TABLES
Table                                                                    Page

1,   Extensions to ANSI Fortran	    50
2.   Alphabetical List of Subroutines	    55
3.   Cross Reference Table for Subroutine Calls 	    60
1.   File Label Format	    83
5.   Configuration of CHANL Model	    89
6.   Input Summary for CHANL Model  	    98
7.   Error Messages for the CHANL Model	   116
8.   Hydraulic Properties
     (Georgia Institute of Technology Armoring Study  	   130
9.   Original Bed Particle Size Distributions
     (Georgia Institute of Technology Armoring Study  	   131
10.  Definition of Particle Size Fractions and Initial
     Bed Composition for Modeling	   131
11.  Sediment Parameters Used with Georgia Institute
     of Technology Data	   131
12.  Sediment Parameters for East Fork River	   148
13-  Parameters Used in ARM Calibration Run .	   166
14.  Summary of ARM Calibration Run	   173

-------
                           ACKNOWLEDGMENTS
This work was sponsored by the EPA Environmental  Research Laboratory,
Athens, Georgia (Athens-ERL).   Mr. Lee A.  Mulkey  was project  officer.
At Hydrocomp, Dr.  Norman H.  Crawford was Principal  Investigator,  Dr.
Robert C. Johanson was Project Coordinator,  and Mr.  K.  Malcolm Leytham
was Project Manager.  Other personnel involved in the project were  Mr.
Kevin Gartner who prepared and tested the data on the East Fork River
and Mr. Stanley Praisewater who prepared the data and performed the
initial calibration for Four Mile Creek.

The authors express appreciation to Ms. Donna Mitchell, Ms. Diana
Allred and Ms. Kathy Francies who prepared the final report.   Mr. Guy
Funabiki is responsible for the art work and drafting.

Hydrocomp appreciated the cooperation for Drs. Carl  Nordin and Paul
Mayer in the data collection phase of the proj.ect.   Data for  the  East
Fork River were provided by Dr. Nordin of the U.S.  Geological Survey,
Denver.  Dr. Mayer provided experimental data from the Georgia
Institute of Technology.

Researchers in the Department of Agricultural Engineering at  Iowa
State University are currently conducting an intensive monitoring
program on Four Mile Creek under Athens-ERL sponsorship.  Their
cooperation in providing data on Four Mile Creek  and their readiness
to coordinate that program with this one are much appreciated.
                                  xi

-------
                                 SYMBOLS
Symbols

A(x,t)
Definition

Cross-sectional area at point x  and  time  t
Dimension
 ,2
ACTIVE

ADEPTH


ARMD


ARMF
 ARMOR


 BEDSHR

 BIND



 C(x,t)


 C(Xi,t)




 CRTSHR


 DEPTH
Calibration coefficients used in the
sediment transport function of Ackers and
White

Potential active layer thickness

Active layer thickness after correction for
presence of immobile material

Depth of scour required to leave an armoring
layer ARMOR thick

Value of the ratio (thickness of armoring
layer/median particle size of immobile
material) at which armoring  prevents further
scour

Thickness of armoring layer  which prevents
further  scour

Bed shear  stress

 Percentage  of  cohesive  material  which will
 just start  to  hinder the movement of sand
 particles  from the bed

 Sediment transport concentration at  point  x
 and time t  as  parts  by  mass of water

 Spatially averaged  sediment transport
 concentration  for the reach upstream of
 point Xi at time t

 Critical shear stress for the scour  of
 cohesive material

 Mean flow depth at the end of the  reach at
 end of time interval
 L

 L
  ML
    '1   -
  ML
,-V2
                                    xii

-------
DIA(I)

DGR


DUNE


D50

D50A

FOR
  RD
  DF
FR

FR

FR

FR
  max

G(x,t)

g(x,t)


I



GGR



GRAY


Hd

H
KINVIS


Ld
Diameter of particle size fraction I             L

Dimensionless grain size used in the sediment
transport function of Ackers and White

Maximum value of the ratio
(dune height/mean flow depth)

Median size of mobile sand fractions             L

Median size of immobile sand fractions           L

Dimensionless sediment mobility number
used in the sediment transport function
of Ackers and White

Froude number = V/\/GRAV*DEPTH

Froude number at ripple/dune transition

Froude number at dune/flat transition

Froude number at maximum dune height

Sediment discharge at point x and time t         MT

Lateral sediment inflow per unit length          ML
of channel at point x and time t

Lateral sediment inflow per unit length of
channel averaged over the length of the
reach and over the modeling interval

Diraensionless sediment transport rate
used in the sediment transport function
of Ackers and White

Acceleration due to gravity                      LT

Dune height                                      L

Ripple height                                    L

Rate of inflow of water to a reach summed        L;
over all sources and averaged over the
modeling interval
                                                  f
Kinematic viscosity                              L'

Dune length                                      L

Ripple length                                    L
                                                                     ~1
                                                                     '1
                                                                     '2
                                   xiii

-------
M(x,t)
M(Xi,t)
n

NUM
P(t)

PC(I)

PCIMO


PR(x,t)

PROTCT



PS(t)

q
-------
SCRCON


SCREXP


SETVEL(l)


SG

SHEARV



SLOPE
T.
 J
TOP(x,t)

V(x,t)
YD50
 P

 0,
 At

  x
Constant used in determining scour rate
of cohesive material

Exponent used in determining scour rate
of cohesive material

Settling velocity of particle size
fraction I

Specific gravity of sediment material

Shear velocity
  = V GRAV*DEPTH*SLOPE

Bottom slope of reach

Time at time line j.  T  denotes the
start of a time interval, T.   denotes
the end of a time interval ^+

Topwidth at point x and time t

Mean flow velocity at point x and time t

Station or chainage at space line i.
X^  denotes the upstream end of a reach,
xi+l denotes the downstream end of a
reach

Ratio of flow depth to median size
of  mobile bed material
  = DEPTH/050

Correction coefficients for the presence
of  sand.  Used when scouring cohesive
bed layers

Mass density of water

Weighting parameter for integration
over space

Weighting parameter for integration
over time

Modeling interval

Reach length
LT
  -1
LT
L

LT

L
ML
                                                                   -3
 T

 L
                                   xv

-------
                                  CHAPTER  1

                                INTRODUCTION
In the past decade,  the engineering and  scientific  community has devoted
much effort to the development of mathematical  models  for  simulating  the
impact of nonpoint source pollutants on  water quality.  The work was given
considerable impetus by the passage of the Federal  Water Pollution Control
Act Amendments of 1972 which specifically require that nonpoint sources be
considered when planning for water quality improvements.   The modeling
effort described in this report began in 1971  when  the EPA, through the
Environmental Research Laboratory in Athens,  Georgia,  sponsored the
development and testing of the Pesticide Transport  and Runoff (PTR) Model
(Crawford and Donigian 1973).  It simulated the hydrologic and sediment
production processes and certain pesticide reactions on an area having
uniform land use.  It has since been refined,  tested,  and  expanded to handle
nutrient transformations on and under the land surface and has been renamed
the Agricultural Runoff Management (ARM) Model  (Donigian and  Crawford 1976a;
Donigian, et al. 1977).

The ARM Model is limited to small areas  having uniform land use.   It  may be
used to estimate the water, sediment, pesticide, and nutrient inputs  to a
stream, but it does not simulate the channel processes that occur  after the
water and pollutants are in the stream.   To simulate instream water quality
and sediment movement and determine the  ultimate fate  of pollutants such as
pesticides and nutrients, the ARM Model  must be interfaced with a  stream
simulation model that evaluates the impact of the channel  processes.

Many pollutants, including pesticides and nutrients, move  along a  stream in
both the dissolved state and adsorbed on moving sediment  particles. Sediment
is itself frequently a pollutant.  Thus, the development of  algorithms  to
simulate water and sediment movement through a stream  system  is the first
step in the development of a more general in-stream pollutant transport
model.
 1.1  Basin Scale Modeling

 The objective of the present study was the development of the Watershed
 Erosion and Sediment Transport (WEST) Model for simulating sediment and
 water movement from the land surface and through the stream system of a

-------
watershed.  This objective was achieved by  developing  a channel process
model, CHANL,  for water and sediment,  and linking  this with the existing ARM
Model, thus allowing simulation on a basin  scale.

The development and testing of the ARM Model  has been  documented extensively
by Donigian and Crawford (1976a)  and Donigian et al. (1977).  This report
concerns the development of the remaining components of the WEST Model, that
is the channel process model,  CHANL, and the  linkage between the ARM and
CHANL Models.   The report also presents the results of preliminary tests on
the CHANL Model both by itself for channel  process simulation and as a
component of the WEST Model for basin  scale simulation.
1.2  Use of This Report

Sediment processes and sediment-pollutant  interactions are discussed in
Chapter 4.  This chapter is intended to  give the  uninitiated layman a
glimpse of the complexities of sediment  and  pollutant transport processes in
the real world.  The chapter also expands  on some of the reasons for the
current interest in this topic.   Chapter 5 gives  an overview of the WEST
Model and describes the approach and assumptions  adopted for basin scale
modeling.  This chapter would enable a potential  user to decide whether the
model should be used on his or her particular problem.

The theoretical aspects of the CHANL Model are discussed in Chapter 6 and
the computational aspects in Chapter 7.  These chapters are intended for
those diehards interested in the detailed  aspects of the model or assigned
the task of refining and maintaining it.

Chapter 8 discusses the ancillary programs that would be required in
applications of the model to a particular  problem or study, and Chapter 9
gives the detailed information required  to use the model. Finally, some
preliminary tests are described in Chapter 10.

-------
                                CHAPTER 2

                               CONCLUSIONS
(1)   A functioning computer model, the Watershed Erosion and Sediment
     Transport (WEST)  Model,  has been developed to simulate the movement of
     water and sediment  through the land and channel phases of the
     hydrologic cycle.   The model  is coded in Fortran and was developed and
     tested on an  HP3000 Series II machine.  Preliminary tests have been
     made.

(2)   The WEST Model is composed of two separate models, the ARM Model and
     the CHANL Model,  which are linked by a simple data management system.
     The ARM Model (Donigian  and Crawford 1976a; Donigian, et al. 1977)
     simulates the land  phase processes and the CHANL Model, a new model
     developed under this  grant, simulates the in-stream or channel
     processes.

(3)   The CHANL Model is  a  one-dimensional model for simulating the movement
     of water and  sediment through the stream network.  Hydraulic routing is
     performed by  using  a  kinematic wave approximation of water flows.
     Sediment routing is performed by explicitly modeling the component
     processes such as scour, deposition and armoring.  This was done to
     keep the range of application of the model as wide as possible and to
     facilitate its extension to cover other processes dependent on sediment
     movement, such as those  affecting nutrients and pesticides.

(4)   The CHANL Model gave  promising results when tested on laboratory data
     from the Georgia Institute of Technology and field data collected by
     the U.S. Geological Survey on the East Fork River, Wyoming.  These
     tests tend to confirm that the model adequately simulates the transport
     of cohesionless materials, including the effects of armoring.

(5)   Tests involving Four  Mile Creek, Iowa, were hampered by problems with
     data.   Hourly precipitation data, which constitute the primary input to
     the model, had to be  tranposed from a station 15 km away from the
     oentroid of the watershed.  Errors caused by the use of unrepresentative
     input were so large as to prevent definite conclusions being reached
     regarding the performance of  the model.  Significant improvement in the
     calibration will be possible when more representative date are available.

-------
     Data presently being collected by  Iowa  State University  (Johnson 1977)
     should remedy this situation.

(6)   Adequate verification of  the model will require many data which are not
     usually included in sediment data collection programs.  For example,
     hydrographs of sediment discharge  from  small areas within the
     watershed,  together with  data on the concurrent variation in the
     composition of sediment runoff, are needed to further develop and
     calibrate the ARM Model.  Similarly detailed information on processes
     which occur in channels is required to  test and calibrate the CHANL
     Model  (Section 11.3).  Looking ahead,  it seems that a major obstacle
     in applying the model to  a variety of watersheds as part of a wider
     research or regulatory program will be  the lack of adequate data
     (Section 11.1).

-------
                                CHAPTER 3

                             RECOMMENDATIONS
(1)   The development of the ARM Model, which is used to simulate the
     processes occurring  in the land phase of the hydrologic cycle, has been
     described in  other reports to the U.S. Environmental Protection Agency,
     Athens,  Georgia (Donigian and Crawford 1976a; Donigian, et al. 1977)
     Recommendations for  further  testing and refinements were made in those
     publications.  Based on experience on the present project, further
     suggestions are offered:

     (a)  Simulation of the effects of frozen ground on the hydrological
          cycle could  be  improved.

     (b)  At  present the  sediment production algorithms in the ARM Model do
          not explicitly  indicate the size distribution of the sediment
          runoff.   The channel model requires this information because
          particles of various sizes behave differently as they are washed
          through the  system.  At present, the subdivision is performed
          somewhat arbitrarily, based on the rate of washoff and
          user-supplied parameters.  Further testing may indicate that this
          technique should be abandoned in favor of one in which both the
          quantity and composition of sediment are accounted for in the
          sediment production algorithms of the ARM Model.

     (c)  In  the present  version  of the ARM Model, overland flow can only
          transport fines which have already been detached by rainfall.  To
          make it more generally  applicable, algorithms which provide for
          detachment of soil  fines by overland flow could be added.  These
          would handle the  simulation of rill and gully erosion.

     (d)  Allowance could be made for the  reduction in detached soil fines
          which results from  soil compaction.  Some qualitative field
          observations from Four  Mile Creek would be helpful in selecting
          and in confirming the validity of the algorithms.

(2)  The principal need in  the development of the CHANL Model is further
     testing.  Tests should be carried  out in a variety of  situations with
     special emphasis  on the  scour, deposition, and transport of cohesive
     materials.  The  recommended  tests  are:

-------
     (a)   Tests using hypothetical  situations:   These would probably reveal
          further shortcomings in the model  and  facilitate their correction.
          Ultimately, the tests should  confirm that  the model does respond
          in a realistic manner.

     (b)   Tests using laboratory data:  Many investigators have used flumes
          in the laboratory  to study sediment transport phenomena.  Data
          from such work are usually accurate and comprehensive and approach
          an ideal test  situation.  They  could be used to test details of
          the behavior of the model, e.g., scour and armoring, which are
          important in nature but almost  impossible  to test with available
          data from natural  streams.

     (c)   Tests on data  from Four Mile  Creek:  The current project on Four
          Mile Creek by  Iowa State  University (Johnson 1977) is designed,
          among other things, to  supply data suitable for further testing of
          the WEST Model.  Testing  should be resumed, in cooperation with
          ISU personnel,  when a usable  quantity  of data has been collected.

     (d)   Data from other natural streams should also be used to test and
          further develop the model.  The use of information from widely
          different streams  would be useful  in testing and demonstrating the
          applicability  of the sediment transport algorithms under a wide
          range of conditions.

(3)   To assess the benefits  provided by the  substantial detail incorporated
     in the CHANL model,  it  is recommended that  parallel tests be run on a
     simpler model.   The channel  routing  algorithms  of Negev (1967) or David
     and Beer (1974)  could be used  for  this  purpose.

(4)   Future development  work in the CHANL Model  should include the following
     tasks:

     (a)   Modify the sediment algorithms  to  improve  the way in which
          non-rectangular channels  are  handled.

     (b)   Improve the one-dimensional representation of hydraulic conditions
          for use in the sediment transport  calculations by separating flows
          in the incised channel  from flows  over the flood plain.

     (c)   Allow the user to  input detailed water temperature data when these
          are available.

     (d)   Incorporate limited feedback  from  sediment processes to hydraulic
          processes by adjusting bed slope for scour and deposition.

-------
                                 CHAPTER I

                SEDIMENT AND  ITS  ROLE IN POLLUTANT TRANSPORT
4.1  The Nature of Sediment

In the following discussions,  the  term  "sediment" is used to refer to any
particulate matter which can be moved by water across the land surface and
into or through the waterways  of a river basin.  Thus, sediment may include
such diverse materials as dust or  grit  on  streets or sidewalks, soil and
organic materials on agricultural  lands, or  clays and sands in a stream bed.
Most sediments fall into one of two broad  categories according to origin:

        •Organic matter:  usually  the products of varying degrees of
         decomposition of animal and plant material ranging in size from
         colloidal humus (0.1  * 10~^ m  diameter) to very large chunks of
         material.

        •Mineral particles:  sediments  ranging in size from clay particles
         of colloidal or near  colloidal size, through silts and sands to
         large boulders.

The movement of sediment may cause problems  for  numerous reasons.  From the
traditional river mechanics point  of view, for example, scour in a river
channel may affect the stability of adjacent structures such as water
intakes or bridge piers.  In this  study,  however, the topic of concern is
the role of sediment as a pollutant and carrier  of  pollutants.

Sediment often acts as a pollutant in  its own right, and numerous cases may
be cited.  Increased suspended sediment loads in rivers, for example, will
reduce light penetration and so affect  aquatic organisms, and deposition of
fine material has been known to destroy the  spawning beds of fish.  However,
a more insidious aspect of sediment movement is  its ability to transport
other pollutants, primarily the fertilizers, herbicides, and pesticides used
on agricultural lands.

Moving sediment particles can transport chemical pollutants because of the
combined processes of surface  adsorption and absorption, usually referred to
collectively as sorption.  In  this respect,  colloidal mineral or organic
materials are extremely active, but larger particles are practically inert.
However, this neat division is sometimes complicated when, for example, sand
particles become coated with very  active fine organic matter.  The sand then

-------
becomes an indirect carrier of the pollutants.   Because of the important
role played by colloidal materials in transporting  pollutants, some comments
will be made concerning their structure  and  behavior.

As with other sediments, colloids may be divided into  two groups:  clay and
organic.  Clay particles are usually  colloidal  or near colloidal in size
(0.2*10   to 4*10~6 m)  and are made up of laminated plates or rods of
alumina and silica.  Because of their construction,  the specific area of
particles (ratio of internal and external surface areas to mass) is huge.
Their structure is such that each surface contains  thousands of negative
charges and so a particle will attract and adsorb cations present in the
surrounding water.  In  general,  many  different  types of cations will be
adsorbed on a single particle, and these will readily  exchange with others
in the surrounding fluid.  If the ionic  composition of the surrounding fluid
changes, a corresponding change occurs in the number of adsorbed cations.
The adsorption-desorption process attempts to establish an equilibrium
between adsorbed and dissolved cations.   Thus,  if the  concentration in the
solution increases, more cations will be adsorbed on the particle surfaces.
Adsorbed cations include not only naturally  occurring  ions such as Al''',
Vig++, Ca"1"4", and Na+, but also the cationic pesticide and herbicide radicals
introduced by man.  The sorption processes take place  both on the land
surface where the chemicals are usually  applied and also in the watercourses
where bottom muds, bank material, and suspended particles may all adsorb
some of the cations in  the surrounding water.   A more  comprehensive
treatment of surface chemistry and adsorption processes may be found in
standard references such as Taylor and Ashcroft (1972) or Buckman and Brady
(1969).

The surface chemistry of clay colloids affects  not  only their ability to
transport pollutants, but it also affects the behavior of suspended
particles in rivers or  estuaries.  As the concentration of cations in
solution increases, more cations are  adsorbed on the particle surfaces. This
tends to neutralize the negative charge  on the  particles and the associated
mutually repulsive forces which tend  to  keep suspended particles dispersed.
If the cation concentration in the water is  high enough, the repulsive
forces will be reduced  to the point where they  are  outweighed by Van der
Waals forces.  There will then be a net  attractive  force between particles.

Under these circumstances, colliding  particles  will tend to join together to
form aggregates, a process termed "flocculation."  This process generally
occurs in saline waters, such as estuaries,  with cation concentrations (Na+)
as low as 50 ppm.  The  aggregates formed by  flocculation exhibit much higher
settling velocities than the individual  particles and  so, as would be
expected, their behavior in suspension is quite different.  The behavior of
clays in estuarine environments is discussed in detail by Krone (1962).

The structure of organic colloids is  more complex and  more variable than
that of clays.  The nuclei consist of various compounds composed of mostly C
and H, which can be oxidized to inorganic material.  So, unlike clays, they
are not conservative substances.  However, they are similar to clays in that
the nuclei Have a strong negative charge and attract and adsorb cations.  In

-------
fact, the cation exchange capacity of organic colloids far exceeds that of
even the most active clays.   Hence, organic colloids will be more active
carriers of pollutants and their  tendency to flocculate will be stronger.


4.2  Sediment Transport Processes

On a basin scale,  sediment transport processes may be neatly split into two
groups: processes occurring on the land  surface and those occurring in the
watercourses (Bennett 1974).

On the land surface, aggregates or individual particles of material are
detached from the soil mass by raindrop  Impact and overland flow.  The
detached material may then be moved across the land surface by raindrop
splash and overland flow.  The natural microtopography of the area will tend
to concentrate the overland flow  resulting in rill and possibly gully
erosion.  Changes in land slope,  continued infiltration and obstructions may
all reduce the velocity, and hence, the  transport capacity of the overland
flow resulting in redeposition of all or part of the sediment load.  The
detailed picture is extremely complex.   Ultimately, overland flow and its
load of sediment,  together with adsorbed pollutants, may enter a stream
system to be routed further through the  river basin.

The principal aim of this research has been to study the transport of
sediment in and through the channel system.  The sources of sediment include
not only the inflow from the tributary land surfaces but also the banks and
bed of the river channel.

To remove material from a streambed, flow generated forces must overcome
stabilizing forces.  In the case  of cohesionless sediments, such as sand,
this happens when the lift and drag produced by turbulent velocity
fluctuations near the bed overcome the stabilizing forces generated by the
immersed weight of the particle.   Einstein (1950) used this criterion as a
starting point in his classic work on bed load transport.  In the case of
cohesive sediments, such as clays and colloidal organic particles, the major
stabilizing force is the attraction between the particles and particle
aggregates which make up the bed  surface.  This cohesion makes the bed far
more resistant to scour than would be the case if submerged weight were the
only stabilizing force.  Cohesive beds may be visualized as consisting of
several layers, each with its own shear  strength.  Significant scour will
only take place if the shear force exerted on the bed by the flowing water
exceeds the shear strength of the weakest layer.  The properties of cohesive
beds have been extensively investigated  by Krone (1963) and Partheniades and
Paaswell (1970).

We now consider the behavior of sediment particles suspended in the stream.
If the water were absolutely still, all  sediment would settle to the bottom.
Settling velocity (Vs) is strongly dependent on particle size; sand settles
quickly, whereas clay particles settle very slowly.  In moving water,
turbulence will be present to some degree.  For the purpose of this dis-
cussion we may view turbulence as superimposing a randomly fluctuating
vertical component on the velocity of a  settling particle.  The shear

-------
velocity (V )  is a measure of  this  component.  The effect of turbulence is
that, even in a steady flow,  the  water will never completely clarify.
Sediment particles will be lifted off the bed  and projected upwards into the
flow at a rate which eventually balances the rate of deposition due to
settling.  (The exceptions are situations in which sediment is too coarse
to be scoured or the bed is cohesive and is not  eroding.)  Rouse  (1937)
derived a formula for the equilibrium concentration profile for cohesionless
sediments;  the dimensionless  ration (V0/Vj.) is a crucial factor.
                                     o  W

The behavior of suspended cohesive  sediments is  complicated by the
possibility of flocculation.   If  colloidal  sediments are suspended in water
with low salinity, they will remain dispersed  and the  settling velocity will
be very small.  If, however,  the  salinity rises  above  a certain critical
level, the particles will be able to flocculate. The  resulting aggregates
will settle much faster than primary particles.  This  is what happens in an
estuary.  Note that there is usually a maximum size (or order) of particle
aggregate because large aggregates  are relatively weak and are easily broken
by shear in the flow.  These processes are  usually dynamic.  Aggregates may
simultaneously be growing in one  portion of the  flow profile and  breaking in
another.

Sediment transport involves the motion of a multitude  of individual
particles,  each with its own trajectory.  Some particles may be depositing
on the bed while others are being scoured away.  The difference between
these rates determines whether there is net deposition or scour.  An
equilibrium situation is actually the average  of many  unsteady
movement/rest/movement trajectories.  Because  there is a constant
interchange between suspended sediment and  sediment on the bed, any
contaminated material which enters  a reach  will  soon appear in the surface
region of the bed.  To predict the  effect one  would need a model  which
realistically simulates the way in  which the bed composition changes over
time.  It would have to predict factors such as  the relative quantity of
contaminated material in the surface (mixing)  zone, the thickness of this
zone, and the variation of these  quantities with time.

Prediction of the mixing zone thickness requires a distinction between
cohesive and cohesionless beds.  Cohesive beds are flat or almost flat and
there is very little, if any,  vertical mixing  of sediment in them.  The
mixing zone is very thin.  In cohesionless  beds, the mixing zone  depends on
particle size.  Materials finer or  coarser  than  sand will usually form flat
beds.  The mixing zone will again be quite  thin. The  vast majority of
streambeds, however, consist of sandy material of intermediate size.  The
flowing water causes the sand surface to deform  into a wavy pattern or bed
form in much the same way that the  wind molds  a  sandy  surface.  The geometry
of the bed form determines the thickness of the  mixing zone.

A variety of characteristic bed forms have  been  distinguished.  This subject
is discussed in texts such as the manual published by  the American Society
of Civil Engineers (Vanoni 1975).  The type of bed form depends on the flow
conditions and the bed material,  and in turn,  the type and amplitude of bed
form affects flow conditions.   Thus, there  is  a  complex feedback  between bed
forms and flow conditions involving mechanisms which are not yet  fully

                                     10

-------
understood.   Simons and Richardson  (1966)  and Vanoni  (1974) have developed
criteria for predicting the occurrence  and type of bed form given the
hydraulic conditions.   The most common  bed forms are  ripples and dunes. They
travel slowly in the direction of flow  and mix all the sand which they
contain.  Under these conditions the  mixing zone is approximately equivalent
to a smooth layer with thickness one-half  the mean amplitude of the waves.

Where the bed contains a mixture of sediments of differing sizes, it is
possible that armoring will occur.  Under  some flow conditions, the coarser
material in the bed may be immobile.  The  flow washes finer materials out of
the bed surface leaving an armor coat of the coarser  material.  This
protects underlying material from scour.   To model the armoring process, it
seems that we must subdivide the bed  into  layers so that the variability of
particle size distribution with depth can  be described.

The conditions affecting sediment transport in a stream vary both in space
and time.  As a flood passes a given  point,  the bed might be scoured as the
flow rises and then refilled as it  recedes.  Material buried for some time
will be removed and replaced with other sediment.  If one simultaneously
monitors the event at several points  in the reach, a  highly variable picture
can be expected.  At some points there  might be a lot of scour and
refilling; at others there might be little or none.   Some sand or gravel
bars may disappear; others may be created.  Vanoni (1974) points out that
the bed form of a stream may vary with  lateral position in the bed and that
different bed forms may occur simultaneously within a given reach.  Vanoni
concludes that "the implication of  this (variability) is disconcerting in
that it illustrates the complexity  of a natural stream and dims the hope of
predicting with confidence the behavior of such streams."

There is also variability which is  more systematic.   For example, the
velocity and depth of flow near the edges  of a channel are less than
velocity and depth near the center.  This  can result  in relatively coarse
material being moved down the mainstream while fine material is being
deposited near the banks.  Unfortunately,  practical considerations almost
always force us to use one dimensional  models to represent stream channel
processes.  As a result, much of the  spatial variability discussed above
cannot be explicitly represented.  We must model the  "average" situation in
a reach or, possibly, subdivide it  into midchannel and side channel
subsections.

Some streams are characterized by migrating meanders. Material is eroded
along some portions of the meander  and  deposited on others, resulting in a
net downstream movement of the sinuous  stream channel.  Sediment deposited
on the bank may remain there for decades or even centuries before being
re-exposed when the next meander arrives.   In such a  case, the stream is
reworking material in the entire meander belt, not only in the mixing layer
on the bed, as is the case with fixed channels.  This does have implications
for pollutant transport modeling.  If contaminated sediment is involved in
meander deposition and scour, particles deposited in  the meander belt might
remain stationary for many years, and the  adsorbed pollutants would be
subject to processes such as degradation.   However, if the belt only
contains coarse sediments and the contamination is confined to fine material
                                     11

-------
which travels as wash load,  meander migration  will  have a minor effect on
pollutant movement.

In all, sediment transport is a  most complex topic, and any attempt at
modeling must include some sweeping assumptions  and idealizations.  These
and corresponding limitations to the model  will  be  discussed in Chapters 5
and 6.
4.3  Influence of Chemical Pollutants on Sediment  Modeling

The purpose of this section is to indicate  some  of the  requirements that
chemical pollutants impose on a sediment-pollutant model.  Most chemical
pollutants travel in solution or adsorbed on  colloidal  material.  Many can
exist in significant concentrations in both forms.   If  there is an
imbalance, ions will tend to migrate so as  to restore equilibrium between
the adsorbed and dissolved states.   Some other processes which influence
pollutants are:  volatilization,  oxidation, biological  reactions, and other
chemical reactions.

It seems that the main implication for sediment  modeling is that we must
track the movement of colloidal material, both from the land surface and
through the stream system.  If a stream transports large quantities of
coarse material but, at the same time, deposits  silt and clay along its
banks or flood plain, the latter process will probably  be more important to
us.  By contrast, an engineer concerned purely with the quantities of
sediment transported would justifiably neglect the silt and clay.  It will
probably be necessary to represent a streambed with several layers in order
to estimate the concentration of chemicals  in it.   Consider, for example, a
bed on which contaminated sediment is depositing.   Even if the sediment
composition is uniform throughout the bed profile,  the  chemical composition
may vary because the material in lower layers has  had more time to react or
degrade than the overlying material.  Sediment age is therefore a
consideration.

The importance of coarser sediments is not  clear.   Although they are
relatively inert, sand particles can be covered  by colloidal matter, in
which case they probably behave as cohesive sediments by harboring
chemicals.  It is not clear what effect a mobile sand bed has directly on
finer sediments flowing in the overlying stream  and indirectly on pollutant
transport.  Most streambeds consist of relatively  clean sand which is formed
into traveling ripples or dunes.   In this case,  colloidal material is
probably scrubbed off the sand particles.   Thus, the mobile sand bed
prevents fine material from becoming a significant bed  constituent and,
indirectly, keeps contaminants out of the bed.   On the  other hand, for flow
over a coarse, immobile bed, experiments by Einstein (1968) have shown that
fine material is deposited in the interstices between gravel particles. This
takes place to some extent irrespective of  stream  turbulence and is one
mechanism whereby fine material and associated pollutants can be retained in
a streambed.  Fish spawning areas are sometimes  spoiled in this way.
                                     12

-------
In view of the uncertainty regarding the role  of  cohesionless sediment, it-
would seem wise to include all sizes of material  in  a  sediment pollutant
model.  After all, sediment itself is often  a  pollutant.
                                     13

-------
                                 CHAPTER 5

         THE WATERSHED EROSION AND SEDIMENT TRANSPORT (WEST)  MODEL


The Watershed Erosion and Sediment Transport (WEST)  Model  is  a  continuous
simulation model that represents the movement of sediment  and water  from the
land surface and through the stream systems of a river basin.   The
organization of the WEST Model is shown in Figure 1.   As can  be seen from
the figure, the WEST Model is in fact made up of two  separate models, the
ARM Model and the CHANL Model which are linked by a  simple data management
system.  The ARM Model continuously simulates hydrologic processes (surface
and subsurface), snow accumulation and melt,  and sediment  generation on the
land surface.  The CHANL Model simulates the in-stream processes of  water
movement and sediment transport.

Development of the WEST Model is the first step in developing a predictive
model for studying the movement of pesticides,  herbicides  and nutrients on a
basin scale.  Ultimately, it is hoped that the model  will  be  useful  in
assessing the impact on water quality of existing and proposed  land  use and
management techniques.


5.1  Modeling Philosophy

The principle underlying mathematical models is that  processes  which occur
in the real world can be represented by appropriately linked  mathematical
expressions.  Many different models have been used to study hydrologic
systems.  Clarke (1973) has grouped mathematical  models into  various
categories and described the underlying principles and uses of  each  type.
The model detailed in this report may be described as "deterministic
conceptual."  It is deterministic because given sets  of input data will
always produce the same output.   It is conceptual because  the relations and
parameters incorporated in it are based on the actual physical  processes
which take place in nature.

By using known physical processes,  the predictive capabilities  of a  model
for land use planning or management are considerably  enhanced.   In theory,
the conceptual model enables one to study the impact  of proposed changes in
land use or farming methods.  In practice,  however, many problems must be
resolved before these predictive capabilities can be  fully utilized.  Much
of our knowledge of sediment transport processes  is only qualitative  in
nature; that is, we know how or  why a process occurs,  but  definitive  figures
on rates or quantities are lacking.   The step of  moving from  the partially
                                    14

-------
                      Hydrometeorologic data
                      Land surface runoff
                       (LSRO) and erosion
                       (EROS) parameters
                          ARM MODEL
                       Simulation of land
                       surface hydrology and
                       soil washoff
                                    LAND
                                    PHASE
Point load
files
(sediment
and water!
                      Channel network
                       description
                      Hydraulic and sediment
                       routing parameters
                         CHANLMODEL
                      Simulation of hydraulic
                      routing and sediment
                      transport
       Line printer
        (spool 1)
       Output flow
        hydrograph
                                     CHANNEL
                                     PHASE
Line printer
 (spool 2)
Output sediment
 transport rates
Disk
output
(flow rates
and sediment
transport
rates)
                                  KEY
                                                  CARD INPUT

                                                  DISK FILES

                                                  MODEL COMPONENT


                                                  PRINTED OUTPUT
            Figure  1.   WEST Model organization
                              15

-------
 understood  physical world to its mathematical representation requires a
 number  of assumptions and simplifications.  The next step from the
 mathematical representation to the implementable computer code is yet
 another step from reality, and it is important that we detail our
 assumptions and simplifications so that the performance of a mathematical
 model can be adequately evaluated.  This chapter will describe the general
 organization used in basin scale modeling and point out the assumptions
 which determine the applicability of a model to a particular system.


 5.2  Modeling Approach

 A  fundamental principle underlying the WEST Model is that simulation of the
 processes in a watershed can be performed in two distinct phases:  a land
 phase and a channel phase (Figure 1).  The land phase includes all
 algorithms  which have to do with processes which occur on and under the land
 surfaces.   Output from the land phase enters the channel phase which
 simulates the movement of water and sediment through the natural channels
 down to the watershed outlet.  It is assumed that the channel processes have
,no influence on the land processes; i.e., there is no feedback to the land
 phase.   In  practice, a certain amount of feedback may occur:  for example,
 the bank storage of water in times of high stream flows (Todd 1964).
 5.3  Land  Phase Simulation

 Considerable effort has already been put into the simulation of land surface
 processes.  In particular, research efforts sponsored by the Environmental
 Research Laboratory in Athens, Georgia (Athens-ERL) have led to the
 development of the Agricultural Runoff Management (ARM) Model (Donigian and
 Crawford 19?6a; Donigian, et al. 1977).  The ARM Model considers an area of
 uniform land use and simulates the following process:

   •surface and subsurface hydrology
   •sediment production and removal from the land surface by overland
       flow
   •adsorption/desorption and degradation processes for pesticides
   •pesticide removal from the land both in solution and adsorbed on
       sediment
   •nutrient plant uptake and the major nutrient transformations
   •nutrient removal from the land both in solution and adsorbed on sediment

 The output from the ARM Model includes both the runoff and sediment
 contributions to the stream channels which are used as input to the channel
 phase  simulation.

 In the WEST Model, the land phase is simulated by dividing the watershed
 into "segments" (Figure 2) and applying the ARM Model to each segment
 separately.  Segments are visualized as areas of land (not necessarily
 contiguous) with uniform meteorologic and physical properties; for example,
 uniform rainfall, infiltration, surface slope, soil type, and land use.
 Input  to the ARM Model consists of various hydrometeorologic data (rainfall,

                                      16

-------
 evaporation)  and parameters  describing the system being simulated.  The ARM
 algorithms operate in  terms  of a unit area of land and produce land surface
 runoff rates as inches within  a modeling interval or land surface erosion
 rates as tons per acre within  the modeling interval.  Thus, the areal extent
 of the segment does not enter  the computations except as a final multiplier
 on the response from the unit  area.  The ARM Model can therefore be applied
 to a large segment in  exactly  the same way as a small field.
            Segment Boundary
                                                    Watershed boundary
                              KEY

                              LAND SEGMENT NUMBER
                              CHANNEL REACH NUMBER
            Figure 2.
Division
channel
of watershed
reaches
into land  segments  and
 Figure 1  shows  the  flow of information involved in the land phase
 simulation.   Inputs of hydrometeorologie data are transformed by the ARM
 Model  to  time series outputs of land surface runoff (LSRO) and land surface
 erosion (EROS).  LSRO is the depth of runoff, both surface and subsurface,
 flowing into  the stream system in each modeling interval for a particular
 segment.   EROS  is the mass sediment washoff per unit area reaching the
 stream system in each modeling interval.  Both LSRO and EROS, representing
 the response  from a unit area, are written to disk in specially formatted
 data files for  use  as input to the CHANL Model.  For the sake of clarity,
xFigure 1  only shows one LSRO and one EROS file.  In practice, for a
 vfetershed divided into a number of segments, one LSRO file and one EROS file
 would  be  produced for each segment.

 One drawback  of the present version of the ARM Model is that the sediment
 algorithms only estimate the total mass of sediment washed from the land
 surface in each modeling interval.  No indication is given of the particle
 size distribution of the sediment.  The transport algorithms in the channel
 phase  of  the  WEST Model, however, treat each particle size fraction
                                     17

-------
individually.  It was therefore necessary to either modify the sediment
production algorithms in the ARM Model to produce output by particle size
fraction, or include a procedure in CHANL to estimate the breakdown.   The
former option was rejected because there appeared to be little available
theoretical work on which to draw.  It was thought inadvisable to devote
considerable time and funds to the topic because the major thrust of the
present project was the modeling of processes in channels.  We therefore
decided to perform the subdivision in the CHANL Model.   This approach has
the additional advantage that data transfers between the land and channel
phases are reduced; one file of data containing total washoff is used
instead of a file for each particle size fraction.

The basis for subdivision, described in Appendix A,  should be regarded as  a
temporary measure since there have been no tests or comparisons with field
data.  The EPA (Athens-ERL) is currently studying the problem of predicting
particle size distributions of eroded sediment, and results of future
research may be used to replace or improve the existing algorithms.

For full details of the ARM Model, the reader is referred to the following
publications:  Crawford and Donigian (1973); Donigian and Crawford (1976a);
Donigian, et al. (1977).  A review of the ARM Model is  given in Donigian and
Crawford (1976b).
5.4  Channel Phase Simulation

The main thrust of the research was the channel phase simulation.   This work
resulted in the development of the CHANL Model for simulating  sediment and
water movement through the stream channel system.

5.4.1  Basic Procedure
The channel phase is modeled using a tree-like structure  of  "reaches"
(Figure 2) which represents the principal watercourses in the  basin.  The
CHANL model is able to take both point loads and diffuse  loads (output from
the ARM Model) and route water and sediment through the stream system to
complete the basin scale simulation (Figure 1).

When modeling large systems it is frequently desirable to divide the system
into parts.  In Figure 2 we might first simulate the reach system 4, 5, and
6 down to point A, and then go on to simulate reaches 1,  2,  3,  and  7
incorporating a point load input at A obtained from the previous simulation.
Alternatively, records of sediment transport rates and flow  discharge may
exist at point A which could be used as a point input to  the rest of the
system.  Thus, allowance for both point and diffuse loads increases the
flexibility of the model.

The CHANL Model operates on the inputs to give flow discharge  and sediment
transport rates at the required points in the system.   The outflow  from each
reach is computed for every time interval and becomes the inflow to the
channel immediately downstream.  The algorithms which handle the flow of
water are based on those used in Hydrocomp Simulation Programming (HSP)
(Hydrocorap 1976) and are relatively straightforward.   The simulation of


                                     18

-------
 sediment movement is much more complicated and required the development of a
 new  set of algorithms.

 5.4.2  Basic Assumptions
 Before going on to discuss the detailed theoretical aspects of the CHANL
 Model in Chapter 6, it is important that the user completely understand the
 basic assumptions used in the model development.  These underlying and
 elemental assumptions fix the area of applicability of the model and have
 considerable impact on the model's development and implementation as a
 whole.

 The  CHANL Model addresses the time variant problem of one-dimensional water
 and  sediment routing in natural channel systems.  The one-dimensional
 assumption is of great significance.   In particular it means that flow
 velocity and depth within a reach are represented by average values over the
 cross section.  Lateral variations of depth and lateral and vertical
 variations in flow velocity are all ignored.   Since sediment transport rates
 are  very sensitive to flow velocity,  varying approximately as the fifth
 power of velocity, transport rates and the mobility of coarser particles may
 be underestimated in some situations.   In many natural streams it will be
 observed that the coarser materials are moved down the center of the stream
 channel where velocities are greatest; whereas, closer to the banks only
 finer materials are in motion.   Such lateral variations cannot be handled in
 a one-dimensional model.   The CHANL Model assumes that transported material
 is uniformly mixed within the flow.

 One  approach to overcome these  problems is to use a two-dimensional model.
 Unfortunately, the computational complexities and difficulties in practical
 application are such that multidimensional models are rarely warranted in
 this type of work.  An alternative which may prove worthwhile and which
 warrants further study is use of a pseudo one-dimensional  model.   Each reach
 is split laterally into a number of sections in which velocity and depth are
 relatively uniform.   Sediment and water are routed through each section
 separately,  using the one-dimensional  assumption.   The velocities and
 transport rates in each section represent the lateral  variation over  the
 cross section.

 The  principal variables that have to be considered for sediment routing are
 the  hydraulic parameters  (flow  discharge,  depth of flow, cross-sectional
 area, and energy slope),  sediment transport concentrations,  and channel bed
 composition.   The hydraulic  parameters are the driving functions  for
 sediment transport,  and in this version of the model  they  are  provided by a
 kinematic wave representation of channel flows.   Kinematic routing  restricts
 the use of the model to stream  systems without bifurcations  and in  which
backwater effects are minimal.   However,  the  sediment  algorithms  have been
designed so  that substitution of more  sophisticated  hydraulic  routing
algorithms may be made easily.   Since  the model  will be used initially on
upland catchments,  more sophisticated  routing algorithms are not  warranted
at present.   Past experience with kinematic algorithms has shown  them to be
accurate and  quite efficient in terms  of computational  effort.
                                     19

-------
 Another major assumption  is  that  there is no feedback from the sediment
 processes to the  hydraulic processes.  In fact, such feedback occurs in a
 number of ways.   Firstly, scour or deposition of sediment may alter both the
 channel cross-sectional geometry  and its bottom slope, and these in turn
 affect the conveyance  properties  of the channel.  Secondly, for flow over
 cohesionless beds,  the hydraulic  conditions, water temperature, and bed
 composition control the geometry  and type of bed forms (ripples, dunes, or
 anti-dunes),  and  these in turn affect the roughness and hence conveyance of
 the  channel.   The effect of  degradation on channel slope has been discussed
 by Gessler (1971),  and Simons and Richardson (1965) cite several examples of
 the  interaction of  bed form  and hydraulic conditions.   In certain cases,
 these  interactions  are undoubtedly important, however, their inclusion in
 the  present model is not warranted because of the additional computational
 complexities and  the uncertainties in quantifying the interactions. Ignoring
 feedback has an attractive computational feature; that is,  the governing
 equations for water movement can  be solved independently of the continuity
 equation for sediment  transport.

 The  sediment algorithms simulate  the scour,  deposition,  and advection of
 both cohesive and cohesionless mineral particles (clays, silts, and sands)
 in freshwater stream systems.  The algorithms do not allow for flocculation
 of fine materials,  and so would not be applicable in saline waters, nor do
 they consider organic  material.   In the present version of the model,  the
 sediment algorithms cannot operate in situations with flow reversals or
 bifurcations,  although unidirectional flow with backwater effects could be
 simulated with appropriate hydraulic routing algorithms.  Finally,  the
 algorithms are only valid for Froude numbers less than 0.8.


 5.5  Data  Communication

 Continuous  simulation  involves the use of a  vast amount  of  data.   As  an
 example,  consider a run of the WEST Model in which  one segment only is  used.
 If we wish  to  run the model for one year using  a 15-rain  time  step,  then the
 LSRO and  EROS  files output by the  ARM Model  would each contain 35040  data
 items.   The management of such large amounts of data poses  real  problems.
 Not only does  data have to be transferred between the  ARM Model  and the
 CHANL Model but consideration has  to be given to the handling  of point  loads
 and the output of data from the CHANL  Model  for  plotting or further
 analysis.  The data handling  problems  become even more acute as  more
 constituents are modeled.   At present,  the ARM Model outputs two  files, LSRO
 and EROS.  Ultimately,  in  modeling pesticide movement  through  the stream
 system, we might require  an LSRO file,  several EROS files (one  for  each
 particle size fraction being  modeled),  and several  files containing masses
or concentrations of pesticides in solution  and  adsorbed on the  sediment.
There is a clear need for  some sort of  data  management system  to enable
convenient and efficient  use  of basin  scale  modeling.

The data management  system for WEST is  based  upon a series of  sequential
access disk files, with one file for each  time series of data  to be used.
Use of disk Tiles places a hardware  restriction  on model users.  However,
since the model may  have  to access a large number of files at one time, use

                                     20

-------
of disk, rather than tape storage,  is  the only  realistic  solution.  As far
as possible,  the model was written  in  ANSI Fortran so  as  to be useable on a
wide range of computers.   This restriction effectively eliminated  the
possiblility of using the more sophisticated  direct-access methods at this
stage in the model development.

The format, creation and  access of  the data files  is discussed in  detail in
Section 7.3.   Briefly, the system was  designed  with:

   •a minimum quantity of disk storage
   •labeled files to aid  in identifying data
   •fast transfer of data to and from  disk
   •infrequent disk input-output operations
   •relatively simple file formats  so  that users may write their own ancillary
      programs for the display,  generation, or  analysis of data.

Although the original purpose of the data management system was the transfer
of data from the ARM Model to the CHANL Model,  it  quickly expanded to
include the input of point loads and the display of results.  These
functions required the development  of  an assortment of ancillary programs to
assist in the generation  of data files, plotting of results and so on.
Unfortunately, there is no generally recognized machine-readable format for
sediment data and so the  user is urged to develop  his  own ancillary programs
to meet his particular requirements.   Ancillary programs  are discussed in
Chapter 8.

As more constituents and  more complex  systems are  modeled, it is likely that
a more sophisticated data management system will be required.  The
development of such a system is currently in  progress  as  part of grant
number R804971-01-1 from  Athens-ERL, entitled "Comprehensive Package for
Simulation of Watershed Hydrology and  Water Quality."
                                     21

-------
                                 CHAPTER 6

                   CHANL MODEL:  THEORETICAL FOUNDATIONS
6.1  Introduction

Chapter 5 outlined the general approach to basin scale simulation  and
discussed the basic assumptions used in the development of the  CHANL Model.
One of the central features introduced in the chapter was  the simulation of
land and channel phases as two separate steps.   This  approach was  possible
because of the assumed absence of feedback from the channel to  land phase.
By neglecting the feedback from sediment processes to hydraulic processes,
the  hydraulic routing and sediment transport may be  treated in a  similar
manner, i.e.  simulation may be dene in two separate steps;  first hydraulic
routing and then sediment transport.

The general organization of CHANL is shown in Figure  3.  The period for
simulation is divided into a number of "time blocks," the  length of a time
block being a fixed multiple of the modeling interval chosen. The  "time
block" concept is discussed in detail in Chapter 7.   Processes  in  a reach
are simulated for a complete time block before moving on to the next reach
in the system.  Hydraulic routing and sediment transport calculations are
performed in sequence for each interval within the time block.   Output from
the hydraulic routing are used as the driving functions for sediment
transport calculations.  Details of the computational features  of  the model
are presented in Chapter 7.   We will now discuss the  theoretical basis for
hydraulic routing and sediment transport.


6.2  Hydraulic Routing Algorithms

The kinematic routing method uses the continuity equation  for water and a
storage-discharge relationship for each reach.   The continuity  equation in
integral form is:

     X                X             T             T
      /i+i           r i+i         r j+i         r j+i
     A(x'Vi)dx ~ /  AT.)dx  =  /  Q(xi,t)dt  -  / Q(xi+1,t)dt
                          J      J     Z        •'
                      /•Vi rx±+i          /-TJ+I
                     -I      I q(x,t)dxdt + I P(t)dt                    (1)
                      •T
                                    22

-------
           c
START
              Initialize for
              run.
                   I
             Time block loop

                   I
            Get "time block"
            of all LSRO&
            EROS data
                   I
               Reach loop
              	I
            Get "time block"
            of all POINT loads
            for this reach
                   T
           -*• Interval loop
                   I
            Hydraulic routing
             Sediment routing
           C
  END
Figure  3.   Organization of  CHANL Model
                 23

-------
The symbols are defined at the beginning of this report; see pages xii-xv.
The finite difference representation of the equation is based on a four
point explicit scheme (Figure 4).  The following approximations are made:
                                                   . + 1
                                                                            (2)
  I
/•
       Q(Xi>t)dt =
      T.
       J
(3)
with similar expressions for the remaining terms in Equation 1.   The
weighting parameters 0j and 0. control the stability and accuracy of the
finite difference scheme.  Values of 0 must satisfy 0 < 0 < 1.
                     T:j
                         0       X-          y           x
                         u       Ai          xj+1        x

                Figure  4.   Grid  for  finite difference scheme

Introducing the approximations into Equation 1  and rearranging;


    Ax(l - 0,)
         = At
         + Ax At q + 0.5 At  /P(T.)  + P(T   .)l
It is assumed that conditions along time line j and space line i are known
and that we are presently stepping along time line j+1.   Unknowns in
Equation 4 are thus A(Xi+i, Tj+1) and Q(Xi+i, Tj+i).   The point load P(t)
and lateral inflows q represent boundary values supplied by the user.
                                     24

-------
For the kinematic routing, outflow from a reach is assumed  to  be  a  function
of storage in the reach, and channel reaches are simply storage elements.

In the approach adopted here channel reaches are assumed to be prismatic.
Hence, although continuity of flow is maintained across reach  boundaries,
there is no continuity of cross-sectional area.   These  considerations, and
consideration of numerical stability led to a choice of Q± = 0.  For accurate
time integration, a value 62 = 0.5 is assumed.   Substituting 0  = 0, 0  = 0.5
in Equation 4 gives:                                                 2
     0.5 At {Q(X1+1,Tj+1) + Q(X.+1,T.)} + A* { A(X.+1,T.+1)  - ACX^.T.



               = 0.5 ^{QO^.T.^)  + Q(X1,T.)|  + Ax  Atq



                      -I- 0.5 At |P(T.)  + P(T   )}                           (5)
The other basic equation involved  in the  hydraulic  calculations is:

     S(t) - f [Q(X,t)]                                                  (6)
This function implies a fixed relationship between storage and discharge
which again is an approximation.  Manning's equation is used to evaluate
this relationship giving:

                                  [A(X    t) I ^^

                                  pra^J     *SLOPEl/2

and, with the assumption of prismatic cross sections,  storage is:

     S(t) = Ax*A(Xi+1,t)                                                  (8)

Flow routing involves the simultaneous solution of Equation 5 and  7  to  find
the unknowns A(XI+I, Tj+1) and Q(X1+1,T.+, ) .   Figure 5 illustrates how  this
is done.  Using Equation 7, the cross-sectional area of flow and the
corresponding discharge are found for several different water levels.
Intermediate values are found by linear interpolation.  Equation 7 then
graphs as a series of straight line segments in Figure 5.   Equation  5
expresses a linear relationship between storage and discharge and  plots as a
straight line.  The routing procedure involves finding the intersection of
the two graphs (point B) .  If the graph for Equation 5 passes below  the
origin there is no solution.   The main program checks for  this condition by
finding the intercept on the Q axis:
                                             _
     QINT = 2*=*A(XfT )  - Q(X,T  )  + 2*1
                                     25

-------
where I is the rate of inflow to  the  reach  from  all  sources, i.e. diffuse
loads, point loads and inflow from upstream channels.

A negative value of QINT is interpreted  as  meaning that  the channel has gone
dry during the interval under consideration.   If this  happens, the standard
routing algorithms are bypassed and Q(Xi+i,  Tj.fi) and  S(T^+i) are set to
zero.  If QINT is positive, subroutine ROUTE is  called to  solve the
equations.  It does this by finding the  intersection of  curve 5 and the
segment of curve 7 on which point A is situated,  or  the  linear extension of
that segment.   This is labeled point  E  in  Figure 5.   If Ej is outside the
segment of curve 7 which contains A,  the program selects the adjacent
segment, moving in the direction  of Ej,  and again solves the equations
(point £2).  The process is repeated  until  the true  point  of intersection B
is located.  This becomes the starting point for calculations in the next
time step.
                                                        Q
                                                   DISCHARGE
           Figure  5.   Graphical  representation of the equations used
                      in  kinematic  routing
Point B provides values for the unknown  discharge  Q(X^+i, Tj+i) and storage
S(Tj+i).  The cross-sectional  area is  then  obtained  through "Equation 8 and
knowledge of the cross-sectional geometry enables  calculation  of the depth
of flow. The point values of area,  discharge,  and  depth  obtained are passed
to the sediment algorithms.

The stability and accuracy of  the finite difference  scheme is  affected not
only by the form of the numerical approximations,  but  also by  the value of
                                     26

-------
 the mesh ratio  Ax/At.  However in this model the sediment algorithms provide
 a  more  stringent restriction on the mesh size, namely


     £>2                                                             <«>
 That is, the  flow time through the reach should be greater than the modeling
 interval.   This restriction is intended to prevent complete flushing of a
 reach in the  time interval.

 6.3  Sediment Transport Algorithms

 6.3.1   General  Approach
 Depth of flow,  cross-sectional area, and discharge are the principal
 variables passed from the hydraulic calculations to the sediment algorithms.
 These provide the "driving force" for routing sediment through the channel
 system.  In any one reach, the sources of sediment are:

      •inflows  from adjacent upstream reaches
      • point inflows
      •diffuse or local inflow (sediment washoff from the land surface)
      •scour from the channel bed

 Initial sediment transport concentrations in the reach and initial bed
 composition are necessary to describe the system for the start of
 simulation.
The major processes to be modeled are advection of  sediment and scour and
deposition of both cohesive and cohesionless material  (Figure  6).  Modeling
scour and deposition requires consideration  of other  processes, namely
armoring and the development of bed forms,  both of  which are dependent on
the bed composition.  The principal output  from the calculations is  the
sediment outflow from the reach.  However,  the algorithms are  also required
to recompute sediment transport concentrations and  bed composition which,
together with the hydraulic variables,  completely describe the state of the
system.

The routing calculations are based on solution of the  mass continuity
equation for sediment movement.  The general sequence  of computations
involved in the solution scheme is shown  in Figure  7.   There are two
unknowns in the continuity equation:   the sediment  transport concentrations
at the end of the modeling interval and the net scour  or deposition  of
material.   The method of solution of the  continuity equation depends on the
type of material being considered.   For cohesionless material, the sediment
transport concentrations may be found by  using one  of  the many transport
equations available.  Substitution of this  value in the continuity equation
then gives the net scour from the channel bed.   For cohesive materials, the
scour rate may be related to the flow rate  by  an empirical equation.
Consideration of hydraulic conditions and particle  settling velocity gives
the deposition rate, and hence the net  scour over the  modeling interval.
This may then be substituted in the continuity equation to give the  unknown
sediment transport concentration.   Note that the continuity equation must be
solved in a different manner for cohesive and  cohesionless materials.

                                     27

-------
         POINT WATER
         AND SEDIMENT
         INFLOW
  WATER AND
  SEDIMENT INFLOW
  FROM UPSTREAM
  0
Figure-
                          LOCAL WATER AND
                          SEDIMENT INFLOW
                                            CHANGE IN
                                           WATER LEVEL
DEPOSITION
OF SEDIMENT
                       SCOUR OF
                       SEDIMENT
WATER AND
SEDIMENT
OUTFLOW
                                                            UJQ
                                                            ocm
                             rocesses simulated in a reach
The remainder of this section describes the detailed aspects of the  sediment
routing calculations.   The  reader should refer frequently to Figure  7  to
maintain an overall picture of the solution scheme.

6.3.2  Representation of  the Physical System
Two topics of concern in  simulating the physical system are the
representation of graded  material and representation of the channel  bed.

Sediments of different particle sizes are transported differently, have
different scour and deposition characteristics and have different affinities
for chemical pollutants.  Also, the gradation of material is instrumental in
the development of araoring.  It is important then that a model  be able to
represent the movement of the range of particle sizes found in  a channel
system.

The model represents a graded material as a number of discrete  particle size
fractions.   The following fractions are used:

       • one clay fraction;  diameter <0.002 mm
         As a cohesive material,  clay shows very different scour properties
         from those  of sand.  Once in suspension,  clay is considered to form
         the wash load; that is,  most particles will remain in  suspension and
         be washed through  the channel system.

       •one silt fraction:  0.002 mm 
-------
                               Find depth area &
                               discharge from
                               hydrauliccalcs.
                             Find sediment inflow
                             by particle size fraction.
                              Check the mobility of
                              & find the ultimate
                              transport cones, for
                              sand fractions using
                              Ackers & White
                              transport eqn.
                              Determine type of
                              bedform and thickness
                              of active layer if any.
                              No active layer forms
                              if top layer is cohesive.
                           YES
  Scour from
.cohesive layer?,
                 NO
Compute the mass of clay
& silt scoured from the
cohesive layer. Determine
mass of sand released by
scour of cohesive material
& add to active layer.
                           Mass of clay & silt
                           removed.

                           Mass available in
                           active layer (corrected
                           for armoring).
         Figure 7.   Sequence  of sediment  transport calculations
                                       29

-------
                                     0
                             Correct sand transport
                             concns. for the proportion
                             of each size fraction in
                             the active layer & for
                             presence of  immobile
                             material (armoring).
                             For sand fractions use
                             Continuity Eqn. & known
                             transport concns. to
                             determine net scour.
                                       Is
                                 rMass scoured

                                 iMass available/
                                   for scour
NO
                                         YES
                             For sand fractions use
                             Continuity Eqn. & mass
                             available for scour to
                             determine actual
                             transport concns.
                              Correct mass of clay
                              & si It scoured for
                              deposition to determine
                              net scour.
Figure 7.  Sequence  of sediment transport  calculations  (Continued)
                                     30

-------
                                   ©
                           For clay & silt fractions
                           use Continuity Eqn. &
                           mass scoured to determine
                           transport concns.
                            Update bed composition
                            for net scour/deposition
                            of all fractions for
                            next time step.
    Figure 7.   Sequence of sediment  transport  calculations  (Continued)
         •one or more sand fractions;   0.05 ram <  diameter
          The number of sand fractions should be  such that armoring of the
          bed may adequately be represented.  The model has been tested with
          as many as seven sand fractions.

In a natural channel, especially in the upper reaches of a system, there is
usually a wide gradation of material.  The discrete size fractions chosen
for use in a given application should obviously represent actual gradation.
Some problems arise in this representation.  Discretization of sediment
sizes causes some discontinuity in computed results.  For example, as flow
increases, formerly immobile material will become mobile in steps instead of
following a smooth transition.  The effects of this assumption can only be
evaluated after experience has been gained in using the model.

The bed is described in each channel reach by a number of bed layers; the
composition within each one is assumed to be homogeneous.  The initial
thickness of the bed layers and their composition by particle size fraction
are input by the user.  The composition of a channel bed is usually quite
variable and the conceptualization of the bed as a number of homogeneous
layers is necessarily far from reality.  However, this approach does allow
the inclusion of those gross bed features which affect sediment transport
rates.  Such features include layers of coarser material which may provide
armoring, lenses or layers of dense clays and so on.  The model allows for
the creation and destruction of these bed layers to enable both the direct
simulation of the creation or break down of armoring layers and the ability
to keep account of material availability for each particle size fraction.
                                     31

-------
 6.3-3  Derivation of the Continuity Equation
 The  continuity equation for sediment transport may be written in integral
 form as  (the symbols are defined at the beginning of the report):
      T             T         T     X
       j + 1         f j + 1      /.j + 1 r i+1
/  +          f j

G(X.,t)dt + J P
                                        g(x,t)dx dt
     T.
      J
                                                    /*i
                                                   /M(x
                                                                    (11)
           1               l                           i
Numerical approximation of the integrals in the above equation requires
careful consideration.  Bella and Dobbins (1968) studied the numerical
problems associated with the modeling of stream pollution and some of their
recommendations have been implemented here.   The potential use of the model
with "full-equation" hydraulic routing dictates the use of flow rates and
other hydraulic variables as point values in space and time.  It was for
this reason that the kinematic routing in the previous section was expressed
in terms of point flow values, not mean values as is the usual practice.

Sediment transport concentrations cannot, however, be satisfactorily treated
as point values in time and space.  The principal problem that arises is in
determining concentrations at the upstream and downstream boundaries of the
system.  For this reason sediment transport concentrations are taken as
spatially averaged concentrations at points in time.  Figure 8 summarizes
the finite difference scheme; hydraulic parameters are determined at points
in time and space (points 1,  2, 3, 4, ...),  sediment transport
concentrations and other sediment related parameters are determined as
spatially averaged values at points in time (points A,  B, C, ...).


Defining (XX.^, TJ) as the average sediment transport concentration for  the
reach upstream of point X. at time T.,  the following approximations may be
made:
     /i+1                     /
    C(x,T.) A(x,T.)p dx = Ax |oiP C(X1+1,T_.)  A(XI>TJ)


   -1
             -4- fl  _ O ^n rf-V    T }  A^V    T  ^l                            (12)
             T (i  — U,;p ^>\A..,ti..J  "vA.  ,,l,;>
                     1      i+1  j     i+1 j J
                                     32

-------
                                                    x4
         Figure 8.   Finite difference grid for sediment  modeling
and assuming:  G(X ,T ) = p Q(X ,T ) C(X ,T )
then:                J         i  J        J
f

/
 G(X1,t)dt

Lj
                            ) Q(Xi,Tj)
                                                                           (13)
                                                                           (14)
Similar approximations may be made for the other terms in Equation 11.  The
weighting parameters ©i and 02 may again be used to control the stability
and accuracy of the scheme.  Values of 0 must satisfy 0 <_ 0 <_ 1.

Introducing these approximations into Equation  11 and  rearranging:
                    p   1 * 02)
                                              At
                                          Ax
                       T.) A(Xi,Tj)
       -  PAtQ2C(Xi+1,T..) Q(Xi+1,T..) + g Ax  At +  0.5 At JPS(T.) + PS(T.   )1   (15)
                                     33

-------
 For  consistency with the kinematic routing presented in Section 6.2,  a  value
 0} = 0  Ls used in the sediment algorithms.  Also,  for accurate  time
 integration, a value 02 = 0.5 is used.

 Substituting QI = 0 and 02 = 0.5 in Equation 15 gives:
                                                       Ax
     = 0.5 pA
               I    1  J     -1-  J

          -I- pAxC(X.  , ,T.)  A(X.  n ,T.)  + g Ax  At +  0.5 At 
-------
       34    6   8  ,n3
                                        34    6  8 ,«4
             YD50= DEPTH/050




 are 9.   Bed form chart  tor  Rf,  =
102           346  81Q3
                                  34    6   8
                                               10
             YD50 = DEPTH/050




Figure 10.   Bed  form  chart  for  RG  =  1D.O





                   35

-------
                            6   8  io3
                          YD50= DEPTH/050

                         ftirm chart  for Kt; =  lh.0
34     6   8 1Q4
.,
0
   .04
                           YD50- DEPTH/050

                  12.  Hc-d  I'dnn ch.-irl t'cr  R(l  =• 2ri.O

-------
II
• I
: ;
 >
•
Q
                              34     68  ,«3
   .06
  .04
56   8  02
2    345
                          YD50= DEPTH/050

           figure-  I 'i.   lii-d  form rh.-irl  lor k(l =  40.0
                                          34
                           6   8 1()2

                         YD50 = DEPTH/050

                 l/i.   Bed  lorm cliarl  for RC  •-••  KO.O
   6    8|03
                                '/

-------
found in a reach depends on a combination of three parameters.   These
parameters are:

    (1)  Froude number FR
              FR = v(xi+1,  T.+I)/YGRAV*DEPTH                        d?)

    (2)  Grain Reynolds number RG
              RG = D50*-y/GRAV*D50 / KINVIS                           (18)

    (3)  The ratio flow depth/median size of bed  sediment

              YD50 = DEPTH/050                                       (19)

where DEPTH is defined as the average flow depth  over  the cross section:

    DEPTH = A(X1+1, Tj+1)/TOP(X1+1, Tj+1)                            (20)

The charts cover a range of values of grain Reynolds number, RG,  from 1.5 to
80.0, and are valid for Froude numbers up to 0.81.  Use  of  the charts
proceeds as follows:

    (1)  Determine the median size of mobile sand fractions in the top
         bed layer (particle mobility is  discussed  in  Section 6.3.5).
    (2)  Determine values for YD50, RG, and FR.
    (3)  Interpolate between charts to find the bed form corresponding
         to the computed values of YD50,  RG,  and  FR.

After the type of bed form is defined, the next step is  to  find the height or
amplitude of the bed form.  Yalin (1961,  1976) presents  both a theoretical
analysis and experimental data for estimating the height of ripples and
dunes.  The geometry of ripples is solely a function of  particle  size;
it is independent of flow depth.   Yalin (1976) gives ripple length:

    L  x 1000*050                                                   (21)

and maximum steepness:

    H

    Lr~3                                                          (22)

Hence, the maximum height of fully-developed ripples is:

    Hr x 200*050                                                    (23)

Within the model ripple height is given as:

    H  = RIPPLE*D50                                                 (2U)

where RIPPLE is a user-defined parameter  with a suggested value of about
100.

                                     38

-------
The geometry of dunes is more complex and appears to be a function of both
flow conditions and particle size.  For fully-developed dunes, Yalin (1976)
gives dune length:
    L  » 2»Tr«DEPTH
     d

and maximum steepness:

    H.
      - » 0.06
                        (25)
Hence, the maximum height of fully-developed dunes is:
    H. » 0.38*DEPTH
     d
                                                                     (26)
                        (27)
Nordin and Algert (1965) point out that the average maximum amplitude of
dunes is about 0.33*DEPTH, while Jopling (1965)  cites several cases of dune
amplitudes of 0.5«DEPTH.  Within the model, maximum dune height is given as:

    Hd = DUNE«DEPTH                                                  (2g)

where DUNE is a user defined parameter with a suggested value of about 0.4.

To show the variation of dune amplitude with flow conditions,  Jopling (1965)
plotted the relative dune height (Hd/DEPTH) against bottom slope resulting
in a series of graphs idealized in Figure 15.  For uniform flow,  slope
can be related to Froude number through Mannings equation,  giving:
    log(SLOPE) = K + 2*log(FR)
where K is a constant.
                        (29)
            .0001  .0002
002
Dl
                      .0005     .001
                            SLOPE
Figure 15.   Relative roughness vs.  slope  from  Jopling  (1965)

                              '

-------
This allows Figure 15 to be transformed  to  a  plot  of  relative roughness
vs. Froude number as depioted in Figure  16.   Values on  the abscissa
of Figure 16 are not important;  the  intention here is to  just show the
general relationship.  Returning to  Vanoni's  bed  form charts, Figure  10
for example, may be entered with a value of YD50  = 5000.  This gives  a
transition from ripple to dune at a  Froude  number, FRRD = 0.105  and a
transition from dune to flat at a Froude number FRop  =  0.3.  Using the form
of relationship in Figure 16, the maximum dune height is  assumed  to occur
at a Froude number:
    log(FR
          max
                       (30)
Suppose the actual Froude number is FR,  then using  logarithmic
interpolation,  the actual dune height is:
    H, = DUNE*
     d
|log(FR   )  •  log(FR)
 	max	
 log(FR   )  -
       max
*DEPTH
(3D
                                FROUDE NUMBER
                Figure  16.   Relative  roughness vs. Froude number
For both ripples and dunes, the active layer is represented  as  a  smooth
layer with a potential thickness ACTIVE equal to one half the height of
the bed form (Figure 17).  Because of lack of data,  flat  bed forms  are
assumed to produce an active layer with the same thickness as that  produced
by ripples.

The full development of the active layer may be affected  by  the presence
of immobile particles and by underlying cohesive layers (percentage of
clay and silt exceeds BIND).
                                     .

-------
        Undisturbed
        bed layers
                                                        Equivalent
                                                       active depth
                                                       ADEPTH
                                                   Immobile material
                                                   drops to bottom
                                                   of active layer
                ire 17.  Si-rt ion through colics i on 1 rss bed
As the bed forms move downstream, immobile material will drop to the
bottom of the active layer (Figure 17).  An equilibrium depth is defined
as the depth of mobile bed material which must be scoured away to leave
an immobile armoring layer sufficiently thick to prevent further scour.
The thickness of the armoring layers which will prevent all scour is :
    ARMOR = ARMF*D50A

where    D50A = the median diameter of immobile material
         ARMF = a user supplied parameter
                                                                 (32)
In theory, ARMF need only be 1.0 to prevent scour.  However, in practice
a value closer to 1.5 or 2.0 is used to account for spatial variability.
A complete discussion of armoring appears in Section 6.3-6.

The depth of scour required to produce an armoring layer ARMOR thick is:
           ARMOR
ARMD s
                                                                     (33)
We note that the armoring layer prevents disturbance of underlying material;
hence, by definition, the actual depth of the active layer is:
    ADEPTH = MIN (ACTIVE, ARMD)
                                                                 (31)
Formation of the full active layer may also be restricted by underlying
layers of cohesive materials.  The cohesionless material above the cohesive
layer becomes completely mixed,  but there is no mixing with material from
the cohesive layer, nor is there any mixing within cohesive layers (Figure
18). Note that because the active layer is not fully developed,  the
underlying cohesive layer may be subject to scour.  Cohesive materials are
discussed in detail in Section 6.3-7.

The importance of developing information on the "active layer" for
cohesionless materials lies in obtaining representative estimates of the


-------
                                           Partially developed
                                           active layer
                                           (cohesionless material)
Figure 18.   Section
                                                 Cohesive
                                                 bed layers
                                               Undisturbed
                                               cohesionless layer
                                     ixi-d c-ohos ion less/cones ive bed
particle size distribution within the surface zone of the bed.  It is this
material which is immediately available for transport by the stream flow and
whose availability controls transport rates of the individual size
fractions.

6.3.5  Transport Concentrations  for  Cohesionless Material
There are many methods currently available  for estimating  the transport
rates of sediment in uniform  flow over  a cohesionless bed.   The technique
developed by Ackers and White (1973) was chosen for  use  in this work, for
the  following reasons:

     (1)  The method predicts  total  transport  rates;  the  usually arbitrary
         distinction between  bed load and suspended  load is avoided.

     (2)  The theoretical  basis of the method  is understandable and
         assumptions and  restrictions are well documented  (White  1972).

     (3)  The method has been  extensively tested on both  field and laboratory
         data and its  performance compared  favorably with that of other
         techniques (White, Milli,  and  Crabbe 1973a, 1973b, 1975).

     (M)  The method is relatively easy  to implement  on a computer.

     (5)  The method may be  used  with graded materials.

The  most serious restriction  of  the technique for use  in this worlc, and  one
which applies to all other  known techniques,  is that testing on graded
materials has been limited.   Where  tests have been made, no attempt has  been
made to  predict the transport rates for individual particle size  fractions.
The  transport rates are given for some  median particle size.
                                      ,

-------
To compute the transport rate for a uniform sediment,  the following
properties of the system must be known:

         particle diameter,  DIA
         specific gravity of the sediment,  SG
         mean flow velocity, V
         sheer velocity, SHEARV
         depth of flow, DEPTH
         kinematic viscosity of the water (implying knowledge of water
           temperature), KINVIS

The calculations are carried out as follows:

    (1)  Determine the dimensionless grain  size,  DGR,  from the relationship

                                             1/3
              DGR = DIA*
[GRAV*(SG - 1.0)1

  KINVIS2     J
    (2)  Determine the following calibration coefficients for particles
         with 1  < DGR < 60:
              AN -  1.00  -  0.56  log  DGR                              (37)
         log1QAC  =  2.86  log1QDGR -  (log^DGR)2 - 3.53               (39)
         for particles with DGR>60:

              AA = 0.17                                             (40)

              AN = 0.0                                              (41)

              AM = 1.5                                              (42)

              AC = 0.025                                             (43)
                                     43

-------
    (3)  calculate the particle mobility,  FGR:
                SHI'ARV
                     r	Y	I
I/(;RAV*DTA*(SG - i)   Lj/32 *  log  (IO*DEPTH/DIA-|
                                                              (l-AN)
                                .
                                A
                                                                     (44)
    (4)  Compute the dimensionless sediment transport
         rate GCK:
         G(;K = AC *   -rf-" - 1
                      AA
       I  FGR
       |_AA
                               AM
(45)
         For FGR < AA the particle is immobile and the value  of GGR  zero.

    (5)  Convert GGR to a sediment transport concentration CP as parts
         by mass of water flux.
              GGR*SG*D1A
              — —	—	.— — 7
                DKITH
                                   AN
                           SHKARV
                                                        (46)
The transport concentration CP obtained in Equation 46  is  a  potential  or
ultimate concentration;  it is the concentration of sediment  of diameter DIA
in steady uniform flow over a bed completely composed of cohesionless
particles of diameter DIA.  The computations outlined in Equations  35  to 46
above are done for each particle size fraction.   Then the  actual  transport
concentration for sand size fraction I is assumed to be:
                'CMO
                                                                     (47)
where    PC(I) = percentage of material of size fraction I  in  the  active
                 layer
          PCMO = percentage of mobile sand in the active layer

When using any sediment transport function,  it is important to have  some
feeling for the accuracy that may be expected.   White,  Milli and Crabbe
(1975) show that for tests of Ackers and White's method on  field and
laboratory data the ratio of computed to observed sediment  transport
concentrations lay between one half and two for 68 percent  of  the  data.   In
other words, predicted transport rates which are double the observed rates
are well within the expected accuracy of the method.   To those unfamilar
with sediment transport, it is worth pointing out that few  available methods
are better than the method developed by Ackers and White.

6.3-6  Armoring
The transport concentrations obtained from the Ackers  and White method may be
affected by the presence of immobile material.   Immobile material  tends to
shelter potentially mobile particles and prevent, or at least  hinder, their
movement.  Gessler (1971) shows that under steady flow,

-------
degradation with protection by armoring is  an  asymptotic process.  The rate
of scour decreases at an exponential  rate as the  thickness of the immobile
armoring layer increases.  This effect is incorporated by using the
relationship shown in Figure 19.
                    SCOUR
                  REDUCTION
                   FACTOR
                    (FACT)
                                   PROTCT
100
                                PERCENTAGE IMMOBILE MATERIAL
                                       INACTIVE LAYER

                   Figure  19.  Reduction of scour by armoring
The user supplied parameter PROTCT is  the  percentage of immobile sand in the
active layer which will just start to  protect finer material from scour.

The concentrations given by Ackers and White are multiplied by the scour
reduction factor to give the unknown transport concentrations required for
the solution of the continuity Equation  16.

6.3-7  Deposition and Scour of Cohesive  Material
Flowing water has a definite upper limit on its capacity to transport
cohesionless sand particles.   The  ability  to transport fine cohesive
materials such as clay and  silt is, however, essentially unlimited.   The
flowing water will usually  carry whatever  cohesive particles are freely
available or can be detached from  cohesive banks or bed layers.

Prediction of the transport of cohesive  materials is therefore based largely
on the consideration of material availabe  and the ability of the flow to
detach the material from cohesive  layers.  By predicting the net mass of
material removed from or added to  the  channel bed, the continuity Equation
16 may be solved for the cohesive  clay and silt fractions.

As with cohesionless fractions,  the transport of cohesive materials
represents the average of many individual  particle trajectories involving
both deposition and scour or uplift.   This has been demonstrated by  Einstein
(1968) who showed that cohesive particles  may be deposited in the
interstices of immobile gravel beds where  they are protected from
resuspension.
                                    A 5

-------
 Deposition of clay and silt fractions is estimated  using  the relationship of
 Figure 20.  It is based on curves presented by Brown  (1967), which he
 derived from work by Camp (1943).  To facilitate implementation in the
 model, the curves have been modified using work by  Einstein (1968) and Owen
 (1969).  Figure 20 is entered with the value of (SETVEL/SHEARV) which is an
 inverse measure of relative turbulence.   The proportion of suspended
 material deposited in the time interval  At is given by the ordinate.  Hence,
 the mass of clay and silt deposited in a time interval may be found.
                           1.0 -
                FRACTION OF
                SUSPENDED
                 MATERIAL
                DEPOSITED
                  IN TIME
                INTERVAL
                                        SETVEL
                                        SHEARV
(LOG SCALE)
                   Figure  20.  Deposition curves for clay and silt


One problem with the current algorithm is that its effects vary with the
time interval At.   Note  that the  term (1 - e~z) tends to Z as time interval At
tends to zero.  This means that for the same period of simulation,  when the
time step At  is small,  an increase in At will increase the predicted mass of
material deposited.   This  effect  requires further investigation.

The scour of cohesive materials is controlled both by material availability
and by the ability of the  flow to detach material from the bed.  Two
distinct situations can  be envisaged.

Firstly, in the situation  depicted in Figure 17, the bed is cohesionless
(percentage of clay and  silt less then BIND).  The total mass of clay and
silt in the active layer is assumed to be immediately available for
transport.  The only factor which may prevent removal of this fine material
is protection by immobile  material.  The mass of cohesive material actually
put into suspension is the mass available multiplied by the scour reduction
factor from Figure 19.
                                     46

-------
The second and more complex situation concerns the  scour of cohesive layers
in which the percentage of clay and silt lies somewhere between BIND and 100
percent.  The cohesive layer may be a surface layer,  or as a more general
case, it may be overlain by a thin layer of cohesionless material as
depicted in Figure 18.   In the latter case,  the layer of overlying sand is
not thick enough to form a full active layer and so completely protect the
cohesive layer from scour.  However,  the overlying  sand layer is presumed to
reduce scour rates.

Clay and silt tends to bind bed material and prevent  the formation of an
active layer.  The clay and silt thus have a profound effect on the
transport of sand fractions present in a cohesive layer.  The detachment of
clay or silt is assumed to "release"  sand fractions from the cohesive bed.
The released material may form a new temporary cohesionless layer or be
mixed with material in an overlying layer.   This cohesionless material is
then available for transport as described in Section  6.3.5.  Krone (1963)
and Partheniades (1970) describe some of the factors  and material properties
which control erosion of cohesive materials.  In the  model, scour rates for
cohesive fractions in cohesive layers have the following form:

    SCOUR = a*SGRCON*(BEDSHR - S*CRTSHR)SCREXP                     (48)

where symbols are defined on pages xii-xv.   The constants a and 8 are
correction coefficients for the presence of sand, their values may be found
from the relationships in Figure 21.   Only limited  data have been found to
verify these relationships.  Smeardon and Beasley (1961) present data which
shows that the critical shear stress of soils decreases as the percentage of
sand increases.  The relationship for B  in Figure 21  exhibits the same
qualitative behavior.  Equation 48 has the following  properties:

    (1)  When the bed is composed of 100 percent silt or clay, the
         relationship becomes the traditional equation for scour based on
         excess shear stress:
                                               opppyp
               SCOUR = SCRCON*(BEDSHR -  CRTSHR)                      (49)

    (2)  Clay or silt loses its cohesive properties entirely when the
         percentage is less than BIND.   This handles  the transition from a
         cohesionless to pure cohesive bed.

    (3)  As the proportion of clay/silt decreases,  a increases; hence, the
         scour rate increases.
                                    47

-------
      ABIND	
1.0
            '0   BIND          100
            PERCENT CLAY OR SILT (p)
  0  BIND           100
 PERCENT CLAY OR SI LT (p)
          Figure 21.  Correct ion factors  for  scour of cohesive materials
The mass scour rate given by Equation 48 is computed for both the silt
fraction and the clay fraction.   Knowledge of the composition of the
cohesive layer allows this rate  to be converted to a depth rate of scour.
The depth rate of scour in a layer composed of both silt and clay is taken
to be the minimum depth rate of  scour for the two size fractions. As with
cohesionless materials, a number of  factors may reduce or limit the depth
rate of scour computed above.  Firstly, the depth rate of scour will be
reduced if the cohesive layer is overlain by cohesionless material.   A scour
reduction factor, REDCT1,  is obtained from Figure 22.  ADEPTH represents the
depth of material required to form a fully developed active layer.   (Recall
that, by definition,  no disturbance  takes place below the active layer).
                             1.0
                    SCOUR
                  REDUCTION
                    FACTOR
                              "0                    ADEPTH
                                  DEPTH OF OVERLYING
                                COHESIONLESS MATERIAL

              Figure  22.   Keduct ion of scour of cohesive material  by  an
                          overlying colies ion less layer
Secondly,  the presence  of  immobile cohesionless particles in any  overlying
layer shelters cohesive materials and inhibits detachment.   A second  scour
reduction factor REDCT2 is obtained from Figure 19.   The depth rate of scour
                                    48

-------
derived from Equation 48  is  multiplied by the minimum of REDCT1 and REDCT2.
A final computation converts this rate to the depth of scour in the time
interval and thence to the mass of clay and silt scoured from the bed.

Both deposition and scour have now been computed.  This net scour gives one
of the unknowns required  for solution of continuity Equation 16.

6.3.8  Solution of the Continuity Equation
The derivation of the continuity Equation 16 was given in Section 6.3-3.
Equation 16 contains two  unknowns; the transport concentration at the end of
the time interval and the net scour/deposition of material on the bed.
Sections 6.3-4 to 6.3-7 have shown how one of the unknowns may be found for
each size fraction.  Net  scour/deposition for clay and silt fractions was
determined in Section 6.3-7, and transport concentrations for sand fractions
was determined in Sections 6.3.4 to  6.3-6.  The solution of Equation  16 for
clay and silt fractions is straightforward and simply involves the
substitution of net scour/deposition to determine the transport
concentrations for each fraction.

For sands, the solution of Equation  16 is more complex.  Substitution of the
transport concentrations enables us  to calculate the net scour/deposition in
the time interval.  However, actual  scour is  subject to material
availability. Scour of cohesionless  material  always takes place from  the
active layer.  The mass of material  available in the active layer is
computed.  If the mass required  for  scour is greater than this, then  the
mass actually scoured is  taken to be the mass available.  The mass actually
scoured is then again substituted in Equation  16 to recompute  the correct
sediment transport concentrations.

6.3-9  Concluding Remarks
A final step in the sediment algorithms  is  to  update the state of the
system. The composition of bed layers is  recomputed to account for the  scour
of material.  If in fact net deposition  took  place  in the time interval,
material deposited is assumed to  form a  new surface bed layer.  The
formation of new layers in this manner allows  the model to keep track of
armoring layers as they are formed  and as they become overlain by subsequent
deposition.  It also gives a mechanism for  keeping  track of sediment  age.

This concludes an outline of the computations necessary to estimate sediment
transport rates and changes in bed  composition  and  suspended  sediment
concentrations for one time interval. These  calculations are  carried out
for each time interval for every reach in the system.  The implementation of
this model on the digital computer  is described  in  Chapter 7-

-------
                                 CHAPTER  7

           CHANL MODEL:   COMPUTATIONAL  ASPECTS  AND  COMPUTER CODE


7.1  Software and Hardware Requirements

The CHANL Model, in general,  is coded in  ANSI Fortran,  though  for
convenience a number of extensions have been adopted  (Table 1).  These
extensions are supported by most major  software suppliers.  Use of ANSI
Fortran, rather than a more sophisticated version of  the  language, will
improve or ease the transfer of the program  from one  computer  system to
another.


                    Table 1.   EXTENSIONS  TO  ANSI FORTRAN


     1.  The T (tabulate) format code is  used.

     2.  Literal data in format statements are  enclosed in apostrophes
         instead of being preceded by the H  format  code.

     3.  Mixed mode arithmetic is permitted.
It is not possible to specify exactly what demands  this program will place
on a computer system because machines vary in  architecture and operating
systems.  Different compilers handle the same  Fortran  program in different
ways.  We developed and tested the program on  a  Hewlett Packard 3000 Series
II machine which separates core usage into two categories:  code
(unmodifiable instructions) and data (core locations with modifiable
contents).  The code required a total of 30 K  (decimal) words, but using
virtual memory, this was reduced to 7 K  words  and could have been reduced
even further.  The HP 3000 uses the "stack" principle  to  store data, which
requires 27 K (decimal) words.  On the HP 3000,  a word occupies two bytes.

It is unlikely that the program could be made  to occupy less than 60 K bytes
unless the dimensions of some arrays are reduced.   On  most operating
systems, the minimum core requirement might be around  80  K bytes.
One additional hardware requinnent is that the program be able to "open" and
access multiple files.  This requirement effectively precludes use of the
program on systems which do not have disk storage.
                                     50

-------
              c
START
                 Initialize for
                 run.







Read "time block"
of all LSRO &
EROS data


i loop
Read "time block"
of all POINT loads
for this reach


il loop
Hydraulic routing


Sediment routing





             c
 END
Figure 23.  Organization of CHANL  Model
                   51

-------
7.2  Simulation Management

Efficient use of computer core and fast execution  time  are  important
considerations in the design of most simulation  programs.   This is
particularly true in simulating complex hydrologic  and  transport processes
such as those in CHANL.   The management of simulation and the sequence of
operations both have a great effect on the efficiency of simulation.  The
overall organization of CHANL is shown in Figure 23.  Two important concepts
have been incorporated:   the use of "time blocks,"  and  the  optimal ordering
of reaches.

The natural watercourses in a watershed are represented by  a network of
reaches (Figure 24).  Inflow of water or materials  to a reach may come from
the local tributary land surface and from immediate upstream tributary
reaches.  Within a reach, simulation calculations  produce values for flow
rates, flow depths, cross-sectional area,  sediment  transport rates, and a
number of other variables.  In continuous simulation these  quantities must
be computed for every reach in the system for each  time interval in the
simulation period.  The computations must start  at  a headwater reach where
there is no inflow from upstream reaches.
         Figure 24.   Representation of  the watercourses  in a watershed
There are various ways in which a model designed to  simulate a reach network
can be organized.  In building the CHANL Model a compromise was made between
two extremes.  It could have been constructed so that the  entire reach
network is processed for one time interval  before moving to the next
interval.  The advantage of this arrangement is that backwater conditions,
in which the flow in a reach affects conditions in upstream reaches, can be
accomodated to a certain extent.  However,  execution time  is slow because of
the constant switching from reach to reach.   Since execution time was judged
to be the more important factor for CHANL,  this organization was rejected.
                                     52

-------
The opposite organization is that in which one reach is processed  through
the entire simulation period before the next one is handled.   This expedites
execution.  The drawbacks are that backwater effects cannot be accomodated
and that a large amount of temporary storage is required to retain output
from one or more reaches until the data are used as inputs to  downstream
reaches.  The storage problem can be overcome by writing output to disk and
reading it back into core when required.   This, however,  is counterproductive
because disk input-output (1-0) is slow.   The organization adopted for CHANL
is like that just described, except that a fixed number of time intervals,
called a "time block," are handled in sequence instead of the  entire
simulation period (Figure 23).  Temporary storage is in core,  which avoids
the use of many slow disk 1-0 operations.

The "time block" concept also has implications for the design  of the disk
files used in input and output.  The record length for the files is chosen
so that each record contains a complete time block of information.  This
method together with the use of unformatted read and writes is an  efficient
way to transfer information to or from the external storage device.  The
design of disk files is discussed in detail in Section 7.4.

The optimal time block size depends on such factors as cost of core storage,
cost of cpu time, cost of disk storage, and 1-0 operations.  The choice of
time block size is dependent on the operating environment;  so  no definitive
statement on the "best" value may be made.   A time block  size  of 128 was
used on the HP 3000.  This value minimized the amount of disk  storage
required for diffuse and point load files,  but we made no attempt  to
optimize cost for core usage and execution time.

Another question relating to simulation management concerns the exact order
in which the reaches are simulated.   With a tree shaped reach  structure the
output from some reaches must be retained in core,  while  other reaches are
processed until the junction is reached where the stored  flows  combine.  The
space used to store the data may then be  released and used  again,  if
required.   Obviously,  the program must be told when and how to  do  this.  In
general, the order in which the reaches are handled affects the  maximum
number of sets of output which have to be held in core at the  same  time,  and
hence, the core required by the program.   This can be illustrated  from the
network in Figure 24.   If the order of computation were 9,  7,  5, 3» 1»  2,  4,
6, 8,  10,  11, the output from reaches 9,  7,  5,  3,  and 1 would need  to be in
storage by the time reach 2 was worked on.   From that point on,  the space
required would decrease.   On the other hand,  if the order were  1, 2, 3i 4,
5, 6,  7, 8,  9,  10,  11  only one storage vector would be needed.

Selection of the sequence which minimizes temporary storage is not always
easy.   For this reason,  and to simplify the input required  from  the user,  a
special subroutine (RSORT) was included in  the model.   It analyses the reach
network, determines the optimum execution sequence,  and directs  the main
program to the appropriate vector for the input and output for each reach.
It also directs the main program when to  combine  the contents of vectors,  as
confluences are reached.   The technique used has  been documented by Heler
(1975).
                                     53

-------
7.3  Computer Code

7.3.1  Overview
A listing of the computer code for CHANL  is  given  in  Appendix D.  The
program is modularized.   It consists of a main program  which controls the
overall sequence of computations and UO subroutines.  Each  subroutine has a
specific task.  This approach to the design  is intended to  (1)  facilitate
maintenance and improvement of the model,  (2)  facilitate implementation of
the model on a variety of computer systems,  (3)  ease  the problems of
debugging and program development.   Table 2  contains  an alphabetic list of
the subroutines making up the model.   The subroutine  structure  is  shown in
Figure 25, and Table 3 is a cross reference  table  for checking  the calling
sequence of subroutines.

Both the main program and all the subroutines  contain extensive comments,
and the program should be self-explanatory to  a large degree.   A glossary
defining the principal variables in the program is given in Appendix C. This
is a useful aid in understanding the detailed  organization  of the program.

Some comments about the programming style may  be instructive.   The following
points should be noted:

     (1)  Communication between subroutines  is through  argument lists in the
          calling statements.  No common  blocks are used.

     (2)  All variables are declared in "type" statements (REAL, INTEGER).
          No DIMENSION statements are used.

     (3)  The program was developed on an HP 3000-11  computer.  In HP
          Fortran the integer is a two-byte  word by default, hence, the
          occurrence of INTEGER**! declarations for certain  variables.  (This
          feature should not affect transfer of the program between
          different computers.)

     (4)  All arrays with variable dimensions  are  declared  at the head of
          the MAIN program.  Although this is  not  conducive to  the most
          efficient use of core,  it is extremely valuable when  the system
          configuration has to be changed to model a  larger system.

The main program is used to control the sequence of operations  performed by
the model.  An understanding of the main  program is crucial to  an
understanding of the model as a whole and is described  in detail in Section
7-3-2.  The remainder of this chapter describes the function and major
features of the subroutines.

-------
Table 2.  ALPHABETICAL LIST OF SUBROUTINES
     Number          Name

       1              ACTIV
       2             ADDTIM
       3             BEDFRM
       4             BLEND
       5             CLEAN
       6             COHESV
       7             DIAM50
       8             DIFFLD
       9             FILEIN
      10             GETSON
      11              HDPRNT
      12             HYPROP
      13             INFO
      14             INITFL
      15             INTERP
      16             KILL
      17             LOADIN
      18             LUKUP
      19             MAIN
      20              OFFST
      21              PLOAD
      22              PNTLD
      23              POPOUT
      24              PSHDON
      25              PSHDWN
      26              RCHIN
      27              REFIL1
      28             REFIL2
      29              REFIL3
      30              ROUTE
      31              RSORT
      32              SDLOAD
      33              SDPRNT
      34              SDROUT
      35              SEDINF
      36              SEDPRT
      37              SPLIT
      38              STORGE
      39              TBOX
      40              ULTMT
      41              VISCHG
                   55

-------
                                                     MAIN
         TBOX
Ui
                                KILL
                                                                                            o
                                  KILL
HYPROP
STORGE
                                                    PSHDON
                      GETSON
                                 PSHDWN
                      Figure 25.  Subroutine structure of the CHANL Model

-------
SEDINF
      LOADIN
       FILEIN
REFIL1
 KILL
REFIL2
PLOAD
DIFFLD
INITFL
            KILL
           OFFST
                       REFIL3
             Figure 25.   Subroutine structure  of the CHANL Model (Continued)

-------
     0
                                   ROUTE
HDPRNT
Ul
oo
                                          
-------
0
                ACTIV
                      CLEAN
          BEDFRM
DIAM50
BLEND
          INTERP
                                COHESV
DIAM50
                                            SDPRNT
           SEDPRT
               Figure  25.  Subroutine structure of the CHANL Model (Continued)

-------
Table 3.  CROSS REFERENCE TABLE FOR SUBROUTINE CALLS

CALLING
ROUTINE
I /'CALLED
L/ ROUTINE
MAIN
ACTIV
ADDTIM
BEDFRM
BLEND
CLEAN
COHESV
DIAM50
DIFFLD
FILEIN
GETSON
HDPRNT
HYPROP
INFO
INITFL
INTERP
KILL
LOADIN
LUKUP
OFFST
PLOAD
PNTLD
POPOUT
PSHDON
PSHDWN
RCHIN
REFIL1
REFIL2
REFIL3
ROUTE
RSORT
SDLOAD
SDPRNT
SDROUT
SEDINF
SEDPRT
SPLIT
STORGE
TBOX
ULTMT
VISCHG
z
5








































>| ACTIV
w







































•| ADDTIM
V







































| BEDFRM
^







































| BLEND




£



































l| CLEAN
V







































H COHESV
V







































| DIAM50
t



£

































9

Q
u.
LL
5
















•























M FILEIN
V







































| GETSON





























n










)| HDPRNT
w







































| HYPROP
























0















o
IL
Z








































LL
h;
Z
















•























| INTERP


£













































4



0
d|







di



•








0






H LOADIN
V







































| LUKUP
































n







I] OFFST
w












•


























)| PLOAD
w







































| PNTLD
















•























| POPOUT





























•










| PSHDON





























•










| PSHDWN





























t










|| RCHIN
w








































V







































|| REFIL2
w







































LL
Ul
OC



















0




















l)| ROUTE
w







































| RSORT
























6















H SDLOAD








































H SDPRNT








































n SDROUT








































H SEDINF








































| SEDPRT




^


























•








H
Q.
CO






























d^









M STORGE
























dt















X
O
OQ








































II ULTMT








































t\ VISCHG







































.
                       60

-------
7.3.2 Main Program
The sequence of operations performed by the main program is shown in Figure
26.  The description that follows  is intended to amplify the legend in that
figure.  To assist cross referencing,  the comments below are labeled with
numbers which are referenced by  notes  on the figures.

     (1)  The transfer vector TVEC stores point flow and sediment outflow
          rates from the current reach for a complete time block.  These
          values are later used  in computing the total input to the reach
          immediately downstream.   TVEC has dimensions (MTVEC, MORDR) where
          MTVEC is (MNPSF+1)*(TBLKSZ+1); MNPSF is the maximum number of
          particle size fractions  supported by the program; TBLKSZ is the
          number of intervals in a time block; and MORDR is the maximum
          stream order supported by the program.  Figure 27 shows the manner
          in which data are stored in  each column of TVEC.

          Subroutine RSORT analyses the reach network to determine the
          optimal sequence of calculations.  In doing this, RSORT also sets
          up a vector VECNO which  specifies the column in TVEC that will
          contain the input to each reach.  The output from that reach is
          subsequently placed in the same column.  When a confluence is
          reached in the stream  network, the outflow from the upstream
          reaches must be combined to  produce the inflow to the downstream
          reach.  This effect is achieved by summing appropriate columns in
          TVEC.  Subroutine RSORT  creates a second vector REL which
          specifies for each reach whether its output is to be combined with
          that from another reach, and if so, which columns of TVEC are to
          be combined.

     (2)  As explained in Section  7.2  the efficiency of the program is
          greatly affected by the  sequence in which reaches are simulated.
          Subroutine RSORT analyses the system to determine the optimal
          sequence.  The information produced is stored in an array SEQ
          which contains the reach numbers in the order in which they are to
          be simulated.

     (3)  Total inflow of both sediment and water consists of diffuse
          inflow, point load inflows,  and inflows from upstream reaches.

          Computation of active  layer  thickness is a slow operation and need
          not be done every time interval.  The active layer characteristics
          are recomputed only if one of the following events has taken
          place:

          (a)  The flow rate has changed by 10 percent or more since the
               last active layer computations.

          (b)  The flow depth has  changed by  10 percent or more since the
               last active layer computations.
                                    61

-------
              FLOWCHART
SUBROUTINE CALLED,
    OR COMMENTS
                 START

               Declarations

         Set maximum system size
                    I
              Write title box                  TBOX

    Read basic information & options to        INFO
    be used in this run.

    Read reach network description, com-
    pute  hydraulic properties & analyse
    reach network for optimal sequence         RCHIN
    of computations.  Compute initial hy-
    draulic conditions.
         NO
                 Sediment  \
               simulation?  /
                         /
                     YES
    Read sediment parameters and related
    information.  Read  initial sediment
    concentrations and bed composition.
   Read information for point & diffuse
   loading. Initialize all loading files.

   Read information on data to be writ-
   ten to disk. Initialize all output files.

   ,  •  • ,-          I
   Initialize counters, set  some  arrays to
   zero, prelim, calcs. for constants.
                   I
   Determine no. of time blocks in the
   simulation period, & length of  last
   time block.
  SEDIIMF




  LOADIN


  FILEIN
  OFFST
Figure  26.   Flowchart of MAIN program
                   62

-------
                              FLOWCHART
                                  SUBROUTINE CALLED,
                                      OR COMMENTS
                       TIME BLOCK LOOP STARTS
                       -»-DONTBLK =
                                     NTBLKS= # of time
                                              blocks
Q.
O
o
o
O
_j
CO
LU
                         NO
                                 Diffuse
                                 loads?
                                     YES
                     Fill array STOR with LSRO values
                     from all LSRO files for this time block.
                         NO
                                Sediment   \
                               simulation?  /
                                     YES
Fill  array STORE with EROS values
from all EROS files for this time block.
                           Set transfer vector TVEC
                                  to zero.
                                     REFIL1
REFIL2
                                     See note 1
                           REACH LOOP STARTS
                                                          NREA = # of reaches
                                                          See note 2
    a.
    O
    O

    I
    O
    <
    111
    cc
                         NO
                                 Point
                                 loads?
                YES
Fill array STORP with point flow &
sediment discharge values for this time
block and this reach.
PLOAD
            Figure 26.  Flowchart of MAIN program  (Continued)
                                    63

-------
                                FLOWCHART
                                                        SUBROUTINE CALLED,
                                                            OR COMMENTS
Q_
O
o
_J
^
0
O
_j
CO
111
a.
O
O

I
CJ
<
111
cc
         a.
         O
         O
         <
         >
         QC
                       Fetch hydraulic parameters & print in-
                       formation for this reach.

                       Fetch initial discharge rate  Q2S for
                       start of time block for this reach.

                       Compute initial storage SS, depth Y2S
                       and area A2S.
                           NO
                              Sediment  \
                             simulation? /
                                       YES
                       Fetch initial sediment concns. CS and
                       bed composition for start of time block
                       for this reach.
INTERVAL LOOP STARTS
       INTV= 1,NINTS
                   Find  calendar time at end  of  this
                   interval.         i

                   Find total inflow of water to this reach
                   in this time interval.
                                  I
                   Perform hydraulic routing to find dis-
                   charge Q2E, depth Y2E, area A2E at
                   the end of this interval.

                   Print out for hydraulics if required.

                   Write  hydraulic  results  to array
                   DSKDAT for ultimate output to disk
                   if required.
                                                          STORGE
NINTS = # of intervals
    in this time block


ADDTIM
                                                               See note 3
                                     ROUTE
                                     See Section 6.2


                                     HDPRNT
                                  Sediment   \
                                 simulation?  /


                                       YES
              Figure 26.   Flowchart  of MAIN program (Continued)


                                       64

-------
                                FLOWCHART
                                                        SUBROUTINE CALLED,
                                                            OR COMMENTS
        Q.
        O
        o
        DC
        LJJ
        to
        O

        s
        h-
        2
        LU
        S
        Q
        HI
        U3
        0.
        *
        CO
a.
O
O
O
o
_J
CQ
Q-
o
O

I
O
<
LU
DC
                       Find total inflow of sediment to this
                       reach in this interval.
                            NO
                             First interval \
                           i of new month?/
                                        YES
                       Find kinematic viscosity for this month
                       & recompute those variables dependent
                       on viscosity.
Compute potential  transport concns.
for  sand fractions  using Ackers  &
Whites formulae.

Recompute active layer characteristics
(thickness & composition) & find lay-
ers from which scour may occur.
                           NO
           Scour from
         cohesive layer?
                                        YES
                   Compute mass of clay & silt scoured
                   from the cohesive layer. Find mass of
                   sand released  & form new top layer
                   available for scour.
                       Correct  sand  transport concns. for
                       armoring. Compute deposition of silt/
                       clay  fractions. Solve continuity eqn.
                       for all fractions to give concns. at the
                       end of the interval. Update bed com-
                       position.        I

                       Print out sediment results if required.
                                                           SDLOAD
                                                           See note 3
                                                               See note 5
                                        VISCHG
ULTMT


ACTIV
  &
CLEAN
See note 4
                                                               COHESV
                                                           SDROUT
                                                           See Section 6.3
                                                           SDPRNT
             Figure 26.  Flowchart of  MAIN program (Continued)
                                       65

-------
                    FLOWCHART
SUBROUTINE CALLED,
   OR COMMENTS

VIE BLOCK LOOP
JZ




REACH LOOP





INTERVAL LOOP
CO
u
-i Write sediment
2 DSKDAT for ulti
l_ if required.
H Set up sediment
— in next interval.
UJ
w Write sediment inf
^ vector TV EC f or r
w »
Set up hydraulic
interval.
Write hydraulic in
vector TV EC for r
— FlVin IMTFF
^ CINLJ 1 IN 1 C 1
Store hydraulic &
for this reach for
block.
Combine values
results to array
mate output to disk
information needed
ormation to transfer
>ext reach.
nfo. needed in next
ormation to transfer
iext reach.
tVAL LOOP
sediment conditions
start of next time

in transfer vector
TVEC at reach confluence.
Write output to di!
for this reach, if n
* riv.innr.fl
Find star
next ti
* 	 PMHTIMP R
:k for this time block
squired.
CH LOOP
ting time of
me block.
i nr.K i nnp
                       STOP
                                               See note 1
                                               See note 1
                                               See note 1
                                               ADDTIM
Figure  26.  Flowchart of MAIN  program (Continued)
                          66

-------
Beginning of
first interval
in the time block
Beginning of
last interval in
the time block
End of last
interval in the
time block
Beginning of
second interval    •<
in the time block
^
z

Q
G(1)
G(2)
7 *
G(NPSF)
Q
G(1)
7 *
G(NPSF)

7
7


Z
Z

Q
Q(1)
7
Z
G(NPSF)
Q
G(1)
7
z1
G(NPSF)

7
7
Q = f low rate (L3T1)

G(l) = mass sediment transport
      rate for size fraction I
      (MT1)

NPSF = no. of particle size
        fractions in this run
  Figure 27.   Typical  column  of array TVEC

-------
          (c)  The viscosity has changed.

          (d)  The number of mobile sand fractions has changed.

          (e)  The thickness of the active layer has changed  by  50  percent
               or more since the last active layer computations.

          (f)  The median diameter of mobile sand fractions in the  active
               layer has changed by 10 percent or more since  the last active
               layer computations.

          If active layer characteristics  are to be recomputed,  a flag
          RECOMP is set to one within the  program.

     (5)  Kinematic viscosity is given as  twelve mean monthly values.
          Variables dependent on viscosity are therefore recomputed at the
          beginning of each month.

7.3.3  Subroutines:  Principal Functions and Features

ACTIV     Determines the thickness and composition of the active layer.  The
          theory pertaining to active layer characteristics is discussed in
          Section 6.3.4.   A simplified flow chart of the subroutine ACTIV is
          given in Figure 28.  The principal complications that  arise in
          estimating the active layer thickness are:

          (1)  handling beds made up of a  number of layers of differing
               composition; whole or part  layers may be  mixed by the
               development of the active layer

          (2)  allowing for the possibility of armoring  limiting the
               development of the active layer

          (3)  allowing for the possibility of cohesive  layers limiting the
               development of the active layer

          The active layer thickness is returned to the  main  program in the
          variable ACTIVE.

ADDTJM    Adds a specified number of seconds to a given  date  and time and
          returns a new date and time.   Date and time are measured  on a full
          calendar basis,  i.e., variable number of  days  per month and full
          allowance for leap years.

BEDFRM    Predicts type and amplitude of bedforms.   The  method of prediction
          is based on the work by Vanoni (1974), Yalin (1976), and  Jopling
          (1965) described in Section 6.3.4.   Vanoni's charts (Figures 9-14)
          are represented as a series of straight line segments on  a log-log
          scale.  Co-ordinates of the break points  in the  charts are stored
          38 10810 values ln vect°r  BEDMAP.   The structure of the vector is
          shown In Figure 29.
                                     68

-------
                 FLOWCHART
                                                SUBROUTINE CALLED,
                                                    OR COMMENT
                    START
                      I
                  ACT1(*)=0
                  ACT2(*} = 0
                NEWLY = NLAY
                                               NLAY = top layer number
D-
O
O
_i
cc
LU
Mix  layer  NEWLY  with  overlying
layers &  store resulting  thickness &
composition in ACT2. (Characteristics
of overlying layer are stored in ACT1)

Find  median  diameter  of  mobile
material for mixed layers in ACT2

Find active layer thickness THK for
material in ACT2
                               YES
               ;THK
                        NO
            Need to include next layer
              NEWLY = NEWLY-1

            Transfer ACT2 into ACT1
           	    I
                                                     DIAM50


                                                     BEDFRM
                                               ACT20) = thickness of
                                                        mixed layers.
                      I
               THK1=ACT1(1)
               THK2 = ACT2(1)
CL
o
O
cc
LU
                                              True active
                                              layer thickness bounded
                                              byTHK! and THK2
Form new top layer of thickness:
       0.5MTHKH-THK2)
&  store thickness & composition in
ACTNEW.  This is a new estimate of
the active layer characteristics
      Figure 28.   Simplified flowchart for  subroutine ACTIV
                                 69

-------
               FLOWCHART
                                    SUBROUTINE CALLED,
                                        OR COMMENT
CL
O
O
DC
LU
h-
      Find  median  diameter  of  mobile
      material in ACTNEW

      Find active layer thickness THK for
      material in ACTNEW

      Check for convergence of THK  and
      ACTNEWd).
I  Convergence
     met?
                     NO
/   THK<
\, ACTNEW(I)?
YES
                     NO
            THK1 = ACTNEWd)

         Transfer ACTNEW into ACT1
        	I
            THK2 = ACTNEWd)

         Transfer ACTNEW into ACT2
                    I
           ACTIVE = ACTNEWd)
                    I
                 RETURN
                                      DIAM50
                                      BEDFRM
                                      ACTNEWd ) =
                                      thickness of layer
                                      ACTIVE = estimate
                                      of active layer
                                      thickness
 Figure 28.  Simplified  flowchart for subroutine ACTIV (Continued)
                              70

-------
CHART 1 CHART 2
A X-
A
YD1
RD1
DF,
YD2
RD2
DF2
V
A.
999.
< -\
A
YD,
RD.,
I/
/I.
YDj =
           (flow depth/median particle size) for break-point i
RD
           (Froude no. at the ripple/dune transition) for break point i
DFj = logiQ (Froude no. at the dune/flat transition) for brea
The value 999. is used as a flag to signify the end of a chart.
       Figure  29.  Structure of  vector BEDMAP
1
4.5

1
1

J
1
\
'



0
i
1
X
A
•" I
A
3
1

3
X
/•

6

D
X

4
2

5!



5

I
1

5
4

7
2


D

1
1

6
81

8
3


3

4
1


RGDIR

MAPDIR
4 1
V
	 1
                                                             BEDMAP
                    t
            first entry of bed-form
            chart for RG = 10.0
      Figure 30.  Use of directories  to. access  BEDMAP
                             71

-------
          Subroutine BEDFRM is entered with values  of FR,  RG,  and  YD50.
          Each chart in BEDMAP refers to a  specific value  of  RG.   Two
          vectors RGDIR and MAPDIR are directories  which are  used  to point
          into BEDMAP.   The method of accessing  BEDMAP is  best illustrated
          by the example in Figure 30.

          Suppose RG equals 10.0.   In vector RGDIR,  the value 10.0 occupies
          the second element.   There is a one to one correspondence between
          the elements of RGDIR and MAPDIR,   The second element of MAPDIR,
          MAPDIR(2) contains the value 11.   This is a direct  pointer into
          BEDMAP;  BEDMAP(11)  is the first  break point in  the bedform chart
          corresponding to RG  = 10.0.

          The type of bedform  is found by interpolation between Vanoni's
          charts.  The subroutine returns the effective thickness  of the
          bedform for use in determining active  layer characteristics.

BLEND     The CHANL Model handles a maximum number  of bed  layers MLAY in
          each reach.  If during execution  there are MLAY  layers in the
          current reach and an attempt is made to create another layer, then
          subroutine BLEND will combine two  layers.   The rule for  combining
          layers is that the thinnest bed layer, excluding the top layer,
          will be merged into  the layer above it.

CLEAN     After the computation of active layer  characteristics, subroutine
          ACTIV returns to the MAIN program  a variable ACTIVE which is the
          thickness of the new active layer.   The arrays LAYCOM and LAYTHK,
          containing the composition and thickness  of bed  layers,
          respectively, are not updated to  account  for the new active layer
          until the subroutine CLEAN is accessed.   CLEAN forms a new top
          layer of thickness ACTIVE and updates  LAYCOM and LAYTHK  to account
          for the destruction  or creation of bed layers.

COHESV    Estimates the mass of each size fraction  scoured from a  cohesive
          bed layer in the modeling interval.  The  theory  pertaining to the
          scour of cohesive bedlayers was given  in  Section 6.3-7.

DIAM50    Computes the median  particle diameter  (diameter  of  material with
          50 percent by weight finer) for the range of particle size
          fractions from LOW to HIGH in the  current active layer.  The
          active layer thickness and composition by particle  size  fraction
          are stored in the array ACT2.   The first  element of ACT2 contains
          the layer thickness  and the remaining  elements contain the
          proportion of each particle size  fraction in the layer,  from the
          finest to coarsest.
DIFFLD    Reads information pertaining  to  the diffuse loads to be input to
          the channel network.   The  land surface area of a watershed is
          split into numbered segments  over which hydrology, land use, soil
          type, etc., are uniform.   Up  to  five segments may be tributary in
          whole or part to any  one reach.  The diffuse loading information
                                    72

-------
  (segment numbers and tributary areas)  for each reach is stored in
  vector RCHTRB and is associated with a particular reach through
  the pointer vector TRBVEC.   The organization of the two vectors is
  shown in Figure 31.
1


1

NR A NREA


IBAS
V
/(
/ v
A IBAS


V
A
N
SEG
1
AREA
1
K I
V
SEG
N
A
V
TRBVEC
xl
V
AREA
N
yl
I/
                                                              RCHTRB
      N = number of
         segments tributary
         to reach NR
    Figure- '\\ .   Storage- of diffuse loncling informal ion
 For reach NR, TRBVEC/(NR) gives the base address IBAS of diffuse
 loading information in vector RCHTRB.  RCHTRBX(IBAS) contains the
 number of segments N tributary to reach NR.  There then follows a
 sequence of values of segment number and tributary area for the N
 tributary segments.  The segment's diffuse loading data are stored
 in LSRO and EROS files.  Each segment is associated with its
 appropriate file numbers in the array DD (Figure 32).
                                     Segment number
            File
          number
LSRO
EROS
123 A NSEG






V
A
V
A.


Figure '52.   Assor f;it f on of segment  number with  dilTnse  lo.-uling  tlntn
                             73

-------
FILEIN    This routine reads  and processes  information on those variables to
          be written to disk.  A file  is  initialized  for every output time
          series required.   Initialization  consists of opening the
          appropriate files and writing a header label on each file.  Flow
          rates, flow depths, sediment discharge rates by particle size
          fraction and total  sediment  discharge rate  can all be written to
          disk.

          The principal output from FILEIN  is  the  array FTN which contains
          the Fortran file  numbers for those time  series to be written to
          disk.

GETSON    Routine used by subroutine RSORT  in  determining the optimal order
          in which reaches  are to be simulated.

HDPRNT    Prints out results of hydraulic calculations.  The output  is
          routed to Fortran file 6 (IOUT=6) thus  separating hydraulic results
          from sediment results which  are routed  to  file 7.

HYPROP    Uses the cross-sectional geometry, slope,  and roughness of each
          reach to produce  a table of  hydraulic  properties which can be used
          by the hydraulic routing algorithms  in subroutine ROUTE.

          The cross section of a reach is represented by a series of "break
          points" connected by straight  line segments called "elements"
          (Figure 33).  If the hydraulic roughness of the section varies
          appreciably, it can be split into "subsections," each with its own
          value of Manning's n.  Subsection boundaries must coincide with
          element boundaries (Figure 33).  Subroutine RCHIN reads the values
          of Manning's n for each subsection and the x and y coordinates of
          each break point together with the subsection number  for  the
          element immediately following the point.  Subroutine HYPROP is
          then  called  and proceeds to calculate the  hydraulic  properties of
          the  section.  It does this by computing depth,  topwidth,
          cross-sectional area and discharge for a set of water levels which
          correspond to the  elevations of the  various break points.  Where
          two break points have the same elevation,  only one calculation is
          made.  In the example shown in Figure  33 there are  10 break points
          but only 9 water levels.  In each case,  the water surface might
          extend over  several subsections.   Also,  obstructions  in the
          channel might cause the  flow to be split between  several
          "subchannels."  When  this happens it is assumed  that the
          subchannels  are hydraulically  connected so that the water surface
          elevations are the same.  For  each water surface  elevation the
          topwidth, depth, cross-sectional area and discharge  are found  and
          stored in a  table.  The  discharge is found by  applying  Manning's
          formula:
                    SSECS
               Q=
NUM
n
.67   .5
   )S
                                                                       (50)
                                      74

-------
                                              SUBCHANNELS
Figure 33.   Sketch showing how properties of a reach are represented
            in  the program

-------
         where    Q
              SSECS
                NUM
                  n±
                  Ai
                  Hi
                  S   =
total discharge from the reach
number of subsections
1.0 in SI system and 1.49 in FPS system
Manning's roughness parameter for subsection i
cross-sectional area for subsection i
hydraulic radius for subsection i
(area/wetted perimeter)
gradient of the reach
          Subroutine  ROUTE uses this generated information to perform
          hydraulic routing.  Because ROUTE interpolates linearly between
          data  computed  for successive levels, it is important that the
          number of break points used be sufficient to keep the
          interpolation  error within acceptable limits.  The generated data
          for all  reaches are stored in the vector TABLE as shown in Figure
          34.   Sets of values of depth, topwidth, area of cross section, and
          discharge for  a given reach and water level are stored in adjacent
          locations.   Data for the  first level (bottom) of the first reach
          are stored  first, followed by data  for succeeding levels, until
          the last one has been dealt with.   The sequence is repeated with
          data  from the  next reach, until all reaches have been processed.
          To facilitate  the retrieval of data from TABLE, keying information
          is stored in two small arrays.  BASE(NR) is the element number in
          TABLE at which information for reach NR starts.  NLEVS(NR) is the
          number of levels in reach NR for which section properties were
          calculated.

INFO      Routine  to  read and check basic information about the simulation
          period,  options to be used and system size.

INITFL    Routine  to  initialize those files to be read by the program.
          Initialization consists of reading  and echoing the file header,
          checking that  the  period  covered by the file is compatible with
          the  simulation period and positioning the file for the start of
          simulation.  Sets  up two  vectors, CURSOR and KEYS, which are
          used  to  locate the  first  value to be read from each file for the
          first time  block of simulation.  Further descriptions of these
          vectors  may be found under subroutines REFIL1 and REFIL2.

INTERP    Interpolation  routine used by  subroutine BEDFRM to find the Froude
          numbers  at  which  the ripple/dune and dune/flat transitions occur
          for  a given bed form chart and given value of YD50 (depth/median
          particle size).

KILL      This  is  a general  error  reporting routine and is called by a large
          number of subroutines  to  report a variety of errors discovered  in
          the user's input  sequence.

LUKUP     A look-up routine for  single  valued,  two-dimensional  functions.
          The function is represented by a  series of  straight line segments
          whose coordinates are  stored  in  the array CURVE.   Both the
          abscissa value ABSC and  CURVE are  passed by  the calling routine.
                                      76

-------
^ DATA FOR

FIRST REACH
3
1
1
D


2
T


3
A


4567
Q
NLEV= 1
D T A


8 9
Q
NLEV = 2
D


c/»
3»
ijj
^ t
T
4


D T A Q

NLEV =
NLEVS(1)


CM
LtJ
CO
CD
t
D

DATA FOR
SECOND REACH
PM
LU
t
T




A




Q

NLEV = 1
D T




A




Q

NLEV = 2
— *v—
D
i 	 •\r-

                                            D = DEPTH
                                            T=TOPWIDTH
                                            A=AREA
                                            Q= DISCHARGE
Figure  34.  Structure of vector TABLE

-------
          LUKUP returns the value of the ordinate ORD.   The  look-up of two
          types of functions are supported:

              ITYPE=1     abscissa linear,  ordinate linear
              ITYPE=2     abscissa logarithmic,  ordinate linear

OFFST     Routine to find the number of hours ISTART between two dates.

LOADIN    Routine to control the input of diffuse and point  load information
          and the initialization of diffuse  and  point load files.

PLOAD     This routine controls the reading  of all point load files for the
          current reach.   The actual reading of  data is  done in subroutine
          REFIL3.   On return from PLOAD,  vector  STORP contains accumulated
          data from all point loads for a complete time  block.  The
          organization of STORP is shown in  Figure 35.   Note that as we are
          concerned with point values in time, simulation of a time block
          (TBLKSZ time intervals) requires (TBLKSZ+1) point  values.  Also,
          for point flow values for example, the (TBLKSZ+1)  point value for
          one time block becomes the first point value for the next time
          block.  Thus in the first call to  PLOAD for the current reach
          subroutine REFIL3 is forced to transfer (TBLKSZ+1)  values into
          STORP from each point load file.   The  last value in the time block
          is also stored in the array INITPT.  On subsequent calls to PLOAD
          for this reach, the first value of the time block  is taken from
          INITPT,  and REFIL3 reads the remaining TBLKSZ  values from disk.
                           TBLKSZ
                             + 1




(TBLKSZ+1 lvalues
* of point flows ^

(TBLKSZ+1) values of
sediment transport rates
for size fraction 1

Sediment transport
•*— rates for size -»•
fraction 2

etc
                   Figure 35.  Structure of vector STORP
PNTLD     Reads information pertaining to  the  point  loads  to be  input to the
          channel network.   The point load data  may  consist of point flow
          rates and sediment discharge rates for each  particle size
          fraction.  Point  load data are stored  on disk files, and the
          Fortran file numbers are associated  with the receiving reach
          through the use of the vectors PTVEC,  RCHPT, and PTDD.  For a
          particular reach  NR, PTVEC points into the vector RCHPT (Figure
          36).   RCHPT gives the number of  point  loads  applied to reach NR
          and provides a pointer for each  point  load into  array  PTDD.  The
          Fortran file numbers for point loads are stored  in PTDD (Figure
          36).

                                       78

-------



IB AS
/

v~
-A


                                            PTVEC
1 A "BAS *

K
-A
N
ROW!
ROW2
V^
A .
ROWN

# of point
loads for reach N R
///
                                                 RCHPT
  ROW-
                 Fortran file numbers
                                            PTDD
        Figure 36.  Storage of point load information
                         79

-------
POPOUT    Routine used by subroutine RSORT in determining the optimal order
          in which reaches are to be simulated.

PSHDON    Routine used by subroutine RSORT in determining the optimal order
          in which reaches are to be simulated.

PSHDWN    Routine used by subroutine RSORT in determining the optimal order
          in which reaches are to be simulated.

RCHIN     This routine reads in the reach network description and  channel
          cross-sectional geometry and calls subroutines HYPROP  and STORGE
          which compute the hydraulic properties of each reach.  RCHIN also
          calls subroutine RSORT which analyses  the whole reach  network for
          optimal reach order.   Further information on the cross section
          representation of reaches may be found in the description of
          subroutine HYPROP.

REFIL1    Reads a complete time block of uncompressed  LSRO data  from a disk
          file into a buffer RBUFF.  The data is then  transferred  to a
          vector STOR in the form required for simulation,  if necessary
          accumulating successive values so that the data in  STOR  are at the
          correct time interval for simulation.   Accumulation or aggregation
          of values may require that RBUFF is refilled a number  of times
          before STOR contains a full-time time  block  of data at the correct
          time interval.   To  insure that the data is correctly Justified in
          calendar time,  a vector CURSOR is used to store the displacement
          in file time intervals between the start of  a record and the start
          of a new simulation time block.   Thus  for file I, data is
          initially read from the CURSOR(I)  element of the buffer  RBUFF.

          Called from the main program once for  each segment  in  the run.
          After the last call,  the vector STOR contains a  time block of LSRO
          data for every segment.   The structure of STOR is shown  in Figure
          37.

REFIL2    Has an identical function to REFIL1  except that it  reads
          compressed EROS data  from disk and the ultimate objective is to
          fill a vector STORE with correctly justified and aggregated EROS
          data for a complete time block for each segment.  The  structure of
          store is similar to that of STOR in Figure 37.
                              TBLKSZ




LSRO data for

-------
          Use of compressed data makes  the  interpretation of the record more
          complex.   The format of both  compressed and uncompressed records
          is described in Section 7.1.   Two vectors  CURSOR and KEYS are used
          to maintain the correct justification of data in calendar time.
          For file I, CURSOR (I)  is the displacement in file time intervals
          between the start of the file and the start of the simulation.
          KEY(I) is a value passed from previous calls of the routine or,
          for the first call,  from subroutine  INITFL.  If positive KEY(I)
          indicates that the last value processed from the compressed file
          was positive, and the value in KEY(I) is the position it occupied
          in RBUFF.  If negative,  the value in KEY(I) is the last value read
          from RBUFF.  This negative value  is  a header indicating the time
          of the next non-zero value of EROS.

REFIL3    Reads point values from file  into vector STORP.  It operates in a
          similar manner to REFIL1 except that successive calls to REFIL3
          are used to sum all point loads tributary  to the current reach.
          The structure of vector STORP was discussed under subroutine
          PLOAD.

ROUTE     This routine routes flow through  a reach for one time interval
          using a kinematic wave approximation.  The theoretical aspects of
          the method were explained in  Section 6.2.  The hydraulic
          properties of each reach are  stored  in the vector TABLE whose
          creation was discussed under  subroutine HYPROP.

RSORT     Determines the optimal  order  in which reaches should be simulated,
          as discussed in Section 7.2.   RSORT  returns the stream order ORDR
          and vectors VECNO, REL,  and SEQ whose contents determine both the
          sequence of simulation and the control of  transfer vector TVEC in
          the MAIN  program.  Further comments  on VECNO, REL, and SEQ are to
          be found in notes 1 and 2 of  Section 7.3.2.

SDLOAD    Computes the total sediment load  input to  any one reach.  Sediment
          input may come from diffuse loads, point loads and inflow from
          upstream reaches.  Point loads are taken from vector STORP
          discussed under subroutine PLOAD. Diffuse loads are obtained from
          vector STORE discussed under  subroutine REFIL2.  Pointers into the
          appropriate sections of STORE are taken from vectors RCHTRB whose
          structure was discussed under subroutine DIFFLD.  Finally, input
          from upstream reaches is obtained from the transfer vector TVEC
          discussed in Section 7.3.2.

SDPRNT    Controls  the print out  of sediment transport rates.  The mass
          transport rate for each particle  size and  the total transport rate
          are printed.

SDROUT    Performs  sediment routing by  solution of the mass continuity
          equation.  The theoretical aspects of the  method are discussed in
          Section 6.3.  Principal outputs returned from the routine are
          sediment transport concentrations and bed  composition at the end
          of the current time step.
                                      81

-------
SEDINF    Reads and checks Information needed solely  for  sediment routing.

SEDPRT    Prints out the thickness and composition of each bed  layer in the
          current reach.  Output is routed to Fortran file 7  (SOUT=7), so
          separating sediment related output  from  hydraulic results which
          are routed to file 6.

SPLIT     Subdivides the total land surface erosion rate  SED  into individual
          particle size fractions.  SPLIT may be called by SDLOAD several
          times; one call for each segment tributary  to the current reach.
          After the final call,  SHEET(I)  contains  the total mass of sediment
          of size fraction I entering the reach in the time interval.  The
          theoretical basis for  SPLIT is  described in Appendix  A.

STORGE    Computes the volumetric storage and flow depth  in the current
          reach for a given value of flow rate.  Hydraulic properties for
          the reach are stored in a vector TABLE whose structure was
          discussed under subroutine HYPROP.

TBOX      Produces a title box at the head of printed output.

ULTMT     Computes the potential sediment transport concentration for each
          cohesionless fraction using the method of Ackers and  White.  In
          performing this function, the routine also  finds the  coarsest
          mobile fraction IM02.

VISCHG    Recomputes the values  of variables  which are affected by change in
          kinematic viscosity.  These variables include settling velocity
          SETVEL,  the diraensionless grain size DGR used by Ackers and White,
          and the calibration parameters  AA,  AC, AM,  AN,  used by Ackers and
          White (Section 6.3-5).

          VISCHG is called at the start of the run and at the beginning of
          every calendar month thereafter.  Kinematic viscosity is given as
          a monthly average value based on average monthly water
          temperature.
7.M  Data Files

Three types of data files are currently accessed  or created by the CHANL  (1)
uncompressed diffuse load files (LSRO data),  (2)  compressed diffuse load
files (EROS data),  and (3) uncompressed point load files  (flow discharge,
flow depth, and sediment discharge data).   All files  have the following
characteristics:

    (1)  Fixed length records:   Each record contains  TBLKSZ data items.
         (TBLKSZ  is the number of simulation intervals in a time block See
         the discussion in Section 7.2.)

         Note that  idiosyncrasies on IBM machines require unformatted files
         to be treated as having varible length,  blocked,  spanned (VBS)
         records.

                                     82

-------
    (2)  Binary files:   The data is transferred  to  and  from disk in binary
         form without format control.   This  obviates  the  usual  conversion of
         data from character (ASCII or EBCDIC)  form on  the disk files to
         binary form in core,  or visa  versa,  thus expediting data transfer.

    (3)  Sequential access.

The first record on each file is a label  which  is written by the creating
program before any data is transferred.   The format and contents of the
label are shown in Table U.   Whenever  a file is  read, the contents of the
label are printed out,  so that the user can  check that  the correct data set
has been accessed.  The records following the label contain the data
themselves which may be stored in either  "uncompressed" or "compressed"
format.
                        Table U.   FILE LABEL FORMAT
Element No.

1-20
  Contents

Descriptive title for contents of the file.
of up to 80 alpha-numeric characters.
Title may consist
21            Starting hour of the file.   (File starts with the  first
              interval of this hour.)

22            Starting day of the file

23            Starting month of the file

24            Starting year of the file

25            Ending hour of the file.  (File ends with the last interval
              of this hour.)

26            Ending day of the file

27            Ending month of the file

28            Ending year of the file

29            File time interval in seconds

30            File type = 1    uncompressed diffuse load file (LSRO)
              File type = 2    compressed diffuse load file (EROS)
              File type = 3    uncompressed point load file

31-TBLKSZ     Not used
                                     83

-------
With the uncompressed format,  data are stored in a purely sequential  form.
Successive items in the record contain data from successive simulation  time
intervals.

Compressed records were developed to save space when storing data for
processes which occur intermittently.   They are useful,  for example,  in
storing information on simulated land surface erosion;  a process  which
occurs only when overland flow takes place.   The idea is to eliminate the
large number of zeros which would otherwise appear in the file.

This is achieved as follows: the program keeps track of the number of data
intervals which have elapsed since the start of the file.   When filling the
buffer array in core, prior to writing to the file,  nothing is stored until
a non-zero value is encountered.  A negative number is then written.  The
negative sign indicates that the number is a header or displacement
indicator, and the absolute value is the displacement (in data intervals)
since the start of the file.  Data are then stored in succeeding  elements of
the array in the conventional  manner,  until another zero is encountered. The
above procedure is repeated, the next item being another header,  which
indicates the interval number  at which data again become non-zero.  As  soon
as the array is full it is transferred to disk as a single record,  whereupon
the buffer array starts to fill again.  A typical compressed file is  shown
in Figure 38.

Label

* (
-20.
4
4.5
V
Record
TBLKSZ values
-35.
9.2

) *
8.7
etc.

Record

(TBLKSZ values)
9.0
7.0
-100.
2.
etc.
                                                                           ^
         /
        — '
\
 >—
  Header -'           ^- Data Item

                 Figure 38.  Format of compressed record
The compressed format has been used to store erosion data simulated  for Four
Mile Creek, Iowa.  The files occupy only 5 percent of the disk space which
equivalent files in uncompressed format would require.   In general,  the
degree of compression achieved will depend on how intermittent the process
is.

In creating and accessing files, a distinction must be made between  point
and average values.  The diffuse load files contain values averaged  in time.
For example, LSRO is stored as the total depth of land surface runoff
occurring in the file interval.  Thus for diffuse loads,  n values are
required to define the input for n time intervals.  Point load files, on the
other hand, contain values at points in time, for example,  a  flow rate at
specific points in time.  In this case (n+1) values are required to  define
the input over n time intervals.

-------
Approximately 65 percent of the  code  in the CHANL Model relates to data
management.  This reflects the importance of efficient data manipulation.
                                  85

-------
                                 CHAPTER 8

                             ANCILLARY PROGRAMS
Users of CHANL may need to develop ancillary  programs  to  provide several
support functions:

   •creation of point load files from recorded data
   •dumping or printing of disk files
   •statistical analysis of data written to disk
   •plotting of data for comparison of simulated and recorded values.

These tasks fit into one of two groups,  both  of which  provide major problems
when using continuous simulation models.   These are:   (1) preparation of
input data and (2) presentation and interpretation of  the output.

Most of the input to and output from these models are  time  series, such as
flow rates, flow depths, and sediment concentrations.   Input time series may
come from a number of sources:

    (1)  diffuse loading data (land surface runoff and erosion) generated by
         the ARM Model and stored in disk files

    (2)  point load data (flow rates and sediment discharge rates) generated
         by earlier runs of the CHANL Model and stored in disk files

    (3)  point load data taken from recorded  measurements.

Preparation of data from sources (1) and (2)  is usually straightforward
since the data on disk is in the form required by CHANL.  Recorded flow and
sediment discharge rates, however, would not  usually be in  the required
form.  Depending on the sources of data,  sediment discharge data, for
example, may consist of a total mass discharge rate measured at nonuniform
intervals in time, together with a particle size analysis for each sample.
This data must be transformed to mass discharge rates  for each particle size
fraction at uniform intervals in time.  Data  for each  size  fraction must
then be written to disk files in the format required by CHANL (Section 7.M).

Unfortunately, there is no generally accepted method of measuring and
storing sediment discharge data.  This means  that most ancillary programs
written to express recorded data in the form  required  by  the model, must be
specific to a particular source of data.   In  general,  the user will have to
develop new ancillary programs for data preparation for each study.
                                     86

-------
Presentation and interpretation of output  poses  similar problems.  The first
step in using CHANL will usually be a  calibration against existing recorded
data.  The CHANL Model may be used to  write  flow rates, flow depths and
sediment transport rates for each size fraction  to disk.  Both simulated and
recorded data may then require further manipulation so that a direct
comparison is possible.  The processing required in this step will again
depend on the nature of the available  recorded data and will usually be
specific to each data source or study.  The  comparison may take the form of
a direct plot of simulated against recorded  data or it may consist of a
comparison of the statistics of the time series, depending on the aim of the
study.

A number of ancillary programs were developed specifically for the model
testing described in Chapter 10 of this report.  Further details of these
support programs may be obtained from  the  authors.
                                     87

-------
                                 CHAPTER 9

                          CHANL MODEL USERS GUIDE
9.1  Introduction

This chapter is intended to provide the potential user with the  detailed
information required to run the CHANL Model.   Before any attempt is made  to
apply the model, the user should be familiar with the contents of Chapters 5
to 8.  In particular, the user should understand the limitations of the
model.  The material in Section 5.4.2 will enable the user to  decide whether
the model is applicable to a particular system or problem.   The  potential
user will also wish to study the hardware and software requirements of the
model.  These aspects are discussed in Section 7.1.


9.2  System Limits

Unlike the more sophisticated programming languages,  such as PL/1, Fortran
does not support the dynamic allocation of storage.   The arrays  declared  in
CHANL thus have fixed dimensions for the simulation  of systems up to a
certain maximum size.  The program listed in Appendix D is set up to handle
systems which conform to the configuration described in Table  5.

The variables in Table 5 represent those array dimensions which  vary with
system size.  All arrays whose dimensions depend on  the system configuration
are declared at the head of the MAIN program and are passed to the
appropriate subroutines through argument lists.   Within the subroutines,
these arrays are given variable dimensions.   Hence,  modification of array
dimensions to meet a certain system configuration need only be made in the
MAIN program.  The only exception to this statement  is modification of the
maximum number of reaches in the system,  MREA.   In this case one must adjust
dimensions both in the MAIN program and in the equivalenced arrays ORD and
POT in subroutines GETSON and RSORT.

The format of the declarations in the MAIN program and reference to Table 5
will indicate where and how array dimensions should  be adjusted.   As an
example,  suppose we wish to track the movement of 10  particle  size fractions
through the system.  Reference to Table 5 will show  that the current
organization only permits simulation of nine (MNPSF)  size fractions.  The
following changes would have to be made:
                                    88

-------
                Table 5.  CONFIGURATION OF CHANL MODEL
Variable

TBLKSZ
MREA
MAXRCH
MORDR
MSECS

MPTS

MCROS


MTAD
MSEGS
MSTOR

MLAY

MNPSF

MNPS1
MNPS2
MNPSF3
MTVEC
MSTORP

MNPTLD


MAXPT


MAXTRB

MFILE
Desoription                                  Value

time block size                               128
maximum number of reaohes                      15
maximum user defined reach number              50
maximum stream order                            4
maximum number of subsections used              5
to define any one cross section
maximum number of points used to               25
define any one cross section
maximum number of points at which water        10
surface and channel sides meet for any
non-zero water depth
maximum number of elements in the vector     1000
TABLE of hydraulic properties (see
subroutine fttPROP in Section 7-3-3)
maximum number of land segments                 2
maximum length of vectors STOR and STORE      256
(MSEGS»TBLKSZ)
maximum number of bed layers in any             5
one reach
maximum number of particle size fractions       9
simulated
MNPSF +1                                      10
MNPSF +2                                      11
MNPSF +3                                      12
Maximum number of rows in the transfer       1290
vector TVEC
(TBLKSZ + 1)*MNPS1
maximum length of vector STORP               1290
(TBLKSZ + 1)*MNPS1
maximum number of point loads (one point        4
load may consist of one flow file and up
to MNPSF associated sediment discharge files)
maximum length of vector RCHPT                  10
(> MNPTLD + number of reaches with point
loads)
maximum length of vector RCHTRB (see           150
description in Appendix C)
maximum Fortran file number                     40
                                   89

-------
MNPSF
MNPS1
MNPS2
MNPS3
MTVEC
MSTORP
=
10
11
12
13
1419
1419
Reference to the MAIN program shows which array declarations are affected  by
changes to these variables.  These array dimensions and the declaration of
the system size in lines 284/304 of the MAIN program should be changed.

In the preceeding discussion, array dimensions were increased to simulate
larger systems.  Similar changes may be made to reduce array dimensions for
simulation of smaller systems.  Reducing array dimensions does of course
reduce the core requirements of the model,  often quite dramatically,  and may
be the only feasible option for running the model on small computers.
9.3  Modes of Operation

The CHANL module can be operated in one of two basic modes:

    (1)  in conjunction with the ARM Model for simulation of sediment
         movement on a basin scale.
    (2)  as a stand alone program for studying the in-stream sediment
         transport processes in a relatively small section of a
         channel network or in a laboratory flume.

The principal difference between the two modes lies in the method  of
creating the files containing the input time series data.  Use of CHANL  in
conjuction with the ARM Model was discussed in Chapter 5.  The ARM  Model  is
used to create time series files of land surface runoff data (LSRO) and  land
surface erosion data (EROS).  These files may be accessed directly by the
CHANL Model.

Use of CHANL as a stand alone program requires the user to create  his own
time series files for data input.  Suppose the user wishes to model the  four
reach system depicted in Figure 39.  If lateral or diffuse inflows to these
four reaches are negligible, then CHANL may be used in the stand-alone mode.
The user must create point load input files for reaches 1  and 2.   Each  point
load is described by a time series of flow discharge rates and a time series
of mass sediment transport rates for each particle size fraction.  The  use
of ancillary programs to create the time series files for point loads was
discussed in Chapter 8.

                    Point load #2
                   Point load #1
           Figure 39.   Use of the  CHANL Model,  as  a  stand alone program
                                    90

-------
 9.4   Preparation of the Input Sequence

 The  input sequence for running CHANL is summarized in Table 6 at the end of
 this  section.  The input has been designed to be self-documenting and
 extensive use is made of labels and headings.  Although the labels and
 headings are required parts of the input sequence, they are not explicitly
 required by the program to control any aspect of simulation;  they are simply
 echoed or skipped over entirely.  The character strings assigned to labels
 or headers in Table 6 are suggested values which provide adequate
 documentation for the input sequence.  The user may,  in fact, leave labels
 and  headers blank or expand on the information they contain as long as  the
 correct format is followed.  The formats for input are all  in ANSI Fortran
 and  the potential user should be fully conversant with their use and
 meaning.

 An example input sequence is shown in Figure 41  at the end  of this section.
 The  value of self-documenting input is immediately apparent;  instead of
 being confronted with a mass of meaningless figures as in a normal input
 sequence, the user can immediately see what values have been assigned to
 each  variable.  The additional effort involved in preparing the input
 sequence is offset by the ease with which the input sequence can be
 interpreted and the ease with which errors may be spotted.

 A number of questions which arise in relation to input preparation and
 sources of data are discussed in the following sections.  The input sequence
 of Figure 41 is discussed in some detail in Section 9.4.1   and is used  as an
 example in the remaining parts of this section.

 9.4.1  Example Input Sequence
 Figure 41 at the end of this section is an actual input sequence used for
 testing the model in its stand alone mode on data from the  East Fork River,
 Wyoming (Section 10.2).  The reach network being modeled is shown in Figure
 39.   It consists of four reaches with point loads being input to reaches 1
 and 2.  There are no diffuse loads.  The sediment regime is modeled by  using
 nine particle size fractions (see discussion in Section 9.4.6).   Point  load
 number 1, input to reach 1  is specified by a total of 8 files.   File 15
 contains flow discharge rates (L T"1) and files 1,  2,  3,  4,  8,  9,  and 10
 contain mass sediment discharge rates (MT"1) for size fractions 3 through 9,
 respectively.  Note that since there is no input of sediment for size
 fractions 1 and 2, their corresponding file numbers are zero.   The point
 load  to reach 2 is specified in a similar manner, with file 16 for flows and
 files 11 through 18 for sediment transport rates.  Note that the output from
 reach 4 is to be written to disk.

 9.4.2  Units
 The CHANL Model algorithms  were designed to be dimensionally homogeneous.
 This means that if all input data is provided in a consistent set of units,
 then output will be produced in the same set of units.   In  Figure 41, all
 input is in the metric meter/kilogram/second (m/kg/s)  system;  channel
 lengths and elevations are  given in meters,  sediment  density  is  kg  nf?,
kinematic viscosity is in m2s~1 and so on.   The  output is produced in the
 same system;  for example, sediment transport rates are in kg s"1,  flow
 discharges are in ra^s-l.

                                     91

-------
To implement this system and increase its flexibility,  a  number of
conversion factors are incorporated.   A conversion factor NUM is used in
Manning's equation (the only equation which is not dimensionally
homogeneous).   It may take on the following values:

    NUM =1.0  for the meter/kilogram/second system
    NUM = 1.49 for the foot/pound/second system

Of the remaining conversion factors,  FACTER,  FACTLS,  FACTFL,  and FACTSD are
used to convert time series input data into the desired units, and OUTFAC
converts sediment transport rates into the desired units  for  printed output.
In Figure 41,  for example, the point  load files contain flow  rates in ft^s"1
The  conversion factor FACTFL = 0.0283 converts these figures to the
required metric equivalent in nrs  .

9.4.3  File Numbering and Input/Output Considerations
As can be seen from Table 5, the model is currently configured to handle a
maximum Fortran file number of 40.  Of these,  file number 5 is reserved for
input from a card reader, or other designated device,  and files 6 and 7 are
reserved for printed output.  Two separate output spools  must be defined;
one for file 6 which contains the echoed input information and the results
of hydraulic calculations, and one for file 7 which contains  the results of
sediment transport calculations.

Printed output is split in this fashion so that hydraulic results and
sediment results are not interleaved.

9.4.4  Choice of Modeling Interval
The choice of a suitable modeling interval is intimately  connected with the
choice of reach length and the data interval  of ARM files (LSRO and EROS).
For accuracy of results and numerical stability,  the flow time through a
reach must not be less than the modeling interval.   The user  must determine
the maximum expected flow velocity  in the reach and divide reach length by
velocity to determine flow time.  If  necessary,  the reach boundaries and
modeling intervals must be adjusted to meet this requirement.

The other consideration is that the modeling  interval must be greater than
or equal to the time interval of data on LSRO and EROS  files.  This
restriction does not apply to data  in point load files.

9.4.5  Channel Characteristics
The CHANL Model requires the following channel characteristics for
simulation:

   •reach length
   •bottom elevations at upstream and downstream ends of  the  reach,
      for determining channel slope
  . Across sectional geometry
   •estimates of Manning's n

Reach lengths and bottom elevations can usually be determined adequately
from topographic maps (USGS 7 1/2'  series or better), whereas channel cross


                                      92

-------
sections are best determined by field surveys.   Although cross sections are
highly variable in natural streams,  they  do  reflect  the flow rates that the
streams can carry and the mean or average cross-sectional geometry is needed
for each reach.  Mean cross-sectional geometry and roughness allow
simulation to reproduce the  storage-velocity-discharge relationships that
control hydrograph shape in all but  the smallest streams.

Channel roughness is expressed as Manning's  n.   Typical values are as
follows:

    clean, straight channels                                  0.03
    winding channels with pools and  shoals                    0.04
    winding channels congested with  rocks and weeds, etc.      0.05-0.1
    flood plain                                               0.1-0.25

Additional values may be obtained from Chow  (1959).  Values of n should be
checked by noting the flow velocity  simulated in each reach.  Unreasonable
velocities indicate that n should be changed.  Manning's n is a calibration
parameter.

Within CHANL, the cross section of a reach is represented by a series of
"break points" connected by straight line segments called "elements." Figure
40 shows the cross section idealization for  reach 1  of Figure 41. Here,
eight break points are used to describe the  cross section.  Except at the
bottom of the channel, adjacent break points must be at different
elevations.  The hydraulic properties of  the reach are computed for a set of
water levels which correspond to the elevations  of the various break points.
Hydraulic properties at intermediate levels  are  found by linear
interpolation, so it is important that the number of break points used be
sufficient to keep the interpolation error within acceptable limits. Further
discussion of these considerations may be found  in Section 7-3-3 under
subroutine HYPROP.

If the hydraulic roughness of the section varies appreciably, it can be
split into "subsections", each with  its own  value of Manning's n. Subsection
boundaries must coincide with element boundaries.  The cross section in
Figure 40 is split into two subsections.   Subsection 1 is used to define a
flood plain with Manning's roughness 0.1, and Subsection 2 defines the much
smoother incised channel with Manning's n of 0.025.

The reach and its cross section description  are  associated through the use
of table numbers.  Each reach in the network is  assigned a unique table
number (NTAB in Figure 41).  Thus the cross  section  description of reach 1
in Figure 41 is stored under table number 1.  Within each table, the user
must specify the number of break points,  the number of subsections, and
Manning's roughness for each subsection.   The actual cross section
description is then given by specifying the  x and y  coordinates of each
break point and the subsection numbers of the elements between adjacent
break points (Figures 40 and 41).
                                      93

-------
               Y
              (m.)
     1
  1
1.5 +
      SUBSECTION 1  SUBSECTION 2
-20
                       SUBSECTION 1.
                           n=0.1
                                                                X(m.)
               -1.0t
     Figure 40.   Example  of reach cross section  description

-------
9.4.6  Sediment Characteristics
The CHANL Model treats graded material  by simulating  the movement of a
number of different particle size fractions.   The model operates on a
minimum of three particle size fractions and  a current maximum  of nine
(Table 5).

Size fraction 1 must always be clay and fraction 2  must be  silt even if the
system does not contain these materials.  The remaining fractions are sand
and must be ordered from finest to coarsest,  with fraction  3 being the
finest.  Each size fraction is described by a median  particle diameter
(DIA).  Where possible it is recommended that these particle sizes conform
to the grade scale proposed by the American Geophysical Union (Lane 19^7) or
some aggregation of that scale.

To simulate sediment movement, the following  additional information must be
given for each particle size fraction:

        •composition of land surface (only if DIFFUS=YES)
        •initial sediment transport concentrations  in each  reach
        •initial bed composition for each reach

The composition of the land surface by  particle size  fraction is only
required if the CHANL Model is used in  conjunction  with the ARM Model.  The
data should be obtained from field survey and should  represent  an average
over the whole watershed.

The initial sediment transport concentrations for each size fraction should
be obtained from recorded data.   Frequently the required data are not
available and the user must develop his own initial conditions  based on his
knowledge of the system.  In this case,  the user should be  aware that the
first few time periods of simulation may be in error.

The bed composition in each reach is described by a number  of homogeneous
bed layers.  The thickness and composition of each  layer at the beginning of
simulation must be input by the user.   Because of the great natural
variability in bed composition,  the input data must necessarily represent
the mean or average conditions over the reach.   It  is important that the
upper zone of the bed be realistically  described since the  material
available in the surface zone of the bed may  control  the amount of sediment
movement.  Data for determining the bed composition should  be obtained from
field surveys.

9.4.7  Choice of Parameter Values
Only limited experience has been gained in working  with the sediment
algorithms in CHANL. Consequently any recommendations made  here should be
regarded as guidelines, not as fast rules.

    TBLKSZ         Time block size.  Must be  128 for  the present version
                   of the model.
                                                                        f)
    DENS           Density of sediment  material, usually about  2650 kg m~J
                   for sand.
                                    95

-------
BULKD
BEDKNT
EPSBED
BIND
ABIND
Dry bulk density of bed material,
2000 kg m~3 for sand beds.
usually about
Maximum number of iterations to be performed in
computing bed form thickness.  A value no higher
than 30 should suffice in all cases.

Convergence tolerance for computing bedform
thickness.  A fairly coarse tolerance of about
0.05 is recommended.

Percentage of cohesive material (clay and silt)
which will just start to hinder the movement
of sand particles from the bed.  A value from
15 to 25 is recommended.

Factor controlling the scour of clay and silt
(see Figure 21).   A value of about 5 is
recommended.
PROTCT
ARMF
DUNE
 RIPPLE
SCRCONd)
SCRCON(2)
Percentage of immobile sand which will just
start to protect finer material from scour.
A value from 10 to 30 is recommended.

Value of the ratio (depth of armoring
material/median diameter of armoring
material) at which armoring prevents further
scour.  A value between 1.0 and 2.0 is
recommended.

Value of the ratio (maximum dune height/
depth of flow).  A value close to 0.1 is
recommended.

Value of the ratio (mean ripple height/
median diameter of mobile sand) .  A value
around 100 is recommended.

Constant controlling the scour of clay.
The limited data available indicates a
range of values from 0.1*10"^ for dense
clays to 2*10"^ for a loosely flocculated
bed.  Units are in the m/kg/s system.

Constant  controlling the  scour of  silts.
Values may range form
the m/kg/s system.
                                            to  2*10~6  in

-------
CRTSHR(I)      Critical shear stress for the scour  of olays.
               Values vary from 0.05 N«m   for loosely
               flocculated clays to 75 N.m~^ for dense clay
               beds.

CRTSHR(2)      Critical shear stress for the scour  of
               silts.  Limited data suggests that values
               may vary from 0.05 N.nf^ to 1 N.m~ .


SCREXPd)      Exponent controlling the scour of clays.
               Limited data suggests a value close  to 2.

SCREXP(2)      Exponent controlling the scour of silts.
               Limited data suggests a value close  to 2.
                                  97

-------
Table 6.  INPUT SUMMARY FOR CHANL MODEL
oo
CARD
NO.
1
2
3
4
5
6
7
8
9
10
11
12
13
CARD
COLUMN
1-80
1-80
1-6
7-11
1-7
b-12
1-7
b-12
1-6
7-11
1-6
7-11
1-7
b-12
1-7
b-12
1-6
7-11
1-67
ti-11
1-7
8-12
1-5
6-10
VARIABLE
NAME
BASIN (*)
RUNINF(*)
BGNHR
BGNDAY
BGNMON
BGNYR
ENDHR
EWDDAY
ENDMON
ENDYR
TIMINT
TBLKSZ
UREA
FORMAT
20A4
20A4
6X
15
7X
15
7X
15
6X
15
6X
15
7X
15
7X
15
6X
15
7x
F10.0
7X
15
5X
15
STRING
-
-
BGNHR=
BGNDAY=
BGSMON=
BGNYR=
ENDHR=
ENDDAY=
EHX»-
£NDYR=
TIMINT=
TBLKSZ=
NREA=
                              DESCRIPTION
                              User label
                              Name of watershed or study area

                              User label
                              Run information, purpose of run, etc.

                              User label
                              Beginning hour for simulation
                               (Simulation starts with the first time
                              interval in this hour.)

                              User label
                              Beginning day for simulation

                              User label
                              Beginning month for  simulation

                              User label
                              Beginning year for simulation

                              User label
                               Ending hour  for simulation
                               {Simulation  finishes after the last
                                time interval  in this hour.)

                               User label
                               Ending day for   simulation

                               User label
                               Ending month for   simulation

                               User label
                               Ending year for simulation

                               User label
                               Modeling interval (seconds)

                               User label
                               Modeling time block size  (intervals)

                               User label
                               Number of reaches in stream system

-------
                 CARD
                 NO.

                 14


                 15


                 16
                 17
                 18
VO
                 20
  CARD
COLUMN

  1-6
  7-11

  1-4
  5-14

  1-7
  8-11
VARIABLE
  NAME
NSEGS
MUM
                                   PTLOAD
  1-7
  8-11
  1-6
  7-10
                                   DIFFUS
                                   SECMT
                 19        1-5
                           6-9     DISK
                21
  1-5
  6-9
  1-7
  8-12
                                   WARN
                                   HDPOOT
FORMAT
6X
15

4x
F10.0

7X
A4
              7X
              A4
              6X
              A4
                        5X
                        A4
              5X
              A4
              7X
              15
STRING


NSEGS=


NUM=


PTLQAD=
                                                               DIFFUS=
                                                               SEEMT=
                            DISK=
                                                              WARN=
                                                              HDPOOT=
 DESCRIPTION


 User label
 Number of land segments in system

 User label
 Conversion  factor for Manning's equation

 User label
 PTLQAD=bYES if point loads are to be
 used in this run.
 PTIflAD=bbNO if there are no point loads.
 Note:  The  option YES or NO should be
 right adjusted in the A4 field.

 User label
 DIFFUS=bYES if diffuse loads are
 included in this run.
 DIFFUS=bbNO if there are no diffuse loads.

 User label
 SEDMT=bYES  if sediment calculations are
 to be performed in this run.
 SEDKT=bbNO  if only the hydraulic calculations
 are to be done.

 User label
 DISK=bYES if hydraulic and sediment results
 from one or more reaches are to be written to
 disk.
 DISK=bbNO if no information is to be written
 to disk for this run.

 User label
 WARN=bYES if warning messages are to be
 suppressed after the first five occurrences.
 WARN=bbNO if these messages are to be printed
 out every time they occur.

 User label
 Option to control printout of results of
 hydraulic calculations
 =0  no printout
 =1  printout values of depth,  area,  and
    discharge averaged over the print interval
=2  printout point values of depth,  area,  and
    discharge at the end of the print interval
=3  printout both mean and point values

-------
               CARD
               NO.

               22
                23
                24
o
o
                25


                26
                27
  CARD
COLUMN

  1-7
   l-bo
   3-5
   7-10
  15-20
  27-30
  37-40
  42-45
  4ti-bO
  55-61'

   1-5
   6-10
                         11-20
                         21-30
                         31-40
VARIABLE
  NAME
                                 KLINES
  1-7
  8-12    PRFREQ
FORMAT
              7X
              15
              7X
              15
STRING
              MLINES=
              PBFREQ
  1-7
  8-12    DIAGNS
              7X
              15
 HEAD(*)


 Head{*)
 20A4
                         20A4
                                                              BCH
                                                              TRIB
                                                              LENGTH
                                                              ELUP
                                                              ELON
                                                              NTAB
                                                              PRT
                                                              QSTAKT
 RCH
 TRIB
           LEN
           ELOP
           ELDN
 15
 15
               F10.0
               F10.0
               F10.0
                                                       DESCRIPTION
                 User label
                 Maximum number of lines per page of hydraulic
                 or sediment printout

                 User label
                 Controls frequency of printout
                 <0  monthly output
                 =0  no output
                 >0  value is the number of simulation intervals
                     (of length TIMINT) in a print interval

                 User label
                 Controls printout of additional diagnostic
                 information
                 =0  no diagnostic output
                 =1  not for general use
                 =2  diagnostic output from subroutine INI'fFL
                 =3  diagnostic output from subroutine HYPFGP
                 =4  diagnostic output from subroutine RSOKT
                 =5  diagnostic output from subroutine REFIL1
                 =6  diagnostic output from subroutine REFIL2
                 =7  diagnostic output from subroutine REFIL3
                 =8  not for general use
                 =9  not for general use
                 =10 diagnostic output from all subroutines
                     above

                 User label
                 Heading for reach network description

                 User label, headings
                 Reach number
                 Number of reach to which RCH is tributary;
                 negative value signals the most downstream
                 reach
                 Reach length
                 Bed  elevation at upstream end of reach
                 Bed  elevation at downstream end of reach

-------
CARD
NO.






Note:

28

29




30


31

32

CARD
COLUMN
41-45

46-50


51-60
Card 27 is
defined on
1-80

1-7
8-12



1-5
6-10

1-6
7-11
1-9
10-14
VARIABI£
NAME
NTAB

PftOUT


QSTAKT
repeated for
Card 13.
HEAD(*)

_
TABN



_
NPTS

_
SSECS
_
NSSEC(I)
FORMAT STRING

15

15


FlO.O
each reach in the system.

20A4

7X 3ffll£*=
15



5X NPTS=
15

6X SSECS=
15
9X NSSBC(I)=
15
DESCRIPTION

Number of the table giving the geometric
cross section properties for this reach
Printout option
=0 no output to be printed for this reach
=1 printed output to be given for this reach
Initial discharge from this reach
The system must be made up of NREA reaches, as

User label
Heading for tables of cross section information
User label
Table number (should correspond with table
number NTAB given on card 27)
Negative table number denotes the end of the
cross section tables.
User label
Number of points used to define the shape of
this cross section
User label
Number of subsections in the cross section
User label
Manning's roughness coefficient "n" for
                                                               subsection I of this cross section



Note:  Card 32 is repeated for each subsection in this cross section (1=1,...,SSECS).

-------
o
to
CARD
fro.
33
34
35
Note:
Note:
Note:
36
37
38
39
40
41
42
CARD VARIABLE FORMAT
COLUMN NAME
HEAD(*) 20A4
10
20
22-25
1-10 X(I) FlO.O
11-20 Y(I) FlO.O
1-20 - 20x
21-25 SSEC(I) 15
The sequence of cards 34-35 is
when card 35 is omitted (1=1,..
STRING
X
Y
SSEC
-
DESCRIPTION
User label
Heading
Horizontal co-ordinate of cross section point
Vertical co-ordinate of cross section point I


I
Subsection number for the elenent of the cross
section between point I and (1+1)
repeated for each
., NETS).
point on this cross section except for the last point
The sequence of cards 29-35 is repeated for each table of cross section information. A negative table
number on card 29 denotes the end of this section of input.
If SEDMT=NO then cards 36-76 roust be omitted.
1-80 HEAD(*) 20A4
1-5 - 5X
6-15 GRAV P10.0
1-5 - 5X
6-15 DENW FlO.O
1-5 - 5X
6-15 DENS FlO.O
1-6 - 6X
7-16 BULKD FlO.O
1-7 - 7X
8-12 BEDKNT 15
1-7 - 7X
8-17 EPSBED FlO.O
-
GRAV=
DENW=
DENS=
BULKD=
BEDKNT=
EPSBED=
User label
Heading for sediment transport information
User label
Acceleration due to gravity
User label
Mass density of water
User label
Mass density of sediment material
User label
Dry bulk density of sediment
User label
Maximum number of iterations for bedform
thickness calculations
User label
Convergence tolerance for computing bedform







                                                                                  thickness

-------
                CARD
                NO.

                43
  CARD
COLUMN

  1-7
  8-12
VARIABLE
  NAME
                                  SDPOOT
FORMAT
              7X
              15
STRING
                                                              SDPOOT=
                44
                          1-7
                          8-12
          SDEBUG
              7X
              15
                                      SDEBUG=
o
CO
                45




                46


                47



                46



                49


                50
  1-7
  8-17
OOTFAC
  1-BO    HEAD(*)
7X
F10.0
              20A4
                            OUTFAO
  1-60    KINVIS(I)     6B10.3
          (1=1,...,6)
  1-60
  1-5
  6-10
                          1-13
                          25
                           35
                           45
                           55
                           65
KINVIS (I)     6E10.3
(I = 7,...,12)
NPSF

HEAD(*)
5X
15

20A4
                            NPSF=
                                  SIZE_FRACTION
                                        1
                                        2
                                        3
                                        4
                                        5
DESCRIPTION
                 User label
                 Option to control printout of results of
                 sediment calculations
                 = 0  no printout
                 = 1  printout sediment outflow rates averaged
                       over the print interval
                 = 2  printout point values of sediment
                       outflow rates at the end of the print
                       interval
                 = 3  print both mean and point values

                 User label
                 Controls print out of additional and diagnostic
                 information for sediment calculations
                 = 0  no additional output
                 = 1  print out bed composition at the end of
                       print interval
                 = 2  print out bed composition and additional
                      infonaatory messages.
                 = 3  output detailed log of  sediment
                      calculations

                 User label
                 Multiplication factor to convert sediment
                 transport rates from internal units to the
                 units required on output

                 User label
                 Heading for kinematic viscosity data

                 Average monthly values of kinematic
                 viscosity for months 1 through 6
                 (January to June inclusive)

                 Average monthly values of kinematic
                 viscosity for months 7 through 12 (July
                 to December inclusive)

                 User label
                 Number of particle size fractions

                 User label
                 Heading for size fraction properties

-------
CARD
NO.

51
  CARD
COLUMN

  1-15
 16-65
VARIABLE
  NAME
FORMAT
HEAD(*)       3A4,A3
DIA(I)        5E10.2
(I=1,...,NPSF)
STRING
              DIAMETER
DESCRIPTION
                 User label
                 Mean particle diameter for each of NPSF
                 particle size fractions.  Diameters must
                 be entered in order of increasing size.
                 This card should be repeated if more than
                 5 size fractions are being modeled.
Note:  If DIFFUS = NO then cards 52-53 must be omitted.

52        1-15    HEAD(*)       3A4.A3        COMIiTO
         16-65    COMIflDtl)     5E10.2
                   (I=1,..,NPSF)
53
  1-15    HEAD(*)        3A4,A3
 16-65    THSESH(I)      5E10.2
           (1=2,...,NPSF)

          STEADY
 54


 55





 56



 57



 58
   1-80    HEAD(*)
   1-5
   6-15
 BIND
   1-6
   7-16    ABIND
   1-7
   8-17
   1-5
   6-15
 PROTCT
                   NMF
               20A4
 5X
 F10.0
               6X
               F10.0
 7X
 F10.0
               5X
               F10.0
                            THRESH
                            BIND=
               ABIND=
                             PBOTCT=
               ARMF*
                 User label
                 Composition of the land surface given as the
                 percentage by weight for each particle size
                 fraction.  This card should be repeated if
                 more than 5 size fractions are being modeled.

                 User label
                 Threshold value of land surface erosion
                 input, above which size fraction I is present

                 Value of land surface erosion input above which
                 the composition of the eroded material
                 is the same as that of the land surface
                 {COMUEX*) in card 52).  This card should be
                 repeated if more than 5 size fractions are
                 being modeled.

                 User label
                 Heading for sediment parameters.

                 User label
                 Percentage of cohesive material  (clay + silt)
                 which will just start to hinder the movement of
                 sand particles from a bed.

                 User label
                 Factor controlling the scour of clay and silt
                  (see Figure 21).

                 User label
                 Percentage of immobile sand which will start to
                 protect finer material frora scour

                 User label
                 Value of  the ratio  (depth of armoring material/
                 median diameter of armoring material) at which
                           pcevents turthet  scoot.

-------
CARD      CARD    VARIABLE
NO.     COLUMN      NAME
FOBMAT
              STRING
                               DESCRIPTION
59
60
61
62
63
64
65
66
67
68
69
70
71
1-5
6-15
1-7
8-17
1-80
1-7
8-17
1-7
8-17
1-7
8-17
1-80
1-7
8-17
1-7
8-17
1-7
8-17
1-80
1-6
7-11
1-5
6-10
DUNE
RIPPLE
HEAD(*)
SCFCCN(l)
CRTSHR(l)
SCREXP(l)
HEAD(*)
SCRCON(2)
CRTSHR(2)
SCREXP(2)
HEAD(*)
REACH
NLAY
5X
F10.0
7X
F10.0
2QA4
7X
F10.0
7X
F10.0
7X
F10.0
20A4
7X
F10.0
7X
F10.0
7X
F10.0
20A4
6X
15
5X
15
DUNE=
RI?PLE=
-
SCKCCN=
CRTSHR=
SCREXP=
-
SCRCCN=
CRTSHR=
SCREXP=
-
REACH=
NIAY-
User label
Maximum value of the ratio
(dune height/depth of flow)
User label
Value of the ratio (ripple height/
median diameter of mobile sands)
User label
Heading for parameters for scour of clay
User label
Factor controlling the scour of clay
(see Section 6.3.7).
User label
Critical shear stress for scour of clays
User label
Exponent controlling the scour of clay
(see Section 6.3.7)
User label
Heading for parameters for scour of silt
User label
Factor controlling the scour of silt
see Section 6.3.7)
User label
Critical shear stress for scour of silt
User label
Exponent controlling the scour of silt
(see Section 6.3.7)
User label
Heading for initial sediment conditions
User label
Reach number
User label
Number of bed layers in reach REACH at tl
                                                               start of  the run

-------
CARD CARD
' NO. COLUMN
72
1-13
25
35
45
55
65
73 1-15
16-65
74
1-12
75
1-5
H- 7-15
0 38-4b
VARIABLE FORMAT
NAME
HEAD{*) 20A4




HEAD(*) 3A4,A3
CSTAKT(NR,I) 5E10.2
(I=1,NPSF)
HEAD(*) 20A4
HEAD(*) 20A4

STRING
SIZE FRACTION
1
2
3
4
5
CSTART
BED_MATERIAL
LAYER
THICKNESS
COMPOSITION
76
1-5
                  NLY
15
          6-15    THKLAY        F10.0
                  (NR,NLY)

          16-65   COMLAY        5F10.
                  NR,NLY,I)
                  (I=1,...,NP3F)
                                                               DESCRIPTION
                                                               User label
                                                               Heading for size fractions
Note:  Card 76 is repeated for each layer in the reach,

Note:  The sequence of cards 70-76 is repeated for each

Note:  If DIFFUS=NO then cards 77-83 must be omitted.
                                                               User label
                                                               Initial sediment transport concentrations for
                                                               each of NPSF particle size fractions as an
                                                               average over reach REACH.
                                                               This card should be repeated if more than 5
                                                               size fractions are being modeled.

                                                               User label
                                                               User label for bed composition
       Bed layer number
       Bed layers must be numbered from 1 for the
       bottom or lowest layer to NLAY for the top
       layer.

       Thickness of layer NLY in reach REACH at the
       start of the run

       Composition of bed layer NLY in reach REACH.
       given as the percentage by weight for each
       particle size fraction

       Columns 16-65 may be repeated on subsequent
       cards if more than 5 size fractions are being
       modeled.

as defined by NLAY on card 71.

reach in the systen, as defined by NREA on card 13.

-------
                  CARD
                  NO.

                  77
                  78
                  80
M
O
                  81
                  Note:
                  82
          CARD
        COLUMN
VARIABLE
  NAME
          1-80    HEAD(*)
          1-7
          8-17
                                    FACTLS
FORMAT
                                                  20A4
              7X
              F10.0
STRING
                                                               FACTIS=
                  Note:   If SEDMT^ then card 79 roust be omitted.

                                                               FACTER=
79        1-7
          8-17    FACTER
                            3-5
                            7-10
                           17-20
                           22-25
                           32-35
          1-5
                                    HEAD{*)
              7X
              F10.0
                                20A4
                                              FCH
                                              SEGN
                                              AREA
                                              SEGN
                                              AREA
BEACH
                            6-10    SEGNU)
                           11-20
                           21-25

                           26-35
                           36-40
                           41-50
                           51-55
                           56-65
                           66-70
                           71-80
                  AREAU)
                  SECT (2)

                  AREA{2)
                  SEGN (3)
                  AREA{3)
                  SEGN(4)
                  AREA(4)
                  SEGN(5)
                  AREA(5)
                                                  15
              15

              F10.0
              15

              F10.0
              15
              F10.0
              15
              F10.0
              15
              F10.0
DESCRIPTION
                               User  label
                               Heading  for diffuse  loading  information

                               User  label
                               Multiplication factor  for converting LSEO
                               input into internal  units
                               User label
                               Multiplication factor  for converting EROS
                               input  into  internal  units

                               User label
                               Headings for  tributary area information
                               The headings in columns 7-20  are  repeated
                               across the card as needed for each additional
                               contributing segment.

                               Reach number with diffuse loading
                               A negative number is used to  terminate
                               input of tributary area information.
                               Segment number for first segment  tributary
                               to this reach
                               Tributary area associated with segment SEGN(l)
                               Segment number for second segment tributary
                               to this reach if any.
                               Tributary area associated with segment SEGN (2)
       Card SI is repeated for each reach that has a diffuse load input {LSRO or EROS).  Input of the
       tributary area information is terminated by giving a negative reach number.
                            2-5
                            7-10
                           12-15
                  HEAD(*)
              20A4
                                              NSEG
                                              LSRO
                                              EROS
                               User label
                               Headings for Fortran file numbers

-------
o
co
CARD
NO.
»3

Note:
Note:
64
85
Note:
8&
87
88
CARD
COLUMN
1-5
6-10
11-15
Card 63
on Card
VARIABLE
NAME
NS
D01
DD2
is repeated for
14.
If PTLOAD=NO then cards
1-60
1-7
8-17
HEAD(*)
FACTFL
FORMAT
15
15
15
each segment
84-88 must be
20A4
7X
F10.0
STRING


in the system
omitted .
-
FACTFL=
If SF.DMT=NO then card 8 6 must be omitted.
1-7
tt-17
3-5
7-10
13-15
17-20
1-5
fa-10
11-15
FACTSD
KEAD(*)
REACH
FLNUM
FLN
7X
F10.0
20A4
15
15
15
FACTSD=
RCH
FLNM
FLN
SEDN
—
                       16-80    SEDNM(I)      1315
                                (I=1,...,NPSF)
                                                                            DESCRIPTION
                                                                            Segment number
                                                                            Fortran file number for LSRO input for
                                                                            segment NS
                                                                            Fortran file number for EROS input for segment
                                                                            NS (may be omitted if SEDMT=NO)

                                                                         The system must have NSEGS segments as defined
                                                                            User label
                                                                            Heading for point load information

                                                                            User label
                                                                            Multiplication factor for converting point
                                                                            flow input into internal units.
                                                        User  label
                                                        Multiplication  factor  for converting point
                                                        sediment discharge input into  internal units

                                                        User  label
                                                        Heading for  point  flow file numbers
                                                        Reach number
                                                        Fortran file  number  for  point  flows.
                                                        Flag  to denote units for point sediment
                                                        discharges
                                                        =0 sediment  discharges  are in mass  units
                                                        >0 sediment  discharges  are in concentration
                                                             units.   Flow rates  from file FLNUM will be
                                                             used to  convert from  concentration to mass
                                                             units.

                                                        Fortran file  numbers for point sediment
                                                        discharges.
                                                        If SEDWT=WO,  or if there are no point
                                                        sediment inputs, the FLN and SEDNM(*}  may
                                                        be omitted.
             Note:

             Note:
Card 88 is repeated for each reach that has a point load input.   Input of point loading information
is terminated by giving a negative reach number.
If DISK = NO then cards 89-91 must be omitted.

-------
CARD
NO.
89
90
91

CARD
COLUMN
1-80
3-5
7-10
1-5
6-10
11-15
16-80
VARIABLE
NAME
HEAD(*)
HEAD(*)
PEACH
FUM(l)
FLNM(2)
FLNM(I)
(I=3,NPSF+3)
FORM
20A4
20A4
15
15
15
1315
                                              STRING
Note:
                                             RCH
                                             FUM
                                                               DESCRIPTION



                                                               User label,  for output to disk

                                                               User label,  headings
                                                              Reach number
                                                              Fortran file number for writing point flow
                                                              rates.
                                                              Fortran file number for writing flow depths.
                                                              Fortran file numbers for writing each of the
                                                              NPSF point sediment discharge rates;
                                                              FUM(NPSF+3) is the Fortran file number for
                                                              writing the total sediment discharge rate.

                                                              If SECKT=NO, then FLNM(3) through FLNM(SPSF+3)
                                                              may be omitted.  If any item is given a value
                                                              of zero, then there will be no output for
                                                              the corresponding variable.
Card 91 is repeated for each reach for which output to disk is required.
giving a negative reach number.
                                                                                Input is terminated by

-------
  5
  4
  5
  b
  7
  8
  9
10
11
12
13
ia
15
16
17
1«
19
20
21
22
23
34
25
26
27
2»
29
30
33
44
35
36
31
3B
39
40
41
42
43
aa
45
46
47
46
49
50
51
52
53
54
55
ENDDAY=
TDLKSZ=
EAST FORK RIVER, WYOMING
CALIBRATION OF HYDROLOGY AND SEDIMENT TRANSPORT  (BEOLOAO  ONLY)
         11
          04
BCiNMONs    6
         75
         14
          11
           6
         75
         300.
         128
         4
          1
           1.0
PTLOADs YES
DIFFUSs  NO
SEUMls YES
UISKs YES
WARNS YES
Hl)POUT =
MLINESs
PRFR£U=
UlAGNSs
REACH Nt
  RCH
           3
          75
          36
           0
      TRIH
    1    3
    2    3
    3    4
    4   -2
X-SECTIGn TAbLfcS
TAflLEfts:    1
NPTSs    8
SSfcCS=    2
NSSEC(1)= 0.1
IMSbfcC(2)= 0.025
         X
              DESCRIPTION
              LENGTH
               «47.
               626.
              1619.
              2496.
                 (IN
                          fcLUP
   ELDN MAB  PRT
    -15

      0

      2
     15,

     16,

     45,
TA8LE»=

SSECSs
       ,00

       ,44

       ,0b

       ,14

       ,24

       ,31
                   Y
                  22

                  78
                0.30
               -0

               -0
                  27
                  61

                0.06

                0.46

                1.22
                       2158.45
                       2159.60
                       2157.59
                       2157.17
                     METERS)
2157.59
2157.59
2157.17
2154.86
                                             1
                                             2
                                             3
                                             4
                                 OSTART
                                    1.79
                                    0.37
                                    1.87
                                    2.05
SSEC

   1

   2

   2

   2

   2

   2
                 Figure 41.   Example input  sequence

                                   110

-------
56
57
58
59
SO
61
63
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
06
87
88
89
90
91
9,2
93
94
95
96
97
98
99
100
101
102
103
104
lOb
106
107
108
109
110
111
NSSEC(1)= 0.1
NSStC(e>)= 0.035
X
-30.48

0.61

1.22

I.b2

7.31

7.92

8.23

14.32
TA8LE#= 3
S(PTS= 14
SSEC8= 2
NSSEC(1)= 0.1
N3SEC(2)= 0.025
X
•30.48

1.22

1.83

4.27

4.88

6.10

9.14

12.19

15.24

19.51

20.12

20.73

22.55

45.72
TABLE»= 4
NPTS= U
SSECS= 2
NSSECm = 0.1


V
1.52

0.84

0.65

-0.15

-0.15

0.00

0.70

1.52





Y
1.37

1.04

0.70

0.00

-0.43

-0.55

-0.46

-0.43

-0.37

-0.24

0.15

o.ro

0.94

1.37






SSEC

1

2

2

2

2

2

1






S3EC

1

2

2

2

2

2

2

2

2

2

2

1

1





NSSEC(2)= 0.025
Figure 41.  Example input sequence (Continued)
                   111

-------
X
-6.10

-1.07

0.00

1.83

2.44

3.05

4.27

6.71

14.63

18.29

20.73
24.99

25.45

45.72
Y
1.52

1.04

0.79

0.55

-0.24

-0.46

-0.55

-0.37

-0.30

-0.37

0.00
0.18

0.79

1.52
8SEC

1

2

2

2

2

2

2

2

2

2

2
2

1

 114
 115
 lib
 117
 lia
 123
 lr>4
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 13ft
 139
 140     TA8LE«=   -1
 141     SEOIMKNT TRANSPORT INFORMATION
 142     GHAV=9.81
 143     OENttslOOO.
 144     UENS=2650.
 14b     BULKO=2000.
 146     8Et)KNT=   30
 147     EPSBEO=0.075
 148     SDPOUTs    3
 149     SDEt3UG =    0
 150     OUTFAC=1.0
 151     KINEMATIC VISCOSITY DATA (MEAN JUNE WATER TEMP. =  5.0 OEG-C)
 152        1.5E-06   1.5E-06   l.SE-06   1.5b-0b    I.5E-06   1.5E-06
 153        l.'oE-Ub   1.5E-06   1.5E-06   1.5E-06    l.SE-Ofe   1.5E-06
 154     NHSKs    9
 155     SIZE FRACTION           1         2         3         4         5
 156                     0.001E-03 0.004E-03 0.125E-03 0.250E-03 0.500E-03
157                     l.OOOE-03 2.000E-03 4.000E-03 fl.OOOE-03
 15H     SEDIMENT PAHAMETEkS
159     BINO=20.
160     AdlND=5.
Ibl     PMOTCI=20.
162     ARMF=1.05
163     DUNE=0.4
164     RIPPLE=75.
165     PAKAMETEWS FOR SCOUR OF CLAY (LESS THAN E.*10**-6 M)
16b     SCKCOU=0. 0000005
167     CHTSH^=30.0
               Figure 4V-  Example input sequence (Continued)
                                    112

-------
168
169
170
171
172
173
174
175
176
1 //
17 '5
1 7 *
160
trtl
Irt2
IBS
1 rt j
166
1 8 /
1 88
Irt^
190
191
192
19.$
144
195
196
1S7
19ri
199
200
201
202
203
204
205
206
207
20«
209
210
an
212
213
214
215
216
217
218
219
220
SCREXP=2.0
PARAMETERS FOR SCOUR OF
SCKCONsO. 0000015
CRTSHRsl.O
SCREXP=2.0
INITIAL SEDIMENT CONOIT
KEACH5 1
NLAY= 1
SUSPhNUtl) SIZE FRACTION
cs r AW r

t
-------
 9.5   Interpretation and Control of Output

 Printed output is directed to two separate files.  Echoed input information
 and  results of hydraulic calculations are directed to file 6 and results of
 sediment  transport calculations are directed to file 7.   This use of two
 separate  output spools avoids the interleaving of hydraulic and sediment
 transport results.

 At the start of execution, the program reads in, echos,  and checks all  the
 input information from file 5.  The checking of data may result in a wide
 variety of error conditions.  Similarly, error conditions may arise during
 the  actual hydraulic and sediment routing calculations.   Each error message
 has  a unique error number assigned to it for cross reference with the
 explanatory messages given in Table 7 at the end of this section.  Two  types
 of error  conditions may arise: fatal errors and warnings.

 Fatal errors (designated by the type E in Table 7) are those which at some
 stage or  other will cause termination of the program.  After encountering a
 fatal error, a message will be printed but the program will continue
 execution, reading in, and checking data,  for example,  until execution can
 proceed no further.

 The  second type of message is a warning (designated by the type W in Table
 7).  Warnings are not fatal but the user should insure that the warning
 condition is not one which may result in erroneous results.

 Various levels of output are available depending on the  output options
 requested.  Four input variables HDPOUT, DIAGNS, SDPOUT,  and SDEBUG control
 the  type of output to be printed.   The values to be assigned to these
 variables and their use are summarized in Table 6.   HDPOUT and SDPOUT
 control the printout of the essential hydraulic and sediment routing
 results.   DIAGNS and SDEBUG control the printout of additional information
 primarily for use in debugging the program.   The debug output tends to
 become voluminous and should not generally be used.  For example, when
 SDEBUG =   1 the lowest level of debug output for sediment calculations,  one
 page of printed output is produced in every modeling interval.   When SDEBUG
 = 3 the amount of output is even greater and may amount  to two or more  page*
of printed output per modeling interval.
For production runs, SDEBUG and DIAGNS should be set to zero.   A  typical
sample of production output from hydraulics results (file  6)  is shown  in
Figure ^2 and output from sediment results (file 7) is  shown  in Figure 43-
These results were obtained by running the input sequence  of  Figure M1.
                                    114

-------
Interpretation of hydraulic results is self-explanatory.  The sediment
output consists of the mass transport rate for  each particle size fraction
(kg s"1 in Figure 43), the total  mass transport rate  (i.e. summation of the
transport rates for each size fraction),  and  the cumulative mass outflow
from the reach since the start of simulation.

Printed output is quite often not amenable to detailed analysis and the
option exists to write output to  disk files for plotting and further
analysis, as discussed in Chapter 8.   The following variables may be written
to disk:  flow rate (L^ T"1), mean depth  of flow (L), mass sediment
transport rate for each size fraction (MT"1), and the total mass sediment
transport rate (MT~*).  The units of disk output are the same as the
internal units used in the model.   No facility  exists within CHANL for
converting them to other sets of  units.


9.6  Model Application

The following sequence of tasks is recommended  when applying the model.

    (1)  Create diffuse loading files by  running the ARM model.

    (2)  Create point loading files by using  ancillary programs or by using
         prior runs of CHANL.

    (3)  Prepare input sequence and run CHANL for hydraulics only.

    (4)  Adjust Manning's n to obtain the best  possible agreement between
         simulated and recorded flow discharge  rates and velocities.  Note
         that sediment transport  rates are very sensitive to flow velocities
         and hence simulated velocities should  agree with recorded
         velocities as closely as possible.

    (5)  When simulation of hydraulics is satisfactory, prepare the input
         sequence for simulation  of both  hydraulics and sediment transport.

    (6)  Run CHANL for both hydraulics and sediment transport and compare
         simulated and recorded transport rates.  Both total mass transport
         rates and rates for each size fraction should be compared wherever
         possible.

    (7)  Adjust the various sediment parameters (BIND, ABIND, PROTCT,  ARMF,
         DUNE,  RIPPLE, SCRCON(»),  CRTSHR(«),  and SCREXP(*)) until simulated
         and recorded transport rates agree as  closely as possible.

    (8)  Attempt to explain discrepancies between simulated and recorded
         values.  This step may suggest,  for  example, that particle size
         fractions be redefined,  or it may point to deficiencies in model or
         data.
                                    115

-------
                         Table 7.  ERHDR MESSAGES FOR TOE CHANL MDDEL
NO.  TYPE               MESSA3E                 SUBROUTINE

001   E     RUN ABANDONED BECAUSE OF PRIOR        MAIN
            ERRORS

002   W     FLOW ROOTING CONTINUITY ERROR         MAIN
            IN REACH aa IS >  (l.OE-05*INFLOW);
            CONTINUITY ERROR  IS bb
                                                                          ACTION/EXPLANATION

                                                             Messages appearing earlier in the output
                                                             should give details of errors.

                                                             The flow routing continuity error provides
                                                             a check on errors arising from numerical
                                                             roundoff during routing computation.  If
                                                             the continuity error is excessive,
                                                             there are probably errors in either
                                                              (1) the code  used for flow routing
                                                             computations  or  (2)  the code used to
                                                             compute the continuity error.
003   E     VECTOR JUST FILLED (aa) AND THAT
            SPECIFIED FOR RELEASE  (bb) ARE
            DISSIMILAR
                                                   MAIN        The vectors which control manipulation of  the
                                                               transfer vector  TVEC contain invalid  infor-
                                                               mation.   Probable error in  code used  in manip-
                                                               ulation of TVEC  or in setting up vectors REL
                                                               or VECNO in subroutine RSORT.
 004
  005   W
  Oil
            FROUDE NUMBER EXCEEDS 0.8;
            FROUDE = aa
             IN REACH aa FD3H TIME bb IS LEF3
             THAN MODELING INTERVAL
             TIME BLOCK SPECIFIED aa; SYSTEM
             REQUIRES bb
MAIN        The sediment algorithms in this model are
            only applicable for flow rates up to a
            Froude number of 0.8.  In particular, the
            Ackers and White transport algorithm
            is not applicable for Froude numbers
            greater than 0.8, and the bedform charts
            developed by Vanoni only covers Froude
            numbers up to 0.84.

MAIN        This  implies that the reach is being com-
            pletely flushed  in the time interval, a
            condition which  may  lead to instabilities,
            or  result in negative constituent concen-
            trations.

 KILL       The time block size  specified TBLKSZ  (aa)  and
 (INTO)       the system  block size ATBLSZ  (bb),  as defined
             in the main program, should be  equal.  Alter
             ATBLSZ and  associated  array dimensions in the
             main program and recompile.

-------
NO.  TYPE
                        MESSAGE
SUBROUTINE
                                                                           ACTION/EXPLANATION
012   E     NO. BEACHES SPECIFIED aa; SYSTEM      KILL
            MAXIMUM bb                            (INFO)
013   E     NO. SEGMENTS SPECIFIED aa; SYSTEM     KILL
            MAXIMUM bb                            (INFO)
014   E     NO. OF X-SECTION POINTS SPECIFIED     KILL
            aa; SYSTEM MAXIMUM bb                 (RCHIN)
015   E     NO. OF SUB-SECTIONS SPECIFIED         KILL
            aa; SYSTEM MAXIMUM bb                 (RCHIN)
016   E     TABLE LENGTH COMPUTED aa; SYSTEM      KILL
            MAXIMUM bb                             (RCHIN)
017   E     NO. OF CROSSINGS CPOSNO IS aa;        KILL
            SYSTEM MAXIMUM bb                     (HYPROP)
018   E     LENGTH OF VECTOR RCHTRIB EXCEEDS      KILL
            SYSTEM MAXIMUM, MAXTRIB bb            (DIFFLD)
              The number of reaches specified NREA (aa)  is
              greater than the system maximum MREA (bb)
              defined in the main program.  Alter MPEA and
              associated array dimensions in the main
              program and adjust dimensions of the
              equivalenced arrays ORD and POT in subroutines
              RSORT and GETSON.

              The number of segments specified NSEGS (aa)  is
              greater than the system maximum MSEGS (bb)  de-
              fined in the main program.  Alter K5EGS and
              associated array dimensions in the main program.

              The number of points used to describe the cross
              section geometry for any one reach NPTS (aa)
              exceeds the system maximum MPTS (bb).  Alter
              MPTS and associated array dimensions in the
              main program.

              The number of subsections making up any cross
              section SSECS (aa) exceeds the system maximum
              MSECS  (bb).  Alter MSECS and associated array
              dimensions in the main program.

              The space required to store cross section
              hydraulic properties in vector TABLE (aa)
              exceeds the system maximum KTAD (bb).
              Alter MTAD and associated array dimensions
              in the main program.

              The number of points (aa) at which water
              surface and channel sides intersect for any
              non-zero water elevation exceeds the system
              maximum MCROS (bb).  Alter MCROS and associated
              array dimensions in the main program.

              Length of vector RCHTRIB used to store diffuse
              loading data exceeds the system maximum
              MAXTRIB (bb).  Recommended values of MAXTRIB
              may be found by referring to KAXTRIB in
              Appendix E.  Alter MAXTRIB and associated
              array dimensions in the main program.

-------
                 NO.  TOPE
MESSAGE
                                                                 SUBROUTINE
                                                   ACTION/EXPLANATION
                 019   E     LENGTH OF VECTOR KCHPT EXCEEDS
                             SYSi'EM MAXIMUM, MAXPT bb
c»
                 020   E     NO. OF POINT LOADS SPECIFIED
                             aa; SYSTEM MAXIMUM bb
                 021   E     FILEf SPECIFIED aa; SYSTEM
                             MAXIMUM bb
                 022   E     REACH* SPECIFIED aa; SYSTEM
                             MAXIMUM bb
                 023   E     SEGf SPECIFIED aa; SYSTEM
                             MAXIMUM bb
                 024   E     LENGTH OF TVEC aa; SYSTEM
                             MAXIMUM  bb
                  025   E      ILLEGAL PRINT OUT OPTION FOR
                              HYDRAULICS aa
                  026   E      ILLEGAL PRINT OUT OPTION FOR
                              SEDIMENT aa

                  027   E      ILLEGAL DEBUG OPTION FOR SEDIMENT
                          KILL        Length of vector RCHPr used to store point
                          (PNTLD)     load information exceeds the system
                                      maximum MAXPT  (bb).  Recounended values of
                                      MAXPT may be found by referring to MAXPT
                                      in Appendix E,  Alter MAXPT and associated
                                      array dimensions in the main program.

                          KILL        The number of point loads specified NPTLD
                          (PNTLD)     (bb) exceeds the system maximum MNPTLD  (bb).
                                      Alter MAXPT and associated array dimensions
                                      in the main program,

                          KILL        The file number specified for a diffuse or
                          (DIFFLD     point load exceeds the system maximum
                          or          MFILE (bb).  Renumber files or alter MFILE
                          PNTLD)      and associated array dimensions in the main
                                      program.

                          KILL        The user-defined reach number  (aa) exceeds
                          (RCHIN)     the system maximum MAXSCH  (bb).  Renumber
                                      the reach network or alter MAXRCH and
                                      associated array dimensions in the main
                                      program.

                          KILL        The user-defined segment number in the
                          (DIFFLD)    diffuse loading descriptions is greater than
                                      the number of  segments specified  (NSEGS)  in
                                      subroutine INFO.  Segments should be
                                      numbered consecutively starting from 1.

                          KILL        Length of vector TVEC used to  transfer  flow
                           (MAIN)      and sediment data from reach to reach exceeds
                                      the system maximum MTVEC  (bb).  Reco.Tir.ended
                                      values of MTVEC may be found by referring
                                      to MTVEC  in Appendix E.  Alter I-TTVEC and
                                      associated array dimensions in the main
                                      program.

                          KILL        The print out  option for hydraulic results
                           (INFO)      HDPOUT can only take on the values 0, 1,  2,
                                      or  3.

                          KILL        The print out  option for sediment results can
                           (SEDINF)    only take on values 0, 1,  2, or 3.

                          KILL        The debug option  for sediment  calculations  can
                           ISED1NF)    only take on values 0, 1,  2, or 3.

-------
HO.  TYPE
                        MESSAGE
SUBROUTINE
ACTION/EXPLANATION
02B   E     REACH aa NOT GIVEN IN NETWORK
            DESCRIPTION
029   E     NO. OF SIZE FRACTIONS SPECIFIED
            aa; SYSTEM MAXIMUM bb
030   E     NO. OF BED LAYERS SPECIFIED aa;
            SYSTEM MAXIMUM bb
031   E     MODEL REQUIRES A MINIMUM OF 3
            PARTICLE SIZE FRACTIONS; aa
            FRACTIONS SPECIFIED
051   E     ILLEGAL OPTION FOR PTLCAD aa
052   E      ILLEGAL OPTION FOR DIFFUS aa
053   E      ILLEGAL OPTION FOR SEDMT aa
054   E     TIME INTERVAL MUST BE AN EXACT
            DIVISOR OF ONE DAY; TIMINT=aa

055   E     ILLEGAL OPTION FOR DISK aa
056   E      ILLEGAL OPTION FOR WARN aa
061   E      REACH aa SLOPE IS bb; TOO SMALL
             FOR KINEMATIC ROUTING
  KILL        Reaches for which initial sediment conditions
  (SEDINF)     are given must also appear in the network
              description.

  KILL        The number of particle size fractions speci-
  (SEDINF)     fied NPSF (aa)  exceeds the system maximum MNPSF
              (bb).  Alter MNPSF, MNPS1, MNPS2,  MNPSF3, and
              associated array dimensions in the main program.

  KILL        The number of bed layers specified (aa)  exceeds
  (SEDINF)     the system maximum MLAY (bb).  Alter MIAY and
              associated array dimensions in the main program.

  KILL        The model is designed to handle a minimum of 3
  (SEDINF)     particle size fractions:  one clay, silt, and
              at least one sand fraction.  Size fraction 1
              is clay, size fraction 2 is silt, and fractions
              3 through NPSF are sands with fraction 3 the
              finest and NPSF the coarsest.

  INFO        Valid options for PTLOAD are ' YES1 and  '  NO1.
              The option should be right adjusted in the
              appropriate format field.

  INFO        Valid options for DIFFUS are ' YES1 and  '  NO1.
              The option should be right adjusted in the
              appropriate format field.

  INFO        Valid options for SEDMT are  ' YES1 and  '  NO1.
              The option should be right adjusted in the
              appropriate format field.

  INFO        A one day simulation period ff.ust contain an
              exact number of modeling  intervals.

  INFO        Valid options for DIS are  'bYes1 and  'bbNO1.
              The option should be right adjusted in the
              appropriate format field.

  INFO        Valid options for WARN are 'bYES1 and 1bbIG1.
              The option should be right adjusted in the
              appropriate format field.

  RCHIN       This model employs a kinematic wave technique
              for routing water through the stream network.
              For bottom slopes less than 0.0001 a kinematic
              method will probably give erroneous results.
              Check reach network description for reach aa;
              the model may not be suitable for your system.

-------
               NO.   TYPE              MESSAGE                 SUBROUTINE

               062    E     ROOT OF NETWORK NOT  DEFINED.           RCHIN
                            DOWNSTREAM REACH  SHOULD BE
                            TRIBUTARY TO  -VE  REACH!
                063   E     TABLEjf aa IS REFERRED TO BY MORE      RCHIN
                            THAN 1 REACH
                Ot>4   E     NO REACH ASSOCIATED WITH TABLES
                            aa; SLOPE MISSING
                                      RCHIN
                065   E     TABLE! aa IS MISSING FOR REACH bb     RCHIN
                        ACTION/EXPLANATION

           The downstream terminus of the stream network
           is identified by the reach having a negative
           value for TRIB.  Correct input and rerun the
           program.

           Each reach must have a unique table to describe
           its cross section geometry.

           Each cross section geometry table must be
           associated with a reach.

           The cross section geometry table referred to
           in the reach network description is missing.
NJ
O
                081   E

                091   E


                101   W
                102   E
                 111   E


                 121   E


                 122   E
STORAGE REOD BY SYSTEM IS GREATER     RSORT
THAN ALLOWED (aa)
WE NEED aa FLOW STORAGES-TOO          PSHEWN
MANY

SECTION EXTRAPOLATED IN REACH aa      STORGE
LEV=bb
NO CONVERGENCE AFTER 100 ITERATIONS   STORGE
IN SUBROUTINE STORGE
 REACH* MUST BE  IN ASCENDING ORDER
                                                                  PNTLD
 FILE NO.  aa ENDS  SOONER THAN           INITFL
 REQUESTED ENDING  DATE FOR SIMULATION
 THE SIMULATION TIME INTERVAL IS NOT
 A MULTIPLE OF THE TIME INTERVAL
 ON FILE NO. aa
INITFL
           The order of the stream being simulated is
           greater than MORDR defined in the main program.
           Actual stream order is aa.  Alter MORDR and
           associated array dimensions and recompile.

           Flow rate in reach aa is greater than the
           maximum flow rate stored in TABLE for aa;
           values of area, depth, top-width found by
           extrapolation.  The cross section for reach aa
           should be defined for a greater water depth.

           Given flow-rate, depth is computed using a
           Newton-Raphson iterative technique.  A limit of
           100 iterations is allowed for convergence to
           within 1 percent of the true solution.  If the
           iteration limit is exceeded, there is probably
           an error in the cross section description.
           Discharge, area, and top width must  increase
           monotonically with depth for this solution
           technique.

           Reach numbers roust be given in ascending order
           in the table of point load file numbers.
            Check simulation dates.
            necessary.
                                                                           Recreate file aa if
Alter simulation time interval or recreate
file aa.

-------
NO.  TYPE

123   E



124   W



125   B
126   E
 131   E
 141
 142
            MESSAGE                 SUBROUTINE

£ HEADER INDICATING ZERO              INITFL
DISPLACEMENT HAS BEEN FOUND IN
BEADING FILE NO. aa

END OF FILE ENCOUNTERED WHEN          INITFL
INITIALIZING FILE aa.  DATA FROM HERE
ON ARE ASSUMED ZERO
FILE INTERVAL AND SIMULATION START
TIKE ARE NOT COMPATIBLE
                                                  INITFL
FILE TYPE FOUND IS aa FILE TYPE
EXPECTED IS bb
INITFL
 END OF FILE ENCOUNTERED ON UNIT* aa   REFILl
 A HEADER INDICATING ZERO             BEFIL2
 DISPLACEMENT HAS BEEN FOUND IN
 READING FILE NO. aa

 KEY WITH VALUE aa WAS NOT FOUND      REFIL2
 FOR FILE NO. bb
                         ACTION/EXPLANATION

            Probable error in code used to generate
            compressed files.
            Applies to compressed files only.
The period of time from the start of a file
to the start of the requested simulation
period must contain an exact number of
modeling intervals.  This requirement enables
correct synchronization of timing for data
input and simulation.

The type of data input file is identified by
the following codes:
1-   uncompressed ARM file usually containing
     diffuse land surface runoff (LSRO)  data
2—   compressed ARM file usually containing
     diffuse land surface erosion (EROS) data
3-   point load file of flow or sediment
     discharge data.
The file type, as recorded on the header label
of the file, must agree with the function for
which the file is to be used (point load,
diffuse LSRD loading, etc.)

Refers to an uncompressed ARM-type file.
This message suggests that insufficient
data exist on file  (aa) to complete the
simulation.  Check the header information
and recreate file aa if necessary.  In
particular, file aa must be an uncompressed
ARM-type file and the number of data items
and the data interval must be compatible
with the begin and end dates on the header
record.

Refers to a compressed ARM-type file.
Probable error in the code used to generate
compressed file aa.

Refers to a compressed ARM-type file.
Probable error in the code used to read
compressed file aa.

-------
                NO.   TYPE               MESSAGE                 SUBROUTINE

                143    W     END OF FILE ENCOUNTERED ON UNIT aa    REFIL2
                            DATA FOR REMAINING TIME IS
                            ASSUMED ZERO

                151    E     CONCENTRATION UNITS  NOT YET           PLOAD
                            SUPPORTED FOR SEDIMENT
                161   E     END OF FILE ENCOUNTERED ON UNIT aa    REFIL3
                171   W     CHANNEL HAS GONE DRY IN TIME
                            INTERVAL aa PROBABLE LOSS OF
                            CONTINUITY
to
                172   W
                173   E
                                                                  ROUTE
SECTION EXTRAPOLATED IN REACH aa
LEV=bb
ROUTE
NO CONVERGENCE AFTER 100 ITERATIONS   ROUTE
IN SUBROUTINE ROUTE
                                                              ACTION/EXPLANATION

                                                 Refers to a compressed ARM-type file only.
Point loads for sediment roust be given in
mass units for the present version of the
model.

Refers to a point load file.  This message
suggests that insufficient data exist on
file aa to complete the simulation.  Check
the header information and recreate file aa
if necessary.  In particular the file must
be a point load file and the number of data
items and the data interval must be compatible
with the begin and end dates on the header
record.

When a reach goes dry in a time interval,
the outflow from the reach is assumed to
decrease linearly over the interval with
outflow zero at the end of the interval.
This assumption can lead to a slight
continuity error.

The flow rate in reach aa is greater than the
maximum flow rate stored in TABLE for aa;
values of area, depth, and top width found by
extrapolation.  The cross section for reach aa
should be defined for a greater water depth.

Given flow rate, depth is computed using a
Newton-Raphson iterative technique.  A limit
of 100 iterations is allowed for convergence
to within 1 percent of the true solution.  If
the iteration limit is exceeded, there is
probably an error in the cross section
description.  Discharge, area, and top width
raust all increase monotonically with depth for
this solution technique.

-------
                 NO.  TYPE
                  174
to
Ui
501   E


502   E


503   E





511   E




521   E
                       MESSAGE

            LEVEL PASSED OUTSIDE  PERMISSIBLE
            RANGE FOR THIS REACH.  LAST=aa
            NLEV=bb
                              DISPLACEMENT BETWEEN DATES IS
                              NEGATIVE - SUBROUTINE OFFST
LAND SURFACE COMPOSITION (COMLND)
DOES NOT SUN TO 100.

BED COMPOSITION FOR LAYER aa DOES
NOT SUM TO 100.

INITIAL SEDIMENT CONDITIONS NOT
NOT GIVEN FOR REACH aa
                              CONTINUITY ERROR IN SPLITTING
                              EROSION INTO PARTICLE SIZE
                              FRACTIONS

                              DIHENSIONLESS GRAIN SIZE OUTSIDE
                              RANGE FOR SAND FRACTION aa;
                              DGR=bb
SUBROUTINE                 ACTION/EXPLANATION

  RDOTE       Hydraulic properties of a cross section (top
              width, depth, cross sectional area and
              discharge) are given at a number of water
              surface elevations (NLEV).  In routing cal-
              culations, interpolation between values at
              successive levels is used.  The level at
              which a search for hydraulic properties is to
              start (LAST) is passed from the calling
              program.  A value of LAST greater than NLEV
              or less than one indicates an error in the
              code used for addressing hydraulic properties.

  OFFST       (1)  An input file starts after the requested
                   start date for simulation, or
              (2)  the start date for simulation is given
                   as being after the end date for simulation.
              Check simulation dates and recreate file if
              necessary.

  SEDINF      Correct input sequence.
  SEDINF      Correct input sequence.
  SEDINF      Initial conditions for in-stream sediment con-
              centrations and bed composition must be given
              for every reach mentioned in the network
              description.

  SPLIT       Probable error in code used to subdivide values
              of total lard surface erosion into individual
              particle size fractions.

  VTSCHG      The model can handle NPSF particle size
              fractions.  Of these, size fractions 1 and 2
              are reserved for clay and silt respectively.
              The remaining fractions, 3 through NPSF, are
              assumed to be sands, with fraction 3 the finest
              and fraction NPSF the coarsest.  The Ackers and
              Vfliite transport algorithms make use of a
              dimensionless grain size, DGR, which must be
              greater than 1.0 for sand fractions.  Check
              the diameters given for sand fractions and
              redefine if necessary.  Also check values
              assigned to kinematic viscosity, density of
              sediment material, density of water, and gravi-
              tational acceleration.  All these variables
              affect the dimensionless grain size.

-------
                 NO.  TYPE
                 522
                        MESSAGE

            DIMENSIONLESS GRAIN  SIZE OUTSIDE
            RANGE FOR CLAY/SILT  FRACTION aa;
            DGR=bb
531   W


532   E
                             BOTTOM OF DEFINED BED REACHED IN
                             COMPUTING ACTIVE IAYER THICKNESS

                             ITERATION COUNT EXCEEDED aa IN
                             BEDFORM CALCS
to
-e-
SUBROUTINE                 ACTION/EXPLANATION

  VISCHG      See explanatory notes for error message 521.
              The dimensionless grain size for clay or silt
              fractions must be less than 1.0.  Check the
              diameters assigned to the clay and silt
              fractions and redefine if necessary.  Also check
              kine.Tiatic viscosity, density of sediment material,
              density of water and gravitational acceleration.

  ACTIV       Execution continues,  toterial below the defined
              bed is assumed to be completely immobile.

  ACTIV       Bedforra calculations use an iterative procedure
              to arrive at the thickness of the active layer.
              The user specifies EPSSED, a convergence
              criterion giving the relative accuracy to which
              the bedform thickness is to be computed, and
              BEDKNT, the maximum number of iterations to
              be used in trying to achieve the required
              accuracy.  If debug output shows that uniform
              convergence is taking place b-jt the required
              accuracy has not been achieved, the number
              of iterations BEDKNT may be increased, or
              alternatively, the target accuracy EPSBED may
              be relaxed.  If no pattern of convergence is
              obvious,  the code should be inspected for
              errors or invalid assumptions.
                  541   W
            1C BEYOND RANGE OF AVAILABLE DATA;
            RG=aa
                  SSI   W
            Y/DSO BEYOND RANGE OF AVAILABLE
            DATA Y/DbO=aa; BEDMAP BASE
            ADDRESS=bb
  BEDFBH      The bedform charts used in the model cover a
              range of values of EG from 0.1 to 200.0.  When
              values of RG less than 0.1 or greater than 200.0
              are encountered, RG is reset to 0.1 or 200.0,
              respectively, and execution is continued.  RG
              is a function of median particle diameter,
              kinematic viscosity, and gravitational
              acceleration.  The values assigned to these
              variables should be checked.

  INTERP      When Y/D50 is either above or below the range
              of data available in a particular bedform chart,
              it is reset to the highest or lowest value
              represented in that chart, and execution is
              continued.  Values of water depth and median
              particle diameters should be checked.  The
              range of data currently available can be
              found from the DATA statements in subroutine
              fiEDFJW.

-------
                 NO.  TXPE
MESSAGE
                        SUBROUTINE
             ACTION/EXPLANATION
                 561   E     ABSCISSA BELOW RANGE IN TABLE
                             LCOK UP; ABSC=aa
                 562   E     ABSCISSA ABOVE RANGE IN TABLE
                             LOOK UP; ABSC=aa

                 563   E     ILLEGAL TABLE TYPE SPECIFIED;
                             mPE=bb
                 571   E     NEGATIVE CONCN. COMPUTED
                          LUKUP
                          (SDRDUT)
                          LUKUP
                          (SDBOUT)

                          LUKUP
                          (SDFOOT)
                          SDROOT
Check that the value of the abscissa is
realistic.  If necessary, extend the range of
the table.  LUKUP handles tables which are
defined through DATA statements and assign-
ments in the calling routine.
Probable error in code.  Table type bb has
not .been implemented for look-ups in
subroutine LUKUP.

This condition usually arises when the flow
time through the reach is less than the
modeling interval.  When a negative
concentration is encountered, the program
will print out hydraulic and sediment
results for the current reach and time
step and then stop.  The flow time and
modeling interval should be compared and
reach characteristics or modeling interval
adjusted where necessary.
ro

-------
WtSULTS UF MYDKAUUiC
ACH
U.
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
4
4
{j
«
41
4
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
YtAK

75
/5
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
7b
75
75
75
Ti
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
Ml)

h
b
b
b
b
b
fa
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
6
b
b
b
b
b
b
b
b
b
b
b
b
6
b
(,
o
b
b
b
b
b
b
b
b
b
b
b
OA

4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
14
5
5
5
5
5
5
4
4
5
5
5
5
5
5
4
4
5
5
5
5
5
5
4
4
5
5
5
5
HK WIN SEC

14
14
17
17
20
20
14
14
I/
17
20
20
14
14
17
17
20
20
14
14
17
17
20
20
23
23
2
2
5
5
a
a
23
23
^
2
b
5
a
&
23
23
^
2
5
5
8
H
23
23
2
a
b
5

0
0
0
u
0
0
0
u
0
0
0
0
u
0
0
0
0
0
0
u
0
0
0
0
0
0
0
u
0
u
0
0
0
0
0
0
0
0
0
0
0
0
0
u
u
0
0
0
0
u
0
u
0
0

0
0
0
u
u
0
0
u
0
0
0
0
u
0
0
0
0
0
0
0
0
0
u
0
u
0
0
0
0
0
0
0
0
0
0
u
u
0
u
0
0
0
0
0
u
0
u
u
0
0
0
0
u
0
DEPTH

.972ttOO
,998ttOO
,994ttOO
,9fl9h+OU
.990E+00
.992EtOO
,«59t-01
.9l3t-01
.9521-01
.990E-01
. 104EtOO
,107EtOO
.982E+00
.112E+01
,112tt01
.112E+01
,112tt0 1
.935E+01
,93bEtul
. ') 4 0 E » U 1
,5l4t+00
.547E+UO
,571t*UO
,595t+00
.b27t*00
,b44E*00
.135f>02
. 159E + 02
,lbUtt02
. 150E*02
• 1 59t *0£
. 1 59E+ d2
.B30E+01
. 1 Ibfctu2
. 1 17E*02
. 1 1HE+U2
.1 17E*02
1 1 17Et(/2
,963fc*01
,994fc*01
. 1 U3t*D2
. 1 U V l£ + U £
.Illbt02
. 1 13b + 02
.H3E*02
. 1 13E*02
,b47ttOO
.obOttl/U
,fafc4E+00
,b77EtOO
,67«E*UU
.b7ttttOO
,b7Hb*UO
,b7«EtUO
.162L+02
,167b+02
,!73tt02
. ItiOt t02
. 1 85E+02
, 1 fltiE + 02
.190E+02
. 1 89Et02
.119bt02
• 121Et02
1 124b+02
. 126E + 02
.131Et02
.134E+02
10P
1

.141tt02

.141E+02

.141E+02

.620Et01

,623Et01

,b27Et01

. 183E+02

.183E+02

,183Lt02

,230Et02

.230Et02

,230Et02

.144E+02

. 153t + 02

,173E*02

.173bt02

,62Bttol

,b29Ei-Ol

,b29E+Ol

,b29EtOi

.185E+02

.I89tt02

. I92t»02

.I92tt02

.230E+02

.231E+02

.231E+02
UiSCH
I
.H72E+U1
,9l5t tO I
. 9 0 7 1 1 1) I
.898E+01
,099EtOl
.9U4fc*Ol
.328EtOO
,349ttOO
,3fa5ttOO
. 3BOE tOO
.401E+00
.4 I IttOO
.750E+01
,943E*Ol
,944t*0l
.939E+01
,939Et01
,943t*0l
,57bt»0 I
.9l5btOl
,940btOl
,94lEtOl
.939E»Ol
,94lEtOl
.935btoi
.977E*Ol
.103E+02
.lOHt+02
.H2£t02
.H5b»02
.Ilbkt02
.H5E + 02
,4l3btOO
.421EtOO
.424ttOO
,432E»00
,433EtOO
.4336*00
.433E+00
. «J3EtOO
.96bEtOl
.I00tt02
. I05tt02
. I I0£*o2
,l!5tt02
,U8Et02
.I2utt02
. I I9£f02
.950E+01
,967EtOl
. 104E + 02
, 109E + 02
. I !4Et02
.Il6fct02
U
J = H
I'l
P
M
P
M
P
M
P
M
P
M
P
M
P
H
P
M
P
M
f
M
P
M
P
M
P
M
P
M
P
M
P
M
P
M
P
M
P
M
P
K,
H
M
P
M
P
M
P
M
P
M
V
M
P
                                                                   :. AN
         Figure  42.   Printout of hydraulic  routing results
                                 126

-------
RESULTS OF SEDIMENT TRANSPORT CALCS
REACH YEAK MO DA Hft M1N SEC TYPE
NO.. M=MEAN
SEDIMENT OUTFLOW RAT ES (MA5S*OUTf- AC/ T
1231
IMtJ UY PAI
b
P=POINT
2

2

2

2

2

2

3

3

3

3

3

3

3

3

4

4

4

4

4

4

4

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

75

b

b

b

b

b

b

b

b

6

b

b

b

b

b

b

b

b

b

b

b

b

5

5

5

5

5

5

4

4

5

5

5

5

5

5

4

4

5

5

5

5

b

2

2

5

5

8

a

23

23

2

2

5

5

8

8

23

23

2

2

5

5

a

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

M

H

H

p

M

p

M

P

M

P

H

P

M

P

H

P

H

P

M

P

M

.OOOE+00
.453E-02
.OOOE+00
.496E-02
.OOOE+00
.152E-01
.OOOE+00
.ISbE-01
.OOOE+00
.ISbE-01
.OOOE+00
.157E-01
.OOOE+00
.3a7E-03
.OOOE+00
.370E-03
.OOOE+00
.373E-03
.OOOE+00
.3726-03
.OOOE+00
.224E-03
.OOOE+00
.870E-04
.OOOE+00
.653E-04
.OOOE+00
.94bE-04
.OOOE+00
.778E-03
.OOOE+00
.783E-03
.OOOE+00
.787E-03
.OOOE+00
.7S9E-03
.OOOE+00
,3b4E-02
.OOOE+00
.3I2E-02
.OOOE+00
.275E-02
.OOOE+00
.415E-03
.OOOE+00
.449E-03
.OOOfc+00
.912E-03
.OOOE+00
.955E-03
.OOOE+00
.9falE-03
.OOOE+00
.967E-03
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.OOOE+00
.445E-09
.OOOE+00
.120E-07
.OOOE+00
.12l£-0fa
.OOOE+00
.960E-07
.OOOE+00
.246E-03
.OOOE+00
.252E-03
.OOOE+00
.2blE-03
.OOOE+00
.269E-03
.OOOE+00
.729E-03
.OOOE+00
.737E-03
.OOOE+00
.701E-03
.503E-01
.529E-05
.415E-01
.S40E-05
.109E-01
.954E-05
.551E-03
.100E-04
.551E-03
.102E-04
.553E-03
.103E-04
.194E-01
.OOOE+00
,3b2E-01
.OOOE+00
.449E-01
.OOOE+00
.biaE-01
.OOOE+00
.2bOE+01
.OOOE+00
.594E+01
.OOOE+00
,b09E+01
.OOBE+00
.605E+01
.OOOE+00
.241E-01
.174E-04
.372E-01
.216E-04
.410E-01
.28faE-04
.529E-01
.354E-04
.141E+01
.943E-04
.45SE+01
.105E-03
.57U + 01
.105E-03
.954E+00
.OOOE+00
.962E+00
.OOOE+00
.234E+00
.OOOE+00
.173E-01
.OOOE+00
.173E-01
.OOOE+UO
.173E-01
.OOOE+00
.5B7E+00
.OOOE+00
.61 1E+00
.OOOE+00
,b71E+00
.OOOE+00
.714E+00
.OOOE+00
.388E+00
.OuOE+oO
.410E-03
.OOOC+00
,b95E-03
.OOOE+00
.105E-02
.OOOE+00
.B58E+01
.OOOE+00
.910E+01
.OOOE+00
.100E+02
.OOOE+00
.109E+02
.OOOE+00
.451E+01
.OOUE+OO
.518E+00
.OOOE+00
,1 J4E + 00
.OOOE+00
.244t-0l

.270E-01

.359E+OU

.530E+OU

.530E+00

.^29E+00

.lUbE-02

.189E-02

.IB3E-02

.17faE-02

.997E-03

.255E-03

.252E-03

.2U3E-03

.272E-02

.273E-02

.273E-02

.272E-02

•244E+00

,b!9E+00

.^15t+00

                                                                    TOTAL
                                                                 .10JE+01
    CUfiL
                                                                 ,5b4E+00
                                                                 ,b09E+00
                                                                 .718E+00
                                                                 .299E+01
                                                                 .b09E+Ul
                                                                 .fiblE+01
                                                                 .101E+02
                                                                 .bl6E+01
                                                                 .bOoE+01
 4VOt+05
 793E+05
 faidt+Ob
,b94E+06
Figure  43.  Printout  of sediment  transport  results

-------
                                 CHAPTER 10

                               MODEL TESTING
As pointed out in previous chapters,  the  WEST Model  is actually composed of
two models, the ARM Model and the CHANL Model,  linked by a simple data data
managment system.  The ARM Model has  already been  extensively tested and
results are presented by Donigian and Crawford  (1976a) and Donigian, et al.
(1977).  The main thrust of model testing in this  study has thus been to
prove the CHANL Model, although there has also  been  limited testing of the
WEST Model as a whole.

Testing of the CHANL Model has been done  in three  basic stages:

     (1)  Testing on hypothetical situations.   A variety of tests were made
          on realistic hypothetical situations.  The purpose of these tests
          was to ensure, as far as possible, that  the model algorithms
          behaved as intended.  The tests were  also  designed to uncover some
          of the errors which are invariably present in newly developed
          programs, before testing on experimental and field data was begun.
          Much of the hypothetical testing was  done  as part of the process
          of developing and debugging the program  and results are not
          presented here.

     (2)  Testing on laboratory data.  An extensive  body of laboratory data
          exists pertaining to the sediment transport field.  We wished to
          find data for testing those algorithms which govern basic
          processes such as armoring  or the scour  of cohesive materials.
          Laboratory data are especially  useful for  this purpose since
          experiments may be performed under strictly controlled conditions
          and the resulting data is usually more accurate than that obtained
          in the field.   On the other hand, laboratory data do not, of
          course, replicate the conditions in the  field, and care must be
          taken in interpreting the results.  Almost all laboratory
          experiments have been carried out in  rectangular recirculating
          flumes, and unfortunately,  most experiments have been concerned
          with steady uniform flow over a cohesionless bed of uniform
          material.   The use of results from such  experiments would simply
          add a further check to the  sediment transport algorithms of Ackers
          and White.   Since these algorithms have  already been extensively
          tested (White,  Milli,  and Crabbe 1973b)  this hardly seemed
          worthwhile.
                                    128

-------
          One very useful  set of  laboratory data was found, however.  These
          data were collected at  the  Georgia  Institute of Technology by
          Little and Mayer (1972).  They performed a series of experiments
          to study the effects of sediment gradation on channel armoring.
          The data obtained enabled us  to test  those algorithms which govern
          the effect of armoring  on the transport of cohensionless material.
          These tests are  discussed in  Section  10.1.

     (3)  Testing on field data.   The CHANL Model was tested using data
          collected by the USGS on a  section  of the East Fork River, Wyoming
          (Mahoney, et al. 1976).  The  purpose  of these tests was to check
          the performance  of the  model  algorithms on a natural system under
          conditions of unsteady  flow.  To be of value in such a test, the
          data have to be  sufficiently  detailed and reliable so that
          deficiencies in  the data and  the model can be identified and
          separated.  The  major problem is finding data which accurately
          define both the  boundary conditions and initial conditions of the
         'system being studied and provide sufficient information for a
          comparison of simulated and recorded  results.  The Geological
          Survey study area on the East Fork  River appears to be one of the
          few cases in which sufficient detailed data exists for realistic
          assessment of the CHANL Model performance.  These tests are
          discussed in Section 10.2.

The test program adopted for the  CHANL  Model  was intended to check the
ability of the model to represent instream processes.  The tests have been
quite limited.  In particular, the tests have been restricted to the
transport of cohesionless  materials.  No data have been found for testing
the ability of the model to simulate  the scour, deposition, and transport of
cohesive materials.  Further testing  of the CHANL Model algorithms is
clearly needed.

The final test of the CHANL Model was made in conjunction with the ARM Model
and consisted of simulating sediment  movement on a basin scale, through the
Four Mile Creek watershed  in east central Iowa  (Section  10.3).

The Four Mile Creek watershed was chosen for  the study because comparatively
good data were available for that basin, and  because a related project was
under way in the same area, also  under  Athens-ERL sponsorship.  However, to
be useful in practice, it  must be demonstrated  that the WEST Model
satisfactorily reproduces the behavior  of a variety of natural basins.  With
this in mind, Hydrocomp prepared  an  inventory of basins which might be
useful for that purpose.  The catalog is listed in Appendix B and covers the
U8 conterminous states.  The catalog  was intended to be exhaustive. However,
considering the great variety of  organizations  active in data collection,
there must be some omissions.  Nevertheless,  it could prove useful in
selecting basins for future model testing.
                                      129

-------
 10.1  Armoring Study, Georgia Institute of Technology

 An extensive series of experiments were performed at the Georgia Institute
 of Technology to study the effects of sediment gradation on channel
 armoring. Several mixtures of crushed quartz were obtained each with a
 geometric mean particle diameter of 1.00 mm but with geometric standard
 deviations varying from 1.12 to 3-00.  These sediment mixtures were placed
 in a rectangular recirculating flume 0.6 m wide with a sediment bed 12.2 ra
 long and 0.045 ra deep.  The bed slope was set at 0.002.  In each experiment,
 a steady uniform flow was passed over the sediment bed.  The hydraulic
 conditions were chosen to purposely induce armoring.  Sediment transport
 rates at the outlet from the flume were measured periodically to obtain a
 full record of their variation over time.  The experiments and their results
 are discussed in detail by Little and Mayer (1972).

 Data from three of the experiments were chosen to check the performance of
 the CHANL Model in simulating the transport of cohesionless materials and
 the effects of armoring.  The experiments used were Little and Mayer's runs
 4-1, 5-1, and 6-1.  The hydraulic conditions used for each run are given in
 Table 8.  Manning's n for each run was calculated from the known hydraulic
 conditions so that the simulation exactly duplicated the measured f ] DW rates
 and depths.


         Table  8.   HYDRAULIC  PROPERTIES  (GEORGIA  TECH.  ARMORING STUDY)

 Run         Flow          Flow        Bed           Kinematic       Manning's
            Rate         Depth        Slope          Viscosity            n
           m^s"*-           m                           m s~i

 4-1        0.00623       0.037        0.0019          0.89E-06       0.0157

 5-4        0.0128         0.051         0.002           1.00E-06       0.0131

 6-1        0.0127         0.056        0.002           1.00E-06       0.0155
In running the CHANL Model, the flume was represented by a single  reach  with
a point inflow of water at the upstream end.   A modeling interval  of  30
seconds was used in all runs to satisfy the restriction that modeling
interval be less than the flow time through the reach.

The original particle size distribution of the bed material  for  each  run is
given in Table 9.  In simulating sediment transport,  the graded  material was
represented by a small number of discrete particle size fractions. The
particle size fractions and idealized initial bed  composition used for each
run are listed in Table 10.  The values of those sediment parameters
relevant to the transport of cohesionless material used in each  run are
listed in Table 11.
                                     130

-------
             Table 9-  ORIGINAL BED PARTICLE SIZE DISTRIBUTIONS
                       (GEORGIA TECH. ARMORING STUDY)
Sieve
Opening
ram

8.000
  667
  000
  830
  000
  414
  000
0,707
0.500
0.354
0.250
0.177
0.125
 Run 4-
 100.00
  99.64
  96.27
  80.86
  49.95
  20.57
   4.14
   0.54
   0.13
Original size distribution (%)

          Run 5-4
          100.00
           95.49
           50.23
            3-91
            0.23
            0.05
Run 6-1

96.99
93.73
89.50
82.43
73.02
61.75
50.05
38.31
26.98
17.54
10.54
 6.07
 3.00
        Table 10.  DEFINITION OF PARTICLE SIZE FRACTIONS AND INITIAL
                        BED COMPOSITION FOR MODELING
Median
Diameter
mm

0.25
0.5
1.0
2.0
4.0
 Run 4-1
 20.57
 60.29
 18.78
  0.36
 Initial Bed Composition (5O

          Run 5-4
           3.9
          91.6
           4.5
Run 6-1

17.54
20.77
23.44
20.68
17.57
         Table 11.  SEDIMENT PARAMETERS USED WITH GEORGIA TECH. DATA

                                             Value
Sediment
Parameter

PROTCT
ARMF
DUNE
RIPPLE
Run 4-1

 10.0
  1.0
  4.0
 75.0
         Run 5-4

           0.0
           1.0
           4.0
          75.0
                                              Run 6-1
45.0
 1.05
 4.0
75.0
                                    131

-------
10.1.1  Run 4-1
The hydraulic conditions and sediment regime used in  simulating  Run  4-1  are
presented in Tables 8 and 10.   Note that the graded  sediment  was represented
by four sand fractions of diameters 0.5,  1.0,  2.0, and  4.0  ram. Simulation
was done at a 30 sec time step for a period of 1800  min.  A  comparison  of
simulated and recorded cumulative sediment transport  is given in Figure  44.
The relevant sediment parameters used in simulation  are listed in Table  11.

The simulated result in Figure 44 is obviously poor.  The run was repeated
several times with various parameter values but no substantial improvements
were achieved.   Inspection of the output from the sediment  transport
simulation showed that only the finest sand fraction  (0.5 mm  diameter) was
predicted as being in motion.   The remaining fractions, making up about  80
percent of the bed, were immobile.  The recorded data,  however,  indicated
that both the 0.5 ram material  and 1.00 mm material were in  motion and  that
only about 20 percent of the bed material was immobile.  A  check of  the  data
indicated that no reasonable change in the definition of  particle size
fractions could improve the situation.  However, a 20 percent change in
Manning's n from 0.0157 to 0.0126 dramatically improved simulation.   The
results are shown in Figure 45.  The change in Manning's  n  increased the
flow velocity and reduced the flow depth from the recorded  value of  0.037 m
to 0.030 m.  These changes in simulated hydraulic conditions  caused  the  1.00
mm particle size fraction to become mobile, reduced  the effect of armoring
and hence greatly increased the sediment transport rate.  Thus,  the  reason
for the poor simulation in Figure 44 is simply that  the model predicted  the
1.00 ram size fraction to be immobile, whereas in fact it  was  mobile.   This
problem is not surprising when one considers that flow  conditions are  at the
threshold of movement for the 1.00 mm size fraction.
                    RECORDED
                    SIMULATED
                                800         1200
                                 TIME, minutes
1600
2000
         Figure 44.  Cumulative snl imriit  transport  tor Ceoi
                     lust it ut c dl  Technology,  run 4-1
                                    132

-------
The algorithm developed by Ackers and White for predicting  the mobility of
particles is similar to the familiar Shields curve.   It  was  derived by
fitting a curve to laboratory and field observations of  the  initiation of
particle movement.  The actual data points show a  certain amount  of scatter
about the best fit curve and so the threshold of movement for a particular
situation cannot be predicted with certainty.

10.1.2  Run 5-4
The hydraulic conditions and sediment regime used  in simulating Run 5-4 are
shown in Tables 8 and 10,  and the relevant sediment  parameters in Table 11.
The graded sediment was represented by three sand  fraction with diameters
0.5, 1.0,  and 2.0 mm.  Simulation was done at a 30-sec time  step  for a
period of 75 rain.  A comparison of simulated and recorded cumulative
sediment transport is shown in Figure 46.

Because of the small amount of immobile material in  the  bed, armoring did
not have any effect over the period of this run.   The experiment  essentially
studijed the transport of uniform cohensionless material  by steady uniform
flow.   Figure 46 shows close agreement between simulated and recorded
results which provides an additional check on the  adequacy of Ackers and
White's sediment transport algorithms.

10.1.3  Run 6-1
The hydraulic conditions and sediment regime used  in simulating Run 6-1 are
shown in Tables 8 and 10,  and the relevant sediment  parameters of the best
simulation results are shown in Table 11.   The graded sediment was
represented by five sand fractions with diameters  0.25,  0.5, 1.0, 2.0, and
4.0 mm.  Simulation was done at a 30-sec time step for a period of 8500 min.

                    RECORDED
               	SIMULATED
                               800         1200
                                TIME, minutes
1600
2000
         Figure  45.  Effect of Manning's n on sediment transport
                    for Georgia Institute of Technology, run 4-1
                                   133

-------
Comparisons of simulated and recorded cumulative  sediment transport are
shown in Figure 4? and 48.

Figures H7 and 48 show that sediment  is  transported at a relatively high and
   -form rate for the first  100  min  of recorded data.  However, as an
armoring layer of immobile  material builds up, transport rates are rapidly
          After about  3000  min,  the transport rates are less than 5 percent
of the initial recorded values.

           !

           Q
           )
           -
           !

           I
           .
           •

          3  4
          :
           i
           i
                                              RECORDED
                                       	SIMULATED
                         20          40
                               TIME, minutes
BO
        Figure 46.  Cumulative sediment transport  for  Georgia
                    Institute of Technology,  run  5-4
                                  134

-------
                                                 RECORDED
                                          	SIMULATED
                           800         1200
                            TIME, minutes
                        1600
            2000
Figure 47.  Cumulative sediment transport for Georgia Institute
            of Technology, run 6-1 for first 1800 minutes
                                               RECORDED
                                               SIMULATED
               2000
4000         6000
  TIME, minutes
8000
10000
     Figure  48.   Cumulative  sediment  transport  for Georgia
                 Institute of Technology,  run 6-1
                              135

-------
It can be seen from Figure 47 that  the initial  sediment  transport rates
before armoring begins to take effect are underestimated by about 40
percent.  However, as noted in Section 6.3-5,  this  is  well within the
expected accuracy of the sediment transport algorithms.  The simulated
cumulative sediment transport reaches a value  of about 49 kg after  1600 min.
After 1600 min, simulated sediment  transport virtually stops because of the
effects of armoring.  However, the  recorded data (Figure 48) shows  that
sediment transport does continue at a low rate  even with a substanial
armoring layer.  Nevertheless, the  model adequately reproduces the  effects
of armoring.  The armoring algorithm (Figure 19) could be altered to improve
simulation,  but this is not warranted solely on the basis of the present
limited testing.

Calibration of the model to simulate armoring  is done  by adjusting  the
sediment parameters ARMF and PROTCT.  ARMF controls the  total quantity of
mobile material available for transport when an armor  bed is formed, and
PROTCT controls the rate at which armoring reduces  the sediment transport
rates.  The effects of changes in ARMF and PROTCT are  discussed in  Section
10.1.4.

10.1.4  Sensitivity Tests
The Georgia Institute of Technology data were  used  to  perform several
sensitivity tests.  Data from Run 5-4 were used to  demonstrate the
sensitivity of sediment transport to changes in hydraulic conditions, and
data from Run 6-1 were used to demonstrate the  sensitivity of results to
changes in various sediment parameters.  The simulation  results presented
for Run 5-4 in Section 10.1.2 and for Run 6-1  in Section 10.1.3 were used as
a basis for comparison.

Figure 49 shows the effect of changes in roughness  on  sediment discharge
with the flow rate and all sediment parameters  held constant.  The  line
corresponding to a Manning's n of 0.0131 is that based on the laboratory
measurements.  The remaining curves correspond  to  +10 percent changes in
values of n.  The effect of a decrease in roughness for  a constant  flow rate
is a decrease in flow depth and an  increase in  velocity. In this case, a 10
percent reduction in n reduced the  depth of flow by approximately 10 percent
and increased flow rates by approximately 10 percent.  The net result was a
125 percent increase in the sediment transport  rate.   Although the  effect of
changes in hydraulic variables is dependent on  the  geometry and slope of the
channnel and on the sediment characteristics,  sediment transport is
generally very sensitive to change  in flow velocity.   This means that in
simulation,  it is most important to accurately  reproduce the measured flow
velocity and stage as well as the discharge rate.   Manning's roughness is a
most important calibration parameter for this  purpose.

Figure 50 shows the effect of changes in flow  rate  on  sediment discharge
with Manning's n and the sediment parameters held constant.  The line
corresponding to a flow rate of 0.0128 m3s-1  is based on the laboratory
measurements.  The remaining lines  correspond  to ±10 percent changes in flow
rates.  For this particular test, a 10 percent  change  in flow rate  increased
the flow depth by 6 percent and the flow velocity by 4 percent.  The net
                                     136

-------
 a:
 O
 a
 t/3
 Z
 Q
 111
 M
•r
o
                                     RECORDED

                                     SIMULATED
                20          40

                      TIME, minutes
Figure 49.  Sensitivity of sediment transport to channel
            roughness
                          137

-------
                                    RECORDED
                             	SIMULATED
                          40
                     TIME, minutes
Figure 50.   Sensitivity  of  sediment transport to flow
            rate
                         138

-------
effect was a 35 percent increase in the sediment  discharge  rate.  The
increase in flow rate has a two-fold effect.  Firstly  it  increases flow
velocity, which, as we have seen,  has a great effect  on  sediment transport
rates.  Secondly, the simple fact  that the volumetric flow  rate is greater,
results in an increased mass transport rate.   Thus, as noted earlier, it is
important that simulation accurately reproduce both flow rates and
velocities.

The effect of change in water temperature on  sediment discharge, with all
other variables constant, is illustrated in Figure 51.   Water temperature
affects kinematic viscosity which  in turn is  one  variable governing  the
sediment transport rate.  As can be seen from Figure  51, the effect  of
change in water temperature becomes more pronounced as the  temperature
falls, or alternatively, as kinematic viscosity increases.  In this  example,
a drop in temperature of 10 °C caused a 10 percent drop  in  the sediment
discharge rate.  The present version of the model uses an average monthly
value for kinematic viscosity.  In most rivers, the change  in temperature
within a month may be quite large, and on small streams  even the diurnal
temperature change may be substantial.  One important improvement to the
model should be to allow the input of more detailed water temperature or
kinematic viscosity data.

The effect of sediment parameter changes on the simulation  of armoring is
shown in Figures 52 and 53.  The parameters used  for  calibration of  the
armoring process are ARMF and PROTCT.  ARMF controls  the total quantity of
mobile material available for transport from  the  armor bed.  PROTCT  controls
both the time at which armoring starts to have an effect and the rate at
which sediment transport is reduced.  The best fit curves in Figures 52 and
53 correspond to the simulation results obtained  for  run 6-1 in Section
10.1.3.  The hydraulic conditions  and sediment parameters used in this run
are shown in Tables 8 and 11 respectively.  Figure 52 shows the effect of an
increase in the value of ARMF with all other  variables constant.  ARMF is
the value of the ratio (depth of armoring material/ median  diameter  of
armoring material) at which armoring prevents further scour.  The principal
point to note in Figure 52 is the  way in which the asymptotic cumulative
transport rate is increased, representing a thicker armor layer and  a
greater quantity of mobile material available for transport.  Figure 53
shows the effect of reduction in the value  of PROTCT  from 45 to 10.  PROTCT
is the percentage of immobile material in the active  layer which will start
to protect finer material from scour.  With a lower value of PROTCT,
armoring starts to take effect earlier but  the armoring process takes longer
to completely stop scour.
                                    139

-------
                                               T = 20°C
                20          40           60
                       TIME, minutes
Figure 51.  Sensitivity of sediment  transport  to water
            temperature
                            140

-------
 :
11

o
! .
 /)



 1

 1
LLI
: -

Q
LU
C/3
LLI


1 ;
•1
 I
 )
: -
D
i '
ARMF = 1.2  _-
                          RECORDED

                   	SIMULATED

                          PROTCT = 45
                            I
                           800         1200

                            TIME, minutes
                          1600
2000
  Figure 52.  Effect of parameter ARMF on sediment transport
                                                 RECORDED

                                               — SIMULATED

                                                 ARMF = 1.05
                           800         1200

                            TIME, minutes
                          1600
2000
   Figure  53.   Effect of parameter PROTCT on sediment transport
                               141

-------
10.2  East Fork River,  Wyoming

10.2.1  Introduction
The tests described in  this section are based  on  data  collected by the U.S.
Geological Survey during May and June  1975  on  a reach  of  the East Fork River
in western Wyoming (Mahoney, et al.  1976).   The study  reach is approximately
5000 m in length and has a  tributary area of about  470 km2.  The location of
the watershed and study area are shown in Figure  54,   A more detailed map of
the study reach showing the position of the principal  gaging stations, is
given in Figure 55-  Within the study  reach, the  river flows over a sand bed
with material in the East Fork ranging in size from fine  sand of diameter
less than 0.06 mm to coarse gravel of  diameter 60 mm or more.  The bed of
Muddy Creek is also sand but it is considerably finer  than the material in
the East Fork, ranging  in diameter from 0.06 mm to  8 mm.

The study covered the beginning of the spring  snowmelt season and detailed
data was collected for  the period of May  28th  to  June  18th.  The data
presented by the Geological Survey (Mahoney, et al. 1976) for the study
period include:

        •cross section  measurements at several sections at regular intervals
         throughout the study period.

        •staff gage readings at half-hour intervals for sections B1,
         MC, and B17

        •rating curves  (stage-discharge relations)  for sections B1, MC,
         and B17

        •summary of instantaneous water temperature observation in the
         East Fork and  Muddy Creek

        •sunmary of suspended sediment concentrations  in  the East Fork and
         Muddy Creek

        •particle-size  distribution of bed  material on May 28 at various
         sections in the East Fork and Muddy Creek

        •summary of total bed load transport rates  at  sections B1, MC,
         and B17

        •particle-size  distribution of bed  load sediment  at sections B1,
         MC, and B17
                                    142

-------
42°45'
421301
                           110030'
                    KEY

                   . Flow & sediment
                    gaging station
              B17
                        noV
                                           DRAINAGE BOUNDARY
                              i
15km
        Figure  54.   East Fork  Kivi>r watershed and study  reach
                                     143

-------
                                          KEY
                                       A  Flow & sediment
                                          gaging station
                                       l) Reach number
                                           MUDDY CREEK
                                                MC
Figure 55.  Study reach showing location of gaging stations
            and reach numbers used in simulation
                             144

-------
The data collected represents one of the most  detailed  sediment  transport
studies to be undertaken.   Note that the upstream  boundary  conditions are
specified by gaging stations at sections B1  and  MC (Muddy Creek), and
outflow from the reach is  specified by a gaging  station at  section B17. The
gaging stations at sections B1, MC, and B17  completely  specify both  input to
and output from the study  reach; lateral inflows are  negligible.

Another point to note is that the sediment transport  data include bed load
measurements, particle-size distributions for  the  bed load  sediment, and
measurements of suspended  sediment concentrations.  No  particle-size data is
presented for the suspended material,  and unfortunately, only a  few
suspended sediment measurements were taken.  As  the study was principally a
bed load investigation,  the lack of emphasis on  the suspended material  is
not suprising.  However, the sediment transport  algorithms  of Ackers and
White are used to predict  the total sediment transport  load; no  separation
is made between bed load and suspended load.   This makes the interpretation
of the sediment simulation rather difficult.   The  coarse particle sizes
might be expected to move  completely as bed  load.   In that  case  the  total
load and bed load are directly comparable and  interpretation of  results
present no difficulty.  However, intermediate  and  fine  sand sizes will  move
partially as bed load and partially as suspended load.   The finer the
material the less the bed  load contribution and  the greater the  amount  in
suspension.  Since it is not possible to estimate  the particle size
distribution of the suspended material, no comparison can be made between
simulated and recorded transport rates for the fine sand fractions.

10.2.2  Data Preparation
For modeling purposes, the study area was split  into  four reaches as shown
in Figure 55.  A mean or average cross section was obtained from field
measurements for each reach.  The assumed reach  lengths, slope,  and  cross
section geometry are given in Figure 41.  The  figure  is an  input sequence
used in actually running the CHANL model on  the  East  Fork data.  Study  of
reach lengths and maximum flow velocity indicated  a modeling interval of 5
min.

After studying the particle-size distribution  of the  bed material we decided
to model sediment movement using a total of  seven  sand  fractions with
diameters 0.125, 0.25, 0.5, 1.0, 2.0,  4.0, and 8.0 ram.   The assumed  initial
bed compositions are given in Figure 41.

Input to the system was provided by point loads  at sections B1 and MC
(Figure 55).  Creation of  the point load files required analysis and
manipulation of the basic  data.  The half-hourly stage  readings  were
converted to flow rates through the use of the rating curves.  Linear
interpolation was used to  create flow rates  at 5 min  intervals (the  modeling
interval) and the data was then written to disk  in the  format required  by
the CHANL Model (Section 7.4).

The sediment transport data consisted of total bed load measurements and
corresponding particle-size analysis taken at  irregular intervals throughout
the study period.  This data was converted to  sediment  transport rates  for
each particle size fraction.  Linear interpolation was  then used to  create


                                     145

-------
data at the required 5 min interval and the data was written to  disk in  the
required format.  The point load input to reaches 1  and  2  thus consisted of
a flow file and seven sediment transport files,  one  for  each sand  fraction
being modeled,  to give a total of 16 data files.   The sediment files were
based solely on the bed load data.   No attempt  was made  to adjust  the data
for the fine material in suspension.  The input data for the fine
particle-sizes  was thus less than the true values.   This would certainly
affect simulation of the finer particle-sizes,  but it was  thought  to have
only a minor impact on simulation of the movement of coarser fractions.

Similar analysis and manipulation was performed for  the  flow and sediment
data collected  at Section B1?.  These data were to be used in comparing
simulated and recorded flow and sediment discharges  from the study area.

Analysis and preparation of data produced sufficient detailed information to
allow continuous simulation at a 5  min time step for a total of  just over 7
days.  This was the period of time for which complete flow and sediment  data
existed at Sections B1, MC, and B17.  Simulation could have proceeded for a
longer period of time by filling in or making assumptions  about  various
missing data.  We did not consider this approach to  be advisable because of
the difficulty  of separating the effect of data errors from inadequacies in
the model.

10.2.3  Results
The first step  in modeling the East Fork River  was the calibration of the
hydraulics.  This was straightforward since the reach lengths were quite
short and there was little or no attenuation or alteration of the  flow
hydrograph from input at B1 and MC to output at B17.   In fact the  situation
is such that output should be almost equal to the input  in each  time step. A
Manning's n of  0.025 was used for the incised channel of all four  reaches
(Figure 41).  A comparison of simulated and recorded flow  values at B17  is
shown in Figure 56.  Agreement is satisfactory  but not as  good as  we had
hoped considering the short reach lengths, lack of lateral inflow,  and
obvious substantial effort in the data collection.   Low  flow agreement is
good but at high flows, the simulated values are about 15  percent  lower  than
recorded values.  The reason for this discrepancy appears  to be  an
inconsistency in the rating curve at one or more of  the  gaging sites.  The
problem may be  caused by scour of the channel at high flow periods.

The next step after obtaining satisfactory hydraulic results was simulation
of sediment transport.  The simulation was performed a number of times
adjusting the relevant sediment parameters to obtain the best agreement
between simulated and recorded results.  The final sediment parameters are
listed in Table 12.  Only the changes to the parameter PROTCT seemed to
noticeably improve the simulation results.
                                     146

-------
1500.0
1200.0
      £

     lif

     cc

M    O
 900.0
 600.0
 300.0
   0.0
         	SIMULATED
         	RECORDED
                                                                     T	1	T	

                                                                         EAST FORK RIVER, WYOMING
     11:0024:00        24:00        24:00        24:00        24:00        24:00        24-00   15-00
      JUNE 4   JUNE 5      JUNE 6       JUNE 7      JUNES       JUNE 9      JUNE 10   JUNE 11

                                               TIME


                   Figure 56.   Comparison of simulated  and recorded flows,
                               East Fork River

-------
             Table 12.   SEDIMENT PARAMETERS FOR  EAST FORK RIVER


                    BIND                  not  applicable*

                    ABIND                 not  applicable*

                    PROTCT                    20.0

                    ARMF                       1.05

                    DUNE                       0.4

                    RIPPLE                    75.0

 *BIND and ABIND are used in simulating the transport of cohesive materials.

Simulated sediment transport rates were written to disk for each particle
size fraction being modeled and for the total  mass transport rate.
Comparison of simulated and recorded transport rates are shown in Figures
57-64.  Figures 57-63 refer to the transport of individual size fractions
from 0.125 mm to 8 mm in diameter.   Figure 64  is a comparison of the total
simulated sediment transport rate against the  recorded bed load transport.
Some comments will be made about the simulation results.

The simulation results for the finest sand fraction  (0.125 mm diameter) show
poor agreement with the recorded data,  which is almost zero for the whole
simulation period.  The reason for the discrepancy is that the recorded
results are for bed load only and it appears that all of the fine material
is actually carried in suspension,  and hence not measured.  The input to the
system at B1 and MC is based solely on bed load  so the input of fine
material would probably also be in error.   The discontinuities in simulated
transport rates, such as that at about 22:00 on  June 8, are caused by
recomputation of the active layer thickness and  the  consequent sudden
increase in the amount of fine material available for transport.  These
spikes could be smoothed by increasing the frequency at which active layer
characteristics are recalculated (Section 6.3.4).  The sudden rise in
sediment transport rates at the beginning of simulation is caused by the
choice of initial conditions (Figure 41).

The simulation for the 0.25 and 0.5 mm fractions (Figure 58 and 59
respectively)  show similar results to those obtained for the 0.125 fraction
(Figure 57).  Again it seems that most material  travels in suspension and is
not measured and agreement between simulated and recorded results is poor.
Note that compared to Figure 57 many of the discontinuities in transport
rates have vanished.  However, discontinuities still occur at 03:00 on June
7, and again at 24:00 on June 9.  The first discontinuity coincides with the
times at which the coarsest size fraction becomes mobile and the second
discontinuity occurs when the coarsest fraction becomes immobile again.  The
reason for the discontinuity is that a sudden  change in the number of mobile
fractions alters the way in which the transporting capacity of the flow is
                                      148

-------
        25.0
VO
                   SIMULATED
                  • RECORDED
PARTICLE SIZE FRACTION 0.125 mm
     (range 0.00 mm -0.18 mm)
           11:00 24:00        24:00        24:00        24:00       24:00        24:00         24:00   15:00
            JUNE 4   JUNE 5      JUNE 6       JUNE 7      JUNE 8       JUNE 9      JUNE 10  JUNE 11
                                                     TIME
                         Figure 57.  Comparison of simulated and recorded  sediment
                                    transport rates 0.125 mm size fraction,
                                    East Fork River

-------
  25.0
  20.0-
o
£15.0
O
a.
  10.0
111
§5.0
LLJ
05
   0.0
T
              SIMULATED
             > RECORDED
                                      PARTICLE SIZE FRACTION 0.25 mm
                                           (range 0.18 mm - 0.35 mm)
      11:00 24:00         24:00        24:00        24:00       24:00        24:00        24:00   15:00
       JUNE 4   JUNE 5       JUNE 6       JUNE 7      JUNES      JUNES       JUNE 10   JUNE 11
                                                  TIME
                     Figure  58.  Comparison of simulated and recorded sediment,
                                transport rates for 0.25 mm sized fraction,
                                East Fork River

-------
  25.0
8
U)
OS

u!

<
QC
I-
QC
O
Q_
C/J
  20.0
  15.0
  10.0
LU

1"
   0.0
                         T
            - SIMULATED
             • RECORDED
PARTICLE SIZE FRACTION 0.5 mm
    (range 0.35 mm - 0.71 mm)
     11:00 24:00        24:00        24:00         24:00        24:00        24:00        24:00   15:00
       JUNE 4   JUNE 5      JUNE 6       JUNE 7       JUNES       JUNE 9       JUNE 10   JUNE 11

                                                 TIME

                     Figure  59.  Comparison of simulated and recorded  sediment
                                transport rates for 0.5 mm size fraction,
                                East Fork River

-------
Ol
N>
       U
       0>
       en
      ~
      UJ
      DC
      O
      Q_
          1.5
         1.2 -
         0.9 -
      pc 0.6 -
      m

      I 0.3
      UJ
      C/5
          0.0
 SIMULATED
'RECORDED
PARTICLE SIZE FRACTION 1.00 mm
     (range 0.71 mm - 1.40 mm)
            11:00 24:00        24:00         24:00         24:00        24:00        24:00        24:00    15:00
             JUNE 4    JUNE 5      JUNE 6       JUNE 7       JUNES       JUNE 9       JUNE 10   JUNE 11

                                                        TIME

                           Figure 60.  Comparison of simulated and recorded sediment
                                       transport rates for 1.00 mm size fraction,
                                       East Fork River

-------
tn
LO
     £
     
-------
en
.£>
      U
      (U
      tn
      LU
         1.5
         1.2  -
      I—  Q9-
      CE  u-" •
      O
      Q_
      C/3
         0.6
      LLI

      I 0.3
      LU
      CO
         0.0
-SIMULATED
 •RECORDED
PARTICLE SIZE FRACTION 4.0 mm
    (range 2.80 mm - 5.70 mm)
           "11:00 24:00        24:00         24:00         24:00        24:00        24:00         24:00   15:00
             JUNE 4   JUNE 5      JUNE 6       JUNE 7      JUNES       JUNE 9       JUNE 10  JUNE 11
                                                        TIME
                           Figure  62.  Comparison of simulated and recorded sediment,
                                      transport rates for 4.0 mm size fraction,
                                      East Fork River

-------
Cn
     CO

     O>
     u
     I-
     \-
     cc
     o
     Q.
     en
tr.
l-

h-
2
m
     tu
     tn
        1.5
        1.2 -
   0.9
        0.6
        0.0
                              T
            - SIMULATED

             • RECORDED
T	\	1	



 PARTICLE SIZE FRACTION 8.0 mm

     (range 5.70 mm - 64.0 mm)
           11:0024:00         24:00        24:00        24:00         24:00         24:00         24:00    15:00

            JUNE 4   JUNE 5       JUNE 6       JUNE 7       JUNES      JUNE 9      JUNE 10  JUNE 11


                                                       TIME




                        Figure 63.  Comparison of  simulated  and recorded sediment

                                    transport rates  for 8.0  mm size fraction,

                                    East Fork River

-------
25.0
I	1

 Total Transport Rate
            SIMULATED
            RECORDED
   "11-00 24:00        24:00        24:00        24:00        24:00        24:00         24:00   15:00
     JUNE 4   JUNE 5      JUNE 6       JUNE 7       JUNES      JUNE 9       JUNE 10  JUNE 11
                                               TIME
                  Figure 64.  Comparison  of simulated and recorded  total
                              sediment transport rates, East Fork River

-------
proportioned amongst the individual  size  fractions.  This  phenomenon is
unavoidable with the current organization of  the model and will be noticed
on comparisons for all the remaining size ractions.

Comparisons of simulated and recorded results for  the  1.0, 2.0, and 4.0 mm
size fractions are shown in Figures  60, 61, and 62 respectively.  The
recorded point values are generally  scattered on either  side of the line
representing the simulated values, and in view of  the  usual accuracy of
sediment simulation, we consider the results  to be quite satisfactory. There
is, however, a tendency for simulated results to be  too  high toward the end
of the simulation period for the 1.0 mm and 2.0 mm size  fractions. This may
be due to an underestimate in the proportion  of coarse material in the bed
when preparing data for the input sequence.   This  hypotheses requires
further investigation.

Figure 63 shows a comparison of simulated against  recorded values for the
coarsest size fraction (8 mm diameter).  This particular plot  is rather
interesting in that it illustrates a number of the problems associated with
sediment modeling.  Note that the simulation  results only  predict the 8 mm
particles to be mobile over the period from 03:00  on June  7 to 24:00 on June
9 when simulated (and recorded) flows are at  their height. The recorded
values, however, indicate some mobility throughout the time span.  There
could be several reasons for this discrepancy. First, simulated flow rates
may be lower than recorded rates. We already know from  Figure 56 that there
are inconsistencies in the recorded  flow  data, either  at B1, MC, or B17, and
we cannot be certain of the correct  recorded  flow  rate.  Second, this sand
fraction is on the threshold of motion and, as pointed out in  Section
10.1.1, the model algorithm may be underestimating the true mobility.

Finally, as pointed out in Section 5.4.2, the one-dimensional  representation
operates in terms of average flow depths  and  velocities.  In the natural
situation, coarse material may be moving  down the  center of the stream
channel where velocities and depths  are greatest.

Figure 64 has been included for completeness  of the  record.  It shows a
comparison of total simulated and recorded transport rates.  The simulation
is again poor but simply reflects the preponderance  of fine material in
suspension which cannot be measured  as part of the bed load.


10.3  Four Mile Creek, Iowa

10.3.1  General Description
Four Mile Creek is situated in northwest  Tama County in  east central Iowa
(Figure 65).  The basin is approximately  50 sq km  in extent and its centroid
is located at approximately latitude 426  15', longitude  92° 40'.  A short
description of the topography, soils, geohydrology and land use will be
given.  More detailed information can be  obtained  from reports by Kunkle
(1968), Rune and Vreeken (1969), Vreeken  (1972), and Aandahl and Simonson
(1950).
                                     157

-------
-
                                                                                            KEY TO
                                                                                            KYDROMETEOROL06ICAL STATIONS
                                                                                            • HOURLY PRECIPITATION
                                                                                            O DAILY PRECIPITATION
                                                                                            O DAILY PRECIP. PLUS TEMPERATURE
                                                                                            0 DAILYPRECIP. PLUS EVAPORATION
                                                                                            ©1ST ORDER WEATHER STATION
                                                                                            ASTREAMFLOW PLUS SEDIMENT
GRUNDY CENTER
                                                 FOURMILE CREEK
                             MARSHALLTOWN
                                                                                                    5   10   15   20km
                       Figure 65.   Hydrometeorological  stations  in and near Four Mile Creek,  Iowa

-------
10.3-2  Topography
The basin is relatively long and narrow (Figure  66)  with  Four Mile Creek
flowing down a centrally situated alluvial  valley  approximately 400 m wide.
The land surface rises in a series of steps on either  side of the valley.
Near the divide the terrain is relatively flat.  These flat areas are
particularly extensive near the upstream (northwest) end  of the basin.
Total relief is 40 m.

10.3-3  Soils
The soils in the basin are principally loess derived silt loams.  The loess
varies in thickness from 1.3 m on the valley sides to  over 10 m near the
divides.  The valley floor is alluvium.  Approximately 4  m of clay and silt
overlies 5 m of sand.   The incised channel  is about  2  m deep with a
predominantly sandy bed.  A detailed description and a map of the soils of
Tama County have been published by the Soil Conservation  Service of the U.S.
Department of Agriculture (Aandahl and Simonson  1950).

10.3.4  Groundwater Flow Systems
The groundwater system is quite complicated and  has  been  investigated in
detail by Kunkle (1968).  There are two principal  reservoirs.  One is
situated in the loess near the hilltops and the  other  in  the alluvial sand
under the valley (Figure 67).  Both rest on the  till and  its associated
paleosols, which form an aquitard.  Leakage passes through the till to
aquifers in the underlying limestone.  In this way approximately 45 mm of
water is exported annually from the basin.

Both groundwater reservoirs discharge some  water to  Four  Mile Creek or its
tributaries.  In addition, there is subsurface leakage from the upper
reservoir to the lower one.  The lower reservoir provides bank storage for
the stream, temporarily storing water as the stage rises  and releasing it
later as the stream level falls.  This process contributes to the
attenuation of flood hydrographs in Four Mile Creek.

10.3.5  Land Use and Sediment Regime
The basin is extensively farmed.  The land  use is  approximately as follows:

      Crop use                 Percentage of area
      Corn40
      Soybeans                       20
      Pasture                        20
      Alfalfa                        20

Crop rotation is practiced over much of the basin.   A  typical sequence
is corn-corn-soybeans-meadow.  However, on  many  fields on the more level
ground only row crops are grown.  The steep slopes are predominantly
meadow or pasture.   Approximate dates for field  operations are:

     Plowing      Fall       October 1-December
                  Spring     April 1-May 1
     Planting     Corn       April 20-May 20
                  Soybeans   May 5-June 1
     Cultivating  Corn       May 20-July
                  Soybeans   May 30-July 10

                                    159

-------
3
-
                                                                         A USGS STREAMFLOW & SEDIMENT GAGING STATION
                                                                         A1 FOUR MILE CREEK NEARTRAER
                                                                         A? FOUR MILE CREEK NEAR LINCOLN
                                                                         A3 HALF MILE CREEK NEAR GLADBROOK
                                                                         — STREAMS
                                                                      1050   TOPOGRAPHIC CONTOURS-FEET ABOVE SEA LEVEL
                                     Figure 66.   Topography  of Four Mile Creek  basin

-------
1100 n
                                              GUMBOTIL
1000 -
STRATIGRAPHIC BREAK, AGE UNKNOWN

LATE-SANGAMON PALEOSOL

ALLUVIUM
                                                                m»Mmwm
                                                                ££&uLQi&£ VS«> A'- V W- •'! tx 
-------
In the past, poor farming practices led to greatly accelerated  erosion
in the basin,  particularly on the steeper slopes.   Some of the  eroded
material was deposited before leaving the basin.   According to  Kunkle
(1968) approximately two feet of material has been deposited on the
alluvial flood plain since farming began in the 1860's.   In recent times
erosion diminished as improved farming practices were adopted.
According to Soil Conservation Service personnel,  gully formation has
been almost completely eliminated.  Nevertheless,  soil erosion  is still
a problem in the area.  It seems that the pressure to produce as much as
possible from the land militates against the adoption of better erosion
control methods.  There is also the effect of the usual  lag between  the
introduction of new techniques and their widespread adoption.

At the present time most of the sediment supplied to Four Mile  Creek
comes from sheet erosion on slopes, headward erosion of tributaries  and
mass wasting of the banks of the mainstream.  Some eroded sediment is
trapped before it reaches the stream.  This happens behind culverts,
fences, and in grassed waterways, etc.

10.3-6  Hydrometeorological Data
Stations for which hydrometeorological data were available at the start
of this project are shown in Figure 65.  The following data were obtained
for the purpose of model testing:

     (1)  hourly precipitation at Traer - October 1962-Deceraber 1973

     (2)  hourly precipitation at Marshalltown - October 1967-December
          1973

     (3)  daily temperature, evaporation, precipitation, and wind at
          Ames - January 1962-Deceraber 1973

     (4)  daily temperature and precipitation at Grundy Center  - January
          1962-December 1973

     (5)  daily temperature, precipitation, wind,  and evaporation at
          Iowa City - January 1962-December 1973

     (6)  daily temperature and precipitation at Marshalltown - January
          1962-December 1973

     (7)  daily temperature and precipitation at Toledo - January 1962-
          December 1973

     (8)  daily temperature and precipitation at Vinton - January 1962-
          December 1973

     (9)  daily solar radiation at Ames - January 1962-August 1972

    (10)  detailed surface meteorological observations (hourly  and
          three-hourly) at Waterloo - October 1962-December 1971*
                                    162

-------
    (11)  mean daily streamflow in  Four  Mile  Creek near Lincoln -
          October 1962-September 1967, October  1969-September  1974

    (12)  mean daily sediment concentration and discharge  in Four Mile
          Creek near Lincoln - October  1969-September  1970, October
          1971- September 1974

    (13)  mean daily streamflow in  Half  Mile  Creek near Gladbrook -
          October 1962-September 1967, October  1969-September  1974

    (14)  mean daily sediment concentration and discharge  in Half Mile
          Creek near Gladbrook - October 1969-September 1974

    (15)  mean daily streamflow in  Four  Mile  Creek near Traer  - October
          1962-September 1966, October  1967-September  1974

    (16)  mean daily sediment concentration and discharge  in Four Mile
          Creek near Traer - October 1969-September  1974

    (17)  detailed hydrographs of selected floods recorded at  the
          stations near Traer, Lincoln,  and Gladbrook

Not all of the above data were used in the calibration of  Four Mile  Creek.
For example,  precipitation data from only Traer and  MarshalItown were
used.   However, the surplus was useful for filling gaps in records and
for resolving occasional questions  regarding  the validity  of data.

10.3-7  Documents
The following documents containing  information  concerning  the  test basin
were obtained:

     (1)  topographic maps with scales of 1:24,000 and 1:250,000

     (2)  "Soil Survey of Tama County, Iowa," published by the Soil  Conserva-
          tion Service (Aandahl and Simonson  1950),  contains a soils map

     (3)  LANDSAT image.  Color composite of  MSS bands 5 and 7 taken May 9,
          1973-  Scale 1:3,300,000

     (4)  photo index,  black and white,  dated April  11, 1967.  Scale
          approximately 1:62,500

     (5)  "A hydrological study of  the ground water  reservoirs contributing
          base runoff to Four Mile  Creek, East-Central Iowa,"  by George R.
          Kunkle.  USGS Water Supply Paper No.  1839-0.  1968

     (6)  "Geomorphic Regimen of Small Watersheds in Loess, Tama County,
          Iowa," by W.J. Vreeken.   Ph.D.  dissertation.  Department of
          Geology,  Iowa State University, 1972.

     (7)  preliminary and approximate data on land use and tillage practices
          from Prof. Howard P. Johnson,  Iowa  State University


                                    163

-------
     (8)  "Hydrologio System Related to Geology and Soils,  Four Mile Creek
          Area, Tama County, Iowa," by R.V. Ruhe and W.J.  Vreeken.
          Department of Agronomy, Iowa State University.   Completion report
          of project no. A-014-IA

     (9)  aerial photographs, black and white photography  on April  11,  1967,
          scale 1:20,000, stereo coverage

     (10)  NASA high altitude color infrared imagery, scale 1:120,000,
           partial coverage.

10.3-8  Hydrologic Calibration
Having collected and assessed all necessary basic data,  the next step was
calibration of the ARM Model to allow reproduction of the  hydrologic
processes in the watershed.  Because of the sensitivity  of sediment
transport rates to flow rate and flow velocity, ability  to adequately
reproduce the hydrologic events is essential.  Full details of the
calibration process are given in the interim report prepared for this
project (Johanson and Crawford 1976).  The following discussion includes
brief details of the method adopted for calibration together with the final,
or best fit, calibration results.

In applying ARM to Four Mile Creek, data from the following stations (Figure
65) were used:

     (1)  hourly precipitation:  Traer
     (2)  daily pan evaporation:   Records at Ames and Iowa  City were
          averaged.  For periods when no records were available (usually
          winter), evaporation was estimated from other meteorological
          data.
     (3)  daily max and min temperature:  Grundy Center, Marshalltown
     (4)  daily mean dewpoint:  Waterloo
     (5)  daily wind movement:  Waterloo
     (6)  daily solar radiation:   Ames
     (7)  daily observed streamflow:  Four Mile Creek at Traer,  Four
          Mile Creek at Lincoln,  Half Mile Creek at Gladbrook

Given the data available at the time of this study, the  Four Mile Creek
basin would normally have been treated as one homogeneous  segment for
hydrologic simulation.   However,  for more accurate simulation of soil loss,
the watershed was  split into three segments (Figure 68).  Segment 1
represented the alluvial valley,  segment 2 the hill slopes,  and segment 3
the relatively flat hilltops.  Since overland flow and hence erosion rates
are strongly dependant on land surface slope, the segment boundaries were
determined by the  topography and information on soil erodibility as  reported
by Aandahl and Simonson (1950).  The segments all used precipitation input
data from the gage at Traer.


The period covered by calibration was October 1967 to September 1973.   The
final set of parameters for both hydrology and soil loss simulation  are
given in Table 13.   Simulated land surface runoff (LSRO) from all three


                                     164

-------
                                                         KEY
                                   SHADING SEGMENT AREA (km)2
                                            3      11.2
                                            2      27.7
                                                   11.6
  100    REACH NUMBER
I	1 REACH
                  2km
Figure  68.   Segment  and channel  reach layer for
             Four Mile Creek

-------
          Table 13  PARAMETERS USED IN ARM CALIBRATION RUN
                           (English Units)
Parametera
  A
  EPXM
  UZSN
  LZSN
  K3
  K24L
  K24EL
  IflFIL
  INTER
  L
  SS
  NN
  IRC
  KK24
  KV
  RADCON
  CCFAC
  EVAPSN
  MELEV
  ELDIF
  TSNOW
  MPACK
  DGM
  WC
  IDNS
  SCF
  PETMAX
  PETMIN
  PETMUL
  WMUL
  RMUL
  F
  KUGI
  COVPMO
 TIMTIL

Segment 1
.003
.100
1.0
8.5
.2 .2 .2
.2 .3 .5
.7 .8 .6
.5 .4 .3
.4
0.
.04
3.5
600.
.025
.25
.40
.98
1.0
1.0
1.0
.05
1000.
0.0
32.
2.0
.0001
.03
.18
1.4
40.
35.
.93
1.0
1.0
.005
5.0
.30 .30 .30
.30 .35 .40
.60 .80 .80
.60 .50 .40
100 100 100
100 100 100
100 100 100
100 100 100
Value
Segment
.005
.08
.5
7.0
.3 .3
.3 .4
.6 .6
.5 .3
.3
0.
.03
3.5
350.
.08
.2
.20
.96
1.0
1.0
1.0
.05
1020.
0.0
32.
2.0
.0001
.03
.18
1.4
40.
35.
.93
1.0
1.0
.005
5.0
.70 .70
.70 .70
.80 .80
.70 .70
0 0
0 0
0 0
0 0

2




.3
.5
.6
.3




























.70
.80
.80
.70
0
0
0
0
_SjKjment
.003
.10
.9
8.0
.2 .2
.2 .3
.7 .8
.5 .4
.35
0.
.035
3.5
600.
.03
.25
.40
.97
1.0
1.0
1.0
.05
1050.
0.0
32.
2.0
.0001
.03
.18
1.4
40.
35.
.93
1.0
1.0
.005
5.0
.30 .30
.30 .35
.60 .80
.60 .50
100 100
100 100
100 100
100 100
^




.2
.5
.6
.3




























.30
.40
.80
.40
100
100
100
100
                                 166

-------
    Table 13(continued).   PARAMETERS USED IN ARM CALIBRATION  RUN
                           (English Units)
Parameter
Segment 1
                                         Value
Segment 2
Segment 3
 YRTIL
 SRERTL
 JRER
 KRER
 JSER
 KSER
 SRERI
68  69  70
71  72  73
000
000
2.  2.  2.
2.  2.  2.
2.  2.  2.
2.  2.  2.
2.2
.40
1.8
.70
1.0
000
000
000
000
0. 0. 0.
0. 0. 0.
0. 0. 0.
0. 0. 0.
2.2
.55
1.8
1.5
0.0
68  69  70
71  72  73
000
000
2.  2.  2.
2.  2.  2.
2.  2.  2.
2.  2.  2.
2.2
.35
1.8
.60
1.0
   aThe parameters are defined in a report by Donigian and Crawford (1976a).
                                   167

-------
segments was summed over each day to produce the daily inflow of water to
the stream system.  Because attenuation of the daily flow hydrograph through
the channel system is small, these figures could be compared directly with
the recorded daily flow data at the USGS station near Traer.

Figures 69 and 70 show the mean daily simulated and recorded flows  for the
water years 1969 and 1971 respectively.

The quality of the results shown in the figures is typical of those obtained
over the whole run.  Table 14 summarizes the results obtained over  the
entire simulation period.  The principal reason for the substantial
discrepancies between simulated and measured runoff is that the
precipitation recorded at Traer is not always representative of rainfall  in
the basin.  The gage is about 15 km from the basin centroid and lies well
outside of it (Figure 65).

The data from Traer is clearly not representative of conditions within the
Four Mile Creek basin.  The climatic regime at Traer is similar to  that of
the basin, but the magnitude and time distribution of precipitation in any
given storm can vary widely over the gage and the basin.   The variation
depends, to a large extent, on the type of storm.  Summer thunderstorms are
particularly troublesome in this regard.  Where they account for a
substantial portion of the total runoff, the only way to  obtain calibration
results suitable for research use is to employ data from  several pages
situated within the basin.  This factor is even more critical when  it comes
to the simulation of erosion, which is very sensitive to  the high intensity
precipitation that characterizes thunderstorms.  The question of the
adequacy of available data has been discussed with staff  of Athens-ERL.   The
results obtained so far confirm our opinion that the data available for Four
Mile Creek at the start of this study was not satisfactory for model testing
and evaluation.

A second problem encountered in the calibration is also illustrated by the
plots in Figures 69 and 70.  It concerns the accuracy with which the
processes of snow accumulation and melt are simulated.  Again,  inadequate
input data caused problems.  Radiation, temperature,  dewpoint,  and  wind data
had to be transposed from Ames,  Grundy Center,  and Waterloo.   This  was bound
to cause some errors in calibrating snow simulation.   We  also thought that
the model might  not be handling the occurrence and effects of frozen ground
conditions correctly.   It will probably be necessary to have more
representative snow simulation data (radiation, temperature,  dew-point,
wind)  before we  can decide what,  if any, improvements are needed to the
frozen ground simulation algorithms.   It is important that snow accumulation
and melt be simulated as accurately as possible because snowmelt floods in
this basin are often large and account for a significant  proportion of the
total  sediment yield.

Since these tests were made,  collaborating researchers at Iowa State
University have  installed five recording rain gages within the basin and
another gage just outside the watershed boundary.   They have also installed
two snow gages and have begun operation of a weather station collecting
temperature,  humidity,  evaporation,  and radiation data in
                                    168

-------
-
15
14
13
12
11
10
 9
 8
 7
 S
 5
 4
 3
 2
 1
 0
"i—i—i—i—i—i—r
 	RECORDED
 	SIMULATED
                                                     I  I   I   I   I  I—I—I—i—I—I—i—i—i—i—i—i—i—i—i
                                25     5
                                  1968
                                                                    15
                                                                    JAN
                                           25    5
                                             1969
                       Figure  69.   Comparison of recorded and simulated  daily flows for
                                    water  year 1969

-------
                                                1988
20.84

I   I  I   I	1—I	1
                                            1969
          Figure 69.  Comparison of recorded and simulated daily  flows  for
                      water year 1969 (Continued)

-------
18.0

16.0

14.0


12.0
 80
 e.o
 4.0
 2.0
-i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—i—r~i—i—i—i—i   i   i   i  i  i   i   r
                    RECORDED
                    SIMULATED
   n
    L
   0
    0  5     15
           OCT
            25
15
NOV
25
 !
DEC
                                            ,
                                                        .
                                                       JAN
                                   1970
25     5
                                                              1971
            -
           FEB
25    5
15
MAR
                                                                                                    25
               Figure 70.  Comparison  of recorded and simulated daily flows  for
                           water year  1971

-------
-
18.0


16.0


14.0


12.0


10.0


 8.0


 6.0


 4.0


 2.0 -
                                     RECORDED
                                     •SIMULATED
                                                        15
                                                        JUN
                                                                             15
                                                                             AUG
                         Figure 70.
                           Comparison  of recorded and  simulated  daily flows for
                           water year  1971  (Continued)
25     5
15
SEP
25

-------
                         Table 14. SUMMARY OF ARM CALIBRATION RUN
Water
Year
1968
1969
1970
1971
1972
1973
Mean

-------
addition to precipitation measurements.   The  Iowa  State  research effort is
described in detail by Johnson (1977).   The resulting  records should provide
representative input and permit the model to  be  tested more rigorously.
Unfortunately this data was not available for the  present project.

10.3.9  Calibration of Land Surface Soil Loss
Despite the problems encountered in the  hydrologic calibration, an attempt
was made to calibrate simulated soil loss against  sediment discharge at
Traer.  The calibration parameters used  are shown  in Table 13 and the
results are shown in Figure 71  and Table 14.

The agreement between simulated and observed  daily values is even poorer
than that for runoff.  While this was not at  all encouraging it was
expected.  Erosion only takes place when overland  flow occurs and is
simulated using power functions of precipitation and overland flow rate. It
follows that erosion is very sensitive to errors in the  simulation of the
occurrence and intensity of precipitation and overland flow.  There is no
way to avoid this sensitivity because it is present in the natural
processes.  Hence, errors in simulation  of sediment yield will invariably
exceed the corresponding errors for runoff.

The calibration of the sediment component of  a land surface simulation model
is further complicated if there is appreciable scour or  deposition in the
ditches and channels of the system.  It  is not strictly  valid to compare
sediment discharge recorded in the stream with simulated erosion from the
land surface, as was done in Figure 71 and Table 14.   In the case of Four
Mile Creek, it is known that depositon of sediment does  occur upstream of
fences and small culverts and that bank  caving occurs  on the main stream.
An attempt was made to estimate the latter component.  Ruhe and Vreeken
(1968) measured the cross section of the main stream at  several points near
the basin outlet and repeated the process 3 years  later.  The mean rate of
increase in cross sectional area for the two  cases reported was 0.16 m2
/year.  Depending on how this figure is  extrapolated across the entire
basin, the contribution of bank caving to the total yield of sediment from
the basin is estimated as between 20 percent  and 85 percent.  There is
clearly a need to improve this estimate  for any  future work on this basin.

In calibrating the sediment response of  the ARM  Model  some allowance was
made for the effect of bank caving.  This can be seen  in Table 14 which
shows that the simulated annual yield of sediment  was, on average,
approximately 45 percent less than the measured  sediment load.  The problems
discussed above and in Section 10.3.8 highlight  the necessity for improved
data, if satisfactory simulation work is to be done on Four Mile Creek.
Testing of the model on this basin has been suspended  for the duration of
the present project.  This work could probably resume  in the summer of 1978,
by which time a useful period of data should  be  available from the Iowa
State University project on Four Mile Creek.

10.3110  Application of the CHANL Model
The CHANL model is designed to simulate  the movement of  water and sediment
through a network of open channels.  It  explicitly accounts for processes
such as deposition, scour, and armoring  and is therefore quite complicated.


                                     174

-------
-
1800
1600
1400
M
i
5 1200
a
o
^ 1000
1*1
£ 800
2 600
400

200
0
I 1 1 1 1 I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i i I i i i 1
'
-



	 RECORDED SUSPENDED LOAD
	 SIMULATED EROSION FROM THE LAND SURFACES
-
_
i
•
n
"
1 ':
fl " (
L KJ \L/
1 ij S-«l —f4- 41 ^ |S~4' ' 1 Jl««>^.'

-
-

—
-

-
-
_

i i
05 15 15 25 5 15 25 5 15 25 5 15 25
OCT NOV DEC JAN FEB MAR
                                          1970
1971
                      Figure 71.  Comparison of recorded and simulated  daily  sediment  loads

-------
                                                                2077
-..
-









M
MB
1
__
^
s
s
5
c=
i_t_i
M
>-
~
—








1800


1600



1400


1200


1000


800



600


400

200
l i i













IITI Iljllll
(
f
i
i
i
H
'I

i"
ll
il
'I
l

,1
	 RECORDED SUSPENDED LOAD
	 SIMULATED EROSION FROM THE LAND SURFACE ! '





~-


_

i > i i i i i i i ^i_J V,
051 25 5 15 25
APR MAY
ll
it
M
1 1
II
i 1 ~
'1
li i
I '
ra '
A 	 |
5 15 25 5 15 25 5 15 25 15 25
JUN JUL AUG SEP
                                                          1971
                      Figure 71.  Comparison of recorded and simulated  daily sediment loads

                                  (Continued)

-------
To test and verify this model adequately,  the  inflows of water and sediment
to the channels must be known accurately  and various other data must be
measured in the channels themselves.   As  the testing of the land phase
simulation progressed,  it became increasingly  obvious that the available
data from Four Mile Creek would be inadequate  for  application of the CHANL
Model.  Nevertheless, it was decided  to perform  a  short test run.

Because of the preliminary and approximate nature  of the test only 3 reaches
were used to define the channel system (Figure 68).  The month of May 1970
was simulated, using a time step of 1  hour.  The results are shown in
Figures 72 and 73.

Only qualitative and tentative deductions can  be made from the results of
this run.  The comparison of simulated results with measured data is
interesting in that it again highlights the problems caused by such factors
as the use of precipitation data from a single gage situated outside of the
basin.  The comparison of simulated land  surface erosion and simulated
sediment flow in the channel (Figure  73)  shows how the channel routing
process attenuates the sediment hydrograph.
                                    177

-------
   1000 -
s   800 -
    600  -

    400  -
    200  -
	  RECORDED SUSPENDED LOAD
      -  SIMULATED LOAD IN CHANNEL
	SIMULATED EROSION
          FROM THE LAND SURFACE

            11    12    13    14    15    16    17    18    19
                                              MAY 1970
         20
               .
           Figure  72.  Recorded  and simulated yield for  Four Mile Creek,  Iowa

-------
   10000
    1000 -
                                                     SIMULATED SEDIMENT
                                                     FLOW IN CHANNEL,AT
                                                     BASIN OUTLET
      10
         24
                                TIME, hours
Figure  73.   Sediment  transport  in Four  Mile Creek,  To    -  May  1970
                                    179

-------
                                 CHAPTER  11

                         DISCUSSION AND CONCLUSIONS


11.1  Advantages and Shortcomings of Deterministic Modeling

11.1.1  Advantages
The principal advantages of deterministic conceptual  (DC) models derive from
the fact that the major physical processes in the system are explicitly
represented.  The interrelationships between component  processes can be
studied and the relative importance of each one assessed.  In a research
environment this capability can be helpful in identifying areas where
additional work is needed.   DC models are also useful for studying the
effects of contemplated changes to a system,  provided the necessary detail
exists in the model.  For example, one might wish to  assess the effects on
runoff and sediment yield of terraces on  agricultural land.  This could be
done with a model which specifically accounts for the slope and length of
overland flow.  It would also be necessary to account for the effect of
grassed waterways, if they are used to convey runoff  in one case but not in
the other.

The CHANL Model has been designed to maximize benefit from the DC approach.
Component processes have been explicitly  represented  where possible so that
the model will be applicable to the widest range of conditions.  Purely
empirical equations have been avoided where possible.

11.1.2  Shortcomings
DC simulation models improve our understanding of systems, but we have to
pay for this information with more input  data.   These models require
continuous time series for input.  A sophisticated model such as WEST,
usually requires several input data sets.   Consequently, data reduction and
manipulation often account for much of the effort involved in applying a
simulation model.  The problem can be minimized by including an efficient
data management system in the model.

Data collection can also pose a serious problem in the  testing and
application of simulation models.  If the data required for testing do not
exist, a special effort must be made to collect the information.  In the
present project this has proved to be the case (Section 10.3) and Iowa State
University has embarked on an intensive program of data collection.  Looking
ahead, one wonders how data problems will affect future use of the model as
a research and regulatory tool.  If every application requires a data
collection program similar in scope to that under way in Four Mile Creek,
                                    180

-------
then either a large investment will  be required,  or  the number of
applications will have to be small.   Hopefully, as the model is tested and
improved,  it will be possible to dispense  with some  of the data presently
required.   However, this point will  probably  not  be  reached for some time.
In fact, in the initial stages of model development  and testing, more
questions are usually raised than answered.

A further topic worthy of discussion is the relationship between system
complexity and the potential accuracy of simulation.  An important part of
the art of modeling is the identification  of  those component processes which
should be represented and the decision of  how this should be done, that is
algorithm design.  Every algorithm is an idealization and therefore involves
some error.  The various errors carry over into the  final output where they
are observed as discrepancies between observed and simulated values.  Errors
introduced by the omission of processes are a related problem.  The overall
effect is that simulated and observed events  differ.  If the model and data
are good these differences are small and random.  Large, systematic errors
indicate that the model is inadequate.   Such  results are not acceptable
unless it can be established that the errors  have little effect on the
overall outcome of the study.

It can be hypothesized that the more complex  a natural system is and the
less that is known about the component processes, the greater will be the
problems involved in calibrating the associated model.  For example, the
simulation of hydrological processes is now a routine task and can be done
with acceptable accuracy, provided adequate precipitation data are
available.  Extension of such a model to handle sediment, pesticides, and
nutrients requires that many additional component processes be represented,
some of which are ill defined.  This amounts  to an extrapolation of the
original model in which streamflow was the final  output.  Inevitably, errors
will compound and the calibration for sediment, etc. will be worse than that
for strearaflow.  It seems that, under these conditions, one should expect
substantial discrepancies between observed and simulated events and not try
to calibrate on individual events.  Rather, a long sequence should be
simulated and the calibration based  on the overall performance of the model.
One should examine discrepancies, on  a statistical basis and try to eliminate
any systematic component as well as  minimizing the random component.

In summary, the major problems involved in building  a DC simulation model
concern the question of model approximations.  A  model builder must decide
how detailed his representation of the real world is going to be.  The
inclusion of successively greater detail is usually  subject to the law of
diminishing returns.  If one sets out to expand a very crude model, initial
gains in accuracy are relatively high.   However,  as  the model becomes more
detailed,  the payoff reduces because one is attempting to explicitly
represent an ever more complex set of processes,  some of which are usually
ill-defined.  Under these conditions, the  errors  associated with the new
algorithms tend to offset the potential improvement  in performance, so that
there may be very little net gain in accuracy.  Futhermore, the costs of
developing,
                                    181

-------
 running,  and maintaining  the model increase rapidly, as does the quantity
 and  variety of  data  required.  In every modeling effort there must be an
 optimum  stage in  this process at which the maximum net benefit is obtained.
 Although it is  impossible to determine exactly when this point has been
 reached,  the principle should be held in mind. This was done in designing
 the  WEST Model.   However, we are still not certain whether or not it
 embodies the optimum level of detail.  On the one hand, certain omissions,
 gross  approximations, and shortcomings are very apparent (Section 11.3).
 But  on the other  hand, the model is already quite complex and requires very
 detailed data for its verification.  There is a danger that further details
 will make it even more difficult to apply, without significantly increasing
 its  accuracy. It  would therefore seem that in future test work its
 performance should be compared with that of a much simpler model, such as
 Negev's  (196?)  or David's (WO.  This would be helpful in assessing the
 benefits derived  from detail.  To be fair, however, the comparison would
 have to  take account of the relative potentials of the models for extension
 to handle pesticides and  nutrients.
 11.2  Discussion of Results

 The results of the individual tests performed on the CHANL and WEST Models
 were discussed in Chapter 10.  It is worth summarizing the results to give
 an overall picture of the model performance and the problems encountered.

 Tests on laboratory data were limited to the armoring study carried out  at
 the Georgia Institute of Technology (Section 10.1).  The laboratory data was
 undoubtedly accurate yet simulation results were mixed.   In two of the three
 tests performed (runs 5-4 and 6-1) results were satisfactory;  however, in a
 third test (run 4-1) the model failed to correctly predict particle
 mobility, and results were poor.   The conditions in run  4-1 were threshold
 conditions which are difficult to predict and testing on laboratory data was
 limited to only three sets of runs.  Yet the question still arises of what
 accuracy can be expected of sediment transport simulation.   Given that
 simulation may be poor even when using data from laboratory experiments
 where conditions are rigorously controlled and boundary  conditions
 accurately defined,  what results  can we expect from the  simulation of
 natural systems where conditions  are highly variable,  boundary conditions
 usually ill-defined and sediment  transport data difficult to measure
 accurately?

 The principal test of the model in field conditions was  made on data from a
 short section of the East Fork River (Section 10.2).   There we faced the
 problem of trying to verify a total load model using only bed  load data.  It
was impossible to evaluate the performance of the model  in  simulating the
movement of the fine fractions because much of the material apparently
traveled in suspension and was not measured.   However, the  model's
performance on the coarse fractions,  which one would expect to travel as bed
load,  was quite good;  that is much of the simulated data were  between 1/2
and 2  times the recorded data. This is the same
                                    182

-------
order of accuracy that White,  Milli,  and Crabbe  (1975)  found when evaluating
the transport algorithms of Ackers and White and perhaps  represents a limit
on the accuracy attainable with our current  knowledge.  The data from the
East Fork River are  possibly  unique in that boundary conditions are well
defined, and the data are very detailed and  probably as accurate as any
currently available.   With conditions such as these, one  would expect a
simulation model to produce reasonable results.

Basin scale modeling  of sediment transport is an entirely different task
from the modeling of  a short section of a natural river channel, such as on
the East Fork.  The principal  difference is  that instead  of having boundary
conditions supplied from recorded data they  have to be  generated by
simulation, using the ARM Model in our case.   The boundary conditions in
this situation consist of time series data of land surface runoff (LSRO) and
land surface erosion  or soil washoff (EROS).   The accuracy of the instream
simulation will depend on the  accuracy of the LSRO and  EROS data and this in
turn depends on the accuracy of the land phase model and  its time series
inputs of meteorologic data (rainfall,  evaporation, air temperature,
radiation).  In tests on Four  Mile Creek, Iowa (Section 10.3) we have seen
how the unrepresentative data  available at the start of this study resulted
in poor land phase simulation  and hence inaccurate boundary conditions for
the simulation of instream processes.

The tests on the CHANL Model were limited to only four  sets of data; three
from laboratory experiments and one from the field.  All  the tests were
concerned with the transport of cohesionless material.  No data were found
to test the algorithms which govern the scour, deposition, and transport of
cohesive material. This is especially disturbing from  the point of view of
the model development for simulating pollutant transport  since it is the
fine material which generally  carries the pollutant. Although the limited
testing gave some promising results on cohesionless materials, there is a
need for further extensive testing.

11.3  Recommendations

11.3-1  Land Process  Simulation:  ARM Model
The development of the ARM Model and testing on  data from watersheds in
Georgia and Michigan  have been described in  reports to  the EPA (Donigian and
Crawford 1976a, Donigian, et al. 1977).   Recommendations  for further testing
and refinement were made in those publications.   Based  on experience gained
on the present project, further suggestions  are  offered:

     (1)  The algorithms simulating the effects  of frozen ground on the
          hydrologic  cycle should be improved.   The data  now available
          from Michigan State  University and that which will be available
          shortly from Iowa State University should be  useful.

     (2)  The sediment algorithms could be expanded and improved.  The
          sediment production  algorithms in  the  ARM Model were designed
          to simulate the behavior of small  areas.  To  improve performance
          on larger areas some alterations and additions  seem to be
          warranted.


                                     183

-------
           (a)   At present,  the sediment production algorithns in the ARM
                Model do not explicity indicate  the size distribution of
                the sediment runoff.   The CHANL  Model requires this
                information  because particles of various sizes behave
                differently  as  they are washed through the system.  In
                the present  version of the WEST  Model, the subdivision
                is performed somewhat  arbitrarily, based on the rate of
                washoff and  user-supplied parameters.  Testing may indicate
                that this technique should be abandoned in favor of one
                in which both the  quantity and composition of sediment are
                accounted for in the sediment production algorithms of the
                ARM Model.

           (b)   In the present  version of the model overland flow can only
                transport fines which  have already been detached by
                rainfall.  To make it  more generally applicable,  algorithms
                which provide for detachment of  soil fines by overland
                flow should  be  added.   These would handle the simulation of
                rill and gully  erosion.

           (c)   Allowance could be made  for the reduction in detached soil
                fines which  results from  soil compaction.

 11.3-2   Channel Process  Simulation:   CHANL Model
 The  principal need  in  the CHANL Model development is for further extensive
 testing.   Tests should  be carried out in  a variety of situations with
 special  emphasis  on  the  scour,   deposition, and transport of cohesive
 material.  Our  present  conception of an ideal test situation is  summarized
 below and  is followed by some  specific recommendations.

 The  sediment algorithms  simulate the rates at which sediment particles  in
 several  different size classes enter a reach,  are deposited on or scoured
 from the bed, and the rate at which they leave the reach.   In continuous
 simulation, these calculations are repeated for  each reach in each time
 interval throughout  the simulation period.  An ideal  test  situation would
 probably involve a channel several miles long with water and sediment gaging
 stations at several  points along its length.  Lateral  inflow of water should
 be small compared to the total  flow.  Similarly,  local inflows of  sediment
 from sheet erosion and channel  bank caving should  be  small  compared  to  the
 total sediment flow.  Bank caving  should be estimated every  6-12  months
 using data from field or aerial surveys.  Ideally,  both  suspended and bed
 load should be continuously measured  at the gaging stations.  The particle
 size distribution of the transported  material  should be  determined  for  a
wide range of flows at each station.   The properties of  the  bed,  which  is
modeled as consisting of several layers, each  with a different composition,
are important in the determination of simulated  scour rates.  Verification
of the model would be greatly simplified if it were possible to take some
core samples from  the upper  few inches of the bed  to determine the variation
of particle size distribution with depth.   Ideally, this should be done at
several  points along the channel before,  during, and after the passage of  a
significant flood.  A record of concurrent variations in the level of the
bed at these points would also  be  helpful.

                                   184

-------
If the above data were available,  the model  would be  tested as follows: The
test section of the channel would be simulated  in isolation. Measured flows
of water and sediment and the size distribution of  the latter would be input
to the most upstream reach.  The test section would be divided into a number
of reaches so that the assumption of uniform conditions within each one
would be closely approximated.   Lateral  inflows of  water and sediment would
be obtained from simulation using the ARM Model.  Simulated and observed
conditions would be compared at every point  where measured data existed.
The model would be calibrated by adjusting parameters, and the results
obtained would be used to modify the algorithms.

It is doubtful that the ideal data set described above will ever be obtained
in a natural stream.  Sediment transport measurement  is a time-consuming and
difficult task.  However, all of the factors mentioned above are important
in testing the algorithms.  The difficulty in calibrating the model and
verifying the sediment algorithms will be directly  related to the  lack of
needed data.

The recommended additional tests for this model are:

(1)  Tests using hypothetical situations:  These would probably reveal
     further shortcomings and facilitate their  correction.  Ultimately, the
     tests would confirm that the model  does respond  in a realistic manner
     under all realistic circumstances.

(2)  Tests using laboratory data:   Many  investigators have used flumes in
     the laboratory to study sediment transport phenomena.  Data from such
     work are usually accurate and comprehensive and  approach the  ideal test
     situation described above more closely  than those obtained from natural
     streams.  They could be used to test details of  the behavior  of the
     model, for example , scour of cohesive  materials and armoring, which
     are important in nature but almost  impossible  to test with available
     data from natural streams.

(3)  Tests on data from real basins:  The current project on Four  Mile Creek
     by Iowa State University (Johnson 1977) is designed, among other
     things, to supply data suitable for further testing of the WEST Model.
     The data currently being collected  should  be sufficiently comprehensive
     and accurate for rigorous testing of the CHANL Model and our  ability to
     simulate sediment transport on a basin  scale.  Data from other natural
     streams with different climatic, hydrologic and  sediment regimes to
     Four Mile Creek should also be used to  further test the model.  If the
     model is to be applicable to practical  problems, it must be shown that
     it will operate satisfactorily under a  wide variety of conditions.  The
     information in Appendix B may prove useful  in  selecting other test
     areas.

     The data collection effort on the East  Fork River is being continued by
     the USGS.  As the tests presented in Section 10.2 were only for a
     period of 7 days, it would be useful to continue testing for  a longer
     period on the East Fork as data becomes available.
                                    185

-------
The limited tests of the CHANL Model described  in  Chapter  10  revealed a
number of shortcomings in the model  design which may  be  corrected in future
development work.

     (1)  The sediment algorithms are only strictly applicable  to
          rectangular channels.  Nonrectangular channels are  handled by
          treating an equivalent rectangular section  of  width equal to the
          current topwidth and depth equal to the  current  mean  depth in the
          nonrectangular channel.  A more  realistic method of treating
          nonrectangular channels is required.   This  problem  is directly
          related to the one-dimensional representation  used  in CHANL and
          discussed in Section 5.**.2.

     (2)  At present the hydraulic conditions in both the  flood plain and
          incised channel are averaged to  compute  the hydraulic variables
          used in sediment routing.   Since hydraulic  conditions on the flood
          plain and within the incised channel  are usually quite different,
          they should be treated separately in  routing sediment through the
          stream system.  This is again related to the one- demensional
          representation used in CHANL.

     (3)  The model currently uses monthly average kinematic  viscosity. The
          user shold be allowed to input more detailed water  temperature
          data when these are available.

     (4)  The kinematic routing algorithms are  presently independent of the
          sediment transport calculations; the  bed slope and  cross-
          sectional geometry within  a reach are fixed for  the duration of a
          run.  This means that during simulation  material may  deposit
          indefinitely in a particular reach with  no  corrective mechanism to
          increase the bed slope and hence the  sediment  transport rate.

     (5)  The possibility of adding  algorithms  to  handle bank caving should
          be investigated.
                                    186

-------
                                 CHAPTER 12

                                 REFERENCES


Aandahl, A.R., and R.W. Simonson.  1950.  Soil survey of Tama County, Iowa.
     Series 1938, No. 22.  Department of Agriculture, Washington,  D.C.  109 pp.

Ackers, P., and W.R. White.  1973.  Sediment transport:  new approach and
     analysis.  Proc. Am. Soc. Civ. Eng.  99(HY11):2041-2060.

Bella, D.A., and W.E. Dobbins.  1968.  Difference modeling of stream
     pollution.  Proc. Am. Soc. Civ.  Eng.  (SA5):995-10l6.

Bennett, J.P.  1974.  Concepts of mathematical modeling of sediment yield.
     Water Resour. Res.  10(3):485-492.

Brown, C.B.  1967.  Sediment transportation.  Pages 811-814 in H.  Rouse,  ed.
     Engineering hydraulics.  John Wiley, New York.

Buckman, O.B., and N.C. Brady.  1969.  The nature and properties of soils.
     Macmillan Company, London,  pp.  70-108.

Camp, T.R.  1943.  The effects of turbulence on retarding settling.  Pages
     307-317 in Proceedings of the second hydraulics conference.   Bulletin
     No. 27.  University of Iowa, Iowa City, Iowa.

Chow, V.T.  1959.  Open channel hydraulics.  McGraw Hill, New York.  pp.
     108-123.

Clarke, R.T.  1973.  Mathematical models in hydrology.   Irrigation and
     Drainage Paper No. 19.  Food and Agriculture Organization of  the United
     Nations, Rome.  282 pp.

Crawford, N.H., and A.S. Donigian,  Jr.  1973.   Pesticide transport and
     runoff model for agricultural lands.  EPA 660/2-74-013.   Environmental
     Protection Agency, Washington, D.C.  211  pp.

David, W.P., and C.E. Beer.  1974.  Simulation of sheet erosion, part 1,
     development of a mathematical erosion model.  Journal Paper No.  J-7897.
     Iowa Agriculture and Home Economics Experiment  Station,  Ames, Iowa.   20
     pp.
                                     187

-------
Donigian, A.S., Jr.,  et al.   1977.   Agricultural runoff management  (ARM)
     Model, version II:  refinement and testing.  U.S.  Environmental
     Protection Agency, Washington, D.C.   (in press.)

Donigian, A.S., Jr. and N.H. Crawford.   1976a.   Modeling pesticides and
     nutrients on agricultural lands.   EPA 600/2-76-043.  U.S.
     Environmental Protection Agency,  Washington,  D.C.   317  pp.

Donigian, A.S., Jr. and N.H. Crawford.   1976b.   Simulation of agricultural
     runoff.  EPA 600/9-76-016.   Environmental  Protection Agency, Washington,
     D.C.  pp. 151-155.

Einstein, H.A.  1950.  The bed load function for sediment transportation  in
     open channel flows.  Technical Bulletin No. 1026.   Soil Conservation
     Service, U.S. Department of Agriculture, Washington,  D.C.

Einstein, H.A.  1968.  Deposition of suspended  particles in  a gravel  bed.
     Proc. Am. Soc. Civ. Eng.  9MHY5): 1197-1205.

Gessler, J.   1971.  Aggradation and degradation.  Pages 8.1-8.214  in H.W.
     Shen, ed.  River Mechanics, Vol.  1.   Water Resources Publications, Fort
     Collins, Colorado.

Graf, W.H.  1971.  Hydraulics of sediment transport.  McGraw-Hill Book
     Company, New York.  513 pp.

Heler, J.J.   1975.  Minimization of core  required  in  routing through  a
     channel network.  Hydrocomp Inc.,  Palo Alto,  California.  Simulation
     Network Newsletter 7(7):1-4.

Hydrocomp Inc.  1976.  Hydrocomp simulation programming:  operations  manual.
     4th ed.  Hydrocomp Inc., Palo Alto,  California.

Johanson, R.J., and N.H. Crawford.   1976.  Development  of the watershed
     erosion and sediment transport model.  Prepared  for Environmental
     Research Laboratory, Athens, Georgia.  R803726-01-0.  Hydrocomp  Inc.,
     Palo Alto, California.   155 pp.

Johnson, H.P.  1977.   Development and  testing of mathematical models  as
     management tools for agricultural  nonpoint pollution control.
     Department of Agricultural  Engineering,  Iowa  State University, Ames,
     Iowa.

Jopling, A.V.  1965.   Geometrical properties of sand  waves.   (Discussion  of
     paper by M.S. Yalin.)  Proc. Am.  Soc. Civ.  Eng.  91(HY3):348-360.

Krone, R.B.   1962.  Flume studies of the  transport of sediment in estuarial
     shoaling processes, final report.  Hydraulic  Engineering Laboratory,
     University of California,  Berkeley.   110 pp.

Krone, R.B.   1963-  A study of rheologic  properties of  estuarial  sediments,
     final report.  Hydraulic Engineering Laboratory, University of
     California,  Berkeley.  91  pp.
                                    188

-------
Kunkle, G.R.  1968.  A hydrologic study of the ground-water reservoirs
     contributing base runoff to Four Mile Creek, East-central  Iowa.   Water
     Supply Paper 1939-0.  U.S. Government Printing Office, Washington,  B.C.
     11 PP.

Lane, E.W.  19^7.  Report of the subcommittee on sediment terminology.
     Trans.  Am.  Geophys.  Union  28(6):936-938.

Little, W.C., and P.G. Mayer.  1972.  The role of sediment gradation on
     channel armoring.  Report ERC-0672.  Georgia Institute of Technology.
     Atlanta, Georgia.   104 pp.

Mahoney, H.A., et al.  1976.  Data for calibrating unsteady-flow sediment
     transport models, East Fork River, Wyoming, 1975.  U.S. Geological
     Survey, Denver, Colorado.  293 pp.

Negev,  M.A.  1967.   A sediment  model  on a digital computer.   Technical
     Report No.  76.   Department of  Civil Engineering,  Stanford  University,
     Stanford,  California.  109 pp.

Nordin, C.F., and J.H. Algert.  1965.  Geometrical properties of sand waves.
     (Discussion of paper by M.S. Yalin.)  Proc. Am. Soc. Civ.  Eng.
     91:(HY3):367-37U.

Owen, M.W.  1969.  Deposition of suspended particles in a gravel bed.
     (Discussion of paper by H.A. Einstein.)  Proc. Am. Soc. Civ. Eng.
     95(HY3):1085-1087.

Partheniades, E. and R.E. Paaswell.  1970.  Erodibility of channels  with
     cohesive boundary.  J. Am. Soc. Civ. Eng.  96(HY3):755-770.

Rouse, H.   1937.  Modern conceptions of the mechanics of fluid turbulence.
     Paper  No. 1965.  Trans. Am. Soc. Civ. Eng.  102:463-5^3.

Ruhe, R.V., and W.J. Vreeken.  1969.  Hydrologic system related to geology
     and soils, Four Mile Creek Area, Tama County, Iowa.  Project No.
     A-014-IA.  Iowa State Water Resources Research Institute,  Department of
     Agronomy, Iowa State University, Ames, Iowa.  80 pp.

Simons, D.B., and E.V. Richardson.   1965.  A study of variables affecting
     flow characteristics and sediment transport in alluvial channels.
     Proc.  of the Federal Inter-Agency Sedimentation Conference, 1963.
     Misc.  Publication No. 970.  Agricultural Research service, U.S.
     Department of Agriculture, Washington, D.C.  pp.  193-207.

Simons, D.B., and E.V. Richardson.   1966.  Resistance to flow in alluvial
     channels.  Professional Paper M22J.  U.S. Geological Survey,
     Washington, D.C.  pp. 193-207.

Smeardon, E. T., and R.P. Beasley.   1961.  Critical tractive forces  in
     cohesive soils.  Agricultural  Engineering,  pp. 26-29.
                                      189

-------
Taylor, S.A., and G.L. Ashcroft.  1972.  Physical edaphology:   the physics
     of irrigated and nonirrigated soils.   W.H.  Freeman and Company,  San
     Francisco.  pp. 95-124.

Todd, O.K.  1964.  Groundwater.   Pages 13-34 in  V.T.  Chow,  ed.   Handbook of
     applied hydrology.  McGraw-Hill, New York.

Vanoni, V.A.  1974.   Factors determining bed forms of alluvial  streams.
     Proc. Am. Soo.  Civ. Eng. 100(HY3):363-377.

Vanoni, V.A., ed.  1975.  Sedimentation engineering.   American  Society of
     Engineers, New York.

Vreeken, W.J.  1972.  Geomorphic regimen of small watersheds in loess, Tama
     County, Iowa.  Iowa State University, Ames, Iowa.  317 PP-  (Ph.D.
     dissertation)

White, W.R.  1972.  Sediment transport in channels:  a general  function.
     Report INT  104.  Hydraulics Research Station, Wallingford, England.

White, W.R., H. Milli, and A.D.  Crabbe.  1973a.   Sediment transport:   an
     appraisal of available methods.  Vol. 1.  Summary of existing theories.
     Report INT  119.  Hydraulics Research Station, Wallingford, England.

White, W.R., H. Milli, and A.D.  Crabbe.  1973b.   Sediment transport:   an
     appraisal of available methods. Vol.  2.  Performance of theoretical
     methods when applied to flume and field data.  Report INT  119-
     Hydraulics Research Station, Wallingford, England.

White, W.R., H. Milli, and A.D.  Crabbe.  1975.  Sediment transport
     theories:  a review.  Proc. Inst. Civ. Eng.  London, England.
     59:265-292.

Yalin, M.S.  1964.  Geometrical  properties of sand waves.  Proc.  Am.   Soc.
     Civ. Eng.  90(HY5):105-119.

Yalin, M.S.  1976.  Mechanics of sediment transport,  2nd ed.  Pergaman
     Press, Oxford,   pp. 209-267.
                                    190

-------
                                 APPENDIX A

                 SUBDIVISION OF TOTAL LAND SURFACE EROSION
                        INTO PARTICLE SIZE FRACTIONS

We wish to divide a total mass rate of sediment washoff per unit area of
land surface into the mass rates of washoff for a number of particle size
fractions.  The basis for the subdivision is as follows.  If a single
particle size fraction i is present on the land surface, the rate of
transport by overland flow may be expressed by DuBoys equation (Graf 1971)
where    g^ = sediment transport rate for size fraction i, as
              mass/width of overland flow/time
          T = bed shear stress
            = Tys
          Y = specific weight of water
          y = depth of flow
          s = slope of energy gradient
      T    . = critical shear stress to initiate movement of size
       cr/1   fraction i
         C . = characteristic coefficient for size fraction i

Now,  if several size fractions are present on the land surface, let

      P. = S^S                                                        (A2)

where  P   = proportion of detached material represented by size
             fraction i
       S.^  = quantity of detached material of size fraction i on land
             surface
       S  = total quantity of detached material on land surface

Under this condition, the transport rate for each fraction may be
expressed as:
         *                                                            (A3)
       g.  = p.g.
       yi    VL^I

The total mass washoff SER is:
           NPSF        NPSF

      SER -       9* * 2   P                                        (A4)
                                     191

-------
where  NPSF = number of particle size fractions.  The total washoff SER is
the quantity output by the ARM Model.  The percentage of the total washoff
represented by each size fraction is then:
       *           NPSF

     pi =  (Pi(5i)/(      Pigi}                                          (A5)
Now, using Manning's formula to approximate the hydraulics of overland
flow, we have:

     T .  W-V-y-7                                                (A6)


where  n = Manning's roughness coefficient
       Q = overland flow rate/width
       S = slope of land surface

The soil washoff equation in the ARM Model is of the form

     SER = KQJ                                                         (A?)

where  K = soil transportability coefficient
       J = exponent

Equations A6 and A7 imply that in the ARM Model

      T= A(SER)B                                                       (A8)

where  A = constant for a particular land slope and Manning's roughness
       B = exponent

Equation Al indicates that transport of size fraction i only begins when the
shear stress exceeds the critical value T   . .  From Equation A8 it can be
seen that associated with the critical sheaf1stress is a rate of total
washoff (SER) .  This represents the threshold value of SER for movement of
size fraction i.  Thus, at low rates of washoff only the finest fraction may
be present.  As the rate increases, successively coarser material will start
to move and larger fractions will be present in the washoff.

At very high rates of overland flow, the transport of detached material is
governed by availability, rather than transport capacity.  It is assumed in
the WEST Model that under these conditions the composition of washoff will
be similar to that of the detached material which, in turn, is similar to
that of the land surface material.
                                   192

-------
The foregoing considerations led to the adoption of the relationships
illustrated in Figure Al.  COMLND(I)  is the percentage of the land surface
material represented by particle size I.  THRESH(I) is the threshold level
of washoff at which particle size I starts to move.  STEADY is that value of
washoff above which the composition is the same as that of the land surface.
CQMLND(*), THRESH(*), and STEADY are model input parameters.  The units used
on the abscissa of Figure Al are mass/land surface area/time.  This is the
system used internally in the CHANL Model, which is not identical to that
used in the ARM Model.  The subdivision is done in subroutine SPLIT within
the CHANL Model.

This approach should ultimately be eliminated, when the algorithms in the
ARM Model are revised to reflect both the quantity and composition of eroded
material.
   LU 100
   N
   to
   o
   a.
   X
   a
   <
   LU
   CC
   O
   O
   I
   to
   I
   o
   oc
              THRESH THRESH  THRESH THRESH STEADY
                 (2)      (3)       (4)      (5)

                        TOTAL WASHOFF(SER)
        Figure Al.  Diagram showing how eroded material (SER)  is
                    subdivided into particle size fractions
                                    193

-------
                              APPENDIX B

          CATALOG OF WATERSHEDS WITH DATA ON SEDIMENT YIELD
At the commencement of this project Hydrocomp compiled a catalog of
watersheds for which sediment records exist.  It should be noted that
the inclusion of a basin in the list does not imply that the data are
suitable or sufficient for testing of the WEST Model.  Many data besides
measured sediment discharge are needed for adequate testing (Section
11.3).  When measured by this standard, very few of the listed watersheds
would qualify as suitable test candidates.  Nevertheless, the list has
been included in this report for the following reasons:

     (1)  It is a reasonably comprehensive inventory of watersheds with
          sediment data, and might be useful on other projects.
     (2)  It might be useful in selecting other test watersheds for which
          supplementary data collection programs will be introduced.
     (3)  If the stage is reached where the WEST Model requires less
          data, the list could be of use in selecting test watersheds.

The catalog is in two parts:

     (1)  All watersheds, excluding those operated by the Agricultural
          Research Service  (ARS), are listed first (Part 1).
     (2)  Data for those watersheds operated by the Agricultural
          Research Service are summarized in the second section (Part
          2).  The accompanying key indicates exactly what types of
          information are available in each case (e.g. precipitation,
          sediment discharge, stream cross-sections).
                                   194

-------
              WATERSHEDS WITH SEDIMENT DISCHARGE RECORDS
               PART 1.  WATERSHEDS NOT GAGED BY THE ARS
                        Drainage  Period                        Sampling
Stream and Location     Area, mi  of Record  Source  Reference  Frequency

Arizona

Frye Ck at
Thatcher, AR (60 P)       24.3    1963-       USGS      116        B

Gold Gulch near
Bowie, AR                 104     6/57-8/59   USGS      68         A
Arkansas

Six Mile Ck near
Chismville, AK  (44 N)     102     1957-70     USGS      116        B
California

Nacimiento R near
Bryson, CA  (71 I)        140     3/58-       USGS      81         B

San Francisquito Ck at
Stanford Univ., CA        37.7    1/57-9/60   USGS      81         N  (123)

Guadalupe River at
San Jose, CA              151     2/57-9/60   USGS      81         N  (64)

Napa River near
St. Helena, CA            81.3    1/57-9/60   USGS      81         A

Sonoma Ck at Boyes
Hot Springs, CA           62.7    1/57-9/60   USGS      81         N  (195)

E. Fork Russian River
near Ukiah, CA            105     12/53-3/55  USGS      107        A

Highland Ck near
Kel, CA (72 f)            14.2    1966-       USGS      116        B

Dry Ck near
Geyserville, CA (72 S)    162     1964-       USGS      116        B
                                    195

-------
Arroyo Trabuco at
San Juan Cap., CA (70  )   35      1970-       USGS      116        B

San Diego Ck near
Irvin, CA (70 K)          40.3    1972-       USGS      116        B

Ventura River near
Ventura, CA (71 B)        188     1968-       USGS      116        B

Lopez Ck near
Arroyo Grande, CA (71 G)   21.4    1967-       USGS      116        B

Arroyo Grande near
Arroyo Grande, CA (71 G)   13.4    1967        USGS      116        B

Salinas River near
Spreckels, CA (71 I)      4.57    1951-       USGS      116        B

Santa Rita Ck near
Tenpleton, CA (71 I)      18      1967-       USGS      116        B

Arroyo Seco near
Greenfield, CA  (71 I)     113     1961-       USGS      116        B

Llagas Ck near
Morgan Hill, CA (71 K)    20      1971-       USGS      116        B

Uvas Ck near
Morgan, CA  (71 K)         21      1964-       USGS      116        B

Coyote Ck near
Gilroy, CA  (71 L)         109     1965-       USGS      116        B

Colma Ck near
San Fran., CA (71 L)      10.9    1965-       USGS      116        B

Zayanta Ck,
Zayante, CA (71 L)        11.1    1970-       USGS      116        B

E.F. Kaweah River near
Hanmond, CA (71 0)        16      1971        USFS      116        B

Thomas Ck at
Paskenta, CA  (72 E)       194     1958        USGS      116        B

Black Butte River near
Covelo, CA  (72 U)         162     1964-       USGS      116        B
                                      196

-------
S. Fork Eel River near
Branscomb, CA (72 V)      43.9    1957-70     USGS      116        B

Outlet Ck near
Longvale, Ca (72 V)       161     1958-70     USGS      116        B

Arroyo Simi near
Simi, CA  (70 P)            35.7    1968-       USGS      116        B
Colorado

Black Mesa #4
Crawford, CO              .142    1/57-6/58   USFS      51         M

Black Mesa 16
Crawford, CO              .425    5/57-7/59   USFS      51         M

N Clear Ck near                                         93,97
Blackhawk, CO             55.8    3/52-6/55   USGS      101,105    A

Big Thompson R
at Estes Park, CO         137     5/53-7/53   USGS      97         A

Kiowa Ck near
Eastonville, CO           3.2     4/56-10/59  USGS      73         A
Connecticut

Scantic River at Broad
Brook, CT                 98.4    11/52-9/60  USGS      67,115     A

Georgia

N Fork Broad R
near Tbccoa, GA           1.2     11/57-9/59  USGS      74         1800
Illinois

Bay Ck at
Nebo, IL  (24 A)           162     1942-       Corps     116        B

Hadley Ck at
Kinderhook, IL  (25 Q)     72.2    1940-       Corps     116        B
                                      197

-------
Indiana

Big Raccoon Ck near
Fincastle, IN  (17 L)      132     1959-       USGS
Iowa

Paint Creek at
Waterville, 10            42.8    11/52-9/57  ?         119        A

Ralston Ck at
Iowa City, 10 (25 D)      3.01    4/52-       USGS      109        A

E.F. Hardin Ck near
Churdan, 10               24.0    7/52-9/57   USGS      109        A

Wolf Ck at
Holly Springs, 10         115     8/57-9/60   Corps     26         L

Indian Ck at
Council Bluffs, 10        7.99    4/56-8/56   Corps     26         L

Mule Creek near
Malvern, 10 (35 0)        10.6    7/54-69     USGS      109        A

Davids Creek near
Hamlin, 10                26.0    7/52-9/56   USGS      109        A

Four Mile Ck near
Lincoln, 10 (25 C)        13.8    1969-74     USGS      116        B

Four Mile Ck near
Traer, 10  (25 C)           19.5    1969-74     USGS      116        B

Half Mile Ck near
Gladbrook, 10 (25 C)      1.33    1969-74     USGS      116        B

Promise City S Fork
Chariton River, 10  (31 J) 168     1969-       Corps     116        B

Thompson Ck near
Woodbine, 10 (35 A)       6.97    1963-69     USGS      116        B

Steer Ck near
Magnolia, 10 (35 Q)       9.26    1963-69     USGS      116        B
                                       198

-------
Willow Ck near
Logan, 10 (36 A)          -       1972-       USGS      116        B


Kansas

Cedar Ck near
Cedar Junction, KA (31 G) 38.9    1965-68     USGS      116        B
Kentucky

Raccoon Creek near
Fincastle, KY             128     7/51-9/60   USPS      57         B

Plum Ck sub No. 4 inflow
near Sirnpsonville, KY     1.51    4/56-9/60   USGS      71         J

Plum Creek at
Waterford, KY             31.9    10/54-9/60  USGS      115,71     A

Helton Branch at
Greenwood, KY  (18 H)      .85     1/56-       USGS      71         A
Louisiana

Cypress Bayou near
Keithville, LA             66       2/52-6/55   Corps      23          K

Boggy Bayou near
Keithville, LA             79       3/52-6/55   Corps      23          K
Maryland

Baisman Run at
Shawan, MD  (04 R)          .15      1963-69     USGS       116         I

Baisman Run at
Broadmoor, MD  (04 R)       1.47     1963-69     USGS       116         I

NW Branch Anacostia
R near Colesville,
MD  (05 K)                  21.3     1963-       USGS       116         I

N Branch Rock Ck near
Pockville, MD  (05 K)       12.5     1967-       USGS       116         I
                                       199

-------
Mississippi

Little Tallahatchie
Abbeville, MS             .004    1/57-9/60   USFS      54         K

Little Tallahatchie
Oxford, MS                .005    1/58-9/60   USFS      54         K
Missouri

E Fork Big Ck
near Bethany, MO          95      10/50-10/59 Corps     20
Montana

Bluewater Ck near
Bridget, MT  (43 D)        28.1    1960-70     USGS      116        B

Silver Tip Ck near
Belfry, MT (43 D)         88      1968        USGS      116        B

Bluewater Ck near
Bridger, MT  (43 D)        43.9    1960-70     USGS      116        B

Bluewater Ck near
Fromberg, MT (43 D)       53      1960-70     USGS      116        B
Nebraska

Brushy Ck near                                          73,89,93
Maywood, NE               130     4/51-9/58   USGS      97,101,    A
                                                        105,109

Fox Creek at                                            73,89,93
Curtis, NE                77      3/51-9/58   USGS      97,101,    A
                                                        105,109

Sever Ck near
fesemont, NE              .642    1/57-9/60   APS       39         K

Bever Ck at
Itosemont, NE              .752    1/57-9/60   ARS       39         K

Brownell Ck SWS 1
near Syracuse, NE
(35 P)                    .19     1955-69     USGS      116        B
                                      200

-------
New Jersey
S Branch Raritan R
at Stanton, NJ

Stony Brook at
Princeton, NJ

Baldwin Ck at B Lk
near Pennington, NJ
(03 J)
147     12/59-9/60  USGS
44.5    1/56-9/60   USGS
1.92    1962-70     USGS
                      77
           A
                      115,77     A
                      116
New Mexico

Pied Lisa Arroyo near
Bernalillo, MM

Tortugas Arr. near
Las Cruces, NM
(57 K)
4.1     7/56-9/60   USGS
13.5    1963-
            USGS
                      68
116
B
New York

Kayaderosseras Cr
near W Milton, NY

Buffalo Creek at
Gardenville, NY

Cayuga Creek near
Lancaster, NY

Cazenovia Creek at
Ebenezer, NY
90
3/53-7/55   USGS
145     3/53-3/60   ARS
93.3    12/53-3/60  ARS
136     3/53-3/60   ARS
108
                      38
                      38
                      38
B


K (193)


K (151)


K (169)
North Carolina

Third C 7A near
Stony Pt., NC

Third C 21 at
Troutman, NC

Parker Branch at
Leicester, NC
4.8     7/57-9/60   USGS      79
1.6     4/55-6/57   USGS
1.51    3/53-9/60   TVA       14
                                     201

-------
Ohio
NF Little Miami R
near Pitchin, OH

Little Miami R near
Oldtown, OH

NF Massie Ck at
Cedarville, OH

SF Massie Ck near
Cedarville, OH

Massie Creek at
Wilberforce, OH

Big Walnut Ck at
Central College, OH

Little Miami R near
Selma, OH
29.1    8/52-9/68   USGS      115,71
129     8/52-9/58   USGS      115,71
25.6    7/54-9/58   USGS      115,71
20.2    7/54-9/58   USGS      115,71
64.3    9/52-9/58   USGS      115,71
1.91     10/51-9/53  USGS      71,96
50.6    9/52-9/58   USGS      115,71
           A
Oklahoma

Double C Res Site
#5 near Ramona, OK
2.39    4/55-9/60   USGS
75
A (646)
Oregon

Look out No. 1,2,3  near
Blue River, OR

Needle Branch near
Salado, OR  (74 AD)

Flynn Ck near
Salado, OR  (74 AD)

Deer Ck near
Salado, OR  (74 AD)

Sixes River at
Sixes, OR (73 Q)
.3
.32
.84
1.20
116
10/56-9/60
11/58-
11/58-
11/58-
1967-70
USFS
USGS
USGS
USGS
USGS
47
78
78
78
116
                                         K
                                         391
                                         342
                                         401
                                         B
                                      202

-------
Yaquina River near
Chitwood, OR (74 AD)
71
1973-
USGS
116
B
Pennsylvania

Schuylkill R Port
Carbon, PA

Schuylkill R at
Landingsville, PA

Schuylkill R at
Auburn, PA

Little Schuylkill R
at S Tamaqua, PA

Little Schuylkill R
at Drehersville, PA

Corey Ck near
Mainesburq, PA

Elk Run near
Mainesburq, PA

Marsh Ck at
Blanchard, PA

Holt Hollow near
Milesburg, PA

Bixler Run near
Loysville, PA
27.1    10/50-6/51  USGS
133     10/50-3/53  USGS
160     10/50-6/51  USGS
69.4    10/50-4/53  USGS
122     10/50-6/51  USGS
12.2    5/54-9/60   USGS
10.2    5/54-9/60   USGS
44.1    11/55-3/58  USGS
2.7     6/56-4/57   USGS
15.0    2/54-9/60   USGS
                      88
                      92,96
                      88
                      92,96
                      88
                      115,77
                      115,77
                      115,77     A
                      77
                     619
                      115,77     A
South Carolina

Little River near
Mewry, SC

Twelve mile Ck near
Liberty, SC

Eighteen mile Ck near
Fendleton, SC
175     2/56-5/58   Corps     31
106     2/56-10/57  Corps     31
55
2/56-10/58  Corps     31
                     H (81)


                     H (36)


                     H (55)
                                     203

-------
Twentythree mile Ck on
US 76 near Lafranee, SC   60

Deep Creek near
Anderson, SC
Tennessee

White Hollow Creek
Sharps Chapel, TN

Potato Ck Trib I W
Ducktown, TN

Potato Ck Trib I E
Ducktown, TN
Texas

Elm F Trinity R No. 60
near Muenster, TX  (51 I)   .77

Elm F Trinity R near
Muenster, TX

Pine Oak Ck near
Hubbard, TX

Guadalupe River Basin
Escondido Res No.  1
near Kennedy, TX

Bayou La Nana at
Nacogdoches, TX  (51 D)

Piney Ck near
Groveton, TX (51 G)

Little Elm Ck near
Aubrey, TX (51 I)

Long King Ck near
Livingston, TX (51 0)
60
136
2.68
.008
.01
.77
46
17.6
3.29
31.3
79
75.5
141
2/56-10/58
11/55-10/57
10/50-9/60
10/50-1/52
10/50-1/52
10/56-9/68
10/56-9/60
10/56-9/60
3/55-9/60
1965-
1962-
1964-1968
1963-
Corps
Corps
TVA
TVA
TVA
USGS
USGS
USGS
USGS
TWDB
TWDB
TWDB
TWDB
31
31
14
14
14
69
69
69
69
116
116
116
116
H (44)
H (147)
1,0
1,0
1,0
K
L
A
K
B
B
B
B
                                      204

-------
Utah

Mill Ck near
Glenwood, UT (66 0)       14      1963-       USGS      116        B

Pleasant Ck near
Caineville, UT  (63 K)     115     1969-72     USGS      116        B

Red Ck near
Dutch John, UT  (64 P)     140     1971-       USGS      116        B
Washington

Mill Ck Bl Blue Ck near
Walla Walla, WA (76 AH)   59.6    1962-70     USGS      116        B

Alder Ck at
Alderdale, WA (74 J)      197     1962-68     USGS      116        B
West Virginia

Grassy Run at
Norton, WV  (21 H)         2.86    1964-69     USGS       116        B

Roaring Ck at
Norton, WV  (21 H)         29.2    1964-69     USGS       116        B

Salem F Sub No 11A
Varner Hollow Run inflow
near Salem, WV            .29     2/55-9/60   USGS       71         J
Wisconsin

Dell Ck near
Lake Delton, WI            44.9    9/57-?      USGS       71

Black Earth Ck at
Black Earth, WI            45.9    2/54-9/60   USGS       109,71

Yellowstone River near
Blanchardville, WI         29.1    8/54-9/60   USGS       109,71

Mt Vernon Ck near
Mt Vernon, WI              16.1    1/54-9/60   USGS       109,71
                                      205

-------
Galena River at
Buncombe, WI (26 N)
128     1942-67     Corps
116
B
Wyoming

Five mile Ck near
Pavillion, WY (43 L)
Box Ck near
Bill, WY
Rock Creek at
Atlantic City, WY
N F Crazy Woman Ck near
Greub, WY (42 F)
Dry Ck near
Booneville, WY (43 I)
Bridger Ck near
Lysite, WY (43 I)
Dry Piney Ck near
Big Piney, WY (64 D)
Big Coulee near
Lovell, WY (43 P)
143

109

21.3
174
52.6
182
67
28.8
10/50-

7/56-5/58

5/57-9/60
1965-68
1965-
1965-
1965-
1970
uses

uses

uses
uses
uses
uses
uses
uses
84

109,84

84
116
116
116
116
116
                                                                   B
                                                                   B
                                                                   B
                                                                   B
                                                                   B
                                                                   B
                                                                   B
                                                                   B
                                      206

-------
KEY
a.  Sources of data:

    USGS  -  U.S. Geological Survey
    USFS  -  U.S. Forest Service
    Corps -  U.S. Army Corps of Engineers
    TWDB  -  Texas Water Development Board
    TVA   -  Tennessee Valley Authority
    ARS   -  U.S. Dept. of Agriculture, Agricultural Research Service
b.  For key to numbers in this column see "References to Sources of
    Sediment Data" (below).


c.  Key to symbols in sampling frequency column:

    A - Min. of one sample per day with more on changing stage
    B - Daily sampling
    C - Twice daily sampling
    D - 1000 samples obtained during month
    E - 10 day intervals with more on changing stage
    F - Collected at half-hour intervals during rising stage
    G - Weekly during low flow and twice during runoff events
    H - Min. of one sample per month with more on changing stage
    I - Continuous sampling
    J - 1-3 samples per storm runoff
    K - Sampling during flood periods
    L - Min. of one sample per week with more on changing stage
    M - Hourly sampling during peak snowmelt twice daily on changing
        stage
    N - Periodic sampling with one or more samples on changing stage
    0 - Data not good or not readily available
  (26) - Numbers indicate total number of observations during
        period of record
                                      207

-------
                REFERENCES TO SOURCES OF SEDIMENT DATA
 5.  Guy, H.F., and others, 1958, Sediment yield from small watersheds
     and its detention by flood-retarding structures; report of progress
     to June 1957: U.S. Geol.  Survey and Soil Conserv.  Service, Progress
     Report.

14.  Tennessee Valley Authority, Knoxville, Tenn.   Unpublished data.

20.  U.S. Corps of Engineers,  Dept. of the Army, Kansas City District,
     Kansas City, Mo.  Unpublished data.

23.  U.S. Corps of Engineers,  Dept. of the Army, New Orleans District,
     New Orleans, La.  Unpublished data.

26.  U.S. Corps of Engineers,  Dept. of the Army, Omaha District, Omaha,
     Nebraska.  Unpublished data.

31.  U.S. Corps of Engineers,  Dept. of the Army, Savannah District,
     Savannah, Georgia.  Unpublished data.

38.  U.S. Dept. of Agriculture, Agricultural Research Service, East
     Aurora, N.Y.  Unpublished data.

39.  U.S. Dept. of Agriculture, Agricultural Research Service, Hastings,
     Nebr.  Unpublished data.

40.  U.S. Dept. of Agriculture, Agricultural Research Service, Riesel,
     Tex.  Unpublished data.

41.  U.S. Dept. of Agriculture, Agricultural Research Service, University,
     Miss.  Unpublished data.

47.  U.S. Dept. of Agriculture, Forest Service, Pacific Northwest Forest
     and Range Experiment Station, Portland Oregon.  Unpublished data.

51.  U.S. Dept. of Agriculture, Forest Service, Rocky Mountain Forest and
     Range Experiment Station, Grand Junction, Colo.  Unpublished data.

54.  U.S. Dept. of Agriculture, Forest Service, Southern Forest Experiment
     Station, New Orleans, La.  Unpublished data.

57.  U.S. Dept. of Agriculture, Soil Conservation Service, Engineering and
     Watershed Planning Unit,  Portland, Oreg.  Unpublished data.

67.  U.S. Dept. of the Interior, Geological Survey, Albany, N.Y.  unpublished
     data.
                                      208

-------
 68.  U.S. Dept. of the  Interior, Geological Survey, Albuquerque, N. Mex.
     Unpublished data.

 69.  U.S. Dept. of the  Interior, Geological Survey, Austin, Tex.  Un-
     published data.

 71.  U.S. Dept. of the  Interior, Geological Survey, Columbus, Ohio.
     Unpublished data.

 73.  U.S. Dept. of the  Interior, Geological Survey, Lincoln, Nebr.
     Unpublished data.

 74.  U.S. Dept. of the  Interior, Geological Survey, Ocala, Fla.  Un-
     published data.

 75.  U.S. Dept. of the  Interior, Geological Survey, Oklahoma City,
     Oklahoma.  Unpublished data.

 77.  U.S. Dept. of the  Interior, Geological Survey, Philadelphia, Pa.
     Unpublished data.

 78.  U.S. Dept. of the  Interior, Geological Survey, Portland, Oregon.
     Unpublished data.

 79.  U.S. Dept. of the  Interior, Geological Survey, Raleigh, N.C.
     Unpublished data.

 81.  U.S. Dept. of the  Interior, Geological Survey, Sacramento, Calif.
     unpublished data.

 84.  U.S. Dept. of the  Interior, Geological Survey, Wbrland, Wyo.
     Unpublished data.

 88.  U.S. Geological Survey, 1955,  Quality of surface waters of the United
     States, 1950-51, Pt. 1-4, North Atlantic slope basins to St. Lawrence
     River basin:  U.S.  Geol. Survey Water-Supply Paper 1197, p. 373.

 89.  U.S. Geological Survey, 1956,  Quality of surface waters of the United
     States, 1950-51, Pt. 5-6, Hudson Bay and upper Mississippi River  basin:
     U.S. Geol. Survey Water-Supply Paper 1198, 586 p.

92.  U.S. Geological Survey, 1956,  Quality of surface waters of the United
     States, 1951-52, Pt. 1-4, North Atlantic slope basins to St. Lawrence
     River basin:  U.S.  Geol. Survey Water-Supply Paper 1150, 365 p.

93.  U.S. Geological Survey, 1957,  Quality of surface waters of the United
     States, 1951-52, Pt. 5-6, Hudson Bay and upper Mississippi River
     basin:   U.S.  Geol.  Survey Water-Supply Paper 1251, 578 p.

96.  U.S. Geological Survey, Quality of surface waters of the United States,
     1952-53, Pt.  1-4, North Atlantic slope basins to St. Lawrence River
     basin:   U.S.  Geological Survey Water-Supply Paper 1290, 439 p.

                                     209

-------
97.   U.S.  Geological Survey, 1958,  Quality of surface waters of the United
     States, 1952-53, Pt. 5-6,  Hudson Bay and upper Mississippi River
     basin:   U.S.  Geol.  Survey Water-Supply Paper 1291,  472 p.

101.  U.S.  Geological Survey, 1958,  Quality of surface waters of the United
     States, 1953-54, Pt. 5-6,  Hudson Bay and upper Mississippi River
     basin:   U.S.  Geol.  Survey Water-Supply Paper 1351,  284 p.

105.  U.S.  Geological Survey, 1959,  Quality of surface waters of the United
     States, 1954-55, Pt. 5-6,  Hudson Bay and upper Mississippi River
     basin:   U.S.  Geol.  Survey Water-Supply Paper 1401,  305 p.

107   U.S.  Geological Survey, 1960,  Quality of surface waters of the United
     States, 1954-55, Pt. 9-14, Colorado River basin to  Pacific slope
     basins in Oregon and lower Columbia River basin: U.S. Geol.  Survey
     Water-Supply Paper  1403, 437 p.

108.  U.S.  Geological Survey, 1960,  Quality of surface waters of the United
     States, 1955-56, Pt. 1-4,  North Atlantic slope basins to St.  Lawrence
     River basin:   U.S.  Geol. Survey Water-Supply Paper  1450, 603  p.

109.  U.S.  Geological Survey, 1960,  Quality of surface waters of the United
     States, 1955-56, Pt. 5-6,  Hudson Bay and upper Mississippi River
     basin:   U.S.  Geol.  Survey Water-Supply Paper 1451,  349 p.

115.  U.S.  Geological Survey, 1960,  Quality of surface waters of the United
     States, 1956-57, Pt. 1-4,  North Atlantic slope basins to St.  Lawrence
     River basin:   U.S.  Geol. Survey Water-Supply Paper  1520, 641  p.

116.  U.S.  Dept. of Transportation,  1973, Notes on sedimentation activities,
     Prepared under auspices of the U.S. Water Resources Council,
     Sedimentation Committee.
                                     210

-------
                                  WATERSHEDS WITH SEDIMENT DISCHARGE RECORDS
                        PART 2.   WATERSHEDS GAGED BY THE AGRICULTURAL RESEARCH SERVICE
                                          AS OP JANUARY 1, 1975
Study Location
and Number of
Rain Gages
ARIZONA
Tombstone
098-R

Name
Walnut Gulch
Walnut Gulch
Walnut Gulch
Walnut Gulch
Walnut Gulch
Walnut Gulch
Walnut Gulch
Walnut Gulch

Number
63.C01
63.002
63.003
63.004
63.006
63.007
63.008
63.009
Walnut euicn bj.uiu
(a) Recorded daily in the summer
IDAHO
Boise
048-R


Reynolds Cr. Outlet
Salmon Creek
Hack's Creek
Summit
Flats Watershed
Nancy's Gulch
Reynolds Cr. @ Tollgate
Upper Sheep Cr . 1
Upper Sheep Cr . 2
Reynolds Mtn. East
036068
046017
046084
048077
057096
098097
116083
138012
138034
166076

Code
63.001
63.002
63.003
63.004
63.006
63.007
63.003
63.009
63.010
season;
68.001
68.002
68.003
68.012
68.004
68.013
Record
Began
1954
1954
1954
1954
1961
1966
1963
1967
1 G£*7
weekly
1963
1964
1965
1965
1 0*11
1971
1966
1970
1S70
1963
Land Area
Use
P
P
P
P
P
P
P
P
in the
M
M
M
P
P
P
P
P
P
(Acres)
36,900.
28,100.
2,220.
560.
23,500.
3,340.
3,830.
5,830.
4 110

Types of Data
l,4,5,6,7,8,9,10,ll(a),13,16,17,18,
1,4, 5,6, 7, 8, 9, 10, 11 (a), 13, 16, 17, 18,
1,4,15,16,17,19
1,4,15,16,17,19
1,4,15,16,17,19
1,4,15,16,17,19
1,4,15,16,17,19
1,4,8,9,11(3) ,15, 16, 17, 19


19
19
winter season.
57,754.
8,990.
7,846.
205.
-> 24
3.10
13,453.
63.4
15.7
100.
1,3, 4, 6, 7, 8, 9, 10, 11 (a) ,12, 15,16, 17,
1,4,14,15,16,17,19
1,4,14,15,16,17,19
1,4, 6, 11 (a) ,12, 14, 15, 16, 17, 19, 20
19

1,4,11(31,12,14,15,16,19,20
1,3, 4, 8, 9, 10, 11 (a) ,12, 15, 16, 17, 19
l,3,4,ll(a) ,14,15,16,17,19,20
1,3,4,14,15,16,17,20
1,3, 4, 7,8,9, 11 (a), 14,15, 16,17, 19, 20
                " l^UUC IIUiHiJd- -to yiA\J AV/WCIUAV/tk WA. fl^-Afc.
                (a)  Weekly or less frequent	by neutron probe.
IOWA
  Iowa City
  005-R

  Treynor
  008-R
Ralston Creek
W-l
W-2
W-3
W-4
                                 21.001    1924
71.001
71.002
71.003
71.004
1964
1964
1964
1964
                    M    1,926.    1,4,14,16,17,19
C      74.5   l,3(a),4,6,7,8,9,ll(b),14,15,16,17,19
C      82.8   l,3(a) ,4,6,7,8,9,ll(b),14,15,16,17,19
C     107.    l,3(a),4,6,7,8,9,il(b),14,15,16,17,19
C     150.    1,3{a),4,6,7,8,9,ll(b),14,15,16,17,19
                 (a)  Occasional estimates of snow on ground by random samples.
                 (b)  Sampled each 2 to 4 weeks during frost free periods.

-------
S3
MISSISSIPPI
Holly Spt.
Br. Exp. Sta.
002-R
Lab. Cr.
005-R
Oxford
032-R





MISSOURI
Colunbia
011-R





MONTANA
Ekalaka
016-R 005-NR
NEW MEXICO
Santa Rosa
069-R

OHIO
Coshocton
019-R

OKLAHOMA
Chickasha(a)
237-R(e)




Holly Springs
Holly Springs
Holly Springs
Laboratory Cr .

Pigeon Roost
Pigeon Poost
Pigeon Roost
Pigeon Poost
Pigeon Poost
Pigeon Roost
Pigeon Roost

Ashland
Ashland
Bailey
Bailey
Bailey
Callahan
Callahan


WC-1
WC-2
WC-3
W-l

W-4
W-5
W-17
W-32
W-34
W-35
W-5A

eo
81
90
91
92
80
81

Data from 10 two-acre plots are


Alamogordo Creek

(a) Recorded weekly



(b) Biweekly to monthly

Kashita R. @ Anadarko
Washita R. @ Chksa. Ipk.
Washita R. Q Alex
Tonkawa Creek, South
Tbnkava Creek, Bast


64.001



123
109


100
500
700
111
110

62.013
62.014
62.015
62.000

62.001
62.002
62.005
62.010
62.011
62.012
62.000









available.






26.010
26.013


69.001
69.005
69.007
69.010
69.014

1958
1958
1958
1961

1957
1957
1957
1957
1957
1957
1972

1968
1968
1968
1968
1968
1968
1968




1955



1939
1939


1961
1964
1961
1962
1963
                                                                            C       3.88  1,4,7,8,9,14,15,16,17,20
                                                                            C       1.45  1,4,7,8,9,14,15,16,17,20
                                                                            C       1.61  1,4,7,8,9,14,15,16,17,20

                                                                            U 60%  1,006. 1,4,8,14,17,19
                                                                            M 40%

                                                                            M     1,580.  1,4,14,16,17,18,19
                                                                            M     1,130.  1,4,14,16,17,18,19
                                                                            M    32,100.  1,4,17,18,19
                                                                            M    20,000.  1,4,17,18,19
                                                                            M    75,000.  1,4,17,18,19
                                                                            M     7,550.  1,4,17,18,19
                                                                            M       15.7  1,4,14,15,16,17,19
1968
1968
1968
1968
1968
1968
1968
M
M
M
M
H
M
M
2,420,
2,120.
235.
119.
11.
3,600.
2,865.
1,4,17,19
1,4,17,19
1,4,17,19
1,4,17,19
1,4,17,19
1,4,14,17,19
1,4,14,17,19
                                                                            C
                                                                            C
                                                                                 42,880.  l,4,ll(a),12,13,15,16,18,19
1.37
1.69
                                                                            M  2,339,800.
                                                                            M  2,768,000.
                                                                            M  3,061,100.
                                                                            M    16,634.
                                                                            M    25,020.
1,4,6,7,8,9,10,11(a),12,13,14,15,16,17,20
1,4,6,7,8,9,10,11(3),12,13,14,15,16,17,20
       1,4,6,18,19
       1,4,6,14,17,18,19(0)
       1,4,6,14,17,18,19(b)
       1,4,14,17,18,19
       1,4,14,17,18,19

-------
               Delaware Creek
               West Salt Creek
               West Bitter Creek
               East Bitter Creek
               Bedingfield
               Barrington
               Spring Creek No. 1
               Spring Creek No. 4
               Spring Creek No. 5
               Spring Creek No. 6
               Spring Creek No. 7
               Little Washita R. (c)
               Winter Creek
PENNSYLVANIA
  KLingerstown
131
311
511
512
513
514
5141
5144
5145
5146
5147
522
621
C-l
C-3
C-4
C-5
C-6
C-7
C-8
R-5
R-6
R-7
R-8
R-9
R-10
69.011
69.027
69.013
69.016
69.019
69.020
69.021
69.024
69.025
69.026
69.000
69.015
69.017
69.030
69.032
69.033
69.034
69.035
69.036
69.037
69.042
69.043
69.044
69.045
69.049
69.050
1962
1966
1962
1963
1964
1966
1966
1966
1966
1966
1973
1963
1963
1965
1965
1965
1965
1965
1965
1965
1966
1966
1966
1966
1971
1972
M
M
M
M
M
M
M
P
P
P
P(f)
M
M
C
C
C
C
C
C
C
P
P
P
P
P
P
25,660. 1,4,14,17,18,19
15,206. 1,4,14,17,18,19
38,020. 1,4,14,17,18,19
22,530 1,4,14,17,18,19
12,314. 1,4,14,17,18,19
7,225.6 ' ,4,6,14,17,18,19
4,064. A, 4, 6, 14, 17, 18, 19
1,456.6 1,4,6,14,17,18,19
252.8 1,4,6.14,17,18,19
761.6 1,4,6,14,17,18,19
2.2(g) 1,4,14,19
132,990. 1,4,14,17,18,19
21,310. 1,4,14,17,18,19
17.8 l,4,ll(d),14,15,16,17,19
44.3 l,4,ll(d),14,15,16,17,19
29.9 l,4,ll(d),14,15,16,17,19
12.8 1,4, ll(d), 14, 15,16,17, 19
13. l,4,ll(d),14,15,16,17,19
26.5 1, 4, ll(d), 14, 15,16,17, 19
27.3 l,4,ll(d) ,14, 15,16,17,19
23.7 l,4,ll(d),14,15,16,17,19
27.2 1, 4, ll(d), 14, 15,16, 17,19
19.2 l,4,ll(d),14,15,16,17,19
18.5 l,4,ll(d),14,15,16,17,19
9.30 l,4,ll(d),14,15,16,17,19
1.48 1,4,14,15,17,19
                (a)   The following types of data are collected at two locations: 7,8, and 9
                (b)   Data numbers 6,14,  and 17 apply to the reach between Anadarko and Alex.
                (c)   Three miles upstream  from USGS gage,  1952-63.
                (d)   Biweekly.
                (e)   Includes 9 Severe Storm  Project gages (Weather Bureau).
                (f)   Mostly in roadway.
                (g)   Estimated.
                Stehr Bros. Weir         E-38    16.006    1967      M     1,773.  1,4,8,9,ll{a),16,17,19
                (a)  Soil Moisture by neutron meter taken weekly or more often as needed.
TEXAS
  Riesel        D
                G
                W-l
                W-6
                Y
                Y-2
                Y-6
                Y-8
42.003
42.004
42.006
42.008
42.011
42.012
42.014
42.016
1938
1938
1937
1939
1937
1937
1939
1939
M
M
M
M
M
M
C
C
1,110.
4,380.
174.
42.4
309.
132.
16.3
20.8
1,4,7,8,9,10,14,16,17,19
1,4,7,8,9,10,14,16,17,19
1,4,7,8,9,10,14,15,16,17,19
1,4,7,8,9,10,14,15,16,17,19
1,4,7,8,9,10,14,15,16,17,18,19
1,4,7,8,9,10,14,15,16,17,18,19
1,4,7,8,9,10,14,15,16,17,18,19
1,4,7,8,9,10,14,15,16,17,19

-------
                y-l°                             42.017    1938      C       18.6  1,4,7,8,9,10,14,15,16,17,19
                *~13                             42'031    1969      C       11.3  1,4,7,8,9,10,14,15,16,17,19
                Y~"                             42.032    1970      C        5.6  1,4,7,8,9,10,14,15,16,17,19
                W'12                             42'033    !970      C        9.9  1,4,6,7,8,9,10,14,15,16,17,19
                "-13                             42-034    1970      C       11.3  1,4,6,7,8,9,10,14,15,16,17,19
                ??-"                            42'035    197°      P        3.25 1,4,6,7,8,9,10,ll(a) ,14,15,16,17,19
                f*:2°  ..    .  v                  42-036    19?0      P        3.21 1,4,6,7,8,9,10,ll{a) ,14,15,16,17,19
                (a)   boil  moisture measurements taken approximately biweekly.


VERMONT
  Danville      W-4                       67.004  1959      M      10,752   1,3,4,8,12,17,18,19,20
  0£ /"~R


NOTES


V  M = Mixed; P = Pasture or  Range; C = Cultivated;  W = Woods; U =
    Urban; H = Meadow

2/  not operated by  ARS but records readily available

3/  records interrupted for certain periods

•}/  R = recording; MR = non-recording or no records obtained

5/  legend for "types of data" colunn:

     1 - precipitation measured by recording and standard gages or
         recording gages only
     2 - precipitation, by standard gages only
     3 - snow, from  snow courses
     4 - runoff, continuous records
     5 - runoff, peak stages only, as from crest gage-.
     6 - ground water levels from wells
     7 - pan evaporation
     8 - air temperature,  maximum and minimum of recording
     9 - humidity, daily or oftener
    10 - solar radiation
    11 - soil moisture
    12 - frost depths
    13 - soil te-peratures
    14 - land use, annual  or oftener
    15 - condition of vegetative cover and field operations
    16 - detailed soil survey  available
    17 - topographic map available
    18 - profile and cross sections of channels available
    19 - sediment, by suspended sampling
    20 - sediment, by silt box  and/or Coshocton wheel

-------
Variable

A(MSECS)
           APPENDIX C
GLOSSARY OF PRINCIPAL VARIABLES

Type    Description

   R     Vector used in subroutine HYPROP for
         computing hydraulic properties of a reach.
         A (I) is the cross sectional area of
         subsection I.
A2E
A2S
AA(MNPSF)
AACC(MREA)
ABIND
AC(MNPSF)
ACCS(MNPSF)
ACFRAC(MNPSF)
ACTl(MNPSl)
         Cross sectional area at the downstream end
         of the current reach at the end of the
         time interval.

         Cross sectional area at the downstream end
         of the current reach at the start of the
         time interval.

         Calibration parameters used in estimating
         sediment transport concentrations by the
         method of Ackers and White.

         Vector for accumulating mean values of
         cross sectional area over a print interval
         for each reach.

         User parameter for computing scour of silt
         or clay.

         Calibration parameters used in estimating
         sediment transport concentrations by the
         method of Ackers and White.

         Vector for accumulating mean values of
         sediment discharge rate over a print interval
         for the current reach.
   R     ACFRAC(I)  is the cumulative fraction of
         material in a bed layer up to and including
         size fraction I.  This vector  is used in
         subroutine DIAM50 to determine the median
         particle size.

   R     Vector containing the thickness and composition
         of a temporary bed layer.  ACT1(1) contains
         the layer thickness:  the remaining elements
         contain the composition by size fraction.
               215
R
R
R
R
R
R

-------
Variable

ACT2(MNPS1)



ACTIVE

ACTHEW(MNPSl)



AM(MNPSF)



AN(MNPSF)



ARMF
ASCR
ATBLSZ
BASE(MREA)
BEDKNT



BEDSHR

BGNDAY

BGNHR
Type

   R




   R

   R




   R




   R




   R
   R
   R

   I

   I
BGNMON
Description

 Vector containing the thickness and composition
 of a temporary bed layer.  The structure of
 the vector is similar to ACTl.

 Current thickness of active layer.

 Vector containing the thickness and composition
 of a temporary bed layer.  The structure
 of the vector is similar to ACTl.

 Calibration parameters used in estimating
 sediment transport concentrations by the
 method of Ackers and White.

 Calibration parameters used in estimating
 sediment transport concentrations by the
 method of Ackers and White.

 User parameter to control armoring.  APMF
 in the value of the ratio (depth of armoring
 material/median diameter of armoring material)
 at which armoring prevents further scour.

 Parameter to control scour of cohesive
 materials.

 Time block size:  number of simulation
 intervals in a time block (system specification)

 Pointer into table of hydraulic properties
 TABLE.  BASE(NR) is the element number in
 TABLE at which information for reach NR
 starts.

 Maximum number of iterations to be used in
 estimating bed form thickness.

 Bed shear stress.

 Day on which simulation is to start.

 Hour on which simulation is to start.
 Simulation starts with the first simulation
 interval in the hour.  BGNHR is measured
 as clock time; i.e., the first hour of the
 day is zero, and the last is 23.

 Month on which simulation is to start.
                                    216

-------
Variable

BGNYR

BIND
BSCR



BULKD

CE(MNPSF)
Type    Description

   I     Year on which simulation is to start.

   R     User parameter; the percentage by weight
         of clay and silt in a bed layer which
         will just start to hinder the scour of
         conesionless sand fractions.

   R     Parameter to control scour of cohesive
         materials.

   R     The dry bulk density of the sediment.

   R     CE(I) is the sediment transport concentration
         of particle size I in the current reach at
         the end of the current time step.
COMIAY (MFvA,MIAY,MNPSF)  R
COMLJS1D (MNPSF)



CONTER(MREA)




CR1'SHR(2)



CS(MNPSF)




CSCR


CSTART (MREA, MNPSF)
CURSOR  (MFILE)
         COMLAY(NR, NL, NPSF) is the percentage
         composition by mass of particle fraction
         NPSF in bed layer NL of reach NR.
   R     COMLND(I) is the percentage composition of
         the land surface for particle size fraction I.

   R     CONTER(NR) is the mass continuity error
         for water over the simulation period for
         for reach NR.

   R     CRTSHR(I) is the critical shear stress for
         scour of cohesive material of size fraction I.

   R     CS(I) is the sediment transport concentration
         of particle size I in the current reach at
         the start of the current time step.

   R     Parameter to control scour of cohesive
         materials.

   R     CSTART  (NR, NP) is the sediment transport
         concentration of particle size fraction
         NP within reach NR at the start of a time
         block.

   I     For an uncompressed file I, CURSOR(I) is the
         displacement in file time intervals between
         the start of a record and the start of a
         new simulation time block.  For a compressed
         file I, CURSOR(I) is the displacement
         between the start of the file and the start
         of simulation in file time intervals.
                                     217

-------
Variable
LbUlM

DD(MSEGS,2)
DENS


DENM

DfiPi'H


DGR(MWPSF)
DIA (MNPSF)


DIAG(IU)
Type    Description

   R     Median diameter of mobile sand fractions.

   R     Median diameter of immobile sand fractions.

   I     Contains file numbers of LSRO and EROS
         data sets for each segment in the run.
         DD(NSEG,1)=LSRG file number for segment
                      NSEG
         DD(NSEG,2)=ERQS file number for segment
                      NSEG.

   R     Density of material comprising the sediment
         particles (user supplied),

   R     Density of water  (user supplied).

   R     Mean depth of flow obtained by dividing
         cross sectional area by top width.

   R     DGR(I) is the dimensionless grain size for
         size fraction I used for estimating sediment
         transport concentrations by the method
         of Ackers and White.

   R     D1A(I) is grain diameter of particle size
         fraction I.

   I     Flags for diagnostic output taking on
         values U or  1.
         DIAG(I)=0  ,1=1,.,.,10 no diagnostic output
         DIAG(1)=1  not used
         DIAG(2)=1  diagnostic output from subroutine
                      INITFL
         DIAG(3)=1  diagnostic output from subroutine
                      HYPROP
         DIAG(4)=1  diagnostic output from subroutine
                      RSORT
         DIAG(5)=1 diagnostic output from subroutine
                      REFIL1
         DIAG(6)=1 diagnostic output from subroutine
                      REFIL2
         DIAG(7)=1 diagnostic output from subroutine
                      REFIL3
         DIAG(8)=1 not used
         DIAG(9)=1 not used
         DIAG(10)= 1   diagnostic output from all the above
                      subroutines
                                   218

-------
Variable

DIFFUS
DISPL
DSCR
DSKDAT (TBLKSZ ,MNPSF3)
DSN

DUNE



EFLAG




ENDDAY

ENDHR




ENDMON

ENDSTO(MREA)


ENDYR

EPSBED


FACTER
Type    Description

   R     Option for diffuse load input of water only
         (LSEO) or water (LSRO) and sediment (EROS).
         DIFFUS=NO      no diffuse loads
         DIFFUS=YES     diffuse loads

   1*4   Number of simulation time intervals in the
         run.

   R     Parameter to control the scour of cohesive
         materials.

   R     Buffer to store hydraulic properties and
         sediment discharge rates prior to writing
         them to disk.  The first column of DSKDAT
         stores point flow rates, the second column
         flow depths and the remaining columns
         sediment discharge rates by particle size
         fraction.

   I     Fortran file number.

   R     User parameter; the maximum value of the
         ratio dune height/depth of flow.

   I     Flag used to report errors
         EFLAG=U    no errors encountered
         EFLAGX)    errors encountered

   I     Day on which simulation ends.

   I     Hour on which simulation ends.  Simulation
         stops after completion of the last simulation
         interval in the hour.

   I     Month on which simulation ends.

   R     ENDSTO(NR) is the volume of water stored in
         reach NR.

   I     Year on which simulation ends.

   R     Convergence criterion used in computing
         bed form thickness.

   R     Multiplication factor for converting EPOS
         into internal units of mass rate washoff/
         area of segment.
                                    219

-------
Variable

FACTFL



FACTLS




FACTSD



FLOTIM



FROUDE

FiN(MREA, MNPSF3)
GKAV

GREQ(MNPSF)



HDPUUT
1MINO
IMO2
IN
Type

   R
   R



   R



   R

   I
   R

   R
   R
Description

 Multipliation factor for converting point
 flow discharge into internal units.
 Multiplication factor for converting
 into internal units of flow rate/area of
 segment.

 Multiplication factor for converting point
 sediment input into internal units.

 Flow time in seconds through the current
 reach in the current time step.

 Froude number .

 Array to store Fortran file numbers of
 output time series to be written to disk.
 FTO(NR,l)=file number to which flow discharges
             from reach NR are to be written.
 FTN(NR,2)=file number to which flow depths in
             reach NR are to be written,
 FIN(NR,3)     ^  file numbers to which sedi-
 to            >=ment discharge rates from
 FTN(NR,MNPSF3))  reach NR are to be written.

 Gravitational acceleration (user supplied) .

 Vector for storing the cumulative composition
 of the land surface by particle size fraction.

 Parameter to control printout of hydraulic
 results.
 HDPOUT=U   no printout of hydraulic results
       =1   print mean values of depth, area,
            and discharge
       =2   print point values of depth, area,
            and discharge
            print both mean and point values
                                     =3
 Cumulative total within each time block
 of inflow minus outflow of water for the
 current reach for use in water balance
 calculations.

 The number of the largest mobile particle
 size fraction.
 Fortran file number for data input.
 as b.
                                              Implemented
                                      220

-------
Variable

1NFLCW (MREA)
Type    Description

   R     Vector used to store the total inflow of
         water to each reach during the simulation
         period.  The vector is used for water balance
         calculations.
1N1TPT(MNPTLD,MNPS1)     R
IGUT
KEYS(MFILE)
K1NV1S(12)
KNTHY
KNTSD
 KWU02
 KWuub
 KWb41
 KWbbl
 LAYCOM(MLAY,MNPSF)
         Contains initial values for flow and sediment
         point loads at the start of the current
         time block.  See further discussion under
         subroutine PLDAD in Section 7.3.3.

         Fortran file number for printed output of
         preparatory information and results of
         hydraulics calculations.  Implemented as 6.

         KEYS(I) is used to keep track of the time
         of the next item to be read from compressed
         file 1.  See further discussion under subroutine
         REFIL2 in Section 7.3.3.
   R     KINVlS(l) is the average value of kinematic
         viscosity for month I.

   1     Counter used to decide when we have
         accumulated output for the required number of
         intervals when printing out mean values
         from hydraulic calculations.

   L     Counter used to decide when we have accumulated
         output for the required number of intervals
         when printing out mean values from sediment
         calculations.

   I     Counts number of occurrences of warning message
         UU2.

   I     Counts number of occurrences of warning
         message OOb.

   I     Counts number of occurrences of warning
         message  b41.

   1     Counts number of occurrences of warning
         message  bbl.

   R     Vector used within the main program's reach
         loop to  store the bed composition of the
         current  reach.
                                      221

-------
Variable

LAYTHK (MIAY)




LEN(MREA)

LEV(MREA)




LEVEL
LEVSTK (MORDR)


LINEHY




LINESD




LOC(MCEOS)




MACC(MREA)




MASSED (MNPSF)


MASSIN (MNPSF)
Type    Description

   R     Vector used within the main program's
         reach loop to temporarily store the bed
         layer thicknesses of the current reach.

   R     LEN(NR) is the length of reach RCH(NR).

   I     Vector used internally in subroutines RSORT
         and GETSON to determine optional ordering
         of reaches.

   I     For the current cross section, LEVEL is the
         level number just below the water surface
         elevation at the end of the last time interval.
         In the current time interval, the search
         for the final water surface elevation starts
         at level LEVEL.  See further discussion
         under subroutine HY.PRQP in Section 7.3.3.

   I     Vector used internally in subroutine RSORI
         in determining optimal ordering of reaches.

   I     Counts number of lines of output from
         hydraulic caluclations for the control of
         paging and printing of headers.

   I     Counts number of lines of output from sediment
         calculations for the control of paging and
         the printing of headers.

   I     Vector used internally in subroutine HYPROP
         to compute hydraulic properties of a cross
         section.

   R     Vector for storing the cumulative sediment
         outflow from each reach summed over all particle
         size fractions.

   R     MASSED (I) is the mass of material of size
         fraction I in the top bed layer.

   R     MASSIN  (I) is the mass of material of size
         fraction I input to the current reach by
         point loads and by inflow from upstream
         reaches over the current time interval.
MAXPT
         Maximum length of vector RCHPT (system limit)

                                           /No.  of point \
                                        £, I  loads for
                                         =L \
                                      / No.  of reaches \ +
                                      Iwith  point loads J
                                      \                /
                                     222

-------
Variable

MAXPCH


MAXTRB




MCKQS




MFILE




MIAY


MLINES


MNPS1

MNPS2

MiSIPSF


MNPSF3

MNPTLD
Type

   I
MONMS(MREA,MNPSF)


MORDR


MPTS


MREA
   I

   I

   I


   I

   I
   R
Description

 Maximum number assigned to any reach by the
 user (system limit).
         Maximum length of vector RCHTRB (system limit).

                                        N** /—  tributary 1
                                        NR=1 N~ -aach NR
         Maximum number of points at which water
         surface and channel sides meet for any
         non-zero water surface elevation (system limit),
            ^   ----- -          . ^          »

 MAXTRB> Reaches with  \ + 2*  y   /seg. trii
       "~ \tributary seg./       m=l \to reacn
 Maximum Fortran file number containing diffuse
 or point loads to be accessed in this run
 (system limit).

 Maximum number of bed layers in any one
 reach (system limit).

 Maximum number of lines per page of printed
 output (user-defined).

 MNPS1 = MNPSF + 1

 MNPS2 = MNPSF + 2

 Maximum number of particle size fractions
 (system limit).

 MNPSF3 = MNPSF + 3

 Maximum number of point loads.  One point
 load is made up of a flow file and its
 associated sediment discharge files (system
 limit).

 Vector for accumulating the total monthly
 mass of sediment discharged from each reach.

 Maximum stream order for the channel network
 (system limit).

 Maximum number of points used to define any
 one cross section (system limit).

 Maximum number of reaches in the network
 (system limit).
                                        223

-------
Variable

MSECS


MSEGS

MSMON(MNPSF)
MSTOR
MSTORP
MSYR(MNPSF)
MTAD



MTVEC


MULT(MFILE)


NEXT(MREA)


NLAST


NLAY


NLAYER(MREA)


NLEVS (MREA)
Type    Description

   I     Maximum number of subsections in any one
         channel cross section (system limit).

   I     Maximum number of segments (system limit).

   R     Temporary vector used within the main
         program's reach loop for accumulating the
         total monthly mass of sediment discharged
         from the current reach.

   I     Length of vectors STOR and STORE (system
         limit).
         MSTOR > NSEGS * TBLKSZ

   I     Length of vector STORP  (system limit).
         MSTORP > (NPSF + 1)*(TBLKSZ + 1)

   R     Temporary vector used within the main
         program's reach loop for accumulating the
         total annual mass of sediment discharged
         from the current reach.

   I     Maximum length of the vector TABLE which
         stores hydraulic properties for the complete
         reach network (system limit).

   I     Maximum length of array TVEC (system limit).
         MTVEC > (NPSF + 1)*(TBLKSZ + 1)

   I     MULT(I) is the number of file time intervals
         of input file I in a simulation interval.

   I     Vector used internally in RSORT to determine
         optimal ordering of reaches.

   I     Number of simulation time intervals in
         last time block.

   I     Current number of bed layers in the
         current reach.

   I     NLAYER(NR) is the current number of bed
         layers in reach NR.

   I     NLEVS(NR)  is the number of levels in
         reach NR at which hydraulic section
         properties were calculated.  The levels
         correspond to the elevation of the break
                                     224

-------
Variable
Type    Description
NPSF




NPTLD



NREA

NSEGS

NSSEC (MSECS)
NTAB(MREA)




NTBLKS



NUM
ORDER (MREA)



ORDR

ORGD5U




ORGQ


ORGTHK
         points used to describe the section
         geometry.

   I     Number of particle size fractions in this
         run.  Particle size fraction 1 is the
         finest, NPSF is the coarsest.

   I     Number of point loads in this run.  One
         point load is defined as a flow file
         together with any associated sediment files.

   I     Number of channel reaches in run.

   I     Number of land segments in run.

   R     Vector used in subroutine HYPROP for
         computing the hydraulic properties of a
         reach.  NSSEC(I) is Manning's n for
         subsection I.

   I     NTAB(NR) is the input table number
         containing the geometric description
         of the cross section of reach NR.

   I     Number of time blocks in the simulation
         period.

   R     Multiplier for use in Manning's equation.
         Value depends on the units being used in
         simulation.
         NUM=1.0 for metric units (m/kg/s)
         NUM=1.49 for English units  (ft/lb/s)

   I     Vector used internally in subroutine RSORT to
         determine optimal ordering of reaches.

   I     Stream order of system being simulated.

   R     Median diameter of mobile sand fractions
         after the last computation of active
         layer characteristics.

   R     Flow rate at the last computation of
         active layer characteristics.

   R     Active layer thickness after the last
         computation of active layer
         characteristics.
                                      225

-------
Variable

ORGY


OOrFAC




OUTFLOW(MREA)
P(MSECS)
PCIMO
PCLXST
POINT(MPTS)
PRFREQ
PFOUT (MREA)
PRQTCT
PIDD(MNPTLD,MNPS2)
Type    Description

   R     Flow depth at the last computation of
         active layer characteristics.

   R     Multiplication factor applied to
         sediment discharge rates prior to
         print out (user supplied).

   R     Vector used to store the total outflow
         of water from each reach during the
         simulation period.  The vector is used
         for water balance calculations,

   R     Vector used in subroutine HYPROP for
         computing the hydraulic properties of
         a reach.  P(I) is the wetted perimeter
         of subsection I.

   R     Percentage of immobile material in
         the active layer.

   R     Percentage of clay and silt in the
         active layer or in a cohesive layer
         underlying the active layer.

   I     Vector used internally in subroutine
         HYPRQP to compute the hydraulic
         properties of a cross section.

   I     Controls frequency of printout.
         PRFREQ=-1  gives monthly output
         PRFREQ= 0  no printout
         PRFREQ >0  the value is the number of
                    simulation intervals in a printout
                    interval

   I     Vector storing printout options for each
         reach.
         PHOUT(NR)=0  no printout for reach NR
         PKDUT{NR)=1  printout required for reach NR

   R     User parameter; percentage of immobile
         sand which will just start to protect finer
         material from scour.

   I     Array of file numbers making up point loads.
         PTDD(NFf,l)=   file number for flow discharge
         PTDD(NPT,2}=0  if sediment files are in mass units
                    >0  if sediment files are in concentrate
                          units
                                     226

-------
Variable
Type    Description
PI'LOAD
PIVEC(MREA)
Q1E


Q1S


Q2E


Q2S


QACC (MREA)


QSTAJRT (NREA)



RBUFF(ATBLSZ)


RCH(MREA)
   R
   R
   R
   R
   R
   R
   R
PTDD(NPT,3)    )  file numbers for sediment discharges.
to             >-One file is used for each particle
PTDD(NPT,MNPS2)J  size fraction

where NPT=point load number

Option for point load input of water only
or water and sediment.
PTDOAD=NO
PTLQAD=YES
                                            no point loads
                                            point loads included
Vector used to associated reach number
with point loads.
PrVEC(NR)=0  no point load for reach NR
PTVEC(NR)>0  point load applied to reach NR.
               PTVEC(NR) is a pointer into vector
               RCHPr. See further discussion under
               subroutine PNTLD in Section 7.3.3.

Rate of inflow of water from upstream
reacnes at the end of the current time step.

Rate of inflow of water from upstream reaches
at the start of the current time step.

Rate of water discharge from the current
reach at the end of the current time step.

Rate of water discharge from the current reach
at the start of the current time step.

Vector for accumulating mean flow rates over
a print interval for reach.

QSTART(NR) is the flow rate at the end of
internal reach NR at the beginning of a
time block.

Buffer to read or write one record of
ATBLSZ values from or to a Fortran file.

RCH(NR) is the user defined reach number
corresponding to internal reach number NR.
Reaches are numbered internally in the order
in which they are given in the network
description.
RCHPr (MAXPT)
         Provides pointers into PTDD which contain
         Fortran file numbers for point loads.  FCHPT
                                         227

-------
Variable
Type    Description
BCHTRB(MAXTRB)
KECOMP
REL(MKEA)
RIPPLE
RTIND
SACC(MREA,MNPSF)
SCRCON(2)
SCREXP(2)
SDEBUG
         is entered with a pointer from the vector
         PTVEC.  See further discussion under subroutine
         PNTLD in Section 7.3.3.

    R     Vector containing the segment numbers and areas
         tributary to any reach.  RCHTRB is entered
         with a pointer from the vector TRBVEC.  See
         further discussion under subroutine
         DIFFLD in Section 7.3.3.

   I     Flag to control recomputation of active
         layer thicknesses and bed form type.
         RECOMP=0  active layer characteristics not
                     recomputed in this time interval
         RECOMP=1  recompute active layer characteristics
                     in this time interval

   I     Vector created by subroutine RSORT for
         determining the method in which output
         from a reach is to be stored prior to
         input to the next downstream reach.  See
         further discussion in Section 7.3.2.

   R     User parameter; ratio of maximum ripple
         height to mean diameter of sand particles
         in the bed form.

   I     Internal reach number for the last reach
         in the system.

   R     Vector for accumulating mean values of
         sediment discharge rates over a print interval
         for all reaches.

   R     SCRCON(l) is a parameter used in determining
         the scour rate of cohesive material of size
         fraction I.

   R     SCREXP(I) is a parameter used in determining
         the scour rate of cohesive material of size
         fraction I.

   1     Parameter to control printing of diagnostic
         output for sediment calculations.
         SDEBUG=U  no diagnostic printout
               =1  prints out bed composition and suspended
                                       228

-------
Variable
Type    Description
SDPGUT
                     sediment concentrations every interval
               =2  not used
               =3  print complete log of sediment calculations

         Parameter to control printout of sediment
         results.
         SPDOUT=0  no print out of sediment results
               =1  printout sediment discharge rates
               =2  printout both sediment status and
                     discharge rates
               =3  printout both sediment status and
                     discharge rates
SE
SEDMT
SEQ(MREA)



SETVEL(2)




SHEARV

SHEET(MNPSF)




SLOP(MREA)


sour


SPGRAV

SPW'IW
   R     Volume of water stored in the current
         reach at the end of the current time
         interval.

   R     Option for simulation of sediment transport.
         SEDMT=NO   sediment transport will not be
                      simulated (run is for hydraulics only)
         SEDMT=YES  both hydraulics and sediment transport
                      will be simulated

   l     Vector storing the reach numbers in
         the sequence in which they are to be
         used in the simulation.

   R     SETVEL(l) is the quiescent settling
         velocity for cohesive material of size
         fraction I.

   R     Shear velocity.

   R     Vector containing total dry weight of
         sediment from diffuse loads, input to
         a reach in the present time interval.

   R     SLOP(NR) is the bottom slope of reach
         RCH(NR).

   1     Fortran file number for printed output
         of sediment calculations.  Implemented as 7.

   R     Specific gravity of sediment material.

   R     Specific weight of water.
                                        22l)

-------
 Var iable

 SS


 SSEC(MPTS)
 STACK(MREA)



 STEADY
STOR(MSTOR)
STORE (MSTOR)
STORP (MSflORP)
T2E
TABLE (MTAD)
TBLKSZ
Type    Description

   R     Volume of water stored in the current reach
         at the start of the current time interval.

   I     Vector used internally in subroutines
         KCHIN and HYPROP for computing the hydraulic
         properties of a cross section.  SSEC(I)
         is the number of the subsection between
         points I and 1+1 on the cross section.

   I     Vector used internally in subroutine RSORT
         to determine optimal ordering of reaches.

   R     Sediment washoff rate (mass/unit time/unit
         area)  above which the composition of the
         sediment is the same as that of the land
         surface.

   R     Vector to store LSRO data for one
         simulation time block (TBLKSZ intervals)
         for each land segment in the run.  See
         further discussion under subroutine
         REFIL1 in Section 7.3.3.

   R     Vector to store EROS data for one
         simulation time block (TBLKSZ intervals)
         for each land segment in the run.  See
         further discussion under subroutine
         REFIL2 in Section 7.3.3.

   R     Vector to store all point load flow and
         sediment data for one simulation time
         block  for one reach (TBLKSZ + 1 values)
         See further discussion under subroutine
         REFIL3 in Section 7.3.3.

   R     Width  of water surface in the current
         reach  at the end of the current time
         interval.

   R     Table  containing the hydraulic properties
         of all reaches in the run.   Hydraulic
         properties stored are depth, top width,
         cross  sectional area,  and flow rate.
         further discussion under subroutine
         HYPRQP in Section 7.3.3.

   I      Time block size (units are  numbers of
         simulation intervals).
                                      230

-------
Variable

THKLAY (MREA,MLAY)
THRESH (MNPSF)




TIMIN

TIMINT

TRBVEC(MREA)
 TRIB (MREA)



 TVEC(MTVEC,MORDR)




 TW(MSECS)
 USERCH(MAXRCH)
 VECWO(MREA)
Type    Description

   R     THKLAY (NR,ML) is the thickness of bed
         layer ML in reach NR.  Layers are
         nunbered from 1 at the lowest or bottom
         bed layer to NLAYER(NR) for the highest
         or top bed layer.

   R     THRESH(I) is the sediment washoff rate
         (mass/unit time/unit area) above which
         particle size fraction I will start to
         move.

    1*4   Modeling or  simulation interval  (seconds).

    R    Modeling or  simulation interval  (seconds).

    I     Vector  to  associate  a  reach  number with  the
         diffuse loading  information  vector RCHTRB.
         TRBVEC(NR)=0 no diffuse  load  for reach  NR
         TRBVEC(NR)>0 the  value provides a pointer into
                        vector  8CHTRB.  See discussion
                        under DIFFLD  in Section 7.3.3.

    I     TRIB(NR)  is  the  user-defined reach number
         to which reach RCH(NR) is tributary.

    R    Transfer vector  for  flow  and sediment
         discharge rates.  See  further  discussion in
         Section 7.3.2.

    R    Vector  used  in subroutine HYPROP for
         computing the hydraulic properties of a
         reach.   TW(I)  is the top  width for
         subsection I.

    I     USERCH(REACH)  is the internal reach
         number  corresponding to the  user defined
         reach number REACH.

    I     Vector  created  in  subroutine RSOKT and
         used to control  the  transfer of
         information  within array  TVEC.
         VECNO(NR)  gives  the  column in TVEC from
         which input  to  reach NR  is to be taken
         and to  which output  from  reach NR is  to  be
         written.   See further  discussion in Section
         7.3.2.
                                      231

-------
Variable


VMON(MREA)



VYR(MREA)



X(MPTS)
Y(MPT3)
Y2E




Y2S




YACC (MREA)



YKMS(MREA,MNPSF)
Type    Description

   R     Vector for accumulating total monthly
         volume of water discharged from a reach.

   R     Vector for accumulating total annual volume
         of water discharged from a reach.

   R     Vector used to describe cross sectional
         geometry in subroutines HCHIN and HYPROP.
         X(I) contains the x coordinate of break
         point 1.

   R     Vector used to describe cross sectional
         geometry in subroutines RCHIN and HYPROP.
         Y(I) contains the y coordinate of break
         point I.

   R     Flow depth at the downstream end of the
         reach at the end of the current time
         interval.

   R     Flow depth at the downstream end of the
         reach at the start of the current time
         interval.

   R     Vector for accumulating mean values of
         depth over a print interval for each reach.

   R     Vector for accumulating the total annual
         mass of sediment discharged from each reach.
                                      232

-------
APPENDIX D.  SOUPJCE CODE
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c


c
c
c

c
c
c

c
c
c

c
c
c

c
c
c

c
c
c

c
c
c

c


f*******************************************************-*******
* *
* cli'DRAULIC ROUTING & SEDIMENT TRANSPORT IN NATURAL CHANNELS *
* *


DEVELOPED BY:
HVDROCOMP INC. ,
1502 PAGE MILL RD. ,
PALO ALTO,
CALIFORNIA 94301
(415-493-5522)

FOR:
U.S. ENVIRONMENTAL PROTECTION AGENCY,
ENVIRONMENTAL RESEARCH LABORATORY,
A7HSN'o,
GEORGIA 30601
(404-546-3581)


DECORATIONS

DIMENSIONS INDEPENDENT OF SYSTEM SIZE

INTEGER DIAG(IO)

REAL CRTSHR(2) ,KINVIS (12) ,SCRCON(2) ,SCREXP(2)
REAL SETVEL(2)

VECTORS WITH DIMENSION (ATBLS2)

REM RBUFFU2B)

VECTORS WITH DIMENSION (MAXPT)

INTEGER RCHPT(IO)

VECTORS WITH DIMENSION (MAXRCH)

INTEGER USERCH(SO)

VECT'733 WITH DIMENSION (MAXTRB)

REAL RCHTRB(150)

VECTORS WITH DIMENSION (MCROS)

INTEGER LOG (10)

VECTORS WITH DIMENSION (MFILE)

INTEGER CURSOR (40) ,KEYS (40) , MULT (40)

VECTORS WITH DIMENSION (MLAY)

REAL LAYTHK(5)

233
00004000
00005000
00006000
00007000
00008000
nriftnoftAn
uuuuy uuu
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
OG040COO
60041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000


-------
c
c

c
r-
*_
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
ARRAYS WITH DIMENSION  (MLAY,MNPSF)

REAL LAYCOM(5,9)

VECTORS WITH DIMENSION  (MNPSF)

REAL AA(9),AC(9),ACCS(9),ACFRAC(9),AM(9>,AN(9)
REAL CE(9),CS(9)
REAL COMLND(9),DIA(9),DGR(9),GREQ(9)
REAL MASSED(9),MASSIN(9),MSMON(9),MSYR(9)
REAL SHEET(9),THRESH(9)

VECTORS WITH DIMENSION  (MNPS1)

REAL ACTl(lO),ACT2(10),ACTNEW(10)

ARRAY WITH DIMENSION (MNPTLD,MNPS1)

REAL INITPT(4,10)

ARRAYS WITH DIMENSION  (MNPTLD,MNPS2)

INTEGER PTDD(4,11)

VECTORS WITH DIMENSION  (MORDR)

INTEGER LEVSTK(4)

VECTORS WITH DIMENSION  (MPTS)

INTEGER POINT(25),SSEC(25)

REAL X(25),Y(25)

VECTORS WITH DIMENSION  (MREA)

INTEGER BASE(15),LEV(15)
INTEGER NEXT(15) ,NLAYER(15) ,NLEVS{15) ,NTAB(15)
INTEGER ORDER(15) ,PRO'JT(15) ,PTVEC(15)
INTEGER RCH(15),REL(15),SEQ(15),STACK(15)
IK'TEGER TRIBC15) ,TRBVEC(15) ,VECNO(15)

REAL AACC(15), COMTEK(15),ENDSTO(15),INFLOW(15),LEN(15)
RSAL KACC(15),OUTFLO(15),QACC(15),QSTART(15),SLOP(15)
REAL VMON(15),VYR(15),YACC(15)

ARRAYS WITH DIMENSION  (MREA,MLAY)

REAL THKLAY(15,5)

ARRAYS WITH DIMENSION  (MREA,MLAY,MNPSF)

REAL COMLAY(15,5,9)

ARRAYS WITH DIMENSION  (MREA,MNPSF)

REAL CSTART(15,9),MONKS(15,9),SACC(15,9),YRMS(15,9)

VECTORS KITH DIMENSION'  (MSBCS)
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
OOOB4000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
0009BOOO
00099000
00100000
00101000
00102000
00103000
0010400C
001C5000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                       234

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
REAL A(5),NSSEC(5),P(5),TW(5)

ARRAYS WITH DIMENSION (2.MSEGS)

INTEGER DD(2,2)

VECTORS WITH DIMENSION (KSTOR)

REAL STOR{256},STORE(256)

VECTORS WITH DIMENSION (MSTORP)

REAL STORP(1290)

VECTORS WITH DIMENSION (MTAD)

REAL TABLE(1000)

ARRAYS WITH DIMENSION (MTVEC,MORDR)

REAL TVEC(1290,4)

ARRAYS WITH DIMENSION (TBLKSZ,MNPSF3)

REAL DSKDAT(128,12)

ARRAYS WITH DIMENSION (MREA,MNPSF3)

INTEGER FTN(15,12)
INTEGER ATBLSZ,BDAY,BEDKNT
INTEGER BGNDAY,BGNHR,BGNMON,BGNYR
INTEGER BHR,BMIN,BMON,BSEC,BYR
INTEGER DAY,DBAS,DSN
INTEGER EFLAG,ENDDAY,ENDHR,ENDMON,ENDYR
INTEGER FTNNNJ,HDPOUT,HR
INTEGER I,IBASE,IM02,IN,INTQ,INTQ2,INTV,IOUT
INTEGER J,K,KNTHY,KHTSD,KOUNTH,KOUNTS
INTEGER KW002,KW005,KW541,KW551
INTEGER LEVEL,LINEHY,LINESD
INTEGER MAXPT,MAXRCH,MAXTRB
INTEGER MCROS,MFILE,MIN,MLAY,MLINES
INTEGER MNPS1,MNPS2,MNPSF,MNPSF3
INTEGER MNPTLD,MON,MORDR,MPTS,MREA,MSECS,MSEGS
INTEGER MSTOR,MSTORP,KTAD,MTVEC
INTEGE R NBAS,NEWLY,NINTS,NLAST,NLAY,NLEV,NN
INTEGER NPSF,NPSF1,NPSFP3,NPTLD,NR,NREA
INTEGER NSEGS,NSG,NTBLK,NTBLKS,NTVEC,NVEC
INTEGER ORDR,PBAS,PRFREQ,PRINT,PRINTS,PRMONH,PRMONS
INTEGER PRYRH.PRYRS
INTEGER REACH,RECOMP,RTIND
INTEGER SEC,SEG,SDEBOG,SDPOUT,SOUT
INTEGER TBLKSZ,VISMON,YR
      REAL A2E,A2S,ABIND
      REAL ACCA,ACCQ,ACCY,ACTIVE,AMEAN,ARMF,ASCR
      REAL BEDSHR,BIND,BSCR,BOLKD
      REAL CONER,CSCR,CSTOTL,CUML
      REAL DENS,DENW,DEPTH,DIFF,DIFFUS,DISCH,DSCR,DUNE
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
00179000
00180000
00181000
00182000
00183000
                                       235

-------
REAL D50.D50IM
REAL EPSBED
REAL FACTER, FACTFL, FACTLS , FACTSD, FLOTIM , FROUDE
RSAL GRAV,IKINO,IN?L,INFLO
KE=,L LENGTH, LSFAC
REAL NO , NUM , ORGD50 , ORGQ , ORGTHK , ORGY , OUTFAC , OUTFL
PEAL PCIMO,PCLYST,PROTCT,PTLOAD
P.EAL Q1E,Q1S,Q2E,Q2S ,QMEAN
REAL RIPPLE
RE At. SAREA, SE , SED, SEDMT, SEDST , SHEARV , SLOPE
REAL SPGRAV , SPWTW , 3S , SSTART , STEADY , SUM
REAL SEDO
J'.EAL T2E,TIMINT,ULTACT
KEAL VEL,VISC,VOLMON,VOLYR
REAL Y2E,Y2S,YES,YMEAN
C
c
INTEG£R*4 DISPL,TIMIN
C
C DATA STATEMENTS
C
DATA NO/' NO '/.YES/1 YES1/
C
C
C WRITE FORMATS
C
2000 FORMAT ('!' , 'THE SYSTEM IS CONFIGURED AS FOLLOWS :')
2010 FORMAT ( '0 ' ,
1 'MAX. NO. OF REACHES (MREA) «= ,I5,/,1X,
2 'MAX. NO. OF SEGMENTS (MSEGS) - ,I5,/,1X,
3 'TIME BLOCK SIZE (ATBLSZ) - ,I5,/,1X,
4 'MAX. NO. PARTICLE SIZE FRACTIONS (MNPSF) = ,I5,/,1X,
5 'MAX. NO. SUB-SECTIONS PER X-SECTION (MSECS) = ,I5,/,1X,
6 'MAX. NO. POINTS PER X-SECTION (MPTS) - ,I5,/,1X,
7 'MAX. NO. CROSSINGS PER X-SECTION (MCROS) » ,I5,/,1X,
8 'M.'.X. TABLE LENGTH FOR HYDRAULIC PROPS (MTAD)= ,I5,/,1X,
9 'MAX. STREAM ORDER (MORDR) = ,I5,/,1X,
1 'MAX. LENGTH VECTOR RCHTRB (MAXTRB) * ',15)
2020 FORMAT (IX,
1 'MAX. NO. POINT LOADS (MNPTLD) - ,I5,/,1X,
2 'MAX. LENGTH VECTOR RCHPT (MAXPT) • ,I5,/,1X,
3 'MAX. FORTRAN FILE NUMBER (MFILE) •> ,I5,/,1X,
t 'MAX. REACH NUMBER (MAXRCH) * ,I5,/,1X,
5 'MAX. LENGTK VECTORS STOR, STORE (MSTOR) - ,I5,/,lX,
6 'MAX. LENGTH ARRAY TVEC (MTVEC) « ,I5,/,1X,
7 'MAX. LENGTH VECTOR STORP (MSTORP) » ,I5,/,1X,
8 'MAX. NO. OF BED LAYERS (MLAY) - ,15 )
2100 FORMAT ( '0' , • +++ERROR 001+++ RUN ABANDONED BECAUSE OF PRIOR ',
i ' ERRORS ' )
2120 FORMATt '0' ,'NO PRINT OUT HAS BEEN REQUESTED FOR THIS RUN ')
2130 FORMAT( '0 ', 'NO HYDRAULIC OUTPUT HAS BEEN REQUESTED FOR THIS RUN')
2140 FORMAT ( '0' ,'NO SEDIMENT OUTPUT HAE BEEN REQUESTED FOR THIS RUN')
21 SO FORMAT ( '1 ', 'SIMULATION STARTS ',I4,l/1,l2,1/'fl2/l/',I2)
2160 FORMAT( '0' , '+++WARNING OC2+++FLOK ROUTING CONTINUITY ERROR ',
1 'IN REACH ',15,' IS > (1 . OE-05*INFLOW) ',/,!X,
2 '; CONTINUITY ERROR IS ',E12.5)
2170 FORMAT (' 0 ',' +++ERROR 003-M-+VECTOR JUST FILLED (',15,') AND '.
1 'THAT SPECIFIED FOR RELEASE f',15,1) ARE ',
2 'DISSIMILAR')
2180 FORMAT{ '0' ,/, '0 ', 'CONTINUITY CHECKS FOR THIS RUN:1,/, IX,
00184000
00185000
00186000
00167000
00188000
00189000
00190000
00191000
00192000
00193000
00194000
00195000
00196000
00197000
00198000
00199000
00200000
00201000
00202000
00203000
00204000
00205000
00206000
00207000
00208000
00209000
00210000
00211000
00212000
00213000
00214000
00215000
00216000
00217000
00218000
00219000
00220000
00221000
00222000
00223000
00224000
00225000
00226000
00227000
00228000
00229000
00230000
00231000
00232000
00233000
00234000
00235000
00236000
00237000
00238000
00239000
00240000
00241000
00242000
00243000
236

-------
     1
     2
     3
 2190 FORMAT(IX
 2200 FORMATCO
     1
 2? 10 FORMATCO
 27:>0 FORMATCO
     1
 2230 FORMATCO

     2
 2240 FORMATCO
     1
     2
 2250 FORMATC1
     1
 22SO FORMATCO
     1
 2290 FORMATCO
     I1  IF THEY
 2310 FORMAT('0
 2320 FORMATCO
 2330 FORMATCO
 2340 FORMATCO
C
  1 REACH',8X,'INFLOW' ,7X,'OUTFLOW' ,8X, 'ENDING' ,4X,
  'CONTINUITY',/,lX,
  4CIX, 'STORAGE' ,6X, 'ERROR')
,I5,4(2X,E12.5))
','N.B. STARTING  STORAGES WERE  PRINTED OUT  AT  START',
  1  OF  RUN')
',/,'0','END  OF SIMULATION")
1 , ' -H++ERROR  004+++  FROUDE NUMBER EXCEEDS  0.8  ',
  '  ; FROUDE  «•  ' ,E12. 5)
','DISCHARGE  CHANGED BY MORE THAN  10%  ',
  '  - RECOMPUTE ACTIVE LAYER CHARACTERISTICS  ',/,lX,
  'ORIGINAL Q-',E12.5,' NEW 0 =',E12.5)
','DEPTH  CHANGED  BY MORE THAN 10%  -  ',
  'RECOMPUTE  ACTIVE LAYER CHARACTERISTICS',/,IX,
  'ORIGINAL DEPTH =',E12.5,' NEW DEPTH  =',E12.5)
','SEDIMENT TRANSPORT CALCULATIONS FOR REACH  ',
  15,'  AT TIME  M5,'/1 ,12,'/M2,'/' ,12,'/',I2,'/',12)
1,'+++WARNING  005+-H-IN REACH  ',15,'  FLOW  TIME  '.F10.1,
  1  IS  LESS THAN  MODELING INTERVAL ')
','NOTE THAT WARNING MESSAGES HAVE BEEN SUPPRESSED',/,IX
 OCCURRED MORE THAN FIVE TIMES  ')
','WARNING  002 WAS  ISSUED  ',16,' TIMES  ')
','WARNING  005 WAS  ISSUED  ',16,' TIMES  ')
','WARNING  541 WAS  ISSUED  ',16,' TIMES  ')
','WARNING  551 WAS  ISSUED  ',16,' TIMES  ')
C****************************************<
C
C     ERROR FLAG
C
      EFLAG «0
C
C     LOGICAL DEVICE NUMBERS
C
                                            ***********



C
C
C




















IN "5
IOUT =6
SOUT =7

SET MAXIMUM SYSTEM SIZE

MREA =15
MSEGS "2
ATBLSZ -128
MHPSP -9
MNPS1 -10
HNPS2 "11
MNPSF3 -12
MSECS »5
MPTS =25
MCROS -10
MTAD -1000
MORDR =4
MAXTRB -150
MNPTLD =4
MAXPT "10
MFILE -40
MAXRCH -50
MSTOR *256
MTVEC -1290
KSTORP =1290
 00244000
 00245000
 00246000
 00247000
 00248000
 00249000
 00250000
 00251000
 00252000
 00253000
 00254000
 00255000
 00256000
 00257000
 00258000
 O025')000
 002 •".•: 000
 002'JiOOO
 00262000
,00263000
 00264000
 00265000
 00266000
 00267000
 00268000
 00269000
 00270000
 00271000
 00272000
 00273000
 00274000
 00275000
 00276000
 00277000
 00278000
 00279000
 00280000
 00281000
 00282000
 00283000
 00284000
 00285000
 0028600C
 00287000
 00288000
 00289000
 00290000
 00291000
 00292000
 00293000
 00294000
 00295000
 00296000
 00297000
 00298000
 00299000
 00300000
 00301000
 00302000
 00303000
                                       237

-------


c
c


c
c
c




c
c
c



c
c
r
V





c
c




c
r
W
r
*v
C
c

MLAY =5

FRELIK. INITIALIZATION
VJ TJ p r* _ A
N. Of — U
SDPOUT =0
DO 10 I = 1,MREA
THKLAY{I,1) = -999.
10 CONTINUE
DO 20 I «= 1,MAXRCH
USERCH(I) =0
20 CONTINUE
INITIALIZE ALL WARNING MESSAGE COUNTERS
KW002 =0
KW005 =0
KW541 =0
KW551 =0

TITLE BOX
CALL TBOX(IOUT)
WRITE OUT SYSTEM SIZE

WRITE(IOUT,2000)
WRITE (IOUT, 2010) MREA,MSEGS , ATBLSZ ,MNPSF ,MSECS,MPTS,
1 MCROS,MTAD,MORDR,MAXTRB
VRITE(IOUT,2020) MNPTLD,MAXPT,MFILE ,MAXRCH,MSTOR,
1 MTVEC,MSTORP,MLAY

K'Jfi INFORMATION

CALL INFO( ATBLSZ, IN, IOUT ,MREA, MSEGS, NO, YES,
1 EFLAG,
2 BGNHR , BGNDAY , BGNMON , BGNYR , ENDHR , ENDDAY , ENDMON , ENDYR ,
3 HDPOUT , MLI NES , NRE A , NSEGS , PRFREQ , TBLKS Z ,
4 TIMINT,DIAG,DIFFUS, DISK, HUM, PTLOAD, SEDKT, WARN )
T-IMIN =TIMINT

REACH NETWORK AND HYDRAULIC ROUTING INFORMATION
CfvLL RCHIN( IN,IOUT,MAXRCH,MCROS,MORDR,
1 MPTS , MSECS , MTAD , NREA , DIAG , NUM ,
2 EFLAG, LEV, LEVSTK,LOC, NEXT,
3 ORDER, POINT, STACK,
4 SSEC,A,NSSEC,P,TW,X,Y,
5 ORDR,RTIND,BASE,
6 NLEVS,NTAB,PROUT,RCH,REL,SEQ,TRIB,USERCH,
7 VECNO , LEN , QSTART , SLOP, TABLE, ENDSTO )

GET INFORMATION TO SIMULATE SEDIMENT
IF (SEDMT.EQ.NO) GO TO 50
GET SEDIMENT INFORMATION

CALL SEDINF( IN , IOUI ,MAXRCH, MLAY, MNPSF,MREA,
00304000
00305000
00306000
00307000
0030BOOO
00309000
00310000
00311000
00312000
00313000
00314000
00315000
00316000
00317000
00318000
00319000
00320000
00321000
00322000
00323000
00324000
00325000
00326000
00327000
00328000
00329000
00330000
00331000
00332000
00333000
00334000
00335000
00336000
00337000
00338000
00339000
00340000
00341000
00342000
00343000
00344000
00345000
00346000
00347000
00348000
00349000
00350000
00351000
00352000
00353000
00354000
00355000
00356000
00357000
00358000
00359000
00360000
00361000
00362000
00363000
238

-------
c
c
c
c
c
c
c
c
c
 c
 c
 c
  1            NREA,RCH,USERCH,
  2               EFLAG,
  3               BEDKNT,NPSF,SDEBUG,SDPOUT,NLAYER,
  4            ABIND,ARMF,BIND,BULKD,DENS,DENW,DIFFUS,DUNE,
  5            EPSBED,GRAV,OUTFAC,PROTCT,RIPPLE,STEADY,
  6            CSTART,COMLAV,COMLND,CRTSHR,DIA,
  7            KINVIS,SCRCON,SCREXP,THKLAY,THRESH  )
50 CONTINUE

   PERFORM CHECKS ON VARIABLES WHOSE SIZE DEPEND
   ON WHETHER SEDIMENT IS BEING SIMULATED

   NTVEC IS LENGTH OF TRANSFER VECTOR TVEC

   NPSF1 - NPSF +1
   NPSFP3 « NPSF 4 3
   NTVEC - NPSF1*(TBLKSZ +1)
   IF  (NTVEC.GT.MTVEC)
   1    CALL KILL(14,EFLAG,IOUT,NTVEC,KTVEC)

   GET POINT & DIFFUSE  LOAD  INFORMATION

   CALL LOADIN(   BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON,
 C
 C
 C
     1
     2
     3
     4
     5
     6
     7
     8
               ENDYR,IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE,
               MNPS 2,MNPTLD,NPSF,NREA,NSEGS,
               TBLKSZ,TIMIN,DIAG,USERCH,
               DIFFUS,NO,PTLOAD,SEDMT,YES,
                   EFLAG,RBUFF,
                   NPTLD,CURSOR,DD,KEYS,MULT,PTDD,PTVEC,
               RCHPT,TRBVEC,
               FACTER,FACTFL,FACTLS,FACTSD,RCHTRB     )
    ANALYSE PRINT OUT REQUESTS
    DO 150 NR - 1,NREA
       IF (PROUT(NR).NE.O)  GO TO 160
150 CONTINUE

    NO OUTPUT
 C
 C
 c
       HDPOUT
       SDPOUT
    INFORMATORY MESSAGES RE. OUTPUT REQUESTED

160 CONTINUE
    IF (HDPOUT.GT.O) GO TO 120
       IF  (SDPOUT.GT.O) GO TO 130
          WRITE(IOUT,2120)
          GO TO 140
   130    WRITE(IOUT,2130)
          GO TO 140

   120 IF(SDPOUT.EQ.O) WRITE(IOUT,2140)
   140 CONTINUE

       GENERAL INITIALIZATION - DATA STORAGE VARIABLES

       DO 70 I - 1,MNPTLD
00364000
00365000
00366000
00367000
00368000
00369000
00370000
00371000
00372000
00373000
00374000
00375000
00376000
00377000
00378000
00379000
00380000
00381000
00382000
00383000
00384000
00385000
00386000
00387000
00386000
00389000
00390000
 00391000
 00392000
 00393000
 00394000
 00395000
 00396000
 00397000
 00398000
 00399000
 00400000
 00401000
 00402000
 00403000
 00404000
 00405000
 00406000
 00407000
 00408000
 00409000
 00410000
 00411000
 00412000
 00413000
 00414000
 00415000
 00416000
 00417000
 00418000
 00419000
 00420000
 00421000
 00422000
 00423000
                                         239

-------
c
c
c
c
         DO 70 0= 1.MNPS1
            INITPT(I,J) = 0.
   70 CONTINUE

      DO 90 I = 1,MSTOP,
         STOR(I) = 0.
         STORE(I) = 0.
   90 CONTINUE

      DO 100 I = l.KSTORP
         ETORP(I) = 0.
  100 CONTINUE
C
C
C
c
c
c
c
c
    INITIALIZE HYDRAULIC VARIABLES

    DO 80 I » 1,NREA
       INFLOW (I)  =0.
       OUTFLO(I)  =0.
       CONTER(I)  =0.
       YACC(I)  =0.
       AACC(I)  =0.
       QACC(I)  ~ 0.
       VMON(I)  =0.
       VYR{I) =0.
 80 CONTINUE

    IF DISK OUTPUT HAS BEEN REQUESTED, THEN READ THE FILE
     NUMBERS AND WRITE THE APPROPRIATE HEADERS TO THOSE FILES.

    IF (DISK. EQ. NO) GO TO 60
       CALL PILEIN(   BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,
   1               ENDMON , EHDYR , IN , IOUT , MAXRCH , HNPS F3 , MREA ,
   2               NPSFP3,NREA,TBLKSZ,TIMIN,
   3               FTN,RCH,USERCH   )
 60 CONTINUE

    IF (SED!«.T.EQ.NO) GO TO 190

       PRELIMINARY CALCS & INITIALIZATION FOR SEDIMENT RUN
       GREQ - CULMULA.TIVE COMPOSITION OF LAND SURFACE

       SUM =0.
       DO 170 I = 2,NPSF
          SUM = SUM +COMLND(I -1)
          GREQ (I) « 1. -SUM
       CONTINUE
  170
180
         DO 180 I •= 1,NREA
            MACC(I) «0.
            DO 180 J •* 1,NPSF
               SACC(I,J)  •= 0.
               MONMS(I,J)  =0.
               YRMS(I,J)  =0.
         CONTINUE
       SPGRAV
       SPWTW =
       VISMON
       ASCR =
                = DENS/DENW
                 DENW*GRAV
                «0
                (ABIND -1 . ) *BIND/ (1 .  -BIND)
00424000
00425000
00426000
00427000
00428000
00429000
00430000
00431000
00432000
00433000
00434000
00435000
00436000
00437000
00438000
00439000
00440000
00441000
00442000
00443000
00444000
00445000
00446000
00447000
00448000
00449000
00450000
00451000
00452000
00453000
00454000
00455000
00456000
00457000
00458000
00459000
00460000
00461000
00462000
00463000
00464000
00465000
00466000
00467000
00468000
00469000
00470000
00471000
00472000
00473000
00474000
00475000
00476000
00477000
00478000
00479000
00480000
00481000
00482000
00483000
                                      240

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
       BSCR =1.0  -ASCR
       D5CR =  !./(!•  - BIND)
       CSCR =1.0  -DSCR

       SET REFERENCE  VALUES USED  IN CHECKING FOB COMPUTATION
       OF ACTIVE THICKNESS CALCS

       ORGQ =0.
       ORGY =0.
       OI'GTHK  =0.
       OKGD50  =0.
       ORGTHK  =0.
190 CONTINUE

    DETERMINE  NO.  OF  TIME  BLOCKS  FOR  THIS  RUN  AND
    LENGTH OF  LAST TIME  BLOCK

    FIND DISPLACEMENT (HOURS)  BETWEEN START AND END  DATES

    CALL OFFST(    BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON,
   1           ENDYR,IOUT,
   2              EFLAG,
   3              DISPL   )

    ADD 1 HOUR BECAUSE WE  SIMULATE TO END (NOT START)  OF LAST
    HOUR OF  PERIOD.
    CONVERT  DISPL  FROM HOURS  TO TIME  INTERVAL  UNITS
 C
 C
 C
 C
 C
 c
 c
 c
 c
 c
 c
 c
 c
 c
 c
 c
    DISPL - DISPL +1
    DISPL - DISPL*3600/TIMIN
    NTBLKS * DISPL/TBLKSZ

    NLAST IS 4INTERVALS IN  LAST TIME BLOCK

    NLAST - DISPL -NTBLKS*TBLKSZ
    IF  (NLAST.KE.O) NTBLKS - NTBLKS +1
    IF  {NLAST.EQ.O) NLAST * TBLKSZ

    SET DATE & TIME FOR START OF FIRST TIME BLOCK
       BYR «•
       BMON
       BDAY
       BHR =
       BMIN
       BSEC
          BGNYR
          = BCNMON
          » BGNDAY
          BGNHR
          - 0
          •0
    COUNTERS USED TO DECIDE WHEN WE HAVE ACCUMULATED OUTPUT
    FOR THE REQUIRED NO OF INTERVALS WHEN PRINTING OUT
    MEAN VALUES
    KNTHY, KNTSD REFER TO HYDRAULIC & SEDIMENT RESP.
    KOUNTH, KOUNTS ARE VALUES AT START OF CURRENT TIME BLOCK

    KXTHY  "0
    KS'TSD  -0
    KOUNTH =0
    KOUNTS -0

    SET LINE COUNTERS FOR OUTPUT
00484000
00485000
00486000
00487000
00488000
00489000
00490000
00491000
00492000
00493000
00494000
00495000
00496000
00497000
00498000
00499000
00500000
00501000
00502000
00503000
00504000
00505000
00506000
00507000
00508000
00509000
00510000
00511000
00512000
00513000
00514000
00515000
00516000
00517000
00518000
00519000
00520000
00521000
00522000
 00523000
 00524000
 00525000
 00526000
 00527000
 0052BOOO
 00529000
 00530000
 00531000
 00532000
 00533000
 00534000
 00535000
 00536000
 00537000
 0053BOOO
 00539000
 00540000
 00541000
 00542000
 00543000
                                        241

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
    LINEHY ---0
    LINESD =0

    CHECK FOR ERRORS

    IF (EFLAG.EQ.O)  GO TO 110
       WRITE(IOUT,2100)
       STOP
110 CONTINUE
    WRITE(IOUT,2150)  BGNYR,BGNMON,BGNDAY,BGNHR

    PREPARATION  COMPLETE  - NOW  READY  TO  START SIMULATION
    *******START TIME BLOCK LOOP  ***********************

    DO 200 NTBLK = 1,NTBLKS

       MINTS  IS  NO.  INTERVALS TO  BE SIMULATED IN  THIS BLOCK
C
C
c
  210
  220

  230
  240
         HINTS = TBLKSZ
         IF (NTBLK.EQ.NT3LKS) HINTS
                                    NLAST
C
C
C
       CHECK FOR  DIFFUSE  LOADING
       FILL INPUT STORES  KITH  LSRO FOR 1  TIME  BLOCK

       IF (DIFFUS.EQ.NO)  GO  TO 230
          DO 210  I -  l.NSEGS
             IBASE =  (I -1)*TBLKSZ
             DSN  - DD(1,I)
             CALL REFILK   DIAG(5),DSN,IBASE,IOUT,MSTOR,MULT(DSN),
                         TBLKSZ,
                            CURSOR(DSN),RBUFF,
                            STOR    )
          CONTINUE

          FILL  INPUT  STORE WITH EROS  FOR  1 TIME  BLOCK

          IF (SEDKT.EQ.NO) GO  TO  230
             DO 220 I  = 1,NSEGS
               IBASE  =  (I -1)*TBLKSZ
               DSN =  DDC2,I)
               IF (DSN.EQ.O)  GO  TO 220
                   CALL REFIL2(   CURSOR(DSN),DIAG(6),DSN,IBASE,
                               IOUT,MSTOR,MULT(DSN),NTBLK,TBLKSZ,
                                  KEYS(DSN),RBUFF,
                                  STORE    )
             CONTINUE

       CONTINUE

       TVEC(  )  ARE A  SET  OF  VECTORS USED  TO  TRANSFER FLOW
       AND SEDIMENT DATA  FROM  REACH TO REACH.
       START WITH TVEC EMPTY

       DO 240 I - 1,ORDR
          DO 240  J =  1,NTVEC
             TVEC(J,I) =  0.
       CONTINUE

                    START REACH  LOOP  ************************
00544000
00545000
00546000
00547000
00548000
00549000
00550000
00551000
00552000
00553000
00554000
00555000
00556000
00557000
00558000
00559000
00560000
00561000
00562000
00563000
00564000
00565000
00566000
00567000
00568000
00569000
00570000
00571000
00572000
00573000
00574000
00575000
00576000
00577000
00578000
00579000
00580000
00581000
00582000
00583000
00584000
00585000
00586000
00587000
00588000
00589000
00590000
00591000
00592000
00593000
00594000
00595000
00596000
00597000
00598000
00599000
00600000
00601000
00602000
00603000
                                      242

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
  320
     1
     2
     3
     4
     5
C
C
C
 c
 c
 c
 c
 c
 c
 c
 c
 c
   ...
   330
DO 300 NN » 1,NREA

   NR IS THE INTERNAL* OF THIS REACH

   N?. =3F.Q(NN)

   FILL INPUT STORE WITH POINT LOADS FOR THIS REACH.
   IBASE «0 IF NO POINT LOAD FOR THIS REACH

   PBAS =0
   IF (PTLOAD.EQ.NO) GO TO 320
      PBAS - PTVEC(NR)
      IF (PBAS.EQ.O) GO TO 320
         CALL PLOAD(   PBAS,IOUT,MAXPT,MFILE,MNPS1,MNPS2,
                    MNPTLD,MSTORP,NINTS,NPSF,NTBLK,TBLKSZ,DIAG
                    MULT,PTDD,RCHPT,FACTFL,FACTSD,NO,
                    SEDMT,YES,INITPT,
                       CURSOR,RBUFF,
                       STORP  )
   CONTINUE

   FIND BASE ADDRESS FOR DIFFUSE LOADS

   DBAS * TRBVEC(NR)

   ASSIGN REACH PARAMETERS FOR HYDRAULICS

   REACH -RCH(NR)
   LENGTH -LEN(NR)
   SLOPE "SLOP(NR)
   IBASE -BASE(NR)
   NLEV eNLEVS(NR)
   NVEC eVECNO(NR)
   PRINT -PROUT(HR)
   PRINTS " PRINT
   IF (HDPOUT.EQ.O) PRINT "0
   IF (PRINT.EQ.O)  GO TO 330

      SET PRINT RELATED COUNTERS &  VARIABLES  FOR HYDRAULICS

      KNTHY -KOUNTH
      ACCY -YACC(NR)
      ACCQ «QACC(NR)
      ACCA -AACC(NR)
      CUrtL »  MACC(NR)
      VOLMON  =VMON(NR)
      VOLYR -VYR(NR)
      PRYRH -BYR
      PRMONH  "BMON
   CONTINUE

   FOR A TERMINAL REACH WE  STORE OUTPUT TEMPORARILY
   IN THE LAST AVAILABLE VECTOR

   IF  (NVEC.GT.1000)  NVEC -ORDR

   FIND  STARTING CONDITIONS FOR THIS  REACH  IN THIS  TIME
   BLOCK.  FOR HYDRAULICS WITH KINEMATIC ROUTING, VALUES
   OF A  & T ONLY HAVE MEANING AT DOWNSTREAM  END.
   NAME  CONVENTION:
 00604000
 00605000
 00606000
 00607000
 00608000
 00509000
 00610000
 00611000
 00612000
 00613000
 00614000
 00615000
 00616000
 00617000
,00618000
 00619000
 00620000
 00621000
 00622000
 00623000
 00624000
 00625000
 00626000
 00627000
 00628000
 00629000
 00630000
 00631000
 00632000
 00633000
 00634000
 00635000
 00636000
 00637000
 00636000
 00639000
 00640000
 00641000
 00642000
 00643000
 00644000
 00645000
 00646000
 00647000
 00648000
 00649000
 00650000
 00651000
 00652000
 00653000
 00654000
 00655000
 00656000
 00657000
 00658000
 00659000
 00660000
 00661000
 00662000
 00663000
                                      243

-------
c
c
c
c
c
c
c
c
c
c
c
  340
  350
C
C
c
c
  360
C
c
c
c
c
c
  370

  380
       X1S - X AT U/S END AT START OF INTERVAL
       X1E - X AT U/S  "  "    END   "
       X2S - X AT D/S  "  "   START  "   "
       X2E - X AT D/S  "  "    END   "

       Q2S = QSTART(NR)
       Q1S =0.
       IF (NVEC.NE.ORDR)
1         015 = TVEC(1,NVEC)
       CALL STORGE(   IBASE,IOUT,KTAD,NLEV,REACH,LENGTH,
1                  Q2S,TABLE,
2                     LEVEL,SS,T2E,Y2S  )
       A2S - SS/LENGTH
       INFL = 0.
       INFLO = 0.
       IMINO * 0.
       OUTFL = 0.
       SSTART = SS

       SET UP FOR SEDMT CALCS FOR THIS REACH THIS TIME BLOCK

       IF (SEDMT.EQ.NO)  GO TO 390
          IF  (SDPOUT.EQ.O)  PRINTS «0
          I?  (PRINTS.EQ.O)  GO TO 350

             SET PRINT RELATED VARIABLES FOR SEDIMENT

             KNTSD » KOUNTS
             PRYRS - BYR
             PRMONS = BMON
             DO 340 I = 1,NPSF
                ACCS(I)  «= SACC(NR,I)
                NSMON(I) «= MONMS(NR,I)
                MSYR(I)  = YRMS(NR,I)
             CONTINUE
          CONTINUE

          FIND STARTING CONDITIONS
          I) LAYER THICKNESS

          NLAY - NLAYER(NR)
          DO 360 I - 1,NLAY
             LAYTHK(I) = THKLAY(NR,I)
          CONTINUE
          ACTl(l) = LAYTHK(NLAY)

          II) STARTING CONCS & BED COMPOSITION

          DO  3BO I = 1,NPSF
             CS(I) = CSTART(NR,I)
             SED =0.

             SET BED COMPOSITION

             DO 370 J * 1,NLAY
                LAYCOy.(J,I)  = COMLAY(NR,J,I)
             CONTINUE
             ACTl(I-H) » LAYCOM (NLAY, I)
          CONTINUE
00664000
00665000
00666000
00667000
00668000
00669000
00670000
00671000
00672000
00673000
00674000
00675000
00676000
00677000
00678000
00679000
00680000
00681000
00682000
00683000
00684000
00685000
00686000
00687000
00688000
00689000
00690000
00691000
00692000
00693000
00694000
00695000
00696000
00697000
00698000
00699000
00700000
00701000
00702000
00703000
00704000
00705000
00706000
00707000
00708000
00709000
00710000
OC711000
00712000
00713000
00714000
00715000
00716000
00717000
00718000
00719000
00720000
00721000
00722000
00723000
                                      244

-------
c
c
c
  385

  390
C
C
C
c

c
c
c
c
c
c
c
 c
 c
 c
 c
   410
 c
 c
 c
 c
 c
 c
   430
   420
 C
 C
   MISCELLANEOUS  INITIALIZATION

   DO 385 I = l.NPSF
      SHEET(I)  =  0.
   CONTINUE
   RECOMP =1
CONTINUE
************* START INTERVAL LOOP *i

DO 400 INTV = 1,HINTS

   FIND REAL TIME AT END OF THIS INTERVAL
   (AVOIDING 2-BYTE INTEGER OVERFLOW)

   DISPL = INTV
   DISPL - DISPL*TIMIN
   CALL ADDTIM(   DISPL,BYR,BMON,BDAY,BHR,BMIN,BSEC,
                  YR,MON,DAY,HR,MIN,SEC  )

   INITIALIZE

   INTQ » INTV*NPSF1 +1
   INTQ2 - INTQ -NPSF1

   ADD INFLOW FROM U/S REACHES
    (  IF NVEC -ORDR THIS IS A TERMINAL REACH

   Q1E =0.
   IF (NVEC.EQ.ORDR) GO TO 410
      Q1E =  TVEC(INTQ,NVEC)
   CONTINUE

    FIND POINT LOAD INFLOWS

    INFLO  =0.
    IF (PBAS.GT.O)
       INPLO  -  0.5*(  STORP(INTV)  + STORP(INTV +1)  )

    FIND LATERAL INFLOWS

    IP (DIFFUS.EQ.NO) GO  TO 420
    IF (DBAS.EQ.O)  GO TO  420
       NBAS  = DBAS
       NSG =  RCHTRB(DBAS)
       DO  430 I  * 1,NSG
          SEG «=  RCHTRB(NBAS +1)
          SAREA  " RCHTRB(NBAS -t-2)
          LSFAC  - FACTLS*SAREA/TIMINT
          J - (SEG -1)*TBLKSZ
          INFLO - INFLO + LSFAC*STOR(J +INTV)
          NBAS •= NBAS 42
       CONTINUE
    CONTINUE

    INFLO *.INFLO + 0.5*(Q1S +Q1E)

    HYDRAULIC ROUTING (KINEMATIC)
00724000
00725000
00726000
00727000
00728000
00729000
00730000
00731000
00732000
00733000
00734000
00735000
00736000
00737000
00738000
00739000
00740000
00741000
00742000
00743000
00744000
00745000
00746000
00747000
00748000
00749000
00750000
00751000
00752000
00753000
00754000
00755000
00756000
00757000
00758000
00759000
 OCV60000
 00761000
 00762000
 00763000
 00764000
 00765000
 00766000
 00767000
 00768000
 00769000
 00770000
 00771000
 00772000
 00773000
 00774000
 00775000
 00776000
 00777000
 00778000
 00779000
 00780000
 00781000
 00782000
 00783000
                                        245

-------
  440
C
C
C
  460
C
C
C

C
C
C
C
C
  670
  700
C
C
C
CALL ROUTEf   IBASE,INTV,IOUT,MTAD,NLEV,
           REACH,TIMINT,INFLO,LENGTH,Q2S,SS,TABLE,
              LEVEL,
              A2E,Q2E,SE,T2E,Y2E   )

WATER BALANCE CALCS & OUTPUT OF HYDRAULIC RESULTS

QMEAN =0.5*(Q2s +Q2E)
IMINO = IMINO rlNFLO -QMEAN
INFL = INFL +INFLO
OUTFL = OUTFL +QMEAN
IF (PRINT.EQ.O)  GO TO 440
   YMEAN =0.5*(Y2S +Y2E)
   AMEAN « 0.5*(A2S +A2E)

   CALL HDPRN?(    YR,MON,DAY,HR,MIN,SEC,EFLAG,HDPOUT,
               IOUT,MLINES,PRFREQ,REACH,TIMINT,A2E,AMEA.N
               Q2E,QMEAN,T2E,Y2E,YMEAN,
                  KNTHY,LINEHY,PRMONH,PRYRH,
               ACCA,ACCO.,ACCY,VOLMON,VOLYR   )

CONTINUE

CHECK FLOW TIME

FLOTIM = LENGTH*A2E/Q2E
IF (FLOTIM.GT.TIMINT)  GO TO 460
   KW005 - KW005 + 1
   IF (WARN.EQ.NO .OR. KW005.LE.5)
      WRITE(IOUT,2280) REACH,FLOTIM
CONTINUE

START SEDIMENT ROUTING FOR THIS INTERVAL

IF (SEDMT.EQ.NO) GO TO 850

   CALC SOME BASIC INFO.  f. DO INITIALIZATION
   N.B.  FOR KINEMATIC ROUTING,  HYDRAULIC GRADT "
                       BOTTOM SLOPE

   IF (SDEBUG.GT.l)
      WRITE(SOUT,2250) REACH,YR,MON,DAY,HR,MIN,SEC
   DO 670 I=1,NPSF
      HASSED(I)  =0.
   CONTINUE
   DISCH - Q2E
   DEPTH = A2E/T2E
   VEL = Q2E/A2E
   BEDSHR = S?WTW*DEPTH*SLOPE
   SHEARV = SQRT(GRAV*DEPTH*SLOPE)
   KP.OUDE = VSL/SQRT(GRAV*DEPTH)
   If (FROUDE.LE.0.8)  GO TO 700
      WRITE(IOUT,2220) FROUDE
      STOP
   CONTINUE

   CHECK WHETHER ACTIVE LAYER CALCS SHOULD BE DONE

   DIFF  = ABSi (DISCH  - ORGQ)/(ORGQ +  0.1)  )
 00784000
 00785000
 00786000
 00787000
 00788000
 00789000
 00790000
 00791000
 00792000
 00793000
 00794000
 00795000
 00796000
 00797000
 00798000
 00799000
 00800000
,00801000
 00802000
 00803000
 00804000
 00805000
 00806000
 00807000
 00808000
 00809000
 00810000
 00811000
 00812000
 00813000
 00814000
 00815000
 00616000
 00817000
 00818000
 00819000
 00820000
 00821000
 00822000
 00823000
 00824000
 00825000
 00826000
 00827000
 00828000
 00829000
 00830000
 00831000
 00832000
 00833000
 00834000
 00835000
 00836000
 00837000
 00838000
 00839000
 00840000
 00841000
 00842000
 00843000
                                      246

-------
   680
   690
 C
 C
 C
 C
 C
 C
 C
   770
 C
•C
 C
 C
 C
 C
 C
C
C
C
IF (DIFF.LE.0.1) GO TO 680
   IF (SDE3UG.GE.3) WRITE(SOUT,2230) ORGQ,DISCH
   RECOMP =1
CONTINUE

DXe'F = ABS (  (DEPTH - ORGY)/(ORGY + 0.1)  )
IF (DIFF.LE.0.1) GO TO 690
   IF (SDEBUG.GE.3) WRITE(SOUT,2240) ORGY,DEPTH
   RECOMP «1
CONTINUE

GET TOTAL SEDIMENT LOADING FOR THIS REACH THIS
INTERVAL.

CALL SDLOADf   DBAS,INTV,MAXTRB,MORDR,MSEGS,MSTOR,
            MSTORP,MTVEC,NPSF,NVEC,ORDR,PBAS,SDEBUG,
            SOUT,TBLKS Z,DIFFUS,FACTER,NO,STEADY,
            TIMINT,DD,COMLND,GREO.,RCBTRB, STORE,
            STORP,THRESH,TVEC,
               MASSIN,SHEET   )

RECOMPUTE PARAMETERS WHICH ARE DEPENDANT ON VISCOSITY

IF (VISMON.EQ.MON) GO TO 770
   CALL VISCHG{   WON,NPSF,SDEBUG,SOUT,GRAV,
               SPGRAV,DIA,KINVIS,
                  RECOMP,
                  VISC,AA,AC,AM,AN,DGR,SETVEL  )
   VISMON -  MON
CONTINUE

FIND ULTIMATE  OR POTENTIAL SAND TRANSPORT CONCNS.
& PARTICLE MOBILITY

CALL ULTMT(    NPSF,NFSFl,SDEBUG,SOUT,DEPTH,GRAV,
          ORGD50,ORGTHK,SHEARV,
           SPGRAV,VEL,AA,AC,ACT1,AM,AN,DIA,
              IM02,RECOMP,ACFRAC,
              D50,D50IM,PCIMO,CE  )

RECOMPUTE ACTIVE LAYER THICKNESS

IF (RECOMP.EQ.O) GO TO 800

   CALL ACTIV(   BEDKNT,IM02,MLAY,MNPSF,
               MNPS1,NLAY,NPSF,NPSFl,SDEBUG,SOUT,
               ARMF,BIND,DEPTH,DUNE,EPSBED,FROUDE,
               GRAV,RIPPLE,VISC,DIA,LAYCOM,
               LAYTHK,WARN,
                  KW541,KW551,ACFRAC,ACT1,ACT2,ACTNEW
                  NEWLY,ACTIVE,PCLYST,ULTACT  )

   CALL CLEAN(   IM02,MLAY,MNPSF,MNPSl,NEWLY,
              NPSF,NPSFl,SDEBUG,SOUT,ACTIVE,
              BIND,PCLYST,DIA,
                 ACFRAC,ACT1,
                 NLAY,D50,D50IM,PCIMO,LAYCOM,LAYTHK )

   RESET REFERENCE VALUES
 00844000
 00845000
 00846000
 00847000
 00ft43000
 00349000
 00850000
 00851000
 00852000
 00853000
 00854000
 00855000
 00856000
 00857000
 00858000
 00859000
 00860000
 00861000
 00862000
 00863000
 00864000
 00865000
 00866000
 00867000
 00868000
 00869000
 00870000
 00871000
 00872000
 00873000
 00874000
 00875000
 00876000
 00877000
 00878000
 00879000
 00880000
 00881000
 00862000
 00883000
 00884000
 00885000
 00886000
 00887000
 00888000
 00889000
 00890000
 00891000
 00892000
,00893000
 00894000
 00895000
 00896000
 00897000
 00898000
 00899000
 00900000
 00901000
 00902000
 00903000
                                       247

-------
  800
  780
C
C
C
     1
     2
     3
     4
     5
     6
C
C
C
     1
     2
     3
     4
     5
     1
     2
     3
     4
     5
  820
  810
C
C
C
C
C
   OPGQ =
   OiWY =
   D- 5D50
   OrWTHK
                            DISCH
                            DEPTH
                            » D50
                            » ACTl(l)
                            =o
CONTINUE

IF (PCLYST.LE.BIND)  GO TO 780

   COHESIVE BED LAYER BEING SCOURED

   CALL COHESV(   IM02,MLAY,MNPSF , NEWLY ,NPSF,NPSF1 ,
               SDEBUG , SOUT , TIMINT , ARMF , ASCR,
               BEDSHR, BSCR, BULKD , CSCR, DSCR, D50IM ,
               PCLYST , ULTACT , ACTl , CRTSHR, SCRCON ,
               SCREXP,
                  NLAY , RECOUP , LAYCOM , LAYTHK ,
               MASSED  )

CONTINUE

SCOUR SANDS & DO ROUTING

CALL SDROUT(   IM02 ,MLAY, MNPSF,NPSF,NPSF1 , SDEBUG,
            SOUT, TIMINT, A2E,A2S, BIND, BULKD, DENW,
            DEPTH , LENGTH , PCLYST , PROTCT , Q IE , Q1S ,
            Q2E , Q2S , SHEARV, T2E , CS ,
            MASSED , MASSIN , SETVEL, SHEET,
               EFLAG , NLAY , RECOMP , ACTl , LAYCOM , LAYTHK ,
               PCIMO,CE  )

PRINTED OUTPUT ?

IF (PRINTS. EQ.O .AND. EFLAG. EQ.O) GO TO 810
   CALL SDPRNT(   YR, MON, DAY, HR, MIN, SEC , EFLAG, MLAY,
               MLINES,MNPSF, NLAY, NPSF,PRFREQ, REACH,
               ?DEBUG , SDPOUT , SOUT , TIMINT ,
               CUML , DENW , OUTFAC , Q2E , Q 2S , ACCS , CE ,
               CS , LAYCOM , LAYTHK , MSMON , MSYR ,
                  KNTSD,LINESD,PRMONS,PRYRS )
   IF (EFLAG. EQ.O)   GO TO 820
      CALL HDPRNT(   YR, MON, DAY, HR, MIN, SEC , EFLAG,
                  HDPOUT , IOUT , MLINES ,PRFREQ , REACH ,
                  T IMINT , A2E , AMEAN , Q2E , QMEAN , T2E ,
                  Y2E.YMEAN,
                     KNTHY , LINEHY , PRMONH , PRYRH ,
                  ACCA,ACCQ,ACCY,VOLMON,VOLYR  )
      STOP

   CONTINUE

CONTINUE

IF REQUESTED, STORE FLOW RATES, POINT DEPTHS,
  AND SEDIMENT DISCHARGE RATES; THESE WILL
  LATER BE WRITTEN TO DISK.

IF (DISK. EQ. NO) GO TO 910
IF (FTN(NN,1).EQ.-1) GO TO 910
00904000
00905000
00906000
00907000
00908000
OG909000
00910000
00911000
00912000
00913000
00914000
00915000
00916000
00917000
00918000
00919000
00920000
00921000
00922000
00923000
00924000
00925000
00926000
00927000
00928000
00929000
00930000
00931000
00932000
00933000
00934000
00935000
00936000
00937000
00938000
00939000
00940000
00941000
00942000
00943000
00944000
00945000
00946000
00947000
00948000
00949000
00950000
00951000
00952000
00953000
00954000
00955000
00956000
00957000
00958000
00959000
00960000
00961000
00962000
00963000
                                       248

-------
  880
  910
C
C
C
  840
  850
C
C
C
C
C
C
C
  400
C
C
C
C
C
C
C
C

C
C
C
  450

  470
C
C
C
         CSTOTL = 0.
         DSKDAT(INTV,1)  «= Q2S
         DSKDAT(IKTV,2)  = Y2S
         DO 880 I=1,NPSF
            CSTOTl. = CSTOTL + CS(I)
            DSKOAT(INTV,I+2)  =• CS (I } *DENW*Q2S
         CONTINUE
         DSKDAT(INTV,NPSF+3)  - CSTOTL*DENW*Q2S
      CONTINUE

      SWITCH SEDIMENT VALUES  FOR START OF NEXT TIME STEP

      DO 840 I = l.NPSF
         TVEC((INTQ2+I) ,NVEC) = CS (I ) *DENW*Q2S
         CS(I) = CE(I)
      CONTINUE
   CONTINUE
               END SEDIMENT CALCS
                                  *********************
   SWITCH HYDRAULIC VALUES FOR START OF NEXT TIME STEP
   TVEC(INTQ2,NVEC)
   Q1S - Q1E
   Q2S « Q2E
   A2S - A2E
   Y2S * Y2E
   SS - SE

CONTINUE

**************
                                  Q2S
                   INTERVAL LOOP **********************
STORE VALUES FOR THIS REACH AT THE END OF THIS TIME BLOCK
THESE VALUES ARE USED AGAIN WHEN THIS REACH IS PROCESSED
DURING THE NEXT TIME BLOCK

IF (SEDMT.EQ.NO) GO TO 490

   CLEAN UP FOR SEDIMENT
   1) STORE ACCUMULATED VALUES FOR PRINT OUT
   IF (PRINTS.EQ.O) GO TO 470
      DO 450 I - l.NPSF
         SACC(NR,I) » ACCS(I)
         MONMSfNR,!) - MSMON(I)
         YRMS{NR,I) m MSYR(I)
      CONTINUE
      MACC(NR) - CUML
   CONTINUE

   2) STATE VECTORS

   DO 480 I - 1,NPSF
      CSTART(NR,I)  - CE(I)
      DO 480 J = 1,NLAY
         COMLAY(NR,J,I) - LAYCOM(J,I)
00964000
00965000
00966000
00967000
00968000
00969000
00970000
00971000
00972000
00973000
00974000
00975000
00976000
00977000
00978000
00979000
00980000
00981000
00982000
00983000
00984000
00985000
00986000
00987000
00988000
00989000
00990000
00991000
00992000
00993000
00994000
00995000
00996000
00997000
0099BOOO
00999000
01000000
01001000
01002000
01003000
01004000
01005000
01006000
01007000
01008000
01009000
01010000
01011000
01012000
01013000
01014000
01015000
01016000
01017000
01018000
01019000
01020000
01021000
01022000
01023000
                                      249

-------
  480
  485
C
C
C
C
C
  486
  490
C
C
C
C
C
  500
C
C
C
C
C
C
C
C
C
C
  510
C
C
C
C
  520
C
C
C
   CONTIKOE

   DO 485 0 = 1,NLAY
      THKLAY(NR,J)  = LAYTHK(J)
   CONTINUE

   NLAYER(NR) = NLAY

   3) CLEAN UP TRANSFER VECTOR (MANIPULATION OF
      TRANSFER VECTOR FOR INPUT TO NEXT REACH IS
      DONE IN HYDRAULICS SECTION

   DO 486 I « 1,NPSF
      TVEC((INTQ+I),NVEC) " CE(I)*DENW*Q2E
   CONTINUE

CONTINUE

CLEAN UP FOR HYDRAULICS

1)  STORE PARTIALLY ACCUMULATED VALUES FOR PRINT OUT

IF (PRINT.EQ.O) GO TO 500
   YACC(NR) « ACCY
   AACC(NR) - ACCA
   QACC(NR) - ACCQ
   VMON(NR) - VOLMON
   VYR(NR) - VOLYR
CONTINUE

2)  STATE VECTORS

QSTART(NR) «= Q2E
ENDSTO(NR) » SE

3)  CLEAN UP TRANSFER VECTOR

TVEC(INTQ,NVEC) -Q2E
IF (NVEC.LT.ORDR) GO TO 520

WE ARE ON A TERMINUS REACH - ADD OUTPUT NOW IN TEMP.
STORAGE TO CONTENTS OF PERMANENT VECTOR

NVEC - VECNO(NR) -1000
DO 510 I = 1,NTVEC
   TVEC(I,NVEC) * TVEC(I,ORDR) +TVEC(I,NVEC)
CONTINUE
GO TO 550

CHECK TO SEE WHETHER WE SHOULD COMBINE CONTENTS OF
2 VECTORS, RELEASING HIGHER NUMBERED ONE FOR FUTURE USE

CONTINUE
IF (PEL(NR).LE.O) GO TO 550

   ENSURE WE ARE RELEASING CORRECT VECTOR

   IF (NVEC.EQ.REL(NR)) GO TO 530
      WRITE(IOUT,2170) NVEC,REL(NR)
      STOP
01024000
01025000
01026000
01027000
01028000
C1029000
01030000
01031000
C1032000
01033000
01034000
01035000
01036000
01037000
01038000
01039000
01040000
01041000
01042000
01043000
01044000
01045000
01046000
01047000
01048000
01049000
01050000
01051000
01052000
01053000
01054000
01055000
01056000
01057000
01058000
01059000
01060000
01061000
01062000
01063000
01064000
01065000
01066000
01067000
01068000
01069000
01070000
01071000
01072000
01073000
01074000
01075000
01076000
01077000
01078000
01079000
01080000
01081000
01082000
01083000
                                      250

-------
c
c
c
c
c
c
c
c
c
             RELEASE

530          CONTINUE
             J •' NVEC -1
             DO 5.40 I =1,NTVEC
                TVEC(I,J)  = TVEC(I,J)  +TVEC(I,NVEC)
                TVEC(I,NVEC)  = 0.
540          CONTINUE

550       CONTINUE

          4)  WATER BALANCE

          INFL « INFL*TIMINT
          INVLOW(NR) - INFL +INFLOW(NR)
          OUTFLO(NR) = OUTFL*TIMINT -K)UTFLO(NR)
          IMINO - IMINO*TIMINT

          5)  CONTINUITY ERROR

          CONER « IMINO +SSTART -SE
          CONTER(NR) * CONTER(NR)  +CONBR
          CONSR » ABS(CONER/INFL)
          IF r.ONER.LT.1.0E-05) GO TO 560
             KW002 - KW002 -f 1
             IF (WARN.EQ.NO .OR. KW002.LE.5)
   1            WRITE(IOUT,2160) REACH,CONER
560       CONTINUE
C
C
C
C
C
C
C
C
c
c
c
          IF REQUESTED, WRITE FLOWS, POINT DEPTHS, AND
           SEDIMENT DISCHARGE RATES TO DISK.

          IF (DISK.EQ.NO) GO TO 600
          IF (FTN(NN,1).EQ.-l) GO TO 600
             DO 580 J-1,NPSFP3
                IF (FTN(NN,J).EQ.O) GO TO 580
                   DO 570 I«1,TBLKSZ
                      RBUFF(I) » DSKDAT(I,J)
570                CONTINUE
                FTNNNJ - FTN(NN,J)
                WRITE(FTNNNJ) RBUFF
580          CONTINUE
600       CONTINUE
300    CONTINUE

       *************** END OF REACH LOOP *********************

       FIND TIME FOR START OP NEXT TIME BLOCK

       DISPL - NINTS
       DISPL - r?TSPL*TIMIN
       CALL A'DDTIM(   DISPL,BYR,BMON,BDAY,BHR,BMIN,BSEC ,
   1                  YR,MON,DAY,HR,MIN,SEC)
       BVR * VR
       BHON » MON
       BDAY » DAY
       BHR - HR
01084000
01085000
01086000
01087000
01088000
01089000
01090000
01091000
01092000
01093000
01094000
01095000
01096000
01097000
01098000
01099000
01100000
01101000
01102000
01103000
01104000
01105000
01106000
01107000
01108000
01109000
01110000
01111000
01112000
01113000
01114000
01115000
01116000
01117000
01118000
01119000
01120000
01121000
01122000
01123000
01124000
01125000
01126000
01127000
01128000
01128100
01129000
01130000
0113JOOO
01132000
01133000
01134000
01135000
01136000
01137000
01138000
01139000
01140000
01141000
01142000
                                       251

-------
c
c
c
       BMIN = MIN
       BSCC = SEC

       RE-JET BASE COUNTERS FOR PRINT OUT
         KOUNTH
         KOUNTS
                KNTHY
                KNTSD
C
C

c
c
c
c
c
c
c
c
c
c
c
200 CONTINUE

    ************** END TIME BLOCK LOOP *************************

    CHECK CONTINUITY FOR HYDRAULICS

    WRITE(IOUT,2180)
    DO 610 NR = 1,NREA
       WRITE(IOUT,2190) RCH(NR),INFLOK(NR),OUTFLO(NR),
   1                      ENDSTO(NR),CONTER(NR)
610 CONTINUE
    WRITE(IOUT,2200)

    V?RITE (IOUT, 2210)

    WRITE SUMMARY OF ERROR MESSAGES

    IF {WARN.EQ.YES) WRITE(IOUT,2290)
    IF (KW002.GT.O) WRITE(IOUT,2310) KW002
    IF (KW005.GT.O) WRITE(IOUT,2320) KW005
    IF (KW541.GT.O) WRITE(IOUT,2330) KW541
    IF (KW551.GT.O) WRITE(IOUT,2340) KW551

    FINISH RUN

    STOP
    END
01143000
01144000
01145000
01146000
01147000
01148000
01149000
01150000
01151000
01152000
01153000
01154000
01155000
01156000
01157000
01158000
01159000
01160000
01161000
01162000
01163000
01164000
01165000
01166000
01167000
01168000
01169000
01170000
01171000
01172000
01173000
01174000
01175000
01176000
01177000
01178000
                                      252

-------
c
c
c
c
c
c
c

c
c
c
c
c
c
c
c
c
 SUBROUTINE ACTIV(   BEDKNT,IM02.MLAY,MNPSF,MNPSl,NLAY,
1                  t;?SF,NPSFl,SDEBUG,SOUT,ARMF,BIND,DEPTH,
2                  P'JNE,EPSBED,FROUDE,GRAV, RIPPLE, VISC,
3                  DIA,LAYCOM,LAYTHK,WARN,
4                     KW541,KW5 51,ACFRAC,ACTl,ACT2,ACTNEW,
5                     NiiWLY, ACTIVE,PCLXST,ULTACT  )

 ROUTINE TO FIND THICKNESS OF ACTIVE LAYER. ALLOWANCE
 IS MADE FOR ARMORING AND PRESENCE OF COHESIVE LAYERS.

 PARAMETERS

 INTEGER BEDKNT,IMO2,KW541,KW551,MLAY,MNPSF,MNPS1,NEWLY,NLAY
 INTEGER NPSF,NPSF1,SDEBUG,SOUT

 REAL ACTIVE,ARMF,BIND,DEPTH,DUNE,EPSBED,FROUDE
 REAL GRAV,PCLYST,RIPPLE,ULTACT,VISC,WARN

 REAL ACFRAC(NPSF),ACT1(NPSF1),ACT2(NPSF1)
 REAL ACTNEW(NPSFl),DIA(NPSF),LAYCOM(MLAY,MNPSF)
 REAL LAYTHK(MLAY)

 LOCAL VARIABLES

 INTEGER HIGH,I,J,KOUNT,LOW

 REAL ACTIV1,ACTIV2,ARMD,ARMOR,D501.D502
 REAL D50A1,D50A2,FACT,NEWTHK,PCIMO
 F.:;AL RELERR,RG,THK,THKI,THK2,THKA
 RViAL THKARM,YD50

 REAL NAME(6)
 DATA NAME/'RIPP1,'LE

 WRITE FORMATS
1 DUNE'
 2000 FORMAT('0','+++WARNING 531+++ BOTTOM OF DEFINED BED  REACHED1,
     1            '  IN COMPUTING ACTIVE LAYER THICKNESS')
 2010 FORMAT('0','+++ERROR  532+++ ITERATION COUNT EXCEEDED ',15,
     1            '  IN BEDFORM CALCS')
 2020 FORMATCO1 ,'ACTIVE LAYER CHARACTERISTICS  PROM  SUBROUTINE  ',
     1            'ACTIVE:',/,IX,
      2            'ACTIVE LAYER THICKNESS                ,F10.4,/,IX,
      3            'NUMBER OF TOP LAYER  IN THIS  REACH     ,I5,/,1X,
      4            'ACTIVE DEPTH REACHES  INTO  LAYER NO.   ,I5,/,1X,
      5            'PERCENT CLAY + SILT  IN BOTTOM  LAYER   ,F10.2,/,1X,
      6            'BEDFORM TYPE                          ,2A4   )
  2030 FORMATCO' ,/, '0' , 'DEBUG OUTPUT FOR ACTIVE  THICKNESS  CALCS:',/, IX,
      1            'LAYER LOOPING:',/  )
  2040 FORMATCO','INCLUDE LAYER    -',I5,/,1X,
      1            'ACTIVE THICKNESS «',F10.3,/,lX,
      2            'BEDFORM THKNESS  »',F10.3   )
  2050 FORMATCO','LAYER ITERATIONS:',/  )
  2060 FORMATCO' , 'ITERATION NUMBER «',I5,/,1X,
      1            'ACTIVE THICKNESS •=' ,F10 . 3,/, IX,
      2            'BEDFORM THICKNESS*'F10.3   )
  2070 FORMAT CO1,'LAYER  ',15,' IS COHESIVE  ',/,lX,
      1            'PERCENT CLAY + SILT  IN COHESIVE LAYER =',F10.3,/,IX,
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
0003BOOO
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       253

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     2            'ESTIMATED  THICKNESS  FOR ACTIVE  LAYER  -',F10.3,/,IX,
     3            'DEPTH  OVERLYING MATERIAL              -',F10.3  )
 2080 FORMATCO1,'ACTIVE LAYER THICKNESS  LIMITED  BY ARMORING',/,IX,
     1            'ACTIVE DEPTH REACHES INTO  LAYER -',I5,/,1X,
     2            'ACTIVE LAYER THICKNESS           »',F10.3   )
 2090 FORMATCO','ACTIVE LAYER CALCS WILL BE REPEATED1)

:     INITIALIZE
t

    5 CONTINUE
     PCLYST  -0.
     D501  »0.
     D502  -0.
     D50A1 -0.
     D50A2 "0.
     THKARM  -0.
     ARMD-1.0E06
     ACTIV1  -0.
     ACTIV2  -0.
     THK -0.
     ULTACT  -0.
     DO 10 I - 1,NPSF1
        ACTl(I) -0.
        ACT2(I) -0.
   10 CONTINUE
     NEWLY • NLAY
     PCIMO "0.
     IF (SDEBUG.GE.3) WRITE(SOUT,2030)

     ******** START  LAYER LOOPING  ***************************
     STARTING WITH TOP  LAYER,  LOOP THROUGH  BED LAYERS TO FIND
     THICKNESS OF ACTIVE LAYER - EACH BED LAYER  MUST BE LOOKED
     AT BECAUSE:
     I) ACTIVE THICKNESS DEPENDS ON D50
     II) ARMORING MAY PREVENT DEVELOPMENT OF FULL ACTIVE LAYER
     III)  COHESIVE LAYERS MAY PREVENT DEVELOPMENT OF FULL
                  ACTIVE LAYER
     ACT2  CONTAINS CURRENT  ESTIMATE OF ACTIVE LAYER CHARACTERISTICS

   20 CONTINUE

     ADD IN  THE NEXT LAYER
     IS THE  NEXT LAYER  COHESIVE ?

     PCLYST  - LAYCOM(NEWLY,!)  + LAYCOM(NEWLY,2)
     IF (PCLYST.LE.BIND) GO TO 30
        IF  (SDEBUG.GE.3) WRITE(SOUT,2070) NEWLY,PCLYST,ULTACT,ACTIVE
        ULTACT • THK
        ACTIVE - ACTl(l)
        GO TO 900
   30 CONTINUE

     THK1  -  ACTl(l)
     NEWTHK  - LAYTHK(NEWLY)
     THK2  •  THK1 +NEWTHK
     ACT2(1) - THK2
     DO 40 I - 1,NPSF
        J  «  I +1
        ACT2(J) -  (THK1*ACT1 (J)
   40 CONTINUE
                                   NEWTHK*LAYCOM(NEWLY,I))/THK2
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                    254

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
    LOOK AT POTENTIAL FOR ARMORING AT DEPTH  ACT2(1).
    FIND D50 IMMOBILE SAND FRACTIONS  IN  ACT2

    If (IM02.EQ.NPSF)  GO TO 100
       LOW = IM02 +1
       HIGH * NPSF
       CALL DIAM50(    HIGH,LOW,MNPSF,MNPS1,SDEBUG,EOUT,
   1               ACT2,DIA,
   2                  ACFRAC,
   3                  D50A2  )

       ADD IMMOBILE  FRACTION  TO ARMORING LAYER.
       ARMOR » THICKNESS OF ARMORING  TO  STOP SCOUR
       ARMD » DEPTH  OF SCOUR  TO PRODUCE  ARMOR
       PCIMO = %  IMMOBILE MATERIAL 113 NEW LAYER

       ARMOR - ARMF*D50A2
       PCIMO - 0.
       DO 50 I «=  LOW,HIGH
          PCIMO « PCIMO -f LAYCOM{NEWLY,I)
 50    CONTINUE
       THKA * THKARM +NEWTHK*PCIMO
       IF {THKA.GE.ARMOR) GO  TO 60

          INSUFFICIENT ARMORING TO PREVENT  ALL SCOUR

          ARMD =  THK2 +0.1
          GO TO 100

       COMPUTE ARMORING PROVIDED BY THIS LAYER
       FIND ACTUAL DEPTH OF SCOUR TO  GIVE ARMOR

 60    CONTINUE
       IF (D50A1.GT.O.)  GO TO 70
          ARMD -  ARMOR/PCIMO +THK1
          GO TO 100

 70    CONTINUE
       FACT « {D50A2 -D50A1)/NEWTHK
       ARMD = {THKARM -THK1*PCIMO -
   1           ARMF*(D50A1 -  THK1*FACT)  )/(  FACT*ARMF -PCIMO )

100 CONTINUE

    FIND BEDFORM  THICKNESS FOR MOBILE FRACTIONS

    IF (IM02.LT.3) GO TO 140
       LOW -3
       HIGH » IM02
       CALL DIAM50(    HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT,
   1               ACT2,DIA,
   2                  ACFRAC,
   3                  D502  )
       RG - D502*SQRT(GRAV*D502)/VISC
       YD50 - DEPTH/0502
       CALL BEDFRMC    SDEBUG,SOUT,D502,DUKE,FROUDE,
   1               RG, RIPPLE, WARN, DEPTH, YD50.,
   2                  KW541.KW551,
   3                  ITYPE,THK,NAME   )
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
00179000
00180000
00181000
00181100
00182000
                                      255

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
       PREDICTED ACTIVE THICKNESS IS THK.
       IS ACTIVE LAYER BOUNDED BY ACT2?

       If (THK.LE.THK2) GO TO 200

       DOES ARMORING GOVERN ?

140 CONTINUE
       IF (ARMD.GT.THK2)  GO TO 150
          IF (SDEBUG.GE.3)  WRITE(SOUT,2080)  NEWLY,ARMD
          ACTIVE * ARMD
          GO TO 900
150 CONTINUE

    SET UP FOR INCLUDING NEXT LAYER

    THKARM - THKARM +LAYTHK(NEWLY)*PCIMO
    AC7IV1 - THK
    D501 *= D502
    D50A1 « D50A2
    ACTl(l) - ACT2(1)
    DO 170 J = 2,NPSF1
       ACT1(J)  - ACT2(J)
170 CONTINUE
    IF (SDEBUG.GE.3) WRITE(SOUT,2040) NEWLY,ACT2 (1) ,THK
    NEWLY - NEWLY -1
    IF (NEWLY.GT.O) GO TO 20

    NOW AT BOTTOM OF DEFINED BED - STILL INSUFFICIENT MATERIAL
    TO FORM ACTIVE LAYER. ACTIVE IS COMPOSED OF MATERIAL
    AVAILABLE - IN VECTOR ACT2

    WRITE(SOUT,2000)
    ACTIVE « ACT2(1)
    NEWLY - 1
    GO TO 900

    ************** END OF LAYER LOOPING
C
C
C
C
c
    THE TRUE ACTIVE DEPTH IS NOW BOUNDED BY ACTl AND ACT2.
    USE ITERATIVE METHOD TO FIND TRUE THICKNESS
    FOR ROBUSTNESS OF SOLN, A FIBONACCI SEARCH IS USED

200 CONTINUE
    IF (SDEBUG.GE.3) WRITE(SOUT,2040) NEWLY,ACT2(1),THK
    IF (NEWLY.NE.NLAY) GO TO 210
       ACTIVE - THK
       GO TO 300
210 CONTINUE
    IF (SDEBUG.GE.3) WRITE(SOUT,2050)

    *********** START ITERATION LOOP ************************
    FIND NEW ESTIMATE OF ACTIVE DEPTH HALF WAY BETWEEN LAST
    TWO ESTIMATES

    KOUHT * 1
220 CONTINUE
    ACTNEW(l) = 0.5*
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
    FORM NEW LAYER,  THICKNESS ACTNEW

    THK1 = ACT1{1)
    NEWTHK « ACTNEW(l)  -THK1
    DO 230 J = 2,NPSF1
       I * J-l
       ACTNEW(J)  » (THK1*ACT1(J)  + NEWTHK*LAYCOM(NEWLY,I))/ACTNEW(1)
230 CONTINUE

    FIND NEW BEDFORM TYPE & THICKNESS

    LOW «3
    HIGH - IM02
    CALL DIAM50(    HIGH,LOW,NPSF,NPSF1,SDBBUG,SOOT,
   1            ACTNEW,DIA,
   2               ACFRAC,
   3               D502  )
    RG - D502*SQRT(GRAV*D502)/VISC
    YD50 - DEPTH/0502
    CALL BEDFRM(    SDEBUG,SODT,D502,DUNE,FROUDE,
   1            RG,RIPPLE,WARN,DEPTH,YD50,
   2               KW541,KW551,
   3               ITYPE,THK,NAME  )
    IF (SDEBUG.GE.3}  WRITE(SOUT,2060) KOUNT,ACTNEW(1),THK

    CHECK FOR CONVERGENCE

    RELERR • ABS((ACTNEW(1) -THK)/THK)
    IF (RELERR.GT.EPSBED) GO TO 240
       ACTIVE - ACTNEW(l)
       GO TO 300

    RESET FOR NEXT ITERATION

240 CONTINUE
    IF (THK.LT.ACTNEW(l)) GO TO 260
       DO 250 I » 1,NPSF1
          ACTl(I) - ACTNEW(I)
250    CONTINUE
       THK1 - ACT1(1)
       GO TO 280

260 CONTINUE
    DO 270 I » l.NPSFl
       ACT2(I) - ACTNEW(I)
270 CONTINUE
    THK2 - ACT2(1)

28& CONTINUE
    KOUNT - KOUNT +1
    IF (KOUNT.LE.BEDKNT)  GO TO 290

       IF FAILURE TO CONVERGE WE WISH TO REPEAT ACTIVE LAYER
       CALC3 WITH FULL DEBUG OUTPUT SO PROGRESS TO CONVERGENCE
       CAN BE STUDIED.                                v

       IF (SDEBUG.GE.3) GO TO 285
          WRITE(SOUT,2010)  BEDKNT
          WRITE(SOUT,2090)
00243000
00244000
OC245000
00246000
00247000
00246000
00249000
00250000
00251000
00252000
00253000
00254000
00255000
00256000
00257000
00258000
00259000
00260000
00261000
00262000
00263000
00264000
00264100
00265000
00266000
00267000
00268000
00269000
00270000
00271000
00272000
00273000
00274000
00275000
00276000
00277000
00278000
00279000
00''SOOOO
00231000
00282000
00283000
002B4000
002B5000
00286000
00287000
C0288000
00289000
00290000
00291000
00292000
00293000
00294000
00295000
00296000
00297000
00298000
00299000
00300000
00301000
                                      257

-------
  285
C
C
C
C
C
C
C
C
C
C
          CALL SF.DPRT(MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOM,LAYTHK)
          SDE3UG =3
          GO 70 5

       WRITE{SOUT,2010)  BEDKNT
       STOP
290 CONTINUE
    GO TO 220

    ************ END OF ITERATION LOOP *********************
    FINAL CHECK FOR ARMORING

300 CONTINUE
    IF (ACTIVE.LE.ARMD) GO TO 310
       IF (SDEBUG.GE.3) WRITE(SOUT,2080)  NEWLY,ARMD
       ACTIVE = ARMD
       GO TO 900
310 CONTINUE

    WE NOW HAVE:-
    ACTIVE •= THICKNESS OF ACTIVE LAYER
    PCLYST = PERCENT CLAY +SILT IN NEWLY
    KiWLY = THE LAYER LAST LOOKED AT

    If (SDEBUG.GE.3)
   1   WRITE(SOUT,2020) ACTIVE,NLAY,NEWLY,PCLYST,
   2                    NAME(ITYPE),NAME(ITYPE +1)

900 CONTINUE
    RETURN
    EHD
00301100
00302000
00303000
00304000
00305000
00306000
00307000
00308000
00309000
00310000
00311000
00312000
00313000
00314000
00315000
00316000
00317000
00318000
00319000
00320000
00321000
00322000
00323000
00324000
00325000
00326000
00327000
00328000
00329000
00330000
00331000
00332000
                                      258

-------
      SUBROUTINE ADDTIM(
C
c
C
c
c
c
c
c
c
c
                      DELSEC,VR,MON,DAY,HOUR,MIN,SEC,
                      NEWYR,NEWMO,NEWDA,NEWHR,NEWMIN,NEWSEC  )
C
C
c
 5

 6
 THIS ROUTINE ADDS A SPECIFIED NUMBER OP SECONDS (DELSEC)
 TO A GIVEN DATE (YR,MON,DAY,HOUR,MIN)  TO GET A NEW DATE
 {NEWYR,NEWMO, ETC)

 PARAMETERS

 INTEGER YR,MON,DAY,HOUR,MIN,SEC
 INTEGER NEWYR,NEWMO,NEWDA,NEWHR,NEWMIN,NEWSEC
 INTEGERM DELSEC

 LOCAL VARIABLES

 INTEGER REMD,TEMP
 INTEGER*4 MTEMP,HCARRY
 INTEGER DPM(24)

 DATA DPM/31,28,31,30,31,30,31,31,30,31,30,31,
1         31,29,31,30,31,30,31,31,30,31,30,31/
 IBASE= 0
 IP(MOD(YR,4).EQ.O)  IBASE-12
 NEWYR-YR
 MTEMP * SEC +DELSEC
 HCARRY - MTEMP/60
 NEWSEC - MTEMP - HCARRY*60
 MTEMP* HCARRY +MIN
 HCARRY=MTEMP/60
 NEWMIN" MTEMP- HCARRY*60
 TEM?= HCARRY + HOUR
 ICAHRY« TEMP/24
 NEWHR- TEMP - 24*ICARRY
 TEMP- ICARRY + DAY
 NEWMO" MON
 REMD" TEMP - DPM(IBASE+NEWMO)
 IF (REMD) 6,6,7
 NEWDA- TEMP
 RETURN

 TEMP" REMD
 NEWMO» tISWMO + 1
 IF(NEWMO.LE.12) GO TO 5
 NEWMO=1
 NEWYR- NEWYR-H
 IBASE=0
 IF(MOD(NEWYR,4).EQ.O) IBASE-12
 GO TO 5
 END
00004000
00005000
ooooeooo
00007000
OOOOBOOO
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
                                       259

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
 SUBROUTINE BEDFRK(   SDEBUG,SOUT,D50,DUNE,FR,
1                  RG,RIPPLE,WARN,Y.YD50,
2                     KW541,KW551,
3                     ITYPE,THK,NAME  )

 THIS ROUTINE PREDICTS TYPE AND THICKNESS OF BEDPORMS
 THE METHOD OF PREDICTING BEDFORD TYPE IS BASED ON
 CHARTS PRESENTED BY VANONI (ASCE HYD;MARCH,1974).
 THE CHARTS ARE STORED IN TABULAR FORM IN BEDMAP,
 RGDIR & MAPDIR ARE DIRECTORIES POINTING INTO
 APPROPRIATE SECTIONS OF BEDMAP.
 CALCULATIONS OF BEDFORM THICKNESS IS BASED ON IDEAS BY
 JOPLING (ASCE HYD;MAY,1965).
 THTS ROUTINE SHOULD BE UPDATED AS NEW DATA BECOMES AVAILABLE.

 PARAMETERS

 INTEGER ITYPE,KW541,KW551,SDEBUG,SOUT

 REAL D50,DUNE,FR,RG
 REAL RIPPLE,THK,WARN,Y,YD50

 REAL NAME(6)

 LOCAL VARIABLES

 INTEGER I.MAPL.MAPR
 INTEGER MAPDIR(6)

 REAL DF,DFR,FACT,LOGFR,MAXDUN,NO,RD,RDF,RDR,RGL,RGR
 REAL THKDUN,THKRIP

 REAL BEDMAP(93),RGDIR(6)
      DATA BEDMAP/2.505,-0.046,-0.046,3.145,-0.432,-0.432,
     1
     2
     3
     4
     5
     6
     7
     8
     9
     1
     2
     3
     4
     5
     6
             4.0,-0.495,-0.495,999.,
             2. S.3,-0. 046, -0.046, 2.778, -
             2. Vj I,-0.432,-0.252,3.161,
             3.477,-0.839,-0.481,4.0,-!
             2.362,-0.046,-0.046,2.505,
             2.681,-0.42,0.215,2.778,-0
             2.954,-0.42,0*319,3.114,-0
             4.0,-1.0,-0.438,999.,
             2.279,-0.046,-0.046,2.398,
             2.653,-0.481,-0.187,2.813,
             2.954,-0.553,-0.398,4.0,-!
             1.681,-0.046,-0.046,1.716,
             2.845,-0.733,-0.155,3.699,
             1.0,-10.0,-0.071,1.903,-10
             3.0,-10.0,-0.357,999./
0.252,-0.252,
-0.432,-0.252,
.155,-0.568,999.,
-0.215,-0.215,
.42,-0.215,
.509,-0.398,

-0.187,-0.187,
-0.481,-0.301,
.071,-0.432,999.,
-0.092,-0.092,
-1.222,-0.602,999.,
.0,-0.071,
 DATA MAPDIR/1,11,30,52,71,84/

 DATA RGDIR/4.5,10.0,16.0,25.0,40.0,BO.O/

 DATA NO/'  NO1/

 WRITE FORMAT
00004000
00005000
00005100
00006000
00007000
00003000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00057100
00057200
00058000
00059000
00060000
                                      260

-------
c
c
c
c
c
2000 FORMAT('0','+++WARNING 541+-M- RG BEYOND RANGE OF AVAILABLE ',
    1           'DATA;  RG - ' ,E10.3)
2010 FORMAT)'0','BEDFORM CALCS: ',/,lX,
    1           'RG - '.E10.3,1 YD50 - ',E10.3,' FR - ',E10.3,/,IX,
    2           'RIPPLE/DUNE TRANSITION - ',E10.3,/,IX,
    3           'DUNE/FLAT TRANSITION   - ',E10.3,/,IX,
    4           'BEDFORM                - ',2A4)
2020 FORMAT!'0','BEDFORM THICKNESS      - ',E10.3)

     FIND CHARTS  EITHER SIDE OF VALUE OF RG.
     MAPL & MAPR  ARE BASE ADDRESSES FOR CHARTS IN BEDMAP TO
     "LEFT" AND  "RIGHT" OF ACTUAL VALUE OF RG

     DO 20 I  - 1,6
        IF (RG.LT.RGDIR(I)) GO TO 30
  20 CONTINUE
     RGL ' 80.
     MAPL -84
     RGR * 80.
     MAPR -84
     IF (RG.LT.200.) GO TO 50
        KW541 «  KW541 + 1
        IF (WARN.EQ.NO .OR. KW541.LE.5)
    1      WRITE(SOUT,2000) RG
     GO TO 50

  30 CONTINUE
     IF (I.EQ.l)  GO TO 40
        RGR - RGDIR(I)
        MAPR - MAPDIR(I)
        RGL - RGDIR(I-l)
        MAPL - MAPDIR(I-l)
        GO TO 50

  40 CONTINUE
     RGL - 4.5
     MAPL « 1
     RGR -4.5
     MAPR * 1
     IF (RG.GT.0.1) GO TO 50
        KW541 «  KW541 + 1
        IF (WARN.EQ.NO .OR. KW541.LE.5)
    1      WRITE(SOUT,2000) RG

  50 CONTINUE
     YD50 - ALOGIO(YDSO)

     INTERPOLATE IN LH CHART TO FIND FROUDE NOS. AT
     BED FORM TRANSITIONS
C
C
C
C
C
C
C

C
C
C
C
      CALL INTERP(
                    KW551,MAPL,SOUT,WARN,YD50,BEDMAP,
                    DF,RD  )
     CHECK FOR INTERPOLATION BETWEEN CHARTS

     IF (MAPL.EQ.MAPR) GO TO 100

     INTERPOLATION FOR RIGHT HAND CHART TO FIND FROUDE NOS.
     AT BED FORM TRANSITIONS
00061000
00062000
00063000
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00081100
00081200
00081300
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00097100
00097200
00097300
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
                                       261

-------
      CALL INTERP(   KWD51,MAPR,SOUT,WARN,YD50,BEDMAP,
c
c
c
c
    LINEAR INTERPOLATION BETWEEN CHARTS FOR TRANSITIONS AT
            VALUE OP RG
c
c
c
c
c
c
c
c
c
c
c
c
    FACT =  (RG -RGL)/(RGR -RGL)
    RD = RD + FACT*{RDR -RD)
    DF = DF + FACT* (DFR -DF)

100 CONTINUE
    YD5C = 10.**YD50

    FIND BEDFORM TYPE

    ITYPE =1
    IF (FR.GT.RD) ITYPE =3
    IF (FR.GT.DF) ITYPE =5

    IF (SDEBUG.GE.3)
   1   WRITE(SOUT,2010) RG, YD50 ,FR,RD,DF, NAME (ITYPE) , NAME (ITYPE+1)

    FIND BEDFORM THICKNESS

    IF (ITYPE. EQ. 3) GO TO 110

    R;?PLE OH FLAT BED - THICKNESS ASSUMED TO BE THE SAME

    THK «= 0.5*RIPPLE*D50
    GO TO 120

    DUNE - USE JOPLINGS IDEAS

110 CONTINUE
    RD = ALOGIO(RD)
    Dr - ALOGIO(DF)
    LOGFR " ALOGIO(FR)
    RDF * 0.5* (RD +DF)
    FACT = DUNE* ( 1. - ABS (RDF -LOGFR) /(RDF -RD) )
    TEZDUS = FACT*Y*0.5
    MAXOUN = DUNE*Y*0.5
    THKRIP = 0.5*RIPPLE*D50
    THK = AMAXKTHKDUN, THKRIP)
    THK = AMIN1(THK,MAXDUN)

120 CONTINUE
    IF (SDEBUG.GE.3) WRITE (SOUT, 2020) THK
    RETURN
    END
00115000
00116000
00117000
00118000
00119000
C0120000
00121000
00122000
00123000
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00154100
00155000
00156000
00156100
00157000
00158000
00159000
00160000
00161000
                                      262

-------
      SUBROUTINE BLEND(
C
C
C
C
C
                        MLAY,MNPSF,NPSF,SDEBUG,SOUT,
                        NLAY,LAYCOM,LAYTHK  )
C
C
C
C
C

C
C
C
C
C
    BLEND TWO LAYERS

    PARAMETERS

    INTEGER  MLAY,MNPSF,NLAY,NPSF,SDEBUG,SOUT

    REAL LAYCOM(MLAY,MNPSF),LAYTHK(MLAY)

    LOCAL VARIABLES

    INTEGER  I,J,K,MERGE,MERGE1,TOPLAY

    REAL THIN, THK, THKl/rTHK2


2000 FORMATCO','BLEND  LAYERS  ',15.'  AND ',15)


    THE THINNEST LAYER WILL BE MERGED INTO THE LAYER ABOVE IT.
     FIND THINNEST LAYER.

    TOPLAY - MLAY -1
     THIN - LAYTHK(1)
     MERGE -1
     DO 10 I • 2,TOPLAY
        IF (LAYTHK(I).GT.THIN)  GO TO 10
           THIN - LAYTHK(I)
           MERGE -I
  10 CONTINUE
 C
 C
 C
 C
 C
 C
     MERGE  'MERGE1' AND  'MERGE1

     MERGE1 - MERGE +1
     THK1 « LAYTHK(MERGE)
     THK2 « LAYTHK(MERGE!)
     THK - THK1  +THK2
     DO 20  I « 1,NPSF
        LAYCOM(MERGE,I)  -  ( LAYCOM(MERGE,I)*THK1  +
     1                          LAYCOM(MERGE1,I)*THK2  )/THK
   20 CONTINUE
     LAYTHK
-------
     SUBROUTINE CLEAN (    IM02,KIAY ,MMPSF ,MNPS1 , NEWLY, NPSF,NPSFl ,
    1                 SDE3UG, SOOT, ACTIVE, BIND, PCLYST,DI A,
    2                    ACFRAC.ACT1,
    3                    NLAY, D50,D50IM,PCIMO, LAYCOM, LAYTHK  )

     ROUTINE TO DO SOME CLEAN U? AFTER ACTIVE LAYER CALCS.
     SHIFT ACTIVE LAYER INTO THE BED COMPOSITION STORAGE ARRAYS LAYCOM
     6 LAYTHK AND RECOMPUTE D5C FOR ACTIVE LAYER

     PARAMETERS

     INTEGER IM02 , MLAY , MNPSF , MNPS 1 , NEWLY , NLAY
     INTEGER NPSF,NPSF1,SDEBUG,SOUT

     REAL ACTIVE, BIND, D50,D50IK, PCIMO,PCLYST

     RSAL ACFRAC(NPSF) ,ACT1(NPSF1) ,DIA(NPSF)
     REAL LAYCOM (M LAY, KNPSF) ,LAYTHK (MLAY)

     LOCAL VARIABLES

     INTEGER HIGH,I,J,K,LOW
     INTEGER LASTLY
     REAL SUM,THK


2000 FORMAT (' 0 ',' BED COMPOSITION AFTER FORMATION OF ACTIVE LAYER')
2010 FORMAT (/, '0' , 'SUBROUTINE CLEAN1)

     INITIALIZE

     DO 10 I «= 1,NPSF1
        ACT1(I)  =0.
  10 CONTINUE
     SUM =0.
     D50 -0.
     D50IM =0.
     PCIMO =0.
     LASTLY « NEWLY +1
     IF (SDEBUG.GE.3) WRITE (SOOT, 2010)

     COMBINE WHOLE LAYERS WITHIN ACTIVE DEPTH

     IF ( LAST LY.GT. NLAY) GO TO 20
        SUM =0.
        DO 30 I = LASTLY, NLAY
           THK - LAYTHK (I)
           SUM * SUM +THK
           DO 30 J - 1,NPSF
              K = J +1
              ACT1(K) « ACTl(K)
  30    CONTINUE
        ACTl(l)  o SUM
        DO 40 J = 2,NPSF1
           ACTl(J) * ACT1(J)/SUM
  40    CONTINUE
C
C
C
C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
                                   LAYCOM (I , J) *THK
C
C
C
  20 CONTINUE

     ADD IN THE PART OF NEWLY WITHIN THE ACTIVE DEPTH.
     IF PCLYST>BIND THEN NEWLY IS COHESIVE AND SHOULD
00004000
00005000
00006000
00007000
00006000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
000440.'. 0
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       264

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
    NOT BE ADDED HERE.

    IF (PCLYST.GT.BIND)  GO TO 100
       THK = ACTIVE -SUM
       IF (THK.LE.O.)  GO TO 100

       RESET LR.YER THICKNESS

       TEMP = LAYTHK(NEWLY)  - THK
       IF (TEMP.GT.l.OE-04)  GO TO 70

          LAYER UNREALISTICALLY THIN - COMBINE WITH ACTIVE LAYER

          THK = LAYTHK(NEWLY)
          ACTIVE - SUM +THK
          LASTLY = LASTLY -1
          GO TO 80

 70    LAYTHK(NEWLY) - TEMP
 80    CONTINUE
       ACTl(l)  = ACTIVE
       DO 50 I  = 2,NPSP1
          J = I -1
          ACTl(I)  - (  ACT1(I)*SUM + LAYCOM(NEWLY,J)*THK )/ACTIVE
 50    CONTINUE .

    CHECK FOR CREATION OF AN ADDITIONAL LAYER £ BLEND LAYERS
    IF MORE THAN MLAY  HAVE BEEN FORMED.
    TO ACCEPT RELEASE  OF SAND FROM A COHESIVE LAYER, A NULL
    LAYER IS ADDED IF  THE COHESIVE LAYER IS THE TOP LAYER.

100 CONTINUE
    IF (LASTLY.LE.MLAY)  GO TO 110
       CALL BLEND(   MLAY,MNPSF,NPSF,SDEBUG,SOUT,
   1                NLAY,LAYCOM,LAYTHK  )
       LASTLY = NLAY +1
110 CONTINUE
    NLAY « LASTLY

    ADD IN ACT1

    LAYTHK(NLAY) = ACT1(1)
    DO 120 I * 1,NPSF
       LAYCOM(NLAY,I)  - ACTl(I +1)
120 CONTINUE

    IF (SDEBUG.LT.3) GO TO 200
       WRITE(SOUT,2000)
       CALL SEDPRT(   MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOM,LAYTHK)
200 CONTINUE

    RECOMPUTE D50 FOR  ACTIVE LAYER FOR BOTH MOBILE
    AND IMMOBILE MATERIAL

    IF (IM02.LT.3) GO TO 210
       LOW «3
       HIGH « IM02
       CALL DIAM50(   HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT,
   1               ACT1,DIA,
   2                  ACFRAC,
00064000
00065000
00065000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
OOOB1000
00082000
00083000
00084000
0008SOOO
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                      265

-------
     3                  D50  )                                            00124000
  210 CONTi"'. 'E                                                           00125000
C                                                                        00126000
      IF (IM02.EQ.NPSF) GO TO 230                                        00127000
         LOW = IM02 +1                                                   00128000
         HIGH = NP3F                                                     00129000
         DO 220 I - LOW,HIGH                                             0013000C
            PCIMO - PCIMO -t- ACTld+1)                                    00131000
  220    CONTINUE                                                        00132000
         C'.'.'l DIAM50 (   HIGH,LOWrNPSF,NPSFl,SDEBUG,SOUT,                 00133000
     i               ACT1,DIA,                                            00134000
     2                  ACFRAC,                                          00135000
     3                  D50IM  )                                         00136000
  230 CONTINUE                                                           00137000
C                                                                        00138000
      RETURN                                                             00139000
      END                                                                00140000
                                       266

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE COHESV(   IM02,MLAY,MNPSF,NEWLY,NPSF,NPSF1,SDEBUG,
    1                  SOUT,TIKINT,ARMF,ASCR,BEDSHR,BSCR,BULKD,
    2                  CSCR,DSCR,D50IK,PCLYST,ULTACT,ACT1,CRTSHR,
    3                  SCRCO\',SCREXP,
    4                     NLAY,RECOMP,LAYCOM,LAYTHK,MASSED )

     ROUTINE TO HANDLE SCOUR OF CLAY AND SILT MATERIAL

     PARAMETERS

     INTEGER IH02,MLAY,NEWLY,NLAY,NPSF,NPSF1
     INTEGER RECOUP,SDEBUG,SOUT

     REAL ARMF,ASCR,BEDSHR,BSCR,BULKD,CSCR,DSCR
     REAL D50IM,PCLYST,TIMINT,ULTACT

     V.3AL ACTl(NPSFl) ,CRTSHR(2) ,LAYCOM(MLAY, MNPSF)
     REAL LAYTHK(MLAY),MASSED(NPSF)
     REAL SCRCON<2),SCREXP(2)

     LOCAL VARIABLES

     INTEGER HIGH,I,NLAY1

     REAL ALPHA,BETA,MINSC,PCIMO
     REAL REDUCT,REDCT1,REDCT2,SCOUR,THK

2000 FORMAT('0','SCOUR COHESIVE LAYER ',15)
2010 FORMAT(IX,'SIZE  FRACTION ',15,' DEPTH RATE OF SCOUR ',E12.5)
2020 FORMAT(IX,'COHESIVE LAYER ',15,' DESTROYED')


     IF (SDEBUG.GE.3)  WRITE(SOUT,2000) NEWLY

     GET REDUCTION FACTOR FOR OVERLYING SAND

     THK * ACT1(1)
     REDCT1 -  1. - THK/ULTACT
c
c
r
     GET REDUCTION FACTOR DUE TO ARMORING LAYER

     THK - 0.
     SIGH » IM02 +1
     IF (HIGH.GT.NPSF)  GO TO 20
        PCIMO - 0.
        DO 10 I - HIGH,NPSF
           PCIMO - PCIMO +ACT1(I +1)
  10    CONTINUE
        THK • ACT1(1)*PCIMO
  20 CONTINUE
     REDCT2 - 1. - THK/(ARMF*D50IM)

     GET SCOUR PARAMETERS

     REDDCT - AMIN1(REDCT1,REDCT2)
     ALPHA - ASCR/PCLYST +BSCR
     BETA - CSCR/PCLYST +DSCR
     MINSC - l.OE+10
     DO 30 I - 1,2
        SCOUR - REDUCT*ALPHA*SCRCON(I)*
00004000
00005000
00006000
00007000
00008000
0000900C
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      267

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   1             (8EDSHR - BETA*CRTSHR(I) }**SCREXP(I)
       SCOUR = SCOUR/ (  BULKD*(LAVCOM(NEWLY,I) +0.00001) )
       IF (SDEBUG.GE. 3)  WRITE (SOUT, 2010) I , SCOUR
       IP (SCOUR. LT.MINSC) MINSC =» SCOUR
 30 CONTINUE
    SCOUR = MINSC*TIMINT

    SCOUR = DEPTH OF SCOUR IN THE TIME INTERVAL
    THIS DEPTH MAY BE LIMITED BY THICKNESS OF COHESIVE LAYER,
    CHANGES IN ARMORING THICKNESS AND CHANGES IN DEPTH OF
    OVERLYING SAND.  THE LAST TWO WILL NOT BE CONSIDERED HERE •
    THEIR EFFECTS ARE CARRIED TO THE NEXT TIME STEP.

    IF (SCOUR. LT.LAYTHK (NEWLY))  GO TO 60

       LAYER DESTROYED - FIND MASS OF SEDIMENT AFFECTED

       WRITE (SOUT, 2020)  NEWLY
       DO 40 I = 1,NPSF
          MASSED (I)  = BULKD*LAYTHK (NEWLY) *LAYCOM (NEWLY, I)
 40    CONTINUE
       RECOUP =1

       RENUMBER INTERNAL LAYERS

       NLAY1 = NLAY -1
       IF (NEWLY. EQ.NLAY)  GO TO 80
          LAYTKK (NLAY1)  = LAYTHK (NLAY)
          DO 50 I = 1,NPSF
             L/iYCOM(NLAYl,I)
 50       CONTINUE
 80    NLAY " NLAY1
       GO TO 100
                                 LAYCOM (NLAY, I )
    UPDATE COHESIVE LAYER THICKNESS
    FIND MASSES OF SEDIMENT REMOVED

 60 CONTINUE
    LAYTHK(NEWLY)  - LAYTHK(NEWLY)  - SCOUR
    DO 70 I = 1,NPSF
       MASSED(I) = BULKD*SCOUR*LAYCOM(NEWLY,I)
 70 CONTINUE

100 CONTINUE
    RETURN
    END
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
                                      268

-------
 c
 c
 c
 c
 c
 c
 c
 c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE DIAM50(   HIGH,LOW,NPSF,NPSF1,
    1                  SDEBUG,SOUT,ACT2,DIA,
    2                     ACFRAC,
    3                     D50  )

     THIS ROUTINE COMPUTES DIAMETER OF MATERIAL WITH 50% BY
     WEIGHT FINER FOR THE RANGE OF PARTICLE SIZE FRACTIONS
     'LOW1 TO 'HIGH1 IK THE CURRENT ACTIVE LAYER.  THICKNESS
     AND COMPOSITION OF ACTIVE LAYER ARE STORED IN ACT2

     PARAMETERS

     INTEGER HIGH,LOW,NPSF,NPSF1,EDEBUG,SOUT

     REAL D50
     REAL ACFRAC(KPSF),ACT2(NPSF1),DIA(NPSF)

     LOCAL VARIABLES

     INTEGER I
     REAL COMP50,DD,DX,SUM

     WRITE FORMAT

2000 FORMAT('0','D50 OF ACTIVE LAYER FOR SIZE RANGE ',13,' TO ',
    1           13,' IS - ',E12.5)

     FIND CULMULATIVE FRACTIONS

     SUM = 0.
     DO 10 I - LOW,HIGH
        SUM -  SUM +ACT2(I +1)
        ACFRAC(I)  «  SUM
  10 CONTINUE
     COMP50 -  0.5*SUM
     J  - LOW

     FIND PARTICLE SIZE WITH  50%  FINER IN RANGE OF SIZES
     HIGH TO LOW

  20 CONTINUE
     IF (ACFRAC(I).GE.COMP50)  GO  TO 30
        I « I  +1
        IF (I.LE.HIGH)  GO TO  20

  30 IF (I.NE.LOW) GO TO 40
        D50 *  DIA(I)
        GO TO  60

  40 IF (ACFRACd  -1J.NE.O.)  GO TO  50
        D50 -  DIA(I)
        GO TO  60

     INTERPOLATE FOR D50

     HERE WE HAVE  A  KLUDGE  TO  ELIMINATE  DISCONTINUITIES  IN D50
     CALCS WHEN  ACFRAC(1-1) GETS  CLOSE TO ZERO.  THIS PROBLEM
     ARISES FROM THE REPRESENTATION  OF THE PARTICLE DISTRIBUTION
     AS A STEP FUNCTION  6  DIA  AS  A  MEDIAN PARTICLE SIZE  OVER
     A  RANGE.  IDEALLY PARTICLE  SIZE  DISTR SHOULD BE CONTINOUS.
 00004000
 00005000
 00006000
 00007000
 00008000
 C0009000
 00010000
 00011000
 00012000
 00013000
 00014000
 00015000
 00016000
 00017000
 00018000
 00019000
 00020000
 00021000
 00022000
 00023000
 00024000
 00025000
 00026000
 00027000
 00028000
 00029000
 00030000
 00031000
 00032000
 00033000
 00034000
 00035000
 00036000
 00037000
 00038000
 00039000
 00040000
 00041000
 00042000
 00043000
 00044000
 00045000
 00047000
 00048000
 00049000
 00050000
 00051QOO
 00052000
 00053000
 00054000
 00055000
 00056000
 00057000
 00058000
 00059000
00059010
00059020
00059030
00059040
00059050
                                      269

-------
                                                                      00059060
50 CONTINUE                                                           00059070
   FACT - 1. - EXP(-100.'ACFRAC(I-1))                                  00059080
   ACKRAC(I) = COMP50 + FACT*(ACFRAC(I)  - COMP50)                     00059090
   DD = ACFRAC(I) - ACFRAC{I -1)                                      00060000
   DX = COMP50 - ACFRAC(I -1)                                         00061000
   DSO = DIA(1 -1) +(DIA(J) -DIA(I -1))*DX/DD                         00062000
                                                                      00063000
60 •/••iNTIMUE                                                           00064000
   I.-' (SDEBUG.GE.3) WRITE (SOUT, 2000) LOW,HIGH,D50                     00065000
                                                                      00066000
   RETURN                                                             00067000
   END                                                                00068000
                                   270

-------
c
c
c
c
c
c
c
c
c
c
c
    SUBROUTINE DIFFLD(   IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS,
   1                  USERCH,NO,SEDMT,
   2                     EFLAG,
   3                     DD,TRBVEC,FACTER,FACTLS,
   4                  RCHTRB)

    INPUT  DIFFUSE  LOADING  INFORMATION  FOR CHANNEL NETWORK

    PARAMETERS

    INTEGER  EFLAG,IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS
    INTEGER  DD(2,NSEGS).TRBVEC(NREA),USERCH(MAXRCH)

    REAL FACTER,FACTLS,NO,SEDMT
    REAL RCHTRB(MAXTRB)

    LOCAL

    INTEGER  DD1,DD2,I,IBAS,IPOS,JPOS,NS
    INTEGER  REACH,SEG
    INTEGER  SEGN(5)

    REAL AREA(5),HEAD(20)

    READ FORMATS

1000 FORMAT(20A4)
1010 FORMAT(7X,F10.0)
1020  FORMAT(I5,5(I5,F10.0))
1030  FORMAT(315)
 C
 C
 C
 C


 C
 ;     WRITE  FORMATS

 2000 FORMAT('0',20A4)
 2010 FORMAT('0','LSRO MULTIPLIER «',E12.5)
 2020 FORMATCO1 ,'EROS MULTIPLIER -',E12.5)
 2030 FORMAT(1X,I5,5(I5,F10.1))
 2040 FORMAT(IX,315)
 2050 FORMAT('l')
     INITIALIZE

     WRITE(IOUT,2050)
     DO 10 I* 1,NREA
        TRBVEC(I)  -0
  10 CONTINUE

     FIND MULTIPLICATION  FACTORS

     READ(IN,1000)  HEAD
     WRITE(IOUT,2000)  HEAD

     READ(IN,1010)  FACTLS
     WRITE(IOUT,2010)  FACTLS

     IF  (SEDMT.EQ.NO)  GO  TO 20
        READ(IN,1010)  FACTER
        WRITE(IOUT,2020)  FACTER
   20 CONTINUE
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
0001BOOO
00019000
00020000
OOC23 TOO
00022UOO
00023000
00024000
00025000
00026000
00027000
00026000
00029000
00030000
00031000
00032000
00033000
00034000
 00035000
00036000
 00037000
 00038000
 00039000
 00040000
 00041000
 00041100
 00042000
 00043000
 00044000
 00044100
 00045000
 00046000
 00047000
 00048000
 00049000
 00050000
 00051000
 00052000
 00053000
 00054000
 00055000
 00056000
 00057000
 00058000
 00059000
 00060000
 00061000
                                         271

-------
c
c
c
    READ IN TRIE AREAS -  THEY WILL BE STORED IN RCHTRIB LATER
    NOTE:  MAX OF 5 TRIE AREAS PER REACH

    READ(IN,1000)  HEAD
    WRITE(IOUT,2000)  HEAD
    TBAS =1

 30 CONTINUE
    READ(IN,1020)  REACH,{(SEGN(I),AREA(I)),1= 1,5)
    WRITE(IOUT,2030)  REACH,((SEGN(I),AREA(I)),1=1,5)
    IF (REACH.EQ.-l)  GO TO 100
       IPOS =-1
       DO  40 1=  1,5
          SEG =  SEGN(I)
          IF (SEG.EQ.0) GO TO 50
          IF (SEG.GT.NSEGS)
   1         CALL KILL(13,EFLAG,IOUT,SEG,NSEGS}
          IPOS  = IPOS +2
          RCHTRB(IBAS +IPOS)  «= SEG
          RCHTP.B(IBAS +IPOS +1)  = AREA(I)
       CONTINUE
C
C
C
C
C
C
C
   40
   50
       SET POINTERS INTO RCHTRIB FOR THIS REACH
       JPOS " NO.  OF SEGMENTS FOR THIS REACH

       JPOS = IPOS/2 +1
       RCHTRB(IBAS)  =» JPOS
       TRBVEC(USERCH(REACH))  - IBAS

       RESET BASE

       IBAS = IBAS -I-IPOS +2
       GO TO 30
C
C
C
C
C
100 CONTINUE
    IF ((IBAS -1).GT.MAXTRB)
   1   CALL KILL(8,EFLAG,IOUT,IBAS,MAXTRB)

    READ FILE* ASSOCIATED WITH SEGMENTS
    DD(I,1) «= LSRO
    DD(I,2) •= EROS

    READ(IN,1000)  HEAD
    WRITE(IOUT,2000)  HEAD

    DO 110 I « 1,NSEGS
       READ(IN,1030)  NS,DD1,DD2
       WRITE(IOUT,2040) NS,DD1,DD2
       IF  (DDl.GT.MFILE)
   1      CALL KILL{11,EFIAG,IOUT,DD1,MFILE)
       IF  (DD2.GT.MFILE)
   1      CALL KILL(11,EFLAG,IOUT,DD2,MFILE)
       DD(1,NS) =  DD1
       DD(2,NS) -  DD2
110 CONTINUE

    RETURN
    END
00062000
00063000
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
0011100C
0011200C
0011 30.0C
0011400C
00115000
00116000
00117000
00118000
00119000
                                      272

-------
C

C

C
'H NO'
1 POIN '
•L SE'
'ES '
'PART1
1 . - '
'T DE'
'DIME1
•DISC'
1 ICLE '
i i
,
,'PTH '
,'NT D'
, ' HARG '
,' SIZ'
•FLOW'
'VALU1
'ISCH1
'E RA'
'E FR1
,' RAT1
,'ES '
, ' ARGE '
, 'TES '
, ' ACTI '
      SUBROUTINE  FILEIN(    BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,
     1                 ENDMON,ENDYR,IN,IOUT,MAXRCH,MNPSF3,MREA,
     2                 NPSFP3,NREA,TBLKSZ,TIMIN,
     3                 FTN,RCH,USERCH    )

      INTEGER  BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON,ENDYR
      INTEGER  FILEIJ,I,IN,IOUT,J,K,MAXRCH,MNPSF3,MREA,NPSFP3
      INTEGER  NREA,REACH,TBLKSZ
      INTEGER  FLNM(NPSFPS),FTN(MREA,MNPSF3),RCH(MREA),USERCB(MAXRCH)

      INTEGER*4 TIMIN

      REAL  HEADER(31),LABEL(20),VAL(TBLKSZ)

      DATA  HEADER/'REAC'
     1            'ES   '
     2            'TOTA1
     3            ' RAT1
     4            'FOR  '
     5            ' ON   ' /
•»

1010 FORMAT(1615)
1020 PORMAT(20A4)
*

2010 FORMAT(IX,1615}
2020 FORMAT('0',20A4)

      INITIALIZE  1ST  COLUMN IN EVERY ROM TO -1>  IF UNCHANGED BY
       FURTHER INPUT,  THE CORRESPONDING REACH INFORMATION WILL
       NOT  BE  WRITTEN TO DISK.

      DO 10 I-1,NREA
         FTN(I,1) - -1
   10 CONTINUE

      READ  USER LABEL FROM  INPUT  SEQUENCE

      READ(IN,1020)  (LABEL(I),1-1,20)
      WRITE(IOUT,2020)  (LABEL(I),1-1,20)
      READ(IN,1020)  (LABEL(I),1-1,20)
      WRITE(IOUT,2020)  (LABEL(I),I«1,20)

      READ  FILE NUMBERS FOR FILES  TO WHICH FLOW RATES,  POINT DEPTHS,
       AND  SEDIMENT DISCHARGE  DATA WILL BE WRITTEN

      DO 20 I-1,NREA
         READ(IN,1010)  REACH,(FLNM(J),J-1,NPSFP3)
         WRITE(IOUT,2010)  REACH,(FLNM(J),0-1,NPSFP3)
         IF (REACH.LT.O) GO TO 40
         REACH -  DSERCH(REACH)
         DO 30 J»1,NPSFP3
           FTN(REACH,J) -  FLNM(J)
   30    CONTINUE
   20 CONTINUE
   40 CONTINUE

      CHOSE APPROPRIATE HEADER AND WRITE IT TO EACH DISK FILE
       (SKIP  IF INFORMATION IS NOT TO BE WRITTEN  FOR A  GIVEN
        REACH, OR IF  THE FILE  NUMBER IS EQUAL TO  ZERO)
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
00004000
00005000
00006000
00006010
00006100
00006200
00007000
00007100
00008000
00008100
00008200
00008300
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00018100
00018110
00018120
00018130
00018200
00018300
00018400
00018500
00018600
00018700
00018800
00018900
00018910
00018920
00018930
00018940
00018950
00018960
00018970
00019000
00020000
00021000
00022000
00023000
00024000
00024110
00024111
00024120
00024200
00024300
00024400
00025000
00025100
00026000
00027000
00027100
00027200
00028000
                                      273

-------
DO

DO













100

110








120

130
900 I=1,NREA
IF (FTN(I,1) .EQ.-l) GO TO
800 J=1,NPSFP3
IF (FTN(I,J) .EQ.O) GO TO
VAL(i) = HEADER; i)
VAL (2) = HEADER (2)
VAL(3) = HEADER(3)
VAL (4) = RCH(I)
VAL (5) = HEADER(4)
VAL (6) = HEADER(4)
IF (J.NE. 1) GO TO 110
VAL (7) = HEADER (5)
VAL (8) = HEADER (6)
VAL (9) = HEADER (7)
DO 100 K=10,20
VAL(K) = HEADER (4)
CONTINUE
GO TO 200
CONTINUE
IF (J.NE.2) GO TO 130
VAL(7) = HEADER(8)
VAL(8) « HEADER(9)
VAL(9) = HEADER(IO)
VAL(IO) - HEADER(ll)
VAL(l.l) = HEADER(12)
DO 120 K-12,20
VAI,j:\) ~ HEADER (4)
CONTINUE
GO TO 200

900

800

























IF (J.NE.NPSFP3) GO TO 150
VAL(7) = HEADER(13)
VAL(8) = HEADER(14)
VAL(9) = HEADER(15)
VAL(IO) = HEADER(1€)
VAL(ll) - HEADER(17)
VAL(12) = HEADER(IB)
VAL(13) * HEADER(19)
VAL(14) = HEADER(20)
DO 140 K=15,20
   VAL(K) « HEADER(4)
140

150














200


CONTINUE
GO TO 200
CONTINUE
VAL(7) «= HEADER(21)
VAL(8) = HEADER(22)
VAL(9) = HEADER(23)
VAL (1C)
VAL(ll)
VAL (12)
VAL (13)
VAL(14)
VAL(15)
VAL(16)
VAL (17)
VAL(18)
VAL (19)
VAL (20)
HEADER (24)
HEADER(25)
HEADER (26)
HEADER(27)
HEADER(28)
HEADER (29)
HEADER(30)
HEADER(Sl)
J - 2
HEADER (4)
HEADER(4)
CONTINUE
VAL (21) = BGNHR
VAL (22) = BGNDAY
00029000
00029100
00030000
00030100
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
00064000
00065000
00066000
00067000
00068000
00068100
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
 00080000
00081000
00082000
 00083000
 00084000
 00085000
                             274

-------
         VAL{23)  = BGNMON                                               00086000
         VAL(24)  = BGNYR                                                00087000
         VAL(25)  = ENDHR                                                00088000
         VAL(26)  * ENDDAY                                               00089000
         VAL(27)  = ENDMON                                               00090000
         VAM28)  = ENDYR                                                0009100C
         VALC29)  = TIMIN                                                OOOS200C
         VAL(30)  = 3                                                    00093000
C                                                                       000&4000
         DO 700 K=B1,TBLKSZ                                             00094100
            VAL(K) = HEAD5R(4)                                           0009420C
  700    CONTINUE                                                       00094300
C                                                                       00094400
         FILEIJ = FTN(I,J)                                               00095000
         WRITE(FILEIJ)  VAL                                              00096000
c                                                                       00097000
  800 CONTINUE                                                          00098000
  900 CONTINUE                                                          00099000
      RETURN                                                            00100000
      END                                                               00101000
                                       275

-------
c
C WE
C
C
C
C
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
 SUBROUTINE GETSON (    FATIND, NREA, RTIND, LEV,
1                  ORD,RCH,TRIB,
2                     SONIND                    )

FIND THE ID * OF A SON,  GIVEN THE FATHER

 PARAMETERS

 INTEGF.R FATIND, NREA, RTIND, SONIND
 INTEGER LEV (NREA) ,ORD(30) ,RCH (NREA) ,TRIB (NREA)

 LOCAL

 INTEGER FATHER,!


 SONIND= 0
 FATHER= RCH( FATIND)
 1= RTIND

 HAVE WE FOUND THE SON?

 IF(TRIB (I) .NE. FATHER) GO TO 5

 'LEV IS ZERO UNTIL A SON IS FOUND.  IT THEN BECOMES A FLAG
 & IS USED TO AVOID SELECTING THE SAME SON TWICE,  WHERE A
 FATHER HAS MORE THAN ONE SON.

 IF(LEV(I) .NE.O) GO TO 5
 SONIND=I
 RETURN
 I IS ZERO FOR THE REACH WHICH WILL BE THE FINALLY EXECUTED C.-E

 IF(I.NE.O) GO TO 2
 RETURN
 END
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
0001200C
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
                                      276

-------
c
c
c
c
c
c
c
c
c
c
c
      SUBROUTINE HDPRNT(    YR,MON,DAY,HR,KIN,SEC,EFLAG,HDPOUT,IOUT,
     1                  KLINES,PRFREQ,REACH,TIMINT,
     2                  AE,AMBAN,QE,QMEAN,TE,YE,YMEAN,
     3                     KNTHY,LINEHY,PRMONH,PRYRH,
     4                  ACCA,ACCQ,ACCY,VOLMON,VOLYR  )
      PRINT OUT RESULTS OF HYDRAULIC CALCS

      PARAMETERS

      INTEGER YR,MON,DAY,HR,Mill,SEC
      INTEGER EFLAG,HDPOUT,IOUT,KNTHY,LINEHY,MLINES
      INTEGER PRMONH,PRYRK,PRFREQ,REACH

      REAL ACCA,ACCQ,ACCY,AE,AMEAN,QE,QMEAN,TE,TIMINT
      REAL VOLMON,VOLYR,YE,YMEAN

      LOCAL VARIABLES

      INTEGER TIMPMO,TIMPR,TIMPYR
      REAL ABAR,QBAR,YBAR
 2000 FORMAT('I1,'RESULTS OF HYDRAULIC ROUTING1,/,'0',
     1     'REACH YEAR MO DA HR MIN SEC     DEPTH      AREA       TOP1
     2       SX.'DISCH  TYPE1,/,'   NO.•,T47,'OF1,22X,'M=MEAN',/,IX,
     3       T45,'X-SECT',19X,'P-POINT',/)
 2010 FORMAT(1X,I3,I7,3I3,2I4,2E10.3,10X,E10.3,'    M')
 2020 FORMAT(IX,'REACH1,13,' TOTAL FOR MON',14,12X,E12.5)
 2030 FORMAT(IX,'REACH',13,' TOTAL FOR YR',15,12X,E12.5)
 2040 FORMAT(1X,I3,I7,3I3,2I4,4E10.3,'   P')

      CHECK ERROR FLAG

      IF (EFLAG.EQ.O) GO TO 150
         HDPOUT =3
         PRFREQ * KNTHY +1
  150 CONTINUE
C
C
C
c
c
c
c
c
c
c
c
c
c
      CHECK FOR PRINTING HEADER

      IK (LINEHY.NE.O) GO TO 100
         WRITE(IOUT,2000)
         LINEHY - LINEHY +6
  100 CONTINUE

      SET FLAGS

      KNTHY » KNTHY +1
      TIMPR =0
      TIMPMO =0
      TIMPYR =0

      IF (PRFREQ.LT.O) GO TO 10

      IS IT TIME TO PRINT OUT?

      IF (KNTHY.NE.PRFREQ)  GO TO 20
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
0005SOOO
00059000
00060000
00061000
00062000
00063000
                                       277

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
      TIMPR =1

      EK " OP MONTH

10    IF (Mnr; .EQ.PRMONH)  GO TO 20
         Ti« •:-; -1
         TI'v-'MO =1
         IF (YR.EQ.PRYRH)  GO TO 20
            TIMPYR =1

20 CONTINUE
   IF (HDPOUT.EQ.2)  GO TO 50

   PRINTING MEAN Y,A,Q -  ACCULMULATE VALUES OVER PRINT INTERVAL

   ACCY =ACCY +YMEAN
   ACCA =ACCA 4-AMEAN
   ACCQ =ACCQ +OMEAN
   IF (TIMPR.EQ.O) GO TO  900

   FIND MEAN VALUES  & DO  OUTPUT

      YBAR =ACCY/KNTHY
      ABAR =ACCA/KNTHY
      QBAR =ACCQ/KNTHY
      VOLMON -VOLMON +ACCQ
      ACCY =0.
      ACCA -0.
      ACCQ =0.
      WRITE(IOUT,2010) REACH,YR,MON,DAY,HR,MIN,SEC,YBAR,ABAR,OBAR
      LINEHY =LINEHY +1
      IF (TIMPMO.EQ.O) GO TO 40

         MONTHLY OUTPUT

         VOLMON =VOLMON*TIMINT
         WRITE(IOUT,2020)  REACH,PRMONH,VOLMON
         LINEHY =LINEHY +1
         VOLYR «=VOLYR +VOLMON
         VOLMON =0.
         PRMONH =MON
         IF (TIMPYR.EQ.O)  GO TO 40

            YF.ARLY OUTPUT

            WF.ITE {IOUT, 2030) REACH, PRYRH,VOLYR
            LINEHY -LINEHY +1
            VOLYR =0.
            PRYRH =YR
   40
      CONTINUE
      KNTHY =0
C
C
c
   POINT VALUES ?

50 IF (HDPOUT.EQ.l)  GO TO 900

   IF (TIKPR.EQ.O)  GO TO 900
      WRITE(IOUT,2040) REACH,YR,MOK,DAY,HR,MIN,SEC,YE,AE,TE,QE
      LINEHY =LINEHY +1
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
OOOB4000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                       278

-------
         KNTHY =0                                                       00124000
C                                                                       00125000
C                                                                       00126000
C     CHECK LINE COUNT                                                  00127000
C                                                                       00128000
  900 CONTINUE                                                          00129000
      IF ((LINEHY -t-4) .GT.MLINES)  LINEHY =0                              00130000
C                                                                       00131000
      RETURN                                                            00132000
      END                                                               00133000
                                      279

-------
 c
 c
 c
 c
 c
 c
c
c
c
c
c
c
 2.000
 2010
 20 20
 2C iO
 2040
 2050
C
C
C
C
C
c
 14
C
c
 SUBROUTINE HYPROP(    ELMTS,IBASE,TOUT,MCROS,MPTS,MSECS,
1                  MTAD,NPTS,PR,SSECS,NUM,SLOPE,NSSEC,X,Y,
2                     EFLAG,LOC,POINT,SSEC,A,P,TK,
3                     NLEV,TABLE                        )

 ROUTINE TO COMPUTE  HYDRAULIC  PROPERTIES OF A
 X-SECTION AND STORE VALUES IN A TABLE

 PARAMETERS

 INTEGER EFLAG,ELMTS,IBASE,IOUT,MCROS
 INTEGER MPTS,MSECS,MTAD,NLEV.NPTS,PR,SSECS
 INTEGER LOG(MCROS),POINT(MPTS),SSEC(MPTS)

 REAL NUM,SLOPE
 REAL A(MSECS) ,NSSEC (MSECS) ,P(MSECS) ,TABLE (MTAD)
 REAL TW(MSECS),X(MPTS),Y(MPTS)

 LOCAL

 INTEGER CROSNO, I, IFLAG, IL, IL1,1 POINT, IR, IR1
 INTEGER ISUB,ISURF,KK,PT,PT1,PT2

 REAL AREAT,Al,CON,PERIM,PI,SAREA,SCON,SQRTS,TA,TB
 REAL TOP,XH/XL,XR,Xl,X2,YMIN,YSURF/yi,Y2

 WRITE FORMATS

 FORMAT(1X,I5,4(3X,E10.4))
 FORMAT(IX,'CROSSING NO.',I6,' LOCATION-',16)
 FORMAT(1X,'IL OUTPUT ',4X,2F12.4,18)
 FORMAT!IX,'IR OUTPUT ',4X,2F12.4,18)
 FORMAT(IX,'CENTRE OUTPUT  ',2F12.4,I8)
 FORMAT(IX,'SAREA-',E12.4,'  PI*',EJ2.4)


 SORT CROSS SECTION  POINTS  IN  ASCENDING ORDER OF  ELEVATION,
 USING POINTERS

 INITIALISE POINTERS
 DO 9 PT«=1,NPTS
 POINT(PT)= PT
 SO?.T LOOP
 IFLAG=0
 DO 14 PT= 2,NPTS
    PT1= POINT(PT-1)
    PT2« POINT(?T)
    IF(Y(PT2).GE.Y(PTl)) GO  TO 14
    ELEVATIONS ARE OUT OF  ORDER - SWITCH THE POINTERS
    IPOINT= POINT(PT)
    POINT(PT)= POINT(PT-1)
    POINT(PT-1 ) = IPOINT
    IFLAG=1
 CONTINUE
 CHECK WHETHER SORT  IS  COMPLETE
 IF(IFLAG.EQ.l) GO TO 7
 PT1 = POINT(1)
 YMITJ- Y(PTl)

 FIND BOTTOM WIDTH OF SECTION  - WE USE  SORT  INFO  OBTAINED  ABOVE
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
0001BOOO
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
90055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
00064000
                                       280

-------
c
c
      TOP= 0.
      DO 5 PT= 2,NPTS
         PT1= POINT (PT-1)
         PT2= POINT (PT)
C        IF THE DEPTHS ARE DIFFERENT WE ARE OFF THE BOTTOM
         I?(Y(PT1) .NE.Y(PT2))  GO TO 11
C        IF POINTS ARE NOT CONTIGUOUS, NO INCREMENTAL BOTTOM W
         IF( (PT2-PT1) .NE.l) GO TO 5
         TOP= TOP+X(PT2)-X(PT1)
 5    CONTINUE
C     STORE PROPERTIES FOR BOTTOM LEVEL OF CROSS SECTION IN TABLE
 11   TABLE (IBASE)«= 0.
      TABLE { IBASE+1 ) - TOP
      TABLE (IBASE+2)= 0.
      TABLE (IBASE+3)= 0.

      FIND SECTION PROPERTIES - REPEAT FOR EACH DIFFERENT Y
      NLEV« 1
      I «= I BASE
      WRITE (IOUT, 2000) NLEV,TABLE (I) , TABLE (1+1) ,TABLE(I+2) , TABLE (1+3)
      SORTS = SORT (SLOPE)
      DO 23 ISURF= 2,NPTS
         PT1= POINT (ISURF-1)
         PT2= POINT (ISURF)
         IF(Y(PT2) .EQ.Y(PTl))  GO TO 23
         NLEV-NLEV+1
         YSURF- Y(PT2)
         SEARCH FOR POINTS WHERE WATER SURFACE AND CROSS SECT INTERSECT
         CROSNO» 0
         DO 200 PT=1,ELMTS
            IF(Y(PT).LT.YSURF.OR.Y(PT+1) .GE.YSURF) GO TO 70

            FOUND A LEFT HAND CROSSING

            CROSNO=-CROSNO-H
            IF (CROSNO.GT.MCROS)
     1         CALL KILL(7,EFLAG,IOUT,CROSNO,MCROS)
            LOC(CROSNO)-PT
            IF(PR.EQ.O)  GO TO 200
            WRITE (IOUT, 2010) CROSNO,LOC (CKOSNO)
            GO TO 200
   70       IF(Y(PT) .GE.YSURF. OR. Y(PT-t-l) .LT.YSURF) GO TO 200

            FOUND A RIGHT HAND CROSSING

            CROSNO-CROSNO+1
            IF (CROSNO.GT.MCROS)
     1         CALL KILL(7,EFLAG,IOUT,CROSNO,MCROS)
            LOC(CROSNO)-PT
            IF(PR.EQ.O)  GO TO 200
            WRITE (IOUT, 2010) CROSNO,LOC(CP,O3NO)
  200    CONTINUE

         SET UP TO COMPUTE AREA,PERIMETER,K,ETC

         DO 150 I=1,SSECS
C
C
C
C
c
c
c
c
c
  150
            TW(I)«0.0
         P(I)=0.
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
OC109000
00110000
00111000
00112000
001130-00
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00122000
00123000
00124000
00125000
                                       281

-------
c
c
c
c
c
c
c
c
c
c
c
  20
c
c
c
c
c
c
 30
c
c
c
SET LIMITS FOR LOCATION OF BOUNDARY CHECKS

DO 250 KK=1,CROSNO,2

    CO<9UTE THE SPECIAL END VALUES ON THE LEFT HAND SIDE

   IL=LOC(KK)

   FIND XL VALUE FOE FIRST CHANNEL

   IL1=IL+1
   X1=X(IL)
   Y1=Y(IL)
   Y2=Y(IL1)
   XL=X1+(X2-X1) * (Yl-YSURF) / (Y1-Y2)

   PUT VALUES INTO SUBSECTION ASSOCIATED WITH IL

   ISUB=SSEC(IL)
   TA-X2-XL
   TB-Y3URF-Y2
   A1=0.5*TA*TB
   P1=SQRT(TA**2+TB**2)
   TW ( ISUB) =TW (ISUB) +TA
   A(ISUB)=A(ISUB)+A1
   P(ISUB) -P(ISUB)+P1
   IF(PR.EQ.O) GO TO 20
   w;-'.rrE(iouT,2020)  A
-------
  350
  250
c
c
c
c
c
c
c
  400
      IStB=SSEC(L)
      Xl=X(L)
      X2=X{L+1)
      Yl-YU)
      Y2=Y(L+1)
      XH*X2-X1
      TA=YSURF-Y1
      TB-YSURF-Y2
      A1-0.5*(TA4TB)*XK
      PI-SORT (XH**2-»-cYi-'ir2)**2)
      TW(ISUB)-TW(ISUB)+XH
      A(ISUB)-A(ISUB)+A1
      P(ISUB)«P(ISUB)+P1
      IF(PR.EQ.O) GO TO 350
      WRITE (IOUT, 2040) A(ISUB) ,P(ISUB) ,ISUB
   CONTINUE
CONTINUE

A,P,ETC HAVE NOW BEEN EVALUATED FOR EACH SUBSECTION

TOP-0.
AREAT-0.
SCON-0.
CON'O.
PERIM-0.
DO 400 I-l.SSECS
   SAREA-A(I)
   IF(A(I) .EQ.O) GO TO 400
   IF(PR.EQ.O) GO TO 4
   WRITE {IOUT, 2050) SAREA,P(I)
   CONTINUE
   ARCAT-AREAT+DAREA
   SCON= (NUM/NSSEC (I) ) *SAREA* (SAREA/P (I) ) **0 .666667
   CON=CON+SCON
CONTINUE

HAVE NOW EVALUATED X-SECTION PROPERTIES
SAVE VALUES IN TABLE
         I-I3ASE+(NLEV-1)*4
         TABLE(I)« YSURF-YMIN
         TABLE(I+1)- TOP
         TABLE(I+2)- AREAT
         TABLE(1+3)- CON*SQRTS
         WRITE(IOUT,2000) NLEV,TABLE(I),TABLE(I+1),TABLE(I+2)
   23 CONTINUE
      RETURN
      END
           00186000
           00187000
           00188000
           00189000
           00190000
           00191000
           00192000
           00193000
           00194000
           00195000
           00196000
           00197000
           00198000
           00199000
           00200000
           00201000
           00202000
           00203000
           00204000
           00205000
           00206000
           00207000
           00208000
           00209000
           0021000D
           00211000
           00212000
           00213000
           00214000
           00215000
           00216000
           00217000
           00218000
           OC219000
           00220000
           00221000
           00222000
           00223000
           00224000
           00225000
           00226000
           00227000
           00228000
           00229000
           00230000
,TABLE(1+3)00231000
           00232000
           00233000
           00234000
                                       283

-------
      SUBROUTINE INFO(
                        ATBLSZ , IN, IO'JT,MREA,MSEGS,NO,YES,
                        EFLAG,
                        •5GNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,ENDMON,
                     ENDVA,HDPOUT,MLINES,NREA,NSEGS,PRFREQ,TBLKS Z,
                     TIMINT,DIAG,DIFFUS,DISK,NUM,PTLOAD.SEDMT,WARN   )
C
C
C
C
C
C
     ROUTINE TO READ
     OPTIONS,  SYSTEM

     PARAMETERS
                     IN BASIC
                     SIZE ETC
                              INFORMATION ABOUT SIMULATION
C
C
C
C
C
C
C
C
C
     INTEGER ATBLSZ,BGNDAY,BGNHR,BGNMON,BGNYR,EFLAG,ENDDAY,ENDHR
     INTEGER ENDMON,ENDYR,HDPOUT,IN,IOUT,MLINES,MREA,MSEGS
     INTEGER NREA,NSEGS,PRFREQ,TBLKSZ
     INTEGER DIAG(IO)

     REAL DIFFUS,DISK,NO,NUM,PTLOAD,SEDMT,WARN,YES

     LOCAL VARIABLES

     INTEGER DIAGNS,DUM1,I

     REAL BASIN(20),RUNINF(20)

     READ FORMATS

1000 FORMAT(20A4)
1010 FORMAT{7X,I5)
     FORMAT(6X,15)
     FORMAT(5X,15)
     FORMAT(4X,F10.0)
1050 FORMAT(6X,A4)

     FORt-T.'i'(7x', F10.0)
     FORMAT(5X,A4)
 1020
 1030
 1040
 lr:70
 1080
     WRITE FORMATS

2000 FORMAT;'I1,20A4)
2CJO FORMAT;'0',20A4)
2C2o FORMAT;'O1,'SIMULATION STARTS:*,/,lx,
    1           'BGNHR  = ',15,/,IX,
    2           'BGNDAY «= ' ,15,7, IX,
    3           'BGNMON * ',15,/,IX,
    i           'BGN'::?.  = ',15 )
2.0'ii: FORMAT;'O1,'SIMULATION ENDS:',/,IX,
    1           'ENDHR  = ',15,/,IX,
    2           'EHPDAY = ',15,/,IX,
    3           'ENDMON = ',15,/,IX,
    4           'fcNDYR  = ',15 )
                •MODELING INTERVAL =
                •TIME BLOCK SIZE
                'NO. OF REACHES
                'NO. OF SEGMENTS   <
                'NUM (MANNINGS EQN)-
                'POINT LOAD OPTION =  ,A4)
                'DIFFUSE LOAD OPTION =  *,A4)
                •SEDIMENT SIMULATION =  ',A4>
                'OPTION FOR OUTPUT OF HYDRAULIC RESULTS =  ',15)
                'MONTHLY PRINT OUT ')
 2041
     FORMAT('0'
2C-H' FORMAT ('O1
2:vo FORMAT; 'O1
20/0 FORMAT<'0'
2oeo FORMAT;'0'
2090 FORMAT;'O1
2100 FORMAT;'0'
2110 FORMAT;*0'
2120 FORMAT;'0'
2140 FORMAT;'O1
                                      ,F10.0,' SECS')
                                      ,15,' INTERVALS
                                      ,15)
                                      ,15)
                                      ,F10.
                                             3)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00037100
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
                                        284

-------
 2150  FORMAT('0'
 2155  FORKAT('0'
 2160  FORMATCO'
 2170  FORMAT('0'
 2180  FORMATCO1
 2190  FORMATCO1
 2200  FORMATfO1
 2210  FORMATCO1
     1
 2220  FORMATCO1
 2230  FORMATCO1
 2240  FORMATCO'
 2250  FORMATCO1
C
C
C
              'NO PRINT OUT1)
              'PRINT OUT EVERY ',15,' INTERVALS')
              'DIAGNOSTIC OUTPUT OPTION =  ',15)
              '+++ERROR 051+++ILLEGAL OPTION FOR PTLOAD  ',A4)
              '•I-++ERROR 052+++ILLEGAL OPTION FOR DIFFUS  ' ,A4)
              '•i-v+ERROR 053-1-++ILLEGAL OPTION FOR SEDMT ',A4)
              'NO. OF LINES PER PAGE OF OUTPUT = ',15)
              '•h-n-ERROR 054+++ TIKE INTERVAL MUST BE AN  EXACT1,
              1  DIVISOR OF ONE DAY  (8640C  SECS)  jTIKINT  =  ',F10.1)
              'DISK OUTPUT OPTION =  ',A4)
              'WARNING MESSAGE SUMMARY OPTION =  ',A4)
              '+++ERROR 055-H++ILLEGAL OPTION FOR DISK  ',A4)
              •+++ERROR Q56-H++ILLEGAL OPTION FOR WARN  ',A4)
C
C
C
   DUMl »0

   READ(IN,1000) BASIN
   WRITE(IOUT,2000) BASIN

   READ(IN,1000) RUNINF
   WRITE(IOUT,2010) RUKINF

   PERIOD COVERED BY  SIMULATION

   READ(IN,1020) BGNHR
   READ(IN,1010) BGNDAY
   READ(IN,1010) BGNMON
   READ(IN,1020) BGNYR
   WRITE(IOUT,2020) BGNHR,BGNDAY,BGNMON,BGNYR

   READ(IN,1020) ENDHR
   READ(IN,1010) ENDDAY
   READ(IN,1010) ENDMON
   READ(IN,1020) ENDYR
   WRITE(IOUT,2030) ENDHR,ENDDAY,ENDMON,ENDYR

   READ(IN,1070) TIMINT
   WRITE(IOUT,2040) TIMINT
   IF (AMOD(86400.,TIMINT).LT.l.OE-06) GO TO 100
       WRITE(TOUT,2210)  TIMINT
       EFLAG =1
100 CONTINUE

    READ(IN,1010)  TBLKSZ
   WRITE(IOUT,2050)  TBLKSZ
    IF (TBLKSZ.NE.ATBLSZ)
   1    CALL KILL(1,EFLAG,IOUT,TBLKSZ,ATBLSZ)

    READ(IN,1030)  NREA
    WRITE(IOUT,2060)  NREA
    IF (NREA.GT.MREA)
   1    CALL KILL(2,EFLAGfIOUT,NF!TA,MREA)

    READ(IN,1020)  NSEGS
    WRITE(IOUT,2070)  NSEGS
    IF  (NSEGS.GT.MSEGS)
   1   CALL KILL(3,EFLAG,IOUT,NSEGS,MSEGS)
00063000
00064000
00065000
00066000
00067000
00068000
00069000
00070000
0-;07100C
00071100
OOC71200
00071300
00071400
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
 00096000
00097000
 00098000
00099000
 00100000
 00101000
 00102000
 00103000
 00104000
 00105000
 00106000
 00107000
 00108000
 00109000
 00110000
 00111000
 00112000
 00113000
 00114000
 00115000
 00116000
 00117000
 00118000
                                        285

-------
c
c
c
c
c
c
    READ(IN,1040) NUM
    WRITE(IOUT,2080) NUM

    RSAD(IN,1060) PTLOAD
    WAITS. (IQ'JT , 2l>90) PTLOAD
    IF  (FTLOAD.EQ.NO .OR. PTLOAD.EQ.YES) GO TO  110
       Et'LAG =1
       WRITE(IOUT,2170) PTLOAD

110 READ(IN,1060) DIFFUS
    WRITE(IOUT,2100) DIFFUS
    IF  (DITFUS.EQ.NO .OR. DIFFUS.EQ.VES) GO TO  120
       EFLAG -1
       WRITE(IOUT,2180) DIFFUS

120 READ(IN,1050) SEDMT
    WRITE(IOUT,2110) SEDMT
    IF  (SEDMT.EQ.NO .OR, SEDMT.EQ.YES) GO TO 130
       EFLAG =1
       WRITE(IOUT,2190) SEDMT

130 READ(IN,1080) DISK
    WRITE(IOOT,2220) DISK
    IF  (DISK.EQ.NO .OR. DISK.EQ.YES) GO TO 140
       EFLAG -1
       WRITE(IOUT,2240) DISK

140 READ(IN,1080) WARN
    WRITE(TOUT,2230) WARN
    IF  (WARN.EQ.NO .OR. WARN.EQ.YES) GO TO 150
       EFLAG «1
       WRITE(IOUT,2250) WARN

150 READ(IN,1010) HDPOUT
    WRITE(IOUT,2120) HDPOUT
    IF (HDPOUT.LT.O .OR. HDPOUT.GT.3)
   1   CALL KILL(15,EFLAG,IOUT,HDPOUT,DUM1)

    READ(IN,1010) MLINES
    WF.ITE( IOUT, 2200) MLINES

    RE«VD(IN,1010) PRFREQ
    IF  (PRFREQ) 10,20,30

 10 WRITE(IOUT,2140)
    GO TO 40

 20 WRITE(IOUT,2150)
    GO TO 40

 30 WRITE(IOUT,2155) PRFREQ

 40 CONTINUE

    READ(IN,1010) DIAGNS
    WRITE (10'IT, 2160)  DIAGNS

    SET DIAGNOSTIC FLAGS

    IF (DIAGNS.NE.10)  GO TO 50
00119000
00120000
00121000
00122000
00123000
00124000
00125000
00126000
00127000
00128000
OC129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00138100
00138200
00138300
0013S400
0013o500
00138600
00138700
00138BOO
00138900
00138910
00138920
00138930
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
0016300C
00164000
00165000
00166000
                                      286

-------
                                                                        00167000
      DO 80 I  = 1,10                                                    00368000
         DIAG(I)  = 1                                                    0016900C
   80 CONTINUE                                                          00170000
       GO TO 70                                                         00171OOC
C                                                                       00172000
   5C DO 60 I = 1,10                                                    00173000
         DIAG(I)  =0                                                     00174000
         IF (DIAGNS.EQ.I) DIAG(I) =1                                    00175000
   60 CONTINUE                                                          00176000
C                                                                       00177000
   70 CONTINUE                                                          00178000
C                                                                       00179000
C                                                                       00180000
      RETURN                                                            00181000
      END
                                          287

-------
c
r
C
C
C
C
C
C
C

C

c
c
c
c
c
c
 SUBROUTINE INITFL(   BGNHR,BGNDAY,BGNMON,BGNYR,DIAGNS,DSK,
1                  ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,K,
2                  TBLKSZ,TIMINT,
3                     ERROR, RBtlFF,
4                     CURSOR,KEYS,MULT  )

 READS LABELS ON INPUT FILES, CHECKS THAT PERIODS COVERED
 BY AVAILABLE DATA ARE COMPATIBLE KITH STARTING AND ENDING
 DATES SPECIFIED FOK THE RUN  AND SETS FILE  CURSORS, READY
 FOR INPUT

 PARAMETERS

 INTEGER BGNHR,BGNDAY,BGNMON,BGNYR,CURSOR,DIAGNS,DSN
 INTEGER ENDHR,ENDDAY,ENDMON,ENDYR,ERROR,IOUT,K,KEYS
 INTEGER MULT,TBLKSZ

 INTEGER*4 TIMINT

 REAL RBUFF(TBLKSZ)

 LOCAL

 INTEGER BGHR,BGDY,BGMO,BGYR,EHR,EDY,EMO,EYR
 INTEGER I,ITYPE,J,JUMP
 INTEGER*4 INTVL,ISTART,HARK

 WRITE FORMATS
 2000 FORMAT(IX,
 2010 FORMAT(1X,
 2020 FORMATCO1
     1
 2030 FORMATCO'
     1
     2
 2040~FORMAT(1X,
 2050 FORMATCO'
     1
     2
 2060 FORMATCO'
     1
     2
 2070 FORMATCO1
     1
 2080 FORMAT;•0'
     1
           'READ1,14)
           I4,2X,2(I2,'/',12,'/',I2,'/',14,IX),215,16,20A4)
           ,'+++ERROR 121+++FILE NO. ',14,' ENDS SOONER1,
            1  THAN REQUESTED ENDING DATE FOR SIMULATION')
           ,'4++ERROR 122++4 THE SIMULATION TIME INTERVAL '
            'IS NOT A MULTIPLE OF THE TIME INTERVAL ON ',
            'FILE NO.  ',14)
           'KEY=',110)
           ,'+++ERROR 123++4- A HEADER INDICATING ZERO ',
            'DISPLACEMENT HAS BEEN FOUND IN READING FILE  ',
            'NO. ',14)
           ,'+++WARNING 124+++ END OF FILE ENCOUNTERED ',
            'WHEN INITIALIZING FILE ',l4,/flX,
            'DATA FROM HERE ON ARE ASSUMED ZERO')
           ,'+++ERROR 12S-I-++ FILE INTERVAL AND SIMULATION '
            'START TIME NOT COMPATIBLE ')
           ,'+++ERROR 126+++ FILE TYPE FOUND IS  ',15,
            1  FILE TYPE EXPECTED IS ',15)
C
C
C
C
C
 READ (DSN) RBUFF
 IF(DIAGNS.EQ.l) WRITE(IOUT,2000) DSN
 BGHR= RBUFF(21)
 BGDY= RBUFF(22)
 BGMO= RBUFF(23)
 BGYR= RSr.IF'F(24)

 DETERMINE TIME OFFSET FOR THIS FILE  (HOURS)

 CALL OFFST(
                    BGHR,BGDY,BGMO,BGYR,BGNHR,BGNDAY,BGNMON,BGNYR,IOUT,
                    ERROR,      ISTART  )
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
OOC1200C
00013000
00014000
00015000
00016000
00017000
00018000
0001900C
00-020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
0004500C
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      288

-------
c
c
      EHR- RBUFF(25)
      EDY= RBU'T(26)
      EMO= RBUfF(27)
      EYR= R3UFF(26)
      INTVL*  RBUFF(29)
      ITi'PE-  RBUFF(30)
      WRITE OUT  DETAILS OF THIS  FILE
      WRITE(IOUT,2010) DSN,BGHE,BGDV,BGMO,BGYR,EHR,EDY,EMO,EYR,INTVL,
     1          ITYPE,ISTART,(RBUFF(I),1*1,20)

      CHECK TYPE OF  DATA  FILE

      IF  (ITYPE.EQ.K)  GO  TO  50
         WRITE(IOUT,2080)  ITYPE,K
         ERROR =1
         RETURN
   50 CONTINUE

      CHECK THAT DATASETS ARE LONG  ENOUGH
      IF  (EYR-ENDYR)  25,17,24
 17   IF  (EMO-ENDMON)  25,18,24
 18   IF  (EDY-ENDDAY)  25,19,24
 19   IF  (EHR-ENDHR)  25,24,24
 25   ERROR"1
      WRITE(IOUT,2020) DSN
:     MULTf)  IS  NO OF INPUT  FILE TIME  INTERVALS IN  A  SIMULATION  INT
 24   IF  (MOD(TIMINT,INTVL).EO.O) GO TO  22
      WRITE(IOUT,2030) DSN
      ERROR .-"I
      GO  TO 23

 22   MULT -  TIMINT/INTVL
      COMPUTE OFFSET TO START OF SIMULATION  (UNITS  ARE  DATA TIME INTS

 23   I START- ISTART*3600
      IF  (MOD(ISTART,INTVL).BQ.O) GO TO  30
         WRITE(IOUT,2070)
         ERROR •!
         RETURN
   30 CONTINUE
      I START  - ISTART/INTVL

      IF(K.EQ.2) GO  TO 40

      UNCOMPRESSED FILE
      JUMP PAST  EARLY RECORDS,  IF NECESSARY

      JUMP« ISTART/TBLKSZ
      IF(JUMP.EQ.O)  GO TO 20
      DO  140  J-1,JUMP
         READ (DSN)
         IF(DIAGNS.EQ.l)  WRITE(IOUT,2000) DSN
 140  CONTINUE
      ISTART- ISTART-JUMPVTBLKSZ
      GO  TO 20

      COMPRESSED FILE.  INITIALISATION INVOLVES FINDING VALUES FOR
      TWO PARAMETrttS, CURSOR()  AND  KEYS{).   SEE COMMENTS  IN SUBROUTIN
      REFIL2  FOR AN  EXPLANATION
C
C
C
C
C
C
C
c
c
c
c
00064000
00065000
00066000
00067000
00066000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                       289

-------
c
c
c
WS: SCAN THRU THE COMPRESSED FILE.
OFFSET
'HARK'  INDICATES  THE  CURRENT
 40   MARK= 0
      11-'(I START. NE. 0)  GO TO 42
:     ZERO DISPLACEMENT
      KEYS = TBLKSZ
      IF(DI'>GNS.EQ.l)  WRITE (IOUT, 2040)  KEYS
      GO TO 20

 42   R3AD(DSN,END=99) RBUFF
      IF(DIAGNS.EQ.l)  WRITE(IOUT,2000}  DSN
:     SCAN THE FILE
      DO 48 1=1,TBLKSZ
         IF(RBUFF(I).GE.0.)  GO TO 44
:        HEADER
         MARK= ABS(RBUFF(I))  +.1
         IK(MARK.NE.O) GO TO 43
         WRITE{IOUT,2050) DSN
         ERROR=1
         GO TO 20
 43      IF(MARK.LE.ISTART)  GO TO 45
:        HEADER INDICATES DISPLACEMENT > ISTART, SO WE'RE THERE
         KEYS" -MARK
         IF(DIAGNS.EQ.l) WRITE(IOUT,2040) KEYS
         GO TO 20
 45      K7vRK- MARK-1
         GO TO 43
 44      MARK=MARK+1
         IF(MARK.NE.ISTART)  GO TO 48
         KoYS» I
         IF(DIAGNS.EQ.l) WRITE{IOUT,2040) KEYS
         GO TO 20
 48   CONTINUE
      GO TO 42
 99   WRITE(IOUT,2060) DSN
      KEYS- -32760

   20 CONTINUE
      CURSOR = ISTART
      RETURN
      END
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
0013700C
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
                                       290

-------
      SUBROUTINE INTERP{
C
C
C
C
C
C
C
                          KW551.MAPL,SOUT,WARN,YD50,BEDMAP,
                          DF,RD  )
C
C
C
     THIS ROUTINE FINDS FROODE NOS.  AT WHICH THE RIPPLE-DUNE (RD)
     AND DUNE-FLAT (DF)  TRANSITIONS  OCCUR IN A GIVEN BED FORM
     CHART FOR A GIVEN VALUE  OF Y/D50

     PARAMETERS

     INTEGER KW551,MAPL,SOUT

     REAL DF,RD,WARN,YD50
     REAL BI-:DMAP(93)

     LOCAL VARIABLES

     INTEGER ADR

     REAL DF1,DF2,FACT,NO,RD1,RD2,YD
     REAL YD501,YD502

     DATA NO/1  NO1/

     WRITE FORMATS

2000 FORMATED1 . •+++WARNING 551+++ Y/D50 BEYOND RANGE OF AVAILABLE1,
    1    ' DATA1,/,lX,•Y/DSO  » ',E12.5,' ;BEDMAP BASE ADDRESS = ',15)


     ADR B MAPL

  60 CONTIK-VS
     YD501 =• BEDMAP(ADR)
     IF (YD501.GT.100.) GO TO 70
        IF (YDSO.LT.YDSOl) GO TO 80
           ADR <* ?.DR  +3
           GO TO 60
  70    CONTINUE
C
C
C
C
C
C
C
C
C
C
C
        Y/D50 ABOVE RANGE

        KW551 = KK551 + 1
        YD » 10.**YD50
        IF (WARN.EQ.NO .OR. KW551.LE.5)
    1      WRITE(SOUT,2000) YD,MAPL
        Rb - BEDMAPfADR -2)
        DF " BEDMAP(ADR -1)
        RD « 10.**RD
        DF - 10.**DF
        GO TO 100

  80 CONTINUE
     IF (ADR.GT.MAPL) GO TO 90

        Y/D50 BELOW RANGE

        KW551 • KW551 + 1
        YD « 10.**YD50
        IF (WARN.EQ.NO .OR. KW551.LE.5)
    1      WRITE(SOUT,2000) YD,MAPL
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
0001400C
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00023100
00023200
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00038100
00039000
00040000
000410CO
00042000
00043000
00044000
00044100
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00055100
00056000
0005700C
00057100
                                       291

-------
c
c
c
c

c
      RD = BEDMAPfADR +1)
      DF = BEDKAPfADR +2)
      RD = 10.**RD
      DF = 10.**DF
      GO TO 100

   VALUE SPANNED IK CHART  - DO INTERPOLATION

9C CONTINUE
   YD501 = BEDMAP(ADP. -3}
   RD1 = BEDMAPfADR -2)
   DF1 - BEDMAP(ADR -1)
   YD502 = BtDMAP(ADR)
   RD2 = BEDMAP(ADR +1)
   DF2 - BEDMAP(ADR +2)
   FACT = (YD50 -YD501)/(YD502 -YD501)

   RD - RD1 +FACT*(RD2 -RD1)
   RD = 10.**RD

   DF = DF1 +FACT*(DF2 -DF1)
   DF » 10.**DF
  100
   CONTINUE
   RETURN
   END
00058000
00059000
00060000
00061000
00062000
00063000
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00078100
00079000
00080000
00081000
00082000
                                       292

-------
c
c
c
c
c
     SUBROUTINE KILL(ICODE,EFLAG,IOUT,Hi,M2)

     ROUTINE TO REPORT ERRORS

     INTEGER EFLAG,ICODE,IOUT,M1,M2

     WRITE FORMATS

2000 FORMAT( ' C' , '-H-+ERROK 011+-H-T1ME, BLOCK SPECIFIED  ',15,
    1           '  ;SYSTEM REQUIRES ',15)
2oic FORMAT;'C','+++ERROR 012+-M-NO. REACHES SPECIFIED  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2020 FORMAT('0','+++ERROR 013-H-+NO. SEGMENTS SPECIFIED  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2030 FORMAT! '0' , '+-M-ERROR 0144-t-l-NO. OF X-SECTION POINTS  ',
    1           'SPECIFIED ',15,'  ;SYSTEM MAXIMUM  ',15)
2040 FORMAT (' 0 ',' +++ERROR 015+4-t-NO. OF SUB-SECTIONS SPECIFIED  ',
    1           15,' jSYSTEM MAXIMUM ',15)
2050 FORMA?('0' .'+++ERROR 016+-M-TABLE LENGTH COMPUTED  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2060 FORMATC'O1,'+++ERROR 017-H-t-NO. OF CROSSINGS CROSNO  IS  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2070 FORMATCO1,'+++ERROR 018+++LENGTH OF VECTOR RCHTRIB EXCEEDS1,
    1           '  SYSTEM MAXIMUM, MAXTRIB ',15)
2080 FORMAT {' 0 ',' +++ERROR 019-M-+LENGTB OF VECTOR RCHPT  EXCEEDS1,
    1           ''SYSTEM MAXIMUM, MAXPT ',15)
2090 FORMAT{'0','+++ERRGR 020+++NO. OF POINT LOADS SPECIFIED  ',15,
    1           '  ;SYST!i« MAXIMUM  ' ,15)
2100 FORMATCO1 ,'+++ERR. - 021+-M-FILE* SPECIFIED  ',15,
    1           •  ;SYSTl,M MAXIMUM  ',15)
2110 FORMAT (' 0 ',' +++ERSCS 022+4-+REACH* SPECIFIED  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2120 FORMATf'01,'-M-+ERROR 023-H-t-SEG* SPECIFIED  ',15,
    1           '  fSYSTEM MAXIMUM  ',15)
2130 FORMATC0','+++ERROR 024+++ LENGTH OF TVEC  ',15,
    1           '  ;SYSTEM MAXIMUM  ',15)
2140 FORMAT('0','+++ERROR 025+++ ILLEGAL PRINT OUT OPTION FOR  ',
    1           'HYDRAULICS  ',15)
2150 FORMAT ( '0 ' , '-t-n-ERROR 026+-*-+ ILLEGAL PRINT OUT OPTION FOR  ',
    1           'SEDIMENT ',15)
2160 FORMATCO1 , '+-H-ERROR 027+++ ILLEGAL DEBUG OPTION  FOR  ',
    1           'SEDIMENT ',15)
2170 FORMATCO1 , f 4-i-f-ERROR 026+++ REACH  ',15,' NOT  GIVEN IN  ',
    1           'NETWORK DESCRIPTION  ')
2160 FORMAT('0','-M-+ERROR 029+4-+ NO. OF SIZE FRACTIONS  SPECIFIED  ',
    1           15,'  ;SYSTEM MAXIMUM  ',15)
2190 FORMAT{'0',' -H-+ERROR 030+++ NO. OF BED LAYERS SPECIFIED  ',15,
    1           '  jSYSTEM MAXIMUM  ',15)
2200 FORMAT('0','+++ERROR 031+++ MODEL REQUIRES A  MINIMUM OF  3 ',
    1           'PARTICLE SIZE  FRACTIONS  ;',I2,' FRACTIONS  SPECIFIED')
C
C
C
C


C
     EFLAG = EFLAG 4l
     CO TO (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
    1       16,17,18,19,20,21

   1 WRITE(TOUT,2000) Ml,K2
     GO TO 900
                                                     ),ICODE
00004000
00005000
00006000
00007000
00008000
00009000
00010000
0001100C
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
0004SOOO
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                        293

-------
 2  WRITE(TOUT,2010)  M1,M2
   GO TO 900

 3  WRITE(IOUT,2020)  M1,K:
   GO TO 900

 4  WRITE(IOUT,2030)  Hl,M2
   GO TO 900

 5  WRITE(IOUT,2040)  M1,M2
   GO TO 900

 6  WRITE(IOUT,2050)  M1,K2
   GO TO 900

 7  WRITE(IOUT,2060)  M1,M2
   GO TO 900

 8  WRITE(IOUT,2070)  M2
   GO TO 900

 9  WRITE(1007,2080)  M2
   GO TO 900

10  WRITE(IOUT,2090)  M1,M2
   GO TO 900

11  WRITE(IOUT,2100)  M1,M2
   GO TO 900

12  WRITE(IOUT,2110)  M1.M2
   GO 70 900

13  WRITE(IOUT,2120)  M1,M2
   GO TO 900

14  WRITE(IOUT,2130)  M1.M2
   GO TO 900

15  W;:iTE(IOUT,2140)  Ml
   GO TO 900

16  WRITE(IOUT,2150)  Ml
   GO TO 900

IV  WRITE(IOUT,2160)  Ml
   GO TO 900

18  WRITE(IOUT,2170)  Ml
   GO TO 900

19  WRITE(IOUT,2180)  Ml,K2
   GO TO 900

20  WRITE(IOUT,2190)  Ml,M2
   GO TO 900

21  WRITE(IOUT,2200)  Ml
   GO TO 900
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00105000
OOK.7000
00103000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                   294

-------
 «„  ,   i                                                                00124000

900 Ml  =1                                                                00125000

    T,-,m,™                                                              00126000
    RETURN                                                              00127000
    END
                                        295

-------
c
c
c
c
c
c
     SUBROUTINE LOADIN(    BGNHR,BGNDAY,BGNMON,BGNYR,ENDHR,ENDDAY,
    1                  ENDMON,ENDYR,IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE,
    2                  MNPS2,MNPTLD,NPSF,NREA,NSEGS,
    3                  TBLKSZ,TIM1N,DIAG,USERCH,
    4                  DIFFUS,NO,PTLOAD,SEDWT,YES,
    5                     EFLAG,RBUFF,
    6                     NPTLD,CURSOR,DD,KEYS,MULT,PTDD,PTVEC,
    7                  RCHPT,TRBVEC,
    8                  FACTER,FACTFL,FACTLS,FACTSD,RCHTRB   )

     ROUTINE TO INPUT DIFFUSE & POINT  LOADING INFO.
     READS IN FILE NOS,  SEGMENT AREAS  ETC 6 INITIALIZE FILES

     PARAMETERS

     INTEGER BGNHR,BGNDAY,BGNMON,BGNYR,EFLAG,ENDHR,ENDDAY,ENDMON,ENDYR
     INTEGER IN,IOUT,MAXPT,MAXRCH,MAXTRB,MFILE
     INTEGER MNPS2,MNPTLD,NPSF,NPTLD,NREA rNSEGE
     INTEGER TBLKSZ
     INTEGER CURSOR(MFILE),DD(2,NSEGS),DIAG{10),KEYS(MFILE)
     INTEGER MULT(MFILE),PTDD{MNPTLD,MNPS2),PTVEC(NREA)
     INTEGER RCHPT(MAXPT),TRBVEC(NREA),USERCH(MAXRCH)

     INTEGER** TIMIN

     REAL DIFFUS,FACTER,FACTFL,FACTLS,FACTSD
     REAL NO,PTLOAD,SEDMT,YES
     REAL RBUFF(TBLKSZ),RCHTRB(MAXTRB)

     LOCAL

     INTEGER DSN,I,ITYPE,J


2040 FORMATCO1 ,/,'0' ,'DETAILS  OF LSRO FILES: ' ,/,IX,
    1       'FILE*',3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE  OFFSET',
    2       20X,'CONTENTS',/,T36,'(SECS)',5X,'(HOURS)',/)
2050 FORMATCO',/,'0','DETAILS  OF EROS FILES: ' ,/,lX,
    1       'FILE*',3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE  OFFSET',
    2       20X,'CONTENTS',/,T36,'(SECS)',5X,'(HOURS)',/>
2060 FORMATCO' ,/,'0* ,'DETAILS  OF POINT INPUT FILES:',/, IX,
    1       'FILE*1,3X,'STARTS',10X,'ENDS',6X,'INTVL TYPE  OFFSET',
    2       20X,'CONTENTS'f/,T36,'(SECS)',5X,'(HOURS)',/)
2070 FORMAT(IX,'FLOWS:')
2080 FORMATdX,'SEDIMENT:')
C

C
C
C
C

C
C
C
C
c
c
     FIND DIFFUSE & POINT LOADING INFORMATION

     IF (DIFFUS.EQ.YES)
    1   CALL DIFFLD(   IN,IOUT,MAXRCH,MAXTRB,MFILE,NREA,NSEGS,
    2               USERCH,NO,SEDMT,
    3                  EFLAG,
    4                  DD,TRBVEC,FACTER,FACTLS,
    5               RCHTRB    )

     IF (PTLOAD.EQ.YES)
    1   CALL PNTLD(   IN,IOUT,MAXPT,MAXRCH,MFILE,
    2              MNPS2,MNPTLD,NPSF,NREA,
    3              USERCH,KO,SEDMT,
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
0001200C
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
0006000C
00061000
00062000
00063000
                                       296

-------
     4
     5
     6
                   EFLAG,
                   NPTLD,PTDD,PTVEC,RCHPT,
                FACTFL.FACTSD
C
C
C
C
C
C
C
C
  NOW  INITIALISE  THESE  FILES

  I) DIFFUSE  LOADS

  IF  (DIFFUS.EQ.NO)  GO  TO  40
     DO  30  ITYPE  *  1,2
         IF  (ITYPE.EO.l)  WRITE(IOUT,2040)
         IF  (SEDMT.EQ.NO .AND.  ITYPE.EQ.2)  GO  TO  40
         IF  (ITYPE.EQ.2)  WRITE(IOUT,2050)
         DO  30 J  = 1,NSEGS
            DSN *  DD(ITYPE,J)
            IF (DSN.EQ.O) GO TO 30
            CALL  INITFL(   BGNHR,BGNDAY.BGNMON,BGNYR,DIAG(2),DSN,
  1                      ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,ITYPE,
  2                      TBLKSZ,TIHIN,
  3                         EFLAG,RBUFF,
  4                         CURSOR(DSN).KEYS(DSN),MULT(DSN)   )
30    CONTINUE

   II)  POINT LOADS

40 CONTINUE
   IF  (PTLOAD.EQ.NO) GO TO 50
   WRITE(IOUT,2060)
   ITYPE «3
   DO 70 I - 1,NPTLD
      WRITE(IOUT,2070)
      DSN = PTDD(1,1)
      CALL INITFL(   BGNHR,BGNDAY,BGNMON,BGNYR,DIAG(2),DSN,
  1               ENDHR,ENDDAY,ENDMON,ENDYR,IOUT,ITYPE,
  2               TBLKSZ.TIMIN,
  3                  EFLAG,RBUFF,
  4                  CURSOR(DSN),KEYS(DSN),MULT(DSN)   J
       IF  (SEDMT.EQ.NO) GO TO 70
         WRITE(IOUT,2080)
         DO 60 J  *  l.NPSF
            DSN •= PTDD(I,J+2)
            IF (DSN.EQ.O) GO TO 60
            CALL  INITFL(   BGNHR,BGNDAY,BGNMON,BGNYR,DIAG(2),DSN,
  1                      ENDHR,ENDDAY,ENDMON,ENDYR,IDOT,ITYPE,
  2                      TBLKSZ,TIMIN,
  3                         EFLAG.RBUFF,
  4                        CURSOR(DSN),KEYS(DSN),MULT(DSN)   )
 60        CONTINUE
 70     CONTINUE

 50 CONTINUE
   RETURN
   END
00064000
00065000
00066000
00067000
00058000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00076000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
 00103000
 00104000
 00105000
 00106000
 00107000
 00108000
 00109000
 00110000
 00111000
 00112000
 00113000
 00114000
 00115000
 00116000
                                        297

-------
      SUBROUTINE LUKUP(
C
C
C
C
C
C
C
C
C
C
C
C
                       ITYPE,N,SDEBUG,SOUT,ABSC,CURVE,
                       ORD  )
C
C
   THIS IS A GENERAL LOOK UP FOR SINGLE VALUED X-Y TYPE
   CUP.VES. GIVEN X RETURN Y.
   S-JALES MAY BE:
   ITYPE =1  X=LINEAR Y=LINEAR
   ITYPE =2  X=LOG10  Y=LINEAR

   PARAMETER

   INTEGER ITYPE,N,SDEBUG,SOUT
   REAL ABSC,ORD
   REAL CURVE(N,2)

   LOCAL

   INTEGER I
   REAL X1,X2,Y1,Y2
C
C
 2000 FORMAT('0','+++ERROR 561+++ABSCISSA BELOW RANGE IN TABLE  ',
     1            'LOOK UP ;ABSC =  ',E12.5)
 2010 FORMAT('0','+++ERROR 562+++ABSCISSA ABOVE RANGE IN TABLE  ',
     1            'LOOK UP ;ABSC =  ',E12.5)
 2020 FORMAT('0','+++ERROR 563+-H-ILLEGAL TABLE TYPE SPECIFIED  ',
     1            ';ITYPE = ',15)
C
C
C
C
C
C
   IF (ABSC.GE.CURVE(1,1))  GO TO 10
      WRITE(SOUT,2000)  ABSC
      STOP

10 CONTINUE
   DO 20 I = 1,K
      IF (ABSC.LT.CURVE(I,1))  GO TO 30
20 CONTINUE
   WRITE(SOUT,2010) ABSC
   STOP

30 CONTINUE
   NTYPE = ITYPE +1
   GOTO (60,40,50,60),NTYPE

   LINEAR - LINEAR LOOKUP

40 3 * 1 -1
   XI = CURVE(3,1)
   X2 = CURVE(I,1)
   Yl = CURVE(J,2)
   Y2 = CURVE(I,2)
   OKD = Yl + (ABSC -X1)*(Y2 -Yl)/(X2 -XI)
   RETURN

   LOG 10 - LINEAR LOOKUP

50 J = I -1
   XI » ALOG10(CURVE(J,1))
   X2 = ALOG10(CURVE(I,1))
   Yl = CURVE(J,2)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00814000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00021100
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
OOC -5000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
                                      298

-------
      Y2 = CU3VE(I,2)                                                    00063000
      C:'.:;• •= yi +  (ALOGIO(ABSC) -X1)*(Y2  -Y1)/(X2  -Xl>                    00064000
      RETURN                                                             00065000
C                                                                        00066000
c                                                                        d'coo? >oo
C     ILLEGAL TYPE                                                       0^068000
C                                                                        00069000
   60 CONTINUE                                                           Ci.'070000
      Wt
-------
SUBROUTINE OFFST( 3GHR, BGDY , BGMO , BGYR, BGNHR, BGNDAY, BGNMON , BGNYR, 00004000
1
2
3
C
C
C
c
c
c



c
c
c



c

1
c
c
2000
1
c
c
c
c

c
c
c


c
c



c

c



c
c
c
100

c
c
c

c



i our,
ERROR,
: START )

FIND NO. OF HOURS BETVJEEK TWO DATES - BGDY ETC IS THE
EARLIER , BGNDAY ETC IS THE LATER

PARAMETERS

INTEGER BGHR , BGDY , BGMO , BGYR , BGNHR , BGNDAY , BGNMON , BGNYR , IOUT
INTEGER ERROR
INTEGER* 4 ISTART

LOCAL

INTEGER DAYS, IBEG,MOK,NN, YEAR
INTEGER** BGYR4,BGNYR4, ISTRD, ISTRP
INTEGER DPM(24)

DATA DPM/31, 28, 31, 30, 31, 30 ,31, 31, 30, 31, 30, 31,
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31/


FORMAT { '0' ,'-l-+4ERROR 181+-M-DISPLACEMENT BETWEEN DATES IS ',
'NEGYTIVE - SUBROUTINE OFFST ')


CHECK THAT DISPLACEMENT IS POSITIVE

ISTART = 0

CONVERSION TO INTEGE?*4

BGYR4 = BGYR
BGNYR4 = BGNYR


ISTRD - (BGYR4 -1900*15000 4 BGMO*1000 + BGDY*30 +BGHR
ISTRP «= (BGNYR4 -1900) *1500C. 4 BGNMON*1000 4 BGNDAY*30 -t- BGNHR
IF (ISTRP.GT.ISTRD) GO TO 100
DATES ARE THE SAME
If (ISTRP.EQ. ISTRD) RETURN
T~JRE IS NEGATIVE DISPLACEMENT
Er.POR=l
VailTE (IOUT, 2000)
RETURN

DISPLACEMENT IS NONZERO POSITIVE

YEAR = BGYR
IBEG = 0

CHECK WHETHER WE SP.-.).' A YEAR BOUNDARY

IF {BGNYR. EQ. YEAR) GC TO 250
FIND DAYS TO END 0: YEAR
NN = 0
IF(MOD(YEAR,4) .EQ.O) NN «= 12
WON = BGMO
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
0001400C
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00031000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
300

-------
c
c
c
110  IF (MON.GT.12)  GO TO 120
     I START = ISTART 4 DPM(MON 4 NN)
     M'J* = MON 4 1
     GO TO 110
120  I START = I START - BGDY 4 1
     YEAR = YEAR 4  1

         SKIP WHOLE YEARS

130  IF(BGNYR.EQ.YEAR) GO TO 140
     DAYS = 365
     IF (MOD(YEAR,4).EQ.O)  DAYS « 366
     ISTART = ISTART 4 DAYS
     YEAR = YEAR +  1
     GO TO 130

     FIND DAYS IN YEAR TO SECOND DATE

140  NN «= 0
     IF (MOD(YEAR,4) .EQ.O)  NN «=12
     MON = 0
150  MON - MON 4 1
     IF (MON.EQ.BGNMON) GO TO 160
     ISTART «= ISTART4 DPM(MON4NN)
     GO TO 150  .
160  ISTART - ISTART 4 BGNDAY - 1
     ISTART « ISTART - TBEG

     CONVERT TO HOURS AND ADJUST FOR BGHR, BGNHR
C
C
C
C
C
C
C
C
C
     ISTART - ISTART*24 4 BGNHR - BGHR
     F.t.'TURN

     DAYS IN YEAR TO FIRST DATE

250  NN - 0
     IF(MOD(YEAR,4).EQ.O) NN «12
     MON = 0
260  MON - MON 4 1
     IF (MON.EQ.BGMO) GO TO 270
     IBEG « IBEG 4 DPM(MON 4 NN)
     GO TO 260
270  IBEG - IBEG 4 BGDY - 1
     GO TO 140
     END
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
0007400C
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
OOOB6000
00087000
00086000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
                                       301

-------
c
c
c
c
c
c
c
c
c
c
c

c
c
c
c
c
c
      SUBROUTINE PLOAD(   IBASE,IOUT,MAXPT,MFILE,MNPS1,MNPS2,
     1                 MNPTLD,MSTORP,NINTS,NPSF,NTBLK,TBLKSZ,DIAG,
     2                 MULT,PTDD,RCHPT,FACTFL,FACTSD,NO,
     3                 SED"J7, YES, INITPT,
     4                    CURSOR,RBUFF,
     5                    STORP     )
     ROUTINE TO ACCUMULATE ALL POINT LOADS FOR PRESENT REACH
     & STORE IN ARRAY STORP AT APPROPRIATE SIMULATION
     INTERVAL.
     TO SIMULATE TBLKSZ INTERVALS WE NEED (TBLKSZ  +1)  POINT
     VALU23

     PARAMETERS

     INTEGER IBASE,IOUT,MAXPT,MFILE,MNPS1,MNPS2
     INTEGER MNPTS,MSTORP,NINTS,NPSF,NTBLK.TBLKSZ,TBLK1

     INTEGER CURSOR(MFILE),DIAG(10),MULT(MFILE)
     INTEGER PTDDfMNPTLD,MNPS2},RCHPT(MAXPT)

     REAL FACTFL,FACTSD,NO,SEDMT,YES
     REAL INITPT(MNPTLD,MNPS1),RBUFF(TBLKSZ) ,STORP(MSTORP)

     LOCAL VARIABLES

     INTEGER DSN,FL,FLNUM,I,IBAS,IEND,INTV,1ST,J
     INTEGER NPSF1,NPT,NROW
C
C
C
c
c
c
c
c
c
2000 FORMATf'O','+++ERROR 151+++CONCENTRATION UNITS NOT YET ',
    1           'SUPPORTED FOR SEDIMENT1)

     SET POINTERS C. BASE VALUES

     NPT - RCHPT(IBASE)
     IEND • NINTS +1
     TBLK1 - TBLKSZ +1
     1ST « 2
     IF (NTBLK.EQ.l) 1ST -1

     ZERO STORP

     DO 10 I - l.KSTORP
         STORP(I)  - 0.
  10 CONTINUE

     ADD IN VALUES FOR START OF TIME BLOCK

     NPSF1 - NPSF -t-1
     NROW = RCHPT(IBASE  +1)
     DO 110 I - 1,NPSF1
        IBAS - (I  -1)*TBLK1 +1
        STORP(IBAS) » STORP(IBAS)  + INITPT{NROW,I)
 110 CONTINUE

     DO 100 I - 1,NPT
        NROW - RCHPT(IBASE +1)
        FLNUK - PTDD(NROW,1)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00041100
00042000
00043000
00044000
OOC45000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
                                      302

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
       FL = PTDD(NROK,2)

       FOR FL>0 SEDIMENT FILES ARE IN CONCENTRATION UNITS
       SEDIMENT MASS IS 
-------
c
c
c
c
c
      SUBROUTINE PNTLD(   IN,IOUT,MAXPT,MAXRCH,MFILE,
     1                 MNPS2,MNPTLD,NPSF,NREA,
     2                 USERCH,NO,SEDKT,
     3                    EFLAG,
     4                    NPTLD,PTDD,PTVEC,RCHPT,
     5                 FACTFL.FACTSD                )
      INPUT  POINT  LOADING  INFORMATION

      PARAMETERS

      INTEGER EFLAG,IN,IOUT,MAXPT,MAXRCH,MFILE
      INTEGER MNPS2,MNPTLD,NFSF,NPTLD,NREA

      INTEGER PTDD(MNPTLD,MNPS2),PTVEC(NREA),RCHPT(MAXPT)
      INTEGER USERCH(MAXRCH)

      REAL FACTFL,FACTSD,NO,SEDMT

      LOCAL

      INTEGER DDK , FLN, FLNUM, I, IBAS , IPOS , Jf, LSTRCH
      INTEGER NPT,REACH
      INTEGER SEDNM(13)

      REAL HEAD(20)

      READ FORMATS

 1000  FORMAT(20A4)
 1010  FORMAT(7X,F10.0)
 1020  FORMAT(16I5)

      WRITE  FORMATS

 2000  FORMATCO1 ,20A4)
 2010  FORMAT{'0','FLOW MULTIPLIER =',E12.5)
 2020  FORMATCO1 ,'SEDT MULTIPLIER «',E12.5)
 2030  FORMAT(IX,1615)
 2040  FORMAT (' 0',' +-H-ERROR 111+-*-+ REACH* MOST BE  IN  ASCENDING  ORDER1)
 2050  FORMATC1 ')
t

I      INITIALIZE
1

      WRITE(TOUT,2050)
      DO  10  I  =  l.NREA
         PTVEC(I)  =0
   10  CONTINUE

      DO  20  I  =  1,MNPTLD
         DO  20 J = 1,MNPS2
            PTDD(I,J)  »0
   20  CONTINUE
C
C
C
c
c
c
c
c
c
     READ(IN,1000) HEAD
     WRITE(IOUT,2000) HEAD

     READ MULTIPLIERS
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      304

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   RE?-.ri(IN,1010)  FACTFL
   WRITE(1007,2010)  FACTFL

   IF (SEDMT.EQ.NO)  GO TO 30
      P.EAD(IN.IOIO)  FACTSD
      WRITE(IOUT,2020)  FACTSD
30 CONTINUE

   READ POINT LOAD FILE NOS

   READ(IN,1000)  HEAD
   WRITE(IOUT,2000)  HEAD

   LSTRC'.I -0
   IBAS «=-!
   IPOS -0
   NPT -0

40 CONTINUE
   IF (SEDMT.EQ.NO)  GO TO 80
      HEAD(IN,1020)  REACH,FLNUM,FLN,(SEDNM(I),I-1,NPSF)
      WRITE(IOUT,2030)  REACH,FLNUM,FLN,(SEDNM(I),I-1,NPSF)
      GO TO 90

80 CONTINUE
   READ(IN,1020)  REACH,FLNUM
   WRITE(IOUT,2030)  REACH,FLNUM

90 CONTINUE

   IF (REACH.EQ.-l)  GO TO 100

      CHECK REACH!

      IF (REACH.GE.LSTRCH)  GO TO 50
         WRITE(IOUT,2040) REACH
         EFLAG »1
      CONTINUE
      NPT » NPT +1
      IF (REACH.EQ.LSTRCH) GO TO 60
         IBAS - IBAS + NPT +1
         NPT -1
      CONTINUE

      CHECK FILE!

      IF (FLNUK.GT.MFILE)
         CALL KILL(11,EFLAG,IOUT,FLNUM,MFILE)
      IF (SEDMT.EQ.NO) GO TO 110
         DO 65 I - 1,NPSF
            DON - SEDNM(I)
            IF  (DDN.GT.MFILE)
               CALL KILL{11,EFLAG,IOUT,DON,MFIL™)
         CONTINUE
      CONTINUE

      STORE FILE* IN PTDD

      IPOS - IPOS +1
   50
   60
   65
  110
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                       305

-------
c
c
c
c
c
c
c
c
       PTDD(IPOS,1)  = FLNUM
       IF (SEDMT.EQ.NO)  GO TO 120

          PTDD(IPOS,2)  = FLN
          DO  70 I  =  1,NPSF
             PTDD(IPOS,I+2) = SEDNM(I)
 70       CONTINUE
120    CONTINUE

       STORE  ROWf  OF THIS POINT LOAD INFO t NO. OF LOADS

       RCHPT(IBAS  +NPT)  = IPOS
       RCHPT(IBAS) = NPT

       SET POINTER FOR REACH

       PTVEC(USERCH(REACH)) =IBAS

       LSTRCE - REACH
       GO TO  40
  100 CONTINUE
      NPTLD = IPOS
      IF {NPTLD.GT.MNPTLD)
     1   CALL KILL(10,EFLAG,IOUT,NPTLD,MNPTLD)
      IF ((IBAS +NPT).GT.MAXPT)
     1   CALL KILL(9,EFLAG,IOUT,IBAS,MAXPT)

      RETURN
      END
00124000
00125000
0012o':00
00127iiOO
00128000
0012900C
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
                                      306

-------




c
f+
c
c
c
c


c


c
c
c
c


c
c

c


c
c
c
c

c
c
c
c
c
c
c

c


c
c
c
c
c
c
c

c
c
c



c
c
c
SUBROUTINE POPOUT ( I OUT, LEVEL, MORDR, NREA , PR, LEV,
1 LEVSTK.RCH, STACK,
2 Fi..AG, J,PTLVST, PTSTAC, SWTCH,
3 KEL,SEQ,VECNO )

W'E USE THIS TO BACK-TRACK FROM A TERMINUS REACH, SETTING UP
PROCESSING INFORMATION AS WE GO

PARAMETERS

I KTEGER FLAG , IOUT , 3 , LEVEL , MORDR , NREA
INTEGER PR,PTLVST,PTSTAC,SWTCR

INTEGER LEV(NREA) ,LEVSTK (MORDR) ,RCH(NREA) ,REL(NREA)
INTEGER SEQ(NREA) , STACK (NREA) ,VECNO(NREA)


LOCAL

INTEGER K,LVL
INTiV.SR RCHID,RICH,SWT


2000 FORMAT(1X,I3,I7,I7,I6)

K"= STACK (PTSTAC)
LVL- LEV(K)

RETURN IF WE ARE GOING TO A HIGHER LEVEL REACH
(IE. NOT POPPING UP)

IF (LEVEL. GT. LVL) RETURN

FLAG IS 0 IF WE ARE RUNNING TOWARD THE ROOT
FLAG IS 1 IF WE ARE RUNNING AWAY FROM THE ROOT & HAVE
JUST CHANGED DIRECTION
FLAG IS 2 IF WE ARE RUNNING AWAY FROM THE ROOT

NOW POPOUT FROM THE STACK AS WE PROCESS REACHES
10 RCHID= STACK (PTSTAC)
SEQ INDICATES THE SEQUENCE IN WHICH PROCESSING WILL BE DONE
0* Jtl
S*:Q(J);= RCHID

VECNO IS THE VECTOR t IN WHICH INPUT TO, ( OUTPUT FROM, THIS
WILL BE. FOR TERMINUS REACHES 1000 IS ADDED TO THE NUMBER,
AS A FLAG TO THE MAIN PROGRAM, BECAUSE OUTPUT FROM THOSE
REACHES HAS TO BE TEMPORARILY PLACED IN ANOTHER VECTOR
BEFORE BEING ADDED TO THE DESTINATION VECTOR

VECNO (RCHID)- 1000 + SWTCR

FLAG IS 0 FOR A NON-TERMNUS REACH

IF(FLAG.EQ.O) VECNO (RCHID) « SWTCH
RICH= RCH (RCHID)
IF(LEVSTK(PTLVST) .NE. LEV (RCHID) ) GO TO 20

00004000
00005000
00006000
00007000
000080 .•)
REACH 000090'.0
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
REACH00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
COMBINE TWO BRANCHES & RELEASE A TEMPORARY STORAGE, IF POSSIBLE 00062000

00063000
307

-------
C
C
     SWT= SWTCH-1
     IF(SWT.LE.O) GO TO 15

     RELEASE A STORAGE VECTOR
     REL INDICATES THAT VECTOR * ' SWTCH1  MUST BE ADDED TO ' SWTCH-1'
     i 'SWTCH1 IS THEN TO BE CLEARED
                 SWTCH
15   5;;'.'TCH= SKT
     PTLVST= PTLVST-1

     POPOUT

20   PTSTAC- PTSTAC-1
     FLAG=0

     WRITE INFO CONCERNING PROCESSING OF THIS REACH

     IF(PR.EQ.l) WRITE (IOUT, 2000)  RICH, J, VECNO(RCHID) ,REL{RCHID)
     IF (PTSTAC. LE.O)  RETURN
     K*STACK(PTSTAC)
     LVL= LEV(K)
     IF ( LEVEL. LE.LVL) GO TO 10
     RETURN
     END
C
C
C
C
C
C
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
                                       308

-------
      SUBROUTINE PSHDON(    ITEM,NREA,                                    00004000
     1                     PTSTAC,                                       00005000
     2                     STACK     )                                    00006000
C                                                                       00007000
C     THIS IS A WRAP-AROUND PUSH-DOWN  STACK                             00008000
C                                                                       OOJ109000
C     PARAMETERS                                                        00010000
C                                                                       00011000
      INTEGER ITEM,NREA,PTSTAC                                          OOC12000
      INTEGER STACK(NREA)                                                00013000
C                                                                       00014000
      IF(PTSTAC.GT.NREA)  PTSTAC-0                                       00015000
      PTSTAC- PTSTAC+1                                                  00016000
      STACK(PTSTAC)- ITEM                                               00017000
      RETURN                                                            00018000
      END                                                               00019000
                                      309

-------
c
c
c
c
c
c
c
c
     SUBROUTINE PSHDWNf   IOUT,LEVEL,LSTVEC,MORDR,NREA,
    1                  RCHID,
    2                     FLAG,PTLVST,PTSTAC,SWTCH,
    3                     LEVSTK,STACK                  )

     W~ PUS:: D:>v>'NT TWO STACKS, 'STACK1 & 'LEVSTK'.
     'STACK1 CONTAINS REACH NOS  AND THE REACH BEING PROCESSED IS
        ABOUT TO GO IN
     •LEVSTK" CONTAINS LEVELS AND CONTROLS THE USE OF 'FLOW BUFFERS

     PARAMETERS

     INTEGER IOUT,FLAG,LEVEL,LSTVEC,MORDR,NREA
     INTEGER PTLVST,PTSTAC,RCHID,SWTCH
     INTEGER LEVSTK(MORDR),STACK(NREA)


2000 FORMATCO' , '+++ERROR 091+++ WE NEED',14,' FLOW STORAGES ',
    1           ' - TOO MAN?1)
C
C
c
c
c
c
     IF(FLAG-l)  1,2,3
1    F:.AG= 1
     GO TO 3
2    FLAG= 2
     L* LtVEL-1
     PTLVST* PTLVST+1
     LEVSTK(PTLVST)= L
     SWTCH= SWTCH + 1
     IF(SWTCH.LT.LSTVEC)  GO TO 3

     (SWTCH+1)  BECAUSE WE NEED AN EXTRA VECTOR TO TEMPOARILY STORE
     OUTPUT FROM TERMINUS REACHES

     K=SWTCf!rl
     WRITE(IOUT,2000) K
     STOP
     PTSTAC= PTSTAC + 1
     STACK(PTSTAC)= RCHID
     RETURN
     END
00004000
00005000
00006000
00007000
00008000
00009000
0001000C
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
0004100Q
00042000
00043000
00044000
                                       310

-------
c
c
c
c
c
c
c
c
     SUBROUTINE RCHIN(    IN,TOUT,MAXRCK,MCROS,MORDR,
    1                 MPTS,MSECS,MTAD,NREA,DIAG,HUM,
    2                    EFI.AG, LEV, LEVSTK,LOC, NEXT,
    3                 ORDER,POINT,STACK,
    4                 SSEr.,A,JlSSEC,P,TW,X,Y,
    5                    0*DR,P.TIND,BASE,
    6                 NLEVS,NTAB,PROUT,RCH,REL,SEQ,TRIB,USERCK,
    1                 VECNO,LEN,QSTART,SLOP,TABLE,VOL   )

     THIS ROUTINE READS IN REACH NETWORK DESCRIPTION,
     READS IN CHANNEL GEOMETRY INFO.,  COMPUTES
     HYDRAULIC INFORMATION AND DETERMINES OPTIMAL
     REACH ORDER FOR COMPUTATION

     PARAMETERS

     INTEGER EFLAG,IN,IOUT,MAXRCH,MCROS,MORDR
     INTEGER MPTS,KSECS,KTAD,NREA,ORDR,RTIND

     INTEGER BASE(NREA),DIAG(10),LEV(NREA)
     INTEGER LEVSTK(MORDR),LOC(MCROS),NEXT(NREA),NLEVS(NREA)
     INTEGER NTAB(NREA),ORDER(NREA),POINT(MPTS),PROUT(NREA)
     INTEGER RCH(NREA),REL(NREA),SEQ(NREA)
     INTEGER SSEC(MPTS),STACK(NREA),TRIB(NREA),USERCH(MAXRCH)
     INTEGER VECNO(NREA)

     REAL NUM

     REAL A(MSECS),LEN(NREA),NSSEC(MSECS),P(MSECS)
     REAL QSTART(NREA),SLOP(NREA),TABLE(MTAD)
     REAL TW(MSECS),VOL(NREA),X(MPTS),Y(MPTS)

     LOCAL

     INTEGER ELMTS,I,IBASE,J,LEVEL,Ml,NLEV,NPTS
     INTEGER NR,NT,PR,REACH,SSECS,TABN

     REAL ELDN,ELUP,SLOPE,SS,YS

     REAL HEAD(2D)

     READ FORMATS

1000 FORMAT(20A4)
1010 FORMAT(2I5,3F10.0,2I5,F10.0)
1020 FORMAT(7X,15)
1030 FORMAT(5X,I5)
1040 FORMAT(6X,I5)
1050 FORMAT(9X,F10.0)
1060 FORMAT(2F10.0)
1070 FORMAT(2OX,15)

     WRITE FORMATS
C

C
C
c
c
c
c
c
c
c
c
c
c
 '2000 FORMAT ('1' ,20A4)
 2010 FORMATCO1,'  RCH TRIB       LEW      ELUP      ELDN   ',
     1            '    SLOP NTAB PROUT     QSTART1)
 2020 FORMATCO1 ,'+++ERROR 061+++ REACH  ',15,' SLOPE IS  ',E10.3,
     1            ' ;TOO SMALL FOR KINEMATIC ROUTING1)
 20:<0 FORMAT(1X,2I5,3F10.2,F10.6,2I5,E10.3)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
OOQ41000
00042000
00043000
00044000
00045000
00046000
00047000
00046000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       311

-------
c
c
c
c
c
c
c
c
c
c
c
c
204C FORMATC ' 0 ' , '4-++ERROR 062+++ ROO'i OF NETWORK NOT DEFINED  ',/,lX,
    1       'DOWNSTREAM REACH SHOULD BE TRIBUTARY TO -VE REACH*')
2050 FORMATC'O','+-M-ERROR 063+++ TABLE* ',15,' IS REFERRED TO BY',
    V           '  MORE THAN 1 REACH1)
20',, ?'ORMAT('0' ,20A4)
20','. •'OKMAT(///,lX, 'TABLES*' ,15)
1'OoJ FORMAT (IX, 'NPTS=' ,15)
2090 FORMATUX, 'SSECS-' ,15)
2100 FORMAT (IX, 'NSSECC ,11,')-',E12.5)
2110 FORMATC'O1,'+++ERROR 064+++ NO REACH ASSOCIATED WITH TABLE*',
    1           15,'  SLOPE MISSING')
2120 FORMATC'O1,'GEOMETRIC PROPERTIES FOR REACH*',15)
2130 FORMAT(1X,2F10.2)
2140 FORMATC24X,I5)
2150 FORMATC'O','HYDRAULIC PROPERTIES FOR REACH*',15)
2160 FORMATC'O1,'LEVEL!',5X,'DEPTH1,8X,'TOPW',8X,'AREA',8X,
    1           'DISCH')
2170 FORMAT!'0','BASE=',15,' NLEVS*',I5)
2180 FORMATC'O1 , '++-I-ERROR 06 5+++ TABLE* ',15,' IS MISSING FOR ',
    1           'REACH*  ',15)
2190 FORMAT(///,IX,'INITIAL VALUES:',/,IX,
    1              '   RCH DISCHARGE   STORAGE',5X,'DEPTH',7X,'TOP')
2200 FORMAT(1X,I5,4(E10.3,2X))

     READ REACH  PARAMETERS

     READ(IN,1000)  HEAD
     WRITE(IOUT,2000) HEAD

     READ(IN,1000)  HEAD
     WRITE(IOUT,2010)

     RTIND =0
     DO 20 NR  *=  1,NREA
        P.EAD(IN,1010) RCH(NR) ,TRIB(NR) ,LEN(NR) ,ELUP,ELDN,
    1                 NTAB(NR),PROUT(NR),QSTART(NR)

        SET UP TRANSFORMATION FOR USER/INTERNAL REACH*

        REACH  =  RCH(NR)
        IF  (REACH.GT.MAXRCH)
    1      CALL  KILLU2,EFLAG, TOUT,REACH,MAXRCH)
        USERCH(REACH) -  NR

        NEGATIVE  TRIE INDICATES ROOT OF NETWORK

        IF  (TRIB(NR) .LT.O) RTIND •< NR

        FIND SLOPE

        SLOP(NR)  =  (ELUP  -ELDN)/LEN(NR)
        IF  (SLOP(NR).GT.l.E-04)  GO TO 10
           WRITE(IOUT,2020)  NR,SLOP(NR)
           ZFLAG  "1
  10    CONTINUE

        WRITE(IOUT,2030)  RCH(NR),TRIB(NR),LEN(NR),ELUP,ELDN,
    1                    SLOP(NR),NTAB(NR),PROUT(NR),QSTART(NR)
  20 CONTINUE
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
0*096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                       312

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   IF (RTIND.GT.O)  GO TO 30
      WRITE(IOUT,2040)
      EFLAG =1
30 CONTINUE

   CHECK FOR DUPLICATE TABLE*
      DO 50 I = 1,NREA
         NT = NTAB(I)
         DO 40 J = 1,NREA
            IF (J.EQ.I)  GO TO 40
            IF (NTAB(J).NE.NT)  GO TO 40
               WRITE(IOUT,2050)  NT
               EFLAG =1
         CONTINUE
40
      INITIALIZE BASE REGISTER FOR X-SEC TABLES
      BASE(I)  =0
50 CONTINUE

   PREPARE TO START LOOP WHICH WILL READ IN GEOMETRIC
   PROPERTIES OF X-SECTION & COMPUTE HYDRAULIC PROPERTIES

   READ(IN,1000) HEAD
   V;RITE(IOUT,2060) HEAD

   INITIALIZE BASE VALUE FOR TABLE

   IBASE «1

   START LOOP

   PR « DIAG(3)
60 CONTINUE

   READ(IN,1020) TABN
   WRITE(IOUT,2070) TABN
   IF (TABN.LE.O) GO TO 150

   READ(IN,1030) NPTS
   WRITE(IOUT,2080) NPTS
   IF (HPTS.GT.MPTS)
  1   CALL KILL(4,EFLAG,IOUT,NPTS,MPTS)

   READ(IN,1040) SSECS
   WRITE(IOUT,2090) SSECS
   IF (SSECS.GT.MSECS)
  1   CALL KILL(5,EFLAG,IOUT,SSECS,MSECS)

   NSSEC(I) IS MANNINGS N FOR SUBSECTION I

   DO 70 I * 1,SSECS
      READ(IN,1050) NSSEC(I)
      WRITE(IOUT,2100) I,NSSEC(I)
70 CONTINUE

   FIND REACH* ASSOCIATED WITH THIS TABLE

   DO 80 NR = 1,NREA
00124000
00125000
00126000
00127000
0012^000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
OC168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
00179000
00180000
00181000
00182000
00183000
                                       313

-------
         NT =• NTAB(NR)
         IF (N'.r.EQ.TALi!l) GO TO  90
   80 '"O^T I HUE
      WRITE (IOUT, 2110) TABN
      JJFLAG =1
      I.;-1 -I
   90 C '.iNTINUE
c
c
c
c
c
c
            = RCH (NR)
      V:RITE(IOUT, 2120) REACH

      READ(IN,1000) HEAD
      WRITE ([OUT, 2060) HEAD
C
C
c
c
c
c
c
c
c
c
    READ GEOMETRIC PROPERTIES:-
    fSEC IS THE NO. OF THE SUBSECTION' OF THE  X-SECTION  TO WHICH
    THE SEGMENT BOUNDED BY POINTS I & 1+1 BELONGS

    DO 100 I = 1,NPTS
       P.EAD(IN,1060) X (I) ,Y (I)
       Ilf (I.NE.NPTS) READ(IN,1070) SSEC(I)
       Wt-'JTE (IOUT,2130) X(!),Y(I)
       IF (I.HE.NPTS) WRITE(IOUT,2140)  SSEC(I)
100 CONTINUE

    INITIALIZE

    WRITE(I OUT,2150) REACH
    WRITE(IOUT,2160)
    ELM.TS = NPTS -1
    SL'J-.'E = SLOP(NR)

    DO CALCS FOR HYDRAULIC PROPS

    CALL HYPROP(   ELMTS,IBASE,IOUT,MCROS,MPTS,MSECS,MTAD,
   1            NPTS,PR,SS SCS,NUM,SLOPE,NSSEC,X,Y,
   '*.               EFLAG,LOC,POINT,SSEC,A,P,TW,
   3               NLEV,TABLE                       )

    STORE BASE REGISTER & NO. OF  LEVELS

    H.-.SE(NR) = IBASE
    l^.EVS (NR)  = NLEV

    If (?r?.NE.O) WRITE (IOUT, 2170) IBASE,NLEV

    RESET BASE REGISTER FO?  NEXT  TABLE

    IBASE = IBASE +NLEVM

    GO TO 60

150 CONTINUE

    END CROSS-SECTION LOOP
    CHECK TABLE ADDRESSES

    Ml = IBASE -1
    IF (Ml.GT.MTAD)
00184000
00185000
0018SOOO
00187000
001S8000
00189000
00190000
00191000
00192000
00193000
00194000
00195000
00196000
00197000
00193000
00199000
00200000
00201000
00202000
00203000
00204000
00205000
00206000
00207000
00208000
00209000
00210000
00211000
00212000
00213000
00214000
OC215000
OC.'-.6000
oo::7ooo
00218000
00219000
00220000
00221000
00222000
00223000
00224000
00225000
00226000
00227000
00228000
00229000
00230000
00231000
00232000
00233000
00234000
00235000
00236000
00237000
00238000
00239000
00240000
00241000
00242000
00243000
                                       314

-------
c
c
c
c
c
c
c
c
c
c
c
c
   1   CALL KILL(6,EFLAG,IOUT,KI,MTAD)

    CHECK THAT ALL X-SECTIONS ARE IN TABLE

    DO 160 I = l.NREA
       IF (BASE(I).NE.0)   GO TO 160
          NT - NTAB(I)
          WRITE(IOUT,2180) NT,I
160 CONTINUE

    COMPUTE STARTING STORAGES FOR NETWORK

    WRITE(IOUT,2190)
    DO 170 I » 1,NREA
       CALL STORGE{   BASE(I),IOUT,MTAD,
   1               NLEVS(I),RCH(I),LEN(I),QSTART(I).TABLE,
   2                  LEVEL,SS,TS,YS                      )
       WRITE(IOUT,2200)  RCH(I),OSTART(I),SS,YS,TS
       VOL(I)  *SS
170 CONTINUE

    ANALYSE THE REACH NETWORK

    CALL RSORT(   IOUT,MORDR,NREA,DIAG(4),RTIND,RCH,
   1           TRIE,
   2              LEV,LEVSTK,NEXT,ORDER,REL,STACK,
   3              ORDR,SEQ,VECNO)

    END OF PROCESSING

    RETURN
    END
00244000
00245000
00246000
00247000
00248000
00249000
00250000
00251000
00252000
00253000
00254000
00255000
00256000
00257000
00258000
00259000
00260000
00261000
00262000
00263000
00264000
00265000
00266000
00267000
00268000
00269000
00270000
00271000
00272000
00273000
00274000
00275000
                                       315

-------
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE F.EFILl (    DIAGNS , DSN , IBASE, TOUT, MSTOR, MUL,
    1                   TBLKSZ,
    2                      CUR,RBUFF,
    3                   STOR   )

     THXS ROUTINE READS  DATA FROX.  FILES CONTAINING UNCOMPRESSED
     ARM-TYPE RECORDS TO A BUFFER  (RBUFF)  AND THEN FILLS A
     STORE (STOR) WITH  CORRECTLY JUSTIFIED SIMULATION INPUT,
     I? NECESSARY ACCUMULATING  SUCCESSIVE  VALUES  TO PROVIDE
     A TIME SERIES WITH  THE CORRECT TIME INTERVAL

     PARAMETERS

     INTEGER CUR,DIAGNS,DSN,IBASE,IOUT
     INTEGER MSTOR,MUL.TBLKSZ

     PiAL RBUFF(TBLKSZ},STOR(MSTOR)
 2000 FORMAT(IX'READ1,14)
 2010 FORMAT(1X,10E12.4)
 2020 FORMAT(IX,'BACKSPACE ',14)
 2030 FORMAT('0','+++ERROR 131+4+END OF FILE ENCOUNTERED
     1            'ON UNIT* ',14)
C
C
c
      READ  (DSN,END=99) RBUFF
      IF(DIAGNS.EQ.1) WRITE(IOUT,2000) DSN
      DO 10 J=l,TBLKSZ
         TEMPO ,
         KK= MUL
         1=1
         IF((CUR+I).GT.TBLKSZ) GO TO  8
         TEMP =TEMP+RBUFF(CUR+I)
         1= 1 + 1
         IF (I.GT.KK) GO TO 5
         GO TO  2
         KK= MUL - I + 1
         CL'R»0
         RtlAD  (DSN, END-99) RBUFF
         IFJDIAGNS.EQ.1) WRITE(IOUT,2000) DSN
         1 = 1
         GO TO  2
         cr;?.= CUR + 1-1
         STOR(IBASE+J)= TEMP
   10 CONTINUE
                      WRITE(IOUT,2010) (STOR(L) ,L«=IBAS,IJ)
                     17,18,17
     IJ=IBASE+J-1
     IBAS=IBASE+1
     IFfDIAGNS.EQ.l
     Ir'(CUR-TBLKSZ)
17   BACKSPACE DSN
     IF(DIAGNS.EQ.l)  WRITE(IOUT,2020) DSN
     GO TO 20

IB   CUR=0
     GO TO 20

  99 WRITE(IOUT,2030)  DSN
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
0003.4000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       316

-------
                                                                        00064000
      STOP                                                              Q0065000
C                                                                       G0066000
   20 CONTINUE                                                          00067000
      RETURN                                                            00068000
      END
                                           317

-------
 c
 c
 c
 c
 c
 c
 c
 c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE REFIL2(   CUR,DIAGNS,DSN,IBASE,IOUT,MSTOR,MUL,
    1                  NTBLK,TBLKSZ,
    2                     KEY,RBUFF,
    3                     STORE         )

     THIS SUBROUTINE READS DATA FROM A COMPRESSED-RECORD
     ARM-TYPE FILE, IT EXPANDS THE DATA & AGGREGATES IT,
     IF REQUIRED, TO FILL AN ARRAY 'STORE' WITH DATA
     READY FOR SIMULATION

     PARAMETERS

     INTEGER CUR,DIAGNS,DSN,IBASE,IOUT
     INTEGER KEY,MSTOR,MUL,NTBLK,TBLKSZ

     REAL RBUFF(TBLKSZ),STORE(MSTOR)

     LOCAL VARIABLES

     INTEGER DISP,ERROR,I,IFIRST,II,IJ,IK,ISTART,J,KK
     INTEGER NOZ,NUMBR,POS,REMZER

     REAL TEMP,VALUE

     WRITE FORMATS

2C''0 FORMAT (IX,'FILE-',14,' KEY-',IB)
2C-10 FORMAT{1X,'CUR=',I10,' MUL-',110)
2t!-'0 FORMAT (IX,'BACKSPACE ',14)
21 iO FORMAT(IX,'READ ',14)
2340 FORMAT(1X,I4,E12.5)
2050 FORMAT{'0','+++£RROR 141+-M- A HEADER INDICATING ZERO ',
    1           'DISPLACEMENT HAS BEEN FOUND IN READING FILE ',
    2           'NO. ',14)
2060 FORMAT(1X,'REMZER-',I8)
2070 FORMAT(1X,'REMZER-',18,'  N02-',I8)
2060 FORMATCO1 , '-n-l-ERROR 142+++ KEY WITH VALUE ',116,' WAS NOT ',
    1           'FO'JSD FOR FILE NO.  ',14)
209C FORMAT {'0','+-H-KARNING 143+++ END OF FILE ENCOUNTERED ON UNIT ',
    I        14,/,IX,'DATA FOR REMAINING TIME IS ASSUMED ZERO1)
2 IOC FORMATCO1 ,'TIME BLOCK ',16,'  DSN',14)
     FORMAT(1X,10E12.5)


     COR IS THE DISPLACEMENT BETWEEN THE START OF THE FILE I THE
     START OF  SIMULATION,  IN FILE TIME INTERVALS

     KK COUNTS ITEMS BEING  ACCUMULATED IN 'TEMP'  TO FORM A SINGLE
     SINGLE OUTPUT ITEM IN  'STORE1.  I COUNTS THE NUMBER OF ITEMS
     PLACED IN STORE

     'KEY1  IS  A VALUE  PASSED FROM PREVIOUS CALLS OF THIS ROUTINE OR,
     IF THIS  IS THE FIRST CALL,  FROM  THE INITIALISATION ROUTINE.
     IF IT'S  POSITIVE  IT  INDICATES  THAT THE  LAST VALUE PROCESSED
     FROM  THE  COMPRESSED  FILE  WAS POSITIVE.  'KEY1  IS THE POSITION
     OCCUPIED  IN  'RBUFF1  BY THAT VALUE.  IF  IT'S NEGATIVE IT IS
     EQUAL TO  THE  LAST  VALUE  READ FROM  THE BUFFER,  WHICH WAS A
     HEADER INDICATING  THAT THE  NEXT  NON-NEGATIVE  VALUE WAS FOR
     A  TIME BEYOND THAT TIME  BLOCK.
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
000*4000
0004SOOO
00046000
00047000
00043000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      318

-------
      IF(DIAGNS.EQ.l)  WRI1E(IOUT,2000)  DSN,KEY
      IF(DIAGNS.EQ.l)  WRITE(IOUT,2010)  CUR.MUL
      ERROR =0
      ISTART=1

      TKM:-»=0.
      1=0
      IFIRST= 0
      IF(KEY.LT.O)  GO TO 60
      POS= KEY
 5    IF(POS.EQ.TBLKSZ)  GO TO 10
      POS= POS+1
C     If WE ARE STARTING A TIME BLOCK WE NEED TO RE-READ THE
C     LAST COMPRESSED RECORD
      IFCSTART.EQ.O)  GO TO 15
      BACKSPACE DSN
      I'-'(DIAGNS.EQ.l)  WRITE (IOUT, 2020)  DSN
      GO TO 11
 10    POS=1
 11    READ(DSN,END=99)  RBUFF
      ISTART=0
      IF(DIAGNS.EQ.I)  WRITE(IOUT,2030)  DSN
C     GET NEXT ITEM FROM THE READ BUFFER
 15   VALUE= RBUFF(POS)
      IF(DIAGNS.EQ.l)  WRITE(IOUT,2040)  POS,VALUE
C     IS THIS A HEADER OR A 'TRUE' VALUE
      IP(Vr\LUE.LT. (-.1) ) GO TO 25
C     ADD TO TEMP
      TEMP- TEMP+VALUE
      KK* KK+1
C     FINISHED WITH ^CUMULATION?
      IF(KK.NE.MUL)  GO TO 5
      I" 1 + 1
      STORE (IBASE+I)«= TEMP
      KK-0
      TEMF=0.
C     IS 'STORE1 FULL?
      IF(I.NE.TBLKSZ)  GO TO 5
C     SET KEY FOR NEXT TIME BLOCK
      KL"V= POS
      GO TO 89
C     WE HAVE ENCOUNTERED A HEADER
 25   DISP= ABS(VALUE) +.1
C     IF DISP IS ZERO WE HAVE AN ERROR CONDITION
      IF (DISP.GT.O) GO TO 27
      WRITE  (IOUT,2050)  DSN
      ERROR-1
      GO TO 89
C     FIND DISPLACEMENT IN INPUT FILE BETWEEN LAST ITEM WRITTEN
C     TO 'STORE1 f.  LAST ZERO IN THIS SEQUENCE
 27   REMZER1* DISP-CUR- ( (NTBLK-1) *TBLKSZ + I) *MUL -1
      IF(DIAGNS.EQ.l)  WRITE.(IOUT, 2060)  REMZER
C     DO ZEROS GO BEYOND THIS SIMULATION INTERVAL?
      IF(REMZER.GE.MUL)  GO TO 40
C     INCREASE K TO ACCOUNT FOR ZEROS
      KK= REMZER
      GO TO 5
C     ZEROS GO BEYOND THIS SIMULATION INTERVAL
 40   I« 1+1
      STORE(IBASE+I)- TEMP
                                 00064000
                                 00065000
                                 00066000
                                 00067000
                                 00063000
                                 OC069000
                                 00070000
                                 00071000
                                 00072000
                                 00073000
                                 00074000
                                 00075000
                                 00076000
                                 00077000
                                 00078000
                                 00079000
                                 00080000
                                 00081000
                                 00082000
                                 00083000
                                 00084000
                                 00085000
                                 00086000
                                 OOOB7000
                                 00088000
                                 00089000
                                 00090000
                                 00091000
                                 00092000
                                 00093000
                                 00094000
                                 00095000
                                 00096000
                                 00097000
                                 00098000
                                 00099000
                                 00100000
                                 001010-00
                                 00102000
                                 00103000
                                 00104000
                                 00105000
                                 00106000
                                 00107000
                                 00108000
                                 00109000
                                 00110000
                                 00111000
                                 00112000
                                 00113000
                                 00114000
                                 00115000
                                 00116000
                                 00117000
                                 00118000
                                 00119000
                                 00120000
                                 00121000
                                 00122000
                                 00123000
319

-------
c
c
c
c
c
      IS STORE() FULL?
      IF(I.NE.TBLKSZ) GO TO 61
      KEY- -DISP
      GO TO 89

      WE HAVE A NEGATIVE VALUE FOR  'KEY1  IT'S A HEADER

 60   DISP- lABS(KEY)
      IFIRST*!
      REMZER IS THE DISPLACEMENT BETWEEN THE LAST ITEM WRITTEN TO
      STORE() & THE LAST ZERO IN THIS SEQUENCE
 61   REMZER- DISP-CUR-((NTBLK-1)*TBLKSZ+I)*MUL -1
C     FIND NO OF ZEROS TO INSERT IN STORE()
      NOZ- REMZER/MUL
      IF(DIAGNS.EQ.l) WRITE(IOUT,2070) REMZER,NOZ
C     WRITE ZEROS INTO STORE{)
      IF(NOZ.EQ.O) GO TO 65
      IF(NOZ.GE.(TBLKSZ-I)) GO TO 70
      DO 64 J-1,NOZ
         I« 1+1
 64   STORE(IBASE+I)- 0.
C     GET READY TO START ACCUMULATING A NEW VALUE FOR STORE()
 65   KK- REMZER- NOZ*MUL
      TEMP-0.
C     IF WE CAME HERE WITH A NEGATIVE VALUE FOR 'KEY' WE HAVE TO FIND
C     THE PLACE IN THE COMPRESSED RECORD FROM WHICH IT CAME
      IF(IFIRST.NE.l) GO TO 5
      IFIRST- 0
      BACKSPACE DSN
      IF(DIAGNS.EQ.l) WRITE(IOUT,2020) DSN
      READ(DSN) RBUFF
      IF(DIAGNS.EQ.l) WRITE(IOUT,2030) DSN
      DO 68 J-l.TBLKSZ
         IF(RBUFF(J).GT.O.) GO TO 68
         NUMBR- RBUFF(J)-.l
         IF(NUMBR.EQ.KEY) GO TO 69
 68   CONTINUE
      WRITE(IOUT,2080)  KEY,DSN
      ERROR- 1
      GO TO 89
 69   POS- J
      ISTART* 0
      GO TO 5
C     ALL REMAINING LOCATIONS IN STORE() NEED ZEROS
 70   II- 1+1
      DO 72 I«II,TBLKSZ
 72   STORE(IBASE+I)- 0.
      KEY- -DISP
      GO TO 89
 99   WRITE(IOUT,2090)  DSN
      DISP" 32760
      GO TO 40
C
 89   IF(DIAGNS.NE.l)  GO TO 90
      10- IBASE +1
      IK- IBASE +TBLKSZ
      WRITE(IOUT,2100)  NTBLK,DSN
      WRITE(IOUT,2110)(STORE(I),I-IJ,IK)
      WRITE(IOUT,2000)  DSN,KEY
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00178000
00179000
00180000
00181000
00183000
00184000
00185000
00187000
00189000
00190000
                                       320

-------
90   CONTINUE                                                          00191000
     IF(ERROR.EQ.l)  STOP                                               00192000
     RETURN                                                            00193000
     END                                                               00194000
                                      321

-------
c
c
o
c
c
c
c
c
c
c
c
c
c
c
   SU3-.IOUTINE REFIL3(    DIAGNS, DSN , IBASE, TEND, TOUT , 1ST,
  1                  MSTORP,MUL,TBLKSZ,FACT,
  2                     CUR, P.BUFF, STORP         )

   ROUTINE TO READ POINT VALUES FROM FILE INTO AN
   AN ARRAY STORP.  ACCUMULATION OF FILES IS BY
   SUCCESSIVE CALLS TO REFIL3 AND STRAIGHT SUMMATION
   INTO STORP.
   BASIC VALUES MAY BE MULTIPLIED BY A FACTOR FACT

   PARAMETERS

   INTEGER CUR,DIAGNS,DSN,IBASE,TEND,IOUT
   INTEGER IST,MSTORP,MUL,TBLKSZ

   REAL FACT
   REAL RBUFF(TBLKSZ),STORP(KSTORP)

   LOCAL VARIABLES

   INTEGER I,IBAS,IJ,J
 2000 FORMAT(1X,'READ1,14)
 2010 FORMAT(1X,10E12.4)
 2020 ?ORMAT('0','+++ERROR 161+++ END OF FILE ENCOUNTERED ',
     1           'ON UMZT ',14)
 2030 FORMAT(IX,'BACKSPACE ',15)
 2040 FORMAT(1X,'CUR= ',15,'  MUL= ',15)
C
C
C
C
C
   READ(DSN,END=100) RBUFF
   IF (DIAGNS.EQ.l)  WRITE(IOUT,2000) DSN
   I =1
   DO 20 3 « 1ST,TEND
      IF ((CUR + I).LE.TBLKSZ) GO TO 10
         I - COR +1  -TriLKSZ
         CUR «=0
         READ(DSN,END-100)  RBUFF
         IF (DIAGNS.EQ.l) WRITE(IOUT,2000) DSN
10    CONTINUE
      STORPflBASE +J) = RBUFF(CUR +1)*FACT +STORP(IBASE +J)
      1=1 +MUL
20 CONTINUE

   STORP NOW FILLED. RESET CURSORS ETC

   CUR = CUR +1 -MUL
   IJ - IBASE +IEND
   IBAS = IBASE -H
   IF (DIAGNS.EQ.l)  WRITE(IOUT,2010) (STORP(L),L*IBAS,IJ)
   IF (CUR -T3UCSZ)  30,40,30

30 BACKSPACE DSN
   IF (DIAGNS.EQ.l)  WRITE(IOUT,2030) DSN
   GO TO 50

40 CUR =0
   GO TO 50
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00(125000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00030000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       322

-------
  100 CONTINUE                                                          00064000
      WP,ITE(IOUT,2020)  DSN                                              00065000
      STOP                                                              00066000
C                                                                       00067000
   50 IF (DIAGNS.EQ.1)  WRITE(IOUT,2040) CUR.MUL                         00068000
      RETURN                                                            00069000
      END                                                               00070000
                                       323

-------




c
c
c
c
c


c


c
c
c
c

c


c
c
2000

201.0

2020

2030


C
c
c
c
c


30
C
4-0





C
50
C
C
C
1
C





SUBROUTINE ROUTE ( IBASE, INT , IOUT, MTAD, NLEV,
1 REACH , TIMINT , INFLO , LENGTH , OS , SS , TABLE ,
2 LAST,
3 AE,QE,SE,TE,YE )

RO'JTE FLOW THROUGH REACH FOR ONE TIME INTERVAL

PARAMETERS

INTEGER IBA5E , INT , IOUT , LAST , MTAD , NLEV
INTEGER REACH

REAL AE , INFLO , LENGTH , OE , QS , SE , ES , TE , TIMINT , YE
REAL TABLE (MTAD)


LOCAL VARIABLES

INTSGER I,LEVBAS

REAL AK,CHG,DELA,DELT,DELY,FACT
REAL QUOT,QX,Q1,Q2,S1,S2,T1,T2,Y1,Y2


FORMATCO1 , ' ++ -WARNING 171-M-+ CHANNEL HAS GONE DRY IN TIME ',
1 'INTERVAL ' ,14, /, IX, 'PROBABLE LOSS OF CONTINUITY1)
FORMATCO' , ' +++WARNING 172+++SECTION EXTRAPOLATED IN REACH ',
1. 14,' LEV"1, 16)
t'ORMAT ( ' 0 ' , ' +++ERROR 173+-H- NO CONVERGENCE AFTER 100 ',
1 'ITERATIONS - SUBROUTINE ROUTE1)
FORMAT (' 0 ',' 4-("t-ERROR 174+-M- LEVEL PASSED OUTSIDE PERMISSIBLE ',
1 '*ANGE FOR THIS REACH ',/,lX,
2 'LAST »',I5,' NLEV «',I5)


CHECK WHETHER CHANNEL GOES DRY IN THIS INTERVAL.
(COMPUTED QE <» 0. )

OE - SS/TIMINT*2. -QS +2.*INFLO
IF (OE) 30,40,50
K3I7E (IOUT, 2000) INT

OK =0.
Yc ';0.
AD -0.
1'c. =0.
££ *c.
RETUSN

CONTINUE

CH'.NNEL HAS NOT GONE DRY - PROCEED AS NORMAL

IF(LAST.LT. 1.0R.LAST.GE.NLEV1 GO TO 99
FIND BASE FOR THIS PARTICULAR TABLE AND LEVEL
LEVBAS= IBASE -f(LAST-l)*4
Ql- T ABLE (LEVBAS +3)
Sl= TABLE (LEVBAS+2)*LENGTH
02= TABLE (LEVBAS-i-7)
S2« TABLE (LEVBAS+6)*LENGTH
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
oooieooo
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00' 34000
00 55000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
324

-------
c
c
 10
  20
  22
 C
 C
AK- (S2-S1)/(Q2-Q1)
QX» (TIMINT*(IHFLO-QS*.5)+AK*Q1+SS-S1)/(AK+TIMINT*.S)
IF(QX.GE.Ql) GO TO 5
LAST" LAST-1
GO TO 1
IF(QX.LE.Q2) GO TO 10
IF(LAST.EQ.(NLEV-1)) GO TO 7
LAST= LAST -t-1
GO TO 1
WRITE(IOUT,2010) REACH,LAST
WE HAVE FOUND THE CORRECT SEGMENT OF THE S VS Q CURVE -
FIND SE
OE*»QX
SE= SI  +  (QE-Q1)*(S2-S1)/(Q2-Q1)
FIND DEPTH USING NEWTON APPROXIMATION
T2= TABLE(LEVBAS+5)
Tl» TABLE(LEVBAS+1)
Y2 = TABLE (LEVBAS-t-4)
Yl- TABLE(LEVBAS)
QUOT-(T2-T1)/(Y2-Y1)
D2LA-(S£-51)/LENGTH
ITERATE
Xu.LY-  (Y2-Y1)*0.5
DO 20  1-1,100
FACT"OUOT*DEI.Y
D£LT«  (FACT*DELY*0.5 + DELA)/(FACT  + Tl)
CHG»AB5(DELT-DELY)
DELY»DELT
IF(CHG.LT.(0.01*Y2)) GO TO  22
CONTINUE
ERROR
WHITE(IOUT,2020)
STOP
YE- Yl •»• DELY
TE " FACT -KT1
AE » SE/LENGTH
 RETURN
  99
 ERROR CONDITION
 WRITE{IOUT,2030)
 STOP
 END
LAST.NLEV
           00064000
           00065000
           00066000
           00067000
           00068000
           00069000
           00070000
           00071000
           00072000
           00073000
- INTERPOLA00074000
           00075000
           00076000
           00077000
           00078000
           00079000
           00080000
           00081000
           00082000
           00083000
           00084000
           00085000
           00036000
           00087000
           00088000
           00089000
           00090000
           00091000
           00092000
           00093000
           00094000
           00095000
           00096000
           00097000
            00098000
            00099000
            00100000
            00101000
            00102000
            00103000
            00104000
            00105000
                                        325

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE RSORT(    IOUT,MORDR,NREA,PR,RTIND,
    1                 RCH,TRIB,
    2                    LEV,LEVSTK,NEXT,ORDER,REL,
    3                 STACK,
    4                    ORDR,SEQ,VECNO         )

     THIS ROUTINE FINDS THE STRUCTURE OF THE  TREE  IMPLIED
     IN THE REACHES READ IN SUBROUTINE RCHIN, AND  FINDS
     THE EXECUTION SEQUENCE WHICH MINIMIZES
     TEMPORARY STORAGE

     PARAMETERS

     INTEGER IOUT,MORDR,NREA,ORDR,PR,RTIND
     INTEGER LEV{NREA),LEVSTK(MORDR),NEXT(NREA),ORDER(NREA)
     INTEGER RCH(NRSA) ,REL(NREA) ,SEQ(NREA) , STACK (NREA)
     INTEGER TRIE(NREA),VECNO(NREA)

     LOCAL

     INTEGER COUNT,FLAG,G,LEVEL,PNT,POINT,PTLVST
     INTEGER PTSTAC,RCHIND,REACH,SONIND,SWTCH,TIE
C
C
C
C
c
     INTEGER ORD(30),POT(30)
     EQUIVALENCE (ORD(l),POT(1))

     WRITE FORMATS

2000 FORMAT('0','NO.  OF FLOW STORAGE VECTORS REQUIRED = ',15)
2010 FORMATC'O','+++ERROR 081+++  STORAGE REQD BY SYSTEM IS ',
    1       'GREATER THAN ALLOWED (',15,')'  )
2020 FORMAT(IX,'REACH     LEVEL1)
2030 FORMAT(1X,I5,5X,I5)
2040 FORMATCO1,'REACH PROCESSING INFORMATION TO BE PASSED ',
    1           'TO MAIN PROGRAM1)
2050 FORMATf'O1,'REACH  SEQf VECTOR* RLSE1,/)
2060 FORMAT(IX,'READ REACH',15,'   LEVEL',15)
2070 FORMAT('0','END OF REACH STRUCTURE ANALYSIS')
C
C
      LSTVEC= MORDR
      DO 5 1=1,NREA
         POT(I)=0
         LEV(I)=0
         ORDER(I)=0
         REL(I)=0
         NEXT(I)=0
       PUT THE ROOT OF THE TREE IN THE STACK
      P75TAC=0
      LrtSTPT=l
      CALL PSHDON(   RTIND,NREA,   PTSTAC,
       USE THE STACK TO FIND OUT HOW MANY
      DO 10 PNT=1,NREA
         K= STACK(PNT)
         REACH= RCH(K)
         DO 9 1=1,NREA
         IF(TRIB(I)-EQ.REACH) CALLPSHDONJ
                                            STACK)
                                          SONS' THE REACH HAS
                                            I,NREA,   PTSTAC,   STACK)
        POT()  IS THE POTENCY (I OF SONS)  OF A REACH
00004000
00005000
00006000
00007000
00008000
00009000
00010000
ooonooo
000'2000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      326

-------
 10
c
c
c
 12
 14
C
C
C
C
C
 15
C
C
c
c
 16
C
C
c
 j
c
c
17
C
•C
C
 20
 21

 22
C
C
C
C
 23

 30
 36
C
C
C
        POr(K)= PTSTAC-LASTPT
     LASTPT=PTSTAC

     SEARCH NETWORK & ASSIGN 'ORDER' TO EVERY REACH
      LASTID= -1
      K= PTSTAC-1
      IF(K.LT.l) GO TO
      DO 30 J=1,K
         ID= STACK(PTSTAC)
                      36
        FIND INTERNAL f (IND)  OF REACH TO WHICH REACH 'ID1 IS

        DO 12 I=1,NREA
           IFCRCH(I).EQ.TRIB(ID))  GO TO 14
        CONTINUE
                                                        'SONS
LASTID IS INTERNAL * OF LAST  'TRIBJTO' REACH.
COUNT IS INCREMENTED AS WE CONSIDER EACH OF THE
OF LASTID.
        IF(IND-LASTID)
        COUNT" COUNT+1
        GO TO 27
                        16,15,16
        TIE INDICATES THERE IS MORE THAN ONE TRIBUTARY WITH A
        GIVEN ORDER,  & ITS VALUE IS THE ORDER OF THOSE TRIBS.
                                                                   00064000
                                                                   00065000
                                                                   00066000
                                                                   00067000
                                                                   00068000
                                                                   00069000
                                                                   00070000
                                                                   00071000
                                                                   00072000
                                                                   00073000
                                                                   00074000
                                                                   00075000
                                                         TRIBUTARY00076000
                                                                   00077000
                                                                   00078000
                                                                   00079000
                                                                   00080000
                                                                   00081000
                                                                   00082000
                                                                   00083000
                                                                   00084000
                                                                   00085000
                                                                   00086000
                                                                   00087000
                                                                   00088000
                                                                   00089000
                                                                   00090000
                                                                   00091000
                                                                   00092000
                                                                   C0093000
                                                                   00094000
                                                                   00095000
                                                                   00096000
                                                                   00097000
                                                                   00098000
                                                                   00099000
                                                                   00100000
                                                                   00101000
                                                                   00102000
                                                                   00103000
                                                                   00104000
                                                                   001050.00
                                                                   00106COO
                                                                   00107000
                                                                   00108000
                                                                   00109000
                                                                   00110000
                                                                   00111000
                                                                   00112000
                                                                   00113000
                                                                   00114000
                                                                   0011500-0
                                                                   00116000
                                                                   00117000
                                                                   00118000
                                                                   00119000
                                                                   00120000
                                                                   00121000
ORDR IS 1 MORE THAN ORDER GIVEN BY ALGORITHM ABOVE, TO ALLOW FOR   00122000
EXTRA VECTOR NEEDED TO TEMPORARILY STORE OUTFLOW FROM TERMINUS REA00123000
         COUNT-1
         TTE=0
         LASTID--
                IND
POT() IS THE f OF SONS WHICH REACH IND HAS

IFfPOT(IND).NE.l) GO TO 20

REACH 'ID1 IS THE ONLY TRIE TO 'IND'
ORDER(IND)= 1
IF(ORDER(ID).GT.O) ORDER{IND)-ORDER(ID)
GO TO 30
        IF(ORDER(IND)-ORDER(ID))  21,22,23
        ORDr.R(IND) = ORDER (ID)
        GO TO 23
        TJ.E" ORDER (ID)
        WE
        OF
   NOW CHECK TO SEE
   SIMILAR ORDER AT
IF THERE ARE MORE
THIS CONFLUENCE
THAN ONE TRIBS
        IF(COUNT.NE.POT(IND) )
        IF(TIE.EQ.ORDER(IND))
     PTSTAC- PTSTAC-1
     IF(ORDER(RTIND).EQ.O)  ORDER(RTIND)
                      GO TO 30
                      ORDER (IND)'
              ORDER(IND)
                                      327

-------
c
c
 31
C
C
c
c
 32
 33
 34

 35
C
C
C
c
c
c
c
 37
C
C
C
 38
C
C
C
 42
 ALGORITHM ABOVE

 ORDR= ORDER(RTIND) + 1
 WRITE(IOUT,2000) ORDR
 iV(ORnR.GT.LSTVEC) WRITE{IOUT,2010)  LSTVEC

SET UP A VECTOR
WHICH POINTS TO SUCCESSIVELY LOWER ORDER REACHES (ORD)

 DO 32 1=1,NREA
 ORD(I) = 0
 DO 35 1= 1,NREA
    IF(I.EQ.RTIND) GO TO 35
    POINT= RTIND
    DO 33 J*l,1000
       IF(POINT.LE.O) GO TO 34
       IF(ORDSR(POINT).LT.ORDER(I)) GO TO 34
       LP.ST* POINT
    POINT" ORD(POINT)
    ORD(1)= ORD(LAST)
    ORD(LAST)- I
 CONTINUE
00124000
C-;il25000
00126000
00127000
00128000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
                                                                   00147000
 WE NOW DETERMINE THE ORDER IN WHICH THE REACHES ARE TO BE PROCESSE00148000
                                                                   00149000
 pa-STAC=101
 KCHIND-RTIND
 LEV(RCHIND)= 1
C
C
 WE EXECUTE STMTS 37 THRU 43 EACH TIME WE SEARCH FOR A SON,
 GIVEN THE FATHER

 G" LEV(RCHIND)
 CALL PSHDON(   RCHIND,NREA,   PTSTAC,   STACK)
 CALL GETSON(   RCHIND,NREA,RTIND,LEV,ORD,RCH,TRIB,      SONIND)
 IF(SONIND) 40,40,38

 NON-TERMINUS REACH

 NEXT(RCHIND)- SONIND
 LEV(SONIND)= G-H
 GO TO 43

 TERMINUS REACH, SO NOW WE BACK UP & GO TO ANOTHER BRANCH

 IF((PTSTAC.LE.O).OR.{SONIND.NE.O)) GO TO 42
 PTSTAC* PTSTAC-1
 IF(PTSTAC.LE.O) GO TO 42
 CALL GETSON(   STACK(PTSTAC),NREA,RTIND,LEV,ORD,RCH,
1            TRIB,
2               SONIND )
 GO TO 40
 IF(PTSTAC.LE.O) GO TO 43
 NSXT(RCHIND)- SONIND
 K= STACK(PTSTAC)
 LEV(SONIND)- LEV(K)+1
 RCHIND= SONIND
 IF(PTSTAC.GT.O) GO TO 37

 WRITE SOME INTERMEDIATE RESULTS
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
00179000
00180000
00181000
00182000
00183000
00184000
                                      328

-------
c
c
c
c
c
c
c
c
c
     IF(PR.NE.l)  GO TO 45
     WRITE(IOUT,2020)
     I=RTIND
44   WRITE(IOUT,2030)  RCH(I),LEV(I)
     1= NEXT (I)
     IF(I.NE.O)  GO TO 44

     NOW GO THRU THE TREE,  IN ORDER GIVEN BY 'NEXT1
     AND ORGANISE THE PROCESSING OPERATIONS FOR EACH REACH

     WRITE HEADINGS
45   IF(PR.NE.l)  GO TO 47
     WRITE(IOUT,2040)
     WRITE(IOUT,2050)

47   PTSTAC=0
     PTLVST= 0
     RCHIND=RTIND
     SWTCH= 0
     FLAG* 1

     J IS A COUNTER WHICH IS USED 'TO INDICATE THE SEQUENCE  IN WHICH
     REACHES WIL"L BE PROCESSED

     0*0
50   REACH- RCH(RCHIND)
     LEVEL- LEV(RCHIND)
     IF(PR.EQ.l) WRITE(IOUT,2060) REACH,LEVEL
     IF(PTSTAC.GT.O)
    1   CALLPOPOUT(   TOUT,LEVEL,MORDR/NREA,PR,LEV,LEVSTK,
    2               RCH,STACK,
    3                  FLAG,J,PTLVST,PTSTAC,SWTCH,
    4                  REL,SEQ,VECNO                 )

     CALL PSHDWN(   IOOT,LEVEL,LSTVEC,MORDR,NREA,RCHIND,
    1               FLAG,PTLVST,PTSTAC,SWTCH,
    2               LEVSTK,STACK)
     RCHIND- NEXT(RCHIND)
     IF(RCHIND.GT.O) GO TO 50

     LAST REACH

     LEVEL-0
     IF(PTSTAC.GT.O)
    1   CALL POPOUT(   IOUT,LEVEL,MORDR,NREA,PR,LEV,LEVSTK,
    2               RCH,STACK,
    3                  FLAG,J,PTLVST,PTSTAC,SWTCH,
    4                  REL,SEQ,VECNO                )
     IF(PR.EQ.l)WRITE{IOUT,2070)
     RETURN
     END
C
C
C
00185000
0018600'.
00187001
00188000
00189000
00190000
00191000
00192000
00193000
00194000
00195000
00196000
00197000
00198000
00199000
00200000
00201000
00202000
0020300C
00204000
00205000
00206000
00207000
00206000
00209000
00210000
00211000
00212000
00213000
00214000
00215000
00216000
00217000
00218000
00219000
00220000
00221000
00222000
00223000
00224000
00225000
OC226000
00227000
00228000
00229000
00230000
00231000
00232000
00233000
00234000
00235000
00236000
                                       329

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   SUBROUT INF, SDLOAD {   DBAS , IN? , MAXTRB , MO,?DR, MSEGS , MSTOR, MSTORP,
  1                  MTVEC , NPSF , NVEC , ORDR, PBAS , SDEBUG , SOUT ,
  2                  TBLKS",DIFFUS,FACTER,NO,STEADY,TIMINT,
  3                  DD , COMLND, GP.EQ, RCHTRB , STORE, STORP , THRESH , TVEC ,
  4                     MASSIN,SHEET    )

   ROUTINE TO COMPUTE TOTAL SEDIMENT LOAD TO ONE REACH
   IN THIS TIME INTERVAL

   P:.RAMETERS

   INTEGER DBAS,INT,MAXTRB,MORDR,MSEGS,MSTOR,MSTORP,MTVEC
   INTEGER NPSF,NVEC,ORDR,PBAS,SDEBUG,SOUT
   INTEGER TBLKSZ

   REAL DIFFUS,FACTER,NO,STEADY,TIMINT

   INTEGER DD(2,KSEGS)

   REAL COMLND(NPSF),GREQ(NPSF)
   REAL MASSIN(NPSF),RCHTRB(MAXTRB),SHEET(NPSF)
   REAL STORE(MSTOR),STORP(MSTORP),THRESH{NPSF},TVEC(KTVEC,MORDR)
   LOCAL

   INTEGER DSN,I,IBAS,INTQ,INTQ 2,N,NBAS,NSG,SEG,TBLK1
   REAL ERFAC,SAREA,SED,TOTAL
   TBLK1 = TBLKSZ +1
   INTQ = INT* (NPSF +1) +1
   INTO2 = INTQ - (NPSF +1)

   GET TOTAL MASS OF SEDIMENT FLOWING INTO REACH
   FOR EACH PARTICLE SIZE

   DO  50 I = 1,NPSF
      SED =0.

      ADD POINT LOADS

      N - (TBLK1*I)  -f INT
      IF (?3AS.GT.O)
  1      SED = 0.5*TIMINT*( STORP(N) + STORP(N +1)  )

      ADD INFLOW FROM U/S

      IF (NVEC.NE.ORDR)
  1      SED = SED 4 0.5*TIMINT*( TVEC((INTQ2 -fI),NVEC)
  2                -f TVEC ((INTQ •*•!), NVEC) )
      MASSIN(I) = SED
50 CONTINUE

   GET DIFFUSE LOADING

   IF (DIFFUS.EQ.NO) GO TO 100
   IF (DBAS.EQ.O)  GO TO 100
      DO  60 1= 1,NPSF
         SHEET(I)  =0.
60    CONTINUE
00004000
00005000
OOOOGOOO
00007000
0000800C
00009000
00010000
00013000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00022100
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00031100
00031200
00031300
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043"00
0004K,v,0
00049.JOO
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       330

-------
 70
 80
TOTAL =0.
NBAS " DBAS
NSG = RCHTRB(NBAS)
DO 80 I « l.NSG
   S*.G = RCHTR8(NBA5 +1)
   SAREA = RCHTP.3CN3AS +2)
   DSN = DD(2,S£G)
   IF (DSN.EQ.O) GO TO  70
      ERFAC » FACTER/TIMINT
      T.BAS *  (SEG -1)*TBLKSZ
      SED « STORE (IBAS -HNT)*ERFAC
      IF (SED.EQ.O.) GO TO  70
         CALL SPLIT(   NPSF,SDEBUG,SOOT,TIMINT,
                    SAREA,SED,STEADY,COMLND,
                    GREQ,THRESH,
                       TOTAL,SHEET  )
   CONTINUE
   NBAS •= N3AS 42
CONTINUE
100 CONTINUE

    RETURN
    END
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
oooeiooo
00082000
00083000
00089000
00090000
00091000
00092000
                                     331

-------





c
r.
C
c
c




c

c



c
c
c

c

c
c

















c
c
c





c
c
c




SUBROUTINE SDPRNT( YR, MON , DAY , HR, MIN , SEC , EFLAG , MLAY , MLINES ,
1 MNPSF , NLAY , NPSF , PRFREQ, REACH , SDEBUG , SDPOUT ,
2 SOU? , TIMINT , CUML , DENW , OUTFAC , 0 2E , Q2S ,
3 ACCS , CE , CS , LAYCOM , LAYTHK , MSMON , MSYR ,
4 KNT-T-,LINESD,PRMONS,PRYRS )

PRINT OUT RESULTS OF SEDIMENT CALCS

PARAMETERS

INTEGER YR,MON,DAY,HR,MIN,SEC
INTEGER EFLAG , INC , KNTSD, LINESD, MLAY , MLINES
INTEGER MNPSF, NLAY, NPSF, PRFREQ, PRMONS
I NTEGER PRYRS , REACH , SD?BUG , SDPOUT , SOUT

REAL CUML, DENW, OUTFAC, Q2E ,Q2S,TIMINT

REAL ACCS (NPSF) ,CE(NPSF) ,CS(NPSF)
HEAL LAYCOM (MLAY, MNPSF) .LAYTHK (MLAY) , MSMON (NPSF)
REAL MSYR (NPSF)

LOCAL VARIABLES

INTEGER I,TIMPMO,TIMPR,TIMPYR

REAL FACT, MASS, TOTAL


2000 FORMATC1 ',' RESULTS OF SEDIMENT TRANSPORT CALCS :',/,' 0 ',
1 'REACH YEAR MO DA HR MIN SEC TYPE',12X,
2 'SEDIMENT OUTFLOW RATES (MASS*OUTFAC/TIME) BY PARTICLE1
3 • S::E',/,IX,
I ' 1.0. ' ,T31 , 'M=MEAN' ,T45, '1 ' ,11X, '2 ' ,11X, ' 3 ' ,11X,
f> '4 ' ,11X, '5' ,7X, 'TOTAL' ,8X, 'CUML' ,/,lX,
7 T30, 'P=POIKT',/)
2010 FORMAT(1X(2I5,3I3,214,6X,'M' , (T36 , 5 (E10. 3 , 2X) ) )
3" 15 FORMAT ('-f' , 94X, E10. 3 , 2X, E10 . 3)
i".?0 FORMAT (IX, 'REACH ',13,' TOTALS FOR MONTH ',I2,2X,
1 (T36,5(E10.3,2X)) )
.' .:Ui FORMAT (IX, 'REACH ',13,' TOTALS FOR YEAR ',I2,2X,
1 (T36,5(E10.3,2X)) )
2040 FORMAT(lX,2Ib,3I3,2I4,6X,'P' , (T36,5(E10.3,2X)) )
20r.O FORMATCO', 'TRANSPORT CONCN ',20X,'SIZE FRACTION1 ,/, IX,
1 29X 'I1 11X ' 2 ' 11X * 3 ' 11X '41 11 X * 5 * )
2060 FORMAT(1X,(T22,5(E10.3,2X)) )

CHECK FOR ERROR FLAG

IF (EFLAG. EQ.O) GO TO 150
SDEBL'G=3
PRFREQ = KNTSD +1
CDPOUT =3
150 CONTINUE

^:T FLAGS

INC = KPSF/5
IF ( (INC*5) .LT.NPSF) INC = INC + 1
KNTSD = KNTSD +1
TIMPR =0
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
GOOJ; ooo
00032000
00033000
,00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00064000
00065000
00066000
00066100
00066200
00067000
00068000
332

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   20
   TIMPMO «=0
   TIM?YR =0

   IF (PRFREQ.LT.O)  GO TO 20

   IS IT TIME TO PRINT OUT?

   IF (KNTSD.NE.PRFREQ) GO TO 30
      TIMPR =1

      END OF MONTH

      IF (MON.EQ.PRMONS) GO TO 30
         TIMPR -1
         TIMPMO =1
         IF (YR.EQ.PRYRS) GO TO 30
            TIMPYR =1

30 CONTINUE

   CHECK FOR PRINTED HEADER

   IT (TIMPR.EQ.O) GO TO 10
   IF (LINESD.NE.O .AND. SDEBUG.EQ.0)  GO TO 10
      WRITE(SOUT,2000)
      LINESD « LINESD +6
10 CONTINUE
   IF (SDPOUT.EQ.2)  GO TO 200

      PRINTING MEAN SEDIMENT RATES - ACCUMULATE VALUES
      OVER PRINT INTERVAL
         DO 40 I = l.NPSF
            MASS - (CS(I)*Q2S -f CE(I)*Q2E)*0.5*DENW
            ACCS(I) - ACCS(I) + MASS
         CONTINUE
         IF (TIMPR.EQ.O) GO TO 900
40
   50
   60
C
C
      FIND MEAN VALUES ,  TOTAL 6 DO OUTPUT

      FACT » ODTFAC/KNTSD
      TOTAL -0.
      DO 50 I - 1,NPSF
         MSMON(I) = MSMON(I) + ACCS(I)*TIMINT
         ACCS(I) « ACCS(I)»FACT
         TOTAL - TOTAL +ACCS(I)
      CONTINUE
      CUML - CUML + (TOTAL*KNTSD*TIMINT)

      WRITE(SOUT,2010) REACH,YR,MON,DAY,HR,MIN,SEC,
                       (ACCS(I),I=1,NPSF)
      WRITE(SOUT,2015) TOTAL,CUML
      LINESD = LINESD + INC
      DO 60 I » l.NPSF
         ACCS(I) "0.
      CONTINUE

      IF (TIMPMO.EQ.O) GO TO 110

         MONTHLY OUTPUT
00069000
00070000
00071000
00072000
0«\:7.;000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00087200
00087300
00087400
00087410
00087500
00087600
00087700
00087800
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00107100
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
                                      333

-------
c
c
c
          TOTAL =0.
          DO 70 1= 1,NPSF
             MSMON(I) = MSMON(I)*OUTFAC
             TOTAL = TOTAL +MSMON(I)
             MS.•;:(!) = MSYR(I) +M3MON(I)
 70       CONTINUE

          WRITE
-------
C        PRINT BED COMPOSITION AT END OF  PRINT  INTERVAL                  00179000
C                                                                        00180000
         WRITE(SOUT,2050)                                                00181000
         HRITE(SOUT,2060)  (CE{I),1=1,NPSF)                               00182000
         CALL SEDPRTf   MLAV, MtlPGF ,KLAY , NPSF, SOUT , LAYCOM , LftYTHK)         00183000
c                                                                        00184000
  900 CONTINUE                                                           00185000
      IF ((LINESD +4).GT.MLINES) LINESD =0                               00186000
      RETURN                                                             00187000
      END                                                                0018BOOO
                                       335

-------
c
c
c
c
c
c
c
c
c
c
c
c
 SUBROUTINE SDROUT(   IM02,MLAY,MNPSF,NPSF,NPSF1,SDEBUG,
1                  SOUT,TIMINT,A2E,A2S,BIND,BULKD,DENW,
2                  DEPTH,LENGTH,PCLYST,PROTCT,
3                  Q1E,Q1S,Q2E,Q2S,SHEARV,T2E,CS,
4                  MASSED,MASSIN,SETVEL,SHEET,
5                     EE'LAG , NL.B.Y, RECOMP, ACT1, LAYCOM, LAYTHK,
6                     PCIMO.CE  )

 SEDIMENT ROOTING ALGORITHMS

 PARAMETERS

 INTEGER EFLAG,IM02,MLAY,MNPSF,NLAY,NPSF,NPSF1
 IN'i'iittSR SDEBUG , SOUT , RECOMP

 REAL A2E,A2S,BIND,BULKD
 REAL DENW,DEPTH.LENGTH
 REAL PCIMO,PCLYST,PROTCT,QIS,Q1E,Q2S,Q2E
 REAL SHEARV,T2E,TIMINT

 REAL ACTl(NPSFl)
 REAL CE(NPSF),CS(NPSF),LAYCOM(MLAY,MNPSF)
 REAL LAYTHK(MLAY).MASSED(NPSF),MASSIN(NPSF),SETVEL(2)
 REAL SHEET(NPSF)

 LOCAL VARIABLES

 INTEGER I,ITYPE,J,NVAL

 REAL ABSC,AVAIL,DEPSIT,FACT,FRAC
 REAL MASSLY,ORD,REDUCT,SCOUR,SUM,SUMMO,TEMP,THK

 REAL DEPOST(4,2)

 DATA DEPOST/1.OE-15,0.005,5.0,100.0,0.0,0.0,0.0,0.O/
 2000 FORMAT('0','DEPOSITION FOR SIZE FRACTION  ',I5,/,1X,
     1           'ABSC «*  ',E12.5,' ORD =  ' ,E12. 5,/,lX,
     2           'MASS DEPOSITED = ',E12.5,' PER UNIT AREA  IN  ',
     3           'INTERVAL  ')
 2010 FORMAT('0',/,'0','DEBUG OUTPUT FROM SDROUT - SEDIMENT ',
     1                 'ROUTING CALCULATIONS')
 2020 FORMAT('0','SCOUR FACTORS:',/,IX,
     1           'PERCENT IMMOBILE MATERIAL •',F10.2,/,lX,
     2           'ARMORING REDUCTION FACTOR «=',F10.2  )
 2030 FORMATCO1,'FRACTION OF SIZE ',15,'   * ' , F10. 3, / , IX,
     1           'CORRECTED CONCN SIZE     «',E12.5  )
 2040 FORMAT(IX,'AVAILABILITY OF SIZE FRACTION  ',15,
     1           ' IS LIMITING ',/,lX,
     2           'MASS TO BE SCOURED -',E12.5,/,IX,
     3           'MASS AVAILABLE     =',E12.5   )
 2050 FORMATCO' , '+++ERROR 571+++ NEGATIVE CONCN. COMPUTED')
C
C

C
C
C
 IF (SDEBUG.GE.3) WRITE(SOUT,2010)

 FIND % MOBILE IN ACTIVE LAYER & IN SUSPENSION

 THK = ACTl(l)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
Ou062000
00063000
                                      336

-------






c
c
c





c
c
c
c

c
c
c





c
c
c




c
c
c



c
c
c
c






c
c
c




c
c
c
SUMMO =0 .
IF (IM02.LT.3) GO TO 20
DO 10 I=3,IM02
SUMMO = SUMMO + ACT1 ( 1+1 ) *THK*BULKD 4 CS (I ) * A2S*LENGTH*DENW
10 CONTINUE
20 CONTINUE

FIND ARMORING REDUCTION FACTOR

FACT =1.
IF ( PCIMO. LE-PROTCT) GO TO 30
FACT = 1. - (PCIMO -PROTCT)/(1. -PROTCT)
30 CONTINUE
IF (SDEBUG.GE.3} WRITE (SOUT, 2020) PCIMO, FACT

SCOUR OF SAND FRACTIONS
MASSED (I) = MASS OF FRACTION I IN TOP LAYER

DO 100 I = 3,NPSF

CORRECT CONCN FOR ARMOURING & % COMPOSITION

FRAC •= ( ACTl(I4l)*THK*BULKD 4 CS (I ) *A2S*LENGTH*DENW )/
1 (SUMMO + 0.00001)
I'-' (I.GT.IM02) FRAC=0.
CEd) =' FRAC*FACT*CE(I)
IF (SDEBUG.GE.3) WRITE (SOUT , 2030) I,FRAC,CE(I)

FIND IMPLIED SCOUR FROM CONTINUITY

SCOUR = ( DENW*( LENGTH* ( CS(I)*A2S - CE(I)*A2E ) -
1 TIMINT*0.5*( CS(I)*Q2S 4 CE(I)*Q2E ) ) 4 MASSIN(I) 4
2 SHEET (I) ) / (LENGTH*T2E)
IF (SCOf. GT.O.) GO TO 60

NET SCOUR (I.E. REMOVAL OF MATERIAL FROM THE BED)

SCOUR •= -SCOUR
AVAIL = MASSED (I) 4 ACTl (I4l) *THK*BULKD
IF ( SCOUR. LE. AVAIL) GO TO 40

THIS LAYER HAS INSUFFICIENT MATERIAL TO SATISFY
SCOUR. RECOMPUTE CE BASED ON AVAILABLE MATERIAL.

IP (SDEBUG.GE.3) WRITE (SOUT, 2040) I , SCOUR, AVAIL
CE(I) = ( DENW*CS(I)*( LENGTH*A2S - 0. 5*TIMINT*Q2S ) 4
1 AVAIL*LENGTH*T2E 4 MASSIN(I) 4SHEET(I) ) /
2 ( DENW*( 0.5*TIMINT*Q2E 4 LENGTH*A2E ) )
MASSED(I) «0.
GO TO 50

MATERIAL AVAILABLE FOR SCOUR

40 CONTINUE
MASSED (I) = AVAIL -SCOUR
50 CONTINUE
GO TO 80

NET DEPOSITION (IE MATERIAL ADDED TO BED)

00064000
0006500"
0006600.,
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
337

-------
   60    CONTINUE
         MASSED(I) = MASSED(I) +SCOUR +ACT1(3-H )*THK*BULKD

   80    CONTINUE
  100 CONTINUE
C
c
C
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
C
C
    ************ END OF SAND LOOP *****************************

    TREAT CLAYS AND SILTS - DEPOSIT & THEN SCOUR TOTAL AMOUNT

    DO 110 I = 1,2

       I) DEPOSITION
       DEPOSITION COMPUTED FROM CAMPS CURVE - USE TABLE LOOKUP

       REDUCT = SETVEL(I)*TIMINT/DEPTH
       DEPOST(1,2) = 1. -EXP(-REDUCT)
       DEPOST(2,2) = DEPOST(1,2)
       DE?OST(3,2) = AMINK1. , REDUCT)
       DEPOST(4,2) = DEPOST(3,2)
       ABSC = SETVEL(I)/SHEARV
       ITYPE =2
       NVAL =4
       CALL LUKUP(   ITYPE,NVAL,SDEBUG,SOUT,ABSC,DEPOST,
   1                 ORD  )
       DEPSIT = CS(I)*DEPTH*DENH*ORD
       IF (SDEBUG.GE.3) WRITE(SOUT,2000) I,ABSC,ORD,DEPSIT

       II) SCOUR
       MASSLY IS MASS IN LAYER PER UNIT BED AREA

       MASSLY = ACT1(1+1)*THK*BULKD
       MASSLY = MASSLY + DEPSIT
       SCOUR - MASSED(I) + FACT*MASSLY
       MASSLY =  (1. -FACT)*MASSLY

       CONVERT MASSED(I) FROM AMOUNT OF MATERIAL REMOVED FROM
       COHESIVE LAYER TO MASS IN TOP LAYER

       MASSED(I) = MASSLY

       CALC. CONCN DUE TO MASS OF 'SCOUR' BEING BROUGHT INTO
       SUSPENSION

       CE(I) =  ( DENW*CS(I)*( LENGTH*A2S - 0.5*TIMINT*Q2S ) +
   1               T2E*LENGTH*SCOUR + MASSIN(I) + SHEET(I)  )/
   2             ( DENWM 0.5*Q2E*TIMINT + A2E*LENGTH ))
110 CONTINUE

    ********** END op CLAY/SILT LOOP

    CHECK FOR NEGATIVE CONCNS

    DO 140 I = 1,NPSF
       IF (CE(I).GE.O.) GO TO 140
       WRITE(SOUT,2050) I,CE(I)
       EFLAG =1
140 CONTINUE

    RECOMPUTE TOP LAYER COMPOSITION
00124000
00125000
00126000
00127000
00128000
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
00179000
00180000
00181000
00182000
00183000
                                       338

-------
c
c
c
c
    SUM = 0.
    DO 120 I  = 1,NPSF
       SUM -  SUM -fMASSED(I)
120 CONTINUE
    IF (S'JM.EQ.O)  GO TO 200
       THK =  SUM/BULKD
       ACTl(l) = THK
       DO 130 I = 1,NPSF
          TEMP = MASSED(I)/SUM
          ACT1(1+1)  « TEMP
          LAYCOM(NLAY,I)  - TEMP
130    CONTINUE
       LMTTHK (NLAY)  = THK

       GO TO  300

    LAYER DESTROYED (OR NONEXISTENT IN FIRST PLACE IF TOP
    LAYER IS  COHESIVE )

200 IF (PCLYST.GT.BIND) GO TO 300
       KLAY = NLAY -1
       RECOMP =1

300 CONTINUE
    RETURN
    END
00134000
00185000
00186000
00187000
00188000
00189000
00190000
00191000
00192000
00193000
00194000
00195000
00196000
00197000
00198000
00199000
00200000
00201000
00202000
00203000
00204000
00205000
00206000
00207000
00208000
00209000
00210000
                                      339

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE SEDIWF (   IN , I OUT , MAXRCH , MLAY , MNPSfr', MREA,
    1                  NRF,A,RO;,USERCH,
    2                     EFLAG,
    3                     BEDKNT,NPSF,SDEBUG,SDPOUT,NLAYER,ABIND,
    4                  AJ'.M? , EIND,BULKD, DENS , DENW , DIFFUS , DUNE , EPSBED,
    5                  GRAV,OUTFAC,PROTCT,RIPPLE,STEADY,CSTART,COMLAY,
    6                  COMLND,CRTSHR,DIA,KINVIS,SCRCON,
    7                  SCREXP,THKLAY,THRESH  )

     ROUTINE TO READ IN INFORMATION HEEDED FOR SEDIMENT ROUTING

     PARAMETERS

     INTEGER BEDKNT,EFLAG,IN,I OUT,MAXRCH,MLAY
     INTEGER MNPSF,MREA,NPSF,NREA,SDEBUG
     INTEGER SDPOUT

     INTEGER NLf'Yr:R(MREA) ,RCK(NREA) ,USERCH {MAXRCH)

     REAL ABIND.  OIF,BIND,BULKD,DENS,DENW,DUNE,EPSBED
     REAL GRAV,.;.., OUTFAC , PROTCT, RIPPLE, STEADY

     REAL CSTART(MREA,MNPSF),COMLAY(MREA,MLAY,MHPSF)
     REAL COMLND(MNPSF),CRTSKR(2),DIA(MNPSF)
     REAL KINVIS(12)
     REAL SCRCON(2),SCREXP(2),THKLAY(MREA,MLAY)
     KTJAL THRESH (MNPSF)

     LOCAL VARIABLES

     INTEGER I,IDUM,I SUM,J,K,NL,NLAY,NLY,NR
     INTEGER REACH

     REAL SUM

     REAL HEAD(20)

     DATA NO/'  KO'/
     READ FORMATS

1000 FORMAT(20A4)
1010 FORMAT(5X,F10.0)
1020 FORMAT(6X,F10.0)
1030 FORMAT(7X,I5)
1040 FORMAT(7X,F10.0)
1050 FORMAT(6E10.3)
1060 FORMAT(5X,I5)
1070 FORMAT(3A4,A3,(T16,5E10.2))
1080 FORMAT(6X,I5)
1090 FORMAT(I5,F10.0,(T16,5F10.0))

     WRITE FORMATS
C
C
c
 2000 FORMAT('0',20A4)
 2010 FORMAT('0','GRAVITY
 2020 FORMAT('0','DENSITY WATER
 2030 FORMATCO','DENSITY SEDIMENT
 2040 FORMATCO1 ,'BULK DENSITY
                                               =',F10.3)
                                               = ' ,F10.3)
                                               •' ,F10.3)
                                               = ' ,F10.3)
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
0002BOOO
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
0003BOOO
00039000
00039100
00039200
00039300
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
                                       340

-------
2050 FCRMATf'O'
2060 FORMAT) '0'
2070 FORMAT ('0'
1
2080 FORMAT(1X,
2090 FORMAT('0'
2100 FORMAT (IX,
2110 FORMATCO1
1
2120 FORMAT (IX,
213C FORMAT (IX,
2140 FORMAT (IX,
2150 FORMAT (IX,
2160 FORMAT (IX,
2170 FORMAT (IX,
2180 FORMAT(1X,
2190 FORMAT('0'
2200 FORMATCO1
2210 FORMAT (IX,
2220 FORMAT( '0'
, 'SEDIMENT PRINT OUT OPTION
,' SEDIMENT DEBUG OPTION
, 'MULT. FACTOR FOP, PRINT OUT OF
'OUTFLOW RATES =',F10.3)
6E10.3)
, 'NO. PARTICLE SIZE FRACTIONS
3A4,A3, (T17,5E10.2) )
, '4-++ERROR 501+++ LAND SURFACE
1 (COKLND) DOES NOT SUM TO 100.
'BIND =
'ABIND =
'PROTCT =
'ARMF
'SCRCON =
'CRTSHR =
'SCREXP =
,' REACH =
,F10.3)
,F1C.3)
,F10.3)
,F10.3)
,F10.3)
,F10.3)
,F10.3)
,15)
,'NLAY «= ,15)
20A4)
=' ,15)
=' ,15)
SEDIMENT '


=' ,15)

COMPOSITION!
')










, '+++ERROR 502+-H- BED COMPOSITION FOR LAYE
 2230 FORMATCO1
 2240 FORMATCO1
     1
 2250
 2260
 2270
 2280
 2290
FORMAT(IX,'DUNE
FORMAT(IX,'RIPPLE
FORMAT('O1
FORMAT('0'
                                            ',15,
 'DOES  NOT SUM TO 100.')
,I5,E10.3,(T17,5F10.2))
,'+44ERROR 5034-f-t- INITIAL SEDIMENT CONDITIONS NOT1
 '  GIVEN  FOR REACH ',15)
          ,F10.3)
          ,F10.3)
 'MAX.ITERATIONS  FOR BEDFORM CALCS
 'CONVERGENCE CRITERION  FOR BEDFORM
 ,15)
CALCS
,E10.3)
C
C
C
FORMATC1' ,20A4)
      IDUM =1

      READ(IN,1000) HEAD
      WRITE(IOUT,2290) HEAD

      READ(IN,1010) GRAV
      WRITE(IOUT,2010) GRAV

      READ(IN.IOIO) DENW
      WRITE(IOUT,2020) DENW

      READ(IN,1010) DENS
      WRITE(IOUT,2030) DENS

      READ(IN,1020) BULKD
      WRITE(IOUT,2040) BULKD

      READ(IN,1030) BEDKNT
      WRITE(IOUT,2270) BEDKNT

      READ(IN,1040) EPSBED
      WRITE(IOUT,?.280) EPSBED

      READ(IN,1030) SDPOUT
      WRITE(IOUT,2050) SDPOUT
      IF  (SDPOUT.LT.O  .OR. SDPOUT.GT.3)
     1   CALL KILL(16,EFLAG,IOUT,SDPOUT,IDUM)
00061000
00062000
00063000
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
                                      341

-------
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
   READ(IN,1030)  SDEBUG
   WRITE(TOUT,2060) SDEBUG
   IF (SDEBUG.LT.O .OR. SDEBUG.GT.3)
  1   CALL KILL(17,EFLAG.IOUT,SDEBUG,IDUM)

   REAi'.flN, 1040)  OUTFAC
   WRITE(IOUT,2070) OUTFAC

   READflN,1000)  HEAD
   WRITE(IOUT,2000) HEAD

   READ(IN,1050)  (KINVIS(I),1=1,6)
   WRITE(IOUT,2080) (KINVIS(I),1=1,6)
   READ(IN,1050)  (KINVIS(I),1=7,12)
   WRITE(IOUT,2080) (KINVIS(I),1=7,12)

   READ(IN,1060)  NPSF
   WRITE(IOUT,2090) NPSF
   IF (NPSF.GT.MNPSF)
  1   CALL KILL(19,EFLAG,IOUT,NPSF,MNPSF)
   IF (NPSF.LT.3)
  1   CALL KILL(21,EFLAG,IOUT,NPSF,IDUH)

   READ(IN,1000)  HEAD
   WRITE(IOUT,2000) HEAD

   READ(IN,1070)  (HEAD(I),1=1,4),(DIA(J),J=1,NPSF)
   WRITE(IOUT,2100) (HEAD(I),1=1,4),(DIA(J),a-l,NPSF)

   IF (DIFFUS.EQ.NO) GO TO 20

   GET PARAMETERS  FOR  SPLITTING LAND SURFACE EROSION DATA
   BY PARTICLE SIZE FRACTION
   COMLND = % COMPOSITION OF LAND SURFACE
   THRESH « THRESHOLD  VALUE OF EROSION ABOVE WHICH  FRACTION
            I WILL MOVE
   STEADY = VALUE  OF EROSION ABOVE WHICH COMPOSITION OF  ERODED
            MATERIAL IS SAME AS LAND SURFACE COMP..

   READ(IN,1070)  (HEAD(I),1=1,4),(COMLND(J),a=l,NPSF)
   WRITE(IOUT,2100) (HEAD(I),1-1,4),(COMLND(J),J=1,NPSF)

   RSAD(IN,1070)  (HEAD(I),1=1,4),(THRESH(J),J=2,NPSF),STEADY
   WRITE(IOUT,2100) (HEAD(I),1=1,4),(THRESH(J),J=2,NPSF),STEADY

   CHECK PERCENTAGES

   SUM =0.
   DO 10 I = 1,NPSF
      SUM = SUM +COMLND(I)
      COMLND (I) «= COMLND (I )/100.
10 CONTINUE
   ISUM = SUM +0.5
   IF (ISUM.EQ.100) GO TO 20
      WRITE(IOUT,2110)
      EFLAG =1
20 CONTINUE

   GET CALIBRATION PARAMETERS
00121000
00122000
00123000
00124000
00125000
00126000
00127000
0012BOOO
00129000
00130000
00131000
00132000
00133000
00134000
00135000
00136000
00137000
00138000
00139000
00140000
00141000
00142000
00143000
00144000
00145000
00146000
00147000
00148000
00148100
00148200
00149000
00150000
00151000
00152000
00153000
00154000
00155000
00156000
00157000
00158000
00159000
00160000
00161000
00162000
00163000
00164000
00165000
00166000
00167000
00168000
00169000
00170000
00171000
00172000
00173000
00174000
00175000
00176000
00177000
00178000
                                       342

-------
c

c


c

c

c
c
c
c
c

c

c
c
c
c
c
c
c
   READ(IN,1000) HEAD
   WRITE(IOUT,2000) HEAD

   READ(IN,1010) BIND
   WRITE(IOUT,2120) BIND
   BIND - BIND/100.

   READ(IN,1020) ABIND
   WRITE(IOUT,2130) ABIND

   READ(IN,1040) PROTCT
   WRITE(IOUT,2140) PROTCT
   PROTCT - PROTCT/100.

   READ(IN,1010) ARMF
   WRITE(IOUT,2150) ARMF

   READ(IN,1010) DUNE
   WRITE(IOUT,2250) DUNE

   READ(IN,1040) RIPPLE
   WRITE(IOUT,2260) RIPPLE

   READ CLAY/SILT PARAMETERS - CLAY FIRST

   DO 40 I - 1,2
      READ(IN,1000) HEAD
      WRITE(IOUT,2000) HEAD

      READ(IN,1040) SCRCON(I)
      WRITE(IOUT,2160) SCRCON(I)

      READ(IN,1040) CRTSHR(I)
      WRITE(IOUT,2170) CRTSHR(I)

      READ(IN,1040) SCREXP(I)
      WRITE(IOUT,2180) SCREXP(I)

40 CONTINUE

   READ INITIAL SEDIMENT CONDITIONS

   READ(IN,1000) HEAD
   WRITE(IOUT,2000) HEAD

   DO 50 I - 1,NREA
      READ{IN,1080) REACH
      WRITE(IOUT,2190) REACH

      READ(IN,1060) NLAY
      WRITE(IOUT,2200) NLAY

      CHECK REACH NO. AND NO. LAYERS

      NR • USERCH(REACH)
      IF (REACH.LE.O  .OR. REACH.GT.MAXRCH)
  1      CALL KILL(18,EFLAG,IOUT,REACH,IDOM)
      IF (NR.EQ.O)
  1      CALL KILL(18,EFLAG,IOUT,REACH,IDUM)
00179000
00180000
00181000
00182000
00183000
00183100
00184000
00185000
00186000
00187000
00188000
00189000
00189100
00190000
00191000
00192000
00193000
00194000
00195000
00196000
00197000
00198000
00199000
00200000
00201000
00202000
00203000
00204000
00205000
00206000
00207000
00208000
00209000
00210000
00211000
00212000
00213000
00214000
00215000
00216000
00217000
00218000
00219000
00220000
00221000
00222000
00223000
00224000
00225000
00226000
00227000
00228000
00229000
00230000
00231000
00232000
00233000
00234000
00235000
00236000
                                       343

-------
c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
   60
   80
   90
  110

   70
         IF (NLAY.GT.MLAY)
            CALL KILL ( 2 0, EFLAG, IOUT , NLAY, MLAY}
       NLAYER(NR)  = NLAY

       READ(IN,1000)  HEAD
       WRITE(IOUT,2210)  HEAD

       R£AD(IN,1070)  (HEAD(J) ,J=1,4) ,(CSTART(NR,K) ,K=1,NPSF)
       WRITE(IOUT,2100)  (HEAD(J),0=1,4),(CSTART(NR,K),K=1,NPSF)

       RCM>(IN,1000)  HEAD
       WRITE(IOUT,2210)  HEAD

       READ(IN,1000)  HEAD
       WRITE(IOUT,2210)  HEAD

       DO 60 NL = 1,NLAY
          READ(IN,1090)  NLY,THKLAY(NR,NLY),
                            (COMLAY(NR,NLY,K),K=1,NPSF)
       CONTINUE

       CHECK COMPOSITION & OUTPUT

       DO 70 NL = 1,NLAY
          NLY = NLAV -NL +1
          SUM =0.
          DO 80 J =1,NPSF
             SUM = SUM +COMLAY(NR,NLY,J)
          CONTINUE
          IPUK * SUM +0.5
          IF (ISUM.EQ.100) GO TO 90
             WRITE(IOUT,2220)  NLY
             EFLAG =1
          CONTINUE

          WRITE(I OUT,2230) NLY,THKLAY(NR,NLY)  ,
                               (COMLAY(NR,NLY,K),K=1,NPSF)
          CONVERT FROM PERCENT TO FRACTION


                                COMLAY(NR,NLY,J)/100.
DO 110 J=1,NPSF
   COMLAY(NR,NLY,J)
CONTINUE
       CONTINUE

       END REACH LOOP

 50 CONTINUE

    CHECK THAT ALL INITIAL CONDITIONS ARE GIVEN
    THKLAY IS USED AS A FLAG VECTOR

    DO 100 NR = 1,NREA
       IF (THKLAY(NR,1).GT.O.) GO TO 100
          WHITE(IOUT,2240) RCH(NR)
          EFLAG =1
100 CONTINUE
00237000
00238000
00239000
00240000
002*1000
002-J2000
00243000
00244000
00245000
00246000
00247000
00248000
00249000
00250000
00251000
00252000
00253000
00254000
00255000
00256000
002T.7000
00258000
00259000
00260000
00261000
00262000
00263000
00264000
00265000
00266000
00267000
00268000
00269000
00270000
00271000
00272000
00273000
00274000
OO'/VSOOO
002V6000
00277000
00278000
00279000
00280000
00281000
00282000
00283000
00284000
00285000
00286000
00287000
00288000
00289000
00290000
00291000
00292000
00293000
00294000
00295000
00296000
                                       344

-------
                                                                 00297000
RETURN                                                           00298000
END                                                              00299000
                              345

-------
c
c
c
c
c
c
c
c
c
c
SUBROUTINE SEDPRT(   MLAY,MNPSF,NLAY,NPSF,SOUT,LAYCOK,LAYTHK)

PRINT OUT BED COMPOSITION

PARAMETERS

INTEGER MLAY,MNPSF,NLAY,NPSF,SOUT

REAL LAYCOM(MLAY,KNPSF),LAYTHK(NLAY)

LOCAL VARIABLES

INTEGER I,JJ,K
 2000 FORMAT('0','BED MATERIAL ',/,lX,
     1           'LAYER1,6X,'THICKNESS1,20X,
     2           'FRACTIONAL COMPOSITION BY PARTICLE SIZE'  )
 2010 FORMAT(1X,I5,5X,F10.3,(T22,5(E10. 3,2X) ) )
C
C
      WRITE(SOUT,2000)
      DO 10 I = 1,NLAY
         JJ = NLAY -I +1
         WRITE(SOUT,2010) JJ,LAYTHK(JJ),
     1                      (LAYCOM(JJ,K),K=1,NPSF)
   10 CONTINUE
      RETURN
      END
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
                                       346

-------
      SUBROUTINE SPLIT(    NPSF,SDEBUG,SOUT,TIKINT,SAREA,SED,
     1                 STEADY,COMLND.GREQ,THRESH,
     2                    TOTAL,SHEET  )

      ROUTINE TO SPLIT LAND SURFACE EROSION INTO PARTICLE SIZE
      FRACTIONS .  ON RETURN SHEET(I)  CONTAINS TOTAL MASS OF
      SEDIMENT OF SIZE I ENTERING THE REACH IN THE TIME
      INTERVAL.

      PARAMETERS

      INTEGER NPSF,SDEBUG,SOUT

      REAL 5AREA,SED,STEADY,TIMINT,TOTAL

      REAL COMLND(NPSF),GREQ(NPSF),SHEET(NPSF),THRESH(NPSF)

      LOCAL VARIABLES

      INTEGER I
      REAL CFRACP,CFRACT,DIFF,SUM,TSED


 2000 FORMAT('0','LOCAL SEDIMENT  INFLOW BY PARTICLE SIZE:1,/,IX,
     1           10(1X,E11.4)  )
 2010 FORMAT('0','+++ERROR 511+++ CONTINUITY ERROR IN SPLITTING ',
     1           '  EROSION INTO PARTICLE SIZE FRACTIONS')
C
C
C
C
C
C
C
C

C

C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
      TSED - SED*SAREA*TIMINT
      TOTAL » TOTAL +TSED
      IF (SED.LT.STEADY) GO TO 20

         WASHOFF HAS SAME COMPOSITION AS LAND SURFACE

         DO 10 I - 1,NPSF
            SHEET(I) - SHEET(I)  4 COMLND(I)*TSED
   10    CONTINUE
         GO TO 100

   20 CONTINUE
      IF (SED.GT.THRESH{2)) GO TO 30

         ALL SEDIMENT IN FINEST FRACTION

         SHEET(1) * SHEET(1) +TSED
         GO TO 100

      DETERMINE SPLIT BETWEEN FRACTIONS

   30 CONTINUE
      DO 40 I - 2,NPSF
         IF (SED.LE.THRESH(I)) GO TO 50

            CFRACT IS CULMULATIVE FRACTION UPTO BUT EXCLUDING
            SIZE I

            CFRACT - 1. - GREQ(I)*(SED -THRESH(I))/(STEADY -THRESH(I))
            SHEET(I -1) » SHEET(I -1) + (CFRACT -CFRACP)*TSED
            CFRACP * CFRACT
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       347

-------
   40 CONTINUE

      SHEET(NPSF)  = SHEET(NPSF)  + (1.  -CFRACP)*TSED
      GO TO 100
C
c
C
c
c
c
    (I -1)  IS THE COARSEST FRACTION BEING MOVED

 50 SHEET (I -1)  = SHEETd -1)  + (1. -CFRACP) *TSED

100 CONTINUE
    IF (SDEBUG.GE.3)  WRITE(SOOT,2000)  (SHEET(I),1=1,NPSF)

    CHECK ON TOTALS

    SUM = 0.
    DO 110 I - 1,NPSF
       SUM = SUM +SHEET(I)
110 CONTINUE
    DIFF = ABS((TOTAL -SUM)/TOTAL)
    IF (DIFF.LT.l.OE-04) GO TO 120
       WRITE(SOUT,2010)
       STOP

120 RETURN
    END
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
                                       348

-------
c
c
c
c
c
c
c
c
c
c
c
c
      SUBROUTINE STORGE(   IB?.SE,TOUT, MTAD.NLEVS , REACH,
     1                  LENGTH,Q,TABLE,
     2                     LEV,S,T,Y             )

      CALCULATE STORAGE AND DEPTH CORRESPONDING TO GIVEN
      Q FOR THIS X-SECTION

      PARAMETERS

      INTEGER IBASE,IOUT,LEV,MTAD,NLEVS,REACH

      REAL LENGTH,Q,S,T
      REAL TABLE(MTAD)

      LOCAL

      INTEGER I,LEVBAS

      REAL CHG,DELA,DELT,DELY,PACT,QUOT,Q1,Q2,S1,S2
      REAL T1,T2,Y1,Y2

      WRITE FORMAT

 2000 FORMAT('0','+++WARNING 101+-M- SECTION EXTRAPOLATED IN REACH ',
     1           T5,' LEV-',18)
 2010 FORMAT('0','+-M-ERROR 102+++ NO CONVERGENCE AFTER 100 ',
     1           'ITERATIONS IN SUBROUTINE STORGE ')
C
C
C
      LEV-1
      IF(Q.NE.O.)  GO TO 1
      S«0.
      Y-0.
      RETURN
 1    Ql- 0.
C     COMPUTE BASE REGISTER FOR  'TABLE1
 2    LEVBAS- IBASE+ (LEV-1)*4
      Q2- TABLE(LEVBAS+7)
      IF(Q.LT.Q2)  GO TO 10
      IF(LEV.EQ.(NLEVS-1)) GO TO 7
      Ql- Q2
      LEV- LEV + 1
      GO TO 2
C     EXTRAPOLATION
 7    WRITE(IOUT,2000) REACH,LEV
C WE HAVE FOUND THE CORRECT SEGMENT OF THE S VS Q CURVE - INTERPOLATE
 10   SI- TABLE(LEVBAS+2)'LENGTH
      S2- TABLE(LEVBAS+6)*LENGTH
      S- SI +  (Q-Q1)*(S2-S1)/(Q2-Q1)
C     FIND DEPTH USING NEWTON APPROXIMATION
      T2- TABLE(LEVBAS+5)
      Tl- TABLE (LEVBAS-H)
      Y2- TABLE(LEVBAS+4)
      Yl- TABLE(LEVBAS)
      QUOT-(T2-T1)/(Y2-Y1)
      DELA-(S-S1)/LENGTH
C     ITERATE
      DELY-  (Y2-Y1)*0.5
      DO 20 1-1,100
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
0001BOOO
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                        349

-------
      F'\CT=QUOT*DELY                                                     00064000
      l.'i.T- (FACT*DELY*0. 5 + DELA)/(FACT  +  Tl)                           00065000
      Cf:.",-.ABS(DE:,T-DELY)                                                 00066000
      DELY-DELT                                                          00067000
      IF1CHG.LT.(0.01*Y2)) GO TO  22                                      00068000
 ?0   CONTINUE                                                           00069000
C     ERROR                                                              00070000
      WRITE(IOUT,2010)                                                   00071000
      STOP                                                               00072000
 22   V= Yl + DELY                                                       00073000
      T = FACT + Tl                                                      00074000
      RETURN                                                             00075000
      END                                                                00076000
                                        350

-------
 SUBROUTINE TBOX(IOUT)

 WRITE TITLE BOX

  WRITE (TOUT, 1)
 FORMAT('11,//,1X,120(1*1) ,/ ,1X, ' * ' , 118X, ' * ' ,
1 /, IX, '*' ,23X, 'HYDRAULIC   ROUTING    ir ',
2 '  SEDIMENT   TRANSPORT   IN   NATURAL   CHANNELS ',23X,
3 '*',/, IX,'*1 ,118X, '*',/, IX,1*1 ,34X, 'DEVELOPED  BY :-',68X,
4 '*',/, IX, '*' ,118X,'*' ,/, IX, '*' ,44X, 'K.  M. LEYTHAM   t     ',
5 'R. JOHANSON   ', 39X ,'*',/, IX, '*', 118X, '*',/, IX, '*', 52X,
6 'HYDROCOMP  INC' , 52X, '*',/, (IX, '*', 118X, '*',/),
7 IX, '*' ,42X, 'DEVELOPED FOR EPA,  ATHENS,  GEORGIA1 ,42X, '*',/,
8 IX,'*1 ,45X, ' (LEE MULKEY PROJECT OFFICER) ' .45X,1*1 ,/,
9 2(1X,'*' ,118X, '*',/) ,
1 IX, '*',49X, 'DATE:- AUGUST 1977 ', SIX, '*',/,
2 IX, '*' ,49X, 'VERSION:- WEST. SEDMT.TEST2 ' ,43X, '*',/,
3 3(1X,'*M18X, '*',/)}

  WRITE(IOUT,2)
 FORMAT ( ' + ' ,
1    '*' ,20X, 'HYDROCOMP INC. ' ,44X, 'ENVIRONMENTAL RESEARCH ',
2 'LABORATORY1 ,7X, '*',/,
3 IX,'*1 ,20X, '1502 PAGE MILL RD. ' , 40X, 'U.S. ENVIRONMENTAL ',
4 'PROTECTION AGENCY' ,4X, '*',/,
5 IX,'*1 ,20X, 'PALO ALTO', 49X, 'ATHENS', 34X, '*',/,
6 IV.,'*' ,20X, 'CALIFORNIA 94301 ', 42X, 'GEORGIA 30601 ' ,27X, '*',/,
7 IX,'*1 ,20X,' (415-493-5522) ',44X,' (404-546-3581) ' ,26X, '*',/,
8 2(1X,'*',118X. '*',/) ,
 RETURN
 END
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
0001BOOO
00019000
00019100
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
                                 351

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SUBROUTINE ULTMT(    NPSF,NPSF1,SDEBUG,SOUT,DEPTH,GRAV,ORGD50,
    1                 ORGTHK,SHEARV,SPGRAV,VEL,AA,AC,ACT1,AM,AN,DIA,
    2                    IM02,RECOMP,ACFRAC,
    3                    D50,D50IM,PCIMO,CE   }

     THIS ROUTINE COMPUTES ULTIMATE TRANSPORT CONCNS.  FOR
     SAND FRACTIONS USING ACKERS FORMULA.
     IM02 = THE LARGEST MOBILE FRACTION -  THIS IE  USED TO
            CHECK ARMORING IN ACTIVE LAYER COMPS.

     PARAMETERS

     INTEGER IM02,NPSF,NPSF1,RECOMP,SDEBUG,SOUT

     REAL DEPTH,D50,D50IM,GRAV,ORGD50,ORGTHK,PCIMO,SHEARV.SPGRAV,VEL

     REAL AA(NPSF),AC(NPSF),ACFRAC(NPSF),ACT1(NPSF1),AM(NPSF),AN(NPSF)
     REAL DIA(NPSF),CE(NPSF)

     LOCAL VARIABLES

     INTEGER HIGH,I,IMO,LOW,TEMP
     REAL DIFF,FGR,GGR

     WRITE FORMATS

2000 FORMAT('O1,'MOBILITY NO. FOR SANDS ',/,lX,
    1           ' NPSFMOX.'FGR1)
2010 FORMAT(1X,I5,1X,E12.5)
2020 FORMAT(IX,'SIZE FRACTION ',15,'  IMMOBILE1)
2030 FORMAT!'0','POTENTIAL CONCENTRATIONS  FOR SANDS:',/,IX,
    1           ' NPSF',5X,'POT CONC1,/,
    2           (1X,I5,JX,E12.5)  )
2040 FORMAT('0','ALL SAND FRACTIONS IMMOBILE')
2050 FORMAT('0','ACTIVE LAYER THICKNESS CHANGED BY MORE THAN 50% ',
    1           ' - RECOMPUTE ACTIVE LAYER CHARACTERISTICS ',/,lX,
    2           'ORIGINAL THKNS *',E12.5,' NEW THKNS  «',E12.5)
2060 FORMAT('0','D50 CHANGED BY MORE THAN  10% -.RECOMPUTE  ACTIVE ',
    1           'LAYER CHARACTERISTICS ',/,!X,
    2           'ORIGINAL D50 -',£12.5,' NEW D50 -',E12.5)


     TEMP * IMO2
     IM02 - NPSF
     IF (SDEBUG.GE.3) WRITE(SOUT,2000)

     DO 50 I = 3,NPSF

        FIND DIMENSIONLESS MOBILITY NO.

        FGR = ( SHEARV**AN(I)/SQRT(GRAV*DIA(I)*(SPGRAV -1.))  )  *
    1           ( VEL/(5.657*ALOG10(10.*DEPTH/DIA(I))) )**(!.  -AN(I))
        IF (FGR.GT.AA(I)) GO TO 10

           IM02 IS LARGEST MOBILE FRACTION

           IM02 - I -1
           GO TO 60
C
C
C
C
c
c
c
c
   10
        CONTINUE
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049000
00050000
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                       352

-------
c
c
c
c
c
c
c
c
c
c
c
         IF (SDEBUG.GE.3)  WRITE(SOUT,2010}  I, FGR
         GGR = AC(I)*( FGR/AA(I)  -l.)**AM(I)

         CE(I) IS POTENTIAL CONCN  AT END OF  INTERVAL

                 (SPGRAV*DIA(I)*GGR/DEPTH)  *  (VEL/SHEARV)**AN(I)
       CE(I)
 50  CONTINUE
    SET CONCNS  FOR  IMMOBILE  FRACTIONS

 60  CONTINUE
    IMO •= IM02  +1
    IF (IMO.GT.NPSF)  GO TO 80
    DO 70 I  = IMO,NPSF
       CE(I)  -  0.
       IF (SDEBUG.GE.3)  WRITE(SOUT,2020)  I
 70  CONTINUE

 80  IF (SDEBUG.GE.3)
   1   WRITE(SOUT,2030)  ( (I,CE (I)),I«3,NPSF)
    IF (IM02.LT.3  .AND.  SDEBUG.GE.3) WRITE(SOUT,2040)

    IF NO.  OF IMMOBILE FRACTIONS  HAS CHANGED SINCE LAST  ACCESS
    WE MUST RECOMPUTE BEDFORM  CHARACTERISTICS

    IF (IM02.NE.TEMP) RECOMP -1

    GET CHARACTERISTICS OF TOP LAYER -  NOT  NECESSARY  IF  ACTIVE
    LAYER IS  TO BE  RECOMPUTED

    IF (RECOMP.EQ.l)  GO TO 200

       FIND % IMMOBILE AND D50 IMMOBILE 6 MOBILE
         PCIMO -0.
         D50IM "0.
         D50 -0.
         LOW « IM02 +1
         IF (LOW.GT.NPSF)  GO TO 160
            DO 150 I - LOW,NPSF
               PCIMO - PCIMO + ACTld+1)
            CONTINUE
            HIGH - NPSF
            CALL DIAM50(   HIGH,LOW,NPSF,NPSF1,SDEBUG,SOUT,
                        ACT1.DIA,
                           ACFRAC,
                           D50IM  )
         CONTINUE
150
160
  170
C
C
c
       HIGH - IM02
       LOtf =3
       IF (HIGH.LT.LOW)  GO TO 170
       CALL DIAM50(   HIGH,LOW,NPSF,NPSFl,SDEBUG,SOUT,
                   ACT1.DIA,
                      ACFRAC,
                      D50  )
       CONTINUE

       CHECK REFERENCE VALUES
00064000
00065000
0006600C
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
00076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103^00
00104000
00105000
00106000
00107000
00108000
00109000
00110000
00111000
00112000
00113000
00114000
00115000
00116000
00117000
00118000
00119000
00120000
00121000
00122000
00123000
                                      353

-------
         DIFF = A8S(  (ACT1(1) -ORGTHK)/(ORGTHK  +0.001)  )                 00124000
         IF (DIFF.LE.0.5) GO TO  180                                      00125000
            IF  (SDEBL1G.GE.3) WRITE(SOUT,2050) ORGTHK,ACTl(1)             00126000
            RECOMP =1                                                    00127000
  180    CONTINUE                                                        00128000
C                                                                        00129000
         DIFF = ABS(  (D50 -ORGD50)/(ORGD50  +  0.00001)  )                  00130000
         IF (DIFF.LE.0.1) GO TO  190                                      00131000
            IF  (SDEBUG.GE.3) WRITE(SOUT,2060) ORGD50,D50                 00132000
            RECOMP =1                                                    00133000
  190    CONTINUE                                                        00134000
C                                                                        00135000
C                                                                        00136000
C                                                                        00137000
  200 CONTINUE                                                           00138000
      RETURN                                                             00139000
      END                                                                00140000
                                      354

-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
     SrVKROUTINE VISCHG1    MON,NPSF,SDEBUG,SOUT,GRAV,
    1                  SPGRAV,DIA,KINVIS,
    2                     RECOMP,
    3                     VISC,AA,AC,AM,AN,DGR,SETVEL )

     THIS ROUTINE RECOMPUTES  FACTORS  WHICH  ARE AFFECTED  BY
     CHANGES IN VISCOSITY.
     THE ROUTINE IS PERFORMED AT THE  START  OF THE RUN &  AT THE
     BEGINNING OF EVEP.Y  MONTH THEREAFTER. VISCOSITY IS GIVEN AS
     A MONTHLY AVERAGE BASED  ON AVERAGE MONTHLY TEMPERATURE.

     PARAMETERS

     INTEGER MON,NPSF,RECOMP,SDEBUG,SOOT

     REAL GRAV,SPGRAV,VISC

     REAL AA(NPSF),AC(NPSF),AM(NPSF),AN(NPSF)
     REAL DGR(NPSF),DIA(NPSF),KINVIS{12),SETVEL(2)

     LOCAL VARIABLES

     INTEGER I

     REAL AEXP,FACT,FACT2,LOGDGR

     WRITE FORMATS

2000 FORMATCO1 ,'VISCOSITY CHANGED TO ',E12.5,' FOR MONTH ',15,
    1      /,'0','PARAMETERS  FOR SAND FRACTIONS IN ACKERS ',
    2            'FORMULA! ',/,!X,
    3            •  NPSFMOX.'DGRMlX.'AAMlXf'AC1 jllX.'AM1 ,

2010 FORMAT(1X,I5,5(1X,E12.5))
2020 FORMATCO1,'+++ERROR 521+++ DIMENSIONLESS GRAIN SIZE OUTSIDE',
    1           ' RANGE FOR SAND FRACTION  ',15,' ;DGR «',E12.5)
2030 FORMAT CO1,'SETTLING VELOCITIES  FOR CLAY fc SILT: ',/,lX,
    1           ' NPSF',7X,'SETVEL')
2040 FORMATCO1,'+++ERROR 522+++ DIMENSIONLESS GRAIN SIZE OUTSIDE',
    1           ' RANGE FOR CLAY/SILT FRACTION ',15,' >DGR -',E12.5)
2050 FORMAT(1X,I5,1X,E12.5)


     VISC « KINVIS(MON)
     IF  (SDEBUG.GE.3) WRITE(SOUT,2000) VISC,MON

     COMPUTE PARAMETERS FOR ACKERS £-  WHITES FORMULA
     (APPLIES TO SANDS ONLY)

     FACT -  ( GRAVMSPGRAV -1.)/(VISC*VISC)  )**0.3333
     DO 50 I - 3,NPSF              '

        DIMENSIONLESS PARTICLE  SIZE

        DGR(I) - DIA(I)*FACT
        IF  (DGR(I).GT.l.) GO  TO 10
           WRITE(SOUT,2020)  I,DGR(I)
           STOP

        PARAMETERS FOR ACKSRS FORMULA
C
C
C
C
c
c
c
c
c
c
c
00004000
00005000
00006000
00007000
00008000
00009000
00010000
00011000
00012000
00013000
00014000
00015000
00016000
00017000
00018000
00019000
00020000
00021000
00022000
00023000
00024000
00025000
00026000
00027000
00028000
00029000
00030000
00031000
00032000
00033000
00034000
00035000
00036000
00037000
00038000
00039000
00040000
00041000
00042000
00043000
00044000
00045000
00046000
00047000
00048000
00049rOO
00050UOO
00051000
00052000
00053000
00054000
00055000
00056000
00057000
00058000
00059000
00060000
00061000
00062000
00063000
                                      355

-------
c
c
c
c
c
c
c
c
c
10    CONTINUE
      IF (DGR(I).GT.60.) GO TO 20

         TRANSITIONAL PARTICLE SIZE

         LOGDGF. = ALOG10 (DGRfl) )
         AN (I) = 1. -0.56*LOGDGP,
         Ao(I) = 0.14 +0.23/SQRT(DGR(I))
         AM(I) = 1.34 +9.66/DGR(I)
         AEXP = LOGDGRM2.86 -LOGDGR) -3.53
         AC(I) = 10.**AEXP
         GO TO 30
20    CONTINUE

      COARSE PARTICLE SIZE

      AN (I) = 0.
      AA(I) = 0.17
      AM(I) = 1.5
      AC(I) = 0.025
30    CONTINUE

      IF (SDEEUG.GE.3)
  1      WRITE (SOUT, 2010) I, DGR (I) , AA (I) , AC (I )-,AM( I) , AN (I)
50 CONTINUE

   FIND NEW SETTLING VELOCITIES FOR CLAY/SILT

   IF (SDEBUG.GE.3) WRITE{SOUT,2030)
   FACT2 = GRAV*(SPGRAV -1.)/(18.*VISC)
   DO f!0 I = 1,2
      !"• *S(I)  = DIA(I)*FACT
      IF (DGR(I).LE.l.) GO TO  60
         WRITE(SOUT.2040) I,DGR(I)
         s crip
60    SETV2L(I)  = FACT2*DIA(I)*DIA(I)
      IF (SDEBUG.GE.3)
  1      WRITE(SOUT,2050) I,SETVEL(I)
80 CONTINUE

    RECOUP =1
    RETURN
    END
00064000
00065000
00066000
00067000
00068000
00069000
00070000
00071000
00072000
00073000
00074000
00075000
OC076000
00077000
00078000
00079000
00080000
00081000
00082000
00083000
00084000
00085000
00086000
00087000
00088000
00089000
00090000
00091000
00092000
00093000
00094000
00095000
00096000
00097000
00098000
00099000
00100000
00101000
00102000
00103000
00104000
00105000
00106000
00107000
                                       356

-------
                                   TECHNICAL REPORT DATA
                            (Please read Instructions on the reverse before completing)
1. REfORT NO.
  EPA-600/3-79-028
                             2.
                                                           3. RECIPIENT'S ACCESSION- NO.
4. TITLE ANDSUB1ITLE

 Watershed  Erosion and Sediment  Transport Model
             5. REPORT DATE
              March  1979
             6. PERFORMING ORGANIZATION CODE
7. AUTHOR(S)

 K. M.  Leytham and R. C. Johanson
                                                           8. PERFORMING ORGANIZATION REPORT NO.
9. PERFORMING ORGANIZATION NAME AND ADDRESS
 Hydrocomp,  Inc.
 1502  Page Mill Road
 Palo  Alto,  California 94304
             10. PROGRAM ELEMENT NO.
               1BB770
             11. CONTRACT/GRANT NO.

               R803726-01-0
12. SPONSORING AGENCY NAME AND ADDRESS
 Environmental Research Laboratory—Athens, GA
 Office  of Research and Development
 U.S.  Environmental Protection Agency
 Athens,  Georgia 30605
             13. TYPE OF REPORT AND PERIOD COVERED
               Final.  7/75-6/77	
             14. SPONSORING AGENCY CODE
               EPA/600/01
15. SUPPLEMENTARY NOTES
16. ABSTRACT
       This report describes  the development and initial testing of the Watershed
 Erosion and Sediment Transport (WEST) Model.  It  is  a deterministic conceptual model
 which operates in two phases.   In the first one,  hydrological and erosion  processes
 associated with the land  surfaces of a watershed  are simulated, using the  Agricul-
 tural Runoff Management  (ARM)  Model.  The research work in this project  centered on
 the second phase, in which  the movement of water  and sediment through a  channel
 system is simulated using the  CHANL Model.  In the CHANL model the channels  of a
 watershed are represented by a network of reaches.   Hydraulic routing is performed
 using the kinematic wave  approximation.  The results are fed to the sediment
 algorithms which explicitly represent the processes  of deposition, scour,  armoring,
 and advection.  The model is designed to handle any  mixture of cohesive  and
 cohesionless sediment.

       The model has been  tested on laboratory data and on data from the East  Fork
 River, Wyoming.  Results  from  these tests were satisfactory.  The model  was  also
 tested on data recorded on  Four Mile Creek, Iowa.  In this test, inadequate  data
 made it impossible to draw  any definite conclusions  regarding model performance.
17.
                                KEY WORDS AND DOCUMENT ANALYSIS
                  DESCRIPTORS
                                              b.lDENTIFIERS/OPEN ENDED TERMS
                             COSATi Field/Group
  Mathematical models
  Watersheds
  Sediment transport
                            12A
                            48G
                            68D
                            91A
18. DISTRIBUTION STATEMENT


  RELEASE TO PUBLIC
19. SECURITY CLASS (ThisReport)
  UNCLASSIFIED
21. NO. OF PAGES
   373
20. SECURITY CLASS (This page)

  UNCLASSIFIED
22. PRICE
EPA Form 2220-1 (»-73)
                                           357
                                                              U. S. mvFRNMEN! PRINTING OFFICE: 1979 — 657-OM1/5316

-------