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
£
»
O)
LU
DC
O
Q.
CO
cc
H
I-
Z
til
01
CO
1.5
1.2
0.9
0.6
0.0
T
SIMULATED
'RECORDED
PARTICLE SIZE FRACTION 2.0 mm
(range 1.40 mm - 2.80 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 61. Comparison of simulated and recorded sediment
transport rates for 2.0 mm size fraction,
East Fork River
-------
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
------- |